diff --git a/.gitattributes b/.gitattributes
new file mode 100755
index 0000000..113eead
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,2 @@
+# This allows generated code to be indexed correctly
+*.ts linguist-generated=false
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100755
index 0000000..1eae0cf
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+dist/
+node_modules/
diff --git a/README.md b/README.md
index 313916a..6b943e1 100755
--- a/README.md
+++ b/README.md
@@ -40,88 +40,140 @@ Authorization: Bearer YOUR_API_KEY
## SDK Example Usage
```typescript
-import {
- CancelFineTuneRequest,
- CancelFineTuneResponse
-} from "@speakeasy-api/openai/dist/sdk/models/operations";
-
-import { AxiosError } from "axios";
import { Gpt } from "@speakeasy-api/openai";
-const sdk = new Gpt();
-
-const req: CancelFineTuneRequest = {
- fineTuneId: "ft-AF1WoRqd3aJAHsqc9NY7iL8F",
-};
-
-sdk.openAI.cancelFineTune(req).then((res: CancelFineTuneResponse | AxiosError) => {
- // handle response
-});
+import { CreateTranscriptionRequestResponseFormat } from "@speakeasy-api/openai/dist/sdk/models/shared";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.audio.createTranscription({
+ file: {
+ content: "\#BbTW'zX9" as bytes <<<>>>,
+ file: "string",
+ },
+ model: "whisper-1",
+ });
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
```
-## SDK Available Operations
+## Available Resources and Operations
+
+
+### [audio](docs/sdks/audio/README.md)
+
+* [createTranscription](docs/sdks/audio/README.md#createtranscription) - Transcribes audio into the input language.
+* [createTranslation](docs/sdks/audio/README.md#createtranslation) - Translates audio into English.
+
+### [chat](docs/sdks/chat/README.md)
+
+* [createChatCompletion](docs/sdks/chat/README.md#createchatcompletion) - Creates a model response for the given chat conversation.
+### [completions](docs/sdks/completions/README.md)
-### openAI
+* [createCompletion](docs/sdks/completions/README.md#createcompletion) - Creates a completion for the provided prompt and parameters.
-* `cancelFineTune` - Immediately cancel a fine-tune job.
+### [edits](docs/sdks/edits/README.md)
-* `createAnswer` - Answers the specified question using the provided documents and examples.
+* [~~createEdit~~](docs/sdks/edits/README.md#createedit) - Creates a new edit for the provided input, instruction, and parameters. :warning: **Deprecated**
-The endpoint first [searches](/docs/api-reference/searches) over provided documents or files to find relevant context. The relevant context is combined with the provided examples and question to create the prompt for [completion](/docs/api-reference/completions).
+### [embeddings](docs/sdks/embeddings/README.md)
+
+* [createEmbedding](docs/sdks/embeddings/README.md#createembedding) - Creates an embedding vector representing the input text.
+
+### [files](docs/sdks/files/README.md)
+
+* [createFile](docs/sdks/files/README.md#createfile) - Upload a file that can be used across various endpoints/features. Currently, the size of all the files uploaded by one organization can be up to 1 GB. Please [contact us](https://help.openai.com/) if you need to increase the storage limit.
+
+* [deleteFile](docs/sdks/files/README.md#deletefile) - Delete a file.
+* [downloadFile](docs/sdks/files/README.md#downloadfile) - Returns the contents of the specified file.
+* [listFiles](docs/sdks/files/README.md#listfiles) - Returns a list of files that belong to the user's organization.
+* [retrieveFile](docs/sdks/files/README.md#retrievefile) - Returns information about a specific file.
+
+### [fineTunes](docs/sdks/finetunes/README.md)
+
+* [~~cancelFineTune~~](docs/sdks/finetunes/README.md#cancelfinetune) - Immediately cancel a fine-tune job.
+ :warning: **Deprecated**
+* [~~createFineTune~~](docs/sdks/finetunes/README.md#createfinetune) - Creates a job that fine-tunes a specified model from a given dataset.
+
+Response includes details of the enqueued job including job status and the name of the fine-tuned models once complete.
-* `createChatCompletion` - Creates a completion for the chat message
-* `createClassification` - Classifies the specified `query` using provided examples.
+[Learn more about fine-tuning](/docs/guides/legacy-fine-tuning)
+ :warning: **Deprecated**
+* [~~listFineTuneEvents~~](docs/sdks/finetunes/README.md#listfinetuneevents) - Get fine-grained status updates for a fine-tune job.
+ :warning: **Deprecated**
+* [~~listFineTunes~~](docs/sdks/finetunes/README.md#listfinetunes) - List your organization's fine-tuning jobs
+ :warning: **Deprecated**
+* [~~retrieveFineTune~~](docs/sdks/finetunes/README.md#retrievefinetune) - Gets info about the fine-tune job.
-The endpoint first [searches](/docs/api-reference/searches) over the labeled examples
-to select the ones most relevant for the particular query. Then, the relevant examples
-are combined with the query to construct a prompt to produce the final label via the
-[completions](/docs/api-reference/completions) endpoint.
+[Learn more about fine-tuning](/docs/guides/legacy-fine-tuning)
+ :warning: **Deprecated**
-Labeled examples can be provided via an uploaded `file`, or explicitly listed in the
-request using the `examples` parameter for quick tests and small scale use cases.
+### [fineTuning](docs/sdks/finetuning/README.md)
-* `createCompletion` - Creates a completion for the provided prompt and parameters
-* `createEdit` - Creates a new edit for the provided input, instruction, and parameters.
-* `createEmbedding` - Creates an embedding vector representing the input text.
-* `createFile` - Upload a file that contains document(s) to be used across various endpoints/features. Currently, the size of all the files uploaded by one organization can be up to 1 GB. Please contact us if you need to increase the storage limit.
+* [cancelFineTuningJob](docs/sdks/finetuning/README.md#cancelfinetuningjob) - Immediately cancel a fine-tune job.
-* `createFineTune` - Creates a job that fine-tunes a specified model from a given dataset.
+* [createFineTuningJob](docs/sdks/finetuning/README.md#createfinetuningjob) - Creates a job that fine-tunes a specified model from a given dataset.
Response includes details of the enqueued job including job status and the name of the fine-tuned models once complete.
-[Learn more about Fine-tuning](/docs/guides/fine-tuning)
+[Learn more about fine-tuning](/docs/guides/fine-tuning)
-* `createImage` - Creates an image given a prompt.
-* `createImageEdit` - Creates an edited or extended image given an original image and a prompt.
-* `createImageVariation` - Creates a variation of a given image.
-* `createModeration` - Classifies if text violates OpenAI's Content Policy
-* `createSearch` - The search endpoint computes similarity scores between provided query and documents. Documents can be passed directly to the API if there are no more than 200 of them.
+* [listFineTuningEvents](docs/sdks/finetuning/README.md#listfinetuningevents) - Get status updates for a fine-tuning job.
-To go beyond the 200 document limit, documents can be processed offline and then used for efficient retrieval at query time. When `file` is set, the search endpoint searches over all the documents in the given file and returns up to the `max_rerank` number of documents. These documents will be returned along with their search scores.
+* [listPaginatedFineTuningJobs](docs/sdks/finetuning/README.md#listpaginatedfinetuningjobs) - List your organization's fine-tuning jobs
-The similarity score is a positive score that usually ranges from 0 to 300 (but can sometimes go higher), where a score above 200 usually means the document is semantically similar to the query.
+* [retrieveFineTuningJob](docs/sdks/finetuning/README.md#retrievefinetuningjob) - Get info about a fine-tuning job.
-* `createTranscription` - Transcribes audio into the input language.
-* `createTranslation` - Translates audio into into English.
-* `deleteFile` - Delete a file.
-* `deleteModel` - Delete a fine-tuned model. You must have the Owner role in your organization.
-* `downloadFile` - Returns the contents of the specified file
-* `listEngines` - Lists the currently available (non-finetuned) models, and provides basic information about each one such as the owner and availability.
-* `listFiles` - Returns a list of files that belong to the user's organization.
-* `listFineTuneEvents` - Get fine-grained status updates for a fine-tune job.
+[Learn more about fine-tuning](/docs/guides/fine-tuning)
-* `listFineTunes` - List your organization's fine-tuning jobs
-* `listModels` - Lists the currently available models, and provides basic information about each one such as the owner and availability.
-* `retrieveEngine` - Retrieves a model instance, providing basic information about it such as the owner and availability.
-* `retrieveFile` - Returns information about a specific file.
-* `retrieveFineTune` - Gets info about the fine-tune job.
+### [images](docs/sdks/images/README.md)
-[Learn more about Fine-tuning](/docs/guides/fine-tuning)
+* [createImage](docs/sdks/images/README.md#createimage) - Creates an image given a prompt.
+* [createImageEdit](docs/sdks/images/README.md#createimageedit) - Creates an edited or extended image given an original image and a prompt.
+* [createImageVariation](docs/sdks/images/README.md#createimagevariation) - Creates a variation of a given image.
-* `retrieveModel` - Retrieves a model instance, providing basic information about the model such as the owner and permissioning.
+### [models](docs/sdks/models/README.md)
+
+* [deleteModel](docs/sdks/models/README.md#deletemodel) - Delete a fine-tuned model. You must have the Owner role in your organization to delete a model.
+* [listModels](docs/sdks/models/README.md#listmodels) - Lists the currently available models, and provides basic information about each one such as the owner and availability.
+* [retrieveModel](docs/sdks/models/README.md#retrievemodel) - Retrieves a model instance, providing basic information about the model such as the owner and permissioning.
+
+### [moderations](docs/sdks/moderations/README.md)
+
+* [createModeration](docs/sdks/moderations/README.md#createmoderation) - Classifies if text violates OpenAI's Content Policy
+
+
+
+
+
+
+
+
+
+# Pagination
+
+Some of the endpoints in this SDK support pagination. To use pagination, you make your SDK calls as usual, but the
+returned response object will have a `next` method that can be called to pull down the next group of results. If the
+return value of `next` is `null`, then there are no more pages to be fetched.
+
+Here's an example of one such pagination call:
+
+
+
+
+
+
### SDK Generated by [Speakeasy](https://docs.speakeasyapi.dev/docs/using-speakeasy/client-sdks)
diff --git a/RELEASES.md b/RELEASES.md
index 799f006..58fb3d0 100644
--- a/RELEASES.md
+++ b/RELEASES.md
@@ -148,4 +148,596 @@ Based on:
- OpenAPI Doc 1.2.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
- Speakeasy CLI 1.19.2 (2.16.5) https://github.com/speakeasy-api/speakeasy
### Releases
-- [NPM v1.9.2] https://www.npmjs.com/package/@speakeasy-api/openai/v/1.9.2 - .
\ No newline at end of file
+- [NPM v1.9.2] https://www.npmjs.com/package/@speakeasy-api/openai/v/1.9.2 - .
+
+## 2023-06-09 01:15:43
+### Changes
+Based on:
+- OpenAPI Doc 1.2.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.45.2 (2.37.2) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v1.10.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/1.10.0 - .
+
+## 2023-06-10 01:09:14
+### Changes
+Based on:
+- OpenAPI Doc 1.2.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.47.0 (2.39.0) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v1.11.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/1.11.0 - .
+
+## 2023-06-11 01:21:03
+### Changes
+Based on:
+- OpenAPI Doc 1.2.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.47.1 (2.39.2) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v1.11.1] https://www.npmjs.com/package/@speakeasy-api/openai/v/1.11.1 - .
+
+## 2023-06-12 01:15:56
+### Changes
+Based on:
+- OpenAPI Doc 1.2.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.47.1 (2.39.2) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v1.11.2] https://www.npmjs.com/package/@speakeasy-api/openai/v/1.11.2 - .
+
+## 2023-06-14 01:10:14
+### Changes
+Based on:
+- OpenAPI Doc 1.3.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.47.3 (2.40.1) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v1.12.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/1.12.0 - .
+
+## 2023-06-15 01:10:40
+### Changes
+Based on:
+- OpenAPI Doc 1.3.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.47.4 (2.40.1) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v1.12.1] https://www.npmjs.com/package/@speakeasy-api/openai/v/1.12.1 - .
+
+## 2023-06-16 01:11:27
+### Changes
+Based on:
+- OpenAPI Doc 1.3.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.48.0 (2.41.1) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v1.13.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/1.13.0 - .
+
+## 2023-06-17 01:06:55
+### Changes
+Based on:
+- OpenAPI Doc 1.3.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.48.0 (2.41.1) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v1.13.1] https://www.npmjs.com/package/@speakeasy-api/openai/v/1.13.1 - .
+
+## 2023-06-20 01:08:50
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.49.0 (2.41.4) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.0.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.0.0 - .
+
+## 2023-06-21 01:25:35
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.49.1 (2.41.5) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.0.1] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.0.1 - .
+
+## 2023-06-23 01:19:10
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.50.1 (2.43.2) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.1.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.1.0 - .
+
+## 2023-06-27 01:20:30
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.51.1 (2.50.2) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.2.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.2.0 - .
+
+## 2023-06-29 01:18:17
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.51.3 (2.52.2) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.3.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.3.0 - .
+
+## 2023-07-01 01:25:51
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.52.0 (2.55.0) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.4.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.4.0 - .
+
+## 2023-07-04 01:20:06
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.52.0 (2.55.0) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.4.1] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.4.1 - .
+
+## 2023-07-06 01:22:17
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.52.2 (2.57.2) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.5.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.5.0 - .
+
+## 2023-07-07 01:22:06
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.53.0 (2.58.0) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.6.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.6.0 - .
+
+## 2023-07-08 01:20:49
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.53.1 (2.58.2) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.6.1] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.6.1 - .
+
+## 2023-07-09 01:25:10
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.53.1 (2.58.2) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.6.2] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.6.2 - .
+
+## 2023-07-11 01:13:01
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.56.0 (2.61.0) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.7.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.7.0 - .
+
+## 2023-07-12 01:18:46
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.56.4 (2.61.5) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.7.1] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.7.1 - .
+
+## 2023-07-13 01:22:18
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.57.0 (2.62.1) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.8.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.8.0 - .
+
+## 2023-07-14 01:21:29
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.59.0 (2.65.0) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.9.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.9.0 - .
+
+## 2023-07-17 01:22:38
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.60.0 (2.66.0) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.10.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.10.0 - .
+
+## 2023-07-18 01:41:59
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.61.0 (2.70.0) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.11.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.11.0 - .
+
+## 2023-07-19 02:30:18
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.62.1 (2.70.2) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.11.1] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.11.1 - .
+
+## 2023-07-22 01:08:59
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.64.0 (2.71.0) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.12.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.12.0 - .
+
+## 2023-07-26 01:08:38
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.65.0 (2.73.0) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.13.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.13.0 - .
+
+## 2023-07-27 01:01:21
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.65.1 (2.73.1) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.13.1] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.13.1 - .
+
+## 2023-07-28 01:01:57
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.65.2 (2.75.1) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.14.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.14.0 - .
+
+## 2023-08-01 01:09:49
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.66.1 (2.75.2) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.14.1] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.14.1 - .
+
+## 2023-08-03 01:03:42
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.68.1 (2.77.1) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.15.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.15.0 - .
+
+## 2023-08-04 01:05:28
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.68.3 (2.81.1) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.16.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.16.0 - .
+
+## 2023-08-08 01:01:55
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.69.1 (2.82.0) https://github.com/speakeasy-api/speakeasy
+### Releases
+- [NPM v2.17.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.17.0 - .
+
+## 2023-08-11 00:52:11
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.71.0 (2.83.3) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.17.1] .
+### Releases
+- [NPM v2.17.1] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.17.1 - .
+
+## 2023-08-13 00:55:17
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.71.0 (2.83.3) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.17.2] .
+### Releases
+- [NPM v2.17.2] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.17.2 - .
+
+## 2023-08-15 00:52:54
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.72.0 (2.84.1) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.18.0] .
+### Releases
+- [NPM v2.18.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.18.0 - .
+
+## 2023-08-17 00:51:43
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.73.1 (2.84.3) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.18.1] .
+### Releases
+- [NPM v2.18.1] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.18.1 - .
+
+## 2023-08-19 00:50:55
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.74.3 (2.86.6) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.18.2] .
+### Releases
+- [NPM v2.18.2] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.18.2 - .
+
+## 2023-08-25 00:53:52
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.74.11 (2.87.1) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.18.3] .
+### Releases
+- [NPM v2.18.3] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.18.3 - .
+
+## 2023-08-26 00:51:39
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.74.16 (2.88.2) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.19.0] .
+### Releases
+- [NPM v2.19.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.19.0 - .
+
+## 2023-08-31 00:54:10
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.76.1 (2.89.1) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.20.0] .
+### Releases
+- [NPM v2.20.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.20.0 - .
+
+## 2023-09-01 00:57:30
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.77.0 (2.91.2) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.21.0] .
+### Releases
+- [NPM v2.21.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.21.0 - .
+
+## 2023-09-02 00:52:07
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.77.2 (2.93.0) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.21.1] .
+### Releases
+- [NPM v2.21.1] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.21.1 - .
+
+## 2023-09-03 00:56:42
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.77.2 (2.93.0) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.21.2] .
+### Releases
+- [NPM v2.21.2] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.21.2 - .
+
+## 2023-09-05 00:53:17
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.78.3 (2.96.3) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.22.0] .
+### Releases
+- [NPM v2.22.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.22.0 - .
+
+## 2023-09-06 00:54:15
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.78.8 (2.96.6) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.22.1] .
+### Releases
+- [NPM v2.22.1] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.22.1 - .
+
+## 2023-09-08 00:53:45
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.82.0 (2.107.0) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.22.2] .
+### Releases
+- [NPM v2.22.2] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.22.2 - .
+
+## 2023-09-09 00:52:30
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.82.3 (2.107.3) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.22.3] .
+### Releases
+- [NPM v2.22.3] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.22.3 - .
+
+## 2023-09-13 00:55:20
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.82.5 (2.108.3) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.22.4] .
+### Releases
+- [NPM v2.22.4] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.22.4 - .
+
+## 2023-09-16 00:53:07
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.86.0 (2.115.2) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.22.5] .
+### Releases
+- [NPM v2.22.5] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.22.5 - .
+
+## 2023-09-20 00:54:36
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.88.0 (2.118.1) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.22.6] .
+### Releases
+- [NPM v2.22.6] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.22.6 - .
+
+## 2023-09-21 00:54:16
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.88.1 (2.122.1) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.22.7] .
+### Releases
+- [NPM v2.22.7] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.22.7 - .
+
+## 2023-09-22 00:54:44
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.89.0 (2.125.1) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.22.8] .
+### Releases
+- [NPM v2.22.8] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.22.8 - .
+
+## 2023-09-26 00:55:14
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.91.0 (2.129.1) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.23.0] .
+### Releases
+- [NPM v2.23.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.23.0 - .
+
+## 2023-09-27 00:55:18
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.91.2 (2.131.1) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.23.1] .
+### Releases
+- [NPM v2.23.1] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.23.1 - .
+
+## 2023-09-29 00:55:03
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.91.3 (2.139.1) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.24.0] .
+### Releases
+- [NPM v2.24.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.24.0 - .
+
+## 2023-10-01 01:02:08
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.92.2 (2.142.2) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.25.0] .
+### Releases
+- [NPM v2.25.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.25.0 - .
+
+## 2023-10-02 00:55:44
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.92.3 (2.143.2) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.25.1] .
+### Releases
+- [NPM v2.25.1] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.25.1 - .
+
+## 2023-10-03 00:55:51
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.93.1 (2.144.7) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.25.2] .
+### Releases
+- [NPM v2.25.2] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.25.2 - .
+
+## 2023-10-05 00:55:18
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.94.0 (2.147.0) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.25.3] .
+### Releases
+- [NPM v2.25.3] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.25.3 - .
+
+## 2023-10-07 00:54:33
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.96.1 (2.150.0) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.26.0] .
+### Releases
+- [NPM v2.26.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.26.0 - .
+
+## 2023-10-11 00:54:51
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.97.1 (2.152.1) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.26.1] .
+### Releases
+- [NPM v2.26.1] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.26.1 - .
+
+## 2023-10-20 00:55:06
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.101.0 (2.161.0) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.26.2] .
+### Releases
+- [NPM v2.26.2] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.26.2 - .
+
+## 2023-10-21 00:53:53
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.104.0 (2.169.0) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.27.0] .
+### Releases
+- [NPM v2.27.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.27.0 - .
+
+## 2023-10-25 00:55:14
+### Changes
+Based on:
+- OpenAPI Doc 2.0.0 https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml
+- Speakeasy CLI 1.107.0 (2.171.0) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [typescript v2.28.0] .
+### Releases
+- [NPM v2.28.0] https://www.npmjs.com/package/@speakeasy-api/openai/v/2.28.0 - .
\ No newline at end of file
diff --git a/USAGE.md b/USAGE.md
index c25d8ad..2ce590c 100755
--- a/USAGE.md
+++ b/USAGE.md
@@ -1,20 +1,28 @@
-```typescript
-import {
- CancelFineTuneRequest,
- CancelFineTuneResponse
-} from "@speakeasy-api/openai/dist/sdk/models/operations";
-import { AxiosError } from "axios";
+
+```typescript
import { Gpt } from "@speakeasy-api/openai";
-const sdk = new Gpt();
+import { CreateTranscriptionRequestResponseFormat } from "@speakeasy-api/openai/dist/sdk/models/shared";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
-const req: CancelFineTuneRequest = {
- fineTuneId: "ft-AF1WoRqd3aJAHsqc9NY7iL8F",
-};
+ const res = await sdk.audio.createTranscription({
+ file: {
+ content: "\#BbTW'zX9" as bytes <<<>>>,
+ file: "string",
+ },
+ model: "whisper-1",
+ });
-sdk.openAI.cancelFineTune(req).then((res: CancelFineTuneResponse | AxiosError) => {
- // handle response
-});
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
```
\ No newline at end of file
diff --git a/docs/models/operations/cancelfinetunerequest.md b/docs/models/operations/cancelfinetunerequest.md
new file mode 100755
index 0000000..4197899
--- /dev/null
+++ b/docs/models/operations/cancelfinetunerequest.md
@@ -0,0 +1,8 @@
+# CancelFineTuneRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------- | -------------------------------------- | -------------------------------------- | -------------------------------------- | -------------------------------------- |
+| `fineTuneId` | *string* | :heavy_check_mark: | The ID of the fine-tune job to cancel
| ft-AF1WoRqd3aJAHsqc9NY7iL8F |
\ No newline at end of file
diff --git a/docs/models/operations/cancelfinetuneresponse.md b/docs/models/operations/cancelfinetuneresponse.md
new file mode 100755
index 0000000..f2e3d2f
--- /dev/null
+++ b/docs/models/operations/cancelfinetuneresponse.md
@@ -0,0 +1,11 @@
+# CancelFineTuneResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `fineTune` | [shared.FineTune](../../models/shared/finetune.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/cancelfinetuningjobrequest.md b/docs/models/operations/cancelfinetuningjobrequest.md
new file mode 100755
index 0000000..ec1e472
--- /dev/null
+++ b/docs/models/operations/cancelfinetuningjobrequest.md
@@ -0,0 +1,8 @@
+# CancelFineTuningJobRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | ----------------------------------------- |
+| `fineTuningJobId` | *string* | :heavy_check_mark: | The ID of the fine-tuning job to cancel.
| ft-AF1WoRqd3aJAHsqc9NY7iL8F |
\ No newline at end of file
diff --git a/docs/models/operations/cancelfinetuningjobresponse.md b/docs/models/operations/cancelfinetuningjobresponse.md
new file mode 100755
index 0000000..55c3ae0
--- /dev/null
+++ b/docs/models/operations/cancelfinetuningjobresponse.md
@@ -0,0 +1,11 @@
+# CancelFineTuningJobResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `fineTuningJob` | [shared.FineTuningJob](../../models/shared/finetuningjob.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/createchatcompletionresponse.md b/docs/models/operations/createchatcompletionresponse.md
new file mode 100755
index 0000000..3dd524c
--- /dev/null
+++ b/docs/models/operations/createchatcompletionresponse.md
@@ -0,0 +1,11 @@
+# CreateChatCompletionResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `createChatCompletionResponse` | [shared.CreateChatCompletionResponse](../../models/shared/createchatcompletionresponse.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/createcompletionresponse.md b/docs/models/operations/createcompletionresponse.md
new file mode 100755
index 0000000..215452a
--- /dev/null
+++ b/docs/models/operations/createcompletionresponse.md
@@ -0,0 +1,11 @@
+# CreateCompletionResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `createCompletionResponse` | [shared.CreateCompletionResponse](../../models/shared/createcompletionresponse.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/createeditresponse.md b/docs/models/operations/createeditresponse.md
new file mode 100755
index 0000000..36e2ac5
--- /dev/null
+++ b/docs/models/operations/createeditresponse.md
@@ -0,0 +1,11 @@
+# CreateEditResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `createEditResponse` | [shared.CreateEditResponse](../../models/shared/createeditresponse.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/createembeddingresponse.md b/docs/models/operations/createembeddingresponse.md
new file mode 100755
index 0000000..f1cde31
--- /dev/null
+++ b/docs/models/operations/createembeddingresponse.md
@@ -0,0 +1,11 @@
+# CreateEmbeddingResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `createEmbeddingResponse` | [shared.CreateEmbeddingResponse](../../models/shared/createembeddingresponse.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/createfileresponse.md b/docs/models/operations/createfileresponse.md
new file mode 100755
index 0000000..015f9fb
--- /dev/null
+++ b/docs/models/operations/createfileresponse.md
@@ -0,0 +1,11 @@
+# CreateFileResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `openAIFile` | [shared.OpenAIFile](../../models/shared/openaifile.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/createfinetuneresponse.md b/docs/models/operations/createfinetuneresponse.md
new file mode 100755
index 0000000..cf1f98b
--- /dev/null
+++ b/docs/models/operations/createfinetuneresponse.md
@@ -0,0 +1,11 @@
+# CreateFineTuneResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `fineTune` | [shared.FineTune](../../models/shared/finetune.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/createfinetuningjobresponse.md b/docs/models/operations/createfinetuningjobresponse.md
new file mode 100755
index 0000000..f4d2ecc
--- /dev/null
+++ b/docs/models/operations/createfinetuningjobresponse.md
@@ -0,0 +1,11 @@
+# CreateFineTuningJobResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `fineTuningJob` | [shared.FineTuningJob](../../models/shared/finetuningjob.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/createimageeditresponse.md b/docs/models/operations/createimageeditresponse.md
new file mode 100755
index 0000000..c2db5fe
--- /dev/null
+++ b/docs/models/operations/createimageeditresponse.md
@@ -0,0 +1,11 @@
+# CreateImageEditResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `imagesResponse` | [shared.ImagesResponse](../../models/shared/imagesresponse.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/createimageresponse.md b/docs/models/operations/createimageresponse.md
new file mode 100755
index 0000000..8c45c4c
--- /dev/null
+++ b/docs/models/operations/createimageresponse.md
@@ -0,0 +1,11 @@
+# CreateImageResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `imagesResponse` | [shared.ImagesResponse](../../models/shared/imagesresponse.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/createimagevariationresponse.md b/docs/models/operations/createimagevariationresponse.md
new file mode 100755
index 0000000..43a2c37
--- /dev/null
+++ b/docs/models/operations/createimagevariationresponse.md
@@ -0,0 +1,11 @@
+# CreateImageVariationResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `imagesResponse` | [shared.ImagesResponse](../../models/shared/imagesresponse.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/createmoderationresponse.md b/docs/models/operations/createmoderationresponse.md
new file mode 100755
index 0000000..a010b55
--- /dev/null
+++ b/docs/models/operations/createmoderationresponse.md
@@ -0,0 +1,11 @@
+# CreateModerationResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `createModerationResponse` | [shared.CreateModerationResponse](../../models/shared/createmoderationresponse.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/createtranscriptionresponse.md b/docs/models/operations/createtranscriptionresponse.md
new file mode 100755
index 0000000..4479578
--- /dev/null
+++ b/docs/models/operations/createtranscriptionresponse.md
@@ -0,0 +1,11 @@
+# CreateTranscriptionResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `createTranscriptionResponse` | [shared.CreateTranscriptionResponse](../../models/shared/createtranscriptionresponse.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/createtranslationresponse.md b/docs/models/operations/createtranslationresponse.md
new file mode 100755
index 0000000..2e4ef40
--- /dev/null
+++ b/docs/models/operations/createtranslationresponse.md
@@ -0,0 +1,11 @@
+# CreateTranslationResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `createTranslationResponse` | [shared.CreateTranslationResponse](../../models/shared/createtranslationresponse.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/deletefilerequest.md b/docs/models/operations/deletefilerequest.md
new file mode 100755
index 0000000..ee36ece
--- /dev/null
+++ b/docs/models/operations/deletefilerequest.md
@@ -0,0 +1,8 @@
+# DeleteFileRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- |
+| `fileId` | *string* | :heavy_check_mark: | The ID of the file to use for this request. |
\ No newline at end of file
diff --git a/docs/models/operations/deletefileresponse.md b/docs/models/operations/deletefileresponse.md
new file mode 100755
index 0000000..6946657
--- /dev/null
+++ b/docs/models/operations/deletefileresponse.md
@@ -0,0 +1,11 @@
+# DeleteFileResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `deleteFileResponse` | [shared.DeleteFileResponse](../../models/shared/deletefileresponse.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/deletemodelrequest.md b/docs/models/operations/deletemodelrequest.md
new file mode 100755
index 0000000..42f0262
--- /dev/null
+++ b/docs/models/operations/deletemodelrequest.md
@@ -0,0 +1,8 @@
+# DeleteModelRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------- | -------------------------------------- | -------------------------------------- | -------------------------------------- | -------------------------------------- |
+| `model` | *string* | :heavy_check_mark: | The model to delete | ft:gpt-3.5-turbo:acemeco:suffix:abc123 |
\ No newline at end of file
diff --git a/docs/models/operations/deletemodelresponse.md b/docs/models/operations/deletemodelresponse.md
new file mode 100755
index 0000000..aba1974
--- /dev/null
+++ b/docs/models/operations/deletemodelresponse.md
@@ -0,0 +1,11 @@
+# DeleteModelResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `deleteModelResponse` | [shared.DeleteModelResponse](../../models/shared/deletemodelresponse.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/downloadfilerequest.md b/docs/models/operations/downloadfilerequest.md
new file mode 100755
index 0000000..0167276
--- /dev/null
+++ b/docs/models/operations/downloadfilerequest.md
@@ -0,0 +1,8 @@
+# DownloadFileRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- |
+| `fileId` | *string* | :heavy_check_mark: | The ID of the file to use for this request. |
\ No newline at end of file
diff --git a/docs/models/operations/downloadfileresponse.md b/docs/models/operations/downloadfileresponse.md
new file mode 100755
index 0000000..2fb14f2
--- /dev/null
+++ b/docs/models/operations/downloadfileresponse.md
@@ -0,0 +1,11 @@
+# DownloadFileResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
+| `downloadFile200ApplicationJSONString` | *string* | :heavy_minus_sign: | OK |
\ No newline at end of file
diff --git a/docs/models/operations/listfilesresponse.md b/docs/models/operations/listfilesresponse.md
new file mode 100755
index 0000000..43b8e4a
--- /dev/null
+++ b/docs/models/operations/listfilesresponse.md
@@ -0,0 +1,11 @@
+# ListFilesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `listFilesResponse` | [shared.ListFilesResponse](../../models/shared/listfilesresponse.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/listfinetuneeventsrequest.md b/docs/models/operations/listfinetuneeventsrequest.md
new file mode 100755
index 0000000..35fa550
--- /dev/null
+++ b/docs/models/operations/listfinetuneeventsrequest.md
@@ -0,0 +1,9 @@
+# ListFineTuneEventsRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `fineTuneId` | *string* | :heavy_check_mark: | The ID of the fine-tune job to get events for.
| ft-AF1WoRqd3aJAHsqc9NY7iL8F |
+| `stream` | *boolean* | :heavy_minus_sign: | Whether to stream events for the fine-tune job. If set to true,
events will be sent as data-only
[server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format)
as they become available. The stream will terminate with a
`data: [DONE]` message when the job is finished (succeeded, cancelled,
or failed).
If set to false, only events generated so far will be returned.
| |
\ No newline at end of file
diff --git a/docs/models/operations/listfinetuneeventsresponse.md b/docs/models/operations/listfinetuneeventsresponse.md
new file mode 100755
index 0000000..68eeeb6
--- /dev/null
+++ b/docs/models/operations/listfinetuneeventsresponse.md
@@ -0,0 +1,11 @@
+# ListFineTuneEventsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `listFineTuneEventsResponse` | [shared.ListFineTuneEventsResponse](../../models/shared/listfinetuneeventsresponse.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/listfinetunesresponse.md b/docs/models/operations/listfinetunesresponse.md
new file mode 100755
index 0000000..1cb6d82
--- /dev/null
+++ b/docs/models/operations/listfinetunesresponse.md
@@ -0,0 +1,11 @@
+# ListFineTunesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `listFineTunesResponse` | [shared.ListFineTunesResponse](../../models/shared/listfinetunesresponse.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/listfinetuningeventsrequest.md b/docs/models/operations/listfinetuningeventsrequest.md
new file mode 100755
index 0000000..b226de2
--- /dev/null
+++ b/docs/models/operations/listfinetuningeventsrequest.md
@@ -0,0 +1,10 @@
+# ListFineTuningEventsRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- |
+| `after` | *string* | :heavy_minus_sign: | Identifier for the last event from the previous pagination request. | |
+| `fineTuningJobId` | *string* | :heavy_check_mark: | The ID of the fine-tuning job to get events for.
| ft-AF1WoRqd3aJAHsqc9NY7iL8F |
+| `limit` | *number* | :heavy_minus_sign: | Number of events to retrieve. | |
\ No newline at end of file
diff --git a/docs/models/operations/listfinetuningeventsresponse.md b/docs/models/operations/listfinetuningeventsresponse.md
new file mode 100755
index 0000000..230ed32
--- /dev/null
+++ b/docs/models/operations/listfinetuningeventsresponse.md
@@ -0,0 +1,11 @@
+# ListFineTuningEventsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `listFineTuningJobEventsResponse` | [shared.ListFineTuningJobEventsResponse](../../models/shared/listfinetuningjobeventsresponse.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/listmodelsresponse.md b/docs/models/operations/listmodelsresponse.md
new file mode 100755
index 0000000..9157946
--- /dev/null
+++ b/docs/models/operations/listmodelsresponse.md
@@ -0,0 +1,11 @@
+# ListModelsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `listModelsResponse` | [shared.ListModelsResponse](../../models/shared/listmodelsresponse.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/listpaginatedfinetuningjobsrequest.md b/docs/models/operations/listpaginatedfinetuningjobsrequest.md
new file mode 100755
index 0000000..b1ca0a9
--- /dev/null
+++ b/docs/models/operations/listpaginatedfinetuningjobsrequest.md
@@ -0,0 +1,9 @@
+# ListPaginatedFineTuningJobsRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- |
+| `after` | *string* | :heavy_minus_sign: | Identifier for the last job from the previous pagination request. |
+| `limit` | *number* | :heavy_minus_sign: | Number of fine-tuning jobs to retrieve. |
\ No newline at end of file
diff --git a/docs/models/operations/listpaginatedfinetuningjobsresponse.md b/docs/models/operations/listpaginatedfinetuningjobsresponse.md
new file mode 100755
index 0000000..bac1eb4
--- /dev/null
+++ b/docs/models/operations/listpaginatedfinetuningjobsresponse.md
@@ -0,0 +1,11 @@
+# ListPaginatedFineTuningJobsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `listPaginatedFineTuningJobsResponse` | [shared.ListPaginatedFineTuningJobsResponse](../../models/shared/listpaginatedfinetuningjobsresponse.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/retrievefilerequest.md b/docs/models/operations/retrievefilerequest.md
new file mode 100755
index 0000000..842fd4e
--- /dev/null
+++ b/docs/models/operations/retrievefilerequest.md
@@ -0,0 +1,8 @@
+# RetrieveFileRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- |
+| `fileId` | *string* | :heavy_check_mark: | The ID of the file to use for this request. |
\ No newline at end of file
diff --git a/docs/models/operations/retrievefileresponse.md b/docs/models/operations/retrievefileresponse.md
new file mode 100755
index 0000000..c596cbd
--- /dev/null
+++ b/docs/models/operations/retrievefileresponse.md
@@ -0,0 +1,11 @@
+# RetrieveFileResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `openAIFile` | [shared.OpenAIFile](../../models/shared/openaifile.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/retrievefinetunerequest.md b/docs/models/operations/retrievefinetunerequest.md
new file mode 100755
index 0000000..56f6349
--- /dev/null
+++ b/docs/models/operations/retrievefinetunerequest.md
@@ -0,0 +1,8 @@
+# RetrieveFineTuneRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `fineTuneId` | *string* | :heavy_check_mark: | The ID of the fine-tune job
| ft-AF1WoRqd3aJAHsqc9NY7iL8F |
\ No newline at end of file
diff --git a/docs/models/operations/retrievefinetuneresponse.md b/docs/models/operations/retrievefinetuneresponse.md
new file mode 100755
index 0000000..682cf60
--- /dev/null
+++ b/docs/models/operations/retrievefinetuneresponse.md
@@ -0,0 +1,11 @@
+# RetrieveFineTuneResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `fineTune` | [shared.FineTune](../../models/shared/finetune.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/retrievefinetuningjobrequest.md b/docs/models/operations/retrievefinetuningjobrequest.md
new file mode 100755
index 0000000..559136c
--- /dev/null
+++ b/docs/models/operations/retrievefinetuningjobrequest.md
@@ -0,0 +1,8 @@
+# RetrieveFineTuningJobRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `fineTuningJobId` | *string* | :heavy_check_mark: | The ID of the fine-tuning job.
| ft-AF1WoRqd3aJAHsqc9NY7iL8F |
\ No newline at end of file
diff --git a/docs/models/operations/retrievefinetuningjobresponse.md b/docs/models/operations/retrievefinetuningjobresponse.md
new file mode 100755
index 0000000..a80f1da
--- /dev/null
+++ b/docs/models/operations/retrievefinetuningjobresponse.md
@@ -0,0 +1,11 @@
+# RetrieveFineTuningJobResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `fineTuningJob` | [shared.FineTuningJob](../../models/shared/finetuningjob.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/operations/retrievemodelrequest.md b/docs/models/operations/retrievemodelrequest.md
new file mode 100755
index 0000000..8a8dfda
--- /dev/null
+++ b/docs/models/operations/retrievemodelrequest.md
@@ -0,0 +1,8 @@
+# RetrieveModelRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- |
+| `model` | *string* | :heavy_check_mark: | The ID of the model to use for this request | gpt-3.5-turbo |
\ No newline at end of file
diff --git a/docs/models/operations/retrievemodelresponse.md b/docs/models/operations/retrievemodelresponse.md
new file mode 100755
index 0000000..974b317
--- /dev/null
+++ b/docs/models/operations/retrievemodelresponse.md
@@ -0,0 +1,11 @@
+# RetrieveModelResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- |
+| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
+| `model` | [shared.Model](../../models/shared/model.md) | :heavy_minus_sign: | OK |
+| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
+| `rawResponse` | [AxiosResponse](https://axios-http.com/docs/res_schema) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/shared/chatcompletionfunctions.md b/docs/models/shared/chatcompletionfunctions.md
new file mode 100755
index 0000000..ccdcfc0
--- /dev/null
+++ b/docs/models/shared/chatcompletionfunctions.md
@@ -0,0 +1,10 @@
+# ChatCompletionFunctions
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `description` | *string* | :heavy_minus_sign: | A description of what the function does, used by the model to choose when and how to call the function. |
+| `name` | *string* | :heavy_check_mark: | The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64. |
+| `parameters` | Record | :heavy_check_mark: | The parameters the functions accepts, described as a JSON Schema object. See the [guide](/docs/guides/gpt/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format.
To describe a function that accepts no parameters, provide the value `{"type": "object", "properties": {}}`. |
\ No newline at end of file
diff --git a/docs/models/shared/chatcompletionrequestmessage.md b/docs/models/shared/chatcompletionrequestmessage.md
new file mode 100755
index 0000000..5e4eb36
--- /dev/null
+++ b/docs/models/shared/chatcompletionrequestmessage.md
@@ -0,0 +1,11 @@
+# ChatCompletionRequestMessage
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `content` | *string* | :heavy_check_mark: | The contents of the message. `content` is required for all messages, and may be null for assistant messages with function calls. |
+| `functionCall` | [ChatCompletionRequestMessageFunctionCall](../../models/shared/chatcompletionrequestmessagefunctioncall.md) | :heavy_minus_sign: | The name and arguments of a function that should be called, as generated by the model. |
+| `name` | *string* | :heavy_minus_sign: | The name of the author of this message. `name` is required if role is `function`, and it should be the name of the function whose response is in the `content`. May contain a-z, A-Z, 0-9, and underscores, with a maximum length of 64 characters. |
+| `role` | [ChatCompletionRequestMessageRole](../../models/shared/chatcompletionrequestmessagerole.md) | :heavy_check_mark: | The role of the messages author. One of `system`, `user`, `assistant`, or `function`. |
\ No newline at end of file
diff --git a/docs/models/shared/chatcompletionrequestmessagefunctioncall.md b/docs/models/shared/chatcompletionrequestmessagefunctioncall.md
new file mode 100755
index 0000000..7908f85
--- /dev/null
+++ b/docs/models/shared/chatcompletionrequestmessagefunctioncall.md
@@ -0,0 +1,11 @@
+# ChatCompletionRequestMessageFunctionCall
+
+The name and arguments of a function that should be called, as generated by the model.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `arguments` | *string* | :heavy_check_mark: | The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may hallucinate parameters not defined by your function schema. Validate the arguments in your code before calling your function. |
+| `name` | *string* | :heavy_check_mark: | The name of the function to call. |
\ No newline at end of file
diff --git a/docs/models/shared/chatcompletionrequestmessagerole.md b/docs/models/shared/chatcompletionrequestmessagerole.md
new file mode 100755
index 0000000..8a1e113
--- /dev/null
+++ b/docs/models/shared/chatcompletionrequestmessagerole.md
@@ -0,0 +1,13 @@
+# ChatCompletionRequestMessageRole
+
+The role of the messages author. One of `system`, `user`, `assistant`, or `function`.
+
+
+## Values
+
+| Name | Value |
+| ----------- | ----------- |
+| `System` | system |
+| `User` | user |
+| `Assistant` | assistant |
+| `Function` | function |
\ No newline at end of file
diff --git a/docs/models/shared/chatcompletionresponsemessage.md b/docs/models/shared/chatcompletionresponsemessage.md
new file mode 100755
index 0000000..794904e
--- /dev/null
+++ b/docs/models/shared/chatcompletionresponsemessage.md
@@ -0,0 +1,12 @@
+# ChatCompletionResponseMessage
+
+A chat completion message generated by the model.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
+| `content` | *string* | :heavy_check_mark: | The contents of the message. |
+| `functionCall` | [ChatCompletionResponseMessageFunctionCall](../../models/shared/chatcompletionresponsemessagefunctioncall.md) | :heavy_minus_sign: | The name and arguments of a function that should be called, as generated by the model. |
+| `role` | [ChatCompletionResponseMessageRole](../../models/shared/chatcompletionresponsemessagerole.md) | :heavy_check_mark: | The role of the author of this message. |
\ No newline at end of file
diff --git a/docs/models/shared/chatcompletionresponsemessagefunctioncall.md b/docs/models/shared/chatcompletionresponsemessagefunctioncall.md
new file mode 100755
index 0000000..618c861
--- /dev/null
+++ b/docs/models/shared/chatcompletionresponsemessagefunctioncall.md
@@ -0,0 +1,11 @@
+# ChatCompletionResponseMessageFunctionCall
+
+The name and arguments of a function that should be called, as generated by the model.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `arguments` | *string* | :heavy_check_mark: | The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may hallucinate parameters not defined by your function schema. Validate the arguments in your code before calling your function. |
+| `name` | *string* | :heavy_check_mark: | The name of the function to call. |
\ No newline at end of file
diff --git a/docs/models/shared/chatcompletionresponsemessagerole.md b/docs/models/shared/chatcompletionresponsemessagerole.md
new file mode 100755
index 0000000..44c97bf
--- /dev/null
+++ b/docs/models/shared/chatcompletionresponsemessagerole.md
@@ -0,0 +1,13 @@
+# ChatCompletionResponseMessageRole
+
+The role of the author of this message.
+
+
+## Values
+
+| Name | Value |
+| ----------- | ----------- |
+| `System` | system |
+| `User` | user |
+| `Assistant` | assistant |
+| `Function` | function |
\ No newline at end of file
diff --git a/docs/models/shared/completionusage.md b/docs/models/shared/completionusage.md
new file mode 100755
index 0000000..7e3a83a
--- /dev/null
+++ b/docs/models/shared/completionusage.md
@@ -0,0 +1,12 @@
+# CompletionUsage
+
+Usage statistics for the completion request.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- |
+| `completionTokens` | *number* | :heavy_check_mark: | Number of tokens in the generated completion. |
+| `promptTokens` | *number* | :heavy_check_mark: | Number of tokens in the prompt. |
+| `totalTokens` | *number* | :heavy_check_mark: | Total number of tokens used in the request (prompt + completion). |
\ No newline at end of file
diff --git a/docs/models/shared/createchatcompletionrequest.md b/docs/models/shared/createchatcompletionrequest.md
new file mode 100755
index 0000000..71a80c1
--- /dev/null
+++ b/docs/models/shared/createchatcompletionrequest.md
@@ -0,0 +1,21 @@
+# CreateChatCompletionRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `frequencyPenalty` | *number* | :heavy_minus_sign: | Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
[See more information about frequency and presence penalties.](/docs/guides/gpt/parameter-details)
| |
+| `functionCall` | *any* | :heavy_minus_sign: | Controls how the model calls functions. "none" means the model will not call a function and instead generates a message. "auto" means the model can pick between generating a message or calling a function. Specifying a particular function via `{"name": "my_function"}` forces the model to call that function. "none" is the default when no functions are present. "auto" is the default if functions are present.
| |
+| `functions` | [ChatCompletionFunctions](../../models/shared/chatcompletionfunctions.md)[] | :heavy_minus_sign: | A list of functions the model may generate JSON inputs for. | |
+| `logitBias` | Record | :heavy_minus_sign: | Modify the likelihood of specified tokens appearing in the completion.
Accepts a json object that maps tokens (specified by their token ID in the tokenizer) to an associated bias value from -100 to 100. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token.
| |
+| `maxTokens` | *number* | :heavy_minus_sign: | The maximum number of [tokens](/tokenizer) to generate in the chat completion.
The total length of input tokens and generated tokens is limited by the model's context length. [Example Python code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens.
| |
+| `messages` | [ChatCompletionRequestMessage](../../models/shared/chatcompletionrequestmessage.md)[] | :heavy_check_mark: | A list of messages comprising the conversation so far. [Example Python code](https://cookbook.openai.com/examples/how_to_format_inputs_to_chatgpt_models). | |
+| `model` | *any* | :heavy_check_mark: | ID of the model to use. See the [model endpoint compatibility](/docs/models/model-endpoint-compatibility) table for details on which models work with the Chat API. | gpt-3.5-turbo |
+| `n` | *number* | :heavy_minus_sign: | How many chat completion choices to generate for each input message. | 1 |
+| `presencePenalty` | *number* | :heavy_minus_sign: | Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.
[See more information about frequency and presence penalties.](/docs/guides/gpt/parameter-details)
| |
+| `stop` | *any* | :heavy_minus_sign: | Up to 4 sequences where the API will stop generating further tokens.
| |
+| `stream` | *boolean* | :heavy_minus_sign: | If set, partial message deltas will be sent, like in ChatGPT. Tokens will be sent as data-only [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format) as they become available, with the stream terminated by a `data: [DONE]` message. [Example Python code](https://cookbook.openai.com/examples/how_to_stream_completions).
| |
+| `temperature` | *number* | :heavy_minus_sign: | What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.
We generally recommend altering this or `top_p` but not both.
| 1 |
+| `topP` | *number* | :heavy_minus_sign: | An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.
We generally recommend altering this or `temperature` but not both.
| 1 |
+| `user` | *string* | :heavy_minus_sign: | A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).
| user-1234 |
\ No newline at end of file
diff --git a/docs/models/shared/createchatcompletionresponse.md b/docs/models/shared/createchatcompletionresponse.md
new file mode 100755
index 0000000..8048de9
--- /dev/null
+++ b/docs/models/shared/createchatcompletionresponse.md
@@ -0,0 +1,15 @@
+# CreateChatCompletionResponse
+
+Represents a chat completion response returned by model, based on the provided input.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
+| `choices` | [CreateChatCompletionResponseChoices](../../models/shared/createchatcompletionresponsechoices.md)[] | :heavy_check_mark: | A list of chat completion choices. Can be more than one if `n` is greater than 1. |
+| `created` | *number* | :heavy_check_mark: | The Unix timestamp (in seconds) of when the chat completion was created. |
+| `id` | *string* | :heavy_check_mark: | A unique identifier for the chat completion. |
+| `model` | *string* | :heavy_check_mark: | The model used for the chat completion. |
+| `object` | *string* | :heavy_check_mark: | The object type, which is always `chat.completion`. |
+| `usage` | [CompletionUsage](../../models/shared/completionusage.md) | :heavy_minus_sign: | Usage statistics for the completion request. |
\ No newline at end of file
diff --git a/docs/models/shared/createchatcompletionresponsechoices.md b/docs/models/shared/createchatcompletionresponsechoices.md
new file mode 100755
index 0000000..53e6d31
--- /dev/null
+++ b/docs/models/shared/createchatcompletionresponsechoices.md
@@ -0,0 +1,10 @@
+# CreateChatCompletionResponseChoices
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `finishReason` | [CreateChatCompletionResponseChoicesFinishReason](../../models/shared/createchatcompletionresponsechoicesfinishreason.md) | :heavy_check_mark: | The reason the model stopped generating tokens. This will be `stop` if the model hit a natural stop point or a provided stop sequence,
`length` if the maximum number of tokens specified in the request was reached,
`content_filter` if content was omitted due to a flag from our content filters,
or `function_call` if the model called a function.
|
+| `index` | *number* | :heavy_check_mark: | The index of the choice in the list of choices. |
+| `message` | [ChatCompletionResponseMessage](../../models/shared/chatcompletionresponsemessage.md) | :heavy_check_mark: | A chat completion message generated by the model. |
\ No newline at end of file
diff --git a/docs/models/shared/createchatcompletionresponsechoicesfinishreason.md b/docs/models/shared/createchatcompletionresponsechoicesfinishreason.md
new file mode 100755
index 0000000..4933ac7
--- /dev/null
+++ b/docs/models/shared/createchatcompletionresponsechoicesfinishreason.md
@@ -0,0 +1,17 @@
+# CreateChatCompletionResponseChoicesFinishReason
+
+The reason the model stopped generating tokens. This will be `stop` if the model hit a natural stop point or a provided stop sequence,
+`length` if the maximum number of tokens specified in the request was reached,
+`content_filter` if content was omitted due to a flag from our content filters,
+or `function_call` if the model called a function.
+
+
+
+## Values
+
+| Name | Value |
+| --------------- | --------------- |
+| `Stop` | stop |
+| `Length` | length |
+| `FunctionCall` | function_call |
+| `ContentFilter` | content_filter |
\ No newline at end of file
diff --git a/docs/models/shared/createcompletionrequest.md b/docs/models/shared/createcompletionrequest.md
new file mode 100755
index 0000000..eeb4f37
--- /dev/null
+++ b/docs/models/shared/createcompletionrequest.md
@@ -0,0 +1,23 @@
+# CreateCompletionRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `bestOf` | *number* | :heavy_minus_sign: | Generates `best_of` completions server-side and returns the "best" (the one with the highest log probability per token). Results cannot be streamed.
When used with `n`, `best_of` controls the number of candidate completions and `n` specifies how many to return – `best_of` must be greater than `n`.
**Note:** Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for `max_tokens` and `stop`.
| |
+| `echo` | *boolean* | :heavy_minus_sign: | Echo back the prompt in addition to the completion
| |
+| `frequencyPenalty` | *number* | :heavy_minus_sign: | Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
[See more information about frequency and presence penalties.](/docs/guides/gpt/parameter-details)
| |
+| `logitBias` | Record | :heavy_minus_sign: | Modify the likelihood of specified tokens appearing in the completion.
Accepts a json object that maps tokens (specified by their token ID in the GPT tokenizer) to an associated bias value from -100 to 100. You can use this [tokenizer tool](/tokenizer?view=bpe) (which works for both GPT-2 and GPT-3) to convert text to token IDs. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token.
As an example, you can pass `{"50256": -100}` to prevent the <\|endoftext\|> token from being generated.
| |
+| `logprobs` | *number* | :heavy_minus_sign: | Include the log probabilities on the `logprobs` most likely tokens, as well the chosen tokens. For example, if `logprobs` is 5, the API will return a list of the 5 most likely tokens. The API will always return the `logprob` of the sampled token, so there may be up to `logprobs+1` elements in the response.
The maximum value for `logprobs` is 5.
| |
+| `maxTokens` | *number* | :heavy_minus_sign: | The maximum number of [tokens](/tokenizer) to generate in the completion.
The token count of your prompt plus `max_tokens` cannot exceed the model's context length. [Example Python code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens.
| 16 |
+| `model` | *any* | :heavy_check_mark: | ID of the model to use. You can use the [List models](/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](/docs/models/overview) for descriptions of them.
| |
+| `n` | *number* | :heavy_minus_sign: | How many completions to generate for each prompt.
**Note:** Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for `max_tokens` and `stop`.
| 1 |
+| `presencePenalty` | *number* | :heavy_minus_sign: | Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.
[See more information about frequency and presence penalties.](/docs/guides/gpt/parameter-details)
| |
+| `prompt` | *any* | :heavy_check_mark: | The prompt(s) to generate completions for, encoded as a string, array of strings, array of tokens, or array of token arrays.
Note that <\|endoftext\|> is the document separator that the model sees during training, so if a prompt is not specified the model will generate as if from the beginning of a new document.
| |
+| `stop` | *any* | :heavy_minus_sign: | Up to 4 sequences where the API will stop generating further tokens. The returned text will not contain the stop sequence.
| |
+| `stream` | *boolean* | :heavy_minus_sign: | Whether to stream back partial progress. If set, tokens will be sent as data-only [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format) as they become available, with the stream terminated by a `data: [DONE]` message. [Example Python code](https://cookbook.openai.com/examples/how_to_stream_completions).
| |
+| `suffix` | *string* | :heavy_minus_sign: | The suffix that comes after a completion of inserted text. | test. |
+| `temperature` | *number* | :heavy_minus_sign: | What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.
We generally recommend altering this or `top_p` but not both.
| 1 |
+| `topP` | *number* | :heavy_minus_sign: | An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.
We generally recommend altering this or `temperature` but not both.
| 1 |
+| `user` | *string* | :heavy_minus_sign: | A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).
| user-1234 |
\ No newline at end of file
diff --git a/docs/models/shared/createcompletionresponse.md b/docs/models/shared/createcompletionresponse.md
new file mode 100755
index 0000000..a392723
--- /dev/null
+++ b/docs/models/shared/createcompletionresponse.md
@@ -0,0 +1,16 @@
+# CreateCompletionResponse
+
+Represents a completion response from the API. Note: both the streamed and non-streamed response objects share the same shape (unlike the chat endpoint).
+
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
+| `choices` | [CreateCompletionResponseChoices](../../models/shared/createcompletionresponsechoices.md)[] | :heavy_check_mark: | The list of completion choices the model generated for the input prompt. |
+| `created` | *number* | :heavy_check_mark: | The Unix timestamp (in seconds) of when the completion was created. |
+| `id` | *string* | :heavy_check_mark: | A unique identifier for the completion. |
+| `model` | *string* | :heavy_check_mark: | The model used for completion. |
+| `object` | *string* | :heavy_check_mark: | The object type, which is always "text_completion" |
+| `usage` | [CompletionUsage](../../models/shared/completionusage.md) | :heavy_minus_sign: | Usage statistics for the completion request. |
\ No newline at end of file
diff --git a/docs/models/shared/createcompletionresponsechoices.md b/docs/models/shared/createcompletionresponsechoices.md
new file mode 100755
index 0000000..ea26ded
--- /dev/null
+++ b/docs/models/shared/createcompletionresponsechoices.md
@@ -0,0 +1,11 @@
+# CreateCompletionResponseChoices
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `finishReason` | [CreateCompletionResponseChoicesFinishReason](../../models/shared/createcompletionresponsechoicesfinishreason.md) | :heavy_check_mark: | The reason the model stopped generating tokens. This will be `stop` if the model hit a natural stop point or a provided stop sequence,
`length` if the maximum number of tokens specified in the request was reached,
or `content_filter` if content was omitted due to a flag from our content filters.
|
+| `index` | *number* | :heavy_check_mark: | N/A |
+| `logprobs` | [CreateCompletionResponseChoicesLogprobs](../../models/shared/createcompletionresponsechoiceslogprobs.md) | :heavy_check_mark: | N/A |
+| `text` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/models/shared/createcompletionresponsechoicesfinishreason.md b/docs/models/shared/createcompletionresponsechoicesfinishreason.md
new file mode 100755
index 0000000..a275a51
--- /dev/null
+++ b/docs/models/shared/createcompletionresponsechoicesfinishreason.md
@@ -0,0 +1,15 @@
+# CreateCompletionResponseChoicesFinishReason
+
+The reason the model stopped generating tokens. This will be `stop` if the model hit a natural stop point or a provided stop sequence,
+`length` if the maximum number of tokens specified in the request was reached,
+or `content_filter` if content was omitted due to a flag from our content filters.
+
+
+
+## Values
+
+| Name | Value |
+| --------------- | --------------- |
+| `Stop` | stop |
+| `Length` | length |
+| `ContentFilter` | content_filter |
\ No newline at end of file
diff --git a/docs/models/shared/createcompletionresponsechoiceslogprobs.md b/docs/models/shared/createcompletionresponsechoiceslogprobs.md
new file mode 100755
index 0000000..4aaffe6
--- /dev/null
+++ b/docs/models/shared/createcompletionresponsechoiceslogprobs.md
@@ -0,0 +1,11 @@
+# CreateCompletionResponseChoicesLogprobs
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------- | -------------------------- | -------------------------- | -------------------------- |
+| `textOffset` | *number*[] | :heavy_minus_sign: | N/A |
+| `tokenLogprobs` | *number*[] | :heavy_minus_sign: | N/A |
+| `tokens` | *string*[] | :heavy_minus_sign: | N/A |
+| `topLogprobs` | Record[] | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/shared/createeditrequest.md b/docs/models/shared/createeditrequest.md
new file mode 100755
index 0000000..99ba939
--- /dev/null
+++ b/docs/models/shared/createeditrequest.md
@@ -0,0 +1,13 @@
+# CreateEditRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `input` | *string* | :heavy_minus_sign: | The input text to use as a starting point for the edit. | What day of the wek is it? |
+| `instruction` | *string* | :heavy_check_mark: | The instruction that tells the model how to edit the prompt. | Fix the spelling mistakes. |
+| `model` | *any* | :heavy_check_mark: | ID of the model to use. You can use the `text-davinci-edit-001` or `code-davinci-edit-001` model with this endpoint. | text-davinci-edit-001 |
+| `n` | *number* | :heavy_minus_sign: | How many edits to generate for the input and instruction. | 1 |
+| `temperature` | *number* | :heavy_minus_sign: | What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.
We generally recommend altering this or `top_p` but not both.
| 1 |
+| `topP` | *number* | :heavy_minus_sign: | An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.
We generally recommend altering this or `temperature` but not both.
| 1 |
\ No newline at end of file
diff --git a/docs/models/shared/createeditresponse.md b/docs/models/shared/createeditresponse.md
new file mode 100755
index 0000000..d093b37
--- /dev/null
+++ b/docs/models/shared/createeditresponse.md
@@ -0,0 +1,13 @@
+# ~~CreateEditResponse~~
+
+> :warning: **DEPRECATED**: This will be removed in a future release, please migrate away from it as soon as possible.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
+| `choices` | [CreateEditResponseChoices](../../models/shared/createeditresponsechoices.md)[] | :heavy_check_mark: | A list of edit choices. Can be more than one if `n` is greater than 1. |
+| `created` | *number* | :heavy_check_mark: | The Unix timestamp (in seconds) of when the edit was created. |
+| `object` | *string* | :heavy_check_mark: | The object type, which is always `edit`. |
+| `usage` | [CompletionUsage](../../models/shared/completionusage.md) | :heavy_check_mark: | Usage statistics for the completion request. |
\ No newline at end of file
diff --git a/docs/models/shared/createeditresponsechoices.md b/docs/models/shared/createeditresponsechoices.md
new file mode 100755
index 0000000..5a6a696
--- /dev/null
+++ b/docs/models/shared/createeditresponsechoices.md
@@ -0,0 +1,10 @@
+# CreateEditResponseChoices
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `finishReason` | [CreateEditResponseChoicesFinishReason](../../models/shared/createeditresponsechoicesfinishreason.md) | :heavy_check_mark: | The reason the model stopped generating tokens. This will be `stop` if the model hit a natural stop point or a provided stop sequence,
`length` if the maximum number of tokens specified in the request was reached,
or `content_filter` if content was omitted due to a flag from our content filters.
|
+| `index` | *number* | :heavy_check_mark: | The index of the choice in the list of choices. |
+| `text` | *string* | :heavy_check_mark: | The edited result. |
\ No newline at end of file
diff --git a/docs/models/shared/createeditresponsechoicesfinishreason.md b/docs/models/shared/createeditresponsechoicesfinishreason.md
new file mode 100755
index 0000000..88c981b
--- /dev/null
+++ b/docs/models/shared/createeditresponsechoicesfinishreason.md
@@ -0,0 +1,14 @@
+# CreateEditResponseChoicesFinishReason
+
+The reason the model stopped generating tokens. This will be `stop` if the model hit a natural stop point or a provided stop sequence,
+`length` if the maximum number of tokens specified in the request was reached,
+or `content_filter` if content was omitted due to a flag from our content filters.
+
+
+
+## Values
+
+| Name | Value |
+| -------- | -------- |
+| `Stop` | stop |
+| `Length` | length |
\ No newline at end of file
diff --git a/docs/models/shared/createembeddingrequest.md b/docs/models/shared/createembeddingrequest.md
new file mode 100755
index 0000000..829e45b
--- /dev/null
+++ b/docs/models/shared/createembeddingrequest.md
@@ -0,0 +1,11 @@
+# CreateEmbeddingRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `encodingFormat` | [CreateEmbeddingRequestEncodingFormat](../../models/shared/createembeddingrequestencodingformat.md) | :heavy_minus_sign: | The format to return the embeddings in. Can be either `float` or [`base64`](https://pypi.org/project/pybase64/). | float |
+| `input` | *any* | :heavy_check_mark: | Input text to embed, encoded as a string or array of tokens. To embed multiple inputs in a single request, pass an array of strings or array of token arrays. The input must not exceed the max input tokens for the model (8192 tokens for `text-embedding-ada-002`) and cannot be an empty string. [Example Python code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens.
| The quick brown fox jumped over the lazy dog |
+| `model` | *any* | :heavy_check_mark: | ID of the model to use. You can use the [List models](/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](/docs/models/overview) for descriptions of them.
| text-embedding-ada-002 |
+| `user` | *string* | :heavy_minus_sign: | A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).
| user-1234 |
\ No newline at end of file
diff --git a/docs/models/shared/createembeddingrequestencodingformat.md b/docs/models/shared/createembeddingrequestencodingformat.md
new file mode 100755
index 0000000..df614a6
--- /dev/null
+++ b/docs/models/shared/createembeddingrequestencodingformat.md
@@ -0,0 +1,11 @@
+# CreateEmbeddingRequestEncodingFormat
+
+The format to return the embeddings in. Can be either `float` or [`base64`](https://pypi.org/project/pybase64/).
+
+
+## Values
+
+| Name | Value |
+| -------- | -------- |
+| `Float` | float |
+| `Base64` | base64 |
\ No newline at end of file
diff --git a/docs/models/shared/createembeddingresponse.md b/docs/models/shared/createembeddingresponse.md
new file mode 100755
index 0000000..60a2457
--- /dev/null
+++ b/docs/models/shared/createembeddingresponse.md
@@ -0,0 +1,11 @@
+# CreateEmbeddingResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
+| `data` | [Embedding](../../models/shared/embedding.md)[] | :heavy_check_mark: | The list of embeddings generated by the model. |
+| `model` | *string* | :heavy_check_mark: | The name of the model used to generate the embedding. |
+| `object` | *string* | :heavy_check_mark: | The object type, which is always "embedding". |
+| `usage` | [CreateEmbeddingResponseUsage](../../models/shared/createembeddingresponseusage.md) | :heavy_check_mark: | The usage information for the request. |
\ No newline at end of file
diff --git a/docs/models/shared/createembeddingresponseusage.md b/docs/models/shared/createembeddingresponseusage.md
new file mode 100755
index 0000000..3539320
--- /dev/null
+++ b/docs/models/shared/createembeddingresponseusage.md
@@ -0,0 +1,11 @@
+# CreateEmbeddingResponseUsage
+
+The usage information for the request.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- |
+| `promptTokens` | *number* | :heavy_check_mark: | The number of tokens used by the prompt. |
+| `totalTokens` | *number* | :heavy_check_mark: | The total number of tokens used by the request. |
\ No newline at end of file
diff --git a/docs/models/shared/createfilerequest.md b/docs/models/shared/createfilerequest.md
new file mode 100755
index 0000000..b31af0f
--- /dev/null
+++ b/docs/models/shared/createfilerequest.md
@@ -0,0 +1,9 @@
+# CreateFileRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `file` | [CreateFileRequestFile](../../models/shared/createfilerequestfile.md) | :heavy_check_mark: | The file object (not file name) to be uploaded.
If the `purpose` is set to "fine-tune", the file will be used for fine-tuning.
|
+| `purpose` | *string* | :heavy_check_mark: | The intended purpose of the uploaded file.
Use "fine-tune" for [fine-tuning](/docs/api-reference/fine-tuning). This allows us to validate the format of the uploaded file is correct for fine-tuning.
|
\ No newline at end of file
diff --git a/docs/models/shared/createfilerequestfile.md b/docs/models/shared/createfilerequestfile.md
new file mode 100755
index 0000000..3bb80b5
--- /dev/null
+++ b/docs/models/shared/createfilerequestfile.md
@@ -0,0 +1,9 @@
+# CreateFileRequestFile
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `content` | *Uint8Array* | :heavy_check_mark: | N/A |
+| `file` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/models/shared/createfinetunerequest.md b/docs/models/shared/createfinetunerequest.md
new file mode 100755
index 0000000..a6deb87
--- /dev/null
+++ b/docs/models/shared/createfinetunerequest.md
@@ -0,0 +1,19 @@
+# CreateFineTuneRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `batchSize` | *number* | :heavy_minus_sign: | The batch size to use for training. The batch size is the number of
training examples used to train a single forward and backward pass.
By default, the batch size will be dynamically configured to be
~0.2% of the number of examples in the training set, capped at 256 -
in general, we've found that larger batch sizes tend to work better
for larger datasets.
| |
+| `classificationBetas` | *number*[] | :heavy_minus_sign: | If this is provided, we calculate F-beta scores at the specified
beta values. The F-beta score is a generalization of F-1 score.
This is only used for binary classification.
With a beta of 1 (i.e. the F-1 score), precision and recall are
given the same weight. A larger beta score puts more weight on
recall and less on precision. A smaller beta score puts more weight
on precision and less on recall.
| 0.6,1,1.5,2 |
+| `classificationNClasses` | *number* | :heavy_minus_sign: | The number of classes in a classification task.
This parameter is required for multiclass classification.
| |
+| `classificationPositiveClass` | *string* | :heavy_minus_sign: | The positive class in binary classification.
This parameter is needed to generate precision, recall, and F1
metrics when doing binary classification.
| |
+| `computeClassificationMetrics` | *boolean* | :heavy_minus_sign: | If set, we calculate classification-specific metrics such as accuracy
and F-1 score using the validation set at the end of every epoch.
These metrics can be viewed in the [results file](/docs/guides/legacy-fine-tuning/analyzing-your-fine-tuned-model).
In order to compute classification metrics, you must provide a
`validation_file`. Additionally, you must
specify `classification_n_classes` for multiclass classification or
`classification_positive_class` for binary classification.
| |
+| `hyperparameters` | [CreateFineTuneRequestHyperparameters](../../models/shared/createfinetunerequesthyperparameters.md) | :heavy_minus_sign: | The hyperparameters used for the fine-tuning job. | |
+| `learningRateMultiplier` | *number* | :heavy_minus_sign: | The learning rate multiplier to use for training.
The fine-tuning learning rate is the original learning rate used for
pretraining multiplied by this value.
By default, the learning rate multiplier is the 0.05, 0.1, or 0.2
depending on final `batch_size` (larger learning rates tend to
perform better with larger batch sizes). We recommend experimenting
with values in the range 0.02 to 0.2 to see what produces the best
results.
| |
+| `model` | *any* | :heavy_minus_sign: | The name of the base model to fine-tune. You can select one of "ada",
"babbage", "curie", "davinci", or a fine-tuned model created after 2022-04-21 and before 2023-08-22.
To learn more about these models, see the
[Models](/docs/models) documentation.
| curie |
+| `promptLossWeight` | *number* | :heavy_minus_sign: | The weight to use for loss on the prompt tokens. This controls how
much the model tries to learn to generate the prompt (as compared
to the completion which always has a weight of 1.0), and can add
a stabilizing effect to training when completions are short.
If prompts are extremely long (relative to completions), it may make
sense to reduce this weight so as to avoid over-prioritizing
learning the prompt.
| |
+| `suffix` | *string* | :heavy_minus_sign: | A string of up to 40 characters that will be added to your fine-tuned model name.
For example, a `suffix` of "custom-model-name" would produce a model name like `ada:ft-your-org:custom-model-name-2022-02-15-04-21-04`.
| |
+| `trainingFile` | *string* | :heavy_check_mark: | The ID of an uploaded file that contains training data.
See [upload file](/docs/api-reference/files/upload) for how to upload a file.
Your dataset must be formatted as a JSONL file, where each training
example is a JSON object with the keys "prompt" and "completion".
Additionally, you must upload your file with the purpose `fine-tune`.
See the [fine-tuning guide](/docs/guides/legacy-fine-tuning/creating-training-data) for more details.
| file-abc123 |
+| `validationFile` | *string* | :heavy_minus_sign: | The ID of an uploaded file that contains validation data.
If you provide this file, the data is used to generate validation
metrics periodically during fine-tuning. These metrics can be viewed in
the [fine-tuning results file](/docs/guides/legacy-fine-tuning/analyzing-your-fine-tuned-model).
Your train and validation data should be mutually exclusive.
Your dataset must be formatted as a JSONL file, where each validation
example is a JSON object with the keys "prompt" and "completion".
Additionally, you must upload your file with the purpose `fine-tune`.
See the [fine-tuning guide](/docs/guides/legacy-fine-tuning/creating-training-data) for more details.
| file-abc123 |
\ No newline at end of file
diff --git a/docs/models/shared/createfinetunerequesthyperparameters.md b/docs/models/shared/createfinetunerequesthyperparameters.md
new file mode 100755
index 0000000..004fcdc
--- /dev/null
+++ b/docs/models/shared/createfinetunerequesthyperparameters.md
@@ -0,0 +1,10 @@
+# CreateFineTuneRequestHyperparameters
+
+The hyperparameters used for the fine-tuning job.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
+| `nEpochs` | *any* | :heavy_minus_sign: | The number of epochs to train the model for. An epoch refers to one
full cycle through the training dataset.
|
\ No newline at end of file
diff --git a/docs/models/shared/createfinetuningjobrequest.md b/docs/models/shared/createfinetuningjobrequest.md
new file mode 100755
index 0000000..12f889a
--- /dev/null
+++ b/docs/models/shared/createfinetuningjobrequest.md
@@ -0,0 +1,12 @@
+# CreateFineTuningJobRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `hyperparameters` | [CreateFineTuningJobRequestHyperparameters](../../models/shared/createfinetuningjobrequesthyperparameters.md) | :heavy_minus_sign: | The hyperparameters used for the fine-tuning job. | |
+| `model` | *any* | :heavy_check_mark: | The name of the model to fine-tune. You can select one of the
[supported models](/docs/guides/fine-tuning/what-models-can-be-fine-tuned).
| gpt-3.5-turbo |
+| `suffix` | *string* | :heavy_minus_sign: | A string of up to 18 characters that will be added to your fine-tuned model name.
For example, a `suffix` of "custom-model-name" would produce a model name like `ft:gpt-3.5-turbo:openai:custom-model-name:7p4lURel`.
| |
+| `trainingFile` | *string* | :heavy_check_mark: | The ID of an uploaded file that contains training data.
See [upload file](/docs/api-reference/files/upload) for how to upload a file.
Your dataset must be formatted as a JSONL file. Additionally, you must upload your file with the purpose `fine-tune`.
See the [fine-tuning guide](/docs/guides/fine-tuning) for more details.
| file-abc123 |
+| `validationFile` | *string* | :heavy_minus_sign: | The ID of an uploaded file that contains validation data.
If you provide this file, the data is used to generate validation
metrics periodically during fine-tuning. These metrics can be viewed in
the fine-tuning results file.
The same data should not be present in both train and validation files.
Your dataset must be formatted as a JSONL file. You must upload your file with the purpose `fine-tune`.
See the [fine-tuning guide](/docs/guides/fine-tuning) for more details.
| file-abc123 |
\ No newline at end of file
diff --git a/docs/models/shared/createfinetuningjobrequesthyperparameters.md b/docs/models/shared/createfinetuningjobrequesthyperparameters.md
new file mode 100755
index 0000000..c9786c6
--- /dev/null
+++ b/docs/models/shared/createfinetuningjobrequesthyperparameters.md
@@ -0,0 +1,10 @@
+# CreateFineTuningJobRequestHyperparameters
+
+The hyperparameters used for the fine-tuning job.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
+| `nEpochs` | *any* | :heavy_minus_sign: | The number of epochs to train the model for. An epoch refers to one
full cycle through the training dataset.
|
\ No newline at end of file
diff --git a/docs/models/shared/createimageeditrequest.md b/docs/models/shared/createimageeditrequest.md
new file mode 100755
index 0000000..b84d229
--- /dev/null
+++ b/docs/models/shared/createimageeditrequest.md
@@ -0,0 +1,14 @@
+# CreateImageEditRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `image` | [CreateImageEditRequestImage](../../models/shared/createimageeditrequestimage.md) | :heavy_check_mark: | The image to edit. Must be a valid PNG file, less than 4MB, and square. If mask is not provided, image must have transparency, which will be used as the mask. | |
+| `mask` | [CreateImageEditRequestMask](../../models/shared/createimageeditrequestmask.md) | :heavy_minus_sign: | An additional image whose fully transparent areas (e.g. where alpha is zero) indicate where `image` should be edited. Must be a valid PNG file, less than 4MB, and have the same dimensions as `image`. | |
+| `n` | *number* | :heavy_minus_sign: | The number of images to generate. Must be between 1 and 10. | 1 |
+| `prompt` | *string* | :heavy_check_mark: | A text description of the desired image(s). The maximum length is 1000 characters. | A cute baby sea otter wearing a beret |
+| `responseFormat` | [CreateImageEditRequestResponseFormat](../../models/shared/createimageeditrequestresponseformat.md) | :heavy_minus_sign: | The format in which the generated images are returned. Must be one of `url` or `b64_json`. | url |
+| `size` | [CreateImageEditRequestSize](../../models/shared/createimageeditrequestsize.md) | :heavy_minus_sign: | The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`. | 1024x1024 |
+| `user` | *string* | :heavy_minus_sign: | A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).
| user-1234 |
\ No newline at end of file
diff --git a/docs/models/shared/createimageeditrequestimage.md b/docs/models/shared/createimageeditrequestimage.md
new file mode 100755
index 0000000..8078b91
--- /dev/null
+++ b/docs/models/shared/createimageeditrequestimage.md
@@ -0,0 +1,9 @@
+# CreateImageEditRequestImage
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `content` | *Uint8Array* | :heavy_check_mark: | N/A |
+| `image` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/models/shared/createimageeditrequestmask.md b/docs/models/shared/createimageeditrequestmask.md
new file mode 100755
index 0000000..0d533a5
--- /dev/null
+++ b/docs/models/shared/createimageeditrequestmask.md
@@ -0,0 +1,9 @@
+# CreateImageEditRequestMask
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `content` | *Uint8Array* | :heavy_check_mark: | N/A |
+| `mask` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/models/shared/createimageeditrequestresponseformat.md b/docs/models/shared/createimageeditrequestresponseformat.md
new file mode 100755
index 0000000..65ebdad
--- /dev/null
+++ b/docs/models/shared/createimageeditrequestresponseformat.md
@@ -0,0 +1,11 @@
+# CreateImageEditRequestResponseFormat
+
+The format in which the generated images are returned. Must be one of `url` or `b64_json`.
+
+
+## Values
+
+| Name | Value |
+| --------- | --------- |
+| `Url` | url |
+| `B64Json` | b64_json |
\ No newline at end of file
diff --git a/docs/models/shared/createimageeditrequestsize.md b/docs/models/shared/createimageeditrequestsize.md
new file mode 100755
index 0000000..3f27723
--- /dev/null
+++ b/docs/models/shared/createimageeditrequestsize.md
@@ -0,0 +1,12 @@
+# CreateImageEditRequestSize
+
+The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`.
+
+
+## Values
+
+| Name | Value |
+| ------------------------------- | ------------------------------- |
+| `TwoHundredAndFiftySixx256` | 256x256 |
+| `FiveHundredAndTwelvex512` | 512x512 |
+| `OneThousandAndTwentyFourx1024` | 1024x1024 |
\ No newline at end of file
diff --git a/docs/models/shared/createimagerequest.md b/docs/models/shared/createimagerequest.md
new file mode 100755
index 0000000..401fa7b
--- /dev/null
+++ b/docs/models/shared/createimagerequest.md
@@ -0,0 +1,12 @@
+# CreateImageRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `n` | *number* | :heavy_minus_sign: | The number of images to generate. Must be between 1 and 10. | 1 |
+| `prompt` | *string* | :heavy_check_mark: | A text description of the desired image(s). The maximum length is 1000 characters. | A cute baby sea otter |
+| `responseFormat` | [CreateImageRequestResponseFormat](../../models/shared/createimagerequestresponseformat.md) | :heavy_minus_sign: | The format in which the generated images are returned. Must be one of `url` or `b64_json`. | url |
+| `size` | [CreateImageRequestSize](../../models/shared/createimagerequestsize.md) | :heavy_minus_sign: | The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`. | 1024x1024 |
+| `user` | *string* | :heavy_minus_sign: | A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).
| user-1234 |
\ No newline at end of file
diff --git a/docs/models/shared/createimagerequestresponseformat.md b/docs/models/shared/createimagerequestresponseformat.md
new file mode 100755
index 0000000..8900446
--- /dev/null
+++ b/docs/models/shared/createimagerequestresponseformat.md
@@ -0,0 +1,11 @@
+# CreateImageRequestResponseFormat
+
+The format in which the generated images are returned. Must be one of `url` or `b64_json`.
+
+
+## Values
+
+| Name | Value |
+| --------- | --------- |
+| `Url` | url |
+| `B64Json` | b64_json |
\ No newline at end of file
diff --git a/docs/models/shared/createimagerequestsize.md b/docs/models/shared/createimagerequestsize.md
new file mode 100755
index 0000000..7c8d43d
--- /dev/null
+++ b/docs/models/shared/createimagerequestsize.md
@@ -0,0 +1,12 @@
+# CreateImageRequestSize
+
+The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`.
+
+
+## Values
+
+| Name | Value |
+| ------------------------------- | ------------------------------- |
+| `TwoHundredAndFiftySixx256` | 256x256 |
+| `FiveHundredAndTwelvex512` | 512x512 |
+| `OneThousandAndTwentyFourx1024` | 1024x1024 |
\ No newline at end of file
diff --git a/docs/models/shared/createimagevariationrequest.md b/docs/models/shared/createimagevariationrequest.md
new file mode 100755
index 0000000..04c2fbd
--- /dev/null
+++ b/docs/models/shared/createimagevariationrequest.md
@@ -0,0 +1,12 @@
+# CreateImageVariationRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `image` | [CreateImageVariationRequestImage](../../models/shared/createimagevariationrequestimage.md) | :heavy_check_mark: | The image to use as the basis for the variation(s). Must be a valid PNG file, less than 4MB, and square. | |
+| `n` | *number* | :heavy_minus_sign: | The number of images to generate. Must be between 1 and 10. | 1 |
+| `responseFormat` | [CreateImageVariationRequestResponseFormat](../../models/shared/createimagevariationrequestresponseformat.md) | :heavy_minus_sign: | The format in which the generated images are returned. Must be one of `url` or `b64_json`. | url |
+| `size` | [CreateImageVariationRequestSize](../../models/shared/createimagevariationrequestsize.md) | :heavy_minus_sign: | The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`. | 1024x1024 |
+| `user` | *string* | :heavy_minus_sign: | A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).
| user-1234 |
\ No newline at end of file
diff --git a/docs/models/shared/createimagevariationrequestimage.md b/docs/models/shared/createimagevariationrequestimage.md
new file mode 100755
index 0000000..98b6b8c
--- /dev/null
+++ b/docs/models/shared/createimagevariationrequestimage.md
@@ -0,0 +1,9 @@
+# CreateImageVariationRequestImage
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `content` | *Uint8Array* | :heavy_check_mark: | N/A |
+| `image` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/models/shared/createimagevariationrequestresponseformat.md b/docs/models/shared/createimagevariationrequestresponseformat.md
new file mode 100755
index 0000000..650241b
--- /dev/null
+++ b/docs/models/shared/createimagevariationrequestresponseformat.md
@@ -0,0 +1,11 @@
+# CreateImageVariationRequestResponseFormat
+
+The format in which the generated images are returned. Must be one of `url` or `b64_json`.
+
+
+## Values
+
+| Name | Value |
+| --------- | --------- |
+| `Url` | url |
+| `B64Json` | b64_json |
\ No newline at end of file
diff --git a/docs/models/shared/createimagevariationrequestsize.md b/docs/models/shared/createimagevariationrequestsize.md
new file mode 100755
index 0000000..5dcf6d9
--- /dev/null
+++ b/docs/models/shared/createimagevariationrequestsize.md
@@ -0,0 +1,12 @@
+# CreateImageVariationRequestSize
+
+The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`.
+
+
+## Values
+
+| Name | Value |
+| ------------------------------- | ------------------------------- |
+| `TwoHundredAndFiftySixx256` | 256x256 |
+| `FiveHundredAndTwelvex512` | 512x512 |
+| `OneThousandAndTwentyFourx1024` | 1024x1024 |
\ No newline at end of file
diff --git a/docs/models/shared/createmoderationrequest.md b/docs/models/shared/createmoderationrequest.md
new file mode 100755
index 0000000..14fa271
--- /dev/null
+++ b/docs/models/shared/createmoderationrequest.md
@@ -0,0 +1,9 @@
+# CreateModerationRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `input` | *any* | :heavy_check_mark: | The input text to classify | |
+| `model` | *any* | :heavy_minus_sign: | Two content moderations models are available: `text-moderation-stable` and `text-moderation-latest`.
The default is `text-moderation-latest` which will be automatically upgraded over time. This ensures you are always using our most accurate model. If you use `text-moderation-stable`, we will provide advanced notice before updating the model. Accuracy of `text-moderation-stable` may be slightly lower than for `text-moderation-latest`.
| text-moderation-stable |
\ No newline at end of file
diff --git a/docs/models/shared/createmoderationresponse.md b/docs/models/shared/createmoderationresponse.md
new file mode 100755
index 0000000..8717114
--- /dev/null
+++ b/docs/models/shared/createmoderationresponse.md
@@ -0,0 +1,12 @@
+# CreateModerationResponse
+
+Represents policy compliance report by OpenAI's content moderation model against a given input.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
+| `id` | *string* | :heavy_check_mark: | The unique identifier for the moderation request. |
+| `model` | *string* | :heavy_check_mark: | The model used to generate the moderation results. |
+| `results` | [CreateModerationResponseResults](../../models/shared/createmoderationresponseresults.md)[] | :heavy_check_mark: | A list of moderation objects. |
\ No newline at end of file
diff --git a/docs/models/shared/createmoderationresponseresults.md b/docs/models/shared/createmoderationresponseresults.md
new file mode 100755
index 0000000..4dc296e
--- /dev/null
+++ b/docs/models/shared/createmoderationresponseresults.md
@@ -0,0 +1,10 @@
+# CreateModerationResponseResults
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
+| `categories` | [CreateModerationResponseResultsCategories](../../models/shared/createmoderationresponseresultscategories.md) | :heavy_check_mark: | A list of the categories, and whether they are flagged or not. |
+| `categoryScores` | [CreateModerationResponseResultsCategoryScores](../../models/shared/createmoderationresponseresultscategoryscores.md) | :heavy_check_mark: | A list of the categories along with their scores as predicted by model. |
+| `flagged` | *boolean* | :heavy_check_mark: | Whether the content violates [OpenAI's usage policies](/policies/usage-policies). |
\ No newline at end of file
diff --git a/docs/models/shared/createmoderationresponseresultscategories.md b/docs/models/shared/createmoderationresponseresultscategories.md
new file mode 100755
index 0000000..b653fe7
--- /dev/null
+++ b/docs/models/shared/createmoderationresponseresultscategories.md
@@ -0,0 +1,20 @@
+# CreateModerationResponseResultsCategories
+
+A list of the categories, and whether they are flagged or not.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `harassment` | *boolean* | :heavy_check_mark: | Content that expresses, incites, or promotes harassing language towards any target. |
+| `harassmentThreatening` | *boolean* | :heavy_check_mark: | Harassment content that also includes violence or serious harm towards any target. |
+| `hate` | *boolean* | :heavy_check_mark: | Content that expresses, incites, or promotes hate based on race, gender, ethnicity, religion, nationality, sexual orientation, disability status, or caste. Hateful content aimed at non-protected groups (e.g., chess players) is harrassment. |
+| `hateThreatening` | *boolean* | :heavy_check_mark: | Hateful content that also includes violence or serious harm towards the targeted group based on race, gender, ethnicity, religion, nationality, sexual orientation, disability status, or caste. |
+| `selfHarm` | *boolean* | :heavy_check_mark: | Content that promotes, encourages, or depicts acts of self-harm, such as suicide, cutting, and eating disorders. |
+| `selfHarmInstructions` | *boolean* | :heavy_check_mark: | Content that encourages performing acts of self-harm, such as suicide, cutting, and eating disorders, or that gives instructions or advice on how to commit such acts. |
+| `selfHarmIntent` | *boolean* | :heavy_check_mark: | Content where the speaker expresses that they are engaging or intend to engage in acts of self-harm, such as suicide, cutting, and eating disorders. |
+| `sexual` | *boolean* | :heavy_check_mark: | Content meant to arouse sexual excitement, such as the description of sexual activity, or that promotes sexual services (excluding sex education and wellness). |
+| `sexualMinors` | *boolean* | :heavy_check_mark: | Sexual content that includes an individual who is under 18 years old. |
+| `violence` | *boolean* | :heavy_check_mark: | Content that depicts death, violence, or physical injury. |
+| `violenceGraphic` | *boolean* | :heavy_check_mark: | Content that depicts death, violence, or physical injury in graphic detail. |
\ No newline at end of file
diff --git a/docs/models/shared/createmoderationresponseresultscategoryscores.md b/docs/models/shared/createmoderationresponseresultscategoryscores.md
new file mode 100755
index 0000000..8eec126
--- /dev/null
+++ b/docs/models/shared/createmoderationresponseresultscategoryscores.md
@@ -0,0 +1,20 @@
+# CreateModerationResponseResultsCategoryScores
+
+A list of the categories along with their scores as predicted by model.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- |
+| `harassment` | *number* | :heavy_check_mark: | The score for the category 'harassment'. |
+| `harassmentThreatening` | *number* | :heavy_check_mark: | The score for the category 'harassment/threatening'. |
+| `hate` | *number* | :heavy_check_mark: | The score for the category 'hate'. |
+| `hateThreatening` | *number* | :heavy_check_mark: | The score for the category 'hate/threatening'. |
+| `selfHarm` | *number* | :heavy_check_mark: | The score for the category 'self-harm'. |
+| `selfHarmInstructions` | *number* | :heavy_check_mark: | The score for the category 'self-harm/instructions'. |
+| `selfHarmIntent` | *number* | :heavy_check_mark: | The score for the category 'self-harm/intent'. |
+| `sexual` | *number* | :heavy_check_mark: | The score for the category 'sexual'. |
+| `sexualMinors` | *number* | :heavy_check_mark: | The score for the category 'sexual/minors'. |
+| `violence` | *number* | :heavy_check_mark: | The score for the category 'violence'. |
+| `violenceGraphic` | *number* | :heavy_check_mark: | The score for the category 'violence/graphic'. |
\ No newline at end of file
diff --git a/docs/models/shared/createtranscriptionrequest.md b/docs/models/shared/createtranscriptionrequest.md
new file mode 100755
index 0000000..2f4e56a
--- /dev/null
+++ b/docs/models/shared/createtranscriptionrequest.md
@@ -0,0 +1,13 @@
+# CreateTranscriptionRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `file` | [CreateTranscriptionRequestFile](../../models/shared/createtranscriptionrequestfile.md) | :heavy_check_mark: | The audio file object (not file name) to transcribe, in one of these formats: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm.
| |
+| `language` | *string* | :heavy_minus_sign: | The language of the input audio. Supplying the input language in [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format will improve accuracy and latency.
| |
+| `model` | *any* | :heavy_check_mark: | ID of the model to use. Only `whisper-1` is currently available.
| whisper-1 |
+| `prompt` | *string* | :heavy_minus_sign: | An optional text to guide the model's style or continue a previous audio segment. The [prompt](/docs/guides/speech-to-text/prompting) should match the audio language.
| |
+| `responseFormat` | [CreateTranscriptionRequestResponseFormat](../../models/shared/createtranscriptionrequestresponseformat.md) | :heavy_minus_sign: | The format of the transcript output, in one of these options: json, text, srt, verbose_json, or vtt.
| |
+| `temperature` | *number* | :heavy_minus_sign: | The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use [log probability](https://en.wikipedia.org/wiki/Log_probability) to automatically increase the temperature until certain thresholds are hit.
| |
\ No newline at end of file
diff --git a/docs/models/shared/createtranscriptionrequestfile.md b/docs/models/shared/createtranscriptionrequestfile.md
new file mode 100755
index 0000000..76b878c
--- /dev/null
+++ b/docs/models/shared/createtranscriptionrequestfile.md
@@ -0,0 +1,9 @@
+# CreateTranscriptionRequestFile
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `content` | *Uint8Array* | :heavy_check_mark: | N/A |
+| `file` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/models/shared/createtranscriptionrequestresponseformat.md b/docs/models/shared/createtranscriptionrequestresponseformat.md
new file mode 100755
index 0000000..13488d6
--- /dev/null
+++ b/docs/models/shared/createtranscriptionrequestresponseformat.md
@@ -0,0 +1,15 @@
+# CreateTranscriptionRequestResponseFormat
+
+The format of the transcript output, in one of these options: json, text, srt, verbose_json, or vtt.
+
+
+
+## Values
+
+| Name | Value |
+| ------------- | ------------- |
+| `Json` | json |
+| `Text` | text |
+| `Srt` | srt |
+| `VerboseJson` | verbose_json |
+| `Vtt` | vtt |
\ No newline at end of file
diff --git a/docs/models/shared/createtranscriptionresponse.md b/docs/models/shared/createtranscriptionresponse.md
new file mode 100755
index 0000000..873ed5c
--- /dev/null
+++ b/docs/models/shared/createtranscriptionresponse.md
@@ -0,0 +1,8 @@
+# CreateTranscriptionResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `text` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/models/shared/createtranslationrequest.md b/docs/models/shared/createtranslationrequest.md
new file mode 100755
index 0000000..a8274c4
--- /dev/null
+++ b/docs/models/shared/createtranslationrequest.md
@@ -0,0 +1,12 @@
+# CreateTranslationRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `file` | [CreateTranslationRequestFile](../../models/shared/createtranslationrequestfile.md) | :heavy_check_mark: | The audio file object (not file name) translate, in one of these formats: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm.
| |
+| `model` | *any* | :heavy_check_mark: | ID of the model to use. Only `whisper-1` is currently available.
| whisper-1 |
+| `prompt` | *string* | :heavy_minus_sign: | An optional text to guide the model's style or continue a previous audio segment. The [prompt](/docs/guides/speech-to-text/prompting) should be in English.
| |
+| `responseFormat` | *string* | :heavy_minus_sign: | The format of the transcript output, in one of these options: json, text, srt, verbose_json, or vtt.
| |
+| `temperature` | *number* | :heavy_minus_sign: | The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use [log probability](https://en.wikipedia.org/wiki/Log_probability) to automatically increase the temperature until certain thresholds are hit.
| |
\ No newline at end of file
diff --git a/docs/models/shared/createtranslationrequestfile.md b/docs/models/shared/createtranslationrequestfile.md
new file mode 100755
index 0000000..f143930
--- /dev/null
+++ b/docs/models/shared/createtranslationrequestfile.md
@@ -0,0 +1,9 @@
+# CreateTranslationRequestFile
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `content` | *Uint8Array* | :heavy_check_mark: | N/A |
+| `file` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/models/shared/createtranslationresponse.md b/docs/models/shared/createtranslationresponse.md
new file mode 100755
index 0000000..5aedb8c
--- /dev/null
+++ b/docs/models/shared/createtranslationresponse.md
@@ -0,0 +1,8 @@
+# CreateTranslationResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `text` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/models/shared/deletefileresponse.md b/docs/models/shared/deletefileresponse.md
new file mode 100755
index 0000000..a227769
--- /dev/null
+++ b/docs/models/shared/deletefileresponse.md
@@ -0,0 +1,10 @@
+# DeleteFileResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `deleted` | *boolean* | :heavy_check_mark: | N/A |
+| `id` | *string* | :heavy_check_mark: | N/A |
+| `object` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/models/shared/deletemodelresponse.md b/docs/models/shared/deletemodelresponse.md
new file mode 100755
index 0000000..8886eb5
--- /dev/null
+++ b/docs/models/shared/deletemodelresponse.md
@@ -0,0 +1,10 @@
+# DeleteModelResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `deleted` | *boolean* | :heavy_check_mark: | N/A |
+| `id` | *string* | :heavy_check_mark: | N/A |
+| `object` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/models/shared/embedding.md b/docs/models/shared/embedding.md
new file mode 100755
index 0000000..a13ff86
--- /dev/null
+++ b/docs/models/shared/embedding.md
@@ -0,0 +1,13 @@
+# Embedding
+
+Represents an embedding vector returned by embedding endpoint.
+
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `embedding` | *number*[] | :heavy_check_mark: | The embedding vector, which is a list of floats. The length of vector depends on the model as listed in the [embedding guide](/docs/guides/embeddings).
|
+| `index` | *number* | :heavy_check_mark: | The index of the embedding in the list of embeddings. |
+| `object` | *string* | :heavy_check_mark: | The object type, which is always "embedding". |
\ No newline at end of file
diff --git a/docs/models/shared/finetune.md b/docs/models/shared/finetune.md
new file mode 100755
index 0000000..4f7452d
--- /dev/null
+++ b/docs/models/shared/finetune.md
@@ -0,0 +1,25 @@
+# ~~FineTune~~
+
+The `FineTune` object represents a legacy fine-tune job that has been created through the API.
+
+
+> :warning: **DEPRECATED**: This will be removed in a future release, please migrate away from it as soon as possible.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `createdAt` | *number* | :heavy_check_mark: | The Unix timestamp (in seconds) for when the fine-tuning job was created. |
+| `events` | [FineTuneEvent](../../models/shared/finetuneevent.md)[] | :heavy_minus_sign: | The list of events that have been observed in the lifecycle of the FineTune job. |
+| `fineTunedModel` | *string* | :heavy_check_mark: | The name of the fine-tuned model that is being created. |
+| `hyperparams` | [FineTuneHyperparams](../../models/shared/finetunehyperparams.md) | :heavy_check_mark: | The hyperparameters used for the fine-tuning job. See the [fine-tuning guide](/docs/guides/legacy-fine-tuning/hyperparameters) for more details. |
+| `id` | *string* | :heavy_check_mark: | The object identifier, which can be referenced in the API endpoints. |
+| `model` | *string* | :heavy_check_mark: | The base model that is being fine-tuned. |
+| `object` | *string* | :heavy_check_mark: | The object type, which is always "fine-tune". |
+| `organizationId` | *string* | :heavy_check_mark: | The organization that owns the fine-tuning job. |
+| `resultFiles` | [OpenAIFile](../../models/shared/openaifile.md)[] | :heavy_check_mark: | The compiled results files for the fine-tuning job. |
+| `status` | *string* | :heavy_check_mark: | The current status of the fine-tuning job, which can be either `created`, `running`, `succeeded`, `failed`, or `cancelled`. |
+| `trainingFiles` | [OpenAIFile](../../models/shared/openaifile.md)[] | :heavy_check_mark: | The list of files used for training. |
+| `updatedAt` | *number* | :heavy_check_mark: | The Unix timestamp (in seconds) for when the fine-tuning job was last updated. |
+| `validationFiles` | [OpenAIFile](../../models/shared/openaifile.md)[] | :heavy_check_mark: | The list of files used for validation. |
\ No newline at end of file
diff --git a/docs/models/shared/finetuneevent.md b/docs/models/shared/finetuneevent.md
new file mode 100755
index 0000000..3ae123c
--- /dev/null
+++ b/docs/models/shared/finetuneevent.md
@@ -0,0 +1,15 @@
+# ~~FineTuneEvent~~
+
+Fine-tune event object
+
+> :warning: **DEPRECATED**: This will be removed in a future release, please migrate away from it as soon as possible.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `createdAt` | *number* | :heavy_check_mark: | N/A |
+| `level` | *string* | :heavy_check_mark: | N/A |
+| `message` | *string* | :heavy_check_mark: | N/A |
+| `object` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/models/shared/finetunehyperparams.md b/docs/models/shared/finetunehyperparams.md
new file mode 100755
index 0000000..81ebacf
--- /dev/null
+++ b/docs/models/shared/finetunehyperparams.md
@@ -0,0 +1,16 @@
+# FineTuneHyperparams
+
+The hyperparameters used for the fine-tuning job. See the [fine-tuning guide](/docs/guides/legacy-fine-tuning/hyperparameters) for more details.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
+| `batchSize` | *number* | :heavy_check_mark: | The batch size to use for training. The batch size is the number of
training examples used to train a single forward and backward pass.
|
+| `classificationNClasses` | *number* | :heavy_minus_sign: | The number of classes to use for computing classification metrics.
|
+| `classificationPositiveClass` | *string* | :heavy_minus_sign: | The positive class to use for computing classification metrics.
|
+| `computeClassificationMetrics` | *boolean* | :heavy_minus_sign: | The classification metrics to compute using the validation dataset at the end of every epoch.
|
+| `learningRateMultiplier` | *number* | :heavy_check_mark: | The learning rate multiplier to use for training.
|
+| `nEpochs` | *number* | :heavy_check_mark: | The number of epochs to train the model for. An epoch refers to one
full cycle through the training dataset.
|
+| `promptLossWeight` | *number* | :heavy_check_mark: | The weight to use for loss on the prompt tokens.
|
\ No newline at end of file
diff --git a/docs/models/shared/finetuningjob.md b/docs/models/shared/finetuningjob.md
new file mode 100755
index 0000000..82e900c
--- /dev/null
+++ b/docs/models/shared/finetuningjob.md
@@ -0,0 +1,24 @@
+# FineTuningJob
+
+The `fine_tuning.job` object represents a fine-tuning job that has been created through the API.
+
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `createdAt` | *number* | :heavy_check_mark: | The Unix timestamp (in seconds) for when the fine-tuning job was created. | |
+| `error` | [FineTuningJobError](../../models/shared/finetuningjoberror.md) | :heavy_check_mark: | For fine-tuning jobs that have `failed`, this will contain more information on the cause of the failure. | |
+| `fineTunedModel` | *string* | :heavy_check_mark: | The name of the fine-tuned model that is being created. The value will be null if the fine-tuning job is still running. | |
+| `finishedAt` | *number* | :heavy_check_mark: | The Unix timestamp (in seconds) for when the fine-tuning job was finished. The value will be null if the fine-tuning job is still running. | |
+| `hyperparameters` | [FineTuningJobHyperparameters](../../models/shared/finetuningjobhyperparameters.md) | :heavy_check_mark: | The hyperparameters used for the fine-tuning job. See the [fine-tuning guide](/docs/guides/fine-tuning) for more details. | |
+| `id` | *string* | :heavy_check_mark: | The object identifier, which can be referenced in the API endpoints. | |
+| `model` | *string* | :heavy_check_mark: | The base model that is being fine-tuned. | |
+| `object` | *string* | :heavy_check_mark: | The object type, which is always "fine_tuning.job". | |
+| `organizationId` | *string* | :heavy_check_mark: | The organization that owns the fine-tuning job. | |
+| `resultFiles` | *string*[] | :heavy_check_mark: | The compiled results file ID(s) for the fine-tuning job. You can retrieve the results with the [Files API](/docs/api-reference/files/retrieve-contents). | file-abc123 |
+| `status` | *string* | :heavy_check_mark: | The current status of the fine-tuning job, which can be either `validating_files`, `queued`, `running`, `succeeded`, `failed`, or `cancelled`. | |
+| `trainedTokens` | *number* | :heavy_check_mark: | The total number of billable tokens processed by this fine-tuning job. The value will be null if the fine-tuning job is still running. | |
+| `trainingFile` | *string* | :heavy_check_mark: | The file ID used for training. You can retrieve the training data with the [Files API](/docs/api-reference/files/retrieve-contents). | |
+| `validationFile` | *string* | :heavy_check_mark: | The file ID used for validation. You can retrieve the validation results with the [Files API](/docs/api-reference/files/retrieve-contents). | |
\ No newline at end of file
diff --git a/docs/models/shared/finetuningjoberror.md b/docs/models/shared/finetuningjoberror.md
new file mode 100755
index 0000000..66ebcda
--- /dev/null
+++ b/docs/models/shared/finetuningjoberror.md
@@ -0,0 +1,12 @@
+# FineTuningJobError
+
+For fine-tuning jobs that have `failed`, this will contain more information on the cause of the failure.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `code` | *string* | :heavy_check_mark: | A machine-readable error code. |
+| `message` | *string* | :heavy_check_mark: | A human-readable error message. |
+| `param` | *string* | :heavy_check_mark: | The parameter that was invalid, usually `training_file` or `validation_file`. This field will be null if the failure was not parameter-specific. |
\ No newline at end of file
diff --git a/docs/models/shared/finetuningjobevent.md b/docs/models/shared/finetuningjobevent.md
new file mode 100755
index 0000000..5966bfa
--- /dev/null
+++ b/docs/models/shared/finetuningjobevent.md
@@ -0,0 +1,14 @@
+# FineTuningJobEvent
+
+Fine-tuning job event object
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
+| `createdAt` | *number* | :heavy_check_mark: | N/A |
+| `id` | *string* | :heavy_check_mark: | N/A |
+| `level` | [FineTuningJobEventLevel](../../models/shared/finetuningjobeventlevel.md) | :heavy_check_mark: | N/A |
+| `message` | *string* | :heavy_check_mark: | N/A |
+| `object` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/models/shared/finetuningjobeventlevel.md b/docs/models/shared/finetuningjobeventlevel.md
new file mode 100755
index 0000000..c2baf60
--- /dev/null
+++ b/docs/models/shared/finetuningjobeventlevel.md
@@ -0,0 +1,10 @@
+# FineTuningJobEventLevel
+
+
+## Values
+
+| Name | Value |
+| ------- | ------- |
+| `Info` | info |
+| `Warn` | warn |
+| `Error` | error |
\ No newline at end of file
diff --git a/docs/models/shared/finetuningjobhyperparameters.md b/docs/models/shared/finetuningjobhyperparameters.md
new file mode 100755
index 0000000..1c43063
--- /dev/null
+++ b/docs/models/shared/finetuningjobhyperparameters.md
@@ -0,0 +1,10 @@
+# FineTuningJobHyperparameters
+
+The hyperparameters used for the fine-tuning job. See the [fine-tuning guide](/docs/guides/fine-tuning) for more details.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `nEpochs` | *any* | :heavy_check_mark: | The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset.
"auto" decides the optimal number of epochs based on the size of the dataset. If setting the number manually, we support any number between 1 and 50 epochs. |
\ No newline at end of file
diff --git a/docs/models/shared/image.md b/docs/models/shared/image.md
new file mode 100755
index 0000000..598d970
--- /dev/null
+++ b/docs/models/shared/image.md
@@ -0,0 +1,11 @@
+# Image
+
+Represents the url or the content of an image generated by the OpenAI API.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
+| `b64Json` | *string* | :heavy_minus_sign: | The base64-encoded JSON of the generated image, if `response_format` is `b64_json`. |
+| `url` | *string* | :heavy_minus_sign: | The URL of the generated image, if `response_format` is `url` (default). |
\ No newline at end of file
diff --git a/docs/models/shared/imagesresponse.md b/docs/models/shared/imagesresponse.md
new file mode 100755
index 0000000..c74080a
--- /dev/null
+++ b/docs/models/shared/imagesresponse.md
@@ -0,0 +1,9 @@
+# ImagesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------- | --------------------------------------- | --------------------------------------- | --------------------------------------- |
+| `created` | *number* | :heavy_check_mark: | N/A |
+| `data` | [Image](../../models/shared/image.md)[] | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/models/shared/listfilesresponse.md b/docs/models/shared/listfilesresponse.md
new file mode 100755
index 0000000..6e97313
--- /dev/null
+++ b/docs/models/shared/listfilesresponse.md
@@ -0,0 +1,9 @@
+# ListFilesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------- |
+| `data` | [OpenAIFile](../../models/shared/openaifile.md)[] | :heavy_check_mark: | N/A |
+| `object` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/models/shared/listfinetuneeventsresponse.md b/docs/models/shared/listfinetuneeventsresponse.md
new file mode 100755
index 0000000..057b80e
--- /dev/null
+++ b/docs/models/shared/listfinetuneeventsresponse.md
@@ -0,0 +1,9 @@
+# ListFineTuneEventsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- |
+| `data` | [FineTuneEvent](../../models/shared/finetuneevent.md)[] | :heavy_check_mark: | N/A |
+| `object` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/models/shared/listfinetunesresponse.md b/docs/models/shared/listfinetunesresponse.md
new file mode 100755
index 0000000..ccef26b
--- /dev/null
+++ b/docs/models/shared/listfinetunesresponse.md
@@ -0,0 +1,9 @@
+# ListFineTunesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- |
+| `data` | [FineTune](../../models/shared/finetune.md)[] | :heavy_check_mark: | N/A |
+| `object` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/models/shared/listfinetuningjobeventsresponse.md b/docs/models/shared/listfinetuningjobeventsresponse.md
new file mode 100755
index 0000000..4f354d1
--- /dev/null
+++ b/docs/models/shared/listfinetuningjobeventsresponse.md
@@ -0,0 +1,9 @@
+# ListFineTuningJobEventsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- |
+| `data` | [FineTuningJobEvent](../../models/shared/finetuningjobevent.md)[] | :heavy_check_mark: | N/A |
+| `object` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/models/shared/listmodelsresponse.md b/docs/models/shared/listmodelsresponse.md
new file mode 100755
index 0000000..1392538
--- /dev/null
+++ b/docs/models/shared/listmodelsresponse.md
@@ -0,0 +1,9 @@
+# ListModelsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------- | --------------------------------------- | --------------------------------------- | --------------------------------------- |
+| `data` | [Model](../../models/shared/model.md)[] | :heavy_check_mark: | N/A |
+| `object` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/models/shared/listpaginatedfinetuningjobsresponse.md b/docs/models/shared/listpaginatedfinetuningjobsresponse.md
new file mode 100755
index 0000000..73950f2
--- /dev/null
+++ b/docs/models/shared/listpaginatedfinetuningjobsresponse.md
@@ -0,0 +1,10 @@
+# ListPaginatedFineTuningJobsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- |
+| `data` | [FineTuningJob](../../models/shared/finetuningjob.md)[] | :heavy_check_mark: | N/A |
+| `hasMore` | *boolean* | :heavy_check_mark: | N/A |
+| `object` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/models/shared/model.md b/docs/models/shared/model.md
new file mode 100755
index 0000000..bfaeee8
--- /dev/null
+++ b/docs/models/shared/model.md
@@ -0,0 +1,13 @@
+# Model
+
+Describes an OpenAI model offering that can be used with the API.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- |
+| `created` | *number* | :heavy_check_mark: | The Unix timestamp (in seconds) when the model was created. |
+| `id` | *string* | :heavy_check_mark: | The model identifier, which can be referenced in the API endpoints. |
+| `object` | *string* | :heavy_check_mark: | The object type, which is always "model". |
+| `ownedBy` | *string* | :heavy_check_mark: | The organization that owns the model. |
\ No newline at end of file
diff --git a/docs/models/shared/openaifile.md b/docs/models/shared/openaifile.md
new file mode 100755
index 0000000..0e1fb8f
--- /dev/null
+++ b/docs/models/shared/openaifile.md
@@ -0,0 +1,18 @@
+# OpenAIFile
+
+The `File` object represents a document that has been uploaded to OpenAI.
+
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
+| `bytes` | *number* | :heavy_check_mark: | The size of the file in bytes. |
+| `createdAt` | *number* | :heavy_check_mark: | The Unix timestamp (in seconds) for when the file was created. |
+| `filename` | *string* | :heavy_check_mark: | The name of the file. |
+| `id` | *string* | :heavy_check_mark: | The file identifier, which can be referenced in the API endpoints. |
+| `object` | *string* | :heavy_check_mark: | The object type, which is always "file". |
+| `purpose` | *string* | :heavy_check_mark: | The intended purpose of the file. Currently, only "fine-tune" is supported. |
+| `status` | *string* | :heavy_minus_sign: | The current status of the file, which can be either `uploaded`, `processed`, `pending`, `error`, `deleting` or `deleted`. |
+| `statusDetails` | *string* | :heavy_minus_sign: | Additional details about the status of the file. If the file is in the `error` state, this will include a message describing the error.
|
\ No newline at end of file
diff --git a/docs/models/shared/security.md b/docs/models/shared/security.md
new file mode 100755
index 0000000..1132c5c
--- /dev/null
+++ b/docs/models/shared/security.md
@@ -0,0 +1,8 @@
+# Security
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
+| `apiKeyAuth` | *string* | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/docs/sdks/audio/README.md b/docs/sdks/audio/README.md
new file mode 100755
index 0000000..b3fe369
--- /dev/null
+++ b/docs/sdks/audio/README.md
@@ -0,0 +1,98 @@
+# Audio
+(*audio*)
+
+## Overview
+
+Learn how to turn audio into text.
+
+### Available Operations
+
+* [createTranscription](#createtranscription) - Transcribes audio into the input language.
+* [createTranslation](#createtranslation) - Translates audio into English.
+
+## createTranscription
+
+Transcribes audio into the input language.
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+import { CreateTranscriptionRequestResponseFormat } from "@speakeasy-api/openai/dist/sdk/models/shared";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.audio.createTranscription({
+ file: {
+ content: "\#BbTW'zX9" as bytes <<<>>>,
+ file: "string",
+ },
+ model: "whisper-1",
+ });
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
+| `request` | [shared.CreateTranscriptionRequest](../../models/shared/createtranscriptionrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.CreateTranscriptionResponse](../../models/operations/createtranscriptionresponse.md)>**
+
+
+## createTranslation
+
+Translates audio into English.
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.audio.createTranslation({
+ file: {
+ content: "M57UL;W3rx" as bytes <<<>>>,
+ file: "string",
+ },
+ model: "whisper-1",
+ });
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
+| `request` | [shared.CreateTranslationRequest](../../models/shared/createtranslationrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.CreateTranslationResponse](../../models/operations/createtranslationresponse.md)>**
+
diff --git a/docs/sdks/chat/README.md b/docs/sdks/chat/README.md
new file mode 100755
index 0000000..d1b40da
--- /dev/null
+++ b/docs/sdks/chat/README.md
@@ -0,0 +1,77 @@
+# Chat
+(*chat*)
+
+## Overview
+
+Given a list of messages comprising a conversation, the model will return a response.
+
+### Available Operations
+
+* [createChatCompletion](#createchatcompletion) - Creates a model response for the given chat conversation.
+
+## createChatCompletion
+
+Creates a model response for the given chat conversation.
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+import { ChatCompletionRequestMessageRole } from "@speakeasy-api/openai/dist/sdk/models/shared";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.chat.createChatCompletion({
+ functionCall: "string",
+ functions: [
+ {
+ name: "string",
+ parameters: {
+ "key": "string",
+ },
+ },
+ ],
+ logitBias: {
+ "key": 770726,
+ },
+ messages: [
+ {
+ content: "string",
+ functionCall: {
+ arguments: "string",
+ name: "string",
+ },
+ role: ChatCompletionRequestMessageRole.Assistant,
+ },
+ ],
+ model: "gpt-3.5-turbo",
+ n: 1,
+ stop: "string",
+ temperature: 1,
+ topP: 1,
+ user: "user-1234",
+ });
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
+| `request` | [shared.CreateChatCompletionRequest](../../models/shared/createchatcompletionrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.CreateChatCompletionResponse](../../models/operations/createchatcompletionresponse.md)>**
+
diff --git a/docs/sdks/completions/README.md b/docs/sdks/completions/README.md
new file mode 100755
index 0000000..79eab0a
--- /dev/null
+++ b/docs/sdks/completions/README.md
@@ -0,0 +1,60 @@
+# Completions
+(*completions*)
+
+## Overview
+
+Given a prompt, the model will return one or more predicted completions, and can also return the probabilities of alternative tokens at each position.
+
+### Available Operations
+
+* [createCompletion](#createcompletion) - Creates a completion for the provided prompt and parameters.
+
+## createCompletion
+
+Creates a completion for the provided prompt and parameters.
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.completions.createCompletion({
+ logitBias: {
+ "key": 160667,
+ },
+ maxTokens: 16,
+ model: "string",
+ n: 1,
+ prompt: "string",
+ stop: "string",
+ suffix: "test.",
+ temperature: 1,
+ topP: 1,
+ user: "user-1234",
+ });
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
+| `request` | [shared.CreateCompletionRequest](../../models/shared/createcompletionrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.CreateCompletionResponse](../../models/operations/createcompletionresponse.md)>**
+
diff --git a/docs/sdks/edits/README.md b/docs/sdks/edits/README.md
new file mode 100755
index 0000000..2d663c9
--- /dev/null
+++ b/docs/sdks/edits/README.md
@@ -0,0 +1,56 @@
+# Edits
+(*edits*)
+
+## Overview
+
+Given a prompt and an instruction, the model will return an edited version of the prompt.
+
+### Available Operations
+
+* [~~createEdit~~](#createedit) - Creates a new edit for the provided input, instruction, and parameters. :warning: **Deprecated**
+
+## ~~createEdit~~
+
+Creates a new edit for the provided input, instruction, and parameters.
+
+> :warning: **DEPRECATED**: This will be removed in a future release, please migrate away from it as soon as possible.
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.edits.createEdit({
+ input: "What day of the wek is it?",
+ instruction: "Fix the spelling mistakes.",
+ model: "text-davinci-edit-001",
+ n: 1,
+ temperature: 1,
+ topP: 1,
+ });
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- |
+| `request` | [shared.CreateEditRequest](../../models/shared/createeditrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.CreateEditResponse](../../models/operations/createeditresponse.md)>**
+
diff --git a/docs/sdks/embeddings/README.md b/docs/sdks/embeddings/README.md
new file mode 100755
index 0000000..0d1a6cb
--- /dev/null
+++ b/docs/sdks/embeddings/README.md
@@ -0,0 +1,53 @@
+# Embeddings
+(*embeddings*)
+
+## Overview
+
+Get a vector representation of a given input that can be easily consumed by machine learning models and algorithms.
+
+### Available Operations
+
+* [createEmbedding](#createembedding) - Creates an embedding vector representing the input text.
+
+## createEmbedding
+
+Creates an embedding vector representing the input text.
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+import { CreateEmbeddingRequestEncodingFormat } from "@speakeasy-api/openai/dist/sdk/models/shared";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.embeddings.createEmbedding({
+ encodingFormat: CreateEmbeddingRequestEncodingFormat.Float,
+ input: "The quick brown fox jumped over the lazy dog",
+ model: "text-embedding-ada-002",
+ user: "user-1234",
+ });
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
+| `request` | [shared.CreateEmbeddingRequest](../../models/shared/createembeddingrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.CreateEmbeddingResponse](../../models/operations/createembeddingresponse.md)>**
+
diff --git a/docs/sdks/files/README.md b/docs/sdks/files/README.md
new file mode 100755
index 0000000..9348333
--- /dev/null
+++ b/docs/sdks/files/README.md
@@ -0,0 +1,212 @@
+# Files
+(*files*)
+
+## Overview
+
+Files are used to upload documents that can be used with features like fine-tuning.
+
+### Available Operations
+
+* [createFile](#createfile) - Upload a file that can be used across various endpoints/features. Currently, the size of all the files uploaded by one organization can be up to 1 GB. Please [contact us](https://help.openai.com/) if you need to increase the storage limit.
+
+* [deleteFile](#deletefile) - Delete a file.
+* [downloadFile](#downloadfile) - Returns the contents of the specified file.
+* [listFiles](#listfiles) - Returns a list of files that belong to the user's organization.
+* [retrieveFile](#retrievefile) - Returns information about a specific file.
+
+## createFile
+
+Upload a file that can be used across various endpoints/features. Currently, the size of all the files uploaded by one organization can be up to 1 GB. Please [contact us](https://help.openai.com/) if you need to increase the storage limit.
+
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.files.createFile({
+ file: {
+ content: "`'$Z`(L/RH" as bytes <<<>>>,
+ file: "string",
+ },
+ purpose: "string",
+ });
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- |
+| `request` | [shared.CreateFileRequest](../../models/shared/createfilerequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.CreateFileResponse](../../models/operations/createfileresponse.md)>**
+
+
+## deleteFile
+
+Delete a file.
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.files.deleteFile({
+ fileId: "string",
+ });
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
+| `request` | [operations.DeleteFileRequest](../../models/operations/deletefilerequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.DeleteFileResponse](../../models/operations/deletefileresponse.md)>**
+
+
+## downloadFile
+
+Returns the contents of the specified file.
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.files.downloadFile({
+ fileId: "string",
+ });
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
+| `request` | [operations.DownloadFileRequest](../../models/operations/downloadfilerequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.DownloadFileResponse](../../models/operations/downloadfileresponse.md)>**
+
+
+## listFiles
+
+Returns a list of files that belong to the user's organization.
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.files.listFiles();
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.ListFilesResponse](../../models/operations/listfilesresponse.md)>**
+
+
+## retrieveFile
+
+Returns information about a specific file.
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.files.retrieveFile({
+ fileId: "string",
+ });
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
+| `request` | [operations.RetrieveFileRequest](../../models/operations/retrievefilerequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.RetrieveFileResponse](../../models/operations/retrievefileresponse.md)>**
+
diff --git a/docs/sdks/finetunes/README.md b/docs/sdks/finetunes/README.md
new file mode 100755
index 0000000..8f4e9d8
--- /dev/null
+++ b/docs/sdks/finetunes/README.md
@@ -0,0 +1,249 @@
+# FineTunes
+(*fineTunes*)
+
+## Overview
+
+Manage legacy fine-tuning jobs to tailor a model to your specific training data.
+
+### Available Operations
+
+* [~~cancelFineTune~~](#cancelfinetune) - Immediately cancel a fine-tune job.
+ :warning: **Deprecated**
+* [~~createFineTune~~](#createfinetune) - Creates a job that fine-tunes a specified model from a given dataset.
+
+Response includes details of the enqueued job including job status and the name of the fine-tuned models once complete.
+
+[Learn more about fine-tuning](/docs/guides/legacy-fine-tuning)
+ :warning: **Deprecated**
+* [~~listFineTuneEvents~~](#listfinetuneevents) - Get fine-grained status updates for a fine-tune job.
+ :warning: **Deprecated**
+* [~~listFineTunes~~](#listfinetunes) - List your organization's fine-tuning jobs
+ :warning: **Deprecated**
+* [~~retrieveFineTune~~](#retrievefinetune) - Gets info about the fine-tune job.
+
+[Learn more about fine-tuning](/docs/guides/legacy-fine-tuning)
+ :warning: **Deprecated**
+
+## ~~cancelFineTune~~
+
+Immediately cancel a fine-tune job.
+
+
+> :warning: **DEPRECATED**: This will be removed in a future release, please migrate away from it as soon as possible.
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.fineTunes.cancelFineTune({
+ fineTuneId: "ft-AF1WoRqd3aJAHsqc9NY7iL8F",
+ });
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
+| `request` | [operations.CancelFineTuneRequest](../../models/operations/cancelfinetunerequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.CancelFineTuneResponse](../../models/operations/cancelfinetuneresponse.md)>**
+
+
+## ~~createFineTune~~
+
+Creates a job that fine-tunes a specified model from a given dataset.
+
+Response includes details of the enqueued job including job status and the name of the fine-tuned models once complete.
+
+[Learn more about fine-tuning](/docs/guides/legacy-fine-tuning)
+
+
+> :warning: **DEPRECATED**: This will be removed in a future release, please migrate away from it as soon as possible.
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.fineTunes.createFineTune({
+ classificationBetas: [
+ 0.6,
+ 1,
+ 1.5,
+ 2,
+ ],
+ hyperparameters: {
+ nEpochs: "string",
+ },
+ model: "curie",
+ trainingFile: "file-abc123",
+ validationFile: "file-abc123",
+ });
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
+| `request` | [shared.CreateFineTuneRequest](../../models/shared/createfinetunerequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.CreateFineTuneResponse](../../models/operations/createfinetuneresponse.md)>**
+
+
+## ~~listFineTuneEvents~~
+
+Get fine-grained status updates for a fine-tune job.
+
+
+> :warning: **DEPRECATED**: This will be removed in a future release, please migrate away from it as soon as possible.
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.fineTunes.listFineTuneEvents({
+ fineTuneId: "ft-AF1WoRqd3aJAHsqc9NY7iL8F",
+ });
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
+| `request` | [operations.ListFineTuneEventsRequest](../../models/operations/listfinetuneeventsrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.ListFineTuneEventsResponse](../../models/operations/listfinetuneeventsresponse.md)>**
+
+
+## ~~listFineTunes~~
+
+List your organization's fine-tuning jobs
+
+
+> :warning: **DEPRECATED**: This will be removed in a future release, please migrate away from it as soon as possible.
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.fineTunes.listFineTunes();
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.ListFineTunesResponse](../../models/operations/listfinetunesresponse.md)>**
+
+
+## ~~retrieveFineTune~~
+
+Gets info about the fine-tune job.
+
+[Learn more about fine-tuning](/docs/guides/legacy-fine-tuning)
+
+
+> :warning: **DEPRECATED**: This will be removed in a future release, please migrate away from it as soon as possible.
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.fineTunes.retrieveFineTune({
+ fineTuneId: "ft-AF1WoRqd3aJAHsqc9NY7iL8F",
+ });
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
+| `request` | [operations.RetrieveFineTuneRequest](../../models/operations/retrievefinetunerequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.RetrieveFineTuneResponse](../../models/operations/retrievefinetuneresponse.md)>**
+
diff --git a/docs/sdks/finetuning/README.md b/docs/sdks/finetuning/README.md
new file mode 100755
index 0000000..8207ed4
--- /dev/null
+++ b/docs/sdks/finetuning/README.md
@@ -0,0 +1,234 @@
+# FineTuning
+(*fineTuning*)
+
+## Overview
+
+Manage fine-tuning jobs to tailor a model to your specific training data.
+
+### Available Operations
+
+* [cancelFineTuningJob](#cancelfinetuningjob) - Immediately cancel a fine-tune job.
+
+* [createFineTuningJob](#createfinetuningjob) - Creates a job that fine-tunes a specified model from a given dataset.
+
+Response includes details of the enqueued job including job status and the name of the fine-tuned models once complete.
+
+[Learn more about fine-tuning](/docs/guides/fine-tuning)
+
+* [listFineTuningEvents](#listfinetuningevents) - Get status updates for a fine-tuning job.
+
+* [listPaginatedFineTuningJobs](#listpaginatedfinetuningjobs) - List your organization's fine-tuning jobs
+
+* [retrieveFineTuningJob](#retrievefinetuningjob) - Get info about a fine-tuning job.
+
+[Learn more about fine-tuning](/docs/guides/fine-tuning)
+
+
+## cancelFineTuningJob
+
+Immediately cancel a fine-tune job.
+
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.fineTuning.cancelFineTuningJob({
+ fineTuningJobId: "ft-AF1WoRqd3aJAHsqc9NY7iL8F",
+ });
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
+| `request` | [operations.CancelFineTuningJobRequest](../../models/operations/cancelfinetuningjobrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.CancelFineTuningJobResponse](../../models/operations/cancelfinetuningjobresponse.md)>**
+
+
+## createFineTuningJob
+
+Creates a job that fine-tunes a specified model from a given dataset.
+
+Response includes details of the enqueued job including job status and the name of the fine-tuned models once complete.
+
+[Learn more about fine-tuning](/docs/guides/fine-tuning)
+
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.fineTuning.createFineTuningJob({
+ hyperparameters: {
+ nEpochs: "string",
+ },
+ model: "gpt-3.5-turbo",
+ trainingFile: "file-abc123",
+ validationFile: "file-abc123",
+ });
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
+| `request` | [shared.CreateFineTuningJobRequest](../../models/shared/createfinetuningjobrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.CreateFineTuningJobResponse](../../models/operations/createfinetuningjobresponse.md)>**
+
+
+## listFineTuningEvents
+
+Get status updates for a fine-tuning job.
+
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.fineTuning.listFineTuningEvents({
+ fineTuningJobId: "ft-AF1WoRqd3aJAHsqc9NY7iL8F",
+ });
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
+| `request` | [operations.ListFineTuningEventsRequest](../../models/operations/listfinetuningeventsrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.ListFineTuningEventsResponse](../../models/operations/listfinetuningeventsresponse.md)>**
+
+
+## listPaginatedFineTuningJobs
+
+List your organization's fine-tuning jobs
+
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.fineTuning.listPaginatedFineTuningJobs({});
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
+| `request` | [operations.ListPaginatedFineTuningJobsRequest](../../models/operations/listpaginatedfinetuningjobsrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.ListPaginatedFineTuningJobsResponse](../../models/operations/listpaginatedfinetuningjobsresponse.md)>**
+
+
+## retrieveFineTuningJob
+
+Get info about a fine-tuning job.
+
+[Learn more about fine-tuning](/docs/guides/fine-tuning)
+
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.fineTuning.retrieveFineTuningJob({
+ fineTuningJobId: "ft-AF1WoRqd3aJAHsqc9NY7iL8F",
+ });
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
+| `request` | [operations.RetrieveFineTuningJobRequest](../../models/operations/retrievefinetuningjobrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.RetrieveFineTuningJobResponse](../../models/operations/retrievefinetuningjobresponse.md)>**
+
diff --git a/docs/sdks/gpt/README.md b/docs/sdks/gpt/README.md
new file mode 100755
index 0000000..391e9a9
--- /dev/null
+++ b/docs/sdks/gpt/README.md
@@ -0,0 +1,9 @@
+# Gpt SDK
+
+
+## Overview
+
+OpenAI API: The OpenAI REST API. Please see https://platform.openai.com/docs/api-reference for more details.
+
+### Available Operations
+
diff --git a/docs/sdks/images/README.md b/docs/sdks/images/README.md
new file mode 100755
index 0000000..bdd7946
--- /dev/null
+++ b/docs/sdks/images/README.md
@@ -0,0 +1,155 @@
+# Images
+(*images*)
+
+## Overview
+
+Given a prompt and/or an input image, the model will generate a new image.
+
+### Available Operations
+
+* [createImage](#createimage) - Creates an image given a prompt.
+* [createImageEdit](#createimageedit) - Creates an edited or extended image given an original image and a prompt.
+* [createImageVariation](#createimagevariation) - Creates a variation of a given image.
+
+## createImage
+
+Creates an image given a prompt.
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+import { CreateImageRequestResponseFormat, CreateImageRequestSize } from "@speakeasy-api/openai/dist/sdk/models/shared";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.images.createImage({
+ n: 1,
+ prompt: "A cute baby sea otter",
+ responseFormat: CreateImageRequestResponseFormat.Url,
+ size: CreateImageRequestSize.OneThousandAndTwentyFourx1024,
+ user: "user-1234",
+ });
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- |
+| `request` | [shared.CreateImageRequest](../../models/shared/createimagerequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.CreateImageResponse](../../models/operations/createimageresponse.md)>**
+
+
+## createImageEdit
+
+Creates an edited or extended image given an original image and a prompt.
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+import { CreateImageEditRequestResponseFormat, CreateImageEditRequestSize } from "@speakeasy-api/openai/dist/sdk/models/shared";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.images.createImageEdit({
+ image: {
+ content: "0]/(|3W_T9" as bytes <<<>>>,
+ image: "https://loremflickr.com/640/480",
+ },
+ mask: {
+ content: "`^YjrpxopK" as bytes <<<>>>,
+ mask: "string",
+ },
+ n: 1,
+ prompt: "A cute baby sea otter wearing a beret",
+ responseFormat: CreateImageEditRequestResponseFormat.Url,
+ size: CreateImageEditRequestSize.OneThousandAndTwentyFourx1024,
+ user: "user-1234",
+ });
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
+| `request` | [shared.CreateImageEditRequest](../../models/shared/createimageeditrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.CreateImageEditResponse](../../models/operations/createimageeditresponse.md)>**
+
+
+## createImageVariation
+
+Creates a variation of a given image.
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+import { CreateImageVariationRequestResponseFormat, CreateImageVariationRequestSize } from "@speakeasy-api/openai/dist/sdk/models/shared";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.images.createImageVariation({
+ image: {
+ content: "`YY7PCrWuK" as bytes <<<>>>,
+ image: "https://loremflickr.com/640/480",
+ },
+ n: 1,
+ responseFormat: CreateImageVariationRequestResponseFormat.Url,
+ size: CreateImageVariationRequestSize.OneThousandAndTwentyFourx1024,
+ user: "user-1234",
+ });
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
+| `request` | [shared.CreateImageVariationRequest](../../models/shared/createimagevariationrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.CreateImageVariationResponse](../../models/operations/createimagevariationresponse.md)>**
+
diff --git a/docs/sdks/models/README.md b/docs/sdks/models/README.md
new file mode 100755
index 0000000..3db8acc
--- /dev/null
+++ b/docs/sdks/models/README.md
@@ -0,0 +1,126 @@
+# Models
+(*models*)
+
+## Overview
+
+List and describe the various models available in the API.
+
+### Available Operations
+
+* [deleteModel](#deletemodel) - Delete a fine-tuned model. You must have the Owner role in your organization to delete a model.
+* [listModels](#listmodels) - Lists the currently available models, and provides basic information about each one such as the owner and availability.
+* [retrieveModel](#retrievemodel) - Retrieves a model instance, providing basic information about the model such as the owner and permissioning.
+
+## deleteModel
+
+Delete a fine-tuned model. You must have the Owner role in your organization to delete a model.
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.models.deleteModel({
+ model: "ft:gpt-3.5-turbo:acemeco:suffix:abc123",
+ });
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
+| `request` | [operations.DeleteModelRequest](../../models/operations/deletemodelrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.DeleteModelResponse](../../models/operations/deletemodelresponse.md)>**
+
+
+## listModels
+
+Lists the currently available models, and provides basic information about each one such as the owner and availability.
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.models.listModels();
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.ListModelsResponse](../../models/operations/listmodelsresponse.md)>**
+
+
+## retrieveModel
+
+Retrieves a model instance, providing basic information about the model such as the owner and permissioning.
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.models.retrieveModel({
+ model: "gpt-3.5-turbo",
+ });
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
+| `request` | [operations.RetrieveModelRequest](../../models/operations/retrievemodelrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.RetrieveModelResponse](../../models/operations/retrievemodelresponse.md)>**
+
diff --git a/docs/sdks/moderations/README.md b/docs/sdks/moderations/README.md
new file mode 100755
index 0000000..22a5140
--- /dev/null
+++ b/docs/sdks/moderations/README.md
@@ -0,0 +1,50 @@
+# Moderations
+(*moderations*)
+
+## Overview
+
+Given a input text, outputs if the model classifies it as violating OpenAI's content policy.
+
+### Available Operations
+
+* [createModeration](#createmoderation) - Classifies if text violates OpenAI's Content Policy
+
+## createModeration
+
+Classifies if text violates OpenAI's Content Policy
+
+### Example Usage
+
+```typescript
+import { Gpt } from "@speakeasy-api/openai";
+
+(async() => {
+ const sdk = new Gpt({
+ security: {
+ apiKeyAuth: "",
+ },
+ });
+
+ const res = await sdk.moderations.createModeration({
+ input: "string",
+ model: "text-moderation-stable",
+ });
+
+ if (res.statusCode == 200) {
+ // handle response
+ }
+})();
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
+| `request` | [shared.CreateModerationRequest](../../models/shared/createmoderationrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `config` | [AxiosRequestConfig](https://axios-http.com/docs/req_config) | :heavy_minus_sign: | Available config options for making requests. |
+
+
+### Response
+
+**Promise<[operations.CreateModerationResponse](../../models/operations/createmoderationresponse.md)>**
+
diff --git a/files.gen b/files.gen
index e54d544..385b95b 100755
--- a/files.gen
+++ b/files.gen
@@ -1,4 +1,14 @@
-src/sdk/openai.ts
+src/sdk/audio.ts
+src/sdk/chat.ts
+src/sdk/completions.ts
+src/sdk/edits.ts
+src/sdk/embeddings.ts
+src/sdk/files.ts
+src/sdk/finetunes.ts
+src/sdk/finetuning.ts
+src/sdk/images.ts
+src/sdk/models.ts
+src/sdk/moderations.ts
src/sdk/sdk.ts
.eslintrc.yml
jest.config.js
@@ -15,69 +25,211 @@ src/internal/utils/retries.ts
src/internal/utils/security.ts
src/internal/utils/utils.ts
src/sdk/index.ts
+src/sdk/models/errors/sdkerror.ts
+src/sdk/types/index.ts
+src/sdk/types/rfcdate.ts
tsconfig.json
-src/sdk/models/operations/cancelfinetune.ts
-src/sdk/models/operations/createanswer.ts
+src/sdk/models/operations/createtranscription.ts
+src/sdk/models/operations/createtranslation.ts
src/sdk/models/operations/createchatcompletion.ts
-src/sdk/models/operations/createclassification.ts
src/sdk/models/operations/createcompletion.ts
src/sdk/models/operations/createedit.ts
src/sdk/models/operations/createembedding.ts
src/sdk/models/operations/createfile.ts
-src/sdk/models/operations/createfinetune.ts
-src/sdk/models/operations/createimage.ts
-src/sdk/models/operations/createimageedit.ts
-src/sdk/models/operations/createimagevariation.ts
-src/sdk/models/operations/createmoderation.ts
-src/sdk/models/operations/createsearch.ts
-src/sdk/models/operations/createtranscription.ts
-src/sdk/models/operations/createtranslation.ts
src/sdk/models/operations/deletefile.ts
-src/sdk/models/operations/deletemodel.ts
src/sdk/models/operations/downloadfile.ts
-src/sdk/models/operations/listengines.ts
src/sdk/models/operations/listfiles.ts
+src/sdk/models/operations/retrievefile.ts
+src/sdk/models/operations/cancelfinetune.ts
+src/sdk/models/operations/createfinetune.ts
src/sdk/models/operations/listfinetuneevents.ts
src/sdk/models/operations/listfinetunes.ts
-src/sdk/models/operations/listmodels.ts
-src/sdk/models/operations/retrieveengine.ts
-src/sdk/models/operations/retrievefile.ts
src/sdk/models/operations/retrievefinetune.ts
+src/sdk/models/operations/cancelfinetuningjob.ts
+src/sdk/models/operations/createfinetuningjob.ts
+src/sdk/models/operations/listfinetuningevents.ts
+src/sdk/models/operations/listpaginatedfinetuningjobs.ts
+src/sdk/models/operations/retrievefinetuningjob.ts
+src/sdk/models/operations/createimage.ts
+src/sdk/models/operations/createimageedit.ts
+src/sdk/models/operations/createimagevariation.ts
+src/sdk/models/operations/deletemodel.ts
+src/sdk/models/operations/listmodels.ts
src/sdk/models/operations/retrievemodel.ts
+src/sdk/models/operations/createmoderation.ts
src/sdk/models/operations/index.ts
-src/sdk/models/shared/createanswerresponse.ts
-src/sdk/models/shared/createanswerrequest.ts
+src/sdk/models/shared/createtranscriptionresponse.ts
+src/sdk/models/shared/createtranscriptionrequest.ts
+src/sdk/models/shared/createtranslationresponse.ts
+src/sdk/models/shared/createtranslationrequest.ts
src/sdk/models/shared/createchatcompletionresponse.ts
+src/sdk/models/shared/completionusage.ts
src/sdk/models/shared/chatcompletionresponsemessage.ts
src/sdk/models/shared/createchatcompletionrequest.ts
src/sdk/models/shared/chatcompletionrequestmessage.ts
-src/sdk/models/shared/createclassificationresponse.ts
-src/sdk/models/shared/createclassificationrequest.ts
+src/sdk/models/shared/chatcompletionfunctions.ts
src/sdk/models/shared/createcompletionresponse.ts
src/sdk/models/shared/createcompletionrequest.ts
src/sdk/models/shared/createeditresponse.ts
src/sdk/models/shared/createeditrequest.ts
src/sdk/models/shared/createembeddingresponse.ts
+src/sdk/models/shared/embedding.ts
src/sdk/models/shared/createembeddingrequest.ts
+src/sdk/models/shared/openaifile.ts
src/sdk/models/shared/createfilerequest.ts
+src/sdk/models/shared/deletefileresponse.ts
+src/sdk/models/shared/listfilesresponse.ts
+src/sdk/models/shared/finetune.ts
+src/sdk/models/shared/finetuneevent.ts
src/sdk/models/shared/createfinetunerequest.ts
+src/sdk/models/shared/listfinetuneeventsresponse.ts
+src/sdk/models/shared/listfinetunesresponse.ts
+src/sdk/models/shared/finetuningjob.ts
+src/sdk/models/shared/createfinetuningjobrequest.ts
+src/sdk/models/shared/listfinetuningjobeventsresponse.ts
+src/sdk/models/shared/finetuningjobevent.ts
+src/sdk/models/shared/listpaginatedfinetuningjobsresponse.ts
+src/sdk/models/shared/imagesresponse.ts
+src/sdk/models/shared/image.ts
src/sdk/models/shared/createimagerequest.ts
src/sdk/models/shared/createimageeditrequest.ts
src/sdk/models/shared/createimagevariationrequest.ts
-src/sdk/models/shared/createmoderationresponse.ts
-src/sdk/models/shared/createmoderationrequest.ts
-src/sdk/models/shared/createsearchresponse.ts
-src/sdk/models/shared/createsearchrequest.ts
-src/sdk/models/shared/createtranscriptionresponse.ts
-src/sdk/models/shared/createtranscriptionrequest.ts
-src/sdk/models/shared/createtranslationresponse.ts
-src/sdk/models/shared/createtranslationrequest.ts
-src/sdk/models/shared/deletefileresponse.ts
src/sdk/models/shared/deletemodelresponse.ts
-src/sdk/models/shared/listenginesresponse.ts
-src/sdk/models/shared/listfilesresponse.ts
-src/sdk/models/shared/listfinetuneeventsresponse.ts
-src/sdk/models/shared/listfinetunesresponse.ts
src/sdk/models/shared/listmodelsresponse.ts
+src/sdk/models/shared/model.ts
+src/sdk/models/shared/createmoderationresponse.ts
+src/sdk/models/shared/createmoderationrequest.ts
+src/sdk/models/shared/security.ts
src/sdk/models/shared/index.ts
-USAGE.md
\ No newline at end of file
+src/sdk/models/errors/index.ts
+USAGE.md
+docs/models/operations/createtranscriptionresponse.md
+docs/models/operations/createtranslationresponse.md
+docs/models/operations/createchatcompletionresponse.md
+docs/models/operations/createcompletionresponse.md
+docs/models/operations/createeditresponse.md
+docs/models/operations/createembeddingresponse.md
+docs/models/operations/createfileresponse.md
+docs/models/operations/deletefilerequest.md
+docs/models/operations/deletefileresponse.md
+docs/models/operations/downloadfilerequest.md
+docs/models/operations/downloadfileresponse.md
+docs/models/operations/listfilesresponse.md
+docs/models/operations/retrievefilerequest.md
+docs/models/operations/retrievefileresponse.md
+docs/models/operations/cancelfinetunerequest.md
+docs/models/operations/cancelfinetuneresponse.md
+docs/models/operations/createfinetuneresponse.md
+docs/models/operations/listfinetuneeventsrequest.md
+docs/models/operations/listfinetuneeventsresponse.md
+docs/models/operations/listfinetunesresponse.md
+docs/models/operations/retrievefinetunerequest.md
+docs/models/operations/retrievefinetuneresponse.md
+docs/models/operations/cancelfinetuningjobrequest.md
+docs/models/operations/cancelfinetuningjobresponse.md
+docs/models/operations/createfinetuningjobresponse.md
+docs/models/operations/listfinetuningeventsrequest.md
+docs/models/operations/listfinetuningeventsresponse.md
+docs/models/operations/listpaginatedfinetuningjobsrequest.md
+docs/models/operations/listpaginatedfinetuningjobsresponse.md
+docs/models/operations/retrievefinetuningjobrequest.md
+docs/models/operations/retrievefinetuningjobresponse.md
+docs/models/operations/createimageresponse.md
+docs/models/operations/createimageeditresponse.md
+docs/models/operations/createimagevariationresponse.md
+docs/models/operations/deletemodelrequest.md
+docs/models/operations/deletemodelresponse.md
+docs/models/operations/listmodelsresponse.md
+docs/models/operations/retrievemodelrequest.md
+docs/models/operations/retrievemodelresponse.md
+docs/models/operations/createmoderationresponse.md
+docs/models/shared/createtranscriptionresponse.md
+docs/models/shared/createtranscriptionrequestfile.md
+docs/models/shared/createtranscriptionrequestresponseformat.md
+docs/models/shared/createtranscriptionrequest.md
+docs/models/shared/createtranslationresponse.md
+docs/models/shared/createtranslationrequestfile.md
+docs/models/shared/createtranslationrequest.md
+docs/models/shared/createchatcompletionresponsechoicesfinishreason.md
+docs/models/shared/createchatcompletionresponsechoices.md
+docs/models/shared/createchatcompletionresponse.md
+docs/models/shared/completionusage.md
+docs/models/shared/chatcompletionresponsemessagefunctioncall.md
+docs/models/shared/chatcompletionresponsemessagerole.md
+docs/models/shared/chatcompletionresponsemessage.md
+docs/models/shared/createchatcompletionrequest.md
+docs/models/shared/chatcompletionrequestmessagefunctioncall.md
+docs/models/shared/chatcompletionrequestmessagerole.md
+docs/models/shared/chatcompletionrequestmessage.md
+docs/models/shared/chatcompletionfunctions.md
+docs/models/shared/createcompletionresponsechoicesfinishreason.md
+docs/models/shared/createcompletionresponsechoiceslogprobs.md
+docs/models/shared/createcompletionresponsechoices.md
+docs/models/shared/createcompletionresponse.md
+docs/models/shared/createcompletionrequest.md
+docs/models/shared/createeditresponsechoicesfinishreason.md
+docs/models/shared/createeditresponsechoices.md
+docs/models/shared/createeditresponse.md
+docs/models/shared/createeditrequest.md
+docs/models/shared/createembeddingresponseusage.md
+docs/models/shared/createembeddingresponse.md
+docs/models/shared/embedding.md
+docs/models/shared/createembeddingrequestencodingformat.md
+docs/models/shared/createembeddingrequest.md
+docs/models/shared/openaifile.md
+docs/models/shared/createfilerequestfile.md
+docs/models/shared/createfilerequest.md
+docs/models/shared/deletefileresponse.md
+docs/models/shared/listfilesresponse.md
+docs/models/shared/finetunehyperparams.md
+docs/models/shared/finetune.md
+docs/models/shared/finetuneevent.md
+docs/models/shared/createfinetunerequesthyperparameters.md
+docs/models/shared/createfinetunerequest.md
+docs/models/shared/listfinetuneeventsresponse.md
+docs/models/shared/listfinetunesresponse.md
+docs/models/shared/finetuningjoberror.md
+docs/models/shared/finetuningjobhyperparameters.md
+docs/models/shared/finetuningjob.md
+docs/models/shared/createfinetuningjobrequesthyperparameters.md
+docs/models/shared/createfinetuningjobrequest.md
+docs/models/shared/listfinetuningjobeventsresponse.md
+docs/models/shared/finetuningjobeventlevel.md
+docs/models/shared/finetuningjobevent.md
+docs/models/shared/listpaginatedfinetuningjobsresponse.md
+docs/models/shared/imagesresponse.md
+docs/models/shared/image.md
+docs/models/shared/createimagerequestresponseformat.md
+docs/models/shared/createimagerequestsize.md
+docs/models/shared/createimagerequest.md
+docs/models/shared/createimageeditrequestimage.md
+docs/models/shared/createimageeditrequestmask.md
+docs/models/shared/createimageeditrequestresponseformat.md
+docs/models/shared/createimageeditrequestsize.md
+docs/models/shared/createimageeditrequest.md
+docs/models/shared/createimagevariationrequestimage.md
+docs/models/shared/createimagevariationrequestresponseformat.md
+docs/models/shared/createimagevariationrequestsize.md
+docs/models/shared/createimagevariationrequest.md
+docs/models/shared/deletemodelresponse.md
+docs/models/shared/listmodelsresponse.md
+docs/models/shared/model.md
+docs/models/shared/createmoderationresponseresultscategories.md
+docs/models/shared/createmoderationresponseresultscategoryscores.md
+docs/models/shared/createmoderationresponseresults.md
+docs/models/shared/createmoderationresponse.md
+docs/models/shared/createmoderationrequest.md
+docs/models/shared/security.md
+docs/sdks/gpt/README.md
+docs/sdks/audio/README.md
+docs/sdks/chat/README.md
+docs/sdks/completions/README.md
+docs/sdks/edits/README.md
+docs/sdks/embeddings/README.md
+docs/sdks/files/README.md
+docs/sdks/finetunes/README.md
+docs/sdks/finetuning/README.md
+docs/sdks/images/README.md
+docs/sdks/models/README.md
+docs/sdks/moderations/README.md
+.gitattributes
\ No newline at end of file
diff --git a/gen.yaml b/gen.yaml
index b37a596..4196e58 100644
--- a/gen.yaml
+++ b/gen.yaml
@@ -1,15 +1,27 @@
configVersion: 1.0.0
management:
- docChecksum: 5399f7767be93d4a4b8cecb9bbc687b3
- docVersion: 1.2.0
- speakeasyVersion: 1.19.2
- generationVersion: 2.16.5
+ docChecksum: b421f9981e573fbdad69da1d6fbac49f
+ docVersion: 2.0.0
+ speakeasyVersion: 1.107.0
+ generationVersion: 2.171.0
generation:
- telemetryEnabled: false
+ repoURL: https://github.com/speakeasy-sdks/openai-ts-sdk.git
sdkClassName: gpt
sdkFlattening: true
singleTagPerOp: false
+ telemetryEnabled: false
+features:
+ typescript:
+ core: 2.94.0
+ deprecations: 2.81.1
+ globalSecurity: 2.82.0
+ globalServerURLs: 2.82.0
typescript:
- version: 1.9.2
+ version: 2.28.0
author: speakeasy-openai
+ flattenGlobalSecurity: false
+ installationURL: https://github.com/speakeasy-sdks/openai-ts-sdk
+ maxMethodParams: 0
packageName: '@speakeasy-api/openai'
+ published: true
+ repoSubDirectory: .
diff --git a/jest.config.js b/jest.config.js
index a80354c..e3f8611 100755
--- a/jest.config.js
+++ b/jest.config.js
@@ -1,5 +1,5 @@
module.exports = {
preset: "ts-jest",
testEnvironment: "node",
- testPathIgnorePatterns: ["/__tests__/helpers.ts"],
+ testPathIgnorePatterns: ["/__tests__/helpers.ts", "/__tests__/common_helpers.ts"],
};
diff --git a/package-lock.json b/package-lock.json
index 61b416a..6fdda9e 100755
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "@speakeasy-api/openai",
- "version": "1.9.2",
+ "version": "2.28.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@speakeasy-api/openai",
- "version": "1.9.2",
+ "version": "2.28.0",
"dependencies": {
"axios": "^1.1.3",
"class-transformer": "^0.5.1",
@@ -15,717 +15,688 @@
},
"devDependencies": {
"@types/node": "^18.11.5",
+ "@types/jsonpath": "^0.2.0",
"@typescript-eslint/eslint-plugin": "^5.56.0",
"@typescript-eslint/parser": "^5.56.0",
"eslint": "^8.36.0",
"typescript": "^4.8.4"
}
},
- "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==",
+ "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,
"dependencies": {
- "eslint-visitor-keys": "^3.3.0"
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.21.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz",
+ "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==",
+ "dev": true,
+ "dependencies": {
+ "@babel/highlight": "^7.18.6"
},
- "peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ "engines": {
+ "node": ">=6.9.0"
}
},
- "node_modules/@eslint-community/regexpp": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.1.tgz",
- "integrity": "sha512-BISJ6ZE4xQsuL/FmsyRaiffpq977bMlsKfGHTQrOGFErfByxIe6iZTxPf/00Zon9b9a7iUykfQwejN3s2ZW/Bw==",
+ "node_modules/@babel/compat-data": {
+ "version": "7.22.3",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.3.tgz",
+ "integrity": "sha512-aNtko9OPOwVESUFp3MZfD8Uzxl7JzSeJpd7npIoxCasU37PFbAQRpKglkaKwlHOyeJdrREpo8TW8ldrkYWwvIQ==",
"dev": true,
"engines": {
- "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ "node": ">=6.9.0"
}
},
- "node_modules/@eslint/eslintrc": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz",
- "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==",
+ "node_modules/@babel/core": {
+ "version": "7.22.1",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.1.tgz",
+ "integrity": "sha512-Hkqu7J4ynysSXxmAahpN1jjRwVJ+NdpraFLIWflgjpVob3KNyK3/tIUc7Q7szed8WMp0JNa7Qtd1E9Oo22F9gA==",
"dev": true,
"dependencies": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^9.5.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"
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.21.4",
+ "@babel/generator": "^7.22.0",
+ "@babel/helper-compilation-targets": "^7.22.1",
+ "@babel/helper-module-transforms": "^7.22.1",
+ "@babel/helpers": "^7.22.0",
+ "@babel/parser": "^7.22.0",
+ "@babel/template": "^7.21.9",
+ "@babel/traverse": "^7.22.1",
+ "@babel/types": "^7.22.0",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.2",
+ "semver": "^6.3.0"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": ">=6.9.0"
},
"funding": {
- "url": "https://opencollective.com/eslint"
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
}
},
- "node_modules/@eslint/js": {
- "version": "8.36.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz",
- "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==",
+ "node_modules/@babel/core/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
+ },
+ "node_modules/@babel/core/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true,
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "bin": {
+ "semver": "bin/semver.js"
}
},
- "node_modules/@humanwhocodes/config-array": {
- "version": "0.11.8",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
- "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
+ "node_modules/@babel/generator": {
+ "version": "7.22.3",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.3.tgz",
+ "integrity": "sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A==",
"dev": true,
"dependencies": {
- "@humanwhocodes/object-schema": "^1.2.1",
- "debug": "^4.1.1",
- "minimatch": "^3.0.5"
+ "@babel/types": "^7.22.3",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
+ "jsesc": "^2.5.1"
},
"engines": {
- "node": ">=10.10.0"
+ "node": ">=6.9.0"
}
},
- "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/@babel/helper-compilation-targets": {
+ "version": "7.22.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.1.tgz",
+ "integrity": "sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ==",
"dev": true,
+ "dependencies": {
+ "@babel/compat-data": "^7.22.0",
+ "@babel/helper-validator-option": "^7.21.0",
+ "browserslist": "^4.21.3",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.0"
+ },
"engines": {
- "node": ">=12.22"
+ "node": ">=6.9.0"
},
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/nzakas"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
}
},
- "node_modules/@humanwhocodes/object-schema": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
- "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "node_modules/@babel/helper-compilation-targets/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,
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets/node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
"dev": true
},
- "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==",
+ "node_modules/@babel/helper-environment-visitor": {
+ "version": "7.22.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.1.tgz",
+ "integrity": "sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA==",
"dev": true,
- "dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
"engines": {
- "node": ">= 8"
+ "node": ">=6.9.0"
}
},
- "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==",
+ "node_modules/@babel/helper-function-name": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz",
+ "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==",
"dev": true,
+ "dependencies": {
+ "@babel/template": "^7.20.7",
+ "@babel/types": "^7.21.0"
+ },
"engines": {
- "node": ">= 8"
+ "node": ">=6.9.0"
}
},
- "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==",
+ "node_modules/@babel/helper-hoist-variables": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
+ "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
"dev": true,
"dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
+ "@babel/types": "^7.18.6"
},
"engines": {
- "node": ">= 8"
+ "node": ">=6.9.0"
}
},
- "node_modules/@types/json-schema": {
- "version": "7.0.11",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
- "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
- "dev": true
- },
- "node_modules/@types/node": {
- "version": "18.11.9",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz",
- "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==",
- "dev": true
- },
- "node_modules/@types/semver": {
- "version": "7.3.13",
- "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz",
- "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==",
- "dev": true
- },
- "node_modules/@typescript-eslint/eslint-plugin": {
- "version": "5.56.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.56.0.tgz",
- "integrity": "sha512-ZNW37Ccl3oMZkzxrYDUX4o7cnuPgU+YrcaYXzsRtLB16I1FR5SHMqga3zGsaSliZADCWo2v8qHWqAYIj8nWCCg==",
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.21.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz",
+ "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==",
"dev": true,
"dependencies": {
- "@eslint-community/regexpp": "^4.4.0",
- "@typescript-eslint/scope-manager": "5.56.0",
- "@typescript-eslint/type-utils": "5.56.0",
- "@typescript-eslint/utils": "5.56.0",
- "debug": "^4.3.4",
- "grapheme-splitter": "^1.0.4",
- "ignore": "^5.2.0",
- "natural-compare-lite": "^1.4.0",
- "semver": "^7.3.7",
- "tsutils": "^3.21.0"
+ "@babel/types": "^7.21.4"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "@typescript-eslint/parser": "^5.0.0",
- "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "node": ">=6.9.0"
}
},
- "node_modules/@typescript-eslint/parser": {
- "version": "5.56.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.56.0.tgz",
- "integrity": "sha512-sn1OZmBxUsgxMmR8a8U5QM/Wl+tyqlH//jTqCg8daTAmhAk26L2PFhcqPLlYBhYUJMZJK276qLXlHN3a83o2cg==",
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.22.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.1.tgz",
+ "integrity": "sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "5.56.0",
- "@typescript-eslint/types": "5.56.0",
- "@typescript-eslint/typescript-estree": "5.56.0",
- "debug": "^4.3.4"
+ "@babel/helper-environment-visitor": "^7.22.1",
+ "@babel/helper-module-imports": "^7.21.4",
+ "@babel/helper-simple-access": "^7.21.5",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "@babel/template": "^7.21.9",
+ "@babel/traverse": "^7.22.1",
+ "@babel/types": "^7.22.0"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "node": ">=6.9.0"
}
},
- "node_modules/@typescript-eslint/scope-manager": {
- "version": "5.56.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.56.0.tgz",
- "integrity": "sha512-jGYKyt+iBakD0SA5Ww8vFqGpoV2asSjwt60Gl6YcO8ksQ8s2HlUEyHBMSa38bdLopYqGf7EYQMUIGdT/Luw+sw==",
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz",
+ "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-simple-access": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz",
+ "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.56.0",
- "@typescript-eslint/visitor-keys": "5.56.0"
+ "@babel/types": "^7.21.5"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "node": ">=6.9.0"
}
},
- "node_modules/@typescript-eslint/type-utils": {
- "version": "5.56.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.56.0.tgz",
- "integrity": "sha512-8WxgOgJjWRy6m4xg9KoSHPzBNZeQbGlQOH7l2QEhQID/+YseaFxg5J/DLwWSsi9Axj4e/cCiKx7PVzOq38tY4A==",
+ "node_modules/@babel/helper-split-export-declaration": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
+ "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/typescript-estree": "5.56.0",
- "@typescript-eslint/utils": "5.56.0",
- "debug": "^4.3.4",
- "tsutils": "^3.21.0"
+ "@babel/types": "^7.18.6"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "*"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "node": ">=6.9.0"
}
},
- "node_modules/@typescript-eslint/types": {
- "version": "5.56.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.56.0.tgz",
- "integrity": "sha512-JyAzbTJcIyhuUhogmiu+t79AkdnqgPUEsxMTMc/dCZczGMJQh1MK2wgrju++yMN6AWroVAy2jxyPcPr3SWCq5w==",
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz",
+ "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==",
"dev": true,
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "node": ">=6.9.0"
}
},
- "node_modules/@typescript-eslint/typescript-estree": {
- "version": "5.56.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.56.0.tgz",
- "integrity": "sha512-41CH/GncsLXOJi0jb74SnC7jVPWeVJ0pxQj8bOjH1h2O26jXN3YHKDT1ejkVz5YeTEQPeLCCRY0U2r68tfNOcg==",
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.19.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
+ "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz",
+ "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.22.3",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.3.tgz",
+ "integrity": "sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.56.0",
- "@typescript-eslint/visitor-keys": "5.56.0",
- "debug": "^4.3.4",
- "globby": "^11.1.0",
- "is-glob": "^4.0.3",
- "semver": "^7.3.7",
- "tsutils": "^3.21.0"
+ "@babel/template": "^7.21.9",
+ "@babel/traverse": "^7.22.1",
+ "@babel/types": "^7.22.3"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "node": ">=6.9.0"
}
},
- "node_modules/@typescript-eslint/utils": {
- "version": "5.56.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.56.0.tgz",
- "integrity": "sha512-XhZDVdLnUJNtbzaJeDSCIYaM+Tgr59gZGbFuELgF7m0IY03PlciidS7UQNKLE0+WpUTn1GlycEr6Ivb/afjbhA==",
+ "node_modules/@babel/highlight": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
+ "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
"dev": true,
"dependencies": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@types/json-schema": "^7.0.9",
- "@types/semver": "^7.3.12",
- "@typescript-eslint/scope-manager": "5.56.0",
- "@typescript-eslint/types": "5.56.0",
- "@typescript-eslint/typescript-estree": "5.56.0",
- "eslint-scope": "^5.1.1",
- "semver": "^7.3.7"
+ "@babel/helper-validator-identifier": "^7.18.6",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ "node": ">=6.9.0"
}
},
- "node_modules/@typescript-eslint/visitor-keys": {
- "version": "5.56.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.56.0.tgz",
- "integrity": "sha512-1mFdED7u5bZpX6Xxf5N9U2c18sb+8EvU3tyOIj6LQZ5OOvnmj8BVeNNP603OFPm5KkS1a7IvCIcwrdHXaEMG/Q==",
+ "node_modules/@babel/highlight/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.56.0",
- "eslint-visitor-keys": "^3.3.0"
+ "color-convert": "^1.9.0"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "node": ">=4"
}
},
- "node_modules/acorn": {
- "version": "8.8.2",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
- "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
+ "node_modules/@babel/highlight/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
- "bin": {
- "acorn": "bin/acorn"
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
},
"engines": {
- "node": ">=0.4.0"
+ "node": ">=4"
}
},
- "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==",
+ "node_modules/@babel/highlight/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
- "peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ "dependencies": {
+ "color-name": "1.1.3"
}
},
- "node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "node_modules/@babel/highlight/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "node_modules/@babel/highlight/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,
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
+ "engines": {
+ "node": ">=0.8.0"
}
},
- "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==",
+ "node_modules/@babel/highlight/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=4"
}
},
- "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==",
+ "node_modules/@babel/highlight/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"dependencies": {
- "color-convert": "^2.0.1"
+ "has-flag": "^3.0.0"
},
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "node": ">=4"
}
},
- "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/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==",
+ "node_modules/@babel/parser": {
+ "version": "7.22.4",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.4.tgz",
+ "integrity": "sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA==",
"dev": true,
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
"engines": {
- "node": ">=8"
+ "node": ">=6.0.0"
}
},
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
- },
- "node_modules/axios": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.3.tgz",
- "integrity": "sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==",
+ "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,
"dependencies": {
- "follow-redirects": "^1.15.0",
- "form-data": "^4.0.0",
- "proxy-from-env": "^1.1.0"
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "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
+ "node_modules/@babel/plugin-syntax-bigint": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
+ "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
},
- "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/@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,
"dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "@babel/helper-plugin-utils": "^7.12.13"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "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,
"dependencies": {
- "fill-range": "^7.0.1"
+ "@babel/helper-plugin-utils": "^7.10.4"
},
- "engines": {
- "node": ">=8"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "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,
- "engines": {
- "node": ">=6"
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/@babel/plugin-syntax-jsx": {
+ "version": "7.21.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz",
+ "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==",
"dev": true,
"dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
+ "@babel/helper-plugin-utils": "^7.20.2"
},
"engines": {
- "node": ">=10"
+ "node": ">=6.9.0"
},
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/class-transformer": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz",
- "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw=="
+ "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,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
},
- "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==",
+ "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,
"dependencies": {
- "color-name": "~1.1.4"
+ "@babel/helper-plugin-utils": "^7.8.0"
},
- "engines": {
- "node": ">=7.0.0"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "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
+ "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,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
},
- "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==",
+ "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,
"dependencies": {
- "delayed-stream": "~1.0.0"
+ "@babel/helper-plugin-utils": "^7.8.0"
},
- "engines": {
- "node": ">= 0.8"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "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
+ "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,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
},
- "node_modules/cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "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,
"dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
+ "@babel/helper-plugin-utils": "^7.8.0"
},
- "engines": {
- "node": ">= 8"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "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,
"dependencies": {
- "ms": "2.1.2"
+ "@babel/helper-plugin-utils": "^7.14.5"
},
"engines": {
- "node": ">=6.0"
+ "node": ">=6.9.0"
},
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "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
- },
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "node_modules/@babel/plugin-syntax-typescript": {
+ "version": "7.21.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz",
+ "integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.20.2"
+ },
"engines": {
- "node": ">=0.4.0"
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "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==",
+ "node_modules/@babel/template": {
+ "version": "7.21.9",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.21.9.tgz",
+ "integrity": "sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==",
"dev": true,
"dependencies": {
- "path-type": "^4.0.0"
+ "@babel/code-frame": "^7.21.4",
+ "@babel/parser": "^7.21.9",
+ "@babel/types": "^7.21.5"
},
"engines": {
- "node": ">=8"
+ "node": ">=6.9.0"
}
},
- "node_modules/doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "node_modules/@babel/traverse": {
+ "version": "7.22.4",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.4.tgz",
+ "integrity": "sha512-Tn1pDsjIcI+JcLKq1AVlZEr4226gpuAQTsLMorsYg9tuS/kG7nuwwJ4AB8jfQuEgb/COBwR/DqJxmoiYFu5/rQ==",
"dev": true,
"dependencies": {
- "esutils": "^2.0.2"
+ "@babel/code-frame": "^7.21.4",
+ "@babel/generator": "^7.22.3",
+ "@babel/helper-environment-visitor": "^7.22.1",
+ "@babel/helper-function-name": "^7.21.0",
+ "@babel/helper-hoist-variables": "^7.18.6",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/parser": "^7.22.4",
+ "@babel/types": "^7.22.4",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
},
"engines": {
- "node": ">=6.0.0"
+ "node": ">=6.9.0"
}
},
- "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==",
+ "node_modules/@babel/traverse/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,
"engines": {
- "node": ">=10"
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.22.4",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.4.tgz",
+ "integrity": "sha512-Tx9x3UBHTTsMSW85WB2kphxYQVvrZ/t1FxD88IpSgIjiUJlCm9z+xWIDwyo1vffTwSqteqyznB8ZE9vYYk16zA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.21.5",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "to-fast-properties": "^2.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "engines": {
+ "node": ">=6.9.0"
}
},
- "node_modules/eslint": {
- "version": "8.36.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz",
- "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==",
+ "node_modules/@bcoe/v8-coverage": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
+ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
+ "dev": true
+ },
+ "node_modules/@cspotcode/source-map-support": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
+ "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
"dev": true,
"dependencies": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.4.0",
- "@eslint/eslintrc": "^2.0.1",
- "@eslint/js": "8.36.0",
- "@humanwhocodes/config-array": "^0.11.8",
- "@humanwhocodes/module-importer": "^1.0.1",
- "@nodelib/fs.walk": "^1.2.8",
- "ajv": "^6.10.0",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.3.2",
- "doctrine": "^3.0.0",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.1.1",
- "eslint-visitor-keys": "^3.3.0",
- "espree": "^9.5.0",
- "esquery": "^1.4.2",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^6.0.1",
- "find-up": "^5.0.0",
- "glob-parent": "^6.0.2",
- "globals": "^13.19.0",
- "grapheme-splitter": "^1.0.4",
- "ignore": "^5.2.0",
- "import-fresh": "^3.0.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "is-path-inside": "^3.0.3",
- "js-sdsl": "^4.1.4",
- "js-yaml": "^4.1.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.1",
- "strip-ansi": "^6.0.1",
- "strip-json-comments": "^3.1.0",
- "text-table": "^0.2.0"
- },
- "bin": {
- "eslint": "bin/eslint.js"
+ "@jridgewell/trace-mapping": "0.3.9"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
+ "node": ">=12"
}
},
- "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==",
+ "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
+ "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
"dev": true,
"dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^4.1.1"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/eslint-visitor-keys": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
- "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
- "dev": true,
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "@jridgewell/resolve-uri": "^3.0.3",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
}
},
- "node_modules/eslint/node_modules/eslint-scope": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
- "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
+ "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": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
+ "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/node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.1.tgz",
+ "integrity": "sha512-BISJ6ZE4xQsuL/FmsyRaiffpq977bMlsKfGHTQrOGFErfByxIe6iZTxPf/00Zon9b9a7iUykfQwejN3s2ZW/Bw==",
"dev": true,
"engines": {
- "node": ">=4.0"
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
}
},
- "node_modules/espree": {
- "version": "9.5.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz",
- "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==",
+ "node_modules/@eslint/eslintrc": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz",
+ "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==",
"dev": true,
"dependencies": {
- "acorn": "^8.8.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.3.0"
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.5.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": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -734,983 +705,4871 @@
"url": "https://opencollective.com/eslint"
}
},
- "node_modules/esquery": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
- "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+ "node_modules/@eslint/js": {
+ "version": "8.36.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz",
+ "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==",
"dev": true,
- "dependencies": {
- "estraverse": "^5.1.0"
- },
"engines": {
- "node": ">=0.10"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
- "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==",
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.11.8",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
+ "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
"dev": true,
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^1.2.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.5"
+ },
"engines": {
- "node": ">=4.0"
+ "node": ">=10.10.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==",
+ "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==",
"dev": true,
- "dependencies": {
- "estraverse": "^5.2.0"
- },
"engines": {
- "node": ">=4.0"
+ "node": ">=12.22"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
}
},
- "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==",
+ "node_modules/@humanwhocodes/object-schema": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
+ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "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,
+ "dependencies": {
+ "camelcase": "^5.3.1",
+ "find-up": "^4.1.0",
+ "get-package-type": "^0.1.0",
+ "js-yaml": "^3.13.1",
+ "resolve-from": "^5.0.0"
+ },
"engines": {
- "node": ">=4.0"
+ "node": ">=8"
}
},
- "node_modules/estraverse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "node_modules/@istanbuljs/load-nyc-config/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,
- "engines": {
- "node": ">=4.0"
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
}
},
- "node_modules/esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "node_modules/@istanbuljs/load-nyc-config/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,
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
}
},
- "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
- },
- "node_modules/fast-glob": {
- "version": "3.2.12",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
- "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+ "node_modules/@istanbuljs/load-nyc-config/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,
"dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.4"
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
},
"engines": {
- "node": ">=8.6.0"
+ "node": ">=8"
}
},
- "node_modules/fast-glob/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==",
+ "node_modules/@istanbuljs/load-nyc-config/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,
"dependencies": {
- "is-glob": "^4.0.1"
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
},
- "engines": {
- "node": ">= 6"
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
}
},
- "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
- },
- "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
- },
- "node_modules/fastq": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
- "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
+ "node_modules/@istanbuljs/load-nyc-config/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,
"dependencies": {
- "reusify": "^1.0.4"
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "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==",
+ "node_modules/@istanbuljs/load-nyc-config/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,
"dependencies": {
- "flat-cache": "^3.0.4"
+ "p-try": "^2.0.0"
},
"engines": {
- "node": "^10.12.0 || >=12.0.0"
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "node_modules/@istanbuljs/load-nyc-config/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,
"dependencies": {
- "to-regex-range": "^5.0.1"
+ "p-limit": "^2.2.0"
},
"engines": {
"node": ">=8"
}
},
- "node_modules/find-up": {
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true,
- "dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- },
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=8"
}
},
- "node_modules/flat-cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "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,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@jest/console": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz",
+ "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==",
"dev": true,
"dependencies": {
- "flatted": "^3.1.0",
- "rimraf": "^3.0.2"
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "slash": "^3.0.0"
},
"engines": {
- "node": "^10.12.0 || >=12.0.0"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/flatted": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
- "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
- "dev": true
- },
- "node_modules/follow-redirects": {
- "version": "1.15.2",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
- "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/RubenVerborgh"
- }
- ],
+ "node_modules/@jest/core": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz",
+ "integrity": "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/console": "^29.5.0",
+ "@jest/reporters": "^29.5.0",
+ "@jest/test-result": "^29.5.0",
+ "@jest/transform": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "jest-changed-files": "^29.5.0",
+ "jest-config": "^29.5.0",
+ "jest-haste-map": "^29.5.0",
+ "jest-message-util": "^29.5.0",
+ "jest-regex-util": "^29.4.3",
+ "jest-resolve": "^29.5.0",
+ "jest-resolve-dependencies": "^29.5.0",
+ "jest-runner": "^29.5.0",
+ "jest-runtime": "^29.5.0",
+ "jest-snapshot": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "jest-validate": "^29.5.0",
+ "jest-watcher": "^29.5.0",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.5.0",
+ "slash": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ },
"engines": {
- "node": ">=4.0"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
},
"peerDependenciesMeta": {
- "debug": {
+ "node-notifier": {
"optional": true
}
}
},
- "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==",
+ "node_modules/@jest/environment": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz",
+ "integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==",
+ "dev": true,
"dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
+ "@jest/fake-timers": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "jest-mock": "^29.5.0"
},
"engines": {
- "node": ">= 6"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "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/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "node_modules/@jest/expect": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz",
+ "integrity": "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==",
"dev": true,
"dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "expect": "^29.5.0",
+ "jest-snapshot": "^29.5.0"
},
"engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "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==",
+ "node_modules/@jest/expect-utils": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz",
+ "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==",
"dev": true,
"dependencies": {
- "is-glob": "^4.0.3"
+ "jest-get-type": "^29.4.3"
},
"engines": {
- "node": ">=10.13.0"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/globals": {
- "version": "13.20.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
- "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+ "node_modules/@jest/fake-timers": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz",
+ "integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==",
"dev": true,
"dependencies": {
- "type-fest": "^0.20.2"
+ "@jest/types": "^29.5.0",
+ "@sinonjs/fake-timers": "^10.0.2",
+ "@types/node": "*",
+ "jest-message-util": "^29.5.0",
+ "jest-mock": "^29.5.0",
+ "jest-util": "^29.5.0"
},
"engines": {
- "node": ">=8"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/globals": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz",
+ "integrity": "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/environment": "^29.5.0",
+ "@jest/expect": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "jest-mock": "^29.5.0"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/globby": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "node_modules/@jest/reporters": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz",
+ "integrity": "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==",
"dev": true,
"dependencies": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.9",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^3.0.0"
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@jest/console": "^29.5.0",
+ "@jest/test-result": "^29.5.0",
+ "@jest/transform": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@jridgewell/trace-mapping": "^0.3.15",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "exit": "^0.1.2",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "istanbul-lib-coverage": "^3.0.0",
+ "istanbul-lib-instrument": "^5.1.0",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^4.0.0",
+ "istanbul-reports": "^3.1.3",
+ "jest-message-util": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "jest-worker": "^29.5.0",
+ "slash": "^3.0.0",
+ "string-length": "^4.0.1",
+ "strip-ansi": "^6.0.0",
+ "v8-to-istanbul": "^9.0.1"
},
"engines": {
- "node": ">=10"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
}
},
- "node_modules/grapheme-splitter": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
- "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
- "dev": true
- },
- "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==",
+ "node_modules/@jest/schemas": {
+ "version": "29.4.3",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz",
+ "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==",
"dev": true,
+ "dependencies": {
+ "@sinclair/typebox": "^0.25.16"
+ },
"engines": {
- "node": ">=8"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/ignore": {
- "version": "5.2.4",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
- "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
+ "node_modules/@jest/source-map": {
+ "version": "29.4.3",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz",
+ "integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==",
"dev": true,
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.15",
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.2.9"
+ },
"engines": {
- "node": ">= 4"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "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==",
+ "node_modules/@jest/test-result": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz",
+ "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==",
"dev": true,
"dependencies": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
+ "@jest/console": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
},
"engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "node_modules/@jest/test-sequencer": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz",
+ "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==",
"dev": true,
+ "dependencies": {
+ "@jest/test-result": "^29.5.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.5.0",
+ "slash": "^3.0.0"
+ },
"engines": {
- "node": ">=0.8.19"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "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==",
+ "node_modules/@jest/transform": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz",
+ "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==",
"dev": true,
"dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
+ "@babel/core": "^7.11.6",
+ "@jest/types": "^29.5.0",
+ "@jridgewell/trace-mapping": "^0.3.15",
+ "babel-plugin-istanbul": "^6.1.1",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^2.0.0",
+ "fast-json-stable-stringify": "^2.1.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.5.0",
+ "jest-regex-util": "^29.4.3",
+ "jest-util": "^29.5.0",
+ "micromatch": "^4.0.4",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
+ "write-file-atomic": "^4.0.2"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "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
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "node_modules/@jest/types": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz",
+ "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==",
"dev": true,
+ "dependencies": {
+ "@jest/schemas": "^29.4.3",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.8",
+ "chalk": "^4.0.0"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "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==",
+ "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,
"dependencies": {
- "is-extglob": "^2.1.1"
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=6.0.0"
}
},
- "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==",
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
"dev": true,
"engines": {
- "node": ">=0.12.0"
+ "node": ">=6.0.0"
}
},
- "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==",
+ "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,
"engines": {
- "node": ">=8"
+ "node": ">=6.0.0"
}
},
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.4.15",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
"dev": true
},
- "node_modules/js-sdsl": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz",
- "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==",
- "dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/js-sdsl"
- }
- },
- "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==",
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.18",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz",
+ "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==",
"dev": true,
"dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
+ "@jridgewell/resolve-uri": "3.1.0",
+ "@jridgewell/sourcemap-codec": "1.4.14"
}
},
- "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
- },
- "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==",
+ "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.4.14",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
"dev": true
},
- "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==",
+ "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,
"dependencies": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
},
"engines": {
- "node": ">= 0.8.0"
+ "node": ">= 8"
}
},
- "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==",
+ "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,
- "dependencies": {
- "p-locate": "^5.0.0"
- },
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">= 8"
}
},
- "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==",
+ "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,
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@sinclair/typebox": {
+ "version": "0.25.24",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz",
+ "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==",
+ "dev": true
+ },
+ "node_modules/@sinonjs/commons": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz",
+ "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==",
+ "dev": true,
+ "dependencies": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "node_modules/@sinonjs/fake-timers": {
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.2.0.tgz",
+ "integrity": "sha512-OPwQlEdg40HAj5KNF8WW6q2KG4Z+cBCZb3m4ninfTZKaBmbIJodviQsDBoYMPHkOyJJMHnOJo5j2+LKDOhOACg==",
+ "dev": true,
+ "dependencies": {
+ "@sinonjs/commons": "^3.0.0"
+ }
+ },
+ "node_modules/@tsconfig/node10": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
+ "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
+ "dev": true
+ },
+ "node_modules/@tsconfig/node12": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
+ "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
+ "dev": true
+ },
+ "node_modules/@tsconfig/node14": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
+ "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
+ "dev": true
+ },
+ "node_modules/@tsconfig/node16": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
+ "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
+ "dev": true
+ },
+ "node_modules/@types/babel__core": {
+ "version": "7.20.1",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz",
+ "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "node_modules/@types/babel__generator": {
+ "version": "7.6.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz",
+ "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__template": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz",
+ "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==",
+ "dev": true,
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__traverse": {
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.0.tgz",
+ "integrity": "sha512-TBOjqAGf0hmaqRwpii5LLkJLg7c6OMm4nHLmpsUxwk9bBHtoTC6dAHdVWdGv4TBxj2CZOZY8Xfq8WmfoVi7n4Q==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.20.7"
+ }
+ },
+ "node_modules/@types/graceful-fs": {
+ "version": "4.1.6",
+ "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz",
+ "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/istanbul-lib-coverage": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
+ "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==",
+ "dev": true
+ },
+ "node_modules/@types/istanbul-lib-report": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
+ "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
+ "dev": true,
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "*"
+ }
+ },
+ "node_modules/@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "dev": true,
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/@types/json-schema": {
+ "version": "7.0.11",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
+ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
+ "dev": true
+ },
+ "node_modules/@types/jsonpath": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@types/jsonpath/-/jsonpath-0.2.0.tgz",
+ "integrity": "sha512-v7qlPA0VpKUlEdhghbDqRoKMxFB3h3Ch688TApBJ6v+XLDdvWCGLJIYiPKGZnS6MAOie+IorCfNYVHOPIHSWwQ==",
+ "dev": true
+ },
+ "node_modules/@types/node": {
+ "version": "18.11.9",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz",
+ "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==",
+ "dev": true
+ },
+ "node_modules/@types/prettier": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz",
+ "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==",
+ "dev": true
+ },
+ "node_modules/@types/semver": {
+ "version": "7.3.13",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz",
+ "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==",
+ "dev": true
+ },
+ "node_modules/@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==",
+ "dev": true
+ },
+ "node_modules/@types/yargs": {
+ "version": "17.0.24",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz",
+ "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==",
+ "dev": true,
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/@types/yargs-parser": {
+ "version": "21.0.0",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz",
+ "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==",
+ "dev": true
+ },
+ "node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "5.56.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.56.0.tgz",
+ "integrity": "sha512-ZNW37Ccl3oMZkzxrYDUX4o7cnuPgU+YrcaYXzsRtLB16I1FR5SHMqga3zGsaSliZADCWo2v8qHWqAYIj8nWCCg==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/regexpp": "^4.4.0",
+ "@typescript-eslint/scope-manager": "5.56.0",
+ "@typescript-eslint/type-utils": "5.56.0",
+ "@typescript-eslint/utils": "5.56.0",
+ "debug": "^4.3.4",
+ "grapheme-splitter": "^1.0.4",
+ "ignore": "^5.2.0",
+ "natural-compare-lite": "^1.4.0",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^5.0.0",
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/parser": {
+ "version": "5.56.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.56.0.tgz",
+ "integrity": "sha512-sn1OZmBxUsgxMmR8a8U5QM/Wl+tyqlH//jTqCg8daTAmhAk26L2PFhcqPLlYBhYUJMZJK276qLXlHN3a83o2cg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "5.56.0",
+ "@typescript-eslint/types": "5.56.0",
+ "@typescript-eslint/typescript-estree": "5.56.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "5.56.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.56.0.tgz",
+ "integrity": "sha512-jGYKyt+iBakD0SA5Ww8vFqGpoV2asSjwt60Gl6YcO8ksQ8s2HlUEyHBMSa38bdLopYqGf7EYQMUIGdT/Luw+sw==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.56.0",
+ "@typescript-eslint/visitor-keys": "5.56.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils": {
+ "version": "5.56.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.56.0.tgz",
+ "integrity": "sha512-8WxgOgJjWRy6m4xg9KoSHPzBNZeQbGlQOH7l2QEhQID/+YseaFxg5J/DLwWSsi9Axj4e/cCiKx7PVzOq38tY4A==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/typescript-estree": "5.56.0",
+ "@typescript-eslint/utils": "5.56.0",
+ "debug": "^4.3.4",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "*"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/types": {
+ "version": "5.56.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.56.0.tgz",
+ "integrity": "sha512-JyAzbTJcIyhuUhogmiu+t79AkdnqgPUEsxMTMc/dCZczGMJQh1MK2wgrju++yMN6AWroVAy2jxyPcPr3SWCq5w==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "5.56.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.56.0.tgz",
+ "integrity": "sha512-41CH/GncsLXOJi0jb74SnC7jVPWeVJ0pxQj8bOjH1h2O26jXN3YHKDT1ejkVz5YeTEQPeLCCRY0U2r68tfNOcg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.56.0",
+ "@typescript-eslint/visitor-keys": "5.56.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/utils": {
+ "version": "5.56.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.56.0.tgz",
+ "integrity": "sha512-XhZDVdLnUJNtbzaJeDSCIYaM+Tgr59gZGbFuELgF7m0IY03PlciidS7UQNKLE0+WpUTn1GlycEr6Ivb/afjbhA==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@types/json-schema": "^7.0.9",
+ "@types/semver": "^7.3.12",
+ "@typescript-eslint/scope-manager": "5.56.0",
+ "@typescript-eslint/types": "5.56.0",
+ "@typescript-eslint/typescript-estree": "5.56.0",
+ "eslint-scope": "^5.1.1",
+ "semver": "^7.3.7"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "5.56.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.56.0.tgz",
+ "integrity": "sha512-1mFdED7u5bZpX6Xxf5N9U2c18sb+8EvU3tyOIj6LQZ5OOvnmj8BVeNNP603OFPm5KkS1a7IvCIcwrdHXaEMG/Q==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.56.0",
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "8.8.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+ "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
+ "dev": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "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,
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/acorn-walk": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
+ "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "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,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.21.3"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ansi-escapes/node_modules/type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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,
+ "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,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "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,
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/arg": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
+ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
+ "dev": true
+ },
+ "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/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,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+ },
+ "node_modules/axios": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.3.tgz",
+ "integrity": "sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==",
+ "dependencies": {
+ "follow-redirects": "^1.15.0",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
+ "node_modules/babel-jest": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz",
+ "integrity": "sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==",
+ "dev": true,
+ "dependencies": {
+ "@jest/transform": "^29.5.0",
+ "@types/babel__core": "^7.1.14",
+ "babel-plugin-istanbul": "^6.1.1",
+ "babel-preset-jest": "^29.5.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.8.0"
+ }
+ },
+ "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,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^5.0.4",
+ "test-exclude": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/babel-plugin-jest-hoist": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz",
+ "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/template": "^7.3.3",
+ "@babel/types": "^7.3.3",
+ "@types/babel__core": "^7.1.14",
+ "@types/babel__traverse": "^7.0.6"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/babel-preset-current-node-syntax": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz",
+ "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/plugin-syntax-bigint": "^7.8.3",
+ "@babel/plugin-syntax-class-properties": "^7.8.3",
+ "@babel/plugin-syntax-import-meta": "^7.8.3",
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.8.3",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3",
+ "@babel/plugin-syntax-top-level-await": "^7.8.3"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/babel-preset-jest": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz",
+ "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==",
+ "dev": true,
+ "dependencies": {
+ "babel-plugin-jest-hoist": "^29.5.0",
+ "babel-preset-current-node-syntax": "^1.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "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
+ },
+ "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,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.21.7",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.7.tgz",
+ "integrity": "sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001489",
+ "electron-to-chromium": "^1.4.411",
+ "node-releases": "^2.0.12",
+ "update-browserslist-db": "^1.0.11"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/bs-logger": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz",
+ "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==",
+ "dev": true,
+ "dependencies": {
+ "fast-json-stable-stringify": "2.x"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/bser": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
+ "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
+ "dev": true,
+ "dependencies": {
+ "node-int64": "^0.4.0"
+ }
+ },
+ "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
+ },
+ "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,
+ "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,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001492",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001492.tgz",
+ "integrity": "sha512-2efF8SAZwgAX1FJr87KWhvuJxnGJKOnctQa8xLOskAXNXq8oiuqgl6u1kk3fFpsp3GgvzlRjiK1sl63hNtFADw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ]
+ },
+ "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,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/char-regex": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
+ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/ci-info": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz",
+ "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cjs-module-lexer": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz",
+ "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==",
+ "dev": true
+ },
+ "node_modules/class-transformer": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz",
+ "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw=="
+ },
+ "node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
+ "dev": true,
+ "engines": {
+ "iojs": ">= 1.0.0",
+ "node": ">= 0.12.0"
+ }
+ },
+ "node_modules/collect-v8-coverage": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz",
+ "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==",
+ "dev": true
+ },
+ "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,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "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
+ },
+ "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==",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "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
+ },
+ "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
+ },
+ "node_modules/create-require": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
+ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
+ "dev": true
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/dedent": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
+ "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==",
+ "dev": true
+ },
+ "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=="
+ },
+ "node_modules/deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/detect-newline": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
+ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/diff": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "node_modules/diff-sequences": {
+ "version": "29.4.3",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz",
+ "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==",
+ "dev": true,
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "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,
+ "dependencies": {
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=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,
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.4.414",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.414.tgz",
+ "integrity": "sha512-RRuCvP6ekngVh2SAJaOKT/hxqc9JAsK+Pe0hP5tGQIfonU2Zy9gMGdJ+mBdyl/vNucMG6gkXYtuM4H/1giws5w==",
+ "dev": true
+ },
+ "node_modules/emittery": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
+ "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/emittery?sponsor=1"
+ }
+ },
+ "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
+ },
+ "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,
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/escodegen": {
+ "version": "1.14.3",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
+ "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
+ "dependencies": {
+ "esprima": "^4.0.1",
+ "estraverse": "^4.2.0",
+ "esutils": "^2.0.2",
+ "optionator": "^0.8.1"
+ },
+ "bin": {
+ "escodegen": "bin/escodegen.js",
+ "esgenerate": "bin/esgenerate.js"
+ },
+ "engines": {
+ "node": ">=4.0"
+ },
+ "optionalDependencies": {
+ "source-map": "~0.6.1"
+ }
+ },
+ "node_modules/escodegen/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==",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/escodegen/node_modules/levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
+ "dependencies": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/escodegen/node_modules/optionator": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "dependencies": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.6",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "word-wrap": "~1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/escodegen/node_modules/prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/escodegen/node_modules/type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
+ "dependencies": {
+ "prelude-ls": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "8.36.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz",
+ "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.4.0",
+ "@eslint/eslintrc": "^2.0.1",
+ "@eslint/js": "8.36.0",
+ "@humanwhocodes/config-array": "^0.11.8",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "ajv": "^6.10.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.1.1",
+ "eslint-visitor-keys": "^3.3.0",
+ "espree": "^9.5.0",
+ "esquery": "^1.4.2",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "grapheme-splitter": "^1.0.4",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-sdsl": "^4.1.4",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "strip-ansi": "^6.0.1",
+ "strip-json-comments": "^3.1.0",
+ "text-table": "^0.2.0"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "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,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
+ "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/eslint/node_modules/eslint-scope": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
+ "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "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,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/espree": {
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz",
+ "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^8.8.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/esprima": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz",
+ "integrity": "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "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,
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "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,
+ "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,
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "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,
+ "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==",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/expect": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz",
+ "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==",
+ "dev": true,
+ "dependencies": {
+ "@jest/expect-utils": "^29.5.0",
+ "jest-get-type": "^29.4.3",
+ "jest-matcher-utils": "^29.5.0",
+ "jest-message-util": "^29.5.0",
+ "jest-util": "^29.5.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "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
+ },
+ "node_modules/fast-glob": {
+ "version": "3.2.12",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
+ "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-glob/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,
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "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
+ },
+ "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=="
+ },
+ "node_modules/fastq": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
+ "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
+ "dev": true,
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fb-watchman": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
+ "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
+ "dev": true,
+ "dependencies": {
+ "bser": "2.1.1"
+ }
+ },
+ "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,
+ "dependencies": {
+ "flat-cache": "^3.0.4"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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,
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "dev": true,
+ "dependencies": {
+ "flatted": "^3.1.0",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
+ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
+ "dev": true
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.15.2",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
+ "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "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==",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "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.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "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,
+ "engines": {
+ "node": ">=6.9.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,
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "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,
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "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,
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/globals": {
+ "version": "13.20.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
+ "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "dev": true,
+ "dependencies": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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
+ },
+ "node_modules/grapheme-splitter": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
+ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
+ "dev": true
+ },
+ "node_modules/has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "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,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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
+ },
+ "node_modules/human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10.17.0"
+ }
+ },
+ "node_modules/ignore": {
+ "version": "5.2.4",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
+ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
+ "dev": true,
+ "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,
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "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,
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "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
+ },
+ "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
+ },
+ "node_modules/is-core-module": {
+ "version": "2.12.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz",
+ "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==",
+ "dev": true,
+ "dependencies": {
+ "has": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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,
+ "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,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-generator-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
+ "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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,
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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,
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "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,
+ "engines": {
+ "node": ">=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,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true
+ },
+ "node_modules/istanbul-lib-coverage": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
+ "dev": true,
+ "engines": {
+ "node": ">=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,
+ "dependencies": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-instrument/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/istanbul-lib-report": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
+ "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
+ "dev": true,
+ "dependencies": {
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^3.0.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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,
+ "dependencies": {
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^3.0.0",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-reports": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz",
+ "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==",
+ "dev": true,
+ "dependencies": {
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz",
+ "integrity": "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/core": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "import-local": "^3.0.2",
+ "jest-cli": "^29.5.0"
+ },
+ "bin": {
+ "jest": "bin/jest.js"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-changed-files": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz",
+ "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==",
+ "dev": true,
+ "dependencies": {
+ "execa": "^5.0.0",
+ "p-limit": "^3.1.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-circus": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz",
+ "integrity": "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==",
+ "dev": true,
+ "dependencies": {
+ "@jest/environment": "^29.5.0",
+ "@jest/expect": "^29.5.0",
+ "@jest/test-result": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "co": "^4.6.0",
+ "dedent": "^0.7.0",
+ "is-generator-fn": "^2.0.0",
+ "jest-each": "^29.5.0",
+ "jest-matcher-utils": "^29.5.0",
+ "jest-message-util": "^29.5.0",
+ "jest-runtime": "^29.5.0",
+ "jest-snapshot": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "p-limit": "^3.1.0",
+ "pretty-format": "^29.5.0",
+ "pure-rand": "^6.0.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-cli": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz",
+ "integrity": "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/core": "^29.5.0",
+ "@jest/test-result": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "chalk": "^4.0.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "import-local": "^3.0.2",
+ "jest-config": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "jest-validate": "^29.5.0",
+ "prompts": "^2.0.1",
+ "yargs": "^17.3.1"
+ },
+ "bin": {
+ "jest": "bin/jest.js"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-config": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz",
+ "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.11.6",
+ "@jest/test-sequencer": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "babel-jest": "^29.5.0",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "deepmerge": "^4.2.2",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "jest-circus": "^29.5.0",
+ "jest-environment-node": "^29.5.0",
+ "jest-get-type": "^29.4.3",
+ "jest-regex-util": "^29.4.3",
+ "jest-resolve": "^29.5.0",
+ "jest-runner": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "jest-validate": "^29.5.0",
+ "micromatch": "^4.0.4",
+ "parse-json": "^5.2.0",
+ "pretty-format": "^29.5.0",
+ "slash": "^3.0.0",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "@types/node": "*",
+ "ts-node": ">=9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "ts-node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-diff": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz",
+ "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "diff-sequences": "^29.4.3",
+ "jest-get-type": "^29.4.3",
+ "pretty-format": "^29.5.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-docblock": {
+ "version": "29.4.3",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz",
+ "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==",
+ "dev": true,
+ "dependencies": {
+ "detect-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-each": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz",
+ "integrity": "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.5.0",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^29.4.3",
+ "jest-util": "^29.5.0",
+ "pretty-format": "^29.5.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-environment-node": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz",
+ "integrity": "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/environment": "^29.5.0",
+ "@jest/fake-timers": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "jest-mock": "^29.5.0",
+ "jest-util": "^29.5.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-get-type": {
+ "version": "29.4.3",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz",
+ "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==",
+ "dev": true,
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-haste-map": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz",
+ "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.5.0",
+ "@types/graceful-fs": "^4.1.3",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^29.4.3",
+ "jest-util": "^29.5.0",
+ "jest-worker": "^29.5.0",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.8"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.3.2"
+ }
+ },
+ "node_modules/jest-leak-detector": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz",
+ "integrity": "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==",
+ "dev": true,
+ "dependencies": {
+ "jest-get-type": "^29.4.3",
+ "pretty-format": "^29.5.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-matcher-utils": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz",
+ "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "jest-diff": "^29.5.0",
+ "jest-get-type": "^29.4.3",
+ "pretty-format": "^29.5.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-message-util": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz",
+ "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^29.5.0",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.5.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-mock": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz",
+ "integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "jest-util": "^29.5.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-pnp-resolver": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
+ "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependencies": {
+ "jest-resolve": "*"
+ },
+ "peerDependenciesMeta": {
+ "jest-resolve": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-regex-util": {
+ "version": "29.4.3",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz",
+ "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==",
+ "dev": true,
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-resolve": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz",
+ "integrity": "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.5.0",
+ "jest-pnp-resolver": "^1.2.2",
+ "jest-util": "^29.5.0",
+ "jest-validate": "^29.5.0",
+ "resolve": "^1.20.0",
+ "resolve.exports": "^2.0.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-resolve-dependencies": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz",
+ "integrity": "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==",
+ "dev": true,
+ "dependencies": {
+ "jest-regex-util": "^29.4.3",
+ "jest-snapshot": "^29.5.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-runner": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz",
+ "integrity": "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/console": "^29.5.0",
+ "@jest/environment": "^29.5.0",
+ "@jest/test-result": "^29.5.0",
+ "@jest/transform": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "emittery": "^0.13.1",
+ "graceful-fs": "^4.2.9",
+ "jest-docblock": "^29.4.3",
+ "jest-environment-node": "^29.5.0",
+ "jest-haste-map": "^29.5.0",
+ "jest-leak-detector": "^29.5.0",
+ "jest-message-util": "^29.5.0",
+ "jest-resolve": "^29.5.0",
+ "jest-runtime": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "jest-watcher": "^29.5.0",
+ "jest-worker": "^29.5.0",
+ "p-limit": "^3.1.0",
+ "source-map-support": "0.5.13"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-runtime": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz",
+ "integrity": "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/environment": "^29.5.0",
+ "@jest/fake-timers": "^29.5.0",
+ "@jest/globals": "^29.5.0",
+ "@jest/source-map": "^29.4.3",
+ "@jest/test-result": "^29.5.0",
+ "@jest/transform": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "cjs-module-lexer": "^1.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.5.0",
+ "jest-message-util": "^29.5.0",
+ "jest-mock": "^29.5.0",
+ "jest-regex-util": "^29.4.3",
+ "jest-resolve": "^29.5.0",
+ "jest-snapshot": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "slash": "^3.0.0",
+ "strip-bom": "^4.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-snapshot": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz",
+ "integrity": "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.11.6",
+ "@babel/generator": "^7.7.2",
+ "@babel/plugin-syntax-jsx": "^7.7.2",
+ "@babel/plugin-syntax-typescript": "^7.7.2",
+ "@babel/traverse": "^7.7.2",
+ "@babel/types": "^7.3.3",
+ "@jest/expect-utils": "^29.5.0",
+ "@jest/transform": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/babel__traverse": "^7.0.6",
+ "@types/prettier": "^2.1.5",
+ "babel-preset-current-node-syntax": "^1.0.0",
+ "chalk": "^4.0.0",
+ "expect": "^29.5.0",
+ "graceful-fs": "^4.2.9",
+ "jest-diff": "^29.5.0",
+ "jest-get-type": "^29.4.3",
+ "jest-matcher-utils": "^29.5.0",
+ "jest-message-util": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "natural-compare": "^1.4.0",
+ "pretty-format": "^29.5.0",
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-util": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz",
+ "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-validate": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz",
+ "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.5.0",
+ "camelcase": "^6.2.0",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^29.4.3",
+ "leven": "^3.1.0",
+ "pretty-format": "^29.5.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-validate/node_modules/camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/jest-watcher": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz",
+ "integrity": "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==",
+ "dev": true,
+ "dependencies": {
+ "@jest/test-result": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "emittery": "^0.13.1",
+ "jest-util": "^29.5.0",
+ "string-length": "^4.0.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-worker": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz",
+ "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*",
+ "jest-util": "^29.5.0",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "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,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/js-sdsl": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz",
+ "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==",
+ "dev": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/js-sdsl"
+ }
+ },
+ "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
+ },
+ "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/jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "dev": true,
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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
+ },
+ "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
+ },
+ "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
+ },
+ "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,
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/jsonpath": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz",
+ "integrity": "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==",
+ "dependencies": {
+ "esprima": "1.2.2",
+ "static-eval": "2.0.2",
+ "underscore": "1.12.1"
+ }
+ },
+ "node_modules/kleur": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
+ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/leven": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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,
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "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
+ },
+ "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,
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
+ "dev": true
+ },
+ "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
+ },
+ "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,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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,
+ "dependencies": {
+ "semver": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/make-dir/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "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
+ },
+ "node_modules/makeerror": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
+ "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
+ "dev": true,
+ "dependencies": {
+ "tmpl": "1.0.5"
+ }
+ },
+ "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
+ },
+ "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,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dev": true,
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "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==",
+ "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==",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "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
+ },
+ "node_modules/natural-compare-lite": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
+ "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
+ "dev": true
+ },
+ "node_modules/node-int64": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
+ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
+ "dev": true
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz",
+ "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==",
+ "dev": true
+ },
+ "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,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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,
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "dependencies": {
+ "mimic-fn": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/optionator": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "dev": true,
+ "dependencies": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "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,
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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,
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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,
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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,
+ "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,
+ "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,
+ "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
+ },
+ "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,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "dev": true
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pirates": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz",
+ "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "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/pkg-dir/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,
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pkg-dir/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,
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pkg-dir/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,
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/pkg-dir/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,
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/pretty-format": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz",
+ "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/schemas": "^29.4.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "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,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/prompts": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
+ "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
+ "dev": true,
+ "dependencies": {
+ "kleur": "^3.0.3",
+ "sisteransi": "^1.0.5"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "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=="
+ },
+ "node_modules/punycode": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
+ "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pure-rand": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz",
+ "integrity": "sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/dubzzz"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fast-check"
+ }
+ ]
+ },
+ "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": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/react-is": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
+ "dev": true
+ },
+ "node_modules/reflect-metadata": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz",
+ "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg=="
+ },
+ "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,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.2",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz",
+ "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==",
+ "dev": true,
+ "dependencies": {
+ "is-core-module": "^2.11.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "resolve-from": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/resolve-cwd/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/resolve.exports": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz",
+ "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==",
+ "dev": true,
+ "engines": {
+ "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,
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "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,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "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": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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,
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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
},
- "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==",
+ "node_modules/sisteransi": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
+ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
+ "dev": true
+ },
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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==",
+ "devOptional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-support": {
+ "version": "0.5.13",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
+ "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
"dev": true,
"dependencies": {
- "yallist": "^4.0.0"
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "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
+ },
+ "node_modules/stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "dev": true,
+ "dependencies": {
+ "escape-string-regexp": "^2.0.0"
},
"engines": {
"node": ">=10"
}
},
- "node_modules/merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "node_modules/stack-utils/node_modules/escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
"dev": true,
"engines": {
- "node": ">= 8"
+ "node": ">=8"
}
},
- "node_modules/micromatch": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
- "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "node_modules/static-eval": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz",
+ "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==",
+ "dependencies": {
+ "escodegen": "^1.8.1"
+ }
+ },
+ "node_modules/string-length": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
+ "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
+ "dev": true,
+ "dependencies": {
+ "char-regex": "^1.0.2",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/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,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/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,
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=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,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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,
+ "dependencies": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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
+ },
+ "node_modules/tmpl": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
+ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
+ "dev": true
+ },
+ "node_modules/to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/ts-jest": {
+ "version": "29.1.0",
+ "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.0.tgz",
+ "integrity": "sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA==",
+ "dev": true,
+ "dependencies": {
+ "bs-logger": "0.x",
+ "fast-json-stable-stringify": "2.x",
+ "jest-util": "^29.0.0",
+ "json5": "^2.2.3",
+ "lodash.memoize": "4.x",
+ "make-error": "1.x",
+ "semver": "7.x",
+ "yargs-parser": "^21.0.1"
+ },
+ "bin": {
+ "ts-jest": "cli.js"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": ">=7.0.0-beta.0 <8",
+ "@jest/types": "^29.0.0",
+ "babel-jest": "^29.0.0",
+ "jest": "^29.0.0",
+ "typescript": ">=4.3 <6"
+ },
+ "peerDependenciesMeta": {
+ "@babel/core": {
+ "optional": true
+ },
+ "@jest/types": {
+ "optional": true
+ },
+ "babel-jest": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/ts-node": {
+ "version": "10.9.1",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
+ "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
+ "dev": true,
+ "dependencies": {
+ "@cspotcode/source-map-support": "^0.8.0",
+ "@tsconfig/node10": "^1.0.7",
+ "@tsconfig/node12": "^1.0.7",
+ "@tsconfig/node14": "^1.0.0",
+ "@tsconfig/node16": "^1.0.2",
+ "acorn": "^8.4.1",
+ "acorn-walk": "^8.1.1",
+ "arg": "^4.1.0",
+ "create-require": "^1.1.0",
+ "diff": "^4.0.1",
+ "make-error": "^1.1.1",
+ "v8-compile-cache-lib": "^3.0.1",
+ "yn": "3.1.1"
+ },
+ "bin": {
+ "ts-node": "dist/bin.js",
+ "ts-node-cwd": "dist/bin-cwd.js",
+ "ts-node-esm": "dist/bin-esm.js",
+ "ts-node-script": "dist/bin-script.js",
+ "ts-node-transpile-only": "dist/bin-transpile.js",
+ "ts-script": "dist/bin-script-deprecated.js"
+ },
+ "peerDependencies": {
+ "@swc/core": ">=1.2.50",
+ "@swc/wasm": ">=1.2.50",
+ "@types/node": "*",
+ "typescript": ">=2.7"
+ },
+ "peerDependenciesMeta": {
+ "@swc/core": {
+ "optional": true
+ },
+ "@swc/wasm": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ },
+ "node_modules/tsutils": {
+ "version": "3.21.0",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
+ "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^1.8.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ },
+ "peerDependencies": {
+ "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
+ }
+ },
+ "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,
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "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,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/typescript": {
+ "version": "4.9.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz",
+ "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==",
"dev": true,
- "dependencies": {
- "braces": "^3.0.2",
- "picomatch": "^2.3.1"
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
},
"engines": {
- "node": ">=8.6"
+ "node": ">=4.2.0"
}
},
- "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==",
- "engines": {
- "node": ">= 0.6"
- }
+ "node_modules/underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw=="
},
- "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==",
+ "node_modules/update-browserslist-db": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
+ "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
"dependencies": {
- "mime-db": "1.52.0"
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
},
- "engines": {
- "node": ">= 0.6"
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
}
},
- "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/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"dev": true,
"dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
+ "punycode": "^2.1.0"
}
},
- "node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "node_modules/v8-compile-cache-lib": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
+ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
"dev": true
},
- "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
+ "node_modules/v8-to-istanbul": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz",
+ "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.12",
+ "@types/istanbul-lib-coverage": "^2.0.1",
+ "convert-source-map": "^1.6.0"
+ },
+ "engines": {
+ "node": ">=10.12.0"
+ }
},
- "node_modules/natural-compare-lite": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
- "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
+ "node_modules/v8-to-istanbul/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
},
- "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==",
+ "node_modules/walker": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
+ "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
"dev": true,
"dependencies": {
- "wrappy": "1"
+ "makeerror": "1.0.12"
}
},
- "node_modules/optionator": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
- "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "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,
"dependencies": {
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0",
- "word-wrap": "^1.2.3"
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
},
"engines": {
- "node": ">= 0.8.0"
+ "node": ">= 8"
}
},
- "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,
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
+ "node_modules/word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=0.10.0"
}
},
- "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==",
+ "node_modules/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,
"dependencies": {
- "p-limit": "^3.0.2"
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
},
"engines": {
"node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "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==",
+ "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
+ },
+ "node_modules/write-file-atomic": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
+ "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
"dev": true,
"dependencies": {
- "callsites": "^3.0.0"
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.7"
},
"engines": {
- "node": ">=6"
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
}
},
- "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==",
+ "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,
"engines": {
- "node": ">=8"
+ "node": ">=10"
}
},
- "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==",
+ "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
+ },
+ "node_modules/yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
"dev": true,
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=12"
}
},
- "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==",
+ "node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=12"
}
},
- "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==",
+ "node_modules/yn": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
+ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=6"
}
},
- "node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "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,
"engines": {
- "node": ">=8.6"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ }
+ },
+ "dependencies": {
+ "@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,
+ "requires": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
}
},
- "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==",
+ "@babel/code-frame": {
+ "version": "7.21.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz",
+ "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==",
"dev": true,
- "engines": {
- "node": ">= 0.8.0"
+ "requires": {
+ "@babel/highlight": "^7.18.6"
}
},
- "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=="
+ "@babel/compat-data": {
+ "version": "7.22.3",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.3.tgz",
+ "integrity": "sha512-aNtko9OPOwVESUFp3MZfD8Uzxl7JzSeJpd7npIoxCasU37PFbAQRpKglkaKwlHOyeJdrREpo8TW8ldrkYWwvIQ==",
+ "dev": true
},
- "node_modules/punycode": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
- "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
+ "@babel/core": {
+ "version": "7.22.1",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.1.tgz",
+ "integrity": "sha512-Hkqu7J4ynysSXxmAahpN1jjRwVJ+NdpraFLIWflgjpVob3KNyK3/tIUc7Q7szed8WMp0JNa7Qtd1E9Oo22F9gA==",
"dev": true,
- "engines": {
- "node": ">=6"
+ "requires": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.21.4",
+ "@babel/generator": "^7.22.0",
+ "@babel/helper-compilation-targets": "^7.22.1",
+ "@babel/helper-module-transforms": "^7.22.1",
+ "@babel/helpers": "^7.22.0",
+ "@babel/parser": "^7.22.0",
+ "@babel/template": "^7.21.9",
+ "@babel/traverse": "^7.22.1",
+ "@babel/types": "^7.22.0",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.2",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "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
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
}
},
- "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==",
+ "@babel/generator": {
+ "version": "7.22.3",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.3.tgz",
+ "integrity": "sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A==",
"dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
+ "requires": {
+ "@babel/types": "^7.22.3",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
+ "jsesc": "^2.5.1"
+ }
+ },
+ "@babel/helper-compilation-targets": {
+ "version": "7.22.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.1.tgz",
+ "integrity": "sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ==",
+ "dev": true,
+ "requires": {
+ "@babel/compat-data": "^7.22.0",
+ "@babel/helper-validator-option": "^7.21.0",
+ "browserslist": "^4.21.3",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "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,
+ "requires": {
+ "yallist": "^3.0.2"
+ }
},
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
},
- {
- "type": "consulting",
- "url": "https://feross.org/support"
+ "yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true
}
- ]
+ }
},
- "node_modules/reflect-metadata": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz",
- "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg=="
+ "@babel/helper-environment-visitor": {
+ "version": "7.22.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.1.tgz",
+ "integrity": "sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA==",
+ "dev": true
},
- "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==",
+ "@babel/helper-function-name": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz",
+ "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.20.7",
+ "@babel/types": "^7.21.0"
+ }
+ },
+ "@babel/helper-hoist-variables": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
+ "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.21.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz",
+ "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.21.4"
+ }
+ },
+ "@babel/helper-module-transforms": {
+ "version": "7.22.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.1.tgz",
+ "integrity": "sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-environment-visitor": "^7.22.1",
+ "@babel/helper-module-imports": "^7.21.4",
+ "@babel/helper-simple-access": "^7.21.5",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "@babel/template": "^7.21.9",
+ "@babel/traverse": "^7.22.1",
+ "@babel/types": "^7.22.0"
+ }
+ },
+ "@babel/helper-plugin-utils": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz",
+ "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==",
+ "dev": true
+ },
+ "@babel/helper-simple-access": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz",
+ "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==",
"dev": true,
- "engines": {
- "node": ">=4"
+ "requires": {
+ "@babel/types": "^7.21.5"
}
},
- "node_modules/reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "@babel/helper-split-export-declaration": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
+ "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
"dev": true,
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
+ "requires": {
+ "@babel/types": "^7.18.6"
}
},
- "node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "@babel/helper-string-parser": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz",
+ "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==",
+ "dev": true
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.19.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
+ "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
+ "dev": true
+ },
+ "@babel/helper-validator-option": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz",
+ "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==",
+ "dev": true
+ },
+ "@babel/helpers": {
+ "version": "7.22.3",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.3.tgz",
+ "integrity": "sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w==",
"dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "requires": {
+ "@babel/template": "^7.21.9",
+ "@babel/traverse": "^7.22.1",
+ "@babel/types": "^7.22.3"
}
},
- "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==",
+ "@babel/highlight": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
+ "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
"dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.18.6",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
},
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
},
- {
- "type": "consulting",
- "url": "https://feross.org/support"
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "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
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
}
- ],
- "dependencies": {
- "queue-microtask": "^1.2.2"
}
},
- "node_modules/semver": {
- "version": "7.3.8",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
- "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "@babel/parser": {
+ "version": "7.22.4",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.4.tgz",
+ "integrity": "sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA==",
+ "dev": true
+ },
+ "@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,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
}
},
- "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==",
+ "@babel/plugin-syntax-bigint": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
+ "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
"dev": true,
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
}
},
- "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==",
+ "@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,
- "engines": {
- "node": ">=8"
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.12.13"
}
},
- "node_modules/slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "@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,
- "engines": {
- "node": ">=8"
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
- "node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "@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,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
}
},
- "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==",
+ "@babel/plugin-syntax-jsx": {
+ "version": "7.21.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz",
+ "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==",
"dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.20.2"
}
},
- "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==",
+ "@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,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
- "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
+ "@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,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
},
- "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==",
+ "@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,
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
- "node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
+ "@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,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
},
- "node_modules/tsutils": {
- "version": "3.21.0",
- "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
- "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+ "@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,
- "dependencies": {
- "tslib": "^1.8.1"
- },
- "engines": {
- "node": ">= 6"
- },
- "peerDependencies": {
- "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
}
},
- "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==",
+ "@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,
- "dependencies": {
- "prelude-ls": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.8.0"
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
}
},
- "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==",
+ "@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,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
}
},
- "node_modules/typescript": {
- "version": "4.9.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz",
- "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==",
+ "@babel/plugin-syntax-typescript": {
+ "version": "7.21.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz",
+ "integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==",
"dev": true,
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=4.2.0"
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.20.2"
}
},
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "@babel/template": {
+ "version": "7.21.9",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.21.9.tgz",
+ "integrity": "sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==",
"dev": true,
- "dependencies": {
- "punycode": "^2.1.0"
+ "requires": {
+ "@babel/code-frame": "^7.21.4",
+ "@babel/parser": "^7.21.9",
+ "@babel/types": "^7.21.5"
}
},
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "@babel/traverse": {
+ "version": "7.22.4",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.4.tgz",
+ "integrity": "sha512-Tn1pDsjIcI+JcLKq1AVlZEr4226gpuAQTsLMorsYg9tuS/kG7nuwwJ4AB8jfQuEgb/COBwR/DqJxmoiYFu5/rQ==",
"dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
+ "requires": {
+ "@babel/code-frame": "^7.21.4",
+ "@babel/generator": "^7.22.3",
+ "@babel/helper-environment-visitor": "^7.22.1",
+ "@babel/helper-function-name": "^7.21.0",
+ "@babel/helper-hoist-variables": "^7.18.6",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/parser": "^7.22.4",
+ "@babel/types": "^7.22.4",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
},
- "engines": {
- "node": ">= 8"
+ "dependencies": {
+ "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
+ }
}
},
- "node_modules/word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "@babel/types": {
+ "version": "7.22.4",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.4.tgz",
+ "integrity": "sha512-Tx9x3UBHTTsMSW85WB2kphxYQVvrZ/t1FxD88IpSgIjiUJlCm9z+xWIDwyo1vffTwSqteqyznB8ZE9vYYk16zA==",
"dev": true,
- "engines": {
- "node": ">=0.10.0"
+ "requires": {
+ "@babel/helper-string-parser": "^7.21.5",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "to-fast-properties": "^2.0.0"
}
},
- "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
- },
- "node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "@bcoe/v8-coverage": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
+ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
"dev": true
- },
- "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==",
+ },
+ "@cspotcode/source-map-support": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
+ "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
"dev": true,
- "engines": {
- "node": ">=10"
+ "requires": {
+ "@jridgewell/trace-mapping": "0.3.9"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "dependencies": {
+ "@jridgewell/trace-mapping": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
+ "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/resolve-uri": "^3.0.3",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
+ }
+ }
}
- }
- },
- "dependencies": {
+ },
"@eslint-community/eslint-utils": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
@@ -1772,6 +5631,362 @@
"integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
"dev": true
},
+ "@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,
+ "requires": {
+ "camelcase": "^5.3.1",
+ "find-up": "^4.1.0",
+ "get-package-type": "^0.1.0",
+ "js-yaml": "^3.13.1",
+ "resolve-from": "^5.0.0"
+ },
+ "dependencies": {
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "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
+ },
+ "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,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "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,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "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,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "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,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "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,
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true
+ }
+ }
+ },
+ "@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
+ },
+ "@jest/console": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz",
+ "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "slash": "^3.0.0"
+ }
+ },
+ "@jest/core": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz",
+ "integrity": "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==",
+ "dev": true,
+ "requires": {
+ "@jest/console": "^29.5.0",
+ "@jest/reporters": "^29.5.0",
+ "@jest/test-result": "^29.5.0",
+ "@jest/transform": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "jest-changed-files": "^29.5.0",
+ "jest-config": "^29.5.0",
+ "jest-haste-map": "^29.5.0",
+ "jest-message-util": "^29.5.0",
+ "jest-regex-util": "^29.4.3",
+ "jest-resolve": "^29.5.0",
+ "jest-resolve-dependencies": "^29.5.0",
+ "jest-runner": "^29.5.0",
+ "jest-runtime": "^29.5.0",
+ "jest-snapshot": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "jest-validate": "^29.5.0",
+ "jest-watcher": "^29.5.0",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.5.0",
+ "slash": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "@jest/environment": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz",
+ "integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==",
+ "dev": true,
+ "requires": {
+ "@jest/fake-timers": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "jest-mock": "^29.5.0"
+ }
+ },
+ "@jest/expect": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz",
+ "integrity": "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==",
+ "dev": true,
+ "requires": {
+ "expect": "^29.5.0",
+ "jest-snapshot": "^29.5.0"
+ }
+ },
+ "@jest/expect-utils": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz",
+ "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==",
+ "dev": true,
+ "requires": {
+ "jest-get-type": "^29.4.3"
+ }
+ },
+ "@jest/fake-timers": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz",
+ "integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^29.5.0",
+ "@sinonjs/fake-timers": "^10.0.2",
+ "@types/node": "*",
+ "jest-message-util": "^29.5.0",
+ "jest-mock": "^29.5.0",
+ "jest-util": "^29.5.0"
+ }
+ },
+ "@jest/globals": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz",
+ "integrity": "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==",
+ "dev": true,
+ "requires": {
+ "@jest/environment": "^29.5.0",
+ "@jest/expect": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "jest-mock": "^29.5.0"
+ }
+ },
+ "@jest/reporters": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz",
+ "integrity": "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==",
+ "dev": true,
+ "requires": {
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@jest/console": "^29.5.0",
+ "@jest/test-result": "^29.5.0",
+ "@jest/transform": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@jridgewell/trace-mapping": "^0.3.15",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "exit": "^0.1.2",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "istanbul-lib-coverage": "^3.0.0",
+ "istanbul-lib-instrument": "^5.1.0",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^4.0.0",
+ "istanbul-reports": "^3.1.3",
+ "jest-message-util": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "jest-worker": "^29.5.0",
+ "slash": "^3.0.0",
+ "string-length": "^4.0.1",
+ "strip-ansi": "^6.0.0",
+ "v8-to-istanbul": "^9.0.1"
+ }
+ },
+ "@jest/schemas": {
+ "version": "29.4.3",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz",
+ "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==",
+ "dev": true,
+ "requires": {
+ "@sinclair/typebox": "^0.25.16"
+ }
+ },
+ "@jest/source-map": {
+ "version": "29.4.3",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz",
+ "integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/trace-mapping": "^0.3.15",
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.2.9"
+ }
+ },
+ "@jest/test-result": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz",
+ "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==",
+ "dev": true,
+ "requires": {
+ "@jest/console": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ }
+ },
+ "@jest/test-sequencer": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz",
+ "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==",
+ "dev": true,
+ "requires": {
+ "@jest/test-result": "^29.5.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.5.0",
+ "slash": "^3.0.0"
+ }
+ },
+ "@jest/transform": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz",
+ "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.11.6",
+ "@jest/types": "^29.5.0",
+ "@jridgewell/trace-mapping": "^0.3.15",
+ "babel-plugin-istanbul": "^6.1.1",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^2.0.0",
+ "fast-json-stable-stringify": "^2.1.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.5.0",
+ "jest-regex-util": "^29.4.3",
+ "jest-util": "^29.5.0",
+ "micromatch": "^4.0.4",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
+ "write-file-atomic": "^4.0.2"
+ }
+ },
+ "@jest/types": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz",
+ "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==",
+ "dev": true,
+ "requires": {
+ "@jest/schemas": "^29.4.3",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.8",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@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,
+ "requires": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "@jridgewell/resolve-uri": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
+ "dev": true
+ },
+ "@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
+ },
+ "@jridgewell/sourcemap-codec": {
+ "version": "1.4.15",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
+ "dev": true
+ },
+ "@jridgewell/trace-mapping": {
+ "version": "0.3.18",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz",
+ "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/resolve-uri": "3.1.0",
+ "@jridgewell/sourcemap-codec": "1.4.14"
+ },
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": {
+ "version": "1.4.14",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
+ "dev": true
+ }
+ }
+ },
"@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -1798,24 +6013,179 @@
"fastq": "^1.6.0"
}
},
+ "@sinclair/typebox": {
+ "version": "0.25.24",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz",
+ "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==",
+ "dev": true
+ },
+ "@sinonjs/commons": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz",
+ "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==",
+ "dev": true,
+ "requires": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "@sinonjs/fake-timers": {
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.2.0.tgz",
+ "integrity": "sha512-OPwQlEdg40HAj5KNF8WW6q2KG4Z+cBCZb3m4ninfTZKaBmbIJodviQsDBoYMPHkOyJJMHnOJo5j2+LKDOhOACg==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^3.0.0"
+ }
+ },
+ "@tsconfig/node10": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
+ "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
+ "dev": true
+ },
+ "@tsconfig/node12": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
+ "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
+ "dev": true
+ },
+ "@tsconfig/node14": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
+ "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
+ "dev": true
+ },
+ "@tsconfig/node16": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
+ "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
+ "dev": true
+ },
+ "@types/babel__core": {
+ "version": "7.20.1",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz",
+ "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==",
+ "dev": true,
+ "requires": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "@types/babel__generator": {
+ "version": "7.6.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz",
+ "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@types/babel__template": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz",
+ "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==",
+ "dev": true,
+ "requires": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@types/babel__traverse": {
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.0.tgz",
+ "integrity": "sha512-TBOjqAGf0hmaqRwpii5LLkJLg7c6OMm4nHLmpsUxwk9bBHtoTC6dAHdVWdGv4TBxj2CZOZY8Xfq8WmfoVi7n4Q==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.20.7"
+ }
+ },
+ "@types/graceful-fs": {
+ "version": "4.1.6",
+ "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz",
+ "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/istanbul-lib-coverage": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
+ "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==",
+ "dev": true
+ },
+ "@types/istanbul-lib-report": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
+ "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-coverage": "*"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
"@types/json-schema": {
"version": "7.0.11",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
"integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
"dev": true
},
+ "@types/jsonpath": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@types/jsonpath/-/jsonpath-0.2.0.tgz",
+ "integrity": "sha512-v7qlPA0VpKUlEdhghbDqRoKMxFB3h3Ch688TApBJ6v+XLDdvWCGLJIYiPKGZnS6MAOie+IorCfNYVHOPIHSWwQ==",
+ "dev": true
+ },
"@types/node": {
"version": "18.11.9",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz",
"integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==",
"dev": true
},
+ "@types/prettier": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz",
+ "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==",
+ "dev": true
+ },
"@types/semver": {
"version": "7.3.13",
"resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz",
"integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==",
"dev": true
},
+ "@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==",
+ "dev": true
+ },
+ "@types/yargs": {
+ "version": "17.0.24",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz",
+ "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==",
+ "dev": true,
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "@types/yargs-parser": {
+ "version": "21.0.0",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz",
+ "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==",
+ "dev": true
+ },
"@typescript-eslint/eslint-plugin": {
"version": "5.56.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.56.0.tgz",
@@ -1928,6 +6298,12 @@
"dev": true,
"requires": {}
},
+ "acorn-walk": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
+ "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
+ "dev": true
+ },
"ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
@@ -1940,6 +6316,23 @@
"uri-js": "^4.2.2"
}
},
+ "ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.21.3"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "dev": true
+ }
+ }
+ },
"ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
@@ -1955,6 +6348,22 @@
"color-convert": "^2.0.1"
}
},
+ "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,
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "arg": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
+ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
+ "dev": true
+ },
"argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
@@ -1982,6 +6391,76 @@
"proxy-from-env": "^1.1.0"
}
},
+ "babel-jest": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz",
+ "integrity": "sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==",
+ "dev": true,
+ "requires": {
+ "@jest/transform": "^29.5.0",
+ "@types/babel__core": "^7.1.14",
+ "babel-plugin-istanbul": "^6.1.1",
+ "babel-preset-jest": "^29.5.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "slash": "^3.0.0"
+ }
+ },
+ "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,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^5.0.4",
+ "test-exclude": "^6.0.0"
+ }
+ },
+ "babel-plugin-jest-hoist": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz",
+ "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.3.3",
+ "@babel/types": "^7.3.3",
+ "@types/babel__core": "^7.1.14",
+ "@types/babel__traverse": "^7.0.6"
+ }
+ },
+ "babel-preset-current-node-syntax": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz",
+ "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==",
+ "dev": true,
+ "requires": {
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/plugin-syntax-bigint": "^7.8.3",
+ "@babel/plugin-syntax-class-properties": "^7.8.3",
+ "@babel/plugin-syntax-import-meta": "^7.8.3",
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.8.3",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3",
+ "@babel/plugin-syntax-top-level-await": "^7.8.3"
+ }
+ },
+ "babel-preset-jest": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz",
+ "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==",
+ "dev": true,
+ "requires": {
+ "babel-plugin-jest-hoist": "^29.5.0",
+ "babel-preset-current-node-syntax": "^1.0.0"
+ }
+ },
"balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
@@ -2007,12 +6486,60 @@
"fill-range": "^7.0.1"
}
},
+ "browserslist": {
+ "version": "4.21.7",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.7.tgz",
+ "integrity": "sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30001489",
+ "electron-to-chromium": "^1.4.411",
+ "node-releases": "^2.0.12",
+ "update-browserslist-db": "^1.0.11"
+ }
+ },
+ "bs-logger": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz",
+ "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==",
+ "dev": true,
+ "requires": {
+ "fast-json-stable-stringify": "2.x"
+ }
+ },
+ "bser": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
+ "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
+ "dev": true,
+ "requires": {
+ "node-int64": "^0.4.0"
+ }
+ },
+ "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
+ },
"callsites": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true
},
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
+ "caniuse-lite": {
+ "version": "1.0.30001492",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001492.tgz",
+ "integrity": "sha512-2efF8SAZwgAX1FJr87KWhvuJxnGJKOnctQa8xLOskAXNXq8oiuqgl6u1kk3fFpsp3GgvzlRjiK1sl63hNtFADw==",
+ "dev": true
+ },
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -2023,11 +6550,52 @@
"supports-color": "^7.1.0"
}
},
+ "char-regex": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
+ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
+ "dev": true
+ },
+ "ci-info": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz",
+ "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==",
+ "dev": true
+ },
+ "cjs-module-lexer": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz",
+ "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==",
+ "dev": true
+ },
"class-transformer": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz",
"integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw=="
},
+ "cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "dev": true,
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
+ "dev": true
+ },
+ "collect-v8-coverage": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz",
+ "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==",
+ "dev": true
+ },
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -2057,6 +6625,18 @@
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true
},
+ "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
+ },
+ "create-require": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
+ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
+ "dev": true
+ },
"cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -2077,10 +6657,21 @@
"ms": "2.1.2"
}
},
+ "dedent": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
+ "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==",
+ "dev": true
+ },
"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==",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
+ },
+ "deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
"dev": true
},
"delayed-stream": {
@@ -2088,6 +6679,24 @@
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
},
+ "detect-newline": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
+ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
+ "dev": true
+ },
+ "diff": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "dev": true
+ },
+ "diff-sequences": {
+ "version": "29.4.3",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz",
+ "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==",
+ "dev": true
+ },
"dir-glob": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
@@ -2106,12 +6715,99 @@
"esutils": "^2.0.2"
}
},
+ "electron-to-chromium": {
+ "version": "1.4.414",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.414.tgz",
+ "integrity": "sha512-RRuCvP6ekngVh2SAJaOKT/hxqc9JAsK+Pe0hP5tGQIfonU2Zy9gMGdJ+mBdyl/vNucMG6gkXYtuM4H/1giws5w==",
+ "dev": true
+ },
+ "emittery": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
+ "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==",
+ "dev": true
+ },
+ "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
+ },
+ "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,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "dev": true
+ },
"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
},
+ "escodegen": {
+ "version": "1.14.3",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
+ "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
+ "requires": {
+ "esprima": "^4.0.1",
+ "estraverse": "^4.2.0",
+ "esutils": "^2.0.2",
+ "optionator": "^0.8.1",
+ "source-map": "~0.6.1"
+ },
+ "dependencies": {
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
+ },
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
+ "requires": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ }
+ },
+ "optionator": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "requires": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.6",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "word-wrap": "~1.2.3"
+ }
+ },
+ "prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w=="
+ },
+ "type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
+ "requires": {
+ "prelude-ls": "~1.1.2"
+ }
+ }
+ }
+ },
"eslint": {
"version": "8.36.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz",
@@ -2205,6 +6901,11 @@
"eslint-visitor-keys": "^3.3.0"
}
},
+ "esprima": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz",
+ "integrity": "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A=="
+ },
"esquery": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
@@ -2242,15 +6943,49 @@
"estraverse": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
- "dev": true
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
},
"esutils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
+ },
+ "execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ }
+ },
+ "exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
"dev": true
},
+ "expect": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz",
+ "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==",
+ "dev": true,
+ "requires": {
+ "@jest/expect-utils": "^29.5.0",
+ "jest-get-type": "^29.4.3",
+ "jest-matcher-utils": "^29.5.0",
+ "jest-message-util": "^29.5.0",
+ "jest-util": "^29.5.0"
+ }
+ },
"fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -2290,8 +7025,7 @@
"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
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
},
"fastq": {
"version": "1.15.0",
@@ -2302,6 +7036,15 @@
"reusify": "^1.0.4"
}
},
+ "fb-watchman": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
+ "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
+ "dev": true,
+ "requires": {
+ "bser": "2.1.1"
+ }
+ },
"file-entry-cache": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
@@ -2367,6 +7110,43 @@
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
"dev": true
},
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "optional": true
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "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
+ },
+ "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
+ },
+ "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
+ },
+ "get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "dev": true
+ },
"glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
@@ -2413,18 +7193,45 @@
"slash": "^3.0.0"
}
},
+ "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
+ },
"grapheme-splitter": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
"integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
"dev": true
},
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
"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
},
+ "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
+ },
+ "human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
+ "dev": true
+ },
"ignore": {
"version": "5.2.4",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
@@ -2441,6 +7248,16 @@
"resolve-from": "^4.0.0"
}
},
+ "import-local": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
+ "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
+ "dev": true,
+ "requires": {
+ "pkg-dir": "^4.2.0",
+ "resolve-cwd": "^3.0.0"
+ }
+ },
"imurmurhash": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
@@ -2463,12 +7280,39 @@
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"dev": true
},
+ "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
+ },
+ "is-core-module": {
+ "version": "2.12.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz",
+ "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
"is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"dev": true
},
+ "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
+ },
+ "is-generator-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
+ "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
+ "dev": true
+ },
"is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
@@ -2490,11 +7334,505 @@
"integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
"dev": true
},
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
+ "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
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true
+ },
+ "istanbul-lib-coverage": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
+ "dev": true
+ },
+ "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,
+ "requires": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
+ }
+ },
+ "istanbul-lib-report": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
+ "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
+ "dev": true,
+ "requires": {
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^3.0.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "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,
+ "requires": {
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^3.0.0",
+ "source-map": "^0.6.1"
+ }
+ },
+ "istanbul-reports": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz",
+ "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==",
+ "dev": true,
+ "requires": {
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
+ }
+ },
+ "jest": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz",
+ "integrity": "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==",
+ "dev": true,
+ "requires": {
+ "@jest/core": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "import-local": "^3.0.2",
+ "jest-cli": "^29.5.0"
+ }
+ },
+ "jest-changed-files": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz",
+ "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==",
+ "dev": true,
+ "requires": {
+ "execa": "^5.0.0",
+ "p-limit": "^3.1.0"
+ }
+ },
+ "jest-circus": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz",
+ "integrity": "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==",
+ "dev": true,
+ "requires": {
+ "@jest/environment": "^29.5.0",
+ "@jest/expect": "^29.5.0",
+ "@jest/test-result": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "co": "^4.6.0",
+ "dedent": "^0.7.0",
+ "is-generator-fn": "^2.0.0",
+ "jest-each": "^29.5.0",
+ "jest-matcher-utils": "^29.5.0",
+ "jest-message-util": "^29.5.0",
+ "jest-runtime": "^29.5.0",
+ "jest-snapshot": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "p-limit": "^3.1.0",
+ "pretty-format": "^29.5.0",
+ "pure-rand": "^6.0.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ }
+ },
+ "jest-cli": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz",
+ "integrity": "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==",
+ "dev": true,
+ "requires": {
+ "@jest/core": "^29.5.0",
+ "@jest/test-result": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "chalk": "^4.0.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "import-local": "^3.0.2",
+ "jest-config": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "jest-validate": "^29.5.0",
+ "prompts": "^2.0.1",
+ "yargs": "^17.3.1"
+ }
+ },
+ "jest-config": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz",
+ "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.11.6",
+ "@jest/test-sequencer": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "babel-jest": "^29.5.0",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "deepmerge": "^4.2.2",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "jest-circus": "^29.5.0",
+ "jest-environment-node": "^29.5.0",
+ "jest-get-type": "^29.4.3",
+ "jest-regex-util": "^29.4.3",
+ "jest-resolve": "^29.5.0",
+ "jest-runner": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "jest-validate": "^29.5.0",
+ "micromatch": "^4.0.4",
+ "parse-json": "^5.2.0",
+ "pretty-format": "^29.5.0",
+ "slash": "^3.0.0",
+ "strip-json-comments": "^3.1.1"
+ }
+ },
+ "jest-diff": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz",
+ "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.0.0",
+ "diff-sequences": "^29.4.3",
+ "jest-get-type": "^29.4.3",
+ "pretty-format": "^29.5.0"
+ }
+ },
+ "jest-docblock": {
+ "version": "29.4.3",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz",
+ "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==",
+ "dev": true,
+ "requires": {
+ "detect-newline": "^3.0.0"
+ }
+ },
+ "jest-each": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz",
+ "integrity": "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^29.5.0",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^29.4.3",
+ "jest-util": "^29.5.0",
+ "pretty-format": "^29.5.0"
+ }
+ },
+ "jest-environment-node": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz",
+ "integrity": "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==",
+ "dev": true,
+ "requires": {
+ "@jest/environment": "^29.5.0",
+ "@jest/fake-timers": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "jest-mock": "^29.5.0",
+ "jest-util": "^29.5.0"
+ }
+ },
+ "jest-get-type": {
+ "version": "29.4.3",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz",
+ "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==",
+ "dev": true
+ },
+ "jest-haste-map": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz",
+ "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^29.5.0",
+ "@types/graceful-fs": "^4.1.3",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "fsevents": "^2.3.2",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^29.4.3",
+ "jest-util": "^29.5.0",
+ "jest-worker": "^29.5.0",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.8"
+ }
+ },
+ "jest-leak-detector": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz",
+ "integrity": "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==",
+ "dev": true,
+ "requires": {
+ "jest-get-type": "^29.4.3",
+ "pretty-format": "^29.5.0"
+ }
+ },
+ "jest-matcher-utils": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz",
+ "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.0.0",
+ "jest-diff": "^29.5.0",
+ "jest-get-type": "^29.4.3",
+ "pretty-format": "^29.5.0"
+ }
+ },
+ "jest-message-util": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz",
+ "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^29.5.0",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.5.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ }
+ },
+ "jest-mock": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz",
+ "integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "jest-util": "^29.5.0"
+ }
+ },
+ "jest-pnp-resolver": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
+ "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
+ "dev": true,
+ "requires": {}
+ },
+ "jest-regex-util": {
+ "version": "29.4.3",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz",
+ "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==",
+ "dev": true
+ },
+ "jest-resolve": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz",
+ "integrity": "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.5.0",
+ "jest-pnp-resolver": "^1.2.2",
+ "jest-util": "^29.5.0",
+ "jest-validate": "^29.5.0",
+ "resolve": "^1.20.0",
+ "resolve.exports": "^2.0.0",
+ "slash": "^3.0.0"
+ }
+ },
+ "jest-resolve-dependencies": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz",
+ "integrity": "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==",
+ "dev": true,
+ "requires": {
+ "jest-regex-util": "^29.4.3",
+ "jest-snapshot": "^29.5.0"
+ }
+ },
+ "jest-runner": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz",
+ "integrity": "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==",
+ "dev": true,
+ "requires": {
+ "@jest/console": "^29.5.0",
+ "@jest/environment": "^29.5.0",
+ "@jest/test-result": "^29.5.0",
+ "@jest/transform": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "emittery": "^0.13.1",
+ "graceful-fs": "^4.2.9",
+ "jest-docblock": "^29.4.3",
+ "jest-environment-node": "^29.5.0",
+ "jest-haste-map": "^29.5.0",
+ "jest-leak-detector": "^29.5.0",
+ "jest-message-util": "^29.5.0",
+ "jest-resolve": "^29.5.0",
+ "jest-runtime": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "jest-watcher": "^29.5.0",
+ "jest-worker": "^29.5.0",
+ "p-limit": "^3.1.0",
+ "source-map-support": "0.5.13"
+ }
+ },
+ "jest-runtime": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz",
+ "integrity": "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==",
+ "dev": true,
+ "requires": {
+ "@jest/environment": "^29.5.0",
+ "@jest/fake-timers": "^29.5.0",
+ "@jest/globals": "^29.5.0",
+ "@jest/source-map": "^29.4.3",
+ "@jest/test-result": "^29.5.0",
+ "@jest/transform": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "cjs-module-lexer": "^1.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.5.0",
+ "jest-message-util": "^29.5.0",
+ "jest-mock": "^29.5.0",
+ "jest-regex-util": "^29.4.3",
+ "jest-resolve": "^29.5.0",
+ "jest-snapshot": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "slash": "^3.0.0",
+ "strip-bom": "^4.0.0"
+ }
+ },
+ "jest-snapshot": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz",
+ "integrity": "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.11.6",
+ "@babel/generator": "^7.7.2",
+ "@babel/plugin-syntax-jsx": "^7.7.2",
+ "@babel/plugin-syntax-typescript": "^7.7.2",
+ "@babel/traverse": "^7.7.2",
+ "@babel/types": "^7.3.3",
+ "@jest/expect-utils": "^29.5.0",
+ "@jest/transform": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/babel__traverse": "^7.0.6",
+ "@types/prettier": "^2.1.5",
+ "babel-preset-current-node-syntax": "^1.0.0",
+ "chalk": "^4.0.0",
+ "expect": "^29.5.0",
+ "graceful-fs": "^4.2.9",
+ "jest-diff": "^29.5.0",
+ "jest-get-type": "^29.4.3",
+ "jest-matcher-utils": "^29.5.0",
+ "jest-message-util": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "natural-compare": "^1.4.0",
+ "pretty-format": "^29.5.0",
+ "semver": "^7.3.5"
+ }
+ },
+ "jest-util": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz",
+ "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "jest-validate": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz",
+ "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^29.5.0",
+ "camelcase": "^6.2.0",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^29.4.3",
+ "leven": "^3.1.0",
+ "pretty-format": "^29.5.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "dev": true
+ }
+ }
+ },
+ "jest-watcher": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz",
+ "integrity": "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==",
+ "dev": true,
+ "requires": {
+ "@jest/test-result": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "emittery": "^0.13.1",
+ "jest-util": "^29.5.0",
+ "string-length": "^4.0.1"
+ }
+ },
+ "jest-worker": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz",
+ "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*",
+ "jest-util": "^29.5.0",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "dependencies": {
+ "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,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
},
"js-sdsl": {
"version": "4.4.0",
@@ -2502,6 +7840,12 @@
"integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==",
"dev": true
},
+ "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
+ },
"js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
@@ -2511,6 +7855,18 @@
"argparse": "^2.0.1"
}
},
+ "jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "dev": true
+ },
+ "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
+ },
"json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
@@ -2523,6 +7879,34 @@
"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
"dev": true
},
+ "json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "dev": true
+ },
+ "jsonpath": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz",
+ "integrity": "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==",
+ "requires": {
+ "esprima": "1.2.2",
+ "static-eval": "2.0.2",
+ "underscore": "1.12.1"
+ }
+ },
+ "kleur": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
+ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
+ "dev": true
+ },
+ "leven": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
+ "dev": true
+ },
"levn": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
@@ -2533,6 +7917,12 @@
"type-check": "~0.4.0"
}
},
+ "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
+ },
"locate-path": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
@@ -2542,6 +7932,12 @@
"p-locate": "^5.0.0"
}
},
+ "lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
+ "dev": true
+ },
"lodash.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
@@ -2557,6 +7953,44 @@
"yallist": "^4.0.0"
}
},
+ "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,
+ "requires": {
+ "semver": "^6.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
+ }
+ },
+ "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
+ },
+ "makeerror": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
+ "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
+ "dev": true,
+ "requires": {
+ "tmpl": "1.0.5"
+ }
+ },
+ "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
+ },
"merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
@@ -2586,6 +8020,12 @@
"mime-db": "1.52.0"
}
},
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true
+ },
"minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
@@ -2613,6 +8053,33 @@
"integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
"dev": true
},
+ "node-int64": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
+ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
+ "dev": true
+ },
+ "node-releases": {
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz",
+ "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==",
+ "dev": true
+ },
+ "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
+ },
+ "npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.0.0"
+ }
+ },
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -2622,6 +8089,15 @@
"wrappy": "1"
}
},
+ "onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
"optionator": {
"version": "0.9.1",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
@@ -2654,6 +8130,12 @@
"p-limit": "^3.0.2"
}
},
+ "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
+ },
"parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -2663,6 +8145,18 @@
"callsites": "^3.0.0"
}
},
+ "parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
"path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@@ -2681,24 +8175,119 @@
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"dev": true
},
+ "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
+ },
"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
},
+ "picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "dev": true
+ },
"picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true
},
+ "pirates": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz",
+ "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==",
+ "dev": true
+ },
+ "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,
+ "requires": {
+ "find-up": "^4.0.0"
+ },
+ "dependencies": {
+ "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,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "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,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "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,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "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,
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ }
+ }
+ },
"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
},
+ "pretty-format": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz",
+ "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==",
+ "dev": true,
+ "requires": {
+ "@jest/schemas": "^29.4.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ },
+ "dependencies": {
+ "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
+ }
+ }
+ },
+ "prompts": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
+ "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
+ "dev": true,
+ "requires": {
+ "kleur": "^3.0.3",
+ "sisteransi": "^1.0.5"
+ }
+ },
"proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
@@ -2710,23 +8299,75 @@
"integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
"dev": true
},
+ "pure-rand": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz",
+ "integrity": "sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==",
+ "dev": true
+ },
"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
},
+ "react-is": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
+ "dev": true
+ },
"reflect-metadata": {
"version": "0.1.13",
"resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz",
"integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg=="
},
+ "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
+ },
+ "resolve": {
+ "version": "1.22.2",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz",
+ "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==",
+ "dev": true,
+ "requires": {
+ "is-core-module": "^2.11.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "resolve-from": "^5.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true
+ }
+ }
+ },
"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
},
+ "resolve.exports": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz",
+ "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==",
+ "dev": true
+ },
"reusify": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
@@ -2775,12 +8416,92 @@
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true
},
+ "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
+ },
+ "sisteransi": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
+ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
+ "dev": true
+ },
"slash": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
"integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true
},
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "devOptional": true
+ },
+ "source-map-support": {
+ "version": "0.5.13",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
+ "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "dev": true
+ },
+ "stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^2.0.0"
+ },
+ "dependencies": {
+ "escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "dev": true
+ }
+ }
+ },
+ "static-eval": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz",
+ "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==",
+ "requires": {
+ "escodegen": "^1.8.1"
+ }
+ },
+ "string-length": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
+ "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
+ "dev": true,
+ "requires": {
+ "char-regex": "^1.0.2",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "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,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
"strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
@@ -2790,6 +8511,18 @@
"ansi-regex": "^5.0.1"
}
},
+ "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
+ },
+ "strip-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+ "dev": true
+ },
"strip-json-comments": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
@@ -2805,12 +8538,41 @@
"has-flag": "^4.0.0"
}
},
+ "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
+ },
+ "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,
+ "requires": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
+ }
+ },
"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
},
+ "tmpl": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
+ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
+ "dev": true
+ },
+ "to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
+ "dev": true
+ },
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -2820,6 +8582,43 @@
"is-number": "^7.0.0"
}
},
+ "ts-jest": {
+ "version": "29.1.0",
+ "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.0.tgz",
+ "integrity": "sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA==",
+ "dev": true,
+ "requires": {
+ "bs-logger": "0.x",
+ "fast-json-stable-stringify": "2.x",
+ "jest-util": "^29.0.0",
+ "json5": "^2.2.3",
+ "lodash.memoize": "4.x",
+ "make-error": "1.x",
+ "semver": "7.x",
+ "yargs-parser": "^21.0.1"
+ }
+ },
+ "ts-node": {
+ "version": "10.9.1",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
+ "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
+ "dev": true,
+ "requires": {
+ "@cspotcode/source-map-support": "^0.8.0",
+ "@tsconfig/node10": "^1.0.7",
+ "@tsconfig/node12": "^1.0.7",
+ "@tsconfig/node14": "^1.0.0",
+ "@tsconfig/node16": "^1.0.2",
+ "acorn": "^8.4.1",
+ "acorn-walk": "^8.1.1",
+ "arg": "^4.1.0",
+ "create-require": "^1.1.0",
+ "diff": "^4.0.1",
+ "make-error": "^1.1.1",
+ "v8-compile-cache-lib": "^3.0.1",
+ "yn": "3.1.1"
+ }
+ },
"tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
@@ -2844,6 +8643,12 @@
"prelude-ls": "^1.2.1"
}
},
+ "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
+ },
"type-fest": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
@@ -2856,6 +8661,21 @@
"integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==",
"dev": true
},
+ "underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw=="
+ },
+ "update-browserslist-db": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
+ "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==",
+ "dev": true,
+ "requires": {
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
+ }
+ },
"uri-js": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
@@ -2865,6 +8685,40 @@
"punycode": "^2.1.0"
}
},
+ "v8-compile-cache-lib": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
+ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
+ "dev": true
+ },
+ "v8-to-istanbul": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz",
+ "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/trace-mapping": "^0.3.12",
+ "@types/istanbul-lib-coverage": "^2.0.1",
+ "convert-source-map": "^1.6.0"
+ },
+ "dependencies": {
+ "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
+ }
+ }
+ },
+ "walker": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
+ "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
+ "dev": true,
+ "requires": {
+ "makeerror": "1.0.12"
+ }
+ },
"which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -2877,8 +8731,18 @@
"word-wrap": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
- "dev": true
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="
+ },
+ "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,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
},
"wrappy": {
"version": "1.0.2",
@@ -2886,12 +8750,55 @@
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"dev": true
},
+ "write-file-atomic": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
+ "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
+ "dev": true,
+ "requires": {
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.7"
+ }
+ },
+ "y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "dev": true
+ },
"yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
},
+ "yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "dev": true,
+ "requires": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ }
+ },
+ "yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "dev": true
+ },
+ "yn": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
+ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
+ "dev": true
+ },
"yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
diff --git a/package.json b/package.json
index 1ca5d7b..b4aaf00 100755
--- a/package.json
+++ b/package.json
@@ -1,17 +1,22 @@
{
"name": "@speakeasy-api/openai",
- "version": "1.9.2",
+ "version": "2.28.0",
"author": "speakeasy-openai",
"scripts": {
- "prepare": "tsc --build"
+ "prepare": "tsc --build",
+ "check:tsc": "tsc --noEmit --skipLibCheck",
+ "check:eslint": "eslint --max-warnings=0 src",
+ "check": "npm run check:tsc && npm run check:eslint"
},
"dependencies": {
"axios": "^1.1.3",
+ "jsonpath": "^1.1.1",
"class-transformer": "^0.5.1",
"form-data": "^4.0.0",
"reflect-metadata": "^0.1.13"
},
"devDependencies": {
+ "@types/jsonpath": "^0.2.0",
"@types/node": "^18.11.5",
"typescript": "^4.8.4",
"@typescript-eslint/eslint-plugin": "^5.56.0",
@@ -21,6 +26,12 @@
"main": "dist/index.js",
"files": [
"dist",
+ "docs",
"README.md"
- ]
+ ],
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/speakeasy-sdks/openai-ts-sdk.git",
+ "directory": "."
+ }
}
diff --git a/src/internal/utils/headers.ts b/src/internal/utils/headers.ts
index afa4ab0..d570fda 100755
--- a/src/internal/utils/headers.ts
+++ b/src/internal/utils/headers.ts
@@ -5,12 +5,12 @@
import { AxiosResponseHeaders, RawAxiosResponseHeaders } from "axios";
import {
ParamDecorator,
- convertIfDateObjectToISOString,
isBooleanRecord,
isEmpty,
isNumberRecord,
isStringRecord,
parseParamDecorator,
+ valToString,
} from "./utils";
import { requestMetadataKey } from "./requestbody";
@@ -51,8 +51,7 @@ export function getHeadersFromRequest(headerParams: any): any {
const value: string = serializeHeader(
headerParams[fname],
- headerDecorator.Explode,
- headerDecorator.DateTimeFormat
+ headerDecorator.Explode
);
if (value != "") headers[headerDecorator.ParamName] = value;
@@ -89,16 +88,12 @@ export function getHeadersFromResponse(
return reponseHeaders;
}
-function serializeHeader(
- header: any,
- explode: boolean,
- dateTimeFormat?: string
-): string {
+function serializeHeader(header: any, explode: boolean): string {
const headerVals: string[] = [];
if (Array.isArray(header)) {
header.forEach((val: any) => {
- headerVals.push(convertIfDateObjectToISOString(val, dateTimeFormat));
+ headerVals.push(valToString(val));
});
} else if (
isStringRecord(header) ||
@@ -106,8 +101,9 @@ function serializeHeader(
isBooleanRecord(header)
) {
Object.getOwnPropertyNames(header).forEach((headerKey: string) => {
- if (explode) headerVals.push(`${headerKey}=${header[headerKey]}`);
- else headerVals.push(`${headerKey},${header[headerKey]}`);
+ if (explode)
+ headerVals.push(`${headerKey}=${valToString(header[headerKey])}`);
+ else headerVals.push(`${headerKey},${valToString(header[headerKey])}`);
});
} else if (header instanceof Object) {
Object.getOwnPropertyNames(header).forEach((headerKey: string) => {
@@ -128,10 +124,7 @@ function serializeHeader(
if (headerDecorator == null) return;
- const headerFieldValue = convertIfDateObjectToISOString(
- header[headerKey],
- headerDecorator.DateTimeFormat
- );
+ const headerFieldValue = valToString(header[headerKey]);
if (isEmpty(headerFieldValue)) return;
else if (explode)
diff --git a/src/internal/utils/pathparams.ts b/src/internal/utils/pathparams.ts
index caa8906..cdc9d8c 100755
--- a/src/internal/utils/pathparams.ts
+++ b/src/internal/utils/pathparams.ts
@@ -3,15 +3,13 @@
*/
import {
- encodeAndConvertPrimitiveVal,
ParamDecorator,
- parseParamDecorator,
-} from "./utils";
-import {
- isStringRecord,
- isNumberRecord,
isBooleanRecord,
isEmpty,
+ isNumberRecord,
+ isStringRecord,
+ parseParamDecorator,
+ valToString,
} from "./utils";
export const ppMetadataKey = "pathParam";
@@ -19,15 +17,14 @@ export const ppMetadataKey = "pathParam";
export function getSimplePathParams(
paramName: string,
paramValue: any,
- explode: boolean,
- dateTimeFormat?: string
+ explode: boolean
): Map {
const pathParams: Map = new Map();
const ppVals: string[] = [];
if (Array.isArray(paramValue)) {
paramValue.forEach((param) => {
- ppVals.push(encodeAndConvertPrimitiveVal(param, dateTimeFormat));
+ ppVals.push(encodeURIComponent(valToString(param)));
});
pathParams.set(paramName, ppVals.join(","));
} else if (
@@ -36,9 +33,8 @@ export function getSimplePathParams(
isBooleanRecord(paramValue)
) {
Object.getOwnPropertyNames(paramValue).forEach((paramKey: string) => {
- const paramFieldValue = encodeAndConvertPrimitiveVal(
- paramValue[paramKey],
- dateTimeFormat
+ const paramFieldValue = encodeURIComponent(
+ valToString(paramValue[paramKey])
);
if (explode) ppVals.push(`${paramKey}=${paramFieldValue}`);
@@ -65,9 +61,8 @@ export function getSimplePathParams(
if (ppDecorator == null) return;
- const paramFieldValue = encodeAndConvertPrimitiveVal(
- paramValue[paramKey],
- ppDecorator.DateTimeFormat
+ const paramFieldValue = encodeURIComponent(
+ valToString(paramValue[paramKey])
);
if (isEmpty(paramFieldValue)) return;
@@ -78,10 +73,7 @@ export function getSimplePathParams(
pathParams.set(paramName, ppVals.join(","));
} else {
- pathParams.set(
- paramName,
- encodeAndConvertPrimitiveVal(paramValue, dateTimeFormat)
- );
+ pathParams.set(paramName, encodeURIComponent(valToString(paramValue)));
}
return pathParams;
}
diff --git a/src/internal/utils/queryparams.ts b/src/internal/utils/queryparams.ts
index 481cc66..0279e00 100755
--- a/src/internal/utils/queryparams.ts
+++ b/src/internal/utils/queryparams.ts
@@ -3,21 +3,23 @@
*/
import {
- convertIfDateObjectToISOString,
- encodeAndConvertPrimitiveVal,
+ ParamDecorator,
parseParamDecorator,
populateFromGlobals,
+ shouldQueryParamSerialize,
+ valToString
} from "./utils";
-import { ParamDecorator } from "./utils";
-import { requestMetadataKey } from "./requestbody";
+import {requestMetadataKey} from "./requestbody";
export const qpMetadataKey = "queryParam";
const queryStringPrefix = "?";
+const filterAndJoin = (strings: string[]):string => strings.filter(s => !!s).join("&")
+
export function serializeQueryParams(queryParams: any, globals?: any): string {
const queryStringParts: string[] = [];
- if (!queryParams) return queryStringParts.join("&");
+ if (!queryParams) return filterAndJoin(queryStringParts);
const fieldNames: string[] =
"__props__" in queryParams
@@ -39,7 +41,7 @@ export function serializeQueryParams(queryParams: any, globals?: any): string {
fname
);
- if (!qpAnn) return { serialize: () => "" };
+ if (!qpAnn) return {serialize: () => ""};
const qpDecorator: ParamDecorator = parseParamDecorator(
qpAnn,
@@ -54,44 +56,43 @@ export function serializeQueryParams(queryParams: any, globals?: any): string {
value = populateFromGlobals(value, fname, "queryParam", globals);
if (qpDecorator.Serialization === "json")
- queryStringParts.push(jsonSerializer({ [qpDecorator.ParamName]: value }));
+ queryStringParts.push(jsonSerializer({[qpDecorator.ParamName]: value}));
else {
switch (qpDecorator.Style) {
case "deepObject":
queryStringParts.push(
- deepObjectSerializer(
- { [qpDecorator.ParamName]: value },
- qpDecorator.DateTimeFormat
- )
+ deepObjectSerializer({[qpDecorator.ParamName]: value})
);
return;
case "form":
if (!qpDecorator.Explode)
queryStringParts.push(
- formSerializer(
- { [qpDecorator.ParamName]: value },
- qpDecorator.DateTimeFormat
- )
+ noExplodeSerializer({[qpDecorator.ParamName]: value})
);
else
queryStringParts.push(
- formSerializerExplode(
- { [qpDecorator.ParamName]: value },
- qpDecorator.DateTimeFormat
- )
+ formSerializerExplode({[qpDecorator.ParamName]: value})
);
return;
+ case "pipeDelimited":
+ if (!qpDecorator.Explode) {
+ queryStringParts.push(
+ noExplodeSerializer({[qpDecorator.ParamName]: value}, "|")
+ );
+ } else {
+ queryStringParts.push(
+ formSerializerExplode({[qpDecorator.ParamName]: value})
+ );
+ }
+ return;
default:
queryStringParts.push(
- formSerializerExplode(
- { [qpDecorator.ParamName]: value },
- qpDecorator.DateTimeFormat
- )
+ formSerializerExplode({[qpDecorator.ParamName]: value})
);
}
}
});
- return queryStringPrefix + queryStringParts.join("&");
+ return queryStringPrefix + filterAndJoin(queryStringParts);
}
// TODO: Add support for disabling percent encoding for reserved characters
@@ -99,53 +100,21 @@ function jsonSerializer(params: Record): string {
const query: string[] = [];
Object.entries(Object.assign({}, params)).forEach(([key, value]) => {
- const values: string = Object.getOwnPropertyNames(value)
- .map((paramKey: string) => {
- const qpAnn: string = Reflect.getMetadata(
- qpMetadataKey,
- value,
- paramKey
- );
-
- const qpDecorator: ParamDecorator = parseParamDecorator(
- qpAnn,
- paramKey,
- "form",
- true
- );
-
- if (qpDecorator == null) return;
-
- return `"${paramKey}":${JSON.stringify(
- convertIfDateObjectToISOString(
- value[paramKey],
- qpDecorator.DateTimeFormat
- )
- )}`;
- })
- .join(",");
- query.push(`${key}={${encodeURIComponent(values)}}`);
+ query.push(`${key}=${encodeURIComponent(JSON.stringify(value))}`);
});
- return query.join("&");
+ return filterAndJoin(query);
}
// TODO: Add support for disabling percent encoding for reserved characters
-function formSerializer(
- params: Record,
- dateTimeFormat?: string
-): string {
+function noExplodeSerializer(params: Record, delimiter = ","): string {
const query: string[] = [];
Object.entries(Object.assign({}, params)).forEach(([key, value]) => {
- if (!value) return;
+ if (!shouldQueryParamSerialize(value)) return;
if (value !== Object(value))
- query.push(
- `${key}=${encodeAndConvertPrimitiveVal(value, dateTimeFormat)}`
- );
+ query.push(`${key}=${encodeURIComponent(valToString(value))}`);
else if (Array.isArray(value)) {
- const values: string = value
- .map((aValue) => convertIfDateObjectToISOString(aValue, dateTimeFormat))
- .join(",");
+ const values: string = value.map((aValue) => aValue).join(delimiter);
query.push(`${key}=${encodeURIComponent(values)}`);
} else {
@@ -166,39 +135,29 @@ function formSerializer(
if (qpDecorator == null) return;
- return `${paramKey},${convertIfDateObjectToISOString(
- value[paramKey],
- qpDecorator.DateTimeFormat
- )}`;
+ const key = qpDecorator.ParamName || paramKey
+ return `${key}${delimiter}${valToString(value[paramKey])}`;
})
- .join(",");
+ .join(delimiter);
query.push(`${key}=${encodeURIComponent(values)}`);
}
});
- return query.join("&");
+ return filterAndJoin(query);
}
// TODO: Add support for disabling percent encoding for reserved characters
-function formSerializerExplode(
- params: Record,
- dateTimeFormat?: string
-): string {
+function formSerializerExplode(params: Record): string {
const query: string[] = [];
Object.entries(Object.assign({}, params)).forEach(([key, value]) => {
- if (!value) return;
+ if (!shouldQueryParamSerialize(value)) return;
if (value !== Object(value))
- query.push(
- `${key}=${encodeAndConvertPrimitiveVal(value, dateTimeFormat)}`
- );
+ query.push(`${key}=${encodeURIComponent(value)}`);
else if (Array.isArray(value)) {
query.push(
- value
- .map(
- (aValue) =>
- `${key}=${encodeAndConvertPrimitiveVal(aValue, dateTimeFormat)}`
- )
- .join("&")
+ value
+ .map((aValue) => `${key}=${encodeURIComponent(valToString(aValue))}`)
+ .join("&")
);
} else
query.push(
@@ -219,39 +178,29 @@ function formSerializerExplode(
if (qpDecorator == null) return;
- return `${paramKey}=${encodeAndConvertPrimitiveVal(
- value[paramKey],
- qpDecorator.DateTimeFormat
- )}`;
+ const key = qpDecorator.ParamName || paramKey;
+ return `${key}=${encodeURIComponent(valToString(value[paramKey]))}`;
})
.join("&")
);
});
- return query.join("&");
+ return filterAndJoin(query);
}
// TODO: Add support for disabling percent encoding for reserved characters
-function deepObjectSerializer(
- params: Record,
- dateTimeFormat?: string
-): string {
+function deepObjectSerializer(params: Record): string {
const query: string[] = [];
Object.entries(Object.assign({}, params)).forEach(([key, value]) => {
- if (!value) return;
+ if (!shouldQueryParamSerialize(value)) return;
if (value !== Object(value))
- query.push(
- `${key}=${encodeAndConvertPrimitiveVal(value, dateTimeFormat)}`
- );
+ query.push(`${key}=${encodeURIComponent(value)}`);
else if (Array.isArray(value)) {
query.push(
value
.map(
([objKey, objValue]) =>
- `${key}[${objKey}]=${encodeAndConvertPrimitiveVal(
- objValue,
- dateTimeFormat
- )}`
+ `${key}[${objKey}]=${encodeURIComponent(valToString(objValue))}`
)
.join("&")
);
@@ -279,19 +228,17 @@ function deepObjectSerializer(
return value[paramKey]
.map(
(arrValue: any) =>
- `${key}[${paramKey}]=${encodeAndConvertPrimitiveVal(
- arrValue,
- qpDecorator.DateTimeFormat
+ `${key}[${paramKey}]=${encodeURIComponent(
+ valToString(arrValue)
)}`
)
.join("&");
- return `${key}[${paramKey}]=${encodeAndConvertPrimitiveVal(
- value[paramKey],
- qpDecorator.DateTimeFormat
+ return `${key}[${paramKey}]=${encodeURIComponent(
+ valToString(value[paramKey])
)}`;
})
.join("&")
);
});
- return query.join("&");
+ return filterAndJoin(query);
}
diff --git a/src/internal/utils/requestbody.ts b/src/internal/utils/requestbody.ts
index 686ee85..f7a1f55 100755
--- a/src/internal/utils/requestbody.ts
+++ b/src/internal/utils/requestbody.ts
@@ -2,15 +2,11 @@
* Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
*/
-import {
- SerializationMethodToContentType,
- convertIfDateObjectToISOString,
- isBooleanRecord,
- isNumberRecord,
- isStringRecord,
-} from "./utils";
+import {isBooleanRecord, isNumberRecord, isStringRecord, SerializationMethodToContentType, valToString,} from "./utils";
import FormData from "form-data";
+import {RFCDate} from "../../sdk/types";
+import {classToPlain} from "class-transformer";
export const requestMetadataKey = "request";
const mpFormMetadataKey = "multipart_form";
@@ -19,7 +15,7 @@ export function serializeRequestBody(
request: any,
requestFieldName: string,
serializationMethod: string
-): [object, any] {
+): [Record, any] {
if (
request !== Object(request) ||
!request.hasOwnProperty(requestFieldName)
@@ -50,11 +46,14 @@ export function serializeRequestBody(
const serializeContentType = (
contentType: string,
reqBody: any
-): [object, any] => {
- let [requestHeaders, requestBody]: [object, any] = [{}, {}];
+): [Record, any] => {
+ let [requestHeaders, requestBody]: [Record, any] = [{}, {}];
switch (contentType) {
case "multipart/form-data":
+ requestBody = encodeMultipartFormData(reqBody);
+ break;
+
case "multipart/mixed":
requestBody = encodeMultipartFormData(reqBody);
requestHeaders = (requestBody as FormData).getHeaders();
@@ -62,15 +61,20 @@ const serializeContentType = (
case "application/x-www-form-urlencoded":
[requestHeaders, requestBody] = [
- { "Content-Type": `${contentType}` },
+ {"Content-Type": `${contentType}`},
encodeFormUrlEncodeData(reqBody),
];
break;
case "application/json":
+ [requestHeaders, requestBody] = [
+ {"Content-Type": `${contentType}`},
+ classToPlain(reqBody, {exposeUnsetFields: false}),
+ ];
+ break;
case "text/json":
[requestHeaders, requestBody] = [
- { "Content-Type": `${contentType}` },
+ {"Content-Type": `${contentType}`},
reqBody,
];
break;
@@ -83,7 +87,7 @@ const serializeContentType = (
requestBody instanceof String ||
requestBody instanceof Uint8Array
)
- requestHeaders = { "Content-Type": `${contentType}` };
+ requestHeaders = {"Content-Type": `${contentType}`};
else
throw new Error(
`invalid request body type ${requestBodyType} for mediaType ${contentType}`
@@ -120,17 +124,9 @@ const encodeFormUrlEncodeData = (data: any): FormData => {
if (formDecorator.Style === "form") {
let parsed: Record;
if (formDecorator.Explode === true) {
- parsed = formExplode(
- fname,
- data[fname],
- formDecorator.DateTimeFormat
- );
+ parsed = formExplode(fname, data[fname]);
} else {
- parsed = formNotExplode(
- fname,
- data[fname],
- formDecorator.DateTimeFormat
- );
+ parsed = formNotExplode(fname, data[fname]);
}
Object.keys(parsed).forEach((key) => {
@@ -143,11 +139,7 @@ const encodeFormUrlEncodeData = (data: any): FormData => {
return formData;
};
-const formExplode = (
- fname: string,
- data: any,
- dateTimeFormat?: string
-): Record => {
+const formExplode = (fname: string, data: any): Record => {
const exploded: Record = {};
if (Array.isArray(data)) {
@@ -157,38 +149,30 @@ const formExplode = (
}
exploded[fname].push(value);
});
- } else {
- if (typeof data === "object") {
- if (data instanceof Date) {
- if (!exploded[fname]) {
- exploded[fname] = [];
- }
- exploded[fname].push(
- convertIfDateObjectToISOString(data, dateTimeFormat)
- );
- return exploded;
+ } else if (typeof data === "object") {
+ if (data instanceof Date || data instanceof RFCDate) {
+ if (!exploded[fname]) {
+ exploded[fname] = [];
}
+ exploded[fname].push(valToString(data));
+ } else {
Object.keys(data).forEach((key) => {
if (!exploded[key]) {
exploded[key] = [];
}
exploded[key].push(data[key]);
});
- } else {
- if (!exploded[fname]) {
- exploded[fname] = [];
- }
- exploded[fname].push(data.toString());
}
+ } else {
+ if (!exploded[fname]) {
+ exploded[fname] = [];
+ }
+ exploded[fname].push(valToString(data));
}
return exploded;
};
-const formNotExplode = (
- fname: string,
- data: any,
- dateTimeFormat?: string
-): Record => {
+const formNotExplode = (fname: string, data: any): Record => {
const notExploded: Record = {};
if (Array.isArray(data)) {
@@ -196,29 +180,25 @@ const formNotExplode = (
notExploded[fname] = [];
}
notExploded[fname].push(data.map((item) => item.toString()).join(","));
- } else {
- if (typeof data === "object") {
- if (data instanceof Date) {
- if (!notExploded[fname]) {
- notExploded[fname] = [];
- }
- notExploded[fname].push(
- convertIfDateObjectToISOString(data, dateTimeFormat)
- );
- return notExploded;
+ } else if (typeof data === "object") {
+ if (data instanceof Date || data instanceof RFCDate) {
+ if (!notExploded[fname]) {
+ notExploded[fname] = [];
}
+ notExploded[fname].push(valToString(data));
+ } else {
Object.keys(data).forEach((key) => {
if (!notExploded[key]) {
notExploded[key] = [];
}
notExploded[fname].push(`${key}=${data[key]}`);
});
- } else {
- if (!notExploded[fname]) {
- notExploded[fname] = [];
- }
- notExploded[fname].push(data.toString());
}
+ } else {
+ if (!notExploded[fname]) {
+ notExploded[fname] = [];
+ }
+ notExploded[fname].push(valToString(data));
}
return notExploded;
};
@@ -245,8 +225,6 @@ function parseFormDecorator(formAnn: string): FormDecorator {
case "json":
formDecorator.JSON = formVal === "true";
break;
- case "dateTimeFormat":
- formDecorator.DateTimeFormat = formVal;
}
});
@@ -258,7 +236,6 @@ class FormDecorator {
Style?: string;
Explode?: boolean;
JSON?: boolean;
- DateTimeFormat?: string;
constructor(
Name?: string,
@@ -292,38 +269,14 @@ function encodeMultipartFormData(form: any): FormData {
if (mpFormDecorator.File)
return encodeMultipartFormDataFile(formData, form[fname]);
else if (mpFormDecorator.JSON) {
- formData.append(
- mpFormDecorator.Name,
- JSON.stringify(form[fname], (key, value) => {
- return convertIfDateObjectToISOString(
- value,
- mpFormDecorator.DateTimeFormat
- );
- })
- );
+ formData.append(mpFormDecorator.Name, JSON.stringify(form[fname]));
} else {
if (Array.isArray(form[fname])) {
form[fname].forEach((val: any) => {
- formData.append(
- mpFormDecorator.Name + "[]",
- String(
- convertIfDateObjectToISOString(
- val,
- mpFormDecorator.DateTimeFormat
- )
- )
- );
+ formData.append(mpFormDecorator.Name + "[]", valToString(val));
});
} else {
- formData.append(
- mpFormDecorator.Name,
- String(
- convertIfDateObjectToISOString(
- form[fname],
- mpFormDecorator.DateTimeFormat
- )
- )
- );
+ formData.append(mpFormDecorator.Name, valToString(form[fname]));
}
}
});
@@ -362,7 +315,7 @@ function encodeMultipartFormDataFile(formData: FormData, file: any): FormData {
if (mpFormDecoratorName === "" || fileName === "" || content == null) {
throw new Error("invalid multipart/form-data file");
}
- formData.append("file", Buffer.from(content), fileName);
+ formData.append(mpFormDecoratorName, Buffer.from(content), fileName);
return formData;
}
@@ -391,8 +344,6 @@ function parseMultipartFormDecorator(
case "json":
mpFormDecorator.JSON = mpFormVal == "true";
break;
- case "dateTimeFormat":
- mpFormDecorator.DateTimeFormat = mpFormVal;
}
});
@@ -404,7 +355,6 @@ class MultipartFormDecorator {
Content: boolean;
JSON: boolean;
Name: string;
- DateTimeFormat?: string;
constructor(File: boolean, Content: boolean, JSON: boolean, Name: string) {
this.File = File;
diff --git a/src/internal/utils/retries.ts b/src/internal/utils/retries.ts
index 6c77b95..8fea21d 100755
--- a/src/internal/utils/retries.ts
+++ b/src/internal/utils/retries.ts
@@ -24,12 +24,17 @@ export class BackoffStrategy {
}
export class RetryConfig {
- strategy: string;
+ strategy: "backoff" | "none";
backoff?: BackoffStrategy;
retryConnectionErrors: boolean;
- constructor(strategy: string, retryConnectionErrors = true) {
+ constructor(
+ strategy: "backoff" | "none",
+ backoff?: BackoffStrategy,
+ retryConnectionErrors = true
+ ) {
this.strategy = strategy;
+ this.backoff = backoff;
this.retryConnectionErrors = retryConnectionErrors;
}
}
@@ -50,6 +55,8 @@ class PermanentError extends Error {
constructor(inner: unknown) {
super("Permanent error");
this.inner = inner;
+
+ Object.setPrototypeOf(this, PermanentError.prototype);
}
}
@@ -59,6 +66,8 @@ class TemporaryError extends Error {
constructor(res: AxiosResponse) {
super("Temporary error");
this.res = res;
+
+ Object.setPrototypeOf(this, TemporaryError.prototype);
}
}
diff --git a/src/internal/utils/security.ts b/src/internal/utils/security.ts
index b109f9d..5071b33 100755
--- a/src/internal/utils/security.ts
+++ b/src/internal/utils/security.ts
@@ -2,15 +2,17 @@
* Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
*/
-import { AxiosInstance } from "axios";
-
const securityMetadataKey = "security";
-export function createSecurityClient(
- client: AxiosInstance,
+export type SecurityProperties = {
+ params: Record,
+ headers: Record,
+}
+
+export function parseSecurityProperties(
security: any
-): AxiosInstance {
- return parseSecurityClass(client, security);
+): SecurityProperties {
+ return parseSecurityClass(security);
}
function parseSecurityDecorator(securityAnn: string): SecurityDecorator {
@@ -51,10 +53,13 @@ function parseSecurityDecorator(securityAnn: string): SecurityDecorator {
}
function parseSecurityClass(
- client: AxiosInstance,
security: any
-): AxiosInstance {
+): SecurityProperties {
const fieldNames: string[] = Object.getOwnPropertyNames(security);
+ const properties: SecurityProperties = {
+ params: {},
+ headers: {},
+ }
fieldNames.forEach((fname) => {
const securityAnn: string = Reflect.getMetadata(
securityMetadataKey,
@@ -69,23 +74,23 @@ function parseSecurityClass(
const value = security[fname];
if (securityDecorator.Option) {
- return parseSecurityOption(client, value);
+ return parseSecurityOption(properties, value);
} else if (securityDecorator.Scheme) {
if (securityDecorator.SubType === "basic" && value !== Object(value)) {
- return parseSecurityScheme(client, securityDecorator, security);
+ return parseSecurityScheme(properties, securityDecorator, security);
} else {
- client = parseSecurityScheme(client, securityDecorator, value);
+ return parseSecurityScheme(properties, securityDecorator, value);
}
}
});
- return client;
+ return properties;
}
function parseSecurityOption(
- client: AxiosInstance,
+ properties: SecurityProperties,
optionType: any
-): AxiosInstance {
+): void {
const fieldNames: string[] = Object.getOwnPropertyNames(optionType);
fieldNames.forEach((fname) => {
const securityAnn: string = Reflect.getMetadata(
@@ -97,23 +102,21 @@ function parseSecurityOption(
const securityDecorator: SecurityDecorator =
parseSecurityDecorator(securityAnn);
if (securityDecorator == null || !securityDecorator.Scheme) return;
- return parseSecurityScheme(client, securityDecorator, optionType[fname]);
+ return parseSecurityScheme(properties, securityDecorator, optionType[fname]);
});
-
- return client;
}
function parseSecurityScheme(
- client: AxiosInstance,
+ properties: SecurityProperties,
schemeDecorator: SecurityDecorator,
scheme: any
-): AxiosInstance {
+): void {
if (scheme === Object(scheme)) {
if (
schemeDecorator.Type === "http" &&
schemeDecorator.SubType === "basic"
) {
- return parseBasicAuthScheme(client, scheme);
+ return parseBasicAuthScheme(properties, scheme);
}
const fieldNames: string[] = Object.getOwnPropertyNames(scheme);
@@ -128,46 +131,44 @@ function parseSecurityScheme(
parseSecurityDecorator(securityAnn);
if (securityDecorator == null || securityDecorator.Name === "") return;
- client = parseSecuritySchemeValue(
- client,
+ return parseSecuritySchemeValue(
+ properties,
schemeDecorator,
securityDecorator,
scheme[fname]
);
});
} else {
- client = parseSecuritySchemeValue(
- client,
+ return parseSecuritySchemeValue(
+ properties,
schemeDecorator,
schemeDecorator,
scheme
);
}
-
- return client;
}
function parseSecuritySchemeValue(
- client: AxiosInstance,
+ properties: SecurityProperties,
schemeDecorator: SecurityDecorator,
securityDecorator: SecurityDecorator,
value: any
-): AxiosInstance {
+): void {
switch (schemeDecorator.Type) {
case "apiKey":
switch (schemeDecorator.SubType) {
case "header":
- client.defaults.headers.common[securityDecorator.Name] = value;
+ properties.headers[securityDecorator.Name] = value;
break;
case "query":
- client.defaults.params[securityDecorator.Name] = value;
+ properties.params[securityDecorator.Name] = value;
break;
case "cookie": {
const securityDecoratorName: string = securityDecorator.Name;
const val: string = value;
- client.defaults.headers.common[
+ properties.headers[
"Cookie"
- ] = `${securityDecoratorName}=${val}`;
+ ] = `${securityDecoratorName}=${val}`;
break;
}
default:
@@ -175,17 +176,17 @@ function parseSecuritySchemeValue(
}
break;
case "openIdConnect":
- client.defaults.headers.common[securityDecorator.Name] = value;
+ properties.headers[securityDecorator.Name] = value;
break;
case "oauth2":
- client.defaults.headers.common[securityDecorator.Name] = value;
+ properties.headers[securityDecorator.Name] = value.toLowerCase().startsWith("bearer ") ? value : `Bearer ${value}`;
break;
case "http":
switch (schemeDecorator.SubType) {
case "basic":
break;
case "bearer":
- client.defaults.headers.common[securityDecorator.Name] = value;
+ properties.headers[securityDecorator.Name] = value.toLowerCase().startsWith("bearer ") ? value : `Bearer ${value}`;
break;
default:
throw new Error("not supported");
@@ -194,14 +195,12 @@ function parseSecuritySchemeValue(
default:
throw new Error("not supported");
}
-
- return client;
}
function parseBasicAuthScheme(
- client: AxiosInstance,
+ properties: SecurityProperties,
scheme: any
-): AxiosInstance {
+): void {
let username,
password = "";
@@ -227,11 +226,7 @@ function parseBasicAuthScheme(
}
});
- client.defaults.headers.common["Authorization"] = `Basic ${Buffer.from(
- `${username}:${password}`
- ).toString("base64")}`;
-
- return client;
+ properties.headers["Authorization"] = `Basic ${Buffer.from(`${username}:${password}`).toString('base64')}`;
}
class SecurityDecorator {
diff --git a/src/internal/utils/utils.ts b/src/internal/utils/utils.ts
index 580c968..03daf88 100755
--- a/src/internal/utils/utils.ts
+++ b/src/internal/utils/utils.ts
@@ -4,10 +4,11 @@
import "reflect-metadata";
-import { getSimplePathParams, ppMetadataKey } from "./pathparams";
+import {getSimplePathParams, ppMetadataKey} from "./pathparams";
-import { plainToInstance } from "class-transformer";
-import { requestMetadataKey } from "./requestbody";
+import {plainToInstance} from "class-transformer";
+import {RFCDate} from "../../sdk/types";
+import {requestMetadataKey} from "./requestbody";
export const SerializationMethodToContentType: Record = {
json: "application/json",
@@ -25,7 +26,7 @@ export interface PropInfo {
}
function isSpeakeasyBase(type: any): boolean {
- return type && Object.getPrototypeOf(type)?.name == "SpeakeasyBase";
+ return type && Object.getPrototypeOf(type)?.name == SpeakeasyBase.name;
}
function handleArray(value: any, elemType: any, elemDepth: number): any {
@@ -80,7 +81,7 @@ export class SpeakeasyBase {
for (const prop of props) {
if (payload && payload.hasOwnProperty(prop.key)) {
const value = payload[prop.key];
- if (isSpeakeasyBase(prop.type)) {
+ if (isSpeakeasyBase(prop.type) && value != null) {
(this as any)[prop.key] = new prop.type(value);
} else if (
prop.type.name == "Array" &&
@@ -100,6 +101,12 @@ export class SpeakeasyBase {
prop.elemType,
prop.elemDepth
);
+ } else if (prop.type.name == "RFCDate") {
+ if (value instanceof Date) {
+ (this as any)[prop.key] = new RFCDate(value);
+ } else {
+ (this as any)[prop.key] = value;
+ }
} else {
(this as any)[prop.key] = value;
}
@@ -114,19 +121,16 @@ export class ParamDecorator {
Explode: boolean;
ParamName: string;
Serialization?: string;
- DateTimeFormat?: string;
constructor(
Style: string,
Explode: boolean,
ParamName: string,
- Serialization?: string,
- DateTimeFormat?: string
+ Serialization?: string
) {
this.Style = Style;
this.Explode = Explode;
this.ParamName = ParamName;
this.Serialization = Serialization;
- this.DateTimeFormat = DateTimeFormat;
}
}
@@ -172,10 +176,12 @@ export function templateUrl(
params: Record
): string {
let res: string = stringWithParams;
- Object.entries(params).forEach(([key, value]) => {
- const match: string = "{" + key + "}";
- res = res.replaceAll(match, value);
- });
+ if(params) {
+ Object.entries(params).forEach(([key, value]) => {
+ const match: string = "{" + key + "}";
+ res = res.replaceAll(match, value);
+ });
+ }
return res;
}
@@ -216,17 +222,26 @@ export function generateURL(
let value = pathParams[fname];
value = populateFromGlobals(value, fname, "pathParam", globals);
- switch (ppDecorator.Style) {
- case "simple": {
- const simpleParams: Map = getSimplePathParams(
- ppDecorator.ParamName,
- value,
- ppDecorator.Explode,
- ppDecorator.DateTimeFormat
- );
- simpleParams.forEach((value, key) => {
- parsedParameters[key] = value;
- });
+ if (ppDecorator.Serialization) {
+ switch (ppDecorator.Serialization) {
+ case "json":
+ parsedParameters[ppDecorator.ParamName] = encodeURIComponent(
+ JSON.stringify(value)
+ );
+ break;
+ }
+ } else {
+ switch (ppDecorator.Style) {
+ case "simple": {
+ const simpleParams: Map = getSimplePathParams(
+ ppDecorator.ParamName,
+ value,
+ ppDecorator.Explode
+ );
+ simpleParams.forEach((value, key) => {
+ parsedParameters[key] = value;
+ });
+ }
}
}
});
@@ -262,8 +277,6 @@ export function parseParamDecorator(
case "serialization":
decorator.Serialization = paramVal;
break;
- case "dateTimeFormat":
- decorator.DateTimeFormat = paramVal;
}
});
return decorator;
@@ -307,45 +320,7 @@ export function isEmpty(value: any): boolean {
return res || value == null;
}
-// If value is Date type, serialize as ISO string since Date constructor creates from system clock
-export function convertIfDateObjectToISOString(
- value: any,
- dateTimeFormat?: string
-): any {
- const dtFormat = dateTimeFormat ?? "YYYY-MM-DDThh:mm:ss.sssZ";
- if (value instanceof Date) {
- if (dtFormat === "YYYY-MM-DD") {
- const dateRegex = /^(\d{4})-(\d{2})-(\d{2})/;
-
- const matches = value.toISOString().match(dateRegex);
- if (matches == null) {
- throw new Error("Date format is not valid");
- }
-
- const [, year, month, day]: RegExpMatchArray = matches;
- return `${year}-${month}-${day}`;
- }
- if (dtFormat === "YYYY-MM-DDThh:mm:ss.sssZ") {
- return value.toISOString();
- }
- }
- return value;
-}
-
-export function encodeAndConvertPrimitiveVal(
- value: any,
- dateTimeFormat?: string
-): any {
- return encodeURIComponent(
- convertIfDateObjectToISOString(value, dateTimeFormat)
- );
-}
-
-export function deserializeJSONResponse(
- value: T,
- klass?: any,
- elemDepth = 0
-): any {
+export function objectToClass(value: T, klass?: any, elemDepth = 0): any {
if (value !== Object(value)) {
return value;
}
@@ -353,27 +328,25 @@ export function deserializeJSONResponse(
if (elemDepth === 0 && klass != null) {
return plainToInstance(klass, value, {
excludeExtraneousValues: true,
+ exposeUnsetFields: false,
}) as typeof klass;
}
if (Array.isArray(value)) {
- return value.map((v) => deserializeJSONResponse(v, klass, elemDepth - 1));
+ return value.map((v) => objectToClass(v, klass, elemDepth - 1));
}
if (typeof value === "object" && value != null) {
const copiedRecord: Record = {};
for (const key in value) {
- copiedRecord[key] = deserializeJSONResponse(
- value[key],
- klass,
- elemDepth - 1
- );
+ copiedRecord[key] = objectToClass(value[key], klass, elemDepth - 1);
}
return copiedRecord;
}
return plainToInstance(klass, value, {
excludeExtraneousValues: true,
+ exposeUnsetFields: false,
}) as typeof klass;
}
@@ -417,3 +390,15 @@ export function populateFromGlobals(
return value;
}
+
+export function valToString(value: any): string {
+ if (value instanceof Date) {
+ return value.toISOString();
+ }
+
+ return value.toString();
+}
+
+export function shouldQueryParamSerialize(value: any): boolean {
+ return !(value === undefined || value === null || value === "")
+}
diff --git a/src/sdk/audio.ts b/src/sdk/audio.ts
new file mode 100755
index 0000000..5333ff8
--- /dev/null
+++ b/src/sdk/audio.ts
@@ -0,0 +1,199 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import * as utils from "../internal/utils";
+import * as errors from "./models/errors";
+import * as operations from "./models/operations";
+import * as shared from "./models/shared";
+import { SDKConfiguration } from "./sdk";
+import { AxiosInstance, AxiosRequestConfig, AxiosResponse, RawAxiosRequestHeaders } from "axios";
+
+/**
+ * Learn how to turn audio into text.
+ */
+
+export class Audio {
+ private sdkConfiguration: SDKConfiguration;
+
+ constructor(sdkConfig: SDKConfiguration) {
+ this.sdkConfiguration = sdkConfig;
+ }
+
+ /**
+ * Transcribes audio into the input language.
+ */
+ async createTranscription(
+ req: shared.CreateTranscriptionRequest,
+ config?: AxiosRequestConfig
+ ): Promise {
+ if (!(req instanceof utils.SpeakeasyBase)) {
+ req = new shared.CreateTranscriptionRequest(req);
+ }
+
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = baseURL.replace(/\/$/, "") + "/audio/transcriptions";
+
+ let [reqBodyHeaders, reqBody]: [object, any] = [{}, null];
+
+ try {
+ [reqBodyHeaders, reqBody] = utils.serializeRequestBody(req, "request", "multipart");
+ } catch (e: unknown) {
+ if (e instanceof Error) {
+ throw new Error(`Error serializing request body, cause: ${e.message}`);
+ }
+ }
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = {
+ ...reqBodyHeaders,
+ ...config?.headers,
+ ...properties.headers,
+ };
+ if (reqBody == null) throw new Error("request body is required");
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url,
+ method: "post",
+ headers: headers,
+ responseType: "arraybuffer",
+ data: reqBody,
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.CreateTranscriptionResponse =
+ new operations.CreateTranscriptionResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.createTranscriptionResponse = utils.objectToClass(
+ JSON.parse(decodedRes),
+ shared.CreateTranscriptionResponse
+ );
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+
+ /**
+ * Translates audio into English.
+ */
+ async createTranslation(
+ req: shared.CreateTranslationRequest,
+ config?: AxiosRequestConfig
+ ): Promise {
+ if (!(req instanceof utils.SpeakeasyBase)) {
+ req = new shared.CreateTranslationRequest(req);
+ }
+
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = baseURL.replace(/\/$/, "") + "/audio/translations";
+
+ let [reqBodyHeaders, reqBody]: [object, any] = [{}, null];
+
+ try {
+ [reqBodyHeaders, reqBody] = utils.serializeRequestBody(req, "request", "multipart");
+ } catch (e: unknown) {
+ if (e instanceof Error) {
+ throw new Error(`Error serializing request body, cause: ${e.message}`);
+ }
+ }
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = {
+ ...reqBodyHeaders,
+ ...config?.headers,
+ ...properties.headers,
+ };
+ if (reqBody == null) throw new Error("request body is required");
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url,
+ method: "post",
+ headers: headers,
+ responseType: "arraybuffer",
+ data: reqBody,
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.CreateTranslationResponse = new operations.CreateTranslationResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.createTranslationResponse = utils.objectToClass(
+ JSON.parse(decodedRes),
+ shared.CreateTranslationResponse
+ );
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+}
diff --git a/src/sdk/chat.ts b/src/sdk/chat.ts
new file mode 100755
index 0000000..4e8fc0c
--- /dev/null
+++ b/src/sdk/chat.ts
@@ -0,0 +1,111 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import * as utils from "../internal/utils";
+import * as errors from "./models/errors";
+import * as operations from "./models/operations";
+import * as shared from "./models/shared";
+import { SDKConfiguration } from "./sdk";
+import { AxiosInstance, AxiosRequestConfig, AxiosResponse, RawAxiosRequestHeaders } from "axios";
+
+/**
+ * Given a list of messages comprising a conversation, the model will return a response.
+ */
+
+export class Chat {
+ private sdkConfiguration: SDKConfiguration;
+
+ constructor(sdkConfig: SDKConfiguration) {
+ this.sdkConfiguration = sdkConfig;
+ }
+
+ /**
+ * Creates a model response for the given chat conversation.
+ */
+ async createChatCompletion(
+ req: shared.CreateChatCompletionRequest,
+ config?: AxiosRequestConfig
+ ): Promise {
+ if (!(req instanceof utils.SpeakeasyBase)) {
+ req = new shared.CreateChatCompletionRequest(req);
+ }
+
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = baseURL.replace(/\/$/, "") + "/chat/completions";
+
+ let [reqBodyHeaders, reqBody]: [object, any] = [{}, null];
+
+ try {
+ [reqBodyHeaders, reqBody] = utils.serializeRequestBody(req, "request", "json");
+ } catch (e: unknown) {
+ if (e instanceof Error) {
+ throw new Error(`Error serializing request body, cause: ${e.message}`);
+ }
+ }
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = {
+ ...reqBodyHeaders,
+ ...config?.headers,
+ ...properties.headers,
+ };
+ if (reqBody == null) throw new Error("request body is required");
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url,
+ method: "post",
+ headers: headers,
+ responseType: "arraybuffer",
+ data: reqBody,
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.CreateChatCompletionResponse =
+ new operations.CreateChatCompletionResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.createChatCompletionResponse = utils.objectToClass(
+ JSON.parse(decodedRes),
+ shared.CreateChatCompletionResponse
+ );
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+}
diff --git a/src/sdk/completions.ts b/src/sdk/completions.ts
new file mode 100755
index 0000000..821b113
--- /dev/null
+++ b/src/sdk/completions.ts
@@ -0,0 +1,110 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import * as utils from "../internal/utils";
+import * as errors from "./models/errors";
+import * as operations from "./models/operations";
+import * as shared from "./models/shared";
+import { SDKConfiguration } from "./sdk";
+import { AxiosInstance, AxiosRequestConfig, AxiosResponse, RawAxiosRequestHeaders } from "axios";
+
+/**
+ * Given a prompt, the model will return one or more predicted completions, and can also return the probabilities of alternative tokens at each position.
+ */
+
+export class Completions {
+ private sdkConfiguration: SDKConfiguration;
+
+ constructor(sdkConfig: SDKConfiguration) {
+ this.sdkConfiguration = sdkConfig;
+ }
+
+ /**
+ * Creates a completion for the provided prompt and parameters.
+ */
+ async createCompletion(
+ req: shared.CreateCompletionRequest,
+ config?: AxiosRequestConfig
+ ): Promise {
+ if (!(req instanceof utils.SpeakeasyBase)) {
+ req = new shared.CreateCompletionRequest(req);
+ }
+
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = baseURL.replace(/\/$/, "") + "/completions";
+
+ let [reqBodyHeaders, reqBody]: [object, any] = [{}, null];
+
+ try {
+ [reqBodyHeaders, reqBody] = utils.serializeRequestBody(req, "request", "json");
+ } catch (e: unknown) {
+ if (e instanceof Error) {
+ throw new Error(`Error serializing request body, cause: ${e.message}`);
+ }
+ }
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = {
+ ...reqBodyHeaders,
+ ...config?.headers,
+ ...properties.headers,
+ };
+ if (reqBody == null) throw new Error("request body is required");
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url,
+ method: "post",
+ headers: headers,
+ responseType: "arraybuffer",
+ data: reqBody,
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.CreateCompletionResponse = new operations.CreateCompletionResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.createCompletionResponse = utils.objectToClass(
+ JSON.parse(decodedRes),
+ shared.CreateCompletionResponse
+ );
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+}
diff --git a/src/sdk/edits.ts b/src/sdk/edits.ts
new file mode 100755
index 0000000..e4fdade
--- /dev/null
+++ b/src/sdk/edits.ts
@@ -0,0 +1,112 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import * as utils from "../internal/utils";
+import * as errors from "./models/errors";
+import * as operations from "./models/operations";
+import * as shared from "./models/shared";
+import { SDKConfiguration } from "./sdk";
+import { AxiosInstance, AxiosRequestConfig, AxiosResponse, RawAxiosRequestHeaders } from "axios";
+
+/**
+ * Given a prompt and an instruction, the model will return an edited version of the prompt.
+ */
+
+export class Edits {
+ private sdkConfiguration: SDKConfiguration;
+
+ constructor(sdkConfig: SDKConfiguration) {
+ this.sdkConfiguration = sdkConfig;
+ }
+
+ /**
+ * Creates a new edit for the provided input, instruction, and parameters.
+ *
+ * @deprecated method: This will be removed in a future release, please migrate away from it as soon as possible.
+ */
+ async createEdit(
+ req: shared.CreateEditRequest,
+ config?: AxiosRequestConfig
+ ): Promise {
+ if (!(req instanceof utils.SpeakeasyBase)) {
+ req = new shared.CreateEditRequest(req);
+ }
+
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = baseURL.replace(/\/$/, "") + "/edits";
+
+ let [reqBodyHeaders, reqBody]: [object, any] = [{}, null];
+
+ try {
+ [reqBodyHeaders, reqBody] = utils.serializeRequestBody(req, "request", "json");
+ } catch (e: unknown) {
+ if (e instanceof Error) {
+ throw new Error(`Error serializing request body, cause: ${e.message}`);
+ }
+ }
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = {
+ ...reqBodyHeaders,
+ ...config?.headers,
+ ...properties.headers,
+ };
+ if (reqBody == null) throw new Error("request body is required");
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url,
+ method: "post",
+ headers: headers,
+ responseType: "arraybuffer",
+ data: reqBody,
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.CreateEditResponse = new operations.CreateEditResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.createEditResponse = utils.objectToClass(
+ JSON.parse(decodedRes),
+ shared.CreateEditResponse
+ );
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+}
diff --git a/src/sdk/embeddings.ts b/src/sdk/embeddings.ts
new file mode 100755
index 0000000..254105a
--- /dev/null
+++ b/src/sdk/embeddings.ts
@@ -0,0 +1,110 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import * as utils from "../internal/utils";
+import * as errors from "./models/errors";
+import * as operations from "./models/operations";
+import * as shared from "./models/shared";
+import { SDKConfiguration } from "./sdk";
+import { AxiosInstance, AxiosRequestConfig, AxiosResponse, RawAxiosRequestHeaders } from "axios";
+
+/**
+ * Get a vector representation of a given input that can be easily consumed by machine learning models and algorithms.
+ */
+
+export class Embeddings {
+ private sdkConfiguration: SDKConfiguration;
+
+ constructor(sdkConfig: SDKConfiguration) {
+ this.sdkConfiguration = sdkConfig;
+ }
+
+ /**
+ * Creates an embedding vector representing the input text.
+ */
+ async createEmbedding(
+ req: shared.CreateEmbeddingRequest,
+ config?: AxiosRequestConfig
+ ): Promise {
+ if (!(req instanceof utils.SpeakeasyBase)) {
+ req = new shared.CreateEmbeddingRequest(req);
+ }
+
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = baseURL.replace(/\/$/, "") + "/embeddings";
+
+ let [reqBodyHeaders, reqBody]: [object, any] = [{}, null];
+
+ try {
+ [reqBodyHeaders, reqBody] = utils.serializeRequestBody(req, "request", "json");
+ } catch (e: unknown) {
+ if (e instanceof Error) {
+ throw new Error(`Error serializing request body, cause: ${e.message}`);
+ }
+ }
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = {
+ ...reqBodyHeaders,
+ ...config?.headers,
+ ...properties.headers,
+ };
+ if (reqBody == null) throw new Error("request body is required");
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url,
+ method: "post",
+ headers: headers,
+ responseType: "arraybuffer",
+ data: reqBody,
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.CreateEmbeddingResponse = new operations.CreateEmbeddingResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.createEmbeddingResponse = utils.objectToClass(
+ JSON.parse(decodedRes),
+ shared.CreateEmbeddingResponse
+ );
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+}
diff --git a/src/sdk/files.ts b/src/sdk/files.ts
new file mode 100755
index 0000000..6bdbc10
--- /dev/null
+++ b/src/sdk/files.ts
@@ -0,0 +1,383 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import * as utils from "../internal/utils";
+import * as errors from "./models/errors";
+import * as operations from "./models/operations";
+import * as shared from "./models/shared";
+import { SDKConfiguration } from "./sdk";
+import { AxiosInstance, AxiosRequestConfig, AxiosResponse, RawAxiosRequestHeaders } from "axios";
+
+/**
+ * Files are used to upload documents that can be used with features like fine-tuning.
+ */
+
+export class Files {
+ private sdkConfiguration: SDKConfiguration;
+
+ constructor(sdkConfig: SDKConfiguration) {
+ this.sdkConfiguration = sdkConfig;
+ }
+
+ /**
+ * Upload a file that can be used across various endpoints/features. Currently, the size of all the files uploaded by one organization can be up to 1 GB. Please [contact us](https://help.openai.com/) if you need to increase the storage limit.
+ *
+ */
+ async createFile(
+ req: shared.CreateFileRequest,
+ config?: AxiosRequestConfig
+ ): Promise {
+ if (!(req instanceof utils.SpeakeasyBase)) {
+ req = new shared.CreateFileRequest(req);
+ }
+
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = baseURL.replace(/\/$/, "") + "/files";
+
+ let [reqBodyHeaders, reqBody]: [object, any] = [{}, null];
+
+ try {
+ [reqBodyHeaders, reqBody] = utils.serializeRequestBody(req, "request", "multipart");
+ } catch (e: unknown) {
+ if (e instanceof Error) {
+ throw new Error(`Error serializing request body, cause: ${e.message}`);
+ }
+ }
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = {
+ ...reqBodyHeaders,
+ ...config?.headers,
+ ...properties.headers,
+ };
+ if (reqBody == null) throw new Error("request body is required");
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url,
+ method: "post",
+ headers: headers,
+ responseType: "arraybuffer",
+ data: reqBody,
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.CreateFileResponse = new operations.CreateFileResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.openAIFile = utils.objectToClass(JSON.parse(decodedRes), shared.OpenAIFile);
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+
+ /**
+ * Delete a file.
+ */
+ async deleteFile(
+ req: operations.DeleteFileRequest,
+ config?: AxiosRequestConfig
+ ): Promise {
+ if (!(req instanceof utils.SpeakeasyBase)) {
+ req = new operations.DeleteFileRequest(req);
+ }
+
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = utils.generateURL(baseURL, "/files/{file_id}", req);
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = { ...config?.headers, ...properties.headers };
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url,
+ method: "delete",
+ headers: headers,
+ responseType: "arraybuffer",
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.DeleteFileResponse = new operations.DeleteFileResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.deleteFileResponse = utils.objectToClass(
+ JSON.parse(decodedRes),
+ shared.DeleteFileResponse
+ );
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+
+ /**
+ * Returns the contents of the specified file.
+ */
+ async downloadFile(
+ req: operations.DownloadFileRequest,
+ config?: AxiosRequestConfig
+ ): Promise {
+ if (!(req instanceof utils.SpeakeasyBase)) {
+ req = new operations.DownloadFileRequest(req);
+ }
+
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = utils.generateURL(baseURL, "/files/{file_id}/content", req);
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = { ...config?.headers, ...properties.headers };
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url,
+ method: "get",
+ headers: headers,
+ responseType: "arraybuffer",
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.DownloadFileResponse = new operations.DownloadFileResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.downloadFile200ApplicationJSONString = decodedRes;
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+
+ /**
+ * Returns a list of files that belong to the user's organization.
+ */
+ async listFiles(config?: AxiosRequestConfig): Promise {
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = baseURL.replace(/\/$/, "") + "/files";
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = { ...config?.headers, ...properties.headers };
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url,
+ method: "get",
+ headers: headers,
+ responseType: "arraybuffer",
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.ListFilesResponse = new operations.ListFilesResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.listFilesResponse = utils.objectToClass(
+ JSON.parse(decodedRes),
+ shared.ListFilesResponse
+ );
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+
+ /**
+ * Returns information about a specific file.
+ */
+ async retrieveFile(
+ req: operations.RetrieveFileRequest,
+ config?: AxiosRequestConfig
+ ): Promise {
+ if (!(req instanceof utils.SpeakeasyBase)) {
+ req = new operations.RetrieveFileRequest(req);
+ }
+
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = utils.generateURL(baseURL, "/files/{file_id}", req);
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = { ...config?.headers, ...properties.headers };
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url,
+ method: "get",
+ headers: headers,
+ responseType: "arraybuffer",
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.RetrieveFileResponse = new operations.RetrieveFileResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.openAIFile = utils.objectToClass(JSON.parse(decodedRes), shared.OpenAIFile);
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+}
diff --git a/src/sdk/finetunes.ts b/src/sdk/finetunes.ts
new file mode 100755
index 0000000..22bcb44
--- /dev/null
+++ b/src/sdk/finetunes.ts
@@ -0,0 +1,405 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import * as utils from "../internal/utils";
+import * as errors from "./models/errors";
+import * as operations from "./models/operations";
+import * as shared from "./models/shared";
+import { SDKConfiguration } from "./sdk";
+import { AxiosInstance, AxiosRequestConfig, AxiosResponse, RawAxiosRequestHeaders } from "axios";
+
+/**
+ * Manage legacy fine-tuning jobs to tailor a model to your specific training data.
+ */
+
+export class FineTunes {
+ private sdkConfiguration: SDKConfiguration;
+
+ constructor(sdkConfig: SDKConfiguration) {
+ this.sdkConfiguration = sdkConfig;
+ }
+
+ /**
+ * Immediately cancel a fine-tune job.
+ *
+ *
+ * @deprecated method: This will be removed in a future release, please migrate away from it as soon as possible.
+ */
+ async cancelFineTune(
+ req: operations.CancelFineTuneRequest,
+ config?: AxiosRequestConfig
+ ): Promise {
+ if (!(req instanceof utils.SpeakeasyBase)) {
+ req = new operations.CancelFineTuneRequest(req);
+ }
+
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = utils.generateURL(baseURL, "/fine-tunes/{fine_tune_id}/cancel", req);
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = { ...config?.headers, ...properties.headers };
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url,
+ method: "post",
+ headers: headers,
+ responseType: "arraybuffer",
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.CancelFineTuneResponse = new operations.CancelFineTuneResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.fineTune = utils.objectToClass(JSON.parse(decodedRes), shared.FineTune);
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+
+ /**
+ * Creates a job that fine-tunes a specified model from a given dataset.
+ *
+ * Response includes details of the enqueued job including job status and the name of the fine-tuned models once complete.
+ *
+ * [Learn more about fine-tuning](/docs/guides/legacy-fine-tuning)
+ *
+ *
+ * @deprecated method: This will be removed in a future release, please migrate away from it as soon as possible.
+ */
+ async createFineTune(
+ req: shared.CreateFineTuneRequest,
+ config?: AxiosRequestConfig
+ ): Promise {
+ if (!(req instanceof utils.SpeakeasyBase)) {
+ req = new shared.CreateFineTuneRequest(req);
+ }
+
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = baseURL.replace(/\/$/, "") + "/fine-tunes";
+
+ let [reqBodyHeaders, reqBody]: [object, any] = [{}, null];
+
+ try {
+ [reqBodyHeaders, reqBody] = utils.serializeRequestBody(req, "request", "json");
+ } catch (e: unknown) {
+ if (e instanceof Error) {
+ throw new Error(`Error serializing request body, cause: ${e.message}`);
+ }
+ }
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = {
+ ...reqBodyHeaders,
+ ...config?.headers,
+ ...properties.headers,
+ };
+ if (reqBody == null) throw new Error("request body is required");
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url,
+ method: "post",
+ headers: headers,
+ responseType: "arraybuffer",
+ data: reqBody,
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.CreateFineTuneResponse = new operations.CreateFineTuneResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.fineTune = utils.objectToClass(JSON.parse(decodedRes), shared.FineTune);
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+
+ /**
+ * Get fine-grained status updates for a fine-tune job.
+ *
+ *
+ * @deprecated method: This will be removed in a future release, please migrate away from it as soon as possible.
+ */
+ async listFineTuneEvents(
+ req: operations.ListFineTuneEventsRequest,
+ config?: AxiosRequestConfig
+ ): Promise {
+ if (!(req instanceof utils.SpeakeasyBase)) {
+ req = new operations.ListFineTuneEventsRequest(req);
+ }
+
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = utils.generateURL(baseURL, "/fine-tunes/{fine_tune_id}/events", req);
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = { ...config?.headers, ...properties.headers };
+ const queryParams: string = utils.serializeQueryParams(req);
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url + queryParams,
+ method: "get",
+ headers: headers,
+ responseType: "arraybuffer",
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.ListFineTuneEventsResponse =
+ new operations.ListFineTuneEventsResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.listFineTuneEventsResponse = utils.objectToClass(
+ JSON.parse(decodedRes),
+ shared.ListFineTuneEventsResponse
+ );
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+
+ /**
+ * List your organization's fine-tuning jobs
+ *
+ *
+ * @deprecated method: This will be removed in a future release, please migrate away from it as soon as possible.
+ */
+ async listFineTunes(config?: AxiosRequestConfig): Promise {
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = baseURL.replace(/\/$/, "") + "/fine-tunes";
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = { ...config?.headers, ...properties.headers };
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url,
+ method: "get",
+ headers: headers,
+ responseType: "arraybuffer",
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.ListFineTunesResponse = new operations.ListFineTunesResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.listFineTunesResponse = utils.objectToClass(
+ JSON.parse(decodedRes),
+ shared.ListFineTunesResponse
+ );
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+
+ /**
+ * Gets info about the fine-tune job.
+ *
+ * [Learn more about fine-tuning](/docs/guides/legacy-fine-tuning)
+ *
+ *
+ * @deprecated method: This will be removed in a future release, please migrate away from it as soon as possible.
+ */
+ async retrieveFineTune(
+ req: operations.RetrieveFineTuneRequest,
+ config?: AxiosRequestConfig
+ ): Promise {
+ if (!(req instanceof utils.SpeakeasyBase)) {
+ req = new operations.RetrieveFineTuneRequest(req);
+ }
+
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = utils.generateURL(baseURL, "/fine-tunes/{fine_tune_id}", req);
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = { ...config?.headers, ...properties.headers };
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url,
+ method: "get",
+ headers: headers,
+ responseType: "arraybuffer",
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.RetrieveFineTuneResponse = new operations.RetrieveFineTuneResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.fineTune = utils.objectToClass(JSON.parse(decodedRes), shared.FineTune);
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+}
diff --git a/src/sdk/finetuning.ts b/src/sdk/finetuning.ts
new file mode 100755
index 0000000..f5edefb
--- /dev/null
+++ b/src/sdk/finetuning.ts
@@ -0,0 +1,428 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import * as utils from "../internal/utils";
+import * as errors from "./models/errors";
+import * as operations from "./models/operations";
+import * as shared from "./models/shared";
+import { SDKConfiguration } from "./sdk";
+import { AxiosInstance, AxiosRequestConfig, AxiosResponse, RawAxiosRequestHeaders } from "axios";
+
+/**
+ * Manage fine-tuning jobs to tailor a model to your specific training data.
+ */
+
+export class FineTuning {
+ private sdkConfiguration: SDKConfiguration;
+
+ constructor(sdkConfig: SDKConfiguration) {
+ this.sdkConfiguration = sdkConfig;
+ }
+
+ /**
+ * Immediately cancel a fine-tune job.
+ *
+ */
+ async cancelFineTuningJob(
+ req: operations.CancelFineTuningJobRequest,
+ config?: AxiosRequestConfig
+ ): Promise {
+ if (!(req instanceof utils.SpeakeasyBase)) {
+ req = new operations.CancelFineTuningJobRequest(req);
+ }
+
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = utils.generateURL(
+ baseURL,
+ "/fine_tuning/jobs/{fine_tuning_job_id}/cancel",
+ req
+ );
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = { ...config?.headers, ...properties.headers };
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url,
+ method: "post",
+ headers: headers,
+ responseType: "arraybuffer",
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.CancelFineTuningJobResponse =
+ new operations.CancelFineTuningJobResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.fineTuningJob = utils.objectToClass(
+ JSON.parse(decodedRes),
+ shared.FineTuningJob
+ );
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+
+ /**
+ * Creates a job that fine-tunes a specified model from a given dataset.
+ *
+ * Response includes details of the enqueued job including job status and the name of the fine-tuned models once complete.
+ *
+ * [Learn more about fine-tuning](/docs/guides/fine-tuning)
+ *
+ */
+ async createFineTuningJob(
+ req: shared.CreateFineTuningJobRequest,
+ config?: AxiosRequestConfig
+ ): Promise {
+ if (!(req instanceof utils.SpeakeasyBase)) {
+ req = new shared.CreateFineTuningJobRequest(req);
+ }
+
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = baseURL.replace(/\/$/, "") + "/fine_tuning/jobs";
+
+ let [reqBodyHeaders, reqBody]: [object, any] = [{}, null];
+
+ try {
+ [reqBodyHeaders, reqBody] = utils.serializeRequestBody(req, "request", "json");
+ } catch (e: unknown) {
+ if (e instanceof Error) {
+ throw new Error(`Error serializing request body, cause: ${e.message}`);
+ }
+ }
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = {
+ ...reqBodyHeaders,
+ ...config?.headers,
+ ...properties.headers,
+ };
+ if (reqBody == null) throw new Error("request body is required");
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url,
+ method: "post",
+ headers: headers,
+ responseType: "arraybuffer",
+ data: reqBody,
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.CreateFineTuningJobResponse =
+ new operations.CreateFineTuningJobResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.fineTuningJob = utils.objectToClass(
+ JSON.parse(decodedRes),
+ shared.FineTuningJob
+ );
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+
+ /**
+ * Get status updates for a fine-tuning job.
+ *
+ */
+ async listFineTuningEvents(
+ req: operations.ListFineTuningEventsRequest,
+ config?: AxiosRequestConfig
+ ): Promise {
+ if (!(req instanceof utils.SpeakeasyBase)) {
+ req = new operations.ListFineTuningEventsRequest(req);
+ }
+
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = utils.generateURL(
+ baseURL,
+ "/fine_tuning/jobs/{fine_tuning_job_id}/events",
+ req
+ );
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = { ...config?.headers, ...properties.headers };
+ const queryParams: string = utils.serializeQueryParams(req);
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url + queryParams,
+ method: "get",
+ headers: headers,
+ responseType: "arraybuffer",
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.ListFineTuningEventsResponse =
+ new operations.ListFineTuningEventsResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.listFineTuningJobEventsResponse = utils.objectToClass(
+ JSON.parse(decodedRes),
+ shared.ListFineTuningJobEventsResponse
+ );
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+
+ /**
+ * List your organization's fine-tuning jobs
+ *
+ */
+ async listPaginatedFineTuningJobs(
+ req: operations.ListPaginatedFineTuningJobsRequest,
+ config?: AxiosRequestConfig
+ ): Promise {
+ if (!(req instanceof utils.SpeakeasyBase)) {
+ req = new operations.ListPaginatedFineTuningJobsRequest(req);
+ }
+
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = baseURL.replace(/\/$/, "") + "/fine_tuning/jobs";
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = { ...config?.headers, ...properties.headers };
+ const queryParams: string = utils.serializeQueryParams(req);
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url + queryParams,
+ method: "get",
+ headers: headers,
+ responseType: "arraybuffer",
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.ListPaginatedFineTuningJobsResponse =
+ new operations.ListPaginatedFineTuningJobsResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.listPaginatedFineTuningJobsResponse = utils.objectToClass(
+ JSON.parse(decodedRes),
+ shared.ListPaginatedFineTuningJobsResponse
+ );
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+
+ /**
+ * Get info about a fine-tuning job.
+ *
+ * [Learn more about fine-tuning](/docs/guides/fine-tuning)
+ *
+ */
+ async retrieveFineTuningJob(
+ req: operations.RetrieveFineTuningJobRequest,
+ config?: AxiosRequestConfig
+ ): Promise {
+ if (!(req instanceof utils.SpeakeasyBase)) {
+ req = new operations.RetrieveFineTuningJobRequest(req);
+ }
+
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = utils.generateURL(
+ baseURL,
+ "/fine_tuning/jobs/{fine_tuning_job_id}",
+ req
+ );
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = { ...config?.headers, ...properties.headers };
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url,
+ method: "get",
+ headers: headers,
+ responseType: "arraybuffer",
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.RetrieveFineTuningJobResponse =
+ new operations.RetrieveFineTuningJobResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.fineTuningJob = utils.objectToClass(
+ JSON.parse(decodedRes),
+ shared.FineTuningJob
+ );
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+}
diff --git a/src/sdk/images.ts b/src/sdk/images.ts
new file mode 100755
index 0000000..e7e6541
--- /dev/null
+++ b/src/sdk/images.ts
@@ -0,0 +1,287 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import * as utils from "../internal/utils";
+import * as errors from "./models/errors";
+import * as operations from "./models/operations";
+import * as shared from "./models/shared";
+import { SDKConfiguration } from "./sdk";
+import { AxiosInstance, AxiosRequestConfig, AxiosResponse, RawAxiosRequestHeaders } from "axios";
+
+/**
+ * Given a prompt and/or an input image, the model will generate a new image.
+ */
+
+export class Images {
+ private sdkConfiguration: SDKConfiguration;
+
+ constructor(sdkConfig: SDKConfiguration) {
+ this.sdkConfiguration = sdkConfig;
+ }
+
+ /**
+ * Creates an image given a prompt.
+ */
+ async createImage(
+ req: shared.CreateImageRequest,
+ config?: AxiosRequestConfig
+ ): Promise {
+ if (!(req instanceof utils.SpeakeasyBase)) {
+ req = new shared.CreateImageRequest(req);
+ }
+
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = baseURL.replace(/\/$/, "") + "/images/generations";
+
+ let [reqBodyHeaders, reqBody]: [object, any] = [{}, null];
+
+ try {
+ [reqBodyHeaders, reqBody] = utils.serializeRequestBody(req, "request", "json");
+ } catch (e: unknown) {
+ if (e instanceof Error) {
+ throw new Error(`Error serializing request body, cause: ${e.message}`);
+ }
+ }
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = {
+ ...reqBodyHeaders,
+ ...config?.headers,
+ ...properties.headers,
+ };
+ if (reqBody == null) throw new Error("request body is required");
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url,
+ method: "post",
+ headers: headers,
+ responseType: "arraybuffer",
+ data: reqBody,
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.CreateImageResponse = new operations.CreateImageResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.imagesResponse = utils.objectToClass(
+ JSON.parse(decodedRes),
+ shared.ImagesResponse
+ );
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+
+ /**
+ * Creates an edited or extended image given an original image and a prompt.
+ */
+ async createImageEdit(
+ req: shared.CreateImageEditRequest,
+ config?: AxiosRequestConfig
+ ): Promise {
+ if (!(req instanceof utils.SpeakeasyBase)) {
+ req = new shared.CreateImageEditRequest(req);
+ }
+
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = baseURL.replace(/\/$/, "") + "/images/edits";
+
+ let [reqBodyHeaders, reqBody]: [object, any] = [{}, null];
+
+ try {
+ [reqBodyHeaders, reqBody] = utils.serializeRequestBody(req, "request", "multipart");
+ } catch (e: unknown) {
+ if (e instanceof Error) {
+ throw new Error(`Error serializing request body, cause: ${e.message}`);
+ }
+ }
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = {
+ ...reqBodyHeaders,
+ ...config?.headers,
+ ...properties.headers,
+ };
+ if (reqBody == null) throw new Error("request body is required");
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url,
+ method: "post",
+ headers: headers,
+ responseType: "arraybuffer",
+ data: reqBody,
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.CreateImageEditResponse = new operations.CreateImageEditResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.imagesResponse = utils.objectToClass(
+ JSON.parse(decodedRes),
+ shared.ImagesResponse
+ );
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+
+ /**
+ * Creates a variation of a given image.
+ */
+ async createImageVariation(
+ req: shared.CreateImageVariationRequest,
+ config?: AxiosRequestConfig
+ ): Promise {
+ if (!(req instanceof utils.SpeakeasyBase)) {
+ req = new shared.CreateImageVariationRequest(req);
+ }
+
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = baseURL.replace(/\/$/, "") + "/images/variations";
+
+ let [reqBodyHeaders, reqBody]: [object, any] = [{}, null];
+
+ try {
+ [reqBodyHeaders, reqBody] = utils.serializeRequestBody(req, "request", "multipart");
+ } catch (e: unknown) {
+ if (e instanceof Error) {
+ throw new Error(`Error serializing request body, cause: ${e.message}`);
+ }
+ }
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = {
+ ...reqBodyHeaders,
+ ...config?.headers,
+ ...properties.headers,
+ };
+ if (reqBody == null) throw new Error("request body is required");
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url,
+ method: "post",
+ headers: headers,
+ responseType: "arraybuffer",
+ data: reqBody,
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.CreateImageVariationResponse =
+ new operations.CreateImageVariationResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.imagesResponse = utils.objectToClass(
+ JSON.parse(decodedRes),
+ shared.ImagesResponse
+ );
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+}
diff --git a/src/sdk/models.ts b/src/sdk/models.ts
new file mode 100755
index 0000000..1bb8ea0
--- /dev/null
+++ b/src/sdk/models.ts
@@ -0,0 +1,228 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import * as utils from "../internal/utils";
+import * as errors from "./models/errors";
+import * as operations from "./models/operations";
+import * as shared from "./models/shared";
+import { SDKConfiguration } from "./sdk";
+import { AxiosInstance, AxiosRequestConfig, AxiosResponse, RawAxiosRequestHeaders } from "axios";
+
+/**
+ * List and describe the various models available in the API.
+ */
+
+export class Models {
+ private sdkConfiguration: SDKConfiguration;
+
+ constructor(sdkConfig: SDKConfiguration) {
+ this.sdkConfiguration = sdkConfig;
+ }
+
+ /**
+ * Delete a fine-tuned model. You must have the Owner role in your organization to delete a model.
+ */
+ async deleteModel(
+ req: operations.DeleteModelRequest,
+ config?: AxiosRequestConfig
+ ): Promise {
+ if (!(req instanceof utils.SpeakeasyBase)) {
+ req = new operations.DeleteModelRequest(req);
+ }
+
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = utils.generateURL(baseURL, "/models/{model}", req);
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = { ...config?.headers, ...properties.headers };
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url,
+ method: "delete",
+ headers: headers,
+ responseType: "arraybuffer",
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.DeleteModelResponse = new operations.DeleteModelResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.deleteModelResponse = utils.objectToClass(
+ JSON.parse(decodedRes),
+ shared.DeleteModelResponse
+ );
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+
+ /**
+ * Lists the currently available models, and provides basic information about each one such as the owner and availability.
+ */
+ async listModels(config?: AxiosRequestConfig): Promise {
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = baseURL.replace(/\/$/, "") + "/models";
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = { ...config?.headers, ...properties.headers };
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url,
+ method: "get",
+ headers: headers,
+ responseType: "arraybuffer",
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.ListModelsResponse = new operations.ListModelsResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.listModelsResponse = utils.objectToClass(
+ JSON.parse(decodedRes),
+ shared.ListModelsResponse
+ );
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+
+ /**
+ * Retrieves a model instance, providing basic information about the model such as the owner and permissioning.
+ */
+ async retrieveModel(
+ req: operations.RetrieveModelRequest,
+ config?: AxiosRequestConfig
+ ): Promise {
+ if (!(req instanceof utils.SpeakeasyBase)) {
+ req = new operations.RetrieveModelRequest(req);
+ }
+
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = utils.generateURL(baseURL, "/models/{model}", req);
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = { ...config?.headers, ...properties.headers };
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url,
+ method: "get",
+ headers: headers,
+ responseType: "arraybuffer",
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.RetrieveModelResponse = new operations.RetrieveModelResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.model = utils.objectToClass(JSON.parse(decodedRes), shared.Model);
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+}
diff --git a/src/sdk/models/errors/index.ts b/src/sdk/models/errors/index.ts
new file mode 100755
index 0000000..4779e6a
--- /dev/null
+++ b/src/sdk/models/errors/index.ts
@@ -0,0 +1,5 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+export * from "./sdkerror";
diff --git a/src/sdk/models/errors/sdkerror.ts b/src/sdk/models/errors/sdkerror.ts
new file mode 100755
index 0000000..0d69872
--- /dev/null
+++ b/src/sdk/models/errors/sdkerror.ts
@@ -0,0 +1,31 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import { AxiosResponse } from "axios";
+
+export class SDKError extends Error {
+ statusCode: number;
+ body: string;
+ rawResponse: AxiosResponse;
+
+ constructor(
+ message: string,
+ statusCode: number,
+ body: string,
+ rawResponse: AxiosResponse
+ ) {
+ let bodyString = "";
+ if (body?.length > 0) {
+ bodyString = `\n${body}`;
+ }
+
+ super(`${message}: Status ${statusCode}${bodyString}`);
+ this.statusCode = statusCode;
+ this.body = body;
+ this.rawResponse = rawResponse;
+
+ this.name = "SDKError";
+ Object.setPrototypeOf(this, SDKError.prototype);
+ }
+}
diff --git a/src/sdk/models/operations/cancelfinetune.ts b/src/sdk/models/operations/cancelfinetune.ts
index 582c7f6..91989fe 100755
--- a/src/sdk/models/operations/cancelfinetune.ts
+++ b/src/sdk/models/operations/cancelfinetune.ts
@@ -3,34 +3,42 @@
*/
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import * as shared from "../shared";
import { AxiosResponse } from "axios";
export class CancelFineTuneRequest extends SpeakeasyBase {
- /**
- * The ID of the fine-tune job to cancel
- *
- * @remarks
- *
- */
- @SpeakeasyMetadata({
- data: "pathParam, style=simple;explode=false;name=fine_tune_id",
- })
- fineTuneId: string;
+ /**
+ * The ID of the fine-tune job to cancel
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata({ data: "pathParam, style=simple;explode=false;name=fine_tune_id" })
+ fineTuneId: string;
}
export class CancelFineTuneResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
- /**
- * OK
- */
- @SpeakeasyMetadata()
- fineTune?: any;
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ fineTune?: shared.FineTune;
- @SpeakeasyMetadata()
- statusCode: number;
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
}
diff --git a/src/sdk/models/operations/cancelfinetuningjob.ts b/src/sdk/models/operations/cancelfinetuningjob.ts
new file mode 100755
index 0000000..a6038d3
--- /dev/null
+++ b/src/sdk/models/operations/cancelfinetuningjob.ts
@@ -0,0 +1,44 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import * as shared from "../shared";
+import { AxiosResponse } from "axios";
+
+export class CancelFineTuningJobRequest extends SpeakeasyBase {
+ /**
+ * The ID of the fine-tuning job to cancel.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata({ data: "pathParam, style=simple;explode=false;name=fine_tuning_job_id" })
+ fineTuningJobId: string;
+}
+
+export class CancelFineTuningJobResponse extends SpeakeasyBase {
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
+
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ fineTuningJob?: shared.FineTuningJob;
+
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
+
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
+}
diff --git a/src/sdk/models/operations/createanswer.ts b/src/sdk/models/operations/createanswer.ts
deleted file mode 100755
index 95f8036..0000000
--- a/src/sdk/models/operations/createanswer.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
- */
-
-import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
-import * as shared from "../shared";
-import { AxiosResponse } from "axios";
-
-export class CreateAnswerResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
-
- /**
- * OK
- */
- @SpeakeasyMetadata()
- createAnswerResponse?: shared.CreateAnswerResponse;
-
- @SpeakeasyMetadata()
- statusCode: number;
-
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
-}
diff --git a/src/sdk/models/operations/createchatcompletion.ts b/src/sdk/models/operations/createchatcompletion.ts
index 985031d..0764acd 100755
--- a/src/sdk/models/operations/createchatcompletion.ts
+++ b/src/sdk/models/operations/createchatcompletion.ts
@@ -7,18 +7,27 @@ import * as shared from "../shared";
import { AxiosResponse } from "axios";
export class CreateChatCompletionResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
- /**
- * OK
- */
- @SpeakeasyMetadata()
- createChatCompletionResponse?: shared.CreateChatCompletionResponse;
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ createChatCompletionResponse?: shared.CreateChatCompletionResponse;
- @SpeakeasyMetadata()
- statusCode: number;
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
}
diff --git a/src/sdk/models/operations/createclassification.ts b/src/sdk/models/operations/createclassification.ts
deleted file mode 100755
index 49472d9..0000000
--- a/src/sdk/models/operations/createclassification.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
- */
-
-import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
-import * as shared from "../shared";
-import { AxiosResponse } from "axios";
-
-export class CreateClassificationResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
-
- /**
- * OK
- */
- @SpeakeasyMetadata()
- createClassificationResponse?: shared.CreateClassificationResponse;
-
- @SpeakeasyMetadata()
- statusCode: number;
-
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
-}
diff --git a/src/sdk/models/operations/createcompletion.ts b/src/sdk/models/operations/createcompletion.ts
index a2273b9..3da3478 100755
--- a/src/sdk/models/operations/createcompletion.ts
+++ b/src/sdk/models/operations/createcompletion.ts
@@ -7,18 +7,27 @@ import * as shared from "../shared";
import { AxiosResponse } from "axios";
export class CreateCompletionResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
- /**
- * OK
- */
- @SpeakeasyMetadata()
- createCompletionResponse?: shared.CreateCompletionResponse;
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ createCompletionResponse?: shared.CreateCompletionResponse;
- @SpeakeasyMetadata()
- statusCode: number;
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
}
diff --git a/src/sdk/models/operations/createedit.ts b/src/sdk/models/operations/createedit.ts
index aae0c17..53d7726 100755
--- a/src/sdk/models/operations/createedit.ts
+++ b/src/sdk/models/operations/createedit.ts
@@ -7,18 +7,27 @@ import * as shared from "../shared";
import { AxiosResponse } from "axios";
export class CreateEditResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
- /**
- * OK
- */
- @SpeakeasyMetadata()
- createEditResponse?: shared.CreateEditResponse;
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ createEditResponse?: shared.CreateEditResponse;
- @SpeakeasyMetadata()
- statusCode: number;
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
}
diff --git a/src/sdk/models/operations/createembedding.ts b/src/sdk/models/operations/createembedding.ts
index d83215c..aa01dc3 100755
--- a/src/sdk/models/operations/createembedding.ts
+++ b/src/sdk/models/operations/createembedding.ts
@@ -7,18 +7,27 @@ import * as shared from "../shared";
import { AxiosResponse } from "axios";
export class CreateEmbeddingResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
- /**
- * OK
- */
- @SpeakeasyMetadata()
- createEmbeddingResponse?: shared.CreateEmbeddingResponse;
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ createEmbeddingResponse?: shared.CreateEmbeddingResponse;
- @SpeakeasyMetadata()
- statusCode: number;
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
}
diff --git a/src/sdk/models/operations/createfile.ts b/src/sdk/models/operations/createfile.ts
index 0a5bf62..f236821 100755
--- a/src/sdk/models/operations/createfile.ts
+++ b/src/sdk/models/operations/createfile.ts
@@ -3,21 +3,31 @@
*/
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import * as shared from "../shared";
import { AxiosResponse } from "axios";
export class CreateFileResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
- /**
- * OK
- */
- @SpeakeasyMetadata()
- openAIFile?: any;
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ openAIFile?: shared.OpenAIFile;
- @SpeakeasyMetadata()
- statusCode: number;
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
}
diff --git a/src/sdk/models/operations/createfinetune.ts b/src/sdk/models/operations/createfinetune.ts
index 5931b95..66d89ee 100755
--- a/src/sdk/models/operations/createfinetune.ts
+++ b/src/sdk/models/operations/createfinetune.ts
@@ -3,21 +3,31 @@
*/
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import * as shared from "../shared";
import { AxiosResponse } from "axios";
export class CreateFineTuneResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
- /**
- * OK
- */
- @SpeakeasyMetadata()
- fineTune?: any;
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ fineTune?: shared.FineTune;
- @SpeakeasyMetadata()
- statusCode: number;
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
}
diff --git a/src/sdk/models/operations/createfinetuningjob.ts b/src/sdk/models/operations/createfinetuningjob.ts
new file mode 100755
index 0000000..67aa487
--- /dev/null
+++ b/src/sdk/models/operations/createfinetuningjob.ts
@@ -0,0 +1,33 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import * as shared from "../shared";
+import { AxiosResponse } from "axios";
+
+export class CreateFineTuningJobResponse extends SpeakeasyBase {
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
+
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ fineTuningJob?: shared.FineTuningJob;
+
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
+
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
+}
diff --git a/src/sdk/models/operations/createimage.ts b/src/sdk/models/operations/createimage.ts
index ebfa3e7..133e34d 100755
--- a/src/sdk/models/operations/createimage.ts
+++ b/src/sdk/models/operations/createimage.ts
@@ -3,21 +3,31 @@
*/
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import * as shared from "../shared";
import { AxiosResponse } from "axios";
export class CreateImageResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
- /**
- * OK
- */
- @SpeakeasyMetadata()
- imagesResponse?: any;
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ imagesResponse?: shared.ImagesResponse;
- @SpeakeasyMetadata()
- statusCode: number;
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
}
diff --git a/src/sdk/models/operations/createimageedit.ts b/src/sdk/models/operations/createimageedit.ts
index a034f22..9b38533 100755
--- a/src/sdk/models/operations/createimageedit.ts
+++ b/src/sdk/models/operations/createimageedit.ts
@@ -3,21 +3,31 @@
*/
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import * as shared from "../shared";
import { AxiosResponse } from "axios";
export class CreateImageEditResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
- /**
- * OK
- */
- @SpeakeasyMetadata()
- imagesResponse?: any;
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ imagesResponse?: shared.ImagesResponse;
- @SpeakeasyMetadata()
- statusCode: number;
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
}
diff --git a/src/sdk/models/operations/createimagevariation.ts b/src/sdk/models/operations/createimagevariation.ts
index 9a95408..e8ae138 100755
--- a/src/sdk/models/operations/createimagevariation.ts
+++ b/src/sdk/models/operations/createimagevariation.ts
@@ -3,21 +3,31 @@
*/
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import * as shared from "../shared";
import { AxiosResponse } from "axios";
export class CreateImageVariationResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
- /**
- * OK
- */
- @SpeakeasyMetadata()
- imagesResponse?: any;
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ imagesResponse?: shared.ImagesResponse;
- @SpeakeasyMetadata()
- statusCode: number;
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
}
diff --git a/src/sdk/models/operations/createmoderation.ts b/src/sdk/models/operations/createmoderation.ts
index 7a025ac..c7d9136 100755
--- a/src/sdk/models/operations/createmoderation.ts
+++ b/src/sdk/models/operations/createmoderation.ts
@@ -7,18 +7,27 @@ import * as shared from "../shared";
import { AxiosResponse } from "axios";
export class CreateModerationResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
- /**
- * OK
- */
- @SpeakeasyMetadata()
- createModerationResponse?: shared.CreateModerationResponse;
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ createModerationResponse?: shared.CreateModerationResponse;
- @SpeakeasyMetadata()
- statusCode: number;
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
}
diff --git a/src/sdk/models/operations/createsearch.ts b/src/sdk/models/operations/createsearch.ts
deleted file mode 100755
index 6e5f054..0000000
--- a/src/sdk/models/operations/createsearch.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
- */
-
-import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
-import * as shared from "../shared";
-import { AxiosResponse } from "axios";
-
-export class CreateSearchRequest extends SpeakeasyBase {
- @SpeakeasyMetadata({ data: "request, media_type=application/json" })
- createSearchRequest: shared.CreateSearchRequest;
-
- /**
- * The ID of the engine to use for this request. You can select one of `ada`, `babbage`, `curie`, or `davinci`.
- */
- @SpeakeasyMetadata({
- data: "pathParam, style=simple;explode=false;name=engine_id",
- })
- engineId: string;
-}
-
-export class CreateSearchResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
-
- /**
- * OK
- */
- @SpeakeasyMetadata()
- createSearchResponse?: shared.CreateSearchResponse;
-
- @SpeakeasyMetadata()
- statusCode: number;
-
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
-}
diff --git a/src/sdk/models/operations/createtranscription.ts b/src/sdk/models/operations/createtranscription.ts
index 259829b..b3421ba 100755
--- a/src/sdk/models/operations/createtranscription.ts
+++ b/src/sdk/models/operations/createtranscription.ts
@@ -7,18 +7,27 @@ import * as shared from "../shared";
import { AxiosResponse } from "axios";
export class CreateTranscriptionResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
- /**
- * OK
- */
- @SpeakeasyMetadata()
- createTranscriptionResponse?: shared.CreateTranscriptionResponse;
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ createTranscriptionResponse?: shared.CreateTranscriptionResponse;
- @SpeakeasyMetadata()
- statusCode: number;
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
}
diff --git a/src/sdk/models/operations/createtranslation.ts b/src/sdk/models/operations/createtranslation.ts
index f859c2a..da3d190 100755
--- a/src/sdk/models/operations/createtranslation.ts
+++ b/src/sdk/models/operations/createtranslation.ts
@@ -7,18 +7,27 @@ import * as shared from "../shared";
import { AxiosResponse } from "axios";
export class CreateTranslationResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
- /**
- * OK
- */
- @SpeakeasyMetadata()
- createTranslationResponse?: shared.CreateTranslationResponse;
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ createTranslationResponse?: shared.CreateTranslationResponse;
- @SpeakeasyMetadata()
- statusCode: number;
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
}
diff --git a/src/sdk/models/operations/deletefile.ts b/src/sdk/models/operations/deletefile.ts
index e4b5e76..bc87348 100755
--- a/src/sdk/models/operations/deletefile.ts
+++ b/src/sdk/models/operations/deletefile.ts
@@ -7,28 +7,35 @@ import * as shared from "../shared";
import { AxiosResponse } from "axios";
export class DeleteFileRequest extends SpeakeasyBase {
- /**
- * The ID of the file to use for this request
- */
- @SpeakeasyMetadata({
- data: "pathParam, style=simple;explode=false;name=file_id",
- })
- fileId: string;
+ /**
+ * The ID of the file to use for this request.
+ */
+ @SpeakeasyMetadata({ data: "pathParam, style=simple;explode=false;name=file_id" })
+ fileId: string;
}
export class DeleteFileResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
- /**
- * OK
- */
- @SpeakeasyMetadata()
- deleteFileResponse?: shared.DeleteFileResponse;
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ deleteFileResponse?: shared.DeleteFileResponse;
- @SpeakeasyMetadata()
- statusCode: number;
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
}
diff --git a/src/sdk/models/operations/deletemodel.ts b/src/sdk/models/operations/deletemodel.ts
index 6fe8225..7dacc56 100755
--- a/src/sdk/models/operations/deletemodel.ts
+++ b/src/sdk/models/operations/deletemodel.ts
@@ -7,28 +7,35 @@ import * as shared from "../shared";
import { AxiosResponse } from "axios";
export class DeleteModelRequest extends SpeakeasyBase {
- /**
- * The model to delete
- */
- @SpeakeasyMetadata({
- data: "pathParam, style=simple;explode=false;name=model",
- })
- model: string;
+ /**
+ * The model to delete
+ */
+ @SpeakeasyMetadata({ data: "pathParam, style=simple;explode=false;name=model" })
+ model: string;
}
export class DeleteModelResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
- /**
- * OK
- */
- @SpeakeasyMetadata()
- deleteModelResponse?: shared.DeleteModelResponse;
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ deleteModelResponse?: shared.DeleteModelResponse;
- @SpeakeasyMetadata()
- statusCode: number;
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
}
diff --git a/src/sdk/models/operations/downloadfile.ts b/src/sdk/models/operations/downloadfile.ts
index 9f3e460..0d71888 100755
--- a/src/sdk/models/operations/downloadfile.ts
+++ b/src/sdk/models/operations/downloadfile.ts
@@ -6,28 +6,35 @@ import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
import { AxiosResponse } from "axios";
export class DownloadFileRequest extends SpeakeasyBase {
- /**
- * The ID of the file to use for this request
- */
- @SpeakeasyMetadata({
- data: "pathParam, style=simple;explode=false;name=file_id",
- })
- fileId: string;
+ /**
+ * The ID of the file to use for this request.
+ */
+ @SpeakeasyMetadata({ data: "pathParam, style=simple;explode=false;name=file_id" })
+ fileId: string;
}
export class DownloadFileResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
- @SpeakeasyMetadata()
- statusCode: number;
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
- /**
- * OK
- */
- @SpeakeasyMetadata()
- downloadFile200ApplicationJSONString?: string;
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ downloadFile200ApplicationJSONString?: string;
}
diff --git a/src/sdk/models/operations/index.ts b/src/sdk/models/operations/index.ts
index a8bf1e0..5ed440c 100755
--- a/src/sdk/models/operations/index.ts
+++ b/src/sdk/models/operations/index.ts
@@ -3,30 +3,30 @@
*/
export * from "./cancelfinetune";
-export * from "./createanswer";
+export * from "./cancelfinetuningjob";
export * from "./createchatcompletion";
-export * from "./createclassification";
export * from "./createcompletion";
export * from "./createedit";
export * from "./createembedding";
export * from "./createfile";
export * from "./createfinetune";
+export * from "./createfinetuningjob";
export * from "./createimage";
export * from "./createimageedit";
export * from "./createimagevariation";
export * from "./createmoderation";
-export * from "./createsearch";
export * from "./createtranscription";
export * from "./createtranslation";
export * from "./deletefile";
export * from "./deletemodel";
export * from "./downloadfile";
-export * from "./listengines";
export * from "./listfiles";
export * from "./listfinetuneevents";
export * from "./listfinetunes";
+export * from "./listfinetuningevents";
export * from "./listmodels";
-export * from "./retrieveengine";
+export * from "./listpaginatedfinetuningjobs";
export * from "./retrievefile";
export * from "./retrievefinetune";
+export * from "./retrievefinetuningjob";
export * from "./retrievemodel";
diff --git a/src/sdk/models/operations/listengines.ts b/src/sdk/models/operations/listengines.ts
deleted file mode 100755
index 46d56ae..0000000
--- a/src/sdk/models/operations/listengines.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
- */
-
-import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
-import * as shared from "../shared";
-import { AxiosResponse } from "axios";
-
-export class ListEnginesResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
-
- /**
- * OK
- */
- @SpeakeasyMetadata()
- listEnginesResponse?: shared.ListEnginesResponse;
-
- @SpeakeasyMetadata()
- statusCode: number;
-
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
-}
diff --git a/src/sdk/models/operations/listfiles.ts b/src/sdk/models/operations/listfiles.ts
index c631265..7f61d7a 100755
--- a/src/sdk/models/operations/listfiles.ts
+++ b/src/sdk/models/operations/listfiles.ts
@@ -7,18 +7,27 @@ import * as shared from "../shared";
import { AxiosResponse } from "axios";
export class ListFilesResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
- /**
- * OK
- */
- @SpeakeasyMetadata()
- listFilesResponse?: shared.ListFilesResponse;
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ listFilesResponse?: shared.ListFilesResponse;
- @SpeakeasyMetadata()
- statusCode: number;
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
}
diff --git a/src/sdk/models/operations/listfinetuneevents.ts b/src/sdk/models/operations/listfinetuneevents.ts
index 427b749..6fe08c5 100755
--- a/src/sdk/models/operations/listfinetuneevents.ts
+++ b/src/sdk/models/operations/listfinetuneevents.ts
@@ -7,49 +7,54 @@ import * as shared from "../shared";
import { AxiosResponse } from "axios";
export class ListFineTuneEventsRequest extends SpeakeasyBase {
- /**
- * The ID of the fine-tune job to get events for.
- *
- * @remarks
- *
- */
- @SpeakeasyMetadata({
- data: "pathParam, style=simple;explode=false;name=fine_tune_id",
- })
- fineTuneId: string;
+ /**
+ * The ID of the fine-tune job to get events for.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata({ data: "pathParam, style=simple;explode=false;name=fine_tune_id" })
+ fineTuneId: string;
- /**
- * Whether to stream events for the fine-tune job. If set to true,
- *
- * @remarks
- * events will be sent as data-only
- * [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format)
- * as they become available. The stream will terminate with a
- * `data: [DONE]` message when the job is finished (succeeded, cancelled,
- * or failed).
- *
- * If set to false, only events generated so far will be returned.
- *
- */
- @SpeakeasyMetadata({
- data: "queryParam, style=form;explode=true;name=stream",
- })
- stream?: boolean;
+ /**
+ * Whether to stream events for the fine-tune job. If set to true,
+ *
+ * @remarks
+ * events will be sent as data-only
+ * [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format)
+ * as they become available. The stream will terminate with a
+ * `data: [DONE]` message when the job is finished (succeeded, cancelled,
+ * or failed).
+ *
+ * If set to false, only events generated so far will be returned.
+ *
+ */
+ @SpeakeasyMetadata({ data: "queryParam, style=form;explode=true;name=stream" })
+ stream?: boolean;
}
export class ListFineTuneEventsResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
- /**
- * OK
- */
- @SpeakeasyMetadata()
- listFineTuneEventsResponse?: shared.ListFineTuneEventsResponse;
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ listFineTuneEventsResponse?: shared.ListFineTuneEventsResponse;
- @SpeakeasyMetadata()
- statusCode: number;
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
}
diff --git a/src/sdk/models/operations/listfinetunes.ts b/src/sdk/models/operations/listfinetunes.ts
index c1ca7e3..41ad0f0 100755
--- a/src/sdk/models/operations/listfinetunes.ts
+++ b/src/sdk/models/operations/listfinetunes.ts
@@ -7,18 +7,27 @@ import * as shared from "../shared";
import { AxiosResponse } from "axios";
export class ListFineTunesResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
- /**
- * OK
- */
- @SpeakeasyMetadata()
- listFineTunesResponse?: shared.ListFineTunesResponse;
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ listFineTunesResponse?: shared.ListFineTunesResponse;
- @SpeakeasyMetadata()
- statusCode: number;
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
}
diff --git a/src/sdk/models/operations/listfinetuningevents.ts b/src/sdk/models/operations/listfinetuningevents.ts
new file mode 100755
index 0000000..981c054
--- /dev/null
+++ b/src/sdk/models/operations/listfinetuningevents.ts
@@ -0,0 +1,56 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import * as shared from "../shared";
+import { AxiosResponse } from "axios";
+
+export class ListFineTuningEventsRequest extends SpeakeasyBase {
+ /**
+ * Identifier for the last event from the previous pagination request.
+ */
+ @SpeakeasyMetadata({ data: "queryParam, style=form;explode=true;name=after" })
+ after?: string;
+
+ /**
+ * The ID of the fine-tuning job to get events for.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata({ data: "pathParam, style=simple;explode=false;name=fine_tuning_job_id" })
+ fineTuningJobId: string;
+
+ /**
+ * Number of events to retrieve.
+ */
+ @SpeakeasyMetadata({ data: "queryParam, style=form;explode=true;name=limit" })
+ limit?: number;
+}
+
+export class ListFineTuningEventsResponse extends SpeakeasyBase {
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
+
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ listFineTuningJobEventsResponse?: shared.ListFineTuningJobEventsResponse;
+
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
+
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
+}
diff --git a/src/sdk/models/operations/listmodels.ts b/src/sdk/models/operations/listmodels.ts
index fecafdc..8c01992 100755
--- a/src/sdk/models/operations/listmodels.ts
+++ b/src/sdk/models/operations/listmodels.ts
@@ -7,18 +7,27 @@ import * as shared from "../shared";
import { AxiosResponse } from "axios";
export class ListModelsResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
- /**
- * OK
- */
- @SpeakeasyMetadata()
- listModelsResponse?: shared.ListModelsResponse;
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ listModelsResponse?: shared.ListModelsResponse;
- @SpeakeasyMetadata()
- statusCode: number;
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
}
diff --git a/src/sdk/models/operations/listpaginatedfinetuningjobs.ts b/src/sdk/models/operations/listpaginatedfinetuningjobs.ts
new file mode 100755
index 0000000..ee6b1a7
--- /dev/null
+++ b/src/sdk/models/operations/listpaginatedfinetuningjobs.ts
@@ -0,0 +1,47 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import * as shared from "../shared";
+import { AxiosResponse } from "axios";
+
+export class ListPaginatedFineTuningJobsRequest extends SpeakeasyBase {
+ /**
+ * Identifier for the last job from the previous pagination request.
+ */
+ @SpeakeasyMetadata({ data: "queryParam, style=form;explode=true;name=after" })
+ after?: string;
+
+ /**
+ * Number of fine-tuning jobs to retrieve.
+ */
+ @SpeakeasyMetadata({ data: "queryParam, style=form;explode=true;name=limit" })
+ limit?: number;
+}
+
+export class ListPaginatedFineTuningJobsResponse extends SpeakeasyBase {
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
+
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ listPaginatedFineTuningJobsResponse?: shared.ListPaginatedFineTuningJobsResponse;
+
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
+
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
+}
diff --git a/src/sdk/models/operations/retrieveengine.ts b/src/sdk/models/operations/retrieveengine.ts
deleted file mode 100755
index b1996a6..0000000
--- a/src/sdk/models/operations/retrieveengine.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
- */
-
-import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
-import { AxiosResponse } from "axios";
-
-export class RetrieveEngineRequest extends SpeakeasyBase {
- /**
- * The ID of the engine to use for this request
- *
- * @remarks
- *
- */
- @SpeakeasyMetadata({
- data: "pathParam, style=simple;explode=false;name=engine_id",
- })
- engineId: string;
-}
-
-export class RetrieveEngineResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
-
- /**
- * OK
- */
- @SpeakeasyMetadata()
- engine?: any;
-
- @SpeakeasyMetadata()
- statusCode: number;
-
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
-}
diff --git a/src/sdk/models/operations/retrievefile.ts b/src/sdk/models/operations/retrievefile.ts
index ac285b7..860096a 100755
--- a/src/sdk/models/operations/retrievefile.ts
+++ b/src/sdk/models/operations/retrievefile.ts
@@ -3,31 +3,39 @@
*/
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import * as shared from "../shared";
import { AxiosResponse } from "axios";
export class RetrieveFileRequest extends SpeakeasyBase {
- /**
- * The ID of the file to use for this request
- */
- @SpeakeasyMetadata({
- data: "pathParam, style=simple;explode=false;name=file_id",
- })
- fileId: string;
+ /**
+ * The ID of the file to use for this request.
+ */
+ @SpeakeasyMetadata({ data: "pathParam, style=simple;explode=false;name=file_id" })
+ fileId: string;
}
export class RetrieveFileResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
- /**
- * OK
- */
- @SpeakeasyMetadata()
- openAIFile?: any;
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ openAIFile?: shared.OpenAIFile;
- @SpeakeasyMetadata()
- statusCode: number;
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
}
diff --git a/src/sdk/models/operations/retrievefinetune.ts b/src/sdk/models/operations/retrievefinetune.ts
index e7b514f..61064ad 100755
--- a/src/sdk/models/operations/retrievefinetune.ts
+++ b/src/sdk/models/operations/retrievefinetune.ts
@@ -3,34 +3,42 @@
*/
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import * as shared from "../shared";
import { AxiosResponse } from "axios";
export class RetrieveFineTuneRequest extends SpeakeasyBase {
- /**
- * The ID of the fine-tune job
- *
- * @remarks
- *
- */
- @SpeakeasyMetadata({
- data: "pathParam, style=simple;explode=false;name=fine_tune_id",
- })
- fineTuneId: string;
+ /**
+ * The ID of the fine-tune job
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata({ data: "pathParam, style=simple;explode=false;name=fine_tune_id" })
+ fineTuneId: string;
}
export class RetrieveFineTuneResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
- /**
- * OK
- */
- @SpeakeasyMetadata()
- fineTune?: any;
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ fineTune?: shared.FineTune;
- @SpeakeasyMetadata()
- statusCode: number;
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
}
diff --git a/src/sdk/models/operations/retrievefinetuningjob.ts b/src/sdk/models/operations/retrievefinetuningjob.ts
new file mode 100755
index 0000000..982a904
--- /dev/null
+++ b/src/sdk/models/operations/retrievefinetuningjob.ts
@@ -0,0 +1,44 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import * as shared from "../shared";
+import { AxiosResponse } from "axios";
+
+export class RetrieveFineTuningJobRequest extends SpeakeasyBase {
+ /**
+ * The ID of the fine-tuning job.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata({ data: "pathParam, style=simple;explode=false;name=fine_tuning_job_id" })
+ fineTuningJobId: string;
+}
+
+export class RetrieveFineTuningJobResponse extends SpeakeasyBase {
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
+
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ fineTuningJob?: shared.FineTuningJob;
+
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
+
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
+}
diff --git a/src/sdk/models/operations/retrievemodel.ts b/src/sdk/models/operations/retrievemodel.ts
index 987a64e..4055231 100755
--- a/src/sdk/models/operations/retrievemodel.ts
+++ b/src/sdk/models/operations/retrievemodel.ts
@@ -3,31 +3,39 @@
*/
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import * as shared from "../shared";
import { AxiosResponse } from "axios";
export class RetrieveModelRequest extends SpeakeasyBase {
- /**
- * The ID of the model to use for this request
- */
- @SpeakeasyMetadata({
- data: "pathParam, style=simple;explode=false;name=model",
- })
- model: string;
+ /**
+ * The ID of the model to use for this request
+ */
+ @SpeakeasyMetadata({ data: "pathParam, style=simple;explode=false;name=model" })
+ model: string;
}
export class RetrieveModelResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- contentType: string;
+ /**
+ * HTTP response content type for this operation
+ */
+ @SpeakeasyMetadata()
+ contentType: string;
- /**
- * OK
- */
- @SpeakeasyMetadata()
- model?: any;
+ /**
+ * OK
+ */
+ @SpeakeasyMetadata()
+ model?: shared.Model;
- @SpeakeasyMetadata()
- statusCode: number;
+ /**
+ * HTTP response status code for this operation
+ */
+ @SpeakeasyMetadata()
+ statusCode: number;
- @SpeakeasyMetadata()
- rawResponse?: AxiosResponse;
+ /**
+ * Raw HTTP response; suitable for custom response parsing
+ */
+ @SpeakeasyMetadata()
+ rawResponse?: AxiosResponse;
}
diff --git a/src/sdk/models/shared/chatcompletionfunctions.ts b/src/sdk/models/shared/chatcompletionfunctions.ts
new file mode 100755
index 0000000..1d07e95
--- /dev/null
+++ b/src/sdk/models/shared/chatcompletionfunctions.ts
@@ -0,0 +1,33 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import { Expose } from "class-transformer";
+
+export class ChatCompletionFunctions extends SpeakeasyBase {
+ /**
+ * A description of what the function does, used by the model to choose when and how to call the function.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "description" })
+ description?: string;
+
+ /**
+ * The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "name" })
+ name: string;
+
+ /**
+ * The parameters the functions accepts, described as a JSON Schema object. See the [guide](/docs/guides/gpt/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format.
+ *
+ * @remarks
+ *
+ * To describe a function that accepts no parameters, provide the value `{"type": "object", "properties": {}}`.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "parameters" })
+ parameters: Record;
+}
diff --git a/src/sdk/models/shared/chatcompletionrequestmessage.ts b/src/sdk/models/shared/chatcompletionrequestmessage.ts
index da5b413..7118e65 100755
--- a/src/sdk/models/shared/chatcompletionrequestmessage.ts
+++ b/src/sdk/models/shared/chatcompletionrequestmessage.ts
@@ -3,36 +3,64 @@
*/
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
-import { Expose } from "class-transformer";
+import { Expose, Type } from "class-transformer";
/**
- * The role of the author of this message.
+ * The name and arguments of a function that should be called, as generated by the model.
*/
-export enum ChatCompletionRequestMessageRoleEnum {
- System = "system",
- User = "user",
- Assistant = "assistant",
+export class ChatCompletionRequestMessageFunctionCall extends SpeakeasyBase {
+ /**
+ * The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may hallucinate parameters not defined by your function schema. Validate the arguments in your code before calling your function.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "arguments" })
+ arguments: string;
+
+ /**
+ * The name of the function to call.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "name" })
+ name: string;
+}
+
+/**
+ * The role of the messages author. One of `system`, `user`, `assistant`, or `function`.
+ */
+export enum ChatCompletionRequestMessageRole {
+ System = "system",
+ User = "user",
+ Assistant = "assistant",
+ Function = "function",
}
export class ChatCompletionRequestMessage extends SpeakeasyBase {
- /**
- * The contents of the message
- */
- @SpeakeasyMetadata()
- @Expose({ name: "content" })
- content: string;
-
- /**
- * The name of the user in a multi-user chat
- */
- @SpeakeasyMetadata()
- @Expose({ name: "name" })
- name?: string;
-
- /**
- * The role of the author of this message.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "role" })
- role: ChatCompletionRequestMessageRoleEnum;
+ /**
+ * The contents of the message. `content` is required for all messages, and may be null for assistant messages with function calls.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "content" })
+ content: string;
+
+ /**
+ * The name and arguments of a function that should be called, as generated by the model.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "function_call" })
+ @Type(() => ChatCompletionRequestMessageFunctionCall)
+ functionCall?: ChatCompletionRequestMessageFunctionCall;
+
+ /**
+ * The name of the author of this message. `name` is required if role is `function`, and it should be the name of the function whose response is in the `content`. May contain a-z, A-Z, 0-9, and underscores, with a maximum length of 64 characters.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "name" })
+ name?: string;
+
+ /**
+ * The role of the messages author. One of `system`, `user`, `assistant`, or `function`.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "role" })
+ role: ChatCompletionRequestMessageRole;
}
diff --git a/src/sdk/models/shared/chatcompletionresponsemessage.ts b/src/sdk/models/shared/chatcompletionresponsemessage.ts
index 60ddc96..1a7493c 100755
--- a/src/sdk/models/shared/chatcompletionresponsemessage.ts
+++ b/src/sdk/models/shared/chatcompletionresponsemessage.ts
@@ -3,29 +3,60 @@
*/
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
-import { Expose } from "class-transformer";
+import { Expose, Type } from "class-transformer";
+
+/**
+ * The name and arguments of a function that should be called, as generated by the model.
+ */
+export class ChatCompletionResponseMessageFunctionCall extends SpeakeasyBase {
+ /**
+ * The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may hallucinate parameters not defined by your function schema. Validate the arguments in your code before calling your function.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "arguments" })
+ arguments: string;
+
+ /**
+ * The name of the function to call.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "name" })
+ name: string;
+}
/**
* The role of the author of this message.
*/
-export enum ChatCompletionResponseMessageRoleEnum {
- System = "system",
- User = "user",
- Assistant = "assistant",
+export enum ChatCompletionResponseMessageRole {
+ System = "system",
+ User = "user",
+ Assistant = "assistant",
+ Function = "function",
}
+/**
+ * A chat completion message generated by the model.
+ */
export class ChatCompletionResponseMessage extends SpeakeasyBase {
- /**
- * The contents of the message
- */
- @SpeakeasyMetadata()
- @Expose({ name: "content" })
- content: string;
+ /**
+ * The contents of the message.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "content" })
+ content: string;
+
+ /**
+ * The name and arguments of a function that should be called, as generated by the model.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "function_call" })
+ @Type(() => ChatCompletionResponseMessageFunctionCall)
+ functionCall?: ChatCompletionResponseMessageFunctionCall;
- /**
- * The role of the author of this message.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "role" })
- role: ChatCompletionResponseMessageRoleEnum;
+ /**
+ * The role of the author of this message.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "role" })
+ role: ChatCompletionResponseMessageRole;
}
diff --git a/src/sdk/models/shared/completionusage.ts b/src/sdk/models/shared/completionusage.ts
new file mode 100755
index 0000000..4bed6d8
--- /dev/null
+++ b/src/sdk/models/shared/completionusage.ts
@@ -0,0 +1,32 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import { Expose } from "class-transformer";
+
+/**
+ * Usage statistics for the completion request.
+ */
+export class CompletionUsage extends SpeakeasyBase {
+ /**
+ * Number of tokens in the generated completion.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "completion_tokens" })
+ completionTokens: number;
+
+ /**
+ * Number of tokens in the prompt.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "prompt_tokens" })
+ promptTokens: number;
+
+ /**
+ * Total number of tokens used in the request (prompt + completion).
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "total_tokens" })
+ totalTokens: number;
+}
diff --git a/src/sdk/models/shared/createanswerrequest.ts b/src/sdk/models/shared/createanswerrequest.ts
deleted file mode 100755
index 3337acb..0000000
--- a/src/sdk/models/shared/createanswerrequest.ts
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
- */
-
-import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
-import { Expose } from "class-transformer";
-
-export class CreateAnswerRequest extends SpeakeasyBase {
- /**
- * List of documents from which the answer for the input `question` should be derived. If this is an empty list, the question will be answered based on the question-answer examples.
- *
- * @remarks
- *
- * You should specify either `documents` or a `file`, but not both.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "documents" })
- documents?: string[];
-
- /**
- * List of (question, answer) pairs that will help steer the model towards the tone and answer format you'd like. We recommend adding 2 to 3 examples.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "examples" })
- examples: string[][];
-
- /**
- * A text snippet containing the contextual information used to generate the answers for the `examples` you provide.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "examples_context" })
- examplesContext: string;
-
- /**
- * If an object name is in the list, we provide the full information of the object; otherwise, we only provide the object ID. Currently we support `completion` and `file` objects for expansion.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "expand" })
- expand?: any[];
-
- /**
- * The ID of an uploaded file that contains documents to search over. See [upload file](/docs/api-reference/files/upload) for how to upload a file of the desired format and purpose.
- *
- * @remarks
- *
- * You should specify either `documents` or a `file`, but not both.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "file" })
- file?: string;
-
- @SpeakeasyMetadata()
- @Expose({ name: "logit_bias" })
- logitBias?: any;
-
- /**
- * Include the log probabilities on the `logprobs` most likely tokens, as well the chosen tokens. For example, if `logprobs` is 5, the API will return a list of the 5 most likely tokens. The API will always return the `logprob` of the sampled token, so there may be up to `logprobs+1` elements in the response.
- *
- * @remarks
- *
- * The maximum value for `logprobs` is 5. If you need more than this, please contact us through our [Help center](https://help.openai.com) and describe your use case.
- *
- * When `logprobs` is set, `completion` will be automatically added into `expand` to get the logprobs.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "logprobs" })
- logprobs?: number;
-
- /**
- * The maximum number of documents to be ranked by [Search](/docs/api-reference/searches/create) when using `file`. Setting it to a higher value leads to improved accuracy but with increased latency and cost.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "max_rerank" })
- maxRerank?: number;
-
- /**
- * The maximum number of tokens allowed for the generated answer
- */
- @SpeakeasyMetadata()
- @Expose({ name: "max_tokens" })
- maxTokens?: number;
-
- /**
- * ID of the model to use for completion. You can select one of `ada`, `babbage`, `curie`, or `davinci`.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "model" })
- model: string;
-
- /**
- * How many answers to generate for each question.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "n" })
- n?: number;
-
- /**
- * Question to get answered.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "question" })
- question: string;
-
- @SpeakeasyMetadata()
- @Expose({ name: "return_metadata" })
- returnMetadata?: any;
-
- /**
- * If set to `true`, the returned JSON will include a "prompt" field containing the final prompt that was used to request a completion. This is mainly useful for debugging purposes.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "return_prompt" })
- returnPrompt?: boolean;
-
- /**
- * ID of the model to use for [Search](/docs/api-reference/searches/create). You can select one of `ada`, `babbage`, `curie`, or `davinci`.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "search_model" })
- searchModel?: string;
-
- /**
- * completions_stop_description
- */
- @SpeakeasyMetadata()
- @Expose({ name: "stop" })
- stop?: any;
-
- /**
- * What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "temperature" })
- temperature?: number;
-
- @SpeakeasyMetadata()
- @Expose({ name: "user" })
- user?: any;
-}
diff --git a/src/sdk/models/shared/createanswerresponse.ts b/src/sdk/models/shared/createanswerresponse.ts
deleted file mode 100755
index e65ad81..0000000
--- a/src/sdk/models/shared/createanswerresponse.ts
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
- */
-
-import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
-import { Expose, Type } from "class-transformer";
-
-export class CreateAnswerResponseSelectedDocuments extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "document" })
- document?: number;
-
- @SpeakeasyMetadata()
- @Expose({ name: "text" })
- text?: string;
-}
-
-/**
- * OK
- */
-export class CreateAnswerResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "answers" })
- answers?: string[];
-
- @SpeakeasyMetadata()
- @Expose({ name: "completion" })
- completion?: string;
-
- @SpeakeasyMetadata()
- @Expose({ name: "model" })
- model?: string;
-
- @SpeakeasyMetadata()
- @Expose({ name: "object" })
- object?: string;
-
- @SpeakeasyMetadata()
- @Expose({ name: "search_model" })
- searchModel?: string;
-
- @SpeakeasyMetadata({ elemType: CreateAnswerResponseSelectedDocuments })
- @Expose({ name: "selected_documents" })
- @Type(() => CreateAnswerResponseSelectedDocuments)
- selectedDocuments?: CreateAnswerResponseSelectedDocuments[];
-}
diff --git a/src/sdk/models/shared/createchatcompletionrequest.ts b/src/sdk/models/shared/createchatcompletionrequest.ts
index d02e17f..5cb0f87 100755
--- a/src/sdk/models/shared/createchatcompletionrequest.ts
+++ b/src/sdk/models/shared/createchatcompletionrequest.ts
@@ -3,103 +3,150 @@
*/
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import { ChatCompletionFunctions } from "./chatcompletionfunctions";
import { ChatCompletionRequestMessage } from "./chatcompletionrequestmessage";
import { Expose, Type } from "class-transformer";
export class CreateChatCompletionRequest extends SpeakeasyBase {
- /**
- * completions_frequency_penalty_description
- */
- @SpeakeasyMetadata()
- @Expose({ name: "frequency_penalty" })
- frequencyPenalty?: number;
+ /**
+ * Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
+ *
+ * @remarks
+ *
+ * [See more information about frequency and presence penalties.](/docs/guides/gpt/parameter-details)
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "frequency_penalty" })
+ frequencyPenalty?: number;
- /**
- * Modify the likelihood of specified tokens appearing in the completion.
- *
- * @remarks
- *
- * Accepts a json object that maps tokens (specified by their token ID in the tokenizer) to an associated bias value from -100 to 100. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "logit_bias" })
- logitBias?: Record;
+ /**
+ * Controls how the model calls functions. "none" means the model will not call a function and instead generates a message. "auto" means the model can pick between generating a message or calling a function. Specifying a particular function via `{"name": "my_function"}` forces the model to call that function. "none" is the default when no functions are present. "auto" is the default if functions are present.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "function_call" })
+ functionCall?: any;
- /**
- * The maximum number of tokens allowed for the generated answer. By default, the number of tokens the model can return will be (4096 - prompt tokens).
- *
- * @remarks
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "max_tokens" })
- maxTokens?: number;
+ /**
+ * A list of functions the model may generate JSON inputs for.
+ */
+ @SpeakeasyMetadata({ elemType: ChatCompletionFunctions })
+ @Expose({ name: "functions" })
+ @Type(() => ChatCompletionFunctions)
+ functions?: ChatCompletionFunctions[];
- /**
- * The messages to generate chat completions for, in the [chat format](/docs/guides/chat/introduction).
- */
- @SpeakeasyMetadata({ elemType: ChatCompletionRequestMessage })
- @Expose({ name: "messages" })
- @Type(() => ChatCompletionRequestMessage)
- messages: ChatCompletionRequestMessage[];
+ /**
+ * Modify the likelihood of specified tokens appearing in the completion.
+ *
+ * @remarks
+ *
+ * Accepts a json object that maps tokens (specified by their token ID in the tokenizer) to an associated bias value from -100 to 100. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "logit_bias" })
+ logitBias?: Record;
- /**
- * ID of the model to use. Currently, only `gpt-3.5-turbo` and `gpt-3.5-turbo-0301` are supported.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "model" })
- model: string;
+ /**
+ * The maximum number of [tokens](/tokenizer) to generate in the chat completion.
+ *
+ * @remarks
+ *
+ * The total length of input tokens and generated tokens is limited by the model's context length. [Example Python code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "max_tokens" })
+ maxTokens?: number;
- /**
- * How many chat completion choices to generate for each input message.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "n" })
- n?: number;
+ /**
+ * A list of messages comprising the conversation so far. [Example Python code](https://cookbook.openai.com/examples/how_to_format_inputs_to_chatgpt_models).
+ */
+ @SpeakeasyMetadata({ elemType: ChatCompletionRequestMessage })
+ @Expose({ name: "messages" })
+ @Type(() => ChatCompletionRequestMessage)
+ messages: ChatCompletionRequestMessage[];
- /**
- * completions_presence_penalty_description
- */
- @SpeakeasyMetadata()
- @Expose({ name: "presence_penalty" })
- presencePenalty?: number;
+ /**
+ * ID of the model to use. See the [model endpoint compatibility](/docs/models/model-endpoint-compatibility) table for details on which models work with the Chat API.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "model" })
+ model: any;
- /**
- * Up to 4 sequences where the API will stop generating further tokens.
- *
- * @remarks
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "stop" })
- stop?: any;
+ /**
+ * How many chat completion choices to generate for each input message.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "n" })
+ n?: number;
- /**
- * If set, partial message deltas will be sent, like in ChatGPT. Tokens will be sent as data-only [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format) as they become available, with the stream terminated by a `data: [DONE]` message.
- *
- * @remarks
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "stream" })
- stream?: boolean;
+ /**
+ * Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.
+ *
+ * @remarks
+ *
+ * [See more information about frequency and presence penalties.](/docs/guides/gpt/parameter-details)
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "presence_penalty" })
+ presencePenalty?: number;
- /**
- * completions_temperature_description
- */
- @SpeakeasyMetadata()
- @Expose({ name: "temperature" })
- temperature?: number;
+ /**
+ * Up to 4 sequences where the API will stop generating further tokens.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "stop" })
+ stop?: any;
- /**
- * completions_top_p_description
- */
- @SpeakeasyMetadata()
- @Expose({ name: "top_p" })
- topP?: number;
+ /**
+ * If set, partial message deltas will be sent, like in ChatGPT. Tokens will be sent as data-only [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format) as they become available, with the stream terminated by a `data: [DONE]` message. [Example Python code](https://cookbook.openai.com/examples/how_to_stream_completions).
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "stream" })
+ stream?: boolean;
- @SpeakeasyMetadata()
- @Expose({ name: "user" })
- user?: any;
+ /**
+ * What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.
+ *
+ * @remarks
+ *
+ * We generally recommend altering this or `top_p` but not both.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "temperature" })
+ temperature?: number;
+
+ /**
+ * An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.
+ *
+ * @remarks
+ *
+ * We generally recommend altering this or `temperature` but not both.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "top_p" })
+ topP?: number;
+
+ /**
+ * A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "user" })
+ user?: string;
}
diff --git a/src/sdk/models/shared/createchatcompletionresponse.ts b/src/sdk/models/shared/createchatcompletionresponse.ts
index 853a0dc..7157336 100755
--- a/src/sdk/models/shared/createchatcompletionresponse.ts
+++ b/src/sdk/models/shared/createchatcompletionresponse.ts
@@ -4,64 +4,100 @@
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
import { ChatCompletionResponseMessage } from "./chatcompletionresponsemessage";
+import { CompletionUsage } from "./completionusage";
import { Expose, Type } from "class-transformer";
-export class CreateChatCompletionResponseChoices extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "finish_reason" })
- finishReason?: string;
-
- @SpeakeasyMetadata()
- @Expose({ name: "index" })
- index?: number;
-
- @SpeakeasyMetadata()
- @Expose({ name: "message" })
- @Type(() => ChatCompletionResponseMessage)
- message?: ChatCompletionResponseMessage;
+/**
+ * The reason the model stopped generating tokens. This will be `stop` if the model hit a natural stop point or a provided stop sequence,
+ *
+ * @remarks
+ * `length` if the maximum number of tokens specified in the request was reached,
+ * `content_filter` if content was omitted due to a flag from our content filters,
+ * or `function_call` if the model called a function.
+ *
+ */
+export enum CreateChatCompletionResponseChoicesFinishReason {
+ Stop = "stop",
+ Length = "length",
+ FunctionCall = "function_call",
+ ContentFilter = "content_filter",
}
-export class CreateChatCompletionResponseUsage extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "completion_tokens" })
- completionTokens: number;
+export class CreateChatCompletionResponseChoices extends SpeakeasyBase {
+ /**
+ * The reason the model stopped generating tokens. This will be `stop` if the model hit a natural stop point or a provided stop sequence,
+ *
+ * @remarks
+ * `length` if the maximum number of tokens specified in the request was reached,
+ * `content_filter` if content was omitted due to a flag from our content filters,
+ * or `function_call` if the model called a function.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "finish_reason" })
+ finishReason: CreateChatCompletionResponseChoicesFinishReason;
- @SpeakeasyMetadata()
- @Expose({ name: "prompt_tokens" })
- promptTokens: number;
+ /**
+ * The index of the choice in the list of choices.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "index" })
+ index: number;
- @SpeakeasyMetadata()
- @Expose({ name: "total_tokens" })
- totalTokens: number;
+ /**
+ * A chat completion message generated by the model.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "message" })
+ @Type(() => ChatCompletionResponseMessage)
+ message: ChatCompletionResponseMessage;
}
/**
- * OK
+ * Represents a chat completion response returned by model, based on the provided input.
*/
export class CreateChatCompletionResponse extends SpeakeasyBase {
- @SpeakeasyMetadata({ elemType: CreateChatCompletionResponseChoices })
- @Expose({ name: "choices" })
- @Type(() => CreateChatCompletionResponseChoices)
- choices: CreateChatCompletionResponseChoices[];
+ /**
+ * A list of chat completion choices. Can be more than one if `n` is greater than 1.
+ */
+ @SpeakeasyMetadata({ elemType: CreateChatCompletionResponseChoices })
+ @Expose({ name: "choices" })
+ @Type(() => CreateChatCompletionResponseChoices)
+ choices: CreateChatCompletionResponseChoices[];
- @SpeakeasyMetadata()
- @Expose({ name: "created" })
- created: number;
+ /**
+ * The Unix timestamp (in seconds) of when the chat completion was created.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "created" })
+ created: number;
- @SpeakeasyMetadata()
- @Expose({ name: "id" })
- id: string;
+ /**
+ * A unique identifier for the chat completion.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "id" })
+ id: string;
- @SpeakeasyMetadata()
- @Expose({ name: "model" })
- model: string;
+ /**
+ * The model used for the chat completion.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "model" })
+ model: string;
- @SpeakeasyMetadata()
- @Expose({ name: "object" })
- object: string;
+ /**
+ * The object type, which is always `chat.completion`.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "object" })
+ object: string;
- @SpeakeasyMetadata()
- @Expose({ name: "usage" })
- @Type(() => CreateChatCompletionResponseUsage)
- usage?: CreateChatCompletionResponseUsage;
+ /**
+ * Usage statistics for the completion request.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "usage" })
+ @Type(() => CompletionUsage)
+ usage?: CompletionUsage;
}
diff --git a/src/sdk/models/shared/createclassificationrequest.ts b/src/sdk/models/shared/createclassificationrequest.ts
deleted file mode 100755
index f28dc67..0000000
--- a/src/sdk/models/shared/createclassificationrequest.ts
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
- */
-
-import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
-import { Expose } from "class-transformer";
-
-export class CreateClassificationRequest extends SpeakeasyBase {
- /**
- * A list of examples with labels, in the following format:
- *
- * @remarks
- *
- * `[["The movie is so interesting.", "Positive"], ["It is quite boring.", "Negative"], ...]`
- *
- * All the label strings will be normalized to be capitalized.
- *
- * You should specify either `examples` or `file`, but not both.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "examples" })
- examples?: string[][];
-
- @SpeakeasyMetadata()
- @Expose({ name: "expand" })
- expand?: any;
-
- /**
- * The ID of the uploaded file that contains training examples. See [upload file](/docs/api-reference/files/upload) for how to upload a file of the desired format and purpose.
- *
- * @remarks
- *
- * You should specify either `examples` or `file`, but not both.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "file" })
- file?: string;
-
- /**
- * The set of categories being classified. If not specified, candidate labels will be automatically collected from the examples you provide. All the label strings will be normalized to be capitalized.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "labels" })
- labels?: string[];
-
- @SpeakeasyMetadata()
- @Expose({ name: "logit_bias" })
- logitBias?: any;
-
- @SpeakeasyMetadata()
- @Expose({ name: "logprobs" })
- logprobs?: any;
-
- /**
- * The maximum number of examples to be ranked by [Search](/docs/api-reference/searches/create) when using `file`. Setting it to a higher value leads to improved accuracy but with increased latency and cost.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "max_examples" })
- maxExamples?: number;
-
- @SpeakeasyMetadata()
- @Expose({ name: "model" })
- model: any;
-
- /**
- * Query to be classified.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "query" })
- query: string;
-
- @SpeakeasyMetadata()
- @Expose({ name: "return_metadata" })
- returnMetadata?: any;
-
- @SpeakeasyMetadata()
- @Expose({ name: "return_prompt" })
- returnPrompt?: any;
-
- @SpeakeasyMetadata()
- @Expose({ name: "search_model" })
- searchModel?: any;
-
- /**
- * What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "temperature" })
- temperature?: number;
-
- @SpeakeasyMetadata()
- @Expose({ name: "user" })
- user?: any;
-}
diff --git a/src/sdk/models/shared/createclassificationresponse.ts b/src/sdk/models/shared/createclassificationresponse.ts
deleted file mode 100755
index a54116b..0000000
--- a/src/sdk/models/shared/createclassificationresponse.ts
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
- */
-
-import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
-import { Expose, Type } from "class-transformer";
-
-export class CreateClassificationResponseSelectedExamples extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "document" })
- document?: number;
-
- @SpeakeasyMetadata()
- @Expose({ name: "label" })
- label?: string;
-
- @SpeakeasyMetadata()
- @Expose({ name: "text" })
- text?: string;
-}
-
-/**
- * OK
- */
-export class CreateClassificationResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "completion" })
- completion?: string;
-
- @SpeakeasyMetadata()
- @Expose({ name: "label" })
- label?: string;
-
- @SpeakeasyMetadata()
- @Expose({ name: "model" })
- model?: string;
-
- @SpeakeasyMetadata()
- @Expose({ name: "object" })
- object?: string;
-
- @SpeakeasyMetadata()
- @Expose({ name: "search_model" })
- searchModel?: string;
-
- @SpeakeasyMetadata({ elemType: CreateClassificationResponseSelectedExamples })
- @Expose({ name: "selected_examples" })
- @Type(() => CreateClassificationResponseSelectedExamples)
- selectedExamples?: CreateClassificationResponseSelectedExamples[];
-}
diff --git a/src/sdk/models/shared/createcompletionrequest.ts b/src/sdk/models/shared/createcompletionrequest.ts
index 0b50e5d..5e5c56a 100755
--- a/src/sdk/models/shared/createcompletionrequest.ts
+++ b/src/sdk/models/shared/createcompletionrequest.ts
@@ -6,181 +6,184 @@ import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
import { Expose } from "class-transformer";
export class CreateCompletionRequest extends SpeakeasyBase {
- /**
- * Generates `best_of` completions server-side and returns the "best" (the one with the highest log probability per token). Results cannot be streamed.
- *
- * @remarks
- *
- * When used with `n`, `best_of` controls the number of candidate completions and `n` specifies how many to return – `best_of` must be greater than `n`.
- *
- * **Note:** Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for `max_tokens` and `stop`.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "best_of" })
- bestOf?: number;
-
- /**
- * Echo back the prompt in addition to the completion
- *
- * @remarks
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "echo" })
- echo?: boolean;
-
- /**
- * Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
- *
- * @remarks
- *
- * [See more information about frequency and presence penalties.](/docs/api-reference/parameter-details)
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "frequency_penalty" })
- frequencyPenalty?: number;
-
- /**
- * Modify the likelihood of specified tokens appearing in the completion.
- *
- * @remarks
- *
- * Accepts a json object that maps tokens (specified by their token ID in the GPT tokenizer) to an associated bias value from -100 to 100. You can use this [tokenizer tool](/tokenizer?view=bpe) (which works for both GPT-2 and GPT-3) to convert text to token IDs. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token.
- *
- * As an example, you can pass `{"50256": -100}` to prevent the <|endoftext|> token from being generated.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "logit_bias" })
- logitBias?: Record;
-
- /**
- * Include the log probabilities on the `logprobs` most likely tokens, as well the chosen tokens. For example, if `logprobs` is 5, the API will return a list of the 5 most likely tokens. The API will always return the `logprob` of the sampled token, so there may be up to `logprobs+1` elements in the response.
- *
- * @remarks
- *
- * The maximum value for `logprobs` is 5. If you need more than this, please contact us through our [Help center](https://help.openai.com) and describe your use case.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "logprobs" })
- logprobs?: number;
-
- /**
- * The maximum number of [tokens](/tokenizer) to generate in the completion.
- *
- * @remarks
- *
- * The token count of your prompt plus `max_tokens` cannot exceed the model's context length. Most models have a context length of 2048 tokens (except for the newest models, which support 4096).
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "max_tokens" })
- maxTokens?: number;
-
- /**
- * ID of the model to use. You can use the [List models](/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](/docs/models/overview) for descriptions of them.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "model" })
- model: string;
-
- /**
- * How many completions to generate for each prompt.
- *
- * @remarks
- *
- * **Note:** Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for `max_tokens` and `stop`.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "n" })
- n?: number;
-
- /**
- * Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.
- *
- * @remarks
- *
- * [See more information about frequency and presence penalties.](/docs/api-reference/parameter-details)
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "presence_penalty" })
- presencePenalty?: number;
-
- /**
- * The prompt(s) to generate completions for, encoded as a string, array of strings, array of tokens, or array of token arrays.
- *
- * @remarks
- *
- * Note that <|endoftext|> is the document separator that the model sees during training, so if a prompt is not specified the model will generate as if from the beginning of a new document.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "prompt" })
- prompt?: any;
-
- /**
- * Up to 4 sequences where the API will stop generating further tokens. The returned text will not contain the stop sequence.
- *
- * @remarks
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "stop" })
- stop?: any;
-
- /**
- * Whether to stream back partial progress. If set, tokens will be sent as data-only [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format) as they become available, with the stream terminated by a `data: [DONE]` message.
- *
- * @remarks
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "stream" })
- stream?: boolean;
-
- /**
- * The suffix that comes after a completion of inserted text.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "suffix" })
- suffix?: string;
-
- /**
- * What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.
- *
- * @remarks
- *
- * We generally recommend altering this or `top_p` but not both.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "temperature" })
- temperature?: number;
-
- /**
- * An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.
- *
- * @remarks
- *
- * We generally recommend altering this or `temperature` but not both.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "top_p" })
- topP?: number;
-
- /**
- * A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).
- *
- * @remarks
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "user" })
- user?: string;
+ /**
+ * Generates `best_of` completions server-side and returns the "best" (the one with the highest log probability per token). Results cannot be streamed.
+ *
+ * @remarks
+ *
+ * When used with `n`, `best_of` controls the number of candidate completions and `n` specifies how many to return – `best_of` must be greater than `n`.
+ *
+ * **Note:** Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for `max_tokens` and `stop`.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "best_of" })
+ bestOf?: number;
+
+ /**
+ * Echo back the prompt in addition to the completion
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "echo" })
+ echo?: boolean;
+
+ /**
+ * Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
+ *
+ * @remarks
+ *
+ * [See more information about frequency and presence penalties.](/docs/guides/gpt/parameter-details)
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "frequency_penalty" })
+ frequencyPenalty?: number;
+
+ /**
+ * Modify the likelihood of specified tokens appearing in the completion.
+ *
+ * @remarks
+ *
+ * Accepts a json object that maps tokens (specified by their token ID in the GPT tokenizer) to an associated bias value from -100 to 100. You can use this [tokenizer tool](/tokenizer?view=bpe) (which works for both GPT-2 and GPT-3) to convert text to token IDs. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token.
+ *
+ * As an example, you can pass `{"50256": -100}` to prevent the <|endoftext|> token from being generated.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "logit_bias" })
+ logitBias?: Record;
+
+ /**
+ * Include the log probabilities on the `logprobs` most likely tokens, as well the chosen tokens. For example, if `logprobs` is 5, the API will return a list of the 5 most likely tokens. The API will always return the `logprob` of the sampled token, so there may be up to `logprobs+1` elements in the response.
+ *
+ * @remarks
+ *
+ * The maximum value for `logprobs` is 5.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "logprobs" })
+ logprobs?: number;
+
+ /**
+ * The maximum number of [tokens](/tokenizer) to generate in the completion.
+ *
+ * @remarks
+ *
+ * The token count of your prompt plus `max_tokens` cannot exceed the model's context length. [Example Python code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "max_tokens" })
+ maxTokens?: number;
+
+ /**
+ * ID of the model to use. You can use the [List models](/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](/docs/models/overview) for descriptions of them.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "model" })
+ model: any;
+
+ /**
+ * How many completions to generate for each prompt.
+ *
+ * @remarks
+ *
+ * **Note:** Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for `max_tokens` and `stop`.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "n" })
+ n?: number;
+
+ /**
+ * Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.
+ *
+ * @remarks
+ *
+ * [See more information about frequency and presence penalties.](/docs/guides/gpt/parameter-details)
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "presence_penalty" })
+ presencePenalty?: number;
+
+ /**
+ * The prompt(s) to generate completions for, encoded as a string, array of strings, array of tokens, or array of token arrays.
+ *
+ * @remarks
+ *
+ * Note that <|endoftext|> is the document separator that the model sees during training, so if a prompt is not specified the model will generate as if from the beginning of a new document.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "prompt" })
+ prompt: any;
+
+ /**
+ * Up to 4 sequences where the API will stop generating further tokens. The returned text will not contain the stop sequence.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "stop" })
+ stop?: any;
+
+ /**
+ * Whether to stream back partial progress. If set, tokens will be sent as data-only [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format) as they become available, with the stream terminated by a `data: [DONE]` message. [Example Python code](https://cookbook.openai.com/examples/how_to_stream_completions).
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "stream" })
+ stream?: boolean;
+
+ /**
+ * The suffix that comes after a completion of inserted text.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "suffix" })
+ suffix?: string;
+
+ /**
+ * What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.
+ *
+ * @remarks
+ *
+ * We generally recommend altering this or `top_p` but not both.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "temperature" })
+ temperature?: number;
+
+ /**
+ * An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.
+ *
+ * @remarks
+ *
+ * We generally recommend altering this or `temperature` but not both.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "top_p" })
+ topP?: number;
+
+ /**
+ * A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "user" })
+ user?: string;
}
diff --git a/src/sdk/models/shared/createcompletionresponse.ts b/src/sdk/models/shared/createcompletionresponse.ts
index c596a91..efedade 100755
--- a/src/sdk/models/shared/createcompletionresponse.ts
+++ b/src/sdk/models/shared/createcompletionresponse.ts
@@ -3,86 +3,116 @@
*/
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import { CompletionUsage } from "./completionusage";
import { Expose, Type } from "class-transformer";
+/**
+ * The reason the model stopped generating tokens. This will be `stop` if the model hit a natural stop point or a provided stop sequence,
+ *
+ * @remarks
+ * `length` if the maximum number of tokens specified in the request was reached,
+ * or `content_filter` if content was omitted due to a flag from our content filters.
+ *
+ */
+export enum CreateCompletionResponseChoicesFinishReason {
+ Stop = "stop",
+ Length = "length",
+ ContentFilter = "content_filter",
+}
+
export class CreateCompletionResponseChoicesLogprobs extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "text_offset" })
- textOffset?: number[];
+ @SpeakeasyMetadata()
+ @Expose({ name: "text_offset" })
+ textOffset?: number[];
- @SpeakeasyMetadata()
- @Expose({ name: "token_logprobs" })
- tokenLogprobs?: number[];
+ @SpeakeasyMetadata()
+ @Expose({ name: "token_logprobs" })
+ tokenLogprobs?: number[];
- @SpeakeasyMetadata()
- @Expose({ name: "tokens" })
- tokens?: string[];
+ @SpeakeasyMetadata()
+ @Expose({ name: "tokens" })
+ tokens?: string[];
- @SpeakeasyMetadata()
- @Expose({ name: "top_logprobs" })
- topLogprobs?: Record[];
+ @SpeakeasyMetadata()
+ @Expose({ name: "top_logprobs" })
+ topLogprobs?: Record[];
}
export class CreateCompletionResponseChoices extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "finish_reason" })
- finishReason?: string;
-
- @SpeakeasyMetadata()
- @Expose({ name: "index" })
- index?: number;
-
- @SpeakeasyMetadata()
- @Expose({ name: "logprobs" })
- @Type(() => CreateCompletionResponseChoicesLogprobs)
- logprobs?: CreateCompletionResponseChoicesLogprobs;
-
- @SpeakeasyMetadata()
- @Expose({ name: "text" })
- text?: string;
-}
-
-export class CreateCompletionResponseUsage extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "completion_tokens" })
- completionTokens: number;
-
- @SpeakeasyMetadata()
- @Expose({ name: "prompt_tokens" })
- promptTokens: number;
-
- @SpeakeasyMetadata()
- @Expose({ name: "total_tokens" })
- totalTokens: number;
+ /**
+ * The reason the model stopped generating tokens. This will be `stop` if the model hit a natural stop point or a provided stop sequence,
+ *
+ * @remarks
+ * `length` if the maximum number of tokens specified in the request was reached,
+ * or `content_filter` if content was omitted due to a flag from our content filters.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "finish_reason" })
+ finishReason: CreateCompletionResponseChoicesFinishReason;
+
+ @SpeakeasyMetadata()
+ @Expose({ name: "index" })
+ index: number;
+
+ @SpeakeasyMetadata()
+ @Expose({ name: "logprobs" })
+ @Type(() => CreateCompletionResponseChoicesLogprobs)
+ logprobs: CreateCompletionResponseChoicesLogprobs;
+
+ @SpeakeasyMetadata()
+ @Expose({ name: "text" })
+ text: string;
}
/**
- * OK
+ * Represents a completion response from the API. Note: both the streamed and non-streamed response objects share the same shape (unlike the chat endpoint).
+ *
+ * @remarks
+ *
*/
export class CreateCompletionResponse extends SpeakeasyBase {
- @SpeakeasyMetadata({ elemType: CreateCompletionResponseChoices })
- @Expose({ name: "choices" })
- @Type(() => CreateCompletionResponseChoices)
- choices: CreateCompletionResponseChoices[];
-
- @SpeakeasyMetadata()
- @Expose({ name: "created" })
- created: number;
-
- @SpeakeasyMetadata()
- @Expose({ name: "id" })
- id: string;
-
- @SpeakeasyMetadata()
- @Expose({ name: "model" })
- model: string;
-
- @SpeakeasyMetadata()
- @Expose({ name: "object" })
- object: string;
-
- @SpeakeasyMetadata()
- @Expose({ name: "usage" })
- @Type(() => CreateCompletionResponseUsage)
- usage?: CreateCompletionResponseUsage;
+ /**
+ * The list of completion choices the model generated for the input prompt.
+ */
+ @SpeakeasyMetadata({ elemType: CreateCompletionResponseChoices })
+ @Expose({ name: "choices" })
+ @Type(() => CreateCompletionResponseChoices)
+ choices: CreateCompletionResponseChoices[];
+
+ /**
+ * The Unix timestamp (in seconds) of when the completion was created.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "created" })
+ created: number;
+
+ /**
+ * A unique identifier for the completion.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "id" })
+ id: string;
+
+ /**
+ * The model used for completion.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "model" })
+ model: string;
+
+ /**
+ * The object type, which is always "text_completion"
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "object" })
+ object: string;
+
+ /**
+ * Usage statistics for the completion request.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "usage" })
+ @Type(() => CompletionUsage)
+ usage?: CompletionUsage;
}
diff --git a/src/sdk/models/shared/createeditrequest.ts b/src/sdk/models/shared/createeditrequest.ts
index 1eab2c9..f219940 100755
--- a/src/sdk/models/shared/createeditrequest.ts
+++ b/src/sdk/models/shared/createeditrequest.ts
@@ -6,45 +6,55 @@ import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
import { Expose } from "class-transformer";
export class CreateEditRequest extends SpeakeasyBase {
- /**
- * The input text to use as a starting point for the edit.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "input" })
- input?: string;
+ /**
+ * The input text to use as a starting point for the edit.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "input" })
+ input?: string;
- /**
- * The instruction that tells the model how to edit the prompt.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "instruction" })
- instruction: string;
+ /**
+ * The instruction that tells the model how to edit the prompt.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "instruction" })
+ instruction: string;
- /**
- * ID of the model to use. You can use the `text-davinci-edit-001` or `code-davinci-edit-001` model with this endpoint.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "model" })
- model: string;
+ /**
+ * ID of the model to use. You can use the `text-davinci-edit-001` or `code-davinci-edit-001` model with this endpoint.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "model" })
+ model: any;
- /**
- * How many edits to generate for the input and instruction.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "n" })
- n?: number;
+ /**
+ * How many edits to generate for the input and instruction.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "n" })
+ n?: number;
- /**
- * completions_temperature_description
- */
- @SpeakeasyMetadata()
- @Expose({ name: "temperature" })
- temperature?: number;
+ /**
+ * What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.
+ *
+ * @remarks
+ *
+ * We generally recommend altering this or `top_p` but not both.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "temperature" })
+ temperature?: number;
- /**
- * completions_top_p_description
- */
- @SpeakeasyMetadata()
- @Expose({ name: "top_p" })
- topP?: number;
+ /**
+ * An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.
+ *
+ * @remarks
+ *
+ * We generally recommend altering this or `temperature` but not both.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "top_p" })
+ topP?: number;
}
diff --git a/src/sdk/models/shared/createeditresponse.ts b/src/sdk/models/shared/createeditresponse.ts
index 4d93bd8..c09844b 100755
--- a/src/sdk/models/shared/createeditresponse.ts
+++ b/src/sdk/models/shared/createeditresponse.ts
@@ -3,78 +3,81 @@
*/
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import { CompletionUsage } from "./completionusage";
import { Expose, Type } from "class-transformer";
-export class CreateEditResponseChoicesLogprobs extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "text_offset" })
- textOffset?: number[];
-
- @SpeakeasyMetadata()
- @Expose({ name: "token_logprobs" })
- tokenLogprobs?: number[];
-
- @SpeakeasyMetadata()
- @Expose({ name: "tokens" })
- tokens?: string[];
-
- @SpeakeasyMetadata()
- @Expose({ name: "top_logprobs" })
- topLogprobs?: Record[];
+/**
+ * The reason the model stopped generating tokens. This will be `stop` if the model hit a natural stop point or a provided stop sequence,
+ *
+ * @remarks
+ * `length` if the maximum number of tokens specified in the request was reached,
+ * or `content_filter` if content was omitted due to a flag from our content filters.
+ *
+ */
+export enum CreateEditResponseChoicesFinishReason {
+ Stop = "stop",
+ Length = "length",
}
export class CreateEditResponseChoices extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "finish_reason" })
- finishReason?: string;
-
- @SpeakeasyMetadata()
- @Expose({ name: "index" })
- index?: number;
-
- @SpeakeasyMetadata()
- @Expose({ name: "logprobs" })
- @Type(() => CreateEditResponseChoicesLogprobs)
- logprobs?: CreateEditResponseChoicesLogprobs;
-
- @SpeakeasyMetadata()
- @Expose({ name: "text" })
- text?: string;
-}
-
-export class CreateEditResponseUsage extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "completion_tokens" })
- completionTokens: number;
-
- @SpeakeasyMetadata()
- @Expose({ name: "prompt_tokens" })
- promptTokens: number;
-
- @SpeakeasyMetadata()
- @Expose({ name: "total_tokens" })
- totalTokens: number;
+ /**
+ * The reason the model stopped generating tokens. This will be `stop` if the model hit a natural stop point or a provided stop sequence,
+ *
+ * @remarks
+ * `length` if the maximum number of tokens specified in the request was reached,
+ * or `content_filter` if content was omitted due to a flag from our content filters.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "finish_reason" })
+ finishReason: CreateEditResponseChoicesFinishReason;
+
+ /**
+ * The index of the choice in the list of choices.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "index" })
+ index: number;
+
+ /**
+ * The edited result.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "text" })
+ text: string;
}
/**
- * OK
+ * @deprecated class: This will be removed in a future release, please migrate away from it as soon as possible.
*/
export class CreateEditResponse extends SpeakeasyBase {
- @SpeakeasyMetadata({ elemType: CreateEditResponseChoices })
- @Expose({ name: "choices" })
- @Type(() => CreateEditResponseChoices)
- choices: CreateEditResponseChoices[];
-
- @SpeakeasyMetadata()
- @Expose({ name: "created" })
- created: number;
-
- @SpeakeasyMetadata()
- @Expose({ name: "object" })
- object: string;
-
- @SpeakeasyMetadata()
- @Expose({ name: "usage" })
- @Type(() => CreateEditResponseUsage)
- usage: CreateEditResponseUsage;
+ /**
+ * A list of edit choices. Can be more than one if `n` is greater than 1.
+ */
+ @SpeakeasyMetadata({ elemType: CreateEditResponseChoices })
+ @Expose({ name: "choices" })
+ @Type(() => CreateEditResponseChoices)
+ choices: CreateEditResponseChoices[];
+
+ /**
+ * The Unix timestamp (in seconds) of when the edit was created.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "created" })
+ created: number;
+
+ /**
+ * The object type, which is always `edit`.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "object" })
+ object: string;
+
+ /**
+ * Usage statistics for the completion request.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "usage" })
+ @Type(() => CompletionUsage)
+ usage: CompletionUsage;
}
diff --git a/src/sdk/models/shared/createembeddingrequest.ts b/src/sdk/models/shared/createembeddingrequest.ts
index ba51bb6..92751cb 100755
--- a/src/sdk/models/shared/createembeddingrequest.ts
+++ b/src/sdk/models/shared/createembeddingrequest.ts
@@ -5,22 +5,49 @@
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
import { Expose } from "class-transformer";
+/**
+ * The format to return the embeddings in. Can be either `float` or [`base64`](https://pypi.org/project/pybase64/).
+ */
+export enum CreateEmbeddingRequestEncodingFormat {
+ Float = "float",
+ Base64 = "base64",
+}
+
export class CreateEmbeddingRequest extends SpeakeasyBase {
- /**
- * Input text to get embeddings for, encoded as a string or array of tokens. To get embeddings for multiple inputs in a single request, pass an array of strings or array of token arrays. Each input must not exceed 8192 tokens in length.
- *
- * @remarks
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "input" })
- input: any;
+ /**
+ * The format to return the embeddings in. Can be either `float` or [`base64`](https://pypi.org/project/pybase64/).
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "encoding_format" })
+ encodingFormat?: CreateEmbeddingRequestEncodingFormat;
+
+ /**
+ * Input text to embed, encoded as a string or array of tokens. To embed multiple inputs in a single request, pass an array of strings or array of token arrays. The input must not exceed the max input tokens for the model (8192 tokens for `text-embedding-ada-002`) and cannot be an empty string. [Example Python code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "input" })
+ input: any;
- @SpeakeasyMetadata()
- @Expose({ name: "model" })
- model: any;
+ /**
+ * ID of the model to use. You can use the [List models](/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](/docs/models/overview) for descriptions of them.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "model" })
+ model: any;
- @SpeakeasyMetadata()
- @Expose({ name: "user" })
- user?: any;
+ /**
+ * A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "user" })
+ user?: string;
}
diff --git a/src/sdk/models/shared/createembeddingresponse.ts b/src/sdk/models/shared/createembeddingresponse.ts
index b46fe48..394bff5 100755
--- a/src/sdk/models/shared/createembeddingresponse.ts
+++ b/src/sdk/models/shared/createembeddingresponse.ts
@@ -3,51 +3,56 @@
*/
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import { Embedding } from "./embedding";
import { Expose, Type } from "class-transformer";
-export class CreateEmbeddingResponseData extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "embedding" })
- embedding: number[];
-
- @SpeakeasyMetadata()
- @Expose({ name: "index" })
- index: number;
-
- @SpeakeasyMetadata()
- @Expose({ name: "object" })
- object: string;
-}
-
+/**
+ * The usage information for the request.
+ */
export class CreateEmbeddingResponseUsage extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "prompt_tokens" })
- promptTokens: number;
-
- @SpeakeasyMetadata()
- @Expose({ name: "total_tokens" })
- totalTokens: number;
+ /**
+ * The number of tokens used by the prompt.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "prompt_tokens" })
+ promptTokens: number;
+
+ /**
+ * The total number of tokens used by the request.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "total_tokens" })
+ totalTokens: number;
}
-/**
- * OK
- */
export class CreateEmbeddingResponse extends SpeakeasyBase {
- @SpeakeasyMetadata({ elemType: CreateEmbeddingResponseData })
- @Expose({ name: "data" })
- @Type(() => CreateEmbeddingResponseData)
- data: CreateEmbeddingResponseData[];
-
- @SpeakeasyMetadata()
- @Expose({ name: "model" })
- model: string;
-
- @SpeakeasyMetadata()
- @Expose({ name: "object" })
- object: string;
-
- @SpeakeasyMetadata()
- @Expose({ name: "usage" })
- @Type(() => CreateEmbeddingResponseUsage)
- usage: CreateEmbeddingResponseUsage;
+ /**
+ * The list of embeddings generated by the model.
+ */
+ @SpeakeasyMetadata({ elemType: Embedding })
+ @Expose({ name: "data" })
+ @Type(() => Embedding)
+ data: Embedding[];
+
+ /**
+ * The name of the model used to generate the embedding.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "model" })
+ model: string;
+
+ /**
+ * The object type, which is always "embedding".
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "object" })
+ object: string;
+
+ /**
+ * The usage information for the request.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "usage" })
+ @Type(() => CreateEmbeddingResponseUsage)
+ usage: CreateEmbeddingResponseUsage;
}
diff --git a/src/sdk/models/shared/createfilerequest.ts b/src/sdk/models/shared/createfilerequest.ts
index 957547b..eb2eec1 100755
--- a/src/sdk/models/shared/createfilerequest.ts
+++ b/src/sdk/models/shared/createfilerequest.ts
@@ -5,33 +5,33 @@
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
export class CreateFileRequestFile extends SpeakeasyBase {
- @SpeakeasyMetadata({ data: "multipart_form, content=true" })
- content: Uint8Array;
+ @SpeakeasyMetadata({ data: "multipart_form, content=true" })
+ content: Uint8Array;
- @SpeakeasyMetadata({ data: "multipart_form, name=file" })
- file: string;
+ @SpeakeasyMetadata({ data: "multipart_form, name=file" })
+ file: string;
}
export class CreateFileRequest extends SpeakeasyBase {
- /**
- * Name of the [JSON Lines](https://jsonlines.readthedocs.io/en/latest/) file to be uploaded.
- *
- * @remarks
- *
- * If the `purpose` is set to "fine-tune", each line is a JSON record with "prompt" and "completion" fields representing your [training examples](/docs/guides/fine-tuning/prepare-training-data).
- *
- */
- @SpeakeasyMetadata({ data: "multipart_form, file=true" })
- file: CreateFileRequestFile;
+ /**
+ * The file object (not file name) to be uploaded.
+ *
+ * @remarks
+ *
+ * If the `purpose` is set to "fine-tune", the file will be used for fine-tuning.
+ *
+ */
+ @SpeakeasyMetadata({ data: "multipart_form, file=true" })
+ file: CreateFileRequestFile;
- /**
- * The intended purpose of the uploaded documents.
- *
- * @remarks
- *
- * Use "fine-tune" for [Fine-tuning](/docs/api-reference/fine-tunes). This allows us to validate the format of the uploaded file.
- *
- */
- @SpeakeasyMetadata({ data: "multipart_form, name=purpose" })
- purpose: string;
+ /**
+ * The intended purpose of the uploaded file.
+ *
+ * @remarks
+ *
+ * Use "fine-tune" for [fine-tuning](/docs/api-reference/fine-tuning). This allows us to validate the format of the uploaded file is correct for fine-tuning.
+ *
+ */
+ @SpeakeasyMetadata({ data: "multipart_form, name=purpose" })
+ purpose: string;
}
diff --git a/src/sdk/models/shared/createfinetunerequest.ts b/src/sdk/models/shared/createfinetunerequest.ts
index 35a8cba..f3b9d0c 100755
--- a/src/sdk/models/shared/createfinetunerequest.ts
+++ b/src/sdk/models/shared/createfinetunerequest.ts
@@ -3,191 +3,204 @@
*/
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
-import { Expose } from "class-transformer";
+import { Expose, Type } from "class-transformer";
+
+/**
+ * The hyperparameters used for the fine-tuning job.
+ */
+export class CreateFineTuneRequestHyperparameters extends SpeakeasyBase {
+ /**
+ * The number of epochs to train the model for. An epoch refers to one
+ *
+ * @remarks
+ * full cycle through the training dataset.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "n_epochs" })
+ nEpochs?: any;
+}
export class CreateFineTuneRequest extends SpeakeasyBase {
- /**
- * The batch size to use for training. The batch size is the number of
- *
- * @remarks
- * training examples used to train a single forward and backward pass.
- *
- * By default, the batch size will be dynamically configured to be
- * ~0.2% of the number of examples in the training set, capped at 256 -
- * in general, we've found that larger batch sizes tend to work better
- * for larger datasets.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "batch_size" })
- batchSize?: number;
+ /**
+ * The batch size to use for training. The batch size is the number of
+ *
+ * @remarks
+ * training examples used to train a single forward and backward pass.
+ *
+ * By default, the batch size will be dynamically configured to be
+ * ~0.2% of the number of examples in the training set, capped at 256 -
+ * in general, we've found that larger batch sizes tend to work better
+ * for larger datasets.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "batch_size" })
+ batchSize?: number;
- /**
- * If this is provided, we calculate F-beta scores at the specified
- *
- * @remarks
- * beta values. The F-beta score is a generalization of F-1 score.
- * This is only used for binary classification.
- *
- * With a beta of 1 (i.e. the F-1 score), precision and recall are
- * given the same weight. A larger beta score puts more weight on
- * recall and less on precision. A smaller beta score puts more weight
- * on precision and less on recall.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "classification_betas" })
- classificationBetas?: number[];
+ /**
+ * If this is provided, we calculate F-beta scores at the specified
+ *
+ * @remarks
+ * beta values. The F-beta score is a generalization of F-1 score.
+ * This is only used for binary classification.
+ *
+ * With a beta of 1 (i.e. the F-1 score), precision and recall are
+ * given the same weight. A larger beta score puts more weight on
+ * recall and less on precision. A smaller beta score puts more weight
+ * on precision and less on recall.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "classification_betas" })
+ classificationBetas?: number[];
- /**
- * The number of classes in a classification task.
- *
- * @remarks
- *
- * This parameter is required for multiclass classification.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "classification_n_classes" })
- classificationNClasses?: number;
+ /**
+ * The number of classes in a classification task.
+ *
+ * @remarks
+ *
+ * This parameter is required for multiclass classification.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "classification_n_classes" })
+ classificationNClasses?: number;
- /**
- * The positive class in binary classification.
- *
- * @remarks
- *
- * This parameter is needed to generate precision, recall, and F1
- * metrics when doing binary classification.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "classification_positive_class" })
- classificationPositiveClass?: string;
+ /**
+ * The positive class in binary classification.
+ *
+ * @remarks
+ *
+ * This parameter is needed to generate precision, recall, and F1
+ * metrics when doing binary classification.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "classification_positive_class" })
+ classificationPositiveClass?: string;
- /**
- * If set, we calculate classification-specific metrics such as accuracy
- *
- * @remarks
- * and F-1 score using the validation set at the end of every epoch.
- * These metrics can be viewed in the [results file](/docs/guides/fine-tuning/analyzing-your-fine-tuned-model).
- *
- * In order to compute classification metrics, you must provide a
- * `validation_file`. Additionally, you must
- * specify `classification_n_classes` for multiclass classification or
- * `classification_positive_class` for binary classification.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "compute_classification_metrics" })
- computeClassificationMetrics?: boolean;
+ /**
+ * If set, we calculate classification-specific metrics such as accuracy
+ *
+ * @remarks
+ * and F-1 score using the validation set at the end of every epoch.
+ * These metrics can be viewed in the [results file](/docs/guides/legacy-fine-tuning/analyzing-your-fine-tuned-model).
+ *
+ * In order to compute classification metrics, you must provide a
+ * `validation_file`. Additionally, you must
+ * specify `classification_n_classes` for multiclass classification or
+ * `classification_positive_class` for binary classification.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "compute_classification_metrics" })
+ computeClassificationMetrics?: boolean;
- /**
- * The learning rate multiplier to use for training.
- *
- * @remarks
- * The fine-tuning learning rate is the original learning rate used for
- * pretraining multiplied by this value.
- *
- * By default, the learning rate multiplier is the 0.05, 0.1, or 0.2
- * depending on final `batch_size` (larger learning rates tend to
- * perform better with larger batch sizes). We recommend experimenting
- * with values in the range 0.02 to 0.2 to see what produces the best
- * results.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "learning_rate_multiplier" })
- learningRateMultiplier?: number;
+ /**
+ * The hyperparameters used for the fine-tuning job.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "hyperparameters" })
+ @Type(() => CreateFineTuneRequestHyperparameters)
+ hyperparameters?: CreateFineTuneRequestHyperparameters;
- /**
- * The name of the base model to fine-tune. You can select one of "ada",
- *
- * @remarks
- * "babbage", "curie", "davinci", or a fine-tuned model created after 2022-04-21.
- * To learn more about these models, see the
- * [Models](https://platform.openai.com/docs/models) documentation.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "model" })
- model?: string;
+ /**
+ * The learning rate multiplier to use for training.
+ *
+ * @remarks
+ * The fine-tuning learning rate is the original learning rate used for
+ * pretraining multiplied by this value.
+ *
+ * By default, the learning rate multiplier is the 0.05, 0.1, or 0.2
+ * depending on final `batch_size` (larger learning rates tend to
+ * perform better with larger batch sizes). We recommend experimenting
+ * with values in the range 0.02 to 0.2 to see what produces the best
+ * results.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "learning_rate_multiplier" })
+ learningRateMultiplier?: number;
- /**
- * The number of epochs to train the model for. An epoch refers to one
- *
- * @remarks
- * full cycle through the training dataset.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "n_epochs" })
- nEpochs?: number;
+ /**
+ * The name of the base model to fine-tune. You can select one of "ada",
+ *
+ * @remarks
+ * "babbage", "curie", "davinci", or a fine-tuned model created after 2022-04-21 and before 2023-08-22.
+ * To learn more about these models, see the
+ * [Models](/docs/models) documentation.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "model" })
+ model?: any;
- /**
- * The weight to use for loss on the prompt tokens. This controls how
- *
- * @remarks
- * much the model tries to learn to generate the prompt (as compared
- * to the completion which always has a weight of 1.0), and can add
- * a stabilizing effect to training when completions are short.
- *
- * If prompts are extremely long (relative to completions), it may make
- * sense to reduce this weight so as to avoid over-prioritizing
- * learning the prompt.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "prompt_loss_weight" })
- promptLossWeight?: number;
+ /**
+ * The weight to use for loss on the prompt tokens. This controls how
+ *
+ * @remarks
+ * much the model tries to learn to generate the prompt (as compared
+ * to the completion which always has a weight of 1.0), and can add
+ * a stabilizing effect to training when completions are short.
+ *
+ * If prompts are extremely long (relative to completions), it may make
+ * sense to reduce this weight so as to avoid over-prioritizing
+ * learning the prompt.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "prompt_loss_weight" })
+ promptLossWeight?: number;
- /**
- * A string of up to 40 characters that will be added to your fine-tuned model name.
- *
- * @remarks
- *
- * For example, a `suffix` of "custom-model-name" would produce a model name like `ada:ft-your-org:custom-model-name-2022-02-15-04-21-04`.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "suffix" })
- suffix?: string;
+ /**
+ * A string of up to 40 characters that will be added to your fine-tuned model name.
+ *
+ * @remarks
+ *
+ * For example, a `suffix` of "custom-model-name" would produce a model name like `ada:ft-your-org:custom-model-name-2022-02-15-04-21-04`.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "suffix" })
+ suffix?: string;
- /**
- * The ID of an uploaded file that contains training data.
- *
- * @remarks
- *
- * See [upload file](/docs/api-reference/files/upload) for how to upload a file.
- *
- * Your dataset must be formatted as a JSONL file, where each training
- * example is a JSON object with the keys "prompt" and "completion".
- * Additionally, you must upload your file with the purpose `fine-tune`.
- *
- * See the [fine-tuning guide](/docs/guides/fine-tuning/creating-training-data) for more details.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "training_file" })
- trainingFile: string;
+ /**
+ * The ID of an uploaded file that contains training data.
+ *
+ * @remarks
+ *
+ * See [upload file](/docs/api-reference/files/upload) for how to upload a file.
+ *
+ * Your dataset must be formatted as a JSONL file, where each training
+ * example is a JSON object with the keys "prompt" and "completion".
+ * Additionally, you must upload your file with the purpose `fine-tune`.
+ *
+ * See the [fine-tuning guide](/docs/guides/legacy-fine-tuning/creating-training-data) for more details.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "training_file" })
+ trainingFile: string;
- /**
- * The ID of an uploaded file that contains validation data.
- *
- * @remarks
- *
- * If you provide this file, the data is used to generate validation
- * metrics periodically during fine-tuning. These metrics can be viewed in
- * the [fine-tuning results file](/docs/guides/fine-tuning/analyzing-your-fine-tuned-model).
- * Your train and validation data should be mutually exclusive.
- *
- * Your dataset must be formatted as a JSONL file, where each validation
- * example is a JSON object with the keys "prompt" and "completion".
- * Additionally, you must upload your file with the purpose `fine-tune`.
- *
- * See the [fine-tuning guide](/docs/guides/fine-tuning/creating-training-data) for more details.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "validation_file" })
- validationFile?: string;
+ /**
+ * The ID of an uploaded file that contains validation data.
+ *
+ * @remarks
+ *
+ * If you provide this file, the data is used to generate validation
+ * metrics periodically during fine-tuning. These metrics can be viewed in
+ * the [fine-tuning results file](/docs/guides/legacy-fine-tuning/analyzing-your-fine-tuned-model).
+ * Your train and validation data should be mutually exclusive.
+ *
+ * Your dataset must be formatted as a JSONL file, where each validation
+ * example is a JSON object with the keys "prompt" and "completion".
+ * Additionally, you must upload your file with the purpose `fine-tune`.
+ *
+ * See the [fine-tuning guide](/docs/guides/legacy-fine-tuning/creating-training-data) for more details.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "validation_file" })
+ validationFile?: string;
}
diff --git a/src/sdk/models/shared/createfinetuningjobrequest.ts b/src/sdk/models/shared/createfinetuningjobrequest.ts
new file mode 100755
index 0000000..c017396
--- /dev/null
+++ b/src/sdk/models/shared/createfinetuningjobrequest.ts
@@ -0,0 +1,90 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import { Expose, Type } from "class-transformer";
+
+/**
+ * The hyperparameters used for the fine-tuning job.
+ */
+export class CreateFineTuningJobRequestHyperparameters extends SpeakeasyBase {
+ /**
+ * The number of epochs to train the model for. An epoch refers to one
+ *
+ * @remarks
+ * full cycle through the training dataset.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "n_epochs" })
+ nEpochs?: any;
+}
+
+export class CreateFineTuningJobRequest extends SpeakeasyBase {
+ /**
+ * The hyperparameters used for the fine-tuning job.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "hyperparameters" })
+ @Type(() => CreateFineTuningJobRequestHyperparameters)
+ hyperparameters?: CreateFineTuningJobRequestHyperparameters;
+
+ /**
+ * The name of the model to fine-tune. You can select one of the
+ *
+ * @remarks
+ * [supported models](/docs/guides/fine-tuning/what-models-can-be-fine-tuned).
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "model" })
+ model: any;
+
+ /**
+ * A string of up to 18 characters that will be added to your fine-tuned model name.
+ *
+ * @remarks
+ *
+ * For example, a `suffix` of "custom-model-name" would produce a model name like `ft:gpt-3.5-turbo:openai:custom-model-name:7p4lURel`.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "suffix" })
+ suffix?: string;
+
+ /**
+ * The ID of an uploaded file that contains training data.
+ *
+ * @remarks
+ *
+ * See [upload file](/docs/api-reference/files/upload) for how to upload a file.
+ *
+ * Your dataset must be formatted as a JSONL file. Additionally, you must upload your file with the purpose `fine-tune`.
+ *
+ * See the [fine-tuning guide](/docs/guides/fine-tuning) for more details.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "training_file" })
+ trainingFile: string;
+
+ /**
+ * The ID of an uploaded file that contains validation data.
+ *
+ * @remarks
+ *
+ * If you provide this file, the data is used to generate validation
+ * metrics periodically during fine-tuning. These metrics can be viewed in
+ * the fine-tuning results file.
+ * The same data should not be present in both train and validation files.
+ *
+ * Your dataset must be formatted as a JSONL file. You must upload your file with the purpose `fine-tune`.
+ *
+ * See the [fine-tuning guide](/docs/guides/fine-tuning) for more details.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "validation_file" })
+ validationFile?: string;
+}
diff --git a/src/sdk/models/shared/createimageeditrequest.ts b/src/sdk/models/shared/createimageeditrequest.ts
index ee3123b..4b7728d 100755
--- a/src/sdk/models/shared/createimageeditrequest.ts
+++ b/src/sdk/models/shared/createimageeditrequest.ts
@@ -5,49 +5,81 @@
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
export class CreateImageEditRequestImage extends SpeakeasyBase {
- @SpeakeasyMetadata({ data: "multipart_form, content=true" })
- content: Uint8Array;
+ @SpeakeasyMetadata({ data: "multipart_form, content=true" })
+ content: Uint8Array;
- @SpeakeasyMetadata({ data: "multipart_form, name=image" })
- image: string;
+ @SpeakeasyMetadata({ data: "multipart_form, name=image" })
+ image: string;
}
export class CreateImageEditRequestMask extends SpeakeasyBase {
- @SpeakeasyMetadata({ data: "multipart_form, content=true" })
- content: Uint8Array;
+ @SpeakeasyMetadata({ data: "multipart_form, content=true" })
+ content: Uint8Array;
- @SpeakeasyMetadata({ data: "multipart_form, name=mask" })
- mask: string;
+ @SpeakeasyMetadata({ data: "multipart_form, name=mask" })
+ mask: string;
+}
+
+/**
+ * The format in which the generated images are returned. Must be one of `url` or `b64_json`.
+ */
+export enum CreateImageEditRequestResponseFormat {
+ Url = "url",
+ B64Json = "b64_json",
+}
+
+/**
+ * The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`.
+ */
+export enum CreateImageEditRequestSize {
+ TwoHundredAndFiftySixx256 = "256x256",
+ FiveHundredAndTwelvex512 = "512x512",
+ OneThousandAndTwentyFourx1024 = "1024x1024",
}
export class CreateImageEditRequest extends SpeakeasyBase {
- /**
- * The image to edit. Must be a valid PNG file, less than 4MB, and square. If mask is not provided, image must have transparency, which will be used as the mask.
- */
- @SpeakeasyMetadata({ data: "multipart_form, file=true" })
- image: CreateImageEditRequestImage;
-
- /**
- * An additional image whose fully transparent areas (e.g. where alpha is zero) indicate where `image` should be edited. Must be a valid PNG file, less than 4MB, and have the same dimensions as `image`.
- */
- @SpeakeasyMetadata({ data: "multipart_form, file=true" })
- mask?: CreateImageEditRequestMask;
-
- @SpeakeasyMetadata({ data: "multipart_form, name=n" })
- n?: any;
-
- /**
- * A text description of the desired image(s). The maximum length is 1000 characters.
- */
- @SpeakeasyMetadata({ data: "multipart_form, name=prompt" })
- prompt: string;
-
- @SpeakeasyMetadata({ data: "multipart_form, name=response_format" })
- responseFormat?: any;
-
- @SpeakeasyMetadata({ data: "multipart_form, name=size" })
- size?: any;
-
- @SpeakeasyMetadata({ data: "multipart_form, name=user" })
- user?: any;
+ /**
+ * The image to edit. Must be a valid PNG file, less than 4MB, and square. If mask is not provided, image must have transparency, which will be used as the mask.
+ */
+ @SpeakeasyMetadata({ data: "multipart_form, file=true" })
+ image: CreateImageEditRequestImage;
+
+ /**
+ * An additional image whose fully transparent areas (e.g. where alpha is zero) indicate where `image` should be edited. Must be a valid PNG file, less than 4MB, and have the same dimensions as `image`.
+ */
+ @SpeakeasyMetadata({ data: "multipart_form, file=true" })
+ mask?: CreateImageEditRequestMask;
+
+ /**
+ * The number of images to generate. Must be between 1 and 10.
+ */
+ @SpeakeasyMetadata({ data: "multipart_form, name=n" })
+ n?: number;
+
+ /**
+ * A text description of the desired image(s). The maximum length is 1000 characters.
+ */
+ @SpeakeasyMetadata({ data: "multipart_form, name=prompt" })
+ prompt: string;
+
+ /**
+ * The format in which the generated images are returned. Must be one of `url` or `b64_json`.
+ */
+ @SpeakeasyMetadata({ data: "multipart_form, name=response_format" })
+ responseFormat?: CreateImageEditRequestResponseFormat;
+
+ /**
+ * The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`.
+ */
+ @SpeakeasyMetadata({ data: "multipart_form, name=size" })
+ size?: CreateImageEditRequestSize;
+
+ /**
+ * A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata({ data: "multipart_form, name=user" })
+ user?: string;
}
diff --git a/src/sdk/models/shared/createimagerequest.ts b/src/sdk/models/shared/createimagerequest.ts
index 58074d0..6093e10 100755
--- a/src/sdk/models/shared/createimagerequest.ts
+++ b/src/sdk/models/shared/createimagerequest.ts
@@ -8,50 +8,56 @@ import { Expose } from "class-transformer";
/**
* The format in which the generated images are returned. Must be one of `url` or `b64_json`.
*/
-export enum CreateImageRequestResponseFormatEnum {
- Url = "url",
- B64Json = "b64_json",
+export enum CreateImageRequestResponseFormat {
+ Url = "url",
+ B64Json = "b64_json",
}
/**
* The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`.
*/
-export enum CreateImageRequestSizeEnum {
- TwoHundredAndFiftySixx256 = "256x256",
- FiveHundredAndTwelvex512 = "512x512",
- OneThousandAndTwentyFourx1024 = "1024x1024",
+export enum CreateImageRequestSize {
+ TwoHundredAndFiftySixx256 = "256x256",
+ FiveHundredAndTwelvex512 = "512x512",
+ OneThousandAndTwentyFourx1024 = "1024x1024",
}
export class CreateImageRequest extends SpeakeasyBase {
- /**
- * The number of images to generate. Must be between 1 and 10.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "n" })
- n?: number;
-
- /**
- * A text description of the desired image(s). The maximum length is 1000 characters.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "prompt" })
- prompt: string;
-
- /**
- * The format in which the generated images are returned. Must be one of `url` or `b64_json`.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "response_format" })
- responseFormat?: CreateImageRequestResponseFormatEnum;
-
- /**
- * The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "size" })
- size?: CreateImageRequestSizeEnum;
-
- @SpeakeasyMetadata()
- @Expose({ name: "user" })
- user?: any;
+ /**
+ * The number of images to generate. Must be between 1 and 10.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "n" })
+ n?: number;
+
+ /**
+ * A text description of the desired image(s). The maximum length is 1000 characters.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "prompt" })
+ prompt: string;
+
+ /**
+ * The format in which the generated images are returned. Must be one of `url` or `b64_json`.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "response_format" })
+ responseFormat?: CreateImageRequestResponseFormat;
+
+ /**
+ * The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "size" })
+ size?: CreateImageRequestSize;
+
+ /**
+ * A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "user" })
+ user?: string;
}
diff --git a/src/sdk/models/shared/createimagevariationrequest.ts b/src/sdk/models/shared/createimagevariationrequest.ts
index af81dd7..45b5b13 100755
--- a/src/sdk/models/shared/createimagevariationrequest.ts
+++ b/src/sdk/models/shared/createimagevariationrequest.ts
@@ -5,29 +5,61 @@
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
export class CreateImageVariationRequestImage extends SpeakeasyBase {
- @SpeakeasyMetadata({ data: "multipart_form, content=true" })
- content: Uint8Array;
+ @SpeakeasyMetadata({ data: "multipart_form, content=true" })
+ content: Uint8Array;
- @SpeakeasyMetadata({ data: "multipart_form, name=image" })
- image: string;
+ @SpeakeasyMetadata({ data: "multipart_form, name=image" })
+ image: string;
+}
+
+/**
+ * The format in which the generated images are returned. Must be one of `url` or `b64_json`.
+ */
+export enum CreateImageVariationRequestResponseFormat {
+ Url = "url",
+ B64Json = "b64_json",
+}
+
+/**
+ * The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`.
+ */
+export enum CreateImageVariationRequestSize {
+ TwoHundredAndFiftySixx256 = "256x256",
+ FiveHundredAndTwelvex512 = "512x512",
+ OneThousandAndTwentyFourx1024 = "1024x1024",
}
export class CreateImageVariationRequest extends SpeakeasyBase {
- /**
- * The image to use as the basis for the variation(s). Must be a valid PNG file, less than 4MB, and square.
- */
- @SpeakeasyMetadata({ data: "multipart_form, file=true" })
- image: CreateImageVariationRequestImage;
+ /**
+ * The image to use as the basis for the variation(s). Must be a valid PNG file, less than 4MB, and square.
+ */
+ @SpeakeasyMetadata({ data: "multipart_form, file=true" })
+ image: CreateImageVariationRequestImage;
- @SpeakeasyMetadata({ data: "multipart_form, name=n" })
- n?: any;
+ /**
+ * The number of images to generate. Must be between 1 and 10.
+ */
+ @SpeakeasyMetadata({ data: "multipart_form, name=n" })
+ n?: number;
- @SpeakeasyMetadata({ data: "multipart_form, name=response_format" })
- responseFormat?: any;
+ /**
+ * The format in which the generated images are returned. Must be one of `url` or `b64_json`.
+ */
+ @SpeakeasyMetadata({ data: "multipart_form, name=response_format" })
+ responseFormat?: CreateImageVariationRequestResponseFormat;
- @SpeakeasyMetadata({ data: "multipart_form, name=size" })
- size?: any;
+ /**
+ * The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`.
+ */
+ @SpeakeasyMetadata({ data: "multipart_form, name=size" })
+ size?: CreateImageVariationRequestSize;
- @SpeakeasyMetadata({ data: "multipart_form, name=user" })
- user?: any;
+ /**
+ * A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata({ data: "multipart_form, name=user" })
+ user?: string;
}
diff --git a/src/sdk/models/shared/createmoderationrequest.ts b/src/sdk/models/shared/createmoderationrequest.ts
index 5671bb5..e196f17 100755
--- a/src/sdk/models/shared/createmoderationrequest.ts
+++ b/src/sdk/models/shared/createmoderationrequest.ts
@@ -6,22 +6,22 @@ import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
import { Expose } from "class-transformer";
export class CreateModerationRequest extends SpeakeasyBase {
- /**
- * The input text to classify
- */
- @SpeakeasyMetadata()
- @Expose({ name: "input" })
- input: any;
+ /**
+ * The input text to classify
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "input" })
+ input: any;
- /**
- * Two content moderations models are available: `text-moderation-stable` and `text-moderation-latest`.
- *
- * @remarks
- *
- * The default is `text-moderation-latest` which will be automatically upgraded over time. This ensures you are always using our most accurate model. If you use `text-moderation-stable`, we will provide advanced notice before updating the model. Accuracy of `text-moderation-stable` may be slightly lower than for `text-moderation-latest`.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "model" })
- model?: string;
+ /**
+ * Two content moderations models are available: `text-moderation-stable` and `text-moderation-latest`.
+ *
+ * @remarks
+ *
+ * The default is `text-moderation-latest` which will be automatically upgraded over time. This ensures you are always using our most accurate model. If you use `text-moderation-stable`, we will provide advanced notice before updating the model. Accuracy of `text-moderation-stable` may be slightly lower than for `text-moderation-latest`.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "model" })
+ model?: any;
}
diff --git a/src/sdk/models/shared/createmoderationresponse.ts b/src/sdk/models/shared/createmoderationresponse.ts
index a801070..a0d9c1d 100755
--- a/src/sdk/models/shared/createmoderationresponse.ts
+++ b/src/sdk/models/shared/createmoderationresponse.ts
@@ -5,96 +5,218 @@
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
import { Expose, Type } from "class-transformer";
+/**
+ * A list of the categories, and whether they are flagged or not.
+ */
export class CreateModerationResponseResultsCategories extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "hate" })
- hate: boolean;
-
- @SpeakeasyMetadata()
- @Expose({ name: "hate/threatening" })
- hateThreatening: boolean;
-
- @SpeakeasyMetadata()
- @Expose({ name: "self-harm" })
- selfHarm: boolean;
-
- @SpeakeasyMetadata()
- @Expose({ name: "sexual" })
- sexual: boolean;
-
- @SpeakeasyMetadata()
- @Expose({ name: "sexual/minors" })
- sexualMinors: boolean;
-
- @SpeakeasyMetadata()
- @Expose({ name: "violence" })
- violence: boolean;
-
- @SpeakeasyMetadata()
- @Expose({ name: "violence/graphic" })
- violenceGraphic: boolean;
+ /**
+ * Content that expresses, incites, or promotes harassing language towards any target.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "harassment" })
+ harassment: boolean;
+
+ /**
+ * Harassment content that also includes violence or serious harm towards any target.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "harassment/threatening" })
+ harassmentThreatening: boolean;
+
+ /**
+ * Content that expresses, incites, or promotes hate based on race, gender, ethnicity, religion, nationality, sexual orientation, disability status, or caste. Hateful content aimed at non-protected groups (e.g., chess players) is harrassment.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "hate" })
+ hate: boolean;
+
+ /**
+ * Hateful content that also includes violence or serious harm towards the targeted group based on race, gender, ethnicity, religion, nationality, sexual orientation, disability status, or caste.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "hate/threatening" })
+ hateThreatening: boolean;
+
+ /**
+ * Content that promotes, encourages, or depicts acts of self-harm, such as suicide, cutting, and eating disorders.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "self-harm" })
+ selfHarm: boolean;
+
+ /**
+ * Content that encourages performing acts of self-harm, such as suicide, cutting, and eating disorders, or that gives instructions or advice on how to commit such acts.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "self-harm/instructions" })
+ selfHarmInstructions: boolean;
+
+ /**
+ * Content where the speaker expresses that they are engaging or intend to engage in acts of self-harm, such as suicide, cutting, and eating disorders.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "self-harm/intent" })
+ selfHarmIntent: boolean;
+
+ /**
+ * Content meant to arouse sexual excitement, such as the description of sexual activity, or that promotes sexual services (excluding sex education and wellness).
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "sexual" })
+ sexual: boolean;
+
+ /**
+ * Sexual content that includes an individual who is under 18 years old.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "sexual/minors" })
+ sexualMinors: boolean;
+
+ /**
+ * Content that depicts death, violence, or physical injury.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "violence" })
+ violence: boolean;
+
+ /**
+ * Content that depicts death, violence, or physical injury in graphic detail.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "violence/graphic" })
+ violenceGraphic: boolean;
}
+/**
+ * A list of the categories along with their scores as predicted by model.
+ */
export class CreateModerationResponseResultsCategoryScores extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "hate" })
- hate: number;
-
- @SpeakeasyMetadata()
- @Expose({ name: "hate/threatening" })
- hateThreatening: number;
-
- @SpeakeasyMetadata()
- @Expose({ name: "self-harm" })
- selfHarm: number;
-
- @SpeakeasyMetadata()
- @Expose({ name: "sexual" })
- sexual: number;
-
- @SpeakeasyMetadata()
- @Expose({ name: "sexual/minors" })
- sexualMinors: number;
-
- @SpeakeasyMetadata()
- @Expose({ name: "violence" })
- violence: number;
-
- @SpeakeasyMetadata()
- @Expose({ name: "violence/graphic" })
- violenceGraphic: number;
+ /**
+ * The score for the category 'harassment'.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "harassment" })
+ harassment: number;
+
+ /**
+ * The score for the category 'harassment/threatening'.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "harassment/threatening" })
+ harassmentThreatening: number;
+
+ /**
+ * The score for the category 'hate'.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "hate" })
+ hate: number;
+
+ /**
+ * The score for the category 'hate/threatening'.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "hate/threatening" })
+ hateThreatening: number;
+
+ /**
+ * The score for the category 'self-harm'.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "self-harm" })
+ selfHarm: number;
+
+ /**
+ * The score for the category 'self-harm/instructions'.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "self-harm/instructions" })
+ selfHarmInstructions: number;
+
+ /**
+ * The score for the category 'self-harm/intent'.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "self-harm/intent" })
+ selfHarmIntent: number;
+
+ /**
+ * The score for the category 'sexual'.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "sexual" })
+ sexual: number;
+
+ /**
+ * The score for the category 'sexual/minors'.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "sexual/minors" })
+ sexualMinors: number;
+
+ /**
+ * The score for the category 'violence'.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "violence" })
+ violence: number;
+
+ /**
+ * The score for the category 'violence/graphic'.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "violence/graphic" })
+ violenceGraphic: number;
}
export class CreateModerationResponseResults extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "categories" })
- @Type(() => CreateModerationResponseResultsCategories)
- categories: CreateModerationResponseResultsCategories;
-
- @SpeakeasyMetadata()
- @Expose({ name: "category_scores" })
- @Type(() => CreateModerationResponseResultsCategoryScores)
- categoryScores: CreateModerationResponseResultsCategoryScores;
-
- @SpeakeasyMetadata()
- @Expose({ name: "flagged" })
- flagged: boolean;
+ /**
+ * A list of the categories, and whether they are flagged or not.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "categories" })
+ @Type(() => CreateModerationResponseResultsCategories)
+ categories: CreateModerationResponseResultsCategories;
+
+ /**
+ * A list of the categories along with their scores as predicted by model.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "category_scores" })
+ @Type(() => CreateModerationResponseResultsCategoryScores)
+ categoryScores: CreateModerationResponseResultsCategoryScores;
+
+ /**
+ * Whether the content violates [OpenAI's usage policies](/policies/usage-policies).
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "flagged" })
+ flagged: boolean;
}
/**
- * OK
+ * Represents policy compliance report by OpenAI's content moderation model against a given input.
*/
export class CreateModerationResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "id" })
- id: string;
-
- @SpeakeasyMetadata()
- @Expose({ name: "model" })
- model: string;
-
- @SpeakeasyMetadata({ elemType: CreateModerationResponseResults })
- @Expose({ name: "results" })
- @Type(() => CreateModerationResponseResults)
- results: CreateModerationResponseResults[];
+ /**
+ * The unique identifier for the moderation request.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "id" })
+ id: string;
+
+ /**
+ * The model used to generate the moderation results.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "model" })
+ model: string;
+
+ /**
+ * A list of moderation objects.
+ */
+ @SpeakeasyMetadata({ elemType: CreateModerationResponseResults })
+ @Expose({ name: "results" })
+ @Type(() => CreateModerationResponseResults)
+ results: CreateModerationResponseResults[];
}
diff --git a/src/sdk/models/shared/createsearchrequest.ts b/src/sdk/models/shared/createsearchrequest.ts
deleted file mode 100755
index 57cd2b9..0000000
--- a/src/sdk/models/shared/createsearchrequest.ts
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
- */
-
-import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
-import { Expose } from "class-transformer";
-
-export class CreateSearchRequest extends SpeakeasyBase {
- /**
- * Up to 200 documents to search over, provided as a list of strings.
- *
- * @remarks
- *
- * The maximum document length (in tokens) is 2034 minus the number of tokens in the query.
- *
- * You should specify either `documents` or a `file`, but not both.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "documents" })
- documents?: string[];
-
- /**
- * The ID of an uploaded file that contains documents to search over.
- *
- * @remarks
- *
- * You should specify either `documents` or a `file`, but not both.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "file" })
- file?: string;
-
- /**
- * The maximum number of documents to be re-ranked and returned by search.
- *
- * @remarks
- *
- * This flag only takes effect when `file` is set.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "max_rerank" })
- maxRerank?: number;
-
- /**
- * Query to search against the documents.
- */
- @SpeakeasyMetadata()
- @Expose({ name: "query" })
- query: string;
-
- /**
- * A special boolean flag for showing metadata. If set to `true`, each document entry in the returned JSON will contain a "metadata" field.
- *
- * @remarks
- *
- * This flag only takes effect when `file` is set.
- *
- */
- @SpeakeasyMetadata()
- @Expose({ name: "return_metadata" })
- returnMetadata?: boolean;
-
- @SpeakeasyMetadata()
- @Expose({ name: "user" })
- user?: any;
-}
diff --git a/src/sdk/models/shared/createsearchresponse.ts b/src/sdk/models/shared/createsearchresponse.ts
deleted file mode 100755
index 36bd2e4..0000000
--- a/src/sdk/models/shared/createsearchresponse.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
- */
-
-import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
-import { Expose, Type } from "class-transformer";
-
-export class CreateSearchResponseData extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "document" })
- document?: number;
-
- @SpeakeasyMetadata()
- @Expose({ name: "object" })
- object?: string;
-
- @SpeakeasyMetadata()
- @Expose({ name: "score" })
- score?: number;
-}
-
-/**
- * OK
- */
-export class CreateSearchResponse extends SpeakeasyBase {
- @SpeakeasyMetadata({ elemType: CreateSearchResponseData })
- @Expose({ name: "data" })
- @Type(() => CreateSearchResponseData)
- data?: CreateSearchResponseData[];
-
- @SpeakeasyMetadata()
- @Expose({ name: "model" })
- model?: string;
-
- @SpeakeasyMetadata()
- @Expose({ name: "object" })
- object?: string;
-}
diff --git a/src/sdk/models/shared/createtranscriptionrequest.ts b/src/sdk/models/shared/createtranscriptionrequest.ts
index 61ebbc8..0dae48e 100755
--- a/src/sdk/models/shared/createtranscriptionrequest.ts
+++ b/src/sdk/models/shared/createtranscriptionrequest.ts
@@ -5,65 +5,79 @@
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
export class CreateTranscriptionRequestFile extends SpeakeasyBase {
- @SpeakeasyMetadata({ data: "multipart_form, content=true" })
- content: Uint8Array;
+ @SpeakeasyMetadata({ data: "multipart_form, content=true" })
+ content: Uint8Array;
- @SpeakeasyMetadata({ data: "multipart_form, name=file" })
- file: string;
+ @SpeakeasyMetadata({ data: "multipart_form, name=file" })
+ file: string;
+}
+
+/**
+ * The format of the transcript output, in one of these options: json, text, srt, verbose_json, or vtt.
+ *
+ * @remarks
+ *
+ */
+export enum CreateTranscriptionRequestResponseFormat {
+ Json = "json",
+ Text = "text",
+ Srt = "srt",
+ VerboseJson = "verbose_json",
+ Vtt = "vtt",
}
export class CreateTranscriptionRequest extends SpeakeasyBase {
- /**
- * The audio file to transcribe, in one of these formats: mp3, mp4, mpeg, mpga, m4a, wav, or webm.
- *
- * @remarks
- *
- */
- @SpeakeasyMetadata({ data: "multipart_form, file=true" })
- file: CreateTranscriptionRequestFile;
+ /**
+ * The audio file object (not file name) to transcribe, in one of these formats: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata({ data: "multipart_form, file=true" })
+ file: CreateTranscriptionRequestFile;
- /**
- * The language of the input audio. Supplying the input language in [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format will improve accuracy and latency.
- *
- * @remarks
- *
- */
- @SpeakeasyMetadata({ data: "multipart_form, name=language" })
- language?: string;
+ /**
+ * The language of the input audio. Supplying the input language in [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format will improve accuracy and latency.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata({ data: "multipart_form, name=language" })
+ language?: string;
- /**
- * ID of the model to use. Only `whisper-1` is currently available.
- *
- * @remarks
- *
- */
- @SpeakeasyMetadata({ data: "multipart_form, name=model" })
- model: string;
+ /**
+ * ID of the model to use. Only `whisper-1` is currently available.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata({ data: "multipart_form, name=model" })
+ model: any;
- /**
- * An optional text to guide the model's style or continue a previous audio segment. The [prompt](/docs/guides/speech-to-text/prompting) should match the audio language.
- *
- * @remarks
- *
- */
- @SpeakeasyMetadata({ data: "multipart_form, name=prompt" })
- prompt?: string;
+ /**
+ * An optional text to guide the model's style or continue a previous audio segment. The [prompt](/docs/guides/speech-to-text/prompting) should match the audio language.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata({ data: "multipart_form, name=prompt" })
+ prompt?: string;
- /**
- * The format of the transcript output, in one of these options: json, text, srt, verbose_json, or vtt.
- *
- * @remarks
- *
- */
- @SpeakeasyMetadata({ data: "multipart_form, name=response_format" })
- responseFormat?: string;
+ /**
+ * The format of the transcript output, in one of these options: json, text, srt, verbose_json, or vtt.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata({ data: "multipart_form, name=response_format" })
+ responseFormat?: CreateTranscriptionRequestResponseFormat;
- /**
- * The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use [log probability](https://en.wikipedia.org/wiki/Log_probability) to automatically increase the temperature until certain thresholds are hit.
- *
- * @remarks
- *
- */
- @SpeakeasyMetadata({ data: "multipart_form, name=temperature" })
- temperature?: number;
+ /**
+ * The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use [log probability](https://en.wikipedia.org/wiki/Log_probability) to automatically increase the temperature until certain thresholds are hit.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata({ data: "multipart_form, name=temperature" })
+ temperature?: number;
}
diff --git a/src/sdk/models/shared/createtranscriptionresponse.ts b/src/sdk/models/shared/createtranscriptionresponse.ts
index 8130ab3..7da4e94 100755
--- a/src/sdk/models/shared/createtranscriptionresponse.ts
+++ b/src/sdk/models/shared/createtranscriptionresponse.ts
@@ -5,11 +5,8 @@
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
import { Expose } from "class-transformer";
-/**
- * OK
- */
export class CreateTranscriptionResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "text" })
- text: string;
+ @SpeakeasyMetadata()
+ @Expose({ name: "text" })
+ text: string;
}
diff --git a/src/sdk/models/shared/createtranslationrequest.ts b/src/sdk/models/shared/createtranslationrequest.ts
index 95f2a38..48d5752 100755
--- a/src/sdk/models/shared/createtranslationrequest.ts
+++ b/src/sdk/models/shared/createtranslationrequest.ts
@@ -5,56 +5,56 @@
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
export class CreateTranslationRequestFile extends SpeakeasyBase {
- @SpeakeasyMetadata({ data: "multipart_form, content=true" })
- content: Uint8Array;
+ @SpeakeasyMetadata({ data: "multipart_form, content=true" })
+ content: Uint8Array;
- @SpeakeasyMetadata({ data: "multipart_form, name=file" })
- file: string;
+ @SpeakeasyMetadata({ data: "multipart_form, name=file" })
+ file: string;
}
export class CreateTranslationRequest extends SpeakeasyBase {
- /**
- * The audio file to translate, in one of these formats: mp3, mp4, mpeg, mpga, m4a, wav, or webm.
- *
- * @remarks
- *
- */
- @SpeakeasyMetadata({ data: "multipart_form, file=true" })
- file: CreateTranslationRequestFile;
-
- /**
- * ID of the model to use. Only `whisper-1` is currently available.
- *
- * @remarks
- *
- */
- @SpeakeasyMetadata({ data: "multipart_form, name=model" })
- model: string;
-
- /**
- * An optional text to guide the model's style or continue a previous audio segment. The [prompt](/docs/guides/speech-to-text/prompting) should be in English.
- *
- * @remarks
- *
- */
- @SpeakeasyMetadata({ data: "multipart_form, name=prompt" })
- prompt?: string;
-
- /**
- * The format of the transcript output, in one of these options: json, text, srt, verbose_json, or vtt.
- *
- * @remarks
- *
- */
- @SpeakeasyMetadata({ data: "multipart_form, name=response_format" })
- responseFormat?: string;
-
- /**
- * The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use [log probability](https://en.wikipedia.org/wiki/Log_probability) to automatically increase the temperature until certain thresholds are hit.
- *
- * @remarks
- *
- */
- @SpeakeasyMetadata({ data: "multipart_form, name=temperature" })
- temperature?: number;
+ /**
+ * The audio file object (not file name) translate, in one of these formats: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata({ data: "multipart_form, file=true" })
+ file: CreateTranslationRequestFile;
+
+ /**
+ * ID of the model to use. Only `whisper-1` is currently available.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata({ data: "multipart_form, name=model" })
+ model: any;
+
+ /**
+ * An optional text to guide the model's style or continue a previous audio segment. The [prompt](/docs/guides/speech-to-text/prompting) should be in English.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata({ data: "multipart_form, name=prompt" })
+ prompt?: string;
+
+ /**
+ * The format of the transcript output, in one of these options: json, text, srt, verbose_json, or vtt.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata({ data: "multipart_form, name=response_format" })
+ responseFormat?: string;
+
+ /**
+ * The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use [log probability](https://en.wikipedia.org/wiki/Log_probability) to automatically increase the temperature until certain thresholds are hit.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata({ data: "multipart_form, name=temperature" })
+ temperature?: number;
}
diff --git a/src/sdk/models/shared/createtranslationresponse.ts b/src/sdk/models/shared/createtranslationresponse.ts
index 92f337d..a7a92b0 100755
--- a/src/sdk/models/shared/createtranslationresponse.ts
+++ b/src/sdk/models/shared/createtranslationresponse.ts
@@ -5,11 +5,8 @@
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
import { Expose } from "class-transformer";
-/**
- * OK
- */
export class CreateTranslationResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "text" })
- text: string;
+ @SpeakeasyMetadata()
+ @Expose({ name: "text" })
+ text: string;
}
diff --git a/src/sdk/models/shared/deletefileresponse.ts b/src/sdk/models/shared/deletefileresponse.ts
index 31fd926..9d4d2d6 100755
--- a/src/sdk/models/shared/deletefileresponse.ts
+++ b/src/sdk/models/shared/deletefileresponse.ts
@@ -5,19 +5,16 @@
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
import { Expose } from "class-transformer";
-/**
- * OK
- */
export class DeleteFileResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "deleted" })
- deleted: boolean;
+ @SpeakeasyMetadata()
+ @Expose({ name: "deleted" })
+ deleted: boolean;
- @SpeakeasyMetadata()
- @Expose({ name: "id" })
- id: string;
+ @SpeakeasyMetadata()
+ @Expose({ name: "id" })
+ id: string;
- @SpeakeasyMetadata()
- @Expose({ name: "object" })
- object: string;
+ @SpeakeasyMetadata()
+ @Expose({ name: "object" })
+ object: string;
}
diff --git a/src/sdk/models/shared/deletemodelresponse.ts b/src/sdk/models/shared/deletemodelresponse.ts
index 33fab10..a05dbc9 100755
--- a/src/sdk/models/shared/deletemodelresponse.ts
+++ b/src/sdk/models/shared/deletemodelresponse.ts
@@ -5,19 +5,16 @@
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
import { Expose } from "class-transformer";
-/**
- * OK
- */
export class DeleteModelResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "deleted" })
- deleted: boolean;
+ @SpeakeasyMetadata()
+ @Expose({ name: "deleted" })
+ deleted: boolean;
- @SpeakeasyMetadata()
- @Expose({ name: "id" })
- id: string;
+ @SpeakeasyMetadata()
+ @Expose({ name: "id" })
+ id: string;
- @SpeakeasyMetadata()
- @Expose({ name: "object" })
- object: string;
+ @SpeakeasyMetadata()
+ @Expose({ name: "object" })
+ object: string;
}
diff --git a/src/sdk/models/shared/embedding.ts b/src/sdk/models/shared/embedding.ts
new file mode 100755
index 0000000..18a5056
--- /dev/null
+++ b/src/sdk/models/shared/embedding.ts
@@ -0,0 +1,38 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import { Expose } from "class-transformer";
+
+/**
+ * Represents an embedding vector returned by embedding endpoint.
+ *
+ * @remarks
+ *
+ */
+export class Embedding extends SpeakeasyBase {
+ /**
+ * The embedding vector, which is a list of floats. The length of vector depends on the model as listed in the [embedding guide](/docs/guides/embeddings).
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "embedding" })
+ embedding: number[];
+
+ /**
+ * The index of the embedding in the list of embeddings.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "index" })
+ index: number;
+
+ /**
+ * The object type, which is always "embedding".
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "object" })
+ object: string;
+}
diff --git a/src/sdk/models/shared/finetune.ts b/src/sdk/models/shared/finetune.ts
new file mode 100755
index 0000000..a5c3249
--- /dev/null
+++ b/src/sdk/models/shared/finetune.ts
@@ -0,0 +1,191 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import { FineTuneEvent } from "./finetuneevent";
+import { OpenAIFile } from "./openaifile";
+import { Expose, Type } from "class-transformer";
+
+/**
+ * The hyperparameters used for the fine-tuning job. See the [fine-tuning guide](/docs/guides/legacy-fine-tuning/hyperparameters) for more details.
+ */
+export class FineTuneHyperparams extends SpeakeasyBase {
+ /**
+ * The batch size to use for training. The batch size is the number of
+ *
+ * @remarks
+ * training examples used to train a single forward and backward pass.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "batch_size" })
+ batchSize: number;
+
+ /**
+ * The number of classes to use for computing classification metrics.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "classification_n_classes" })
+ classificationNClasses?: number;
+
+ /**
+ * The positive class to use for computing classification metrics.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "classification_positive_class" })
+ classificationPositiveClass?: string;
+
+ /**
+ * The classification metrics to compute using the validation dataset at the end of every epoch.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "compute_classification_metrics" })
+ computeClassificationMetrics?: boolean;
+
+ /**
+ * The learning rate multiplier to use for training.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "learning_rate_multiplier" })
+ learningRateMultiplier: number;
+
+ /**
+ * The number of epochs to train the model for. An epoch refers to one
+ *
+ * @remarks
+ * full cycle through the training dataset.
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "n_epochs" })
+ nEpochs: number;
+
+ /**
+ * The weight to use for loss on the prompt tokens.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "prompt_loss_weight" })
+ promptLossWeight: number;
+}
+
+/**
+ * The `FineTune` object represents a legacy fine-tune job that has been created through the API.
+ *
+ * @remarks
+ *
+ *
+ * @deprecated class: This will be removed in a future release, please migrate away from it as soon as possible.
+ */
+export class FineTune extends SpeakeasyBase {
+ /**
+ * The Unix timestamp (in seconds) for when the fine-tuning job was created.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "created_at" })
+ createdAt: number;
+
+ /**
+ * The list of events that have been observed in the lifecycle of the FineTune job.
+ */
+ @SpeakeasyMetadata({ elemType: FineTuneEvent })
+ @Expose({ name: "events" })
+ @Type(() => FineTuneEvent)
+ events?: FineTuneEvent[];
+
+ /**
+ * The name of the fine-tuned model that is being created.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "fine_tuned_model" })
+ fineTunedModel: string;
+
+ /**
+ * The hyperparameters used for the fine-tuning job. See the [fine-tuning guide](/docs/guides/legacy-fine-tuning/hyperparameters) for more details.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "hyperparams" })
+ @Type(() => FineTuneHyperparams)
+ hyperparams: FineTuneHyperparams;
+
+ /**
+ * The object identifier, which can be referenced in the API endpoints.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "id" })
+ id: string;
+
+ /**
+ * The base model that is being fine-tuned.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "model" })
+ model: string;
+
+ /**
+ * The object type, which is always "fine-tune".
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "object" })
+ object: string;
+
+ /**
+ * The organization that owns the fine-tuning job.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "organization_id" })
+ organizationId: string;
+
+ /**
+ * The compiled results files for the fine-tuning job.
+ */
+ @SpeakeasyMetadata({ elemType: OpenAIFile })
+ @Expose({ name: "result_files" })
+ @Type(() => OpenAIFile)
+ resultFiles: OpenAIFile[];
+
+ /**
+ * The current status of the fine-tuning job, which can be either `created`, `running`, `succeeded`, `failed`, or `cancelled`.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "status" })
+ status: string;
+
+ /**
+ * The list of files used for training.
+ */
+ @SpeakeasyMetadata({ elemType: OpenAIFile })
+ @Expose({ name: "training_files" })
+ @Type(() => OpenAIFile)
+ trainingFiles: OpenAIFile[];
+
+ /**
+ * The Unix timestamp (in seconds) for when the fine-tuning job was last updated.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "updated_at" })
+ updatedAt: number;
+
+ /**
+ * The list of files used for validation.
+ */
+ @SpeakeasyMetadata({ elemType: OpenAIFile })
+ @Expose({ name: "validation_files" })
+ @Type(() => OpenAIFile)
+ validationFiles: OpenAIFile[];
+}
diff --git a/src/sdk/models/shared/finetuneevent.ts b/src/sdk/models/shared/finetuneevent.ts
new file mode 100755
index 0000000..dffe08c
--- /dev/null
+++ b/src/sdk/models/shared/finetuneevent.ts
@@ -0,0 +1,29 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import { Expose } from "class-transformer";
+
+/**
+ * Fine-tune event object
+ *
+ * @deprecated class: This will be removed in a future release, please migrate away from it as soon as possible.
+ */
+export class FineTuneEvent extends SpeakeasyBase {
+ @SpeakeasyMetadata()
+ @Expose({ name: "created_at" })
+ createdAt: number;
+
+ @SpeakeasyMetadata()
+ @Expose({ name: "level" })
+ level: string;
+
+ @SpeakeasyMetadata()
+ @Expose({ name: "message" })
+ message: string;
+
+ @SpeakeasyMetadata()
+ @Expose({ name: "object" })
+ object: string;
+}
diff --git a/src/sdk/models/shared/finetuningjob.ts b/src/sdk/models/shared/finetuningjob.ts
new file mode 100755
index 0000000..b7fb159
--- /dev/null
+++ b/src/sdk/models/shared/finetuningjob.ts
@@ -0,0 +1,155 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import { Expose, Type } from "class-transformer";
+
+/**
+ * For fine-tuning jobs that have `failed`, this will contain more information on the cause of the failure.
+ */
+export class FineTuningJobError extends SpeakeasyBase {
+ /**
+ * A machine-readable error code.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "code" })
+ code: string;
+
+ /**
+ * A human-readable error message.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "message" })
+ message: string;
+
+ /**
+ * The parameter that was invalid, usually `training_file` or `validation_file`. This field will be null if the failure was not parameter-specific.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "param" })
+ param: string;
+}
+
+/**
+ * The hyperparameters used for the fine-tuning job. See the [fine-tuning guide](/docs/guides/fine-tuning) for more details.
+ */
+export class FineTuningJobHyperparameters extends SpeakeasyBase {
+ /**
+ * The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset.
+ *
+ * @remarks
+ * "auto" decides the optimal number of epochs based on the size of the dataset. If setting the number manually, we support any number between 1 and 50 epochs.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "n_epochs" })
+ nEpochs: any;
+}
+
+/**
+ * The `fine_tuning.job` object represents a fine-tuning job that has been created through the API.
+ *
+ * @remarks
+ *
+ */
+export class FineTuningJob extends SpeakeasyBase {
+ /**
+ * The Unix timestamp (in seconds) for when the fine-tuning job was created.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "created_at" })
+ createdAt: number;
+
+ /**
+ * For fine-tuning jobs that have `failed`, this will contain more information on the cause of the failure.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "error" })
+ @Type(() => FineTuningJobError)
+ error: FineTuningJobError;
+
+ /**
+ * The name of the fine-tuned model that is being created. The value will be null if the fine-tuning job is still running.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "fine_tuned_model" })
+ fineTunedModel: string;
+
+ /**
+ * The Unix timestamp (in seconds) for when the fine-tuning job was finished. The value will be null if the fine-tuning job is still running.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "finished_at" })
+ finishedAt: number;
+
+ /**
+ * The hyperparameters used for the fine-tuning job. See the [fine-tuning guide](/docs/guides/fine-tuning) for more details.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "hyperparameters" })
+ @Type(() => FineTuningJobHyperparameters)
+ hyperparameters: FineTuningJobHyperparameters;
+
+ /**
+ * The object identifier, which can be referenced in the API endpoints.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "id" })
+ id: string;
+
+ /**
+ * The base model that is being fine-tuned.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "model" })
+ model: string;
+
+ /**
+ * The object type, which is always "fine_tuning.job".
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "object" })
+ object: string;
+
+ /**
+ * The organization that owns the fine-tuning job.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "organization_id" })
+ organizationId: string;
+
+ /**
+ * The compiled results file ID(s) for the fine-tuning job. You can retrieve the results with the [Files API](/docs/api-reference/files/retrieve-contents).
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "result_files" })
+ resultFiles: string[];
+
+ /**
+ * The current status of the fine-tuning job, which can be either `validating_files`, `queued`, `running`, `succeeded`, `failed`, or `cancelled`.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "status" })
+ status: string;
+
+ /**
+ * The total number of billable tokens processed by this fine-tuning job. The value will be null if the fine-tuning job is still running.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "trained_tokens" })
+ trainedTokens: number;
+
+ /**
+ * The file ID used for training. You can retrieve the training data with the [Files API](/docs/api-reference/files/retrieve-contents).
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "training_file" })
+ trainingFile: string;
+
+ /**
+ * The file ID used for validation. You can retrieve the validation results with the [Files API](/docs/api-reference/files/retrieve-contents).
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "validation_file" })
+ validationFile: string;
+}
diff --git a/src/sdk/models/shared/finetuningjobevent.ts b/src/sdk/models/shared/finetuningjobevent.ts
new file mode 100755
index 0000000..d669c4c
--- /dev/null
+++ b/src/sdk/models/shared/finetuningjobevent.ts
@@ -0,0 +1,37 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import { Expose } from "class-transformer";
+
+export enum FineTuningJobEventLevel {
+ Info = "info",
+ Warn = "warn",
+ Error = "error",
+}
+
+/**
+ * Fine-tuning job event object
+ */
+export class FineTuningJobEvent extends SpeakeasyBase {
+ @SpeakeasyMetadata()
+ @Expose({ name: "created_at" })
+ createdAt: number;
+
+ @SpeakeasyMetadata()
+ @Expose({ name: "id" })
+ id: string;
+
+ @SpeakeasyMetadata()
+ @Expose({ name: "level" })
+ level: FineTuningJobEventLevel;
+
+ @SpeakeasyMetadata()
+ @Expose({ name: "message" })
+ message: string;
+
+ @SpeakeasyMetadata()
+ @Expose({ name: "object" })
+ object: string;
+}
diff --git a/src/sdk/models/shared/image.ts b/src/sdk/models/shared/image.ts
new file mode 100755
index 0000000..318230a
--- /dev/null
+++ b/src/sdk/models/shared/image.ts
@@ -0,0 +1,25 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import { Expose } from "class-transformer";
+
+/**
+ * Represents the url or the content of an image generated by the OpenAI API.
+ */
+export class Image extends SpeakeasyBase {
+ /**
+ * The base64-encoded JSON of the generated image, if `response_format` is `b64_json`.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "b64_json" })
+ b64Json?: string;
+
+ /**
+ * The URL of the generated image, if `response_format` is `url` (default).
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "url" })
+ url?: string;
+}
diff --git a/src/sdk/models/shared/imagesresponse.ts b/src/sdk/models/shared/imagesresponse.ts
new file mode 100755
index 0000000..8378d01
--- /dev/null
+++ b/src/sdk/models/shared/imagesresponse.ts
@@ -0,0 +1,18 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import { Image } from "./image";
+import { Expose, Type } from "class-transformer";
+
+export class ImagesResponse extends SpeakeasyBase {
+ @SpeakeasyMetadata()
+ @Expose({ name: "created" })
+ created: number;
+
+ @SpeakeasyMetadata({ elemType: Image })
+ @Expose({ name: "data" })
+ @Type(() => Image)
+ data: Image[];
+}
diff --git a/src/sdk/models/shared/index.ts b/src/sdk/models/shared/index.ts
index 6f142b3..7fff7c8 100755
--- a/src/sdk/models/shared/index.ts
+++ b/src/sdk/models/shared/index.ts
@@ -2,14 +2,12 @@
* Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
*/
+export * from "./chatcompletionfunctions";
export * from "./chatcompletionrequestmessage";
export * from "./chatcompletionresponsemessage";
-export * from "./createanswerrequest";
-export * from "./createanswerresponse";
+export * from "./completionusage";
export * from "./createchatcompletionrequest";
export * from "./createchatcompletionresponse";
-export * from "./createclassificationrequest";
-export * from "./createclassificationresponse";
export * from "./createcompletionrequest";
export * from "./createcompletionresponse";
export * from "./createeditrequest";
@@ -18,21 +16,31 @@ export * from "./createembeddingrequest";
export * from "./createembeddingresponse";
export * from "./createfilerequest";
export * from "./createfinetunerequest";
+export * from "./createfinetuningjobrequest";
export * from "./createimageeditrequest";
export * from "./createimagerequest";
export * from "./createimagevariationrequest";
export * from "./createmoderationrequest";
export * from "./createmoderationresponse";
-export * from "./createsearchrequest";
-export * from "./createsearchresponse";
export * from "./createtranscriptionrequest";
export * from "./createtranscriptionresponse";
export * from "./createtranslationrequest";
export * from "./createtranslationresponse";
export * from "./deletefileresponse";
export * from "./deletemodelresponse";
-export * from "./listenginesresponse";
+export * from "./embedding";
+export * from "./finetune";
+export * from "./finetuneevent";
+export * from "./finetuningjob";
+export * from "./finetuningjobevent";
+export * from "./image";
+export * from "./imagesresponse";
export * from "./listfilesresponse";
export * from "./listfinetuneeventsresponse";
export * from "./listfinetunesresponse";
+export * from "./listfinetuningjobeventsresponse";
export * from "./listmodelsresponse";
+export * from "./listpaginatedfinetuningjobsresponse";
+export * from "./model";
+export * from "./openaifile";
+export * from "./security";
diff --git a/src/sdk/models/shared/listenginesresponse.ts b/src/sdk/models/shared/listenginesresponse.ts
deleted file mode 100755
index b4384e2..0000000
--- a/src/sdk/models/shared/listenginesresponse.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
- */
-
-import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
-import { Expose } from "class-transformer";
-
-/**
- * OK
- */
-export class ListEnginesResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "data" })
- data: any[];
-
- @SpeakeasyMetadata()
- @Expose({ name: "object" })
- object: string;
-}
diff --git a/src/sdk/models/shared/listfilesresponse.ts b/src/sdk/models/shared/listfilesresponse.ts
index 842b0e3..7e43646 100755
--- a/src/sdk/models/shared/listfilesresponse.ts
+++ b/src/sdk/models/shared/listfilesresponse.ts
@@ -3,17 +3,16 @@
*/
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
-import { Expose } from "class-transformer";
+import { OpenAIFile } from "./openaifile";
+import { Expose, Type } from "class-transformer";
-/**
- * OK
- */
export class ListFilesResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "data" })
- data: any[];
+ @SpeakeasyMetadata({ elemType: OpenAIFile })
+ @Expose({ name: "data" })
+ @Type(() => OpenAIFile)
+ data: OpenAIFile[];
- @SpeakeasyMetadata()
- @Expose({ name: "object" })
- object: string;
+ @SpeakeasyMetadata()
+ @Expose({ name: "object" })
+ object: string;
}
diff --git a/src/sdk/models/shared/listfinetuneeventsresponse.ts b/src/sdk/models/shared/listfinetuneeventsresponse.ts
index e19c404..1eeebd8 100755
--- a/src/sdk/models/shared/listfinetuneeventsresponse.ts
+++ b/src/sdk/models/shared/listfinetuneeventsresponse.ts
@@ -3,17 +3,16 @@
*/
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
-import { Expose } from "class-transformer";
+import { FineTuneEvent } from "./finetuneevent";
+import { Expose, Type } from "class-transformer";
-/**
- * OK
- */
export class ListFineTuneEventsResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "data" })
- data: any[];
+ @SpeakeasyMetadata({ elemType: FineTuneEvent })
+ @Expose({ name: "data" })
+ @Type(() => FineTuneEvent)
+ data: FineTuneEvent[];
- @SpeakeasyMetadata()
- @Expose({ name: "object" })
- object: string;
+ @SpeakeasyMetadata()
+ @Expose({ name: "object" })
+ object: string;
}
diff --git a/src/sdk/models/shared/listfinetunesresponse.ts b/src/sdk/models/shared/listfinetunesresponse.ts
index c381407..a9db242 100755
--- a/src/sdk/models/shared/listfinetunesresponse.ts
+++ b/src/sdk/models/shared/listfinetunesresponse.ts
@@ -3,17 +3,16 @@
*/
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
-import { Expose } from "class-transformer";
+import { FineTune } from "./finetune";
+import { Expose, Type } from "class-transformer";
-/**
- * OK
- */
export class ListFineTunesResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "data" })
- data: any[];
+ @SpeakeasyMetadata({ elemType: FineTune })
+ @Expose({ name: "data" })
+ @Type(() => FineTune)
+ data: FineTune[];
- @SpeakeasyMetadata()
- @Expose({ name: "object" })
- object: string;
+ @SpeakeasyMetadata()
+ @Expose({ name: "object" })
+ object: string;
}
diff --git a/src/sdk/models/shared/listfinetuningjobeventsresponse.ts b/src/sdk/models/shared/listfinetuningjobeventsresponse.ts
new file mode 100755
index 0000000..6af7121
--- /dev/null
+++ b/src/sdk/models/shared/listfinetuningjobeventsresponse.ts
@@ -0,0 +1,18 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import { FineTuningJobEvent } from "./finetuningjobevent";
+import { Expose, Type } from "class-transformer";
+
+export class ListFineTuningJobEventsResponse extends SpeakeasyBase {
+ @SpeakeasyMetadata({ elemType: FineTuningJobEvent })
+ @Expose({ name: "data" })
+ @Type(() => FineTuningJobEvent)
+ data: FineTuningJobEvent[];
+
+ @SpeakeasyMetadata()
+ @Expose({ name: "object" })
+ object: string;
+}
diff --git a/src/sdk/models/shared/listmodelsresponse.ts b/src/sdk/models/shared/listmodelsresponse.ts
index fc621ca..7da8846 100755
--- a/src/sdk/models/shared/listmodelsresponse.ts
+++ b/src/sdk/models/shared/listmodelsresponse.ts
@@ -3,17 +3,16 @@
*/
import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
-import { Expose } from "class-transformer";
+import { Model } from "./model";
+import { Expose, Type } from "class-transformer";
-/**
- * OK
- */
export class ListModelsResponse extends SpeakeasyBase {
- @SpeakeasyMetadata()
- @Expose({ name: "data" })
- data: any[];
+ @SpeakeasyMetadata({ elemType: Model })
+ @Expose({ name: "data" })
+ @Type(() => Model)
+ data: Model[];
- @SpeakeasyMetadata()
- @Expose({ name: "object" })
- object: string;
+ @SpeakeasyMetadata()
+ @Expose({ name: "object" })
+ object: string;
}
diff --git a/src/sdk/models/shared/listpaginatedfinetuningjobsresponse.ts b/src/sdk/models/shared/listpaginatedfinetuningjobsresponse.ts
new file mode 100755
index 0000000..e54f335
--- /dev/null
+++ b/src/sdk/models/shared/listpaginatedfinetuningjobsresponse.ts
@@ -0,0 +1,22 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import { FineTuningJob } from "./finetuningjob";
+import { Expose, Type } from "class-transformer";
+
+export class ListPaginatedFineTuningJobsResponse extends SpeakeasyBase {
+ @SpeakeasyMetadata({ elemType: FineTuningJob })
+ @Expose({ name: "data" })
+ @Type(() => FineTuningJob)
+ data: FineTuningJob[];
+
+ @SpeakeasyMetadata()
+ @Expose({ name: "has_more" })
+ hasMore: boolean;
+
+ @SpeakeasyMetadata()
+ @Expose({ name: "object" })
+ object: string;
+}
diff --git a/src/sdk/models/shared/model.ts b/src/sdk/models/shared/model.ts
new file mode 100755
index 0000000..32b8668
--- /dev/null
+++ b/src/sdk/models/shared/model.ts
@@ -0,0 +1,39 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import { Expose } from "class-transformer";
+
+/**
+ * Describes an OpenAI model offering that can be used with the API.
+ */
+export class Model extends SpeakeasyBase {
+ /**
+ * The Unix timestamp (in seconds) when the model was created.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "created" })
+ created: number;
+
+ /**
+ * The model identifier, which can be referenced in the API endpoints.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "id" })
+ id: string;
+
+ /**
+ * The object type, which is always "model".
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "object" })
+ object: string;
+
+ /**
+ * The organization that owns the model.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "owned_by" })
+ ownedBy: string;
+}
diff --git a/src/sdk/models/shared/openaifile.ts b/src/sdk/models/shared/openaifile.ts
new file mode 100755
index 0000000..32bd435
--- /dev/null
+++ b/src/sdk/models/shared/openaifile.ts
@@ -0,0 +1,73 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+import { Expose } from "class-transformer";
+
+/**
+ * The `File` object represents a document that has been uploaded to OpenAI.
+ *
+ * @remarks
+ *
+ */
+export class OpenAIFile extends SpeakeasyBase {
+ /**
+ * The size of the file in bytes.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "bytes" })
+ bytes: number;
+
+ /**
+ * The Unix timestamp (in seconds) for when the file was created.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "created_at" })
+ createdAt: number;
+
+ /**
+ * The name of the file.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "filename" })
+ filename: string;
+
+ /**
+ * The file identifier, which can be referenced in the API endpoints.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "id" })
+ id: string;
+
+ /**
+ * The object type, which is always "file".
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "object" })
+ object: string;
+
+ /**
+ * The intended purpose of the file. Currently, only "fine-tune" is supported.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "purpose" })
+ purpose: string;
+
+ /**
+ * The current status of the file, which can be either `uploaded`, `processed`, `pending`, `error`, `deleting` or `deleted`.
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "status" })
+ status?: string;
+
+ /**
+ * Additional details about the status of the file. If the file is in the `error` state, this will include a message describing the error.
+ *
+ * @remarks
+ *
+ */
+ @SpeakeasyMetadata()
+ @Expose({ name: "status_details" })
+ statusDetails?: string;
+}
diff --git a/src/sdk/models/shared/security.ts b/src/sdk/models/shared/security.ts
new file mode 100755
index 0000000..a447dc5
--- /dev/null
+++ b/src/sdk/models/shared/security.ts
@@ -0,0 +1,12 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import { SpeakeasyBase, SpeakeasyMetadata } from "../../../internal/utils";
+
+export class Security extends SpeakeasyBase {
+ @SpeakeasyMetadata({
+ data: "security, scheme=true;type=http;subtype=bearer;name=Authorization",
+ })
+ apiKeyAuth: string;
+}
diff --git a/src/sdk/moderations.ts b/src/sdk/moderations.ts
new file mode 100755
index 0000000..bc147b1
--- /dev/null
+++ b/src/sdk/moderations.ts
@@ -0,0 +1,110 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+import * as utils from "../internal/utils";
+import * as errors from "./models/errors";
+import * as operations from "./models/operations";
+import * as shared from "./models/shared";
+import { SDKConfiguration } from "./sdk";
+import { AxiosInstance, AxiosRequestConfig, AxiosResponse, RawAxiosRequestHeaders } from "axios";
+
+/**
+ * Given a input text, outputs if the model classifies it as violating OpenAI's content policy.
+ */
+
+export class Moderations {
+ private sdkConfiguration: SDKConfiguration;
+
+ constructor(sdkConfig: SDKConfiguration) {
+ this.sdkConfiguration = sdkConfig;
+ }
+
+ /**
+ * Classifies if text violates OpenAI's Content Policy
+ */
+ async createModeration(
+ req: shared.CreateModerationRequest,
+ config?: AxiosRequestConfig
+ ): Promise {
+ if (!(req instanceof utils.SpeakeasyBase)) {
+ req = new shared.CreateModerationRequest(req);
+ }
+
+ const baseURL: string = utils.templateUrl(
+ this.sdkConfiguration.serverURL,
+ this.sdkConfiguration.serverDefaults
+ );
+ const url: string = baseURL.replace(/\/$/, "") + "/moderations";
+
+ let [reqBodyHeaders, reqBody]: [object, any] = [{}, null];
+
+ try {
+ [reqBodyHeaders, reqBody] = utils.serializeRequestBody(req, "request", "json");
+ } catch (e: unknown) {
+ if (e instanceof Error) {
+ throw new Error(`Error serializing request body, cause: ${e.message}`);
+ }
+ }
+ const client: AxiosInstance = this.sdkConfiguration.defaultClient;
+ let globalSecurity = this.sdkConfiguration.security;
+ if (typeof globalSecurity === "function") {
+ globalSecurity = await globalSecurity();
+ }
+ if (!(globalSecurity instanceof utils.SpeakeasyBase)) {
+ globalSecurity = new shared.Security(globalSecurity);
+ }
+ const properties = utils.parseSecurityProperties(globalSecurity);
+ const headers: RawAxiosRequestHeaders = {
+ ...reqBodyHeaders,
+ ...config?.headers,
+ ...properties.headers,
+ };
+ if (reqBody == null) throw new Error("request body is required");
+ headers["Accept"] = "application/json";
+
+ headers["user-agent"] = this.sdkConfiguration.userAgent;
+
+ const httpRes: AxiosResponse = await client.request({
+ validateStatus: () => true,
+ url: url,
+ method: "post",
+ headers: headers,
+ responseType: "arraybuffer",
+ data: reqBody,
+ ...config,
+ });
+
+ const contentType: string = httpRes?.headers?.["content-type"] ?? "";
+
+ if (httpRes?.status == null) {
+ throw new Error(`status code not found in response: ${httpRes}`);
+ }
+
+ const res: operations.CreateModerationResponse = new operations.CreateModerationResponse({
+ statusCode: httpRes.status,
+ contentType: contentType,
+ rawResponse: httpRes,
+ });
+ const decodedRes = new TextDecoder().decode(httpRes?.data);
+ switch (true) {
+ case httpRes?.status == 200:
+ if (utils.matchContentType(contentType, `application/json`)) {
+ res.createModerationResponse = utils.objectToClass(
+ JSON.parse(decodedRes),
+ shared.CreateModerationResponse
+ );
+ } else {
+ throw new errors.SDKError(
+ "unknown content-type received: " + contentType,
+ httpRes.status,
+ decodedRes,
+ httpRes
+ );
+ }
+ break;
+ }
+
+ return res;
+ }
+}
diff --git a/src/sdk/openai.ts b/src/sdk/openai.ts
deleted file mode 100755
index 3c566ab..0000000
--- a/src/sdk/openai.ts
+++ /dev/null
@@ -1,1680 +0,0 @@
-/*
- * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
- */
-
-import * as utils from "../internal/utils";
-import * as operations from "./models/operations";
-import * as shared from "./models/shared";
-import { AxiosInstance, AxiosRequestConfig, AxiosResponse } from "axios";
-
-/**
- * The OpenAI REST API
- */
-export class OpenAI {
- _defaultClient: AxiosInstance;
- _securityClient: AxiosInstance;
- _serverURL: string;
- _language: string;
- _sdkVersion: string;
- _genVersion: string;
-
- constructor(
- defaultClient: AxiosInstance,
- securityClient: AxiosInstance,
- serverURL: string,
- language: string,
- sdkVersion: string,
- genVersion: string
- ) {
- this._defaultClient = defaultClient;
- this._securityClient = securityClient;
- this._serverURL = serverURL;
- this._language = language;
- this._sdkVersion = sdkVersion;
- this._genVersion = genVersion;
- }
-
- /**
- * Immediately cancel a fine-tune job.
- *
- */
- cancelFineTune(
- req: operations.CancelFineTuneRequest,
- config?: AxiosRequestConfig
- ): Promise {
- if (!(req instanceof utils.SpeakeasyBase)) {
- req = new operations.CancelFineTuneRequest(req);
- }
-
- const baseURL: string = this._serverURL;
- const url: string = utils.generateURL(
- baseURL,
- "/fine-tunes/{fine_tune_id}/cancel",
- req
- );
-
- const client: AxiosInstance = this._defaultClient;
-
- const r = client.request({
- url: url,
- method: "post",
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.CancelFineTuneResponse =
- new operations.CancelFineTuneResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.fineTune = httpRes?.data;
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * Answers the specified question using the provided documents and examples.
- *
- * The endpoint first [searches](/docs/api-reference/searches) over provided documents or files to find relevant context. The relevant context is combined with the provided examples and question to create the prompt for [completion](/docs/api-reference/completions).
- *
- */
- createAnswer(
- req: shared.CreateAnswerRequest,
- config?: AxiosRequestConfig
- ): Promise {
- if (!(req instanceof utils.SpeakeasyBase)) {
- req = new shared.CreateAnswerRequest(req);
- }
-
- const baseURL: string = this._serverURL;
- const url: string = baseURL.replace(/\/$/, "") + "/answers";
-
- let [reqBodyHeaders, reqBody]: [object, any] = [{}, {}];
-
- try {
- [reqBodyHeaders, reqBody] = utils.serializeRequestBody(
- req,
- "request",
- "json"
- );
- } catch (e: unknown) {
- if (e instanceof Error) {
- throw new Error(`Error serializing request body, cause: ${e.message}`);
- }
- }
-
- const client: AxiosInstance = this._defaultClient;
-
- const headers = { ...reqBodyHeaders, ...config?.headers };
- if (reqBody == null || Object.keys(reqBody).length === 0)
- throw new Error("request body is required");
-
- const r = client.request({
- url: url,
- method: "post",
- headers: headers,
- data: reqBody,
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.CreateAnswerResponse =
- new operations.CreateAnswerResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.createAnswerResponse = utils.deserializeJSONResponse(
- httpRes?.data,
- shared.CreateAnswerResponse
- );
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * Creates a completion for the chat message
- */
- createChatCompletion(
- req: shared.CreateChatCompletionRequest,
- config?: AxiosRequestConfig
- ): Promise {
- if (!(req instanceof utils.SpeakeasyBase)) {
- req = new shared.CreateChatCompletionRequest(req);
- }
-
- const baseURL: string = this._serverURL;
- const url: string = baseURL.replace(/\/$/, "") + "/chat/completions";
-
- let [reqBodyHeaders, reqBody]: [object, any] = [{}, {}];
-
- try {
- [reqBodyHeaders, reqBody] = utils.serializeRequestBody(
- req,
- "request",
- "json"
- );
- } catch (e: unknown) {
- if (e instanceof Error) {
- throw new Error(`Error serializing request body, cause: ${e.message}`);
- }
- }
-
- const client: AxiosInstance = this._defaultClient;
-
- const headers = { ...reqBodyHeaders, ...config?.headers };
- if (reqBody == null || Object.keys(reqBody).length === 0)
- throw new Error("request body is required");
-
- const r = client.request({
- url: url,
- method: "post",
- headers: headers,
- data: reqBody,
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.CreateChatCompletionResponse =
- new operations.CreateChatCompletionResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.createChatCompletionResponse = utils.deserializeJSONResponse(
- httpRes?.data,
- shared.CreateChatCompletionResponse
- );
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * Classifies the specified `query` using provided examples.
- *
- * The endpoint first [searches](/docs/api-reference/searches) over the labeled examples
- * to select the ones most relevant for the particular query. Then, the relevant examples
- * are combined with the query to construct a prompt to produce the final label via the
- * [completions](/docs/api-reference/completions) endpoint.
- *
- * Labeled examples can be provided via an uploaded `file`, or explicitly listed in the
- * request using the `examples` parameter for quick tests and small scale use cases.
- *
- */
- createClassification(
- req: shared.CreateClassificationRequest,
- config?: AxiosRequestConfig
- ): Promise {
- if (!(req instanceof utils.SpeakeasyBase)) {
- req = new shared.CreateClassificationRequest(req);
- }
-
- const baseURL: string = this._serverURL;
- const url: string = baseURL.replace(/\/$/, "") + "/classifications";
-
- let [reqBodyHeaders, reqBody]: [object, any] = [{}, {}];
-
- try {
- [reqBodyHeaders, reqBody] = utils.serializeRequestBody(
- req,
- "request",
- "json"
- );
- } catch (e: unknown) {
- if (e instanceof Error) {
- throw new Error(`Error serializing request body, cause: ${e.message}`);
- }
- }
-
- const client: AxiosInstance = this._defaultClient;
-
- const headers = { ...reqBodyHeaders, ...config?.headers };
- if (reqBody == null || Object.keys(reqBody).length === 0)
- throw new Error("request body is required");
-
- const r = client.request({
- url: url,
- method: "post",
- headers: headers,
- data: reqBody,
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.CreateClassificationResponse =
- new operations.CreateClassificationResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.createClassificationResponse = utils.deserializeJSONResponse(
- httpRes?.data,
- shared.CreateClassificationResponse
- );
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * Creates a completion for the provided prompt and parameters
- */
- createCompletion(
- req: shared.CreateCompletionRequest,
- config?: AxiosRequestConfig
- ): Promise {
- if (!(req instanceof utils.SpeakeasyBase)) {
- req = new shared.CreateCompletionRequest(req);
- }
-
- const baseURL: string = this._serverURL;
- const url: string = baseURL.replace(/\/$/, "") + "/completions";
-
- let [reqBodyHeaders, reqBody]: [object, any] = [{}, {}];
-
- try {
- [reqBodyHeaders, reqBody] = utils.serializeRequestBody(
- req,
- "request",
- "json"
- );
- } catch (e: unknown) {
- if (e instanceof Error) {
- throw new Error(`Error serializing request body, cause: ${e.message}`);
- }
- }
-
- const client: AxiosInstance = this._defaultClient;
-
- const headers = { ...reqBodyHeaders, ...config?.headers };
- if (reqBody == null || Object.keys(reqBody).length === 0)
- throw new Error("request body is required");
-
- const r = client.request({
- url: url,
- method: "post",
- headers: headers,
- data: reqBody,
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.CreateCompletionResponse =
- new operations.CreateCompletionResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.createCompletionResponse = utils.deserializeJSONResponse(
- httpRes?.data,
- shared.CreateCompletionResponse
- );
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * Creates a new edit for the provided input, instruction, and parameters.
- */
- createEdit(
- req: shared.CreateEditRequest,
- config?: AxiosRequestConfig
- ): Promise {
- if (!(req instanceof utils.SpeakeasyBase)) {
- req = new shared.CreateEditRequest(req);
- }
-
- const baseURL: string = this._serverURL;
- const url: string = baseURL.replace(/\/$/, "") + "/edits";
-
- let [reqBodyHeaders, reqBody]: [object, any] = [{}, {}];
-
- try {
- [reqBodyHeaders, reqBody] = utils.serializeRequestBody(
- req,
- "request",
- "json"
- );
- } catch (e: unknown) {
- if (e instanceof Error) {
- throw new Error(`Error serializing request body, cause: ${e.message}`);
- }
- }
-
- const client: AxiosInstance = this._defaultClient;
-
- const headers = { ...reqBodyHeaders, ...config?.headers };
- if (reqBody == null || Object.keys(reqBody).length === 0)
- throw new Error("request body is required");
-
- const r = client.request({
- url: url,
- method: "post",
- headers: headers,
- data: reqBody,
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.CreateEditResponse =
- new operations.CreateEditResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.createEditResponse = utils.deserializeJSONResponse(
- httpRes?.data,
- shared.CreateEditResponse
- );
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * Creates an embedding vector representing the input text.
- */
- createEmbedding(
- req: shared.CreateEmbeddingRequest,
- config?: AxiosRequestConfig
- ): Promise {
- if (!(req instanceof utils.SpeakeasyBase)) {
- req = new shared.CreateEmbeddingRequest(req);
- }
-
- const baseURL: string = this._serverURL;
- const url: string = baseURL.replace(/\/$/, "") + "/embeddings";
-
- let [reqBodyHeaders, reqBody]: [object, any] = [{}, {}];
-
- try {
- [reqBodyHeaders, reqBody] = utils.serializeRequestBody(
- req,
- "request",
- "json"
- );
- } catch (e: unknown) {
- if (e instanceof Error) {
- throw new Error(`Error serializing request body, cause: ${e.message}`);
- }
- }
-
- const client: AxiosInstance = this._defaultClient;
-
- const headers = { ...reqBodyHeaders, ...config?.headers };
- if (reqBody == null || Object.keys(reqBody).length === 0)
- throw new Error("request body is required");
-
- const r = client.request({
- url: url,
- method: "post",
- headers: headers,
- data: reqBody,
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.CreateEmbeddingResponse =
- new operations.CreateEmbeddingResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.createEmbeddingResponse = utils.deserializeJSONResponse(
- httpRes?.data,
- shared.CreateEmbeddingResponse
- );
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * Upload a file that contains document(s) to be used across various endpoints/features. Currently, the size of all the files uploaded by one organization can be up to 1 GB. Please contact us if you need to increase the storage limit.
- *
- */
- createFile(
- req: shared.CreateFileRequest,
- config?: AxiosRequestConfig
- ): Promise {
- if (!(req instanceof utils.SpeakeasyBase)) {
- req = new shared.CreateFileRequest(req);
- }
-
- const baseURL: string = this._serverURL;
- const url: string = baseURL.replace(/\/$/, "") + "/files";
-
- let [reqBodyHeaders, reqBody]: [object, any] = [{}, {}];
-
- try {
- [reqBodyHeaders, reqBody] = utils.serializeRequestBody(
- req,
- "request",
- "multipart"
- );
- } catch (e: unknown) {
- if (e instanceof Error) {
- throw new Error(`Error serializing request body, cause: ${e.message}`);
- }
- }
-
- const client: AxiosInstance = this._defaultClient;
-
- const headers = { ...reqBodyHeaders, ...config?.headers };
- if (reqBody == null || Object.keys(reqBody).length === 0)
- throw new Error("request body is required");
-
- const r = client.request({
- url: url,
- method: "post",
- headers: headers,
- data: reqBody,
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.CreateFileResponse =
- new operations.CreateFileResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.openAIFile = httpRes?.data;
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * Creates a job that fine-tunes a specified model from a given dataset.
- *
- * Response includes details of the enqueued job including job status and the name of the fine-tuned models once complete.
- *
- * [Learn more about Fine-tuning](/docs/guides/fine-tuning)
- *
- */
- createFineTune(
- req: shared.CreateFineTuneRequest,
- config?: AxiosRequestConfig
- ): Promise {
- if (!(req instanceof utils.SpeakeasyBase)) {
- req = new shared.CreateFineTuneRequest(req);
- }
-
- const baseURL: string = this._serverURL;
- const url: string = baseURL.replace(/\/$/, "") + "/fine-tunes";
-
- let [reqBodyHeaders, reqBody]: [object, any] = [{}, {}];
-
- try {
- [reqBodyHeaders, reqBody] = utils.serializeRequestBody(
- req,
- "request",
- "json"
- );
- } catch (e: unknown) {
- if (e instanceof Error) {
- throw new Error(`Error serializing request body, cause: ${e.message}`);
- }
- }
-
- const client: AxiosInstance = this._defaultClient;
-
- const headers = { ...reqBodyHeaders, ...config?.headers };
- if (reqBody == null || Object.keys(reqBody).length === 0)
- throw new Error("request body is required");
-
- const r = client.request({
- url: url,
- method: "post",
- headers: headers,
- data: reqBody,
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.CreateFineTuneResponse =
- new operations.CreateFineTuneResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.fineTune = httpRes?.data;
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * Creates an image given a prompt.
- */
- createImage(
- req: shared.CreateImageRequest,
- config?: AxiosRequestConfig
- ): Promise {
- if (!(req instanceof utils.SpeakeasyBase)) {
- req = new shared.CreateImageRequest(req);
- }
-
- const baseURL: string = this._serverURL;
- const url: string = baseURL.replace(/\/$/, "") + "/images/generations";
-
- let [reqBodyHeaders, reqBody]: [object, any] = [{}, {}];
-
- try {
- [reqBodyHeaders, reqBody] = utils.serializeRequestBody(
- req,
- "request",
- "json"
- );
- } catch (e: unknown) {
- if (e instanceof Error) {
- throw new Error(`Error serializing request body, cause: ${e.message}`);
- }
- }
-
- const client: AxiosInstance = this._defaultClient;
-
- const headers = { ...reqBodyHeaders, ...config?.headers };
- if (reqBody == null || Object.keys(reqBody).length === 0)
- throw new Error("request body is required");
-
- const r = client.request({
- url: url,
- method: "post",
- headers: headers,
- data: reqBody,
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.CreateImageResponse =
- new operations.CreateImageResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.imagesResponse = httpRes?.data;
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * Creates an edited or extended image given an original image and a prompt.
- */
- createImageEdit(
- req: shared.CreateImageEditRequest,
- config?: AxiosRequestConfig
- ): Promise {
- if (!(req instanceof utils.SpeakeasyBase)) {
- req = new shared.CreateImageEditRequest(req);
- }
-
- const baseURL: string = this._serverURL;
- const url: string = baseURL.replace(/\/$/, "") + "/images/edits";
-
- let [reqBodyHeaders, reqBody]: [object, any] = [{}, {}];
-
- try {
- [reqBodyHeaders, reqBody] = utils.serializeRequestBody(
- req,
- "request",
- "multipart"
- );
- } catch (e: unknown) {
- if (e instanceof Error) {
- throw new Error(`Error serializing request body, cause: ${e.message}`);
- }
- }
-
- const client: AxiosInstance = this._defaultClient;
-
- const headers = { ...reqBodyHeaders, ...config?.headers };
- if (reqBody == null || Object.keys(reqBody).length === 0)
- throw new Error("request body is required");
-
- const r = client.request({
- url: url,
- method: "post",
- headers: headers,
- data: reqBody,
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.CreateImageEditResponse =
- new operations.CreateImageEditResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.imagesResponse = httpRes?.data;
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * Creates a variation of a given image.
- */
- createImageVariation(
- req: shared.CreateImageVariationRequest,
- config?: AxiosRequestConfig
- ): Promise {
- if (!(req instanceof utils.SpeakeasyBase)) {
- req = new shared.CreateImageVariationRequest(req);
- }
-
- const baseURL: string = this._serverURL;
- const url: string = baseURL.replace(/\/$/, "") + "/images/variations";
-
- let [reqBodyHeaders, reqBody]: [object, any] = [{}, {}];
-
- try {
- [reqBodyHeaders, reqBody] = utils.serializeRequestBody(
- req,
- "request",
- "multipart"
- );
- } catch (e: unknown) {
- if (e instanceof Error) {
- throw new Error(`Error serializing request body, cause: ${e.message}`);
- }
- }
-
- const client: AxiosInstance = this._defaultClient;
-
- const headers = { ...reqBodyHeaders, ...config?.headers };
- if (reqBody == null || Object.keys(reqBody).length === 0)
- throw new Error("request body is required");
-
- const r = client.request({
- url: url,
- method: "post",
- headers: headers,
- data: reqBody,
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.CreateImageVariationResponse =
- new operations.CreateImageVariationResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.imagesResponse = httpRes?.data;
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * Classifies if text violates OpenAI's Content Policy
- */
- createModeration(
- req: shared.CreateModerationRequest,
- config?: AxiosRequestConfig
- ): Promise {
- if (!(req instanceof utils.SpeakeasyBase)) {
- req = new shared.CreateModerationRequest(req);
- }
-
- const baseURL: string = this._serverURL;
- const url: string = baseURL.replace(/\/$/, "") + "/moderations";
-
- let [reqBodyHeaders, reqBody]: [object, any] = [{}, {}];
-
- try {
- [reqBodyHeaders, reqBody] = utils.serializeRequestBody(
- req,
- "request",
- "json"
- );
- } catch (e: unknown) {
- if (e instanceof Error) {
- throw new Error(`Error serializing request body, cause: ${e.message}`);
- }
- }
-
- const client: AxiosInstance = this._defaultClient;
-
- const headers = { ...reqBodyHeaders, ...config?.headers };
- if (reqBody == null || Object.keys(reqBody).length === 0)
- throw new Error("request body is required");
-
- const r = client.request({
- url: url,
- method: "post",
- headers: headers,
- data: reqBody,
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.CreateModerationResponse =
- new operations.CreateModerationResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.createModerationResponse = utils.deserializeJSONResponse(
- httpRes?.data,
- shared.CreateModerationResponse
- );
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * The search endpoint computes similarity scores between provided query and documents. Documents can be passed directly to the API if there are no more than 200 of them.
- *
- * To go beyond the 200 document limit, documents can be processed offline and then used for efficient retrieval at query time. When `file` is set, the search endpoint searches over all the documents in the given file and returns up to the `max_rerank` number of documents. These documents will be returned along with their search scores.
- *
- * The similarity score is a positive score that usually ranges from 0 to 300 (but can sometimes go higher), where a score above 200 usually means the document is semantically similar to the query.
- *
- */
- createSearch(
- req: operations.CreateSearchRequest,
- config?: AxiosRequestConfig
- ): Promise {
- if (!(req instanceof utils.SpeakeasyBase)) {
- req = new operations.CreateSearchRequest(req);
- }
-
- const baseURL: string = this._serverURL;
- const url: string = utils.generateURL(
- baseURL,
- "/engines/{engine_id}/search",
- req
- );
-
- let [reqBodyHeaders, reqBody]: [object, any] = [{}, {}];
-
- try {
- [reqBodyHeaders, reqBody] = utils.serializeRequestBody(
- req,
- "createSearchRequest",
- "json"
- );
- } catch (e: unknown) {
- if (e instanceof Error) {
- throw new Error(`Error serializing request body, cause: ${e.message}`);
- }
- }
-
- const client: AxiosInstance = this._defaultClient;
-
- const headers = { ...reqBodyHeaders, ...config?.headers };
- if (reqBody == null || Object.keys(reqBody).length === 0)
- throw new Error("request body is required");
-
- const r = client.request({
- url: url,
- method: "post",
- headers: headers,
- data: reqBody,
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.CreateSearchResponse =
- new operations.CreateSearchResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.createSearchResponse = utils.deserializeJSONResponse(
- httpRes?.data,
- shared.CreateSearchResponse
- );
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * Transcribes audio into the input language.
- */
- createTranscription(
- req: shared.CreateTranscriptionRequest,
- config?: AxiosRequestConfig
- ): Promise {
- if (!(req instanceof utils.SpeakeasyBase)) {
- req = new shared.CreateTranscriptionRequest(req);
- }
-
- const baseURL: string = this._serverURL;
- const url: string = baseURL.replace(/\/$/, "") + "/audio/transcriptions";
-
- let [reqBodyHeaders, reqBody]: [object, any] = [{}, {}];
-
- try {
- [reqBodyHeaders, reqBody] = utils.serializeRequestBody(
- req,
- "request",
- "multipart"
- );
- } catch (e: unknown) {
- if (e instanceof Error) {
- throw new Error(`Error serializing request body, cause: ${e.message}`);
- }
- }
-
- const client: AxiosInstance = this._defaultClient;
-
- const headers = { ...reqBodyHeaders, ...config?.headers };
- if (reqBody == null || Object.keys(reqBody).length === 0)
- throw new Error("request body is required");
-
- const r = client.request({
- url: url,
- method: "post",
- headers: headers,
- data: reqBody,
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.CreateTranscriptionResponse =
- new operations.CreateTranscriptionResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.createTranscriptionResponse = utils.deserializeJSONResponse(
- httpRes?.data,
- shared.CreateTranscriptionResponse
- );
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * Translates audio into into English.
- */
- createTranslation(
- req: shared.CreateTranslationRequest,
- config?: AxiosRequestConfig
- ): Promise {
- if (!(req instanceof utils.SpeakeasyBase)) {
- req = new shared.CreateTranslationRequest(req);
- }
-
- const baseURL: string = this._serverURL;
- const url: string = baseURL.replace(/\/$/, "") + "/audio/translations";
-
- let [reqBodyHeaders, reqBody]: [object, any] = [{}, {}];
-
- try {
- [reqBodyHeaders, reqBody] = utils.serializeRequestBody(
- req,
- "request",
- "multipart"
- );
- } catch (e: unknown) {
- if (e instanceof Error) {
- throw new Error(`Error serializing request body, cause: ${e.message}`);
- }
- }
-
- const client: AxiosInstance = this._defaultClient;
-
- const headers = { ...reqBodyHeaders, ...config?.headers };
- if (reqBody == null || Object.keys(reqBody).length === 0)
- throw new Error("request body is required");
-
- const r = client.request({
- url: url,
- method: "post",
- headers: headers,
- data: reqBody,
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.CreateTranslationResponse =
- new operations.CreateTranslationResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.createTranslationResponse = utils.deserializeJSONResponse(
- httpRes?.data,
- shared.CreateTranslationResponse
- );
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * Delete a file.
- */
- deleteFile(
- req: operations.DeleteFileRequest,
- config?: AxiosRequestConfig
- ): Promise {
- if (!(req instanceof utils.SpeakeasyBase)) {
- req = new operations.DeleteFileRequest(req);
- }
-
- const baseURL: string = this._serverURL;
- const url: string = utils.generateURL(baseURL, "/files/{file_id}", req);
-
- const client: AxiosInstance = this._defaultClient;
-
- const r = client.request({
- url: url,
- method: "delete",
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.DeleteFileResponse =
- new operations.DeleteFileResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.deleteFileResponse = utils.deserializeJSONResponse(
- httpRes?.data,
- shared.DeleteFileResponse
- );
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * Delete a fine-tuned model. You must have the Owner role in your organization.
- */
- deleteModel(
- req: operations.DeleteModelRequest,
- config?: AxiosRequestConfig
- ): Promise {
- if (!(req instanceof utils.SpeakeasyBase)) {
- req = new operations.DeleteModelRequest(req);
- }
-
- const baseURL: string = this._serverURL;
- const url: string = utils.generateURL(baseURL, "/models/{model}", req);
-
- const client: AxiosInstance = this._defaultClient;
-
- const r = client.request({
- url: url,
- method: "delete",
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.DeleteModelResponse =
- new operations.DeleteModelResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.deleteModelResponse = utils.deserializeJSONResponse(
- httpRes?.data,
- shared.DeleteModelResponse
- );
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * Returns the contents of the specified file
- */
- downloadFile(
- req: operations.DownloadFileRequest,
- config?: AxiosRequestConfig
- ): Promise {
- if (!(req instanceof utils.SpeakeasyBase)) {
- req = new operations.DownloadFileRequest(req);
- }
-
- const baseURL: string = this._serverURL;
- const url: string = utils.generateURL(
- baseURL,
- "/files/{file_id}/content",
- req
- );
-
- const client: AxiosInstance = this._defaultClient;
-
- const r = client.request({
- url: url,
- method: "get",
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.DownloadFileResponse =
- new operations.DownloadFileResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.downloadFile200ApplicationJSONString = JSON.stringify(
- httpRes?.data
- );
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * Lists the currently available (non-finetuned) models, and provides basic information about each one such as the owner and availability.
- */
- listEngines(
- config?: AxiosRequestConfig
- ): Promise {
- const baseURL: string = this._serverURL;
- const url: string = baseURL.replace(/\/$/, "") + "/engines";
-
- const client: AxiosInstance = this._defaultClient;
-
- const r = client.request({
- url: url,
- method: "get",
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.ListEnginesResponse =
- new operations.ListEnginesResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.listEnginesResponse = utils.deserializeJSONResponse(
- httpRes?.data,
- shared.ListEnginesResponse
- );
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * Returns a list of files that belong to the user's organization.
- */
- listFiles(
- config?: AxiosRequestConfig
- ): Promise {
- const baseURL: string = this._serverURL;
- const url: string = baseURL.replace(/\/$/, "") + "/files";
-
- const client: AxiosInstance = this._defaultClient;
-
- const r = client.request({
- url: url,
- method: "get",
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.ListFilesResponse =
- new operations.ListFilesResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.listFilesResponse = utils.deserializeJSONResponse(
- httpRes?.data,
- shared.ListFilesResponse
- );
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * Get fine-grained status updates for a fine-tune job.
- *
- */
- listFineTuneEvents(
- req: operations.ListFineTuneEventsRequest,
- config?: AxiosRequestConfig
- ): Promise {
- if (!(req instanceof utils.SpeakeasyBase)) {
- req = new operations.ListFineTuneEventsRequest(req);
- }
-
- const baseURL: string = this._serverURL;
- const url: string = utils.generateURL(
- baseURL,
- "/fine-tunes/{fine_tune_id}/events",
- req
- );
-
- const client: AxiosInstance = this._defaultClient;
-
- const queryParams: string = utils.serializeQueryParams(req);
-
- const r = client.request({
- url: url + queryParams,
- method: "get",
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.ListFineTuneEventsResponse =
- new operations.ListFineTuneEventsResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.listFineTuneEventsResponse = utils.deserializeJSONResponse(
- httpRes?.data,
- shared.ListFineTuneEventsResponse
- );
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * List your organization's fine-tuning jobs
- *
- */
- listFineTunes(
- config?: AxiosRequestConfig
- ): Promise {
- const baseURL: string = this._serverURL;
- const url: string = baseURL.replace(/\/$/, "") + "/fine-tunes";
-
- const client: AxiosInstance = this._defaultClient;
-
- const r = client.request({
- url: url,
- method: "get",
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.ListFineTunesResponse =
- new operations.ListFineTunesResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.listFineTunesResponse = utils.deserializeJSONResponse(
- httpRes?.data,
- shared.ListFineTunesResponse
- );
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * Lists the currently available models, and provides basic information about each one such as the owner and availability.
- */
- listModels(
- config?: AxiosRequestConfig
- ): Promise {
- const baseURL: string = this._serverURL;
- const url: string = baseURL.replace(/\/$/, "") + "/models";
-
- const client: AxiosInstance = this._defaultClient;
-
- const r = client.request({
- url: url,
- method: "get",
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.ListModelsResponse =
- new operations.ListModelsResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.listModelsResponse = utils.deserializeJSONResponse(
- httpRes?.data,
- shared.ListModelsResponse
- );
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * Retrieves a model instance, providing basic information about it such as the owner and availability.
- */
- retrieveEngine(
- req: operations.RetrieveEngineRequest,
- config?: AxiosRequestConfig
- ): Promise {
- if (!(req instanceof utils.SpeakeasyBase)) {
- req = new operations.RetrieveEngineRequest(req);
- }
-
- const baseURL: string = this._serverURL;
- const url: string = utils.generateURL(baseURL, "/engines/{engine_id}", req);
-
- const client: AxiosInstance = this._defaultClient;
-
- const r = client.request({
- url: url,
- method: "get",
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.RetrieveEngineResponse =
- new operations.RetrieveEngineResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.engine = httpRes?.data;
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * Returns information about a specific file.
- */
- retrieveFile(
- req: operations.RetrieveFileRequest,
- config?: AxiosRequestConfig
- ): Promise {
- if (!(req instanceof utils.SpeakeasyBase)) {
- req = new operations.RetrieveFileRequest(req);
- }
-
- const baseURL: string = this._serverURL;
- const url: string = utils.generateURL(baseURL, "/files/{file_id}", req);
-
- const client: AxiosInstance = this._defaultClient;
-
- const r = client.request({
- url: url,
- method: "get",
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.RetrieveFileResponse =
- new operations.RetrieveFileResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.openAIFile = httpRes?.data;
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * Gets info about the fine-tune job.
- *
- * [Learn more about Fine-tuning](/docs/guides/fine-tuning)
- *
- */
- retrieveFineTune(
- req: operations.RetrieveFineTuneRequest,
- config?: AxiosRequestConfig
- ): Promise {
- if (!(req instanceof utils.SpeakeasyBase)) {
- req = new operations.RetrieveFineTuneRequest(req);
- }
-
- const baseURL: string = this._serverURL;
- const url: string = utils.generateURL(
- baseURL,
- "/fine-tunes/{fine_tune_id}",
- req
- );
-
- const client: AxiosInstance = this._defaultClient;
-
- const r = client.request({
- url: url,
- method: "get",
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.RetrieveFineTuneResponse =
- new operations.RetrieveFineTuneResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.fineTune = httpRes?.data;
- }
- break;
- }
-
- return res;
- });
- }
-
- /**
- * Retrieves a model instance, providing basic information about the model such as the owner and permissioning.
- */
- retrieveModel(
- req: operations.RetrieveModelRequest,
- config?: AxiosRequestConfig
- ): Promise {
- if (!(req instanceof utils.SpeakeasyBase)) {
- req = new operations.RetrieveModelRequest(req);
- }
-
- const baseURL: string = this._serverURL;
- const url: string = utils.generateURL(baseURL, "/models/{model}", req);
-
- const client: AxiosInstance = this._defaultClient;
-
- const r = client.request({
- url: url,
- method: "get",
- ...config,
- });
-
- return r.then((httpRes: AxiosResponse) => {
- const contentType: string = httpRes?.headers?.["content-type"] ?? "";
-
- if (httpRes?.status == null)
- throw new Error(`status code not found in response: ${httpRes}`);
- const res: operations.RetrieveModelResponse =
- new operations.RetrieveModelResponse({
- statusCode: httpRes.status,
- contentType: contentType,
- rawResponse: httpRes,
- });
- switch (true) {
- case httpRes?.status == 200:
- if (utils.matchContentType(contentType, `application/json`)) {
- res.model = httpRes?.data;
- }
- break;
- }
-
- return res;
- });
- }
-}
diff --git a/src/sdk/sdk.ts b/src/sdk/sdk.ts
index 05da8d3..e847454 100755
--- a/src/sdk/sdk.ts
+++ b/src/sdk/sdk.ts
@@ -2,8 +2,21 @@
* Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
*/
-import { OpenAI } from "./openai";
-import axios, { AxiosInstance } from "axios";
+import * as utils from "../internal/utils";
+import { Audio } from "./audio";
+import { Chat } from "./chat";
+import { Completions } from "./completions";
+import { Edits } from "./edits";
+import { Embeddings } from "./embeddings";
+import { Files } from "./files";
+import { FineTunes } from "./finetunes";
+import { FineTuning } from "./finetuning";
+import { Images } from "./images";
+import { Models } from "./models";
+import * as shared from "./models/shared";
+import { Moderations } from "./moderations";
+import axios from "axios";
+import { AxiosInstance } from "axios";
/**
* Contains the list of servers available to the SDK
@@ -14,47 +27,124 @@ export const ServerList = ["https://api.openai.com/v1"] as const;
* The available configuration options for the SDK
*/
export type SDKProps = {
- /**
- * Allows overriding the default axios client used by the SDK
- */
- defaultClient?: AxiosInstance;
- /**
- * Allows overriding the default server URL used by the SDK
- */
- serverURL?: string;
+ /**
+ * The security details required to authenticate the SDK
+ */
+ security?: shared.Security | (() => Promise);
+
+ /**
+ * Allows overriding the default axios client used by the SDK
+ */
+ defaultClient?: AxiosInstance;
+
+ /**
+ * Allows overriding the default server used by the SDK
+ */
+ serverIdx?: number;
+
+ /**
+ * Allows overriding the default server URL used by the SDK
+ */
+ serverURL?: string;
+ /**
+ * Allows overriding the default retry config used by the SDK
+ */
+ retryConfig?: utils.RetryConfig;
};
+export class SDKConfiguration {
+ defaultClient: AxiosInstance;
+ security?: shared.Security | (() => Promise);
+ serverURL: string;
+ serverDefaults: any;
+ language = "typescript";
+ openapiDocVersion = "2.0.0";
+ sdkVersion = "2.28.0";
+ genVersion = "2.171.0";
+ userAgent = "speakeasy-sdk/typescript 2.28.0 2.171.0 2.0.0 @speakeasy-api/openai";
+ retryConfig?: utils.RetryConfig;
+ public constructor(init?: Partial) {
+ Object.assign(this, init);
+ }
+}
+
/**
- * APIs for sampling from and fine-tuning language models
+ * OpenAI API: The OpenAI REST API. Please see https://platform.openai.com/docs/api-reference for more details.
*/
export class Gpt {
- /**
- * The OpenAI REST API
- */
- public openAI: OpenAI;
-
- public _defaultClient: AxiosInstance;
- public _securityClient: AxiosInstance;
- public _serverURL: string;
- private _language = "typescript";
- private _sdkVersion = "1.9.2";
- private _genVersion = "2.16.5";
- private _globals: any;
-
- constructor(props?: SDKProps) {
- this._serverURL = props?.serverURL ?? ServerList[0];
-
- this._defaultClient =
- props?.defaultClient ?? axios.create({ baseURL: this._serverURL });
- this._securityClient = this._defaultClient;
-
- this.openAI = new OpenAI(
- this._defaultClient,
- this._securityClient,
- this._serverURL,
- this._language,
- this._sdkVersion,
- this._genVersion
- );
- }
+ /**
+ * Learn how to turn audio into text.
+ */
+ public audio: Audio;
+ /**
+ * Given a list of messages comprising a conversation, the model will return a response.
+ */
+ public chat: Chat;
+ /**
+ * Given a prompt, the model will return one or more predicted completions, and can also return the probabilities of alternative tokens at each position.
+ */
+ public completions: Completions;
+ /**
+ * Given a prompt and an instruction, the model will return an edited version of the prompt.
+ */
+ public edits: Edits;
+ /**
+ * Get a vector representation of a given input that can be easily consumed by machine learning models and algorithms.
+ */
+ public embeddings: Embeddings;
+ /**
+ * Files are used to upload documents that can be used with features like fine-tuning.
+ */
+ public files: Files;
+ /**
+ * Manage legacy fine-tuning jobs to tailor a model to your specific training data.
+ */
+ public fineTunes: FineTunes;
+ /**
+ * Manage fine-tuning jobs to tailor a model to your specific training data.
+ */
+ public fineTuning: FineTuning;
+ /**
+ * Given a prompt and/or an input image, the model will generate a new image.
+ */
+ public images: Images;
+ /**
+ * List and describe the various models available in the API.
+ */
+ public models: Models;
+ /**
+ * Given a input text, outputs if the model classifies it as violating OpenAI's content policy.
+ */
+ public moderations: Moderations;
+
+ private sdkConfiguration: SDKConfiguration;
+
+ constructor(props?: SDKProps) {
+ let serverURL = props?.serverURL;
+ const serverIdx = props?.serverIdx ?? 0;
+
+ if (!serverURL) {
+ serverURL = ServerList[serverIdx];
+ }
+
+ const defaultClient = props?.defaultClient ?? axios.create({ baseURL: serverURL });
+ this.sdkConfiguration = new SDKConfiguration({
+ defaultClient: defaultClient,
+ security: props?.security,
+ serverURL: serverURL,
+ retryConfig: props?.retryConfig,
+ });
+
+ this.audio = new Audio(this.sdkConfiguration);
+ this.chat = new Chat(this.sdkConfiguration);
+ this.completions = new Completions(this.sdkConfiguration);
+ this.edits = new Edits(this.sdkConfiguration);
+ this.embeddings = new Embeddings(this.sdkConfiguration);
+ this.files = new Files(this.sdkConfiguration);
+ this.fineTunes = new FineTunes(this.sdkConfiguration);
+ this.fineTuning = new FineTuning(this.sdkConfiguration);
+ this.images = new Images(this.sdkConfiguration);
+ this.models = new Models(this.sdkConfiguration);
+ this.moderations = new Moderations(this.sdkConfiguration);
+ }
}
diff --git a/src/sdk/types/index.ts b/src/sdk/types/index.ts
new file mode 100755
index 0000000..de759a3
--- /dev/null
+++ b/src/sdk/types/index.ts
@@ -0,0 +1,5 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+export * from "./rfcdate";
diff --git a/src/sdk/types/rfcdate.ts b/src/sdk/types/rfcdate.ts
new file mode 100755
index 0000000..903ac7d
--- /dev/null
+++ b/src/sdk/types/rfcdate.ts
@@ -0,0 +1,48 @@
+/*
+ * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+ */
+
+export class RFCDate {
+ private date: Date;
+
+ constructor(date: Date | {date:string} | string | undefined) {
+ if (!date) {
+ this.date = new Date();
+ return;
+ }
+
+ if (typeof date === "string") {
+ this.date = new Date(date);
+ return;
+ }
+ if (date instanceof Date) {
+ this.date = date as Date
+ return;
+ }
+
+ const anyDate = (date as any);
+ if (date && !!anyDate.date) {
+ this.date = new Date(anyDate.date);
+ }
+ }
+
+ public getDate(): Date {
+ return this.date;
+ }
+
+ public toJSON(): string {
+ return this.toString();
+ }
+
+ public toString(): string {
+ const dateRegex = /^(\d{4})-(\d{2})-(\d{2})/;
+
+ const matches = this.date.toISOString().match(dateRegex);
+ if (matches == null) {
+ throw new Error("Date format is not valid");
+ }
+
+ const [, year, month, day]: RegExpMatchArray = matches;
+ return `${year}-${month}-${day}`;
+ }
+}
diff --git a/tsconfig.json b/tsconfig.json
index 0f5face..0e90e5e 100755
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -6,6 +6,7 @@
"rootDir": "src",
"outDir": "dist",
"allowJs": true,
+ "downlevelIteration": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,