diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e2b82d1d..93e8e371 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,8 +16,21 @@ jobs: - name: Compile run: yarn && yarn build + test: + runs-on: ubuntu-latest + + steps: + - name: Checkout repo + uses: actions/checkout@v3 + + - name: Set up node + uses: actions/setup-node@v3 + + - name: Compile + run: yarn && yarn test + publish: - needs: [ compile ] + needs: [ compile, test ] if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') runs-on: ubuntu-latest diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 00000000..3a09892d --- /dev/null +++ b/jest.config.js @@ -0,0 +1,5 @@ +/** @type {import('ts-jest').JestConfigWithTsJest} */ +module.exports = { + preset: "ts-jest", + testEnvironment: "node", +}; \ No newline at end of file diff --git a/package.json b/package.json index df57177a..217205da 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "webflow-api", - "version": "2.0.0", + "version": "v2.1.0", "private": false, "repository": "https://github.com/webflow/js-webflow-api", "main": "./index.js", @@ -8,7 +8,8 @@ "scripts": { "format": "prettier --write 'src/**/*.ts'", "build": "tsc", - "prepack": "cp -rv dist/. ." + "prepack": "cp -rv dist/. .", + "test": "jest" }, "dependencies": { "url-join": "4.0.1", @@ -21,8 +22,11 @@ "@types/url-join": "4.0.1", "@types/qs": "6.9.8", "@types/node-fetch": "2.6.9", + "jest": "^29.7.0", + "@types/jest": "^29.5.5", + "ts-jest": "^29.1.1", "@types/node": "17.0.33", "prettier": "2.7.1", "typescript": "4.6.4" } -} +} \ No newline at end of file diff --git a/src/api/resources/accessGroups/client/Client.ts b/src/api/resources/accessGroups/client/Client.ts index 9761e416..994c2a28 100644 --- a/src/api/resources/accessGroups/client/Client.ts +++ b/src/api/resources/accessGroups/client/Client.ts @@ -34,9 +34,7 @@ export class AccessGroups { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.accessGroups.list("string", { - * sort: Webflow.AccessGroupsListRequestSort.CreatedOnAscending - * }) + * await webflow.accessGroups.list("site_id", {}) */ public async list( siteId: string, @@ -44,7 +42,7 @@ export class AccessGroups { requestOptions?: AccessGroups.RequestOptions ): Promise { const { offset, limit, sort } = request; - const _queryParams: Record = {}; + const _queryParams: Record = {}; if (offset != null) { _queryParams["offset"] = offset.toString(); } @@ -60,14 +58,16 @@ export class AccessGroups { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/accessgroups` + `sites/${siteId}/accessgroups` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", queryParameters: _queryParams, diff --git a/src/api/resources/accessGroups/client/requests/AccessGroupsListRequest.ts b/src/api/resources/accessGroups/client/requests/AccessGroupsListRequest.ts index 015ba6fe..67a38430 100644 --- a/src/api/resources/accessGroups/client/requests/AccessGroupsListRequest.ts +++ b/src/api/resources/accessGroups/client/requests/AccessGroupsListRequest.ts @@ -6,9 +6,7 @@ import * as Webflow from "../../../.."; /** * @example - * { - * sort: Webflow.AccessGroupsListRequestSort.CreatedOnAscending - * } + * {} */ export interface AccessGroupsListRequest { /** diff --git a/src/api/resources/assets/client/Client.ts b/src/api/resources/assets/client/Client.ts index fd7a5709..afa173fb 100644 --- a/src/api/resources/assets/client/Client.ts +++ b/src/api/resources/assets/client/Client.ts @@ -33,20 +33,22 @@ export class Assets { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.assets.list("string") + * await webflow.assets.list("site_id") */ public async list(siteId: string, requestOptions?: Assets.RequestOptions): Promise { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/assets` + `sites/${siteId}/assets` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -106,7 +108,7 @@ export class Assets { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.assets.create("string", { + * await webflow.assets.create("site_id", { * fileName: "file.png", * fileHash: "3c7d87c9575702bc3b1e991f4d3c638e", * parentFolder: "6436b1ce5281cace05b65aea" @@ -120,14 +122,16 @@ export class Assets { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/assets` + `sites/${siteId}/assets` ), method: "POST", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", body: await serializers.AssetsCreateRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -188,20 +192,22 @@ export class Assets { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.assets.get("string") + * await webflow.assets.get("asset_id") */ public async get(assetId: string, requestOptions?: Assets.RequestOptions): Promise { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/assets/${assetId}` + `assets/${assetId}` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -261,20 +267,22 @@ export class Assets { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.assets.delete("string") + * await webflow.assets.delete("asset_id") */ public async delete(assetId: string, requestOptions?: Assets.RequestOptions): Promise { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/assets/${assetId}` + `assets/${assetId}` ), method: "DELETE", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -319,6 +327,88 @@ export class Assets { } } + /** + * Update an Asset

Required scope | `assets:write` + * @throws {@link Webflow.BadRequestError} + * @throws {@link Webflow.UnauthorizedError} + * @throws {@link Webflow.NotFoundError} + * @throws {@link Webflow.TooManyRequestsError} + * @throws {@link Webflow.InternalServerError} + * + * @example + * await webflow.assets.update("asset_id", { + * displayName: "file.png" + * }) + */ + public async update( + assetId: string, + request: Webflow.AssetsUpdateRequest, + requestOptions?: Assets.RequestOptions + ): Promise { + const _response = await core.fetcher({ + url: urlJoin( + (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, + `assets/${assetId}` + ), + method: "PATCH", + headers: { + Authorization: await this._getAuthorizationHeader(), + "X-Fern-Language": "JavaScript", + "X-Fern-SDK-Name": "webflow-api", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, + }, + contentType: "application/json", + body: await serializers.AssetsUpdateRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), + timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, + maxRetries: requestOptions?.maxRetries, + }); + if (_response.ok) { + return await serializers.Asset.parseOrThrow(_response.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }); + } + + if (_response.error.reason === "status-code") { + switch (_response.error.statusCode) { + case 400: + throw new Webflow.BadRequestError(_response.error.body); + case 401: + throw new Webflow.UnauthorizedError(_response.error.body); + case 404: + throw new Webflow.NotFoundError(_response.error.body); + case 429: + throw new Webflow.TooManyRequestsError(_response.error.body); + case 500: + throw new Webflow.InternalServerError(_response.error.body); + default: + throw new errors.WebflowError({ + statusCode: _response.error.statusCode, + body: _response.error.body, + }); + } + } + + switch (_response.error.reason) { + case "non-json": + throw new errors.WebflowError({ + statusCode: _response.error.statusCode, + body: _response.error.rawBody, + }); + case "timeout": + throw new errors.WebflowTimeoutError(); + case "unknown": + throw new errors.WebflowError({ + message: _response.error.errorMessage, + }); + } + } + /** * List Asset Folders within a given site

Required scope | `assets:read` * @throws {@link Webflow.BadRequestError} @@ -328,20 +418,22 @@ export class Assets { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.assets.listFolders("string") + * await webflow.assets.listFolders("site_id") */ public async listFolders(siteId: string, requestOptions?: Assets.RequestOptions): Promise { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/asset_folders` + `sites/${siteId}/asset_folders` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -401,7 +493,7 @@ export class Assets { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.assets.createFolder("string", { + * await webflow.assets.createFolder("site_id", { * displayName: "my asset folder", * parentFolder: "6390c49774a71f99f21a08eb" * }) @@ -414,14 +506,16 @@ export class Assets { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/asset_folders` + `sites/${siteId}/asset_folders` ), method: "POST", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", body: await serializers.AssetsCreateFolderRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -482,7 +576,7 @@ export class Assets { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.assets.getFolder("string") + * await webflow.assets.getFolder("asset_folder_id") */ public async getFolder( assetFolderId: string, @@ -491,14 +585,16 @@ export class Assets { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/asset_folders/${assetFolderId}` + `asset_folders/${assetFolderId}` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, diff --git a/src/api/resources/assets/client/requests/AssetsUpdateRequest.ts b/src/api/resources/assets/client/requests/AssetsUpdateRequest.ts new file mode 100644 index 00000000..d43f8086 --- /dev/null +++ b/src/api/resources/assets/client/requests/AssetsUpdateRequest.ts @@ -0,0 +1,14 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +/** + * @example + * { + * displayName: "file.png" + * } + */ +export interface AssetsUpdateRequest { + /** file name including file extension */ + displayName: string; +} diff --git a/src/api/resources/assets/client/requests/index.ts b/src/api/resources/assets/client/requests/index.ts index 1fd1f947..54ebd265 100644 --- a/src/api/resources/assets/client/requests/index.ts +++ b/src/api/resources/assets/client/requests/index.ts @@ -1,2 +1,3 @@ export { AssetsCreateRequest } from "./AssetsCreateRequest"; +export { AssetsUpdateRequest } from "./AssetsUpdateRequest"; export { AssetsCreateFolderRequest } from "./AssetsCreateFolderRequest"; diff --git a/src/api/resources/collections/client/Client.ts b/src/api/resources/collections/client/Client.ts index d34d2859..5f26a7fc 100644 --- a/src/api/resources/collections/client/Client.ts +++ b/src/api/resources/collections/client/Client.ts @@ -35,20 +35,22 @@ export class Collections { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.collections.list("string") + * await webflow.collections.list("site_id") */ public async list(siteId: string, requestOptions?: Collections.RequestOptions): Promise { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/collections` + `sites/${siteId}/collections` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -108,7 +110,7 @@ export class Collections { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.collections.create("string", { + * await webflow.collections.create("site_id", { * displayName: "Blog Posts", * singularName: "Blog Post", * slug: "posts" @@ -122,14 +124,16 @@ export class Collections { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/collections` + `sites/${siteId}/collections` ), method: "POST", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", body: await serializers.CollectionsCreateRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -190,20 +194,22 @@ export class Collections { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.collections.get("string") + * await webflow.collections.get("collection_id") */ public async get(collectionId: string, requestOptions?: Collections.RequestOptions): Promise { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/collections/${collectionId}` + `collections/${collectionId}` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -263,20 +269,22 @@ export class Collections { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.collections.deleteCollection("string") + * await webflow.collections.deleteCollection("collection_id") */ public async deleteCollection(collectionId: string, requestOptions?: Collections.RequestOptions): Promise { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/collections/${collectionId}` + `collections/${collectionId}` ), method: "DELETE", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -330,7 +338,7 @@ export class Collections { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.collections.delete("string", "string") + * await webflow.collections.delete("collection_id", "field_id") */ public async delete( collectionId: string, @@ -340,14 +348,16 @@ export class Collections { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/collections/${collectionId}/fields/${fieldId}` + `collections/${collectionId}/fields/${fieldId}` ), method: "DELETE", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, diff --git a/src/api/resources/collections/resources/fields/client/Client.ts b/src/api/resources/collections/resources/fields/client/Client.ts index fcd6001f..41b2a9a4 100644 --- a/src/api/resources/collections/resources/fields/client/Client.ts +++ b/src/api/resources/collections/resources/fields/client/Client.ts @@ -33,32 +33,34 @@ export class Fields { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.collections.fields.create("string", { - * id: "string", - * isRequired: true, - * type: Webflow.FieldType.PlainText, - * displayName: "string" + * await webflow.collections.fields.create("collection_id", { + * isRequired: false, + * type: Webflow.collections.FieldCreateType.RichText, + * displayName: "Post Body", + * helpText: "Add the body of your post here" * }) */ public async create( collectionId: string, - request: Webflow.Field, + request: Webflow.collections.FieldCreate, requestOptions?: Fields.RequestOptions ): Promise { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/collections/${collectionId}/fields` + `collections/${collectionId}/fields` ), method: "POST", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", - body: await serializers.Field.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), + body: await serializers.collections.FieldCreate.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, }); @@ -116,7 +118,11 @@ export class Fields { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.collections.fields.update("string", "string", {}) + * await webflow.collections.fields.update("collection_id", "field_id", { + * isRequired: false, + * displayName: "Post Body", + * helpText: "Add the body of your post here" + * }) */ public async update( collectionId: string, @@ -127,14 +133,16 @@ export class Fields { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/collections/${collectionId}/fields/${fieldId}` + `collections/${collectionId}/fields/${fieldId}` ), method: "PATCH", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", body: await serializers.collections.FieldUpdate.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), diff --git a/src/api/resources/collections/resources/fields/client/requests/FieldCreate.ts b/src/api/resources/collections/resources/fields/client/requests/FieldCreate.ts new file mode 100644 index 00000000..71a0aad5 --- /dev/null +++ b/src/api/resources/collections/resources/fields/client/requests/FieldCreate.ts @@ -0,0 +1,25 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Webflow from "../../../../../.."; + +/** + * @example + * { + * isRequired: false, + * type: Webflow.collections.FieldCreateType.RichText, + * displayName: "Post Body", + * helpText: "Add the body of your post here" + * } + */ +export interface FieldCreate { + /** define whether a field is required in a collection */ + isRequired?: boolean; + /** Choose these appropriate field type for your collection data */ + type: Webflow.collections.FieldCreateType; + /** The name of a field */ + displayName: string; + /** Additional text to help anyone filling out this field */ + helpText?: string; +} diff --git a/src/api/resources/collections/resources/fields/client/requests/FieldUpdate.ts b/src/api/resources/collections/resources/fields/client/requests/FieldUpdate.ts index 8eccdf81..cf3b7b1c 100644 --- a/src/api/resources/collections/resources/fields/client/requests/FieldUpdate.ts +++ b/src/api/resources/collections/resources/fields/client/requests/FieldUpdate.ts @@ -4,7 +4,11 @@ /** * @example - * {} + * { + * isRequired: false, + * displayName: "Post Body", + * helpText: "Add the body of your post here" + * } */ export interface FieldUpdate { /** Define whether a field is required in a collection */ diff --git a/src/api/resources/collections/resources/fields/client/requests/index.ts b/src/api/resources/collections/resources/fields/client/requests/index.ts index 6eda1252..93f46db9 100644 --- a/src/api/resources/collections/resources/fields/client/requests/index.ts +++ b/src/api/resources/collections/resources/fields/client/requests/index.ts @@ -1 +1,2 @@ +export { FieldCreate } from "./FieldCreate"; export { FieldUpdate } from "./FieldUpdate"; diff --git a/src/api/resources/collections/resources/fields/index.ts b/src/api/resources/collections/resources/fields/index.ts index 5ec76921..c9240f83 100644 --- a/src/api/resources/collections/resources/fields/index.ts +++ b/src/api/resources/collections/resources/fields/index.ts @@ -1 +1,2 @@ +export * from "./types"; export * from "./client"; diff --git a/src/api/resources/collections/resources/fields/types/FieldCreateType.ts b/src/api/resources/collections/resources/fields/types/FieldCreateType.ts new file mode 100644 index 00000000..1ab114b3 --- /dev/null +++ b/src/api/resources/collections/resources/fields/types/FieldCreateType.ts @@ -0,0 +1,37 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +/** + * Choose these appropriate field type for your collection data + */ +export type FieldCreateType = + | "PlainText" + | "RichText" + | "Image" + | "MultiImage" + | "Video" + | "Link" + | "Email" + | "Phone" + | "Number" + | "DateTime" + | "Boolean" + | "Color" + | "File"; + +export const FieldCreateType = { + PlainText: "PlainText", + RichText: "RichText", + Image: "Image", + MultiImage: "MultiImage", + Video: "Video", + Link: "Link", + Email: "Email", + Phone: "Phone", + Number: "Number", + DateTime: "DateTime", + Boolean: "Boolean", + Color: "Color", + File: "File", +} as const; diff --git a/src/api/resources/collections/resources/fields/types/index.ts b/src/api/resources/collections/resources/fields/types/index.ts new file mode 100644 index 00000000..56f55977 --- /dev/null +++ b/src/api/resources/collections/resources/fields/types/index.ts @@ -0,0 +1 @@ +export * from "./FieldCreateType"; diff --git a/src/api/resources/collections/resources/index.ts b/src/api/resources/collections/resources/index.ts index 2452d24a..3739438e 100644 --- a/src/api/resources/collections/resources/index.ts +++ b/src/api/resources/collections/resources/index.ts @@ -1,5 +1,6 @@ +export * as fields from "./fields"; +export * from "./fields/types"; export * as items from "./items"; export * from "./items/types"; -export * as fields from "./fields"; export * from "./fields/client/requests"; export * from "./items/client/requests"; diff --git a/src/api/resources/collections/resources/items/client/Client.ts b/src/api/resources/collections/resources/items/client/Client.ts index 63b0cb72..8b3ad58e 100644 --- a/src/api/resources/collections/resources/items/client/Client.ts +++ b/src/api/resources/collections/resources/items/client/Client.ts @@ -25,7 +25,7 @@ export class Items { constructor(protected readonly _options: Items.Options) {} /** - * List of all Items within a Collection.

Required scope | `cms:read` + * List of all Items within a Collection.

Required scope | `CMS:read` * @throws {@link Webflow.BadRequestError} * @throws {@link Webflow.UnauthorizedError} * @throws {@link Webflow.NotFoundError} @@ -33,15 +33,23 @@ export class Items { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.collections.items.listItems("string", {}) + * await webflow.collections.items.listItems("collection_id", {}) */ public async listItems( collectionId: string, request: Webflow.collections.ItemsListItemsRequest = {}, requestOptions?: Items.RequestOptions ): Promise { - const { offset, limit } = request; - const _queryParams: Record = {}; + const { cmsLocaleIds, offset, limit } = request; + const _queryParams: Record = {}; + if (cmsLocaleIds != null) { + if (Array.isArray(cmsLocaleIds)) { + _queryParams["cmsLocaleIds"] = cmsLocaleIds.map((item) => item); + } else { + _queryParams["cmsLocaleIds"] = cmsLocaleIds; + } + } + if (offset != null) { _queryParams["offset"] = offset.toString(); } @@ -53,14 +61,16 @@ export class Items { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/collections/${collectionId}/items` + `collections/${collectionId}/items` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", queryParameters: _queryParams, @@ -113,7 +123,7 @@ export class Items { } /** - * Create Item in a Collection.

Required scope | `cms:write` + * Create Item in a Collection.

Required scope | `CMS:write` * @throws {@link Webflow.BadRequestError} * @throws {@link Webflow.UnauthorizedError} * @throws {@link Webflow.NotFoundError} @@ -121,12 +131,16 @@ export class Items { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.collections.items.createItem("string", { + * await webflow.collections.items.createItem("collection_id", { * id: "580e64008c9a982ac9b8b754", + * cmsLocaleId: "653ad57de882f528b32e810e", * lastPublished: "2023-03-17T18:47:35.560Z", * lastUpdated: "2023-03-17T18:47:35.560Z", * createdOn: "2023-03-17T18:47:35.560Z", - * fieldData: {} + * fieldData: { + * name: "My new item", + * slug: "my-new-item" + * } * }) */ public async createItem( @@ -137,14 +151,100 @@ export class Items { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/collections/${collectionId}/items` + `collections/${collectionId}/items` + ), + method: "POST", + headers: { + Authorization: await this._getAuthorizationHeader(), + "X-Fern-Language": "JavaScript", + "X-Fern-SDK-Name": "webflow-api", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, + }, + contentType: "application/json", + body: await serializers.CollectionItem.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), + timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, + maxRetries: requestOptions?.maxRetries, + }); + if (_response.ok) { + return; + } + + if (_response.error.reason === "status-code") { + switch (_response.error.statusCode) { + case 400: + throw new Webflow.BadRequestError(_response.error.body); + case 401: + throw new Webflow.UnauthorizedError(_response.error.body); + case 404: + throw new Webflow.NotFoundError(_response.error.body); + case 429: + throw new Webflow.TooManyRequestsError(_response.error.body); + case 500: + throw new Webflow.InternalServerError(_response.error.body); + default: + throw new errors.WebflowError({ + statusCode: _response.error.statusCode, + body: _response.error.body, + }); + } + } + + switch (_response.error.reason) { + case "non-json": + throw new errors.WebflowError({ + statusCode: _response.error.statusCode, + body: _response.error.rawBody, + }); + case "timeout": + throw new errors.WebflowTimeoutError(); + case "unknown": + throw new errors.WebflowError({ + message: _response.error.errorMessage, + }); + } + } + + /** + * Create live Item in a Collection. This Item will be published to the live site.

Required scope | `CMS:write` + * @throws {@link Webflow.BadRequestError} + * @throws {@link Webflow.UnauthorizedError} + * @throws {@link Webflow.NotFoundError} + * @throws {@link Webflow.TooManyRequestsError} + * @throws {@link Webflow.InternalServerError} + * + * @example + * await webflow.collections.items.createItemLive("collection_id", { + * id: "580e64008c9a982ac9b8b754", + * cmsLocaleId: "653ad57de882f528b32e810e", + * lastPublished: "2023-03-17T18:47:35.560Z", + * lastUpdated: "2023-03-17T18:47:35.560Z", + * createdOn: "2023-03-17T18:47:35.560Z", + * fieldData: { + * name: "My new item", + * slug: "my-new-item" + * } + * }) + */ + public async createItemLive( + collectionId: string, + request: Webflow.CollectionItem, + requestOptions?: Items.RequestOptions + ): Promise { + const _response = await core.fetcher({ + url: urlJoin( + (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, + `collections/${collectionId}/items/live` ), method: "POST", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", body: await serializers.CollectionItem.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -191,7 +291,7 @@ export class Items { } /** - * Get details of a selected Collection Item.

Required scope | `cms:read` + * Get details of a selected Collection Item.

Required scope | `CMS:read` * @throws {@link Webflow.BadRequestError} * @throws {@link Webflow.UnauthorizedError} * @throws {@link Webflow.NotFoundError} @@ -199,26 +299,36 @@ export class Items { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.collections.items.getItem("string", "string") + * await webflow.collections.items.getItem("collection_id", "item_id", {}) */ public async getItem( collectionId: string, itemId: string, + request: Webflow.collections.ItemsGetItemRequest = {}, requestOptions?: Items.RequestOptions ): Promise { + const { cmsLocaleId } = request; + const _queryParams: Record = {}; + if (cmsLocaleId != null) { + _queryParams["cmsLocaleId"] = cmsLocaleId; + } + const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/collections/${collectionId}/items/${itemId}` + `collections/${collectionId}/items/${itemId}` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", + queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, }); @@ -268,7 +378,7 @@ export class Items { } /** - * Delete an Item from a Collection. This endpoint does not currently support bulk deletion.

Required scope | `cms:write` + * Delete an Item from a Collection. This endpoint does not currently support bulk deletion.

Required scope | `CMS:write` * @throws {@link Webflow.BadRequestError} * @throws {@link Webflow.UnauthorizedError} * @throws {@link Webflow.NotFoundError} @@ -276,26 +386,40 @@ export class Items { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.collections.items.deleteItem("string", "string") + * await webflow.collections.items.deleteItem("collection_id", "item_id", {}) */ public async deleteItem( collectionId: string, itemId: string, + request: Webflow.collections.ItemsDeleteItemRequest = {}, requestOptions?: Items.RequestOptions ): Promise { + const { cmsLocaleIds } = request; + const _queryParams: Record = {}; + if (cmsLocaleIds != null) { + if (Array.isArray(cmsLocaleIds)) { + _queryParams["cmsLocaleIds"] = cmsLocaleIds.map((item) => item); + } else { + _queryParams["cmsLocaleIds"] = cmsLocaleIds; + } + } + const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/collections/${collectionId}/items/${itemId}` + `collections/${collectionId}/items/${itemId}` ), method: "DELETE", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", + queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, }); @@ -339,7 +463,7 @@ export class Items { } /** - * Update a selected Item in a Collection.

Required scope | `cms:write` + * Update a selected Item in a Collection.

Required scope | `CMS:write` * @throws {@link Webflow.BadRequestError} * @throws {@link Webflow.UnauthorizedError} * @throws {@link Webflow.NotFoundError} @@ -347,12 +471,16 @@ export class Items { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.collections.items.updateItem("string", "string", { + * await webflow.collections.items.updateItem("collection_id", "item_id", { * id: "580e64008c9a982ac9b8b754", + * cmsLocaleId: "653ad57de882f528b32e810e", * lastPublished: "2023-03-17T18:47:35.560Z", * lastUpdated: "2023-03-17T18:47:35.560Z", * createdOn: "2023-03-17T18:47:35.560Z", - * fieldData: {} + * fieldData: { + * name: "My new item", + * slug: "my-new-item" + * } * }) */ public async updateItem( @@ -364,14 +492,180 @@ export class Items { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/collections/${collectionId}/items/${itemId}` + `collections/${collectionId}/items/${itemId}` + ), + method: "PATCH", + headers: { + Authorization: await this._getAuthorizationHeader(), + "X-Fern-Language": "JavaScript", + "X-Fern-SDK-Name": "webflow-api", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, + }, + contentType: "application/json", + body: await serializers.CollectionItem.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), + timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, + maxRetries: requestOptions?.maxRetries, + }); + if (_response.ok) { + return await serializers.CollectionItem.parseOrThrow(_response.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }); + } + + if (_response.error.reason === "status-code") { + switch (_response.error.statusCode) { + case 400: + throw new Webflow.BadRequestError(_response.error.body); + case 401: + throw new Webflow.UnauthorizedError(_response.error.body); + case 404: + throw new Webflow.NotFoundError(_response.error.body); + case 429: + throw new Webflow.TooManyRequestsError(_response.error.body); + case 500: + throw new Webflow.InternalServerError(_response.error.body); + default: + throw new errors.WebflowError({ + statusCode: _response.error.statusCode, + body: _response.error.body, + }); + } + } + + switch (_response.error.reason) { + case "non-json": + throw new errors.WebflowError({ + statusCode: _response.error.statusCode, + body: _response.error.rawBody, + }); + case "timeout": + throw new errors.WebflowTimeoutError(); + case "unknown": + throw new errors.WebflowError({ + message: _response.error.errorMessage, + }); + } + } + + /** + * Delete a live Item from a Collection. The Item will be unpublished from the live site. This endpoint does not currently support bulk deletion.

Required scope | `CMS:write` + * @throws {@link Webflow.BadRequestError} + * @throws {@link Webflow.UnauthorizedError} + * @throws {@link Webflow.NotFoundError} + * @throws {@link Webflow.TooManyRequestsError} + * @throws {@link Webflow.InternalServerError} + * + * @example + * await webflow.collections.items.deleteItemLive("collection_id", "item_id") + */ + public async deleteItemLive( + collectionId: string, + itemId: string, + requestOptions?: Items.RequestOptions + ): Promise { + const _response = await core.fetcher({ + url: urlJoin( + (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, + `collections/${collectionId}/items/${itemId}/live` + ), + method: "DELETE", + headers: { + Authorization: await this._getAuthorizationHeader(), + "X-Fern-Language": "JavaScript", + "X-Fern-SDK-Name": "webflow-api", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, + }, + contentType: "application/json", + timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, + maxRetries: requestOptions?.maxRetries, + }); + if (_response.ok) { + return; + } + + if (_response.error.reason === "status-code") { + switch (_response.error.statusCode) { + case 400: + throw new Webflow.BadRequestError(_response.error.body); + case 401: + throw new Webflow.UnauthorizedError(_response.error.body); + case 404: + throw new Webflow.NotFoundError(_response.error.body); + case 429: + throw new Webflow.TooManyRequestsError(_response.error.body); + case 500: + throw new Webflow.InternalServerError(_response.error.body); + default: + throw new errors.WebflowError({ + statusCode: _response.error.statusCode, + body: _response.error.body, + }); + } + } + + switch (_response.error.reason) { + case "non-json": + throw new errors.WebflowError({ + statusCode: _response.error.statusCode, + body: _response.error.rawBody, + }); + case "timeout": + throw new errors.WebflowTimeoutError(); + case "unknown": + throw new errors.WebflowError({ + message: _response.error.errorMessage, + }); + } + } + + /** + * Update a selected live Item in a Collection. The updates for this Item will be published to the live site.

Required scope | `CMS:write` + * @throws {@link Webflow.BadRequestError} + * @throws {@link Webflow.UnauthorizedError} + * @throws {@link Webflow.NotFoundError} + * @throws {@link Webflow.TooManyRequestsError} + * @throws {@link Webflow.InternalServerError} + * + * @example + * await webflow.collections.items.updateItemLive("collection_id", "item_id", { + * id: "580e64008c9a982ac9b8b754", + * cmsLocaleId: "653ad57de882f528b32e810e", + * lastPublished: "2023-03-17T18:47:35.560Z", + * lastUpdated: "2023-03-17T18:47:35.560Z", + * createdOn: "2023-03-17T18:47:35.560Z", + * fieldData: { + * name: "My new item", + * slug: "my-new-item" + * } + * }) + */ + public async updateItemLive( + collectionId: string, + itemId: string, + request: Webflow.CollectionItem, + requestOptions?: Items.RequestOptions + ): Promise { + const _response = await core.fetcher({ + url: urlJoin( + (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, + `collections/${collectionId}/items/${itemId}/live` ), method: "PATCH", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", body: await serializers.CollectionItem.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -432,8 +726,8 @@ export class Items { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.collections.items.publishItem("string", { - * itemIds: [] + * await webflow.collections.items.publishItem("collection_id", { + * itemIds: ["itemIds"] * }) */ public async publishItem( @@ -444,14 +738,16 @@ export class Items { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/collections/${collectionId}/items/publish` + `collections/${collectionId}/items/publish` ), method: "POST", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", body: await serializers.collections.ItemsPublishItemRequest.jsonOrThrow(request, { diff --git a/src/api/resources/collections/resources/items/client/requests/ItemsDeleteItemRequest.ts b/src/api/resources/collections/resources/items/client/requests/ItemsDeleteItemRequest.ts new file mode 100644 index 00000000..4b08453f --- /dev/null +++ b/src/api/resources/collections/resources/items/client/requests/ItemsDeleteItemRequest.ts @@ -0,0 +1,14 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +/** + * @example + * {} + */ +export interface ItemsDeleteItemRequest { + /** + * Unique identifiers for CMS Locales. These UIDs are different from the Site locale identifier and are listed as `cmsLocaleId` in the Sites response. Applicable when using localization. + */ + cmsLocaleIds?: string | string[]; +} diff --git a/src/api/resources/collections/resources/items/client/requests/ItemsGetItemRequest.ts b/src/api/resources/collections/resources/items/client/requests/ItemsGetItemRequest.ts new file mode 100644 index 00000000..a0b02a6f --- /dev/null +++ b/src/api/resources/collections/resources/items/client/requests/ItemsGetItemRequest.ts @@ -0,0 +1,14 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +/** + * @example + * {} + */ +export interface ItemsGetItemRequest { + /** + * Unique identifier for a CMS Locale. These UID is different from the Site locale identifier and is listed as `cmsLocaleId` in the Sites response. Applicable when using localization. + */ + cmsLocaleId?: string; +} diff --git a/src/api/resources/collections/resources/items/client/requests/ItemsListItemsRequest.ts b/src/api/resources/collections/resources/items/client/requests/ItemsListItemsRequest.ts index 1537f261..fc577c78 100644 --- a/src/api/resources/collections/resources/items/client/requests/ItemsListItemsRequest.ts +++ b/src/api/resources/collections/resources/items/client/requests/ItemsListItemsRequest.ts @@ -7,6 +7,10 @@ * {} */ export interface ItemsListItemsRequest { + /** + * Unique identifiers for CMS Locales. These UIDs are different from the Site locale identifier and are listed as `cmsLocaleId` in the Sites response. Applicable when using localization. + */ + cmsLocaleIds?: string | string[]; /** * Offset used for pagination if the results have more than limit records */ diff --git a/src/api/resources/collections/resources/items/client/requests/ItemsPublishItemRequest.ts b/src/api/resources/collections/resources/items/client/requests/ItemsPublishItemRequest.ts index 9aab2611..dfcdc548 100644 --- a/src/api/resources/collections/resources/items/client/requests/ItemsPublishItemRequest.ts +++ b/src/api/resources/collections/resources/items/client/requests/ItemsPublishItemRequest.ts @@ -5,7 +5,7 @@ /** * @example * { - * itemIds: [] + * itemIds: ["itemIds"] * } */ export interface ItemsPublishItemRequest { diff --git a/src/api/resources/collections/resources/items/client/requests/index.ts b/src/api/resources/collections/resources/items/client/requests/index.ts index 36d6bc56..669d16f7 100644 --- a/src/api/resources/collections/resources/items/client/requests/index.ts +++ b/src/api/resources/collections/resources/items/client/requests/index.ts @@ -1,2 +1,4 @@ export { ItemsListItemsRequest } from "./ItemsListItemsRequest"; +export { ItemsGetItemRequest } from "./ItemsGetItemRequest"; +export { ItemsDeleteItemRequest } from "./ItemsDeleteItemRequest"; export { ItemsPublishItemRequest } from "./ItemsPublishItemRequest"; diff --git a/src/api/resources/ecommerce/client/Client.ts b/src/api/resources/ecommerce/client/Client.ts index 1e4d7dc5..0251e678 100644 --- a/src/api/resources/ecommerce/client/Client.ts +++ b/src/api/resources/ecommerce/client/Client.ts @@ -37,7 +37,7 @@ export class Ecommerce { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.ecommerce.getSettings("string") + * await webflow.ecommerce.getSettings("site_id") */ public async getSettings( siteId: string, @@ -46,14 +46,16 @@ export class Ecommerce { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/ecommerce/settings` + `sites/${siteId}/ecommerce/settings` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, diff --git a/src/api/resources/forms/client/Client.ts b/src/api/resources/forms/client/Client.ts index b08b964d..0904fde4 100644 --- a/src/api/resources/forms/client/Client.ts +++ b/src/api/resources/forms/client/Client.ts @@ -35,20 +35,22 @@ export class Forms { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.forms.list("string") + * await webflow.forms.list("site_id") */ public async list(siteId: string, requestOptions?: Forms.RequestOptions): Promise { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/forms` + `sites/${siteId}/forms` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -113,20 +115,22 @@ export class Forms { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.forms.get("string") + * await webflow.forms.get("form_id") */ public async get(formId: string, requestOptions?: Forms.RequestOptions): Promise { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/forms/${formId}` + `forms/${formId}` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -189,7 +193,7 @@ export class Forms { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.forms.listSubmissions("string") + * await webflow.forms.listSubmissions("form_id") */ public async listSubmissions( formId: string, @@ -198,14 +202,16 @@ export class Forms { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/forms/${formId}/submissions` + `forms/${formId}/submissions` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -268,7 +274,7 @@ export class Forms { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.forms.getSubmission("string") + * await webflow.forms.getSubmission("form_submission_id") */ public async getSubmission( formSubmissionId: string, @@ -277,14 +283,16 @@ export class Forms { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/form_submissions/${formSubmissionId}` + `form_submissions/${formSubmissionId}` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -348,7 +356,7 @@ export class Forms { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.forms.updateSubmission("string", {}) + * await webflow.forms.updateSubmission("form_submission_id", {}) */ public async updateSubmission( formSubmissionId: string, @@ -358,14 +366,16 @@ export class Forms { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/form_submissions/${formSubmissionId}` + `form_submissions/${formSubmissionId}` ), method: "PATCH", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", body: await serializers.FormsUpdateSubmissionRequest.jsonOrThrow(request, { diff --git a/src/api/resources/index.ts b/src/api/resources/index.ts index 3c2d1ab5..7b25e9fb 100644 --- a/src/api/resources/index.ts +++ b/src/api/resources/index.ts @@ -1,4 +1,6 @@ export * as collections from "./collections"; +export * as pages from "./pages"; +export * from "./pages/types"; export * as users from "./users"; export * from "./users/types"; export * as accessGroups from "./accessGroups"; @@ -11,7 +13,6 @@ export * as inventory from "./inventory"; export * from "./inventory/types"; export * as token from "./token"; export * as sites from "./sites"; -export * as pages from "./pages"; export * as scripts from "./scripts"; export * as webhooks from "./webhooks"; export * as assets from "./assets"; @@ -19,6 +20,7 @@ export * as forms from "./forms"; export * as ecommerce from "./ecommerce"; export * from "./sites/client/requests"; export * from "./collections/client/requests"; +export * from "./pages/client/requests"; export * from "./scripts/client/requests"; export * from "./webhooks/client/requests"; export * from "./assets/client/requests"; diff --git a/src/api/resources/inventory/client/Client.ts b/src/api/resources/inventory/client/Client.ts index 893f9911..3923d941 100644 --- a/src/api/resources/inventory/client/Client.ts +++ b/src/api/resources/inventory/client/Client.ts @@ -37,7 +37,7 @@ export class Inventory { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.inventory.list("string", "string") + * await webflow.inventory.list("collection_id", "item_id") */ public async list( collectionId: string, @@ -47,14 +47,16 @@ export class Inventory { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/collections/${collectionId}/items/${itemId}/inventory` + `collections/${collectionId}/items/${itemId}/inventory` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -122,7 +124,7 @@ export class Inventory { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.inventory.update("string", "string", { + * await webflow.inventory.update("collection_id", "item_id", { * inventoryType: Webflow.InventoryUpdateRequestInventoryType.Infinite, * updateQuantity: 1, * quantity: 100 @@ -137,14 +139,16 @@ export class Inventory { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/collections/${collectionId}/items/${itemId}/inventory` + `collections/${collectionId}/items/${itemId}/inventory` ), method: "PATCH", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", body: await serializers.InventoryUpdateRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), diff --git a/src/api/resources/orders/client/Client.ts b/src/api/resources/orders/client/Client.ts index 9956504a..908d8587 100644 --- a/src/api/resources/orders/client/Client.ts +++ b/src/api/resources/orders/client/Client.ts @@ -37,9 +37,7 @@ export class Orders { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.orders.list("string", { - * status: Webflow.OrdersListRequestStatus.Pending - * }) + * await webflow.orders.list("site_id", {}) */ public async list( siteId: string, @@ -47,7 +45,7 @@ export class Orders { requestOptions?: Orders.RequestOptions ): Promise { const { status, offset, limit } = request; - const _queryParams: Record = {}; + const _queryParams: Record = {}; if (status != null) { _queryParams["status"] = status; } @@ -63,14 +61,16 @@ export class Orders { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/orders` + `sites/${siteId}/orders` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", queryParameters: _queryParams, @@ -139,20 +139,22 @@ export class Orders { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.orders.get("string", "string") + * await webflow.orders.get("site_id", "order_id") */ public async get(siteId: string, orderId: string, requestOptions?: Orders.RequestOptions): Promise { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/orders/${orderId}` + `sites/${siteId}/orders/${orderId}` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -220,7 +222,7 @@ export class Orders { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.orders.update("string", "string", { + * await webflow.orders.update("site_id", "order_id", { * comment: "Example comment to myself", * shippingProvider: "Shipping Company, Co.", * shippingTracking: "tr00000000001", @@ -236,14 +238,16 @@ export class Orders { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/orders/${orderId}` + `sites/${siteId}/orders/${orderId}` ), method: "PATCH", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", body: await serializers.OrdersUpdateRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -312,7 +316,7 @@ export class Orders { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.orders.updateFulfill("string", "string", {}) + * await webflow.orders.updateFulfill("site_id", "order_id", {}) */ public async updateFulfill( siteId: string, @@ -323,14 +327,16 @@ export class Orders { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/orders/${orderId}/fulfill` + `sites/${siteId}/orders/${orderId}/fulfill` ), method: "POST", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", body: await serializers.OrdersUpdateFulfillRequest.jsonOrThrow(request, { @@ -401,7 +407,7 @@ export class Orders { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.orders.updateUnfulfill("string", "string") + * await webflow.orders.updateUnfulfill("site_id", "order_id") */ public async updateUnfulfill( siteId: string, @@ -411,14 +417,16 @@ export class Orders { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/orders/${orderId}/unfulfill` + `sites/${siteId}/orders/${orderId}/unfulfill` ), method: "POST", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -487,9 +495,7 @@ export class Orders { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.orders.refund("string", "string", { - * reason: Webflow.OrdersRefundRequestReason.Duplicate - * }) + * await webflow.orders.refund("site_id", "order_id", {}) */ public async refund( siteId: string, @@ -500,14 +506,16 @@ export class Orders { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/orders/${orderId}/refund` + `sites/${siteId}/orders/${orderId}/refund` ), method: "POST", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", body: await serializers.OrdersRefundRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), diff --git a/src/api/resources/orders/client/requests/OrdersListRequest.ts b/src/api/resources/orders/client/requests/OrdersListRequest.ts index 8ed2eefd..e63a1baa 100644 --- a/src/api/resources/orders/client/requests/OrdersListRequest.ts +++ b/src/api/resources/orders/client/requests/OrdersListRequest.ts @@ -6,9 +6,7 @@ import * as Webflow from "../../../.."; /** * @example - * { - * status: Webflow.OrdersListRequestStatus.Pending - * } + * {} */ export interface OrdersListRequest { /** diff --git a/src/api/resources/orders/client/requests/OrdersRefundRequest.ts b/src/api/resources/orders/client/requests/OrdersRefundRequest.ts index 6e417ba8..50f13038 100644 --- a/src/api/resources/orders/client/requests/OrdersRefundRequest.ts +++ b/src/api/resources/orders/client/requests/OrdersRefundRequest.ts @@ -6,9 +6,7 @@ import * as Webflow from "../../../.."; /** * @example - * { - * reason: Webflow.OrdersRefundRequestReason.Duplicate - * } + * {} */ export interface OrdersRefundRequest { /** The reason for the refund */ diff --git a/src/api/resources/pages/client/Client.ts b/src/api/resources/pages/client/Client.ts index 1bd46c17..c451985a 100644 --- a/src/api/resources/pages/client/Client.ts +++ b/src/api/resources/pages/client/Client.ts @@ -34,22 +34,35 @@ export class Pages { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.pages.list("string") + * await webflow.pages.list("site_id", {}) */ - public async list(siteId: string, requestOptions?: Pages.RequestOptions): Promise { + public async list( + siteId: string, + request: Webflow.PagesListRequest = {}, + requestOptions?: Pages.RequestOptions + ): Promise { + const { locale } = request; + const _queryParams: Record = {}; + if (locale != null) { + _queryParams["locale"] = locale; + } + const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/pages` + `sites/${siteId}/pages` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", + queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, }); @@ -107,22 +120,147 @@ export class Pages { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.pages.getMetadata("string") + * await webflow.pages.getMetadata("page_id", {}) */ - public async getMetadata(pageId: string, requestOptions?: Pages.RequestOptions): Promise { + public async getMetadata( + pageId: string, + request: Webflow.PagesGetMetadataRequest = {}, + requestOptions?: Pages.RequestOptions + ): Promise { + const { locale } = request; + const _queryParams: Record = {}; + if (locale != null) { + _queryParams["locale"] = locale; + } + const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/pages/${pageId}` + `pages/${pageId}` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, + }, + contentType: "application/json", + queryParameters: _queryParams, + timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, + maxRetries: requestOptions?.maxRetries, + }); + if (_response.ok) { + return await serializers.Page.parseOrThrow(_response.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }); + } + + if (_response.error.reason === "status-code") { + switch (_response.error.statusCode) { + case 400: + throw new Webflow.BadRequestError(_response.error.body); + case 401: + throw new Webflow.UnauthorizedError(_response.error.body); + case 404: + throw new Webflow.NotFoundError(_response.error.body); + case 429: + throw new Webflow.TooManyRequestsError(_response.error.body); + case 500: + throw new Webflow.InternalServerError(_response.error.body); + default: + throw new errors.WebflowError({ + statusCode: _response.error.statusCode, + body: _response.error.body, + }); + } + } + + switch (_response.error.reason) { + case "non-json": + throw new errors.WebflowError({ + statusCode: _response.error.statusCode, + body: _response.error.rawBody, + }); + case "timeout": + throw new errors.WebflowTimeoutError(); + case "unknown": + throw new errors.WebflowError({ + message: _response.error.errorMessage, + }); + } + } + + /** + * Update Page-level metadata, including SEO and Open Graph fields.

Required scope | `pages:write` + * @throws {@link Webflow.BadRequestError} + * @throws {@link Webflow.UnauthorizedError} + * @throws {@link Webflow.NotFoundError} + * @throws {@link Webflow.TooManyRequestsError} + * @throws {@link Webflow.InternalServerError} + * + * @example + * await webflow.pages.updatePageSettings("page_id", { + * body: { + * id: "6390c49774a71f0e3c1a08ee", + * siteId: "6390c49674a71f84b51a08d8", + * title: "Blog Categories Template", + * slug: "detail_blog-category", + * parentId: "6419db964a9c435aa3af6251", + * collectionId: "6390c49774a71f12831a08e3", + * createdOn: new Date("2018-10-14T21:55:49.000Z"), + * lastUpdated: new Date("2022-12-07T16:51:37.000Z"), + * archived: false, + * draft: false, + * canBranch: true, + * isMembersOnly: false, + * seo: { + * title: "CoffeeStyle eCommerce - Webflow HTML website template", + * description: "This Webflow template offers a quick start into an e-commerce / memberships site" + * }, + * openGraph: { + * title: "CoffeeStyle eCommerce - Webflow HTML website template", + * titleCopied: true, + * description: "This Webflow template offers a quick start into an e-commerce / memberships site", + * descriptionCopied: true + * } + * } + * }) + */ + public async updatePageSettings( + pageId: string, + request: Webflow.UpdatePageSettingsRequest, + requestOptions?: Pages.RequestOptions + ): Promise { + const { locale, body: _body } = request; + const _queryParams: Record = {}; + if (locale != null) { + _queryParams["locale"] = locale; + } + + const _response = await core.fetcher({ + url: urlJoin( + (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, + `pages/${pageId}` + ), + method: "PUT", + headers: { + Authorization: await this._getAuthorizationHeader(), + "X-Fern-Language": "JavaScript", + "X-Fern-SDK-Name": "webflow-api", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", + queryParameters: _queryParams, + body: await serializers.Page.jsonOrThrow(_body, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, }); @@ -171,6 +309,188 @@ export class Pages { } } + /** + * Get static content from a static page.
If you do not provide a Locale ID in your request, the response will return any content that can be localized from the Primary locale

Required scope | `pages:read` + * @throws {@link Webflow.BadRequestError} + * @throws {@link Webflow.UnauthorizedError} + * @throws {@link Webflow.ForbiddenError} + * @throws {@link Webflow.NotFoundError} + * @throws {@link Webflow.TooManyRequestsError} + * @throws {@link Webflow.InternalServerError} + * + * @example + * await webflow.pages.getContent("page_id", {}) + */ + public async getContent( + pageId: string, + request: Webflow.PagesGetContentRequest = {}, + requestOptions?: Pages.RequestOptions + ): Promise { + const { locale } = request; + const _queryParams: Record = {}; + if (locale != null) { + _queryParams["locale"] = locale; + } + + const _response = await core.fetcher({ + url: urlJoin( + (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, + `pages/${pageId}/dom` + ), + method: "GET", + headers: { + Authorization: await this._getAuthorizationHeader(), + "X-Fern-Language": "JavaScript", + "X-Fern-SDK-Name": "webflow-api", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, + }, + contentType: "application/json", + queryParameters: _queryParams, + timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, + maxRetries: requestOptions?.maxRetries, + }); + if (_response.ok) { + return await serializers.Dom.parseOrThrow(_response.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }); + } + + if (_response.error.reason === "status-code") { + switch (_response.error.statusCode) { + case 400: + throw new Webflow.BadRequestError(_response.error.body); + case 401: + throw new Webflow.UnauthorizedError(_response.error.body); + case 403: + throw new Webflow.ForbiddenError(_response.error.body); + case 404: + throw new Webflow.NotFoundError(_response.error.body); + case 429: + throw new Webflow.TooManyRequestsError(_response.error.body); + case 500: + throw new Webflow.InternalServerError(_response.error.body); + default: + throw new errors.WebflowError({ + statusCode: _response.error.statusCode, + body: _response.error.body, + }); + } + } + + switch (_response.error.reason) { + case "non-json": + throw new errors.WebflowError({ + statusCode: _response.error.statusCode, + body: _response.error.rawBody, + }); + case "timeout": + throw new errors.WebflowTimeoutError(); + case "unknown": + throw new errors.WebflowError({ + message: _response.error.errorMessage, + }); + } + } + + /** + * Update static content on a static page.

Required scope | `pages:write` + * @throws {@link Webflow.BadRequestError} + * @throws {@link Webflow.UnauthorizedError} + * @throws {@link Webflow.ForbiddenError} + * @throws {@link Webflow.NotFoundError} + * @throws {@link Webflow.TooManyRequestsError} + * @throws {@link Webflow.InternalServerError} + * + * @example + * await webflow.pages.updateStaticContent("page_id", { + * locale: "locale", + * nodes: [{ + * nodeId: "guide-title-id", + * text: "

Hello world

" + * }] + * }) + */ + public async updateStaticContent( + pageId: string, + request: Webflow.DomWrite, + requestOptions?: Pages.RequestOptions + ): Promise { + const { locale, ..._body } = request; + const _queryParams: Record = {}; + _queryParams["locale"] = locale; + const _response = await core.fetcher({ + url: urlJoin( + (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, + `pages/${pageId}/dom` + ), + method: "POST", + headers: { + Authorization: await this._getAuthorizationHeader(), + "X-Fern-Language": "JavaScript", + "X-Fern-SDK-Name": "webflow-api", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, + }, + contentType: "application/json", + queryParameters: _queryParams, + body: await serializers.DomWrite.jsonOrThrow(_body, { unrecognizedObjectKeys: "strip" }), + timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, + maxRetries: requestOptions?.maxRetries, + }); + if (_response.ok) { + return await serializers.Dom.parseOrThrow(_response.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }); + } + + if (_response.error.reason === "status-code") { + switch (_response.error.statusCode) { + case 400: + throw new Webflow.BadRequestError(_response.error.body); + case 401: + throw new Webflow.UnauthorizedError(_response.error.body); + case 403: + throw new Webflow.ForbiddenError(_response.error.body); + case 404: + throw new Webflow.NotFoundError(_response.error.body); + case 429: + throw new Webflow.TooManyRequestsError(_response.error.body); + case 500: + throw new Webflow.InternalServerError(_response.error.body); + default: + throw new errors.WebflowError({ + statusCode: _response.error.statusCode, + body: _response.error.body, + }); + } + } + + switch (_response.error.reason) { + case "non-json": + throw new errors.WebflowError({ + statusCode: _response.error.statusCode, + body: _response.error.rawBody, + }); + case "timeout": + throw new errors.WebflowTimeoutError(); + case "unknown": + throw new errors.WebflowError({ + message: _response.error.errorMessage, + }); + } + } + protected _scripts: Scripts | undefined; public get scripts(): Scripts { diff --git a/src/api/resources/pages/client/index.ts b/src/api/resources/pages/client/index.ts index cb0ff5c3..415726b7 100644 --- a/src/api/resources/pages/client/index.ts +++ b/src/api/resources/pages/client/index.ts @@ -1 +1 @@ -export {}; +export * from "./requests"; diff --git a/src/api/resources/pages/client/requests/DomWrite.ts b/src/api/resources/pages/client/requests/DomWrite.ts new file mode 100644 index 00000000..d554ae23 --- /dev/null +++ b/src/api/resources/pages/client/requests/DomWrite.ts @@ -0,0 +1,23 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Webflow from "../../../.."; + +/** + * @example + * { + * locale: "locale", + * nodes: [{ + * nodeId: "guide-title-id", + * text: "

Hello world

" + * }] + * } + */ +export interface DomWrite { + /** + * The locale identifier. + */ + locale: string; + nodes: Webflow.DomWriteNodesItem[]; +} diff --git a/src/api/resources/pages/client/requests/PagesGetContentRequest.ts b/src/api/resources/pages/client/requests/PagesGetContentRequest.ts new file mode 100644 index 00000000..850ddd2d --- /dev/null +++ b/src/api/resources/pages/client/requests/PagesGetContentRequest.ts @@ -0,0 +1,14 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +/** + * @example + * {} + */ +export interface PagesGetContentRequest { + /** + * Unique identifier for a specific locale. Applicable, when using localization. + */ + locale?: string; +} diff --git a/src/api/resources/pages/client/requests/PagesGetMetadataRequest.ts b/src/api/resources/pages/client/requests/PagesGetMetadataRequest.ts new file mode 100644 index 00000000..14692129 --- /dev/null +++ b/src/api/resources/pages/client/requests/PagesGetMetadataRequest.ts @@ -0,0 +1,14 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +/** + * @example + * {} + */ +export interface PagesGetMetadataRequest { + /** + * Unique identifier for a specific locale. Applicable, when using localization. + */ + locale?: string; +} diff --git a/src/api/resources/pages/client/requests/PagesListRequest.ts b/src/api/resources/pages/client/requests/PagesListRequest.ts new file mode 100644 index 00000000..c9a07390 --- /dev/null +++ b/src/api/resources/pages/client/requests/PagesListRequest.ts @@ -0,0 +1,14 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +/** + * @example + * {} + */ +export interface PagesListRequest { + /** + * Unique identifier for a specific locale. Applicable, when using localization. + */ + locale?: string; +} diff --git a/src/api/resources/pages/client/requests/UpdatePageSettingsRequest.ts b/src/api/resources/pages/client/requests/UpdatePageSettingsRequest.ts new file mode 100644 index 00000000..df433308 --- /dev/null +++ b/src/api/resources/pages/client/requests/UpdatePageSettingsRequest.ts @@ -0,0 +1,42 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Webflow from "../../../.."; + +/** + * @example + * { + * body: { + * id: "6390c49774a71f0e3c1a08ee", + * siteId: "6390c49674a71f84b51a08d8", + * title: "Blog Categories Template", + * slug: "detail_blog-category", + * parentId: "6419db964a9c435aa3af6251", + * collectionId: "6390c49774a71f12831a08e3", + * createdOn: new Date("2018-10-14T21:55:49.000Z"), + * lastUpdated: new Date("2022-12-07T16:51:37.000Z"), + * archived: false, + * draft: false, + * canBranch: true, + * isMembersOnly: false, + * seo: { + * title: "CoffeeStyle eCommerce - Webflow HTML website template", + * description: "This Webflow template offers a quick start into an e-commerce / memberships site" + * }, + * openGraph: { + * title: "CoffeeStyle eCommerce - Webflow HTML website template", + * titleCopied: true, + * description: "This Webflow template offers a quick start into an e-commerce / memberships site", + * descriptionCopied: true + * } + * } + * } + */ +export interface UpdatePageSettingsRequest { + /** + * Unique identifier for a specific locale. Applicable, when using localization. + */ + locale?: string; + body: Webflow.Page; +} diff --git a/src/api/resources/pages/client/requests/index.ts b/src/api/resources/pages/client/requests/index.ts new file mode 100644 index 00000000..08a645cd --- /dev/null +++ b/src/api/resources/pages/client/requests/index.ts @@ -0,0 +1,5 @@ +export { PagesListRequest } from "./PagesListRequest"; +export { PagesGetMetadataRequest } from "./PagesGetMetadataRequest"; +export { UpdatePageSettingsRequest } from "./UpdatePageSettingsRequest"; +export { PagesGetContentRequest } from "./PagesGetContentRequest"; +export { DomWrite } from "./DomWrite"; diff --git a/src/api/resources/pages/index.ts b/src/api/resources/pages/index.ts index 33a87f10..848e75ab 100644 --- a/src/api/resources/pages/index.ts +++ b/src/api/resources/pages/index.ts @@ -1,2 +1,3 @@ +export * from "./types"; export * from "./client"; export * from "./resources"; diff --git a/src/api/resources/pages/resources/scripts/client/Client.ts b/src/api/resources/pages/resources/scripts/client/Client.ts index c3a21eac..e3b47ad6 100644 --- a/src/api/resources/pages/resources/scripts/client/Client.ts +++ b/src/api/resources/pages/resources/scripts/client/Client.ts @@ -33,7 +33,7 @@ export class Scripts { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.pages.scripts.getCustomCode("string") + * await webflow.pages.scripts.getCustomCode("page_id") */ public async getCustomCode( pageId: string, @@ -42,14 +42,16 @@ export class Scripts { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/pages/${pageId}/custom_code` + `pages/${pageId}/custom_code` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -109,7 +111,7 @@ export class Scripts { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.pages.scripts.upsertCustomCode("string", { + * await webflow.pages.scripts.upsertCustomCode("page_id", { * scripts: [{ * id: "cms_slider", * location: Webflow.ScriptApplyLocation.Header, @@ -117,6 +119,14 @@ export class Scripts { * attributes: { * "my-attribute": "some-value" * } + * }, { + * id: "alert", + * location: Webflow.ScriptApplyLocation.Header, + * version: "0.0.1" + * }, { + * id: "id", + * location: Webflow.ScriptApplyLocation.Header, + * version: "version" * }] * }) */ @@ -128,14 +138,16 @@ export class Scripts { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/pages/${pageId}/custom_code` + `pages/${pageId}/custom_code` ), method: "PUT", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", body: await serializers.ScriptApplyList.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -196,20 +208,22 @@ export class Scripts { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.pages.scripts.deleteCustomCode("string") + * await webflow.pages.scripts.deleteCustomCode("page_id") */ public async deleteCustomCode(pageId: string, requestOptions?: Scripts.RequestOptions): Promise { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/pages/${pageId}/custom_code` + `pages/${pageId}/custom_code` ), method: "DELETE", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, diff --git a/src/api/resources/pages/types/DomWriteNodesItem.ts b/src/api/resources/pages/types/DomWriteNodesItem.ts new file mode 100644 index 00000000..54e8f2e5 --- /dev/null +++ b/src/api/resources/pages/types/DomWriteNodesItem.ts @@ -0,0 +1,10 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +export interface DomWriteNodesItem { + /** Node UUID */ + nodeId: string; + /** HTML content of the node */ + text: string; +} diff --git a/src/api/resources/pages/types/index.ts b/src/api/resources/pages/types/index.ts new file mode 100644 index 00000000..a2ba6486 --- /dev/null +++ b/src/api/resources/pages/types/index.ts @@ -0,0 +1 @@ +export * from "./DomWriteNodesItem"; diff --git a/src/api/resources/products/client/Client.ts b/src/api/resources/products/client/Client.ts index 36546159..7e904de2 100644 --- a/src/api/resources/products/client/Client.ts +++ b/src/api/resources/products/client/Client.ts @@ -37,7 +37,7 @@ export class Products { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.products.list("string", {}) + * await webflow.products.list("site_id", {}) */ public async list( siteId: string, @@ -45,7 +45,7 @@ export class Products { requestOptions?: Products.RequestOptions ): Promise { const { offset, limit } = request; - const _queryParams: Record = {}; + const _queryParams: Record = {}; if (offset != null) { _queryParams["offset"] = offset.toString(); } @@ -57,14 +57,16 @@ export class Products { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/products` + `sites/${siteId}/products` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", queryParameters: _queryParams, @@ -121,17 +123,13 @@ export class Products { } /** - * Adding a new Product involves creating both a Product Item and a SKU Item, since a Product Item has to have, at minimum, a SKU Item. + * Creating a new Product involves creating both a Product and a SKU, since a Product Item has to have, at minimum, a single SKU. * - * To create a new Product with multiple SKUs, you must: + * In order to create a Product with multiple SKUs - for example a T-shirt in sizes small, medium and large - you'll need to create `sku-properties`. In our T-shirt example, a single `sku-property` would be Color. Within that property, we'll need to list out the various colors a T-shirt could be as an array of `enum` values: `royal-blue`, `crimson-red`, and `forrest-green`. * - * - Create the Product and Default SKU using this endpoint, making sure to add `sku-properties` in the product data. - * - You can't add `sku-values` to the SKU yet, since there are no enum IDs created yet. When this endpoint returns, it will have IDs filled in for the `sku-properties` enums. - * - With those IDs, update the default SKU with valid `sku-values` and create any additional SKUs (if needed), with valid `sku-values`. - * - You can also create the Product without `sku-properties` and add them in later. - * - If you add any `sku` properties, the default SKU will default to the first value of each option. + * Once, you've created a Product and its `sku-properties` with `enum` values, you can create your default SKU, which will automatically be a combination of the first `sku-properties` you've created. In our example, the default SKU will be a Royal Blue T-Shirt, because our first `enum` of our Color `sku-property` is Royal Blue. After you've created your product, you can create additional SKUs using the Create SKU endpoint * - * Upon creation, the default product type will be `Advanced`. The product type is used to determine which Product and SKU fields are shown to users in the `Designer` and the `Editor`. Setting it to `Advanced` ensures that all Product and SKU fields will be shown. The product type can be edited in the `Designer` or the `Editor`. + * Upon creation, the default product type will be `Advanced`. The product type is used to determine which Product and SKU fields are shown to users in the `Designer` and the `Editor`. Setting it to `Advanced` ensures that all Product and SKU fields will be shown. * * Required scope | `ecommerce:write` * @throws {@link Webflow.BadRequestError} @@ -143,64 +141,29 @@ export class Products { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.products.create("string", { - * publishStatus: Webflow.PublishStatus.Staging, - * product: { - * id: "580e63fc8c9a982ac9b8b745", - * lastPublished: new Date("2023-03-17T18:47:35.560Z"), - * lastUpdated: new Date("2023-03-17T18:47:35.560Z"), - * createdOn: new Date("2023-03-17T18:47:35.560Z"), - * isArchived: false, - * isDraft: false, - * fieldData: { - * name: "My new item", - * slug: "my-new-item", - * skuProperties: [{ - * id: "ff42fee0113744f693a764e3431a9cc2", - * name: "Color", - * enum: [{ - * id: "64a74715c456e36762fc39a1", - * name: "Royal Blue", - * slug: "royal-blue" - * }] - * }] - * } - * }, - * sku: { - * id: "580e63fc8c9a982ac9b8b745", - * lastPublished: new Date("2023-03-17T18:47:35.560Z"), - * lastUpdated: new Date("2023-03-17T18:47:35.560Z"), - * createdOn: new Date("2023-03-17T18:47:35.560Z"), - * fieldData: { - * name: "My new item", - * slug: "my-new-item", - * price: { - * value: 100, - * unit: "USD" - * } - * } - * } - * }) + * await webflow.products.create("site_id", {}) */ public async create( siteId: string, - request: Webflow.ProductsCreateRequest, + request: Webflow.ProductSkuCreate = {}, requestOptions?: Products.RequestOptions ): Promise { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/products` + `sites/${siteId}/products` ), method: "POST", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", - body: await serializers.ProductsCreateRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), + body: await serializers.ProductSkuCreate.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, }); @@ -266,7 +229,7 @@ export class Products { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.products.get("string", "string") + * await webflow.products.get("site_id", "product_id") */ public async get( siteId: string, @@ -276,14 +239,16 @@ export class Products { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/products/${productId}` + `sites/${siteId}/products/${productId}` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -351,25 +316,46 @@ export class Products { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.products.update("string", "string", { - * publishStatus: Webflow.PublishStatus.Staging, + * await webflow.products.update("site_id", "product_id", { * product: { * id: "580e63fc8c9a982ac9b8b745", - * lastPublished: new Date("2023-03-17T18:47:35.560Z"), - * lastUpdated: new Date("2023-03-17T18:47:35.560Z"), - * createdOn: new Date("2023-03-17T18:47:35.560Z"), + * lastPublished: new Date("2023-03-17T18:47:35.000Z"), + * lastUpdated: new Date("2023-03-17T18:47:35.000Z"), + * createdOn: new Date("2023-03-17T18:47:35.000Z"), * isArchived: false, * isDraft: false, * fieldData: { - * name: "My new item", - * slug: "my-new-item", + * name: "T-Shirt", + * slug: "t-shirt", + * description: "A plain cotton t-shirt.", + * shippable: true, * skuProperties: [{ - * id: "ff42fee0113744f693a764e3431a9cc2", + * id: "color", * name: "Color", * enum: [{ - * id: "64a74715c456e36762fc39a1", + * id: "royal-blue", * name: "Royal Blue", * slug: "royal-blue" + * }, { + * id: "crimson-red", + * name: "Crimson Red", + * slug: "crimson-red" + * }, { + * id: "forrest-green", + * name: "Forrst Green", + * slug: "forrest-green" + * }, { + * id: "id", + * name: "name", + * slug: "slug" + * }] + * }, { + * id: "Color", + * name: "Color", + * enum: [{ + * id: "id", + * name: "name", + * slug: "slug" * }] * }] * } @@ -385,14 +371,16 @@ export class Products { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/products/${productId}` + `sites/${siteId}/products/${productId}` ), method: "PATCH", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", body: await serializers.ProductsUpdateRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -463,20 +451,20 @@ export class Products { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.products.createSku("string", "string", { - * publishStatus: Webflow.PublishStatus.Staging, + * await webflow.products.createSku("site_id", "product_id", { * skus: [{ * id: "580e63fc8c9a982ac9b8b745", - * lastPublished: new Date("2023-03-17T18:47:35.560Z"), - * lastUpdated: new Date("2023-03-17T18:47:35.560Z"), - * createdOn: new Date("2023-03-17T18:47:35.560Z"), + * lastPublished: new Date("2023-03-17T18:47:35.000Z"), + * lastUpdated: new Date("2023-03-17T18:47:35.000Z"), + * createdOn: new Date("2023-03-17T18:47:35.000Z"), * fieldData: { - * name: "My new item", - * slug: "my-new-item", + * name: "Blue T-shirt", + * slug: "t-shirt-blue", * price: { * value: 100, * unit: "USD" - * } + * }, + * quantity: 10 * } * }] * }) @@ -490,14 +478,16 @@ export class Products { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/products/${productId}/skus` + `sites/${siteId}/products/${productId}/skus` ), method: "POST", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", body: await serializers.ProductsCreateSkuRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -566,20 +556,20 @@ export class Products { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.products.updateSku("string", "string", "string", { - * publishStatus: Webflow.PublishStatus.Staging, + * await webflow.products.updateSku("site_id", "product_id", "sku_id", { * sku: { * id: "580e63fc8c9a982ac9b8b745", - * lastPublished: new Date("2023-03-17T18:47:35.560Z"), - * lastUpdated: new Date("2023-03-17T18:47:35.560Z"), - * createdOn: new Date("2023-03-17T18:47:35.560Z"), + * lastPublished: new Date("2023-03-17T18:47:35.000Z"), + * lastUpdated: new Date("2023-03-17T18:47:35.000Z"), + * createdOn: new Date("2023-03-17T18:47:35.000Z"), * fieldData: { - * name: "My new item", - * slug: "my-new-item", + * name: "Blue T-shirt", + * slug: "t-shirt-blue", * price: { * value: 100, * unit: "USD" - * } + * }, + * quantity: 10 * } * } * }) @@ -594,14 +584,16 @@ export class Products { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/products/${productId}/skus/${skuId}` + `sites/${siteId}/products/${productId}/skus/${skuId}` ), method: "PATCH", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", body: await serializers.ProductsUpdateSkuRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), diff --git a/src/api/resources/products/client/requests/ProductSkuCreate.ts b/src/api/resources/products/client/requests/ProductSkuCreate.ts new file mode 100644 index 00000000..3b030adc --- /dev/null +++ b/src/api/resources/products/client/requests/ProductSkuCreate.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Webflow from "../../../.."; + +/** + * @example + * {} + */ +export interface ProductSkuCreate { + publishStatus?: Webflow.PublishStatus; + /** The Product Object */ + product?: Webflow.ProductSkuCreateProduct; + /** The SKU object */ + sku?: Webflow.ProductSkuCreateSku; +} diff --git a/src/api/resources/products/client/requests/ProductsCreateRequest.ts b/src/api/resources/products/client/requests/ProductsCreateRequest.ts deleted file mode 100644 index 2d44852c..00000000 --- a/src/api/resources/products/client/requests/ProductsCreateRequest.ts +++ /dev/null @@ -1,52 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -import * as Webflow from "../../../.."; - -/** - * @example - * { - * publishStatus: Webflow.PublishStatus.Staging, - * product: { - * id: "580e63fc8c9a982ac9b8b745", - * lastPublished: new Date("2023-03-17T18:47:35.560Z"), - * lastUpdated: new Date("2023-03-17T18:47:35.560Z"), - * createdOn: new Date("2023-03-17T18:47:35.560Z"), - * isArchived: false, - * isDraft: false, - * fieldData: { - * name: "My new item", - * slug: "my-new-item", - * skuProperties: [{ - * id: "ff42fee0113744f693a764e3431a9cc2", - * name: "Color", - * enum: [{ - * id: "64a74715c456e36762fc39a1", - * name: "Royal Blue", - * slug: "royal-blue" - * }] - * }] - * } - * }, - * sku: { - * id: "580e63fc8c9a982ac9b8b745", - * lastPublished: new Date("2023-03-17T18:47:35.560Z"), - * lastUpdated: new Date("2023-03-17T18:47:35.560Z"), - * createdOn: new Date("2023-03-17T18:47:35.560Z"), - * fieldData: { - * name: "My new item", - * slug: "my-new-item", - * price: { - * value: 100, - * unit: "USD" - * } - * } - * } - * } - */ -export interface ProductsCreateRequest { - publishStatus?: Webflow.PublishStatus; - product: Webflow.Product; - sku: Webflow.Sku; -} diff --git a/src/api/resources/products/client/requests/ProductsCreateSkuRequest.ts b/src/api/resources/products/client/requests/ProductsCreateSkuRequest.ts index 6fd49023..210302b2 100644 --- a/src/api/resources/products/client/requests/ProductsCreateSkuRequest.ts +++ b/src/api/resources/products/client/requests/ProductsCreateSkuRequest.ts @@ -7,19 +7,19 @@ import * as Webflow from "../../../.."; /** * @example * { - * publishStatus: Webflow.PublishStatus.Staging, * skus: [{ * id: "580e63fc8c9a982ac9b8b745", - * lastPublished: new Date("2023-03-17T18:47:35.560Z"), - * lastUpdated: new Date("2023-03-17T18:47:35.560Z"), - * createdOn: new Date("2023-03-17T18:47:35.560Z"), + * lastPublished: new Date("2023-03-17T18:47:35.000Z"), + * lastUpdated: new Date("2023-03-17T18:47:35.000Z"), + * createdOn: new Date("2023-03-17T18:47:35.000Z"), * fieldData: { - * name: "My new item", - * slug: "my-new-item", + * name: "Blue T-shirt", + * slug: "t-shirt-blue", * price: { * value: 100, * unit: "USD" - * } + * }, + * quantity: 10 * } * }] * } diff --git a/src/api/resources/products/client/requests/ProductsUpdateRequest.ts b/src/api/resources/products/client/requests/ProductsUpdateRequest.ts index aa405ddc..ae642ae8 100644 --- a/src/api/resources/products/client/requests/ProductsUpdateRequest.ts +++ b/src/api/resources/products/client/requests/ProductsUpdateRequest.ts @@ -7,24 +7,45 @@ import * as Webflow from "../../../.."; /** * @example * { - * publishStatus: Webflow.PublishStatus.Staging, * product: { * id: "580e63fc8c9a982ac9b8b745", - * lastPublished: new Date("2023-03-17T18:47:35.560Z"), - * lastUpdated: new Date("2023-03-17T18:47:35.560Z"), - * createdOn: new Date("2023-03-17T18:47:35.560Z"), + * lastPublished: new Date("2023-03-17T18:47:35.000Z"), + * lastUpdated: new Date("2023-03-17T18:47:35.000Z"), + * createdOn: new Date("2023-03-17T18:47:35.000Z"), * isArchived: false, * isDraft: false, * fieldData: { - * name: "My new item", - * slug: "my-new-item", + * name: "T-Shirt", + * slug: "t-shirt", + * description: "A plain cotton t-shirt.", + * shippable: true, * skuProperties: [{ - * id: "ff42fee0113744f693a764e3431a9cc2", + * id: "color", * name: "Color", * enum: [{ - * id: "64a74715c456e36762fc39a1", + * id: "royal-blue", * name: "Royal Blue", * slug: "royal-blue" + * }, { + * id: "crimson-red", + * name: "Crimson Red", + * slug: "crimson-red" + * }, { + * id: "forrest-green", + * name: "Forrst Green", + * slug: "forrest-green" + * }, { + * id: "id", + * name: "name", + * slug: "slug" + * }] + * }, { + * id: "Color", + * name: "Color", + * enum: [{ + * id: "id", + * name: "name", + * slug: "slug" * }] * }] * } diff --git a/src/api/resources/products/client/requests/ProductsUpdateSkuRequest.ts b/src/api/resources/products/client/requests/ProductsUpdateSkuRequest.ts index dd1b0240..d7aa25b6 100644 --- a/src/api/resources/products/client/requests/ProductsUpdateSkuRequest.ts +++ b/src/api/resources/products/client/requests/ProductsUpdateSkuRequest.ts @@ -7,19 +7,19 @@ import * as Webflow from "../../../.."; /** * @example * { - * publishStatus: Webflow.PublishStatus.Staging, * sku: { * id: "580e63fc8c9a982ac9b8b745", - * lastPublished: new Date("2023-03-17T18:47:35.560Z"), - * lastUpdated: new Date("2023-03-17T18:47:35.560Z"), - * createdOn: new Date("2023-03-17T18:47:35.560Z"), + * lastPublished: new Date("2023-03-17T18:47:35.000Z"), + * lastUpdated: new Date("2023-03-17T18:47:35.000Z"), + * createdOn: new Date("2023-03-17T18:47:35.000Z"), * fieldData: { - * name: "My new item", - * slug: "my-new-item", + * name: "Blue T-shirt", + * slug: "t-shirt-blue", * price: { * value: 100, * unit: "USD" - * } + * }, + * quantity: 10 * } * } * } diff --git a/src/api/resources/products/client/requests/index.ts b/src/api/resources/products/client/requests/index.ts index 6d9f8757..f95504d3 100644 --- a/src/api/resources/products/client/requests/index.ts +++ b/src/api/resources/products/client/requests/index.ts @@ -1,5 +1,5 @@ export { ProductsListRequest } from "./ProductsListRequest"; -export { ProductsCreateRequest } from "./ProductsCreateRequest"; +export { ProductSkuCreate } from "./ProductSkuCreate"; export { ProductsUpdateRequest } from "./ProductsUpdateRequest"; export { ProductsCreateSkuRequest } from "./ProductsCreateSkuRequest"; export { ProductsUpdateSkuRequest } from "./ProductsUpdateSkuRequest"; diff --git a/src/api/resources/products/types/ProductSkuCreateProduct.ts b/src/api/resources/products/types/ProductSkuCreateProduct.ts new file mode 100644 index 00000000..f0e01058 --- /dev/null +++ b/src/api/resources/products/types/ProductSkuCreateProduct.ts @@ -0,0 +1,24 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Webflow from "../../.."; + +/** + * The Product Object + */ +export interface ProductSkuCreateProduct { + /** Unique identifier for the Product */ + id?: string; + /** The date the Product was last published */ + lastPublished?: Date; + /** The date the Product was last updated */ + lastUpdated?: Date; + /** The date the Product was created */ + createdOn?: Date; + /** Boolean determining if the Product is set to archived */ + isArchived?: boolean; + /** Boolean determining if the Product is set to draft */ + isDraft?: boolean; + fieldData?: Webflow.ProductSkuCreateProductFieldData; +} diff --git a/src/api/resources/products/types/ProductSkuCreateProductFieldData.ts b/src/api/resources/products/types/ProductSkuCreateProductFieldData.ts new file mode 100644 index 00000000..392757ed --- /dev/null +++ b/src/api/resources/products/types/ProductSkuCreateProductFieldData.ts @@ -0,0 +1,25 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Webflow from "../../.."; + +export interface ProductSkuCreateProductFieldData { + /** Name of the Product */ + name: string; + /** URL structure of the Product in your site. */ + slug: string; + /** A description of your product */ + description?: string; + /** Boolean determining if the Product is shippable */ + shippable?: boolean; + /** Variant types to include in SKUs */ + skuProperties?: Webflow.SkuPropertyList[]; + /** The categories your product belongs to. */ + categories?: unknown[]; + /** Product tax class */ + taxCategory?: Webflow.ProductSkuCreateProductFieldDataTaxCategory; + /** Product types. Enums reflect the following values in order: Physical, Digital, Service, Advanced" */ + ecProductType?: Webflow.ProductSkuCreateProductFieldDataEcProductType; + additionalProperties?: unknown; +} diff --git a/src/api/resources/products/types/ProductSkuCreateProductFieldDataEcProductType.ts b/src/api/resources/products/types/ProductSkuCreateProductFieldDataEcProductType.ts new file mode 100644 index 00000000..6c530ca9 --- /dev/null +++ b/src/api/resources/products/types/ProductSkuCreateProductFieldDataEcProductType.ts @@ -0,0 +1,19 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +/** + * Product types. Enums reflect the following values in order: Physical, Digital, Service, Advanced" + */ +export type ProductSkuCreateProductFieldDataEcProductType = + | "ff42fee0113744f693a764e3431a9cc2" + | "f22027db68002190aef89a4a2b7ac8a1" + | "c599e43b1a1c34d5a323aedf75d3adf6" + | "b6ccc1830db4b1babeb06a9ac5f6dd76"; + +export const ProductSkuCreateProductFieldDataEcProductType = { + Ff42Fee0113744F693A764E3431A9Cc2: "ff42fee0113744f693a764e3431a9cc2", + F22027Db68002190Aef89A4A2B7Ac8A1: "f22027db68002190aef89a4a2b7ac8a1", + C599E43B1A1C34D5A323Aedf75D3Adf6: "c599e43b1a1c34d5a323aedf75d3adf6", + B6Ccc1830Db4B1Babeb06A9Ac5F6Dd76: "b6ccc1830db4b1babeb06a9ac5f6dd76", +} as const; diff --git a/src/api/resources/products/types/ProductSkuCreateProductFieldDataTaxCategory.ts b/src/api/resources/products/types/ProductSkuCreateProductFieldDataTaxCategory.ts new file mode 100644 index 00000000..5897546c --- /dev/null +++ b/src/api/resources/products/types/ProductSkuCreateProductFieldDataTaxCategory.ts @@ -0,0 +1,69 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +/** + * Product tax class + */ +export type ProductSkuCreateProductFieldDataTaxCategory = + | "standard-taxable" + | "standard-exempt" + | "books-religious" + | "books-textbook" + | "clothing" + | "clothing-swimwear" + | "digital-goods" + | "digital-service" + | "drugs-non-prescription" + | "drugs-prescription" + | "food-bottled-water" + | "food-candy" + | "food-groceries" + | "food-prepared" + | "food-soda" + | "food-supplements" + | "magazine-individual" + | "magazine-subscription" + | "service-admission" + | "service-advertising" + | "service-dry-cleaning" + | "service-hairdressing" + | "service-installation" + | "service-miscellaneous" + | "service-parking" + | "service-printing" + | "service-professional" + | "service-repair" + | "service-training"; + +export const ProductSkuCreateProductFieldDataTaxCategory = { + StandardTaxable: "standard-taxable", + StandardExempt: "standard-exempt", + BooksReligious: "books-religious", + BooksTextbook: "books-textbook", + Clothing: "clothing", + ClothingSwimwear: "clothing-swimwear", + DigitalGoods: "digital-goods", + DigitalService: "digital-service", + DrugsNonPrescription: "drugs-non-prescription", + DrugsPrescription: "drugs-prescription", + FoodBottledWater: "food-bottled-water", + FoodCandy: "food-candy", + FoodGroceries: "food-groceries", + FoodPrepared: "food-prepared", + FoodSoda: "food-soda", + FoodSupplements: "food-supplements", + MagazineIndividual: "magazine-individual", + MagazineSubscription: "magazine-subscription", + ServiceAdmission: "service-admission", + ServiceAdvertising: "service-advertising", + ServiceDryCleaning: "service-dry-cleaning", + ServiceHairdressing: "service-hairdressing", + ServiceInstallation: "service-installation", + ServiceMiscellaneous: "service-miscellaneous", + ServiceParking: "service-parking", + ServicePrinting: "service-printing", + ServiceProfessional: "service-professional", + ServiceRepair: "service-repair", + ServiceTraining: "service-training", +} as const; diff --git a/src/api/resources/products/types/ProductSkuCreateSku.ts b/src/api/resources/products/types/ProductSkuCreateSku.ts new file mode 100644 index 00000000..152285ac --- /dev/null +++ b/src/api/resources/products/types/ProductSkuCreateSku.ts @@ -0,0 +1,21 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Webflow from "../../.."; + +/** + * The SKU object + */ +export interface ProductSkuCreateSku { + /** Unique identifier for the Product */ + id?: string; + /** The date the Product was last published */ + lastPublished?: Date; + /** The date the Product was last updated */ + lastUpdated?: Date; + /** The date the Product was created */ + createdOn?: Date; + /** Standard and Custom fields for a SKU */ + fieldData?: Webflow.ProductSkuCreateSkuFieldData; +} diff --git a/src/api/resources/products/types/ProductSkuCreateSkuFieldData.ts b/src/api/resources/products/types/ProductSkuCreateSkuFieldData.ts new file mode 100644 index 00000000..5db7a7ac --- /dev/null +++ b/src/api/resources/products/types/ProductSkuCreateSkuFieldData.ts @@ -0,0 +1,28 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Webflow from "../../.."; + +/** + * Standard and Custom fields for a SKU + */ +export interface ProductSkuCreateSkuFieldData { + skuValues?: Webflow.SkuValueList; + /** Name of the Product */ + name: string; + /** URL structure of the Product in your site. */ + slug: string; + /** price of SKU */ + price: Webflow.ProductSkuCreateSkuFieldDataPrice; + /** comparison price of SKU */ + compareAtPrice?: Webflow.ProductSkuCreateSkuFieldDataCompareAtPrice; + /** The billing method for your SKU */ + ecSkuBillingMethod?: Webflow.ProductSkuCreateSkuFieldDataEcSkuBillingMethod; + /** If your billing method is a Subscription Plan, outline the type and frequency of the subscription. */ + ecSkuSubscriptionPlan?: Webflow.ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlan; + /** A boolean indicating whether inventory for this product should be tracked. */ + trackInventory?: boolean; + /** Quantity of SKU that will be tracked as items are ordered. */ + quantity?: number; +} diff --git a/src/api/resources/products/types/ProductSkuCreateSkuFieldDataCompareAtPrice.ts b/src/api/resources/products/types/ProductSkuCreateSkuFieldDataCompareAtPrice.ts new file mode 100644 index 00000000..46ef6f7a --- /dev/null +++ b/src/api/resources/products/types/ProductSkuCreateSkuFieldDataCompareAtPrice.ts @@ -0,0 +1,13 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +/** + * comparison price of SKU + */ +export interface ProductSkuCreateSkuFieldDataCompareAtPrice { + /** Price of SKU */ + value?: number; + /** Currency of Item */ + unit?: string; +} diff --git a/src/api/resources/products/types/ProductSkuCreateSkuFieldDataEcSkuBillingMethod.ts b/src/api/resources/products/types/ProductSkuCreateSkuFieldDataEcSkuBillingMethod.ts new file mode 100644 index 00000000..57de997a --- /dev/null +++ b/src/api/resources/products/types/ProductSkuCreateSkuFieldDataEcSkuBillingMethod.ts @@ -0,0 +1,13 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +/** + * The billing method for your SKU + */ +export type ProductSkuCreateSkuFieldDataEcSkuBillingMethod = "one-time" | "subscription"; + +export const ProductSkuCreateSkuFieldDataEcSkuBillingMethod = { + OneTime: "one-time", + Subscription: "subscription", +} as const; diff --git a/src/api/resources/products/types/ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlan.ts b/src/api/resources/products/types/ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlan.ts new file mode 100644 index 00000000..4352848c --- /dev/null +++ b/src/api/resources/products/types/ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlan.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Webflow from "../../.."; + +/** + * If your billing method is a Subscription Plan, outline the type and frequency of the subscription. + */ +export interface ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlan { + /** Interval of subscription renewal */ + interval?: Webflow.ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlanInterval; + /** Frequncy of billing within interval */ + frequency?: number; + /** Number of days of a trial */ + trial?: number; +} diff --git a/src/api/resources/products/types/ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlanInterval.ts b/src/api/resources/products/types/ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlanInterval.ts new file mode 100644 index 00000000..b11a1270 --- /dev/null +++ b/src/api/resources/products/types/ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlanInterval.ts @@ -0,0 +1,15 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +/** + * Interval of subscription renewal + */ +export type ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlanInterval = "day" | "week" | "month" | "year"; + +export const ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlanInterval = { + Day: "day", + Week: "week", + Month: "month", + Year: "year", +} as const; diff --git a/src/api/resources/products/types/ProductSkuCreateSkuFieldDataPrice.ts b/src/api/resources/products/types/ProductSkuCreateSkuFieldDataPrice.ts new file mode 100644 index 00000000..2a61c4ff --- /dev/null +++ b/src/api/resources/products/types/ProductSkuCreateSkuFieldDataPrice.ts @@ -0,0 +1,14 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +/** + * price of SKU + */ +export interface ProductSkuCreateSkuFieldDataPrice { + required?: unknown; + /** Price of SKU */ + value?: number; + /** Currency of Item */ + unit?: string; +} diff --git a/src/api/resources/products/types/index.ts b/src/api/resources/products/types/index.ts index e286df49..a6bad2b0 100644 --- a/src/api/resources/products/types/index.ts +++ b/src/api/resources/products/types/index.ts @@ -1 +1,12 @@ +export * from "./ProductSkuCreateProductFieldDataTaxCategory"; +export * from "./ProductSkuCreateProductFieldDataEcProductType"; +export * from "./ProductSkuCreateProductFieldData"; +export * from "./ProductSkuCreateProduct"; +export * from "./ProductSkuCreateSkuFieldDataPrice"; +export * from "./ProductSkuCreateSkuFieldDataCompareAtPrice"; +export * from "./ProductSkuCreateSkuFieldDataEcSkuBillingMethod"; +export * from "./ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlanInterval"; +export * from "./ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlan"; +export * from "./ProductSkuCreateSkuFieldData"; +export * from "./ProductSkuCreateSku"; export * from "./ProductsCreateSkuResponse"; diff --git a/src/api/resources/scripts/client/Client.ts b/src/api/resources/scripts/client/Client.ts index 9f4ee956..3d25a212 100644 --- a/src/api/resources/scripts/client/Client.ts +++ b/src/api/resources/scripts/client/Client.ts @@ -33,20 +33,22 @@ export class Scripts { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.scripts.list("string") + * await webflow.scripts.list("site_id") */ public async list(siteId: string, requestOptions?: Scripts.RequestOptions): Promise { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/registered_scripts` + `sites/${siteId}/registered_scripts` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -106,11 +108,11 @@ export class Scripts { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.scripts.registerHosted("string", { - * hostedLocation: "string", - * integrityHash: "string", - * version: "string", - * displayName: "string" + * await webflow.scripts.registerHosted("site_id", { + * hostedLocation: "hostedLocation", + * integrityHash: "integrityHash", + * version: "version", + * displayName: "displayName" * }) */ public async registerHosted( @@ -121,14 +123,16 @@ export class Scripts { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/registered_scripts/hosted` + `sites/${siteId}/registered_scripts/hosted` ), method: "POST", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", body: await serializers.CustomCodeHostedRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -189,10 +193,10 @@ export class Scripts { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.scripts.registerInline("string", { + * await webflow.scripts.registerInline("site_id", { * sourceCode: "alert('hello world');", - * version: "string", - * displayName: "string" + * version: "0.0.1", + * displayName: "Alert" * }) */ public async registerInline( @@ -203,14 +207,16 @@ export class Scripts { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/registered_scripts/inline` + `sites/${siteId}/registered_scripts/inline` ), method: "POST", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", body: await serializers.CustomCodeInlineRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), diff --git a/src/api/resources/scripts/client/requests/CustomCodeHostedRequest.ts b/src/api/resources/scripts/client/requests/CustomCodeHostedRequest.ts index 18aa9d9c..82109906 100644 --- a/src/api/resources/scripts/client/requests/CustomCodeHostedRequest.ts +++ b/src/api/resources/scripts/client/requests/CustomCodeHostedRequest.ts @@ -5,10 +5,10 @@ /** * @example * { - * hostedLocation: "string", - * integrityHash: "string", - * version: "string", - * displayName: "string" + * hostedLocation: "hostedLocation", + * integrityHash: "integrityHash", + * version: "version", + * displayName: "displayName" * } */ export interface CustomCodeHostedRequest { diff --git a/src/api/resources/scripts/client/requests/CustomCodeInlineRequest.ts b/src/api/resources/scripts/client/requests/CustomCodeInlineRequest.ts index dee69cfe..451094a8 100644 --- a/src/api/resources/scripts/client/requests/CustomCodeInlineRequest.ts +++ b/src/api/resources/scripts/client/requests/CustomCodeInlineRequest.ts @@ -6,8 +6,8 @@ * @example * { * sourceCode: "alert('hello world');", - * version: "string", - * displayName: "string" + * version: "0.0.1", + * displayName: "Alert" * } */ export interface CustomCodeInlineRequest { diff --git a/src/api/resources/sites/client/Client.ts b/src/api/resources/sites/client/Client.ts index 54cf2403..015c013b 100644 --- a/src/api/resources/sites/client/Client.ts +++ b/src/api/resources/sites/client/Client.ts @@ -8,6 +8,7 @@ import * as Webflow from "../../.."; import urlJoin from "url-join"; import * as serializers from "../../../../serialization"; import * as errors from "../../../../errors"; +import { ActivityLogs } from "../resources/activityLogs/client/Client"; import { Scripts } from "../resources/scripts/client/Client"; export declare namespace Sites { @@ -40,14 +41,16 @@ export class Sites { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - "v2/sites" + "sites" ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -107,20 +110,22 @@ export class Sites { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.sites.get("string") + * await webflow.sites.get("site_id") */ public async get(siteId: string, requestOptions?: Sites.RequestOptions): Promise { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}` + `sites/${siteId}` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -180,20 +185,22 @@ export class Sites { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.sites.getCustomDomain("string") + * await webflow.sites.getCustomDomain("site_id") */ public async getCustomDomain(siteId: string, requestOptions?: Sites.RequestOptions): Promise { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/custom_domains` + `sites/${siteId}/custom_domains` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -253,7 +260,7 @@ export class Sites { * @throws {@link Webflow.TooManyRequestsError} * * @example - * await webflow.sites.publish("string", { + * await webflow.sites.publish("site_id", { * publishToWebflowSubdomain: false * }) */ @@ -265,14 +272,16 @@ export class Sites { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/publish` + `sites/${siteId}/publish` ), method: "POST", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", body: await serializers.SitesPublishRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -318,6 +327,12 @@ export class Sites { } } + protected _activityLogs: ActivityLogs | undefined; + + public get activityLogs(): ActivityLogs { + return (this._activityLogs ??= new ActivityLogs(this._options)); + } + protected _scripts: Scripts | undefined; public get scripts(): Scripts { diff --git a/src/api/resources/sites/resources/activityLogs/client/Client.ts b/src/api/resources/sites/resources/activityLogs/client/Client.ts new file mode 100644 index 00000000..802045ea --- /dev/null +++ b/src/api/resources/sites/resources/activityLogs/client/Client.ts @@ -0,0 +1,117 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as environments from "../../../../../../environments"; +import * as core from "../../../../../../core"; +import * as Webflow from "../../../../.."; +import urlJoin from "url-join"; +import * as serializers from "../../../../../../serialization"; +import * as errors from "../../../../../../errors"; + +export declare namespace ActivityLogs { + interface Options { + environment?: core.Supplier; + accessToken: core.Supplier; + } + + interface RequestOptions { + timeoutInSeconds?: number; + maxRetries?: number; + } +} + +export class ActivityLogs { + constructor(protected readonly _options: ActivityLogs.Options) {} + + /** + * Retrieve Activity Logs for a specific Site. Requires Site to be on an Enterprise plan.

Required scope | `site_activity:read` + * @throws {@link Webflow.ForbiddenError} + * @throws {@link Webflow.NotFoundError} + * @throws {@link Webflow.TooManyRequestsError} + * @throws {@link Webflow.InternalServerError} + * + * @example + * await webflow.sites.activityLogs.list("site_id", {}) + */ + public async list( + siteId: string, + request: Webflow.sites.ActivityLogsListRequest = {}, + requestOptions?: ActivityLogs.RequestOptions + ): Promise { + const { limit, offset } = request; + const _queryParams: Record = {}; + if (limit != null) { + _queryParams["limit"] = limit.toString(); + } + + if (offset != null) { + _queryParams["offset"] = offset.toString(); + } + + const _response = await core.fetcher({ + url: urlJoin( + (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, + `sites/${siteId}/activity_logs` + ), + method: "GET", + headers: { + Authorization: await this._getAuthorizationHeader(), + "X-Fern-Language": "JavaScript", + "X-Fern-SDK-Name": "webflow-api", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, + }, + contentType: "application/json", + queryParameters: _queryParams, + timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, + maxRetries: requestOptions?.maxRetries, + }); + if (_response.ok) { + return await serializers.SiteActivityLogResponse.parseOrThrow(_response.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }); + } + + if (_response.error.reason === "status-code") { + switch (_response.error.statusCode) { + case 403: + throw new Webflow.ForbiddenError(_response.error.body); + case 404: + throw new Webflow.NotFoundError(_response.error.body); + case 429: + throw new Webflow.TooManyRequestsError(_response.error.body); + case 500: + throw new Webflow.InternalServerError(_response.error.body); + default: + throw new errors.WebflowError({ + statusCode: _response.error.statusCode, + body: _response.error.body, + }); + } + } + + switch (_response.error.reason) { + case "non-json": + throw new errors.WebflowError({ + statusCode: _response.error.statusCode, + body: _response.error.rawBody, + }); + case "timeout": + throw new errors.WebflowTimeoutError(); + case "unknown": + throw new errors.WebflowError({ + message: _response.error.errorMessage, + }); + } + } + + protected async _getAuthorizationHeader() { + return `Bearer ${await core.Supplier.get(this._options.accessToken)}`; + } +} diff --git a/src/api/resources/sites/resources/activityLogs/client/index.ts b/src/api/resources/sites/resources/activityLogs/client/index.ts new file mode 100644 index 00000000..415726b7 --- /dev/null +++ b/src/api/resources/sites/resources/activityLogs/client/index.ts @@ -0,0 +1 @@ +export * from "./requests"; diff --git a/src/api/resources/sites/resources/activityLogs/client/requests/ActivityLogsListRequest.ts b/src/api/resources/sites/resources/activityLogs/client/requests/ActivityLogsListRequest.ts new file mode 100644 index 00000000..190390d5 --- /dev/null +++ b/src/api/resources/sites/resources/activityLogs/client/requests/ActivityLogsListRequest.ts @@ -0,0 +1,18 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +/** + * @example + * {} + */ +export interface ActivityLogsListRequest { + /** + * Maximum number of records to be returned (max limit: 100) + */ + limit?: number; + /** + * Offset used for pagination if the results have more than limit records + */ + offset?: number; +} diff --git a/src/api/resources/sites/resources/activityLogs/client/requests/index.ts b/src/api/resources/sites/resources/activityLogs/client/requests/index.ts new file mode 100644 index 00000000..e793c679 --- /dev/null +++ b/src/api/resources/sites/resources/activityLogs/client/requests/index.ts @@ -0,0 +1 @@ +export { ActivityLogsListRequest } from "./ActivityLogsListRequest"; diff --git a/src/api/resources/sites/resources/activityLogs/index.ts b/src/api/resources/sites/resources/activityLogs/index.ts new file mode 100644 index 00000000..5ec76921 --- /dev/null +++ b/src/api/resources/sites/resources/activityLogs/index.ts @@ -0,0 +1 @@ +export * from "./client"; diff --git a/src/api/resources/sites/resources/index.ts b/src/api/resources/sites/resources/index.ts index da4c0814..9d23d5e4 100644 --- a/src/api/resources/sites/resources/index.ts +++ b/src/api/resources/sites/resources/index.ts @@ -1,2 +1,4 @@ +export * as activityLogs from "./activityLogs"; export * as scripts from "./scripts"; +export * from "./activityLogs/client/requests"; export * from "./scripts/client/requests"; diff --git a/src/api/resources/sites/resources/scripts/client/Client.ts b/src/api/resources/sites/resources/scripts/client/Client.ts index da775e37..edeb7974 100644 --- a/src/api/resources/sites/resources/scripts/client/Client.ts +++ b/src/api/resources/sites/resources/scripts/client/Client.ts @@ -33,7 +33,7 @@ export class Scripts { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.sites.scripts.getCustomCode("string") + * await webflow.sites.scripts.getCustomCode("site_id") */ public async getCustomCode( siteId: string, @@ -42,14 +42,16 @@ export class Scripts { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/custom_code` + `sites/${siteId}/custom_code` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -109,7 +111,7 @@ export class Scripts { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.sites.scripts.upsertCustomCode("string", { + * await webflow.sites.scripts.upsertCustomCode("site_id", { * scripts: [{ * id: "cms_slider", * location: Webflow.ScriptApplyLocation.Header, @@ -117,6 +119,14 @@ export class Scripts { * attributes: { * "my-attribute": "some-value" * } + * }, { + * id: "alert", + * location: Webflow.ScriptApplyLocation.Header, + * version: "0.0.1" + * }, { + * id: "id", + * location: Webflow.ScriptApplyLocation.Header, + * version: "version" * }] * }) */ @@ -128,14 +138,16 @@ export class Scripts { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/custom_code` + `sites/${siteId}/custom_code` ), method: "PUT", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", body: await serializers.ScriptApplyList.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -196,20 +208,22 @@ export class Scripts { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.sites.scripts.deleteCustomCode("string") + * await webflow.sites.scripts.deleteCustomCode("site_id") */ public async deleteCustomCode(siteId: string, requestOptions?: Scripts.RequestOptions): Promise { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/custom_code` + `sites/${siteId}/custom_code` ), method: "DELETE", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -263,7 +277,7 @@ export class Scripts { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.sites.scripts.listCustomCodeBlocks("string", {}) + * await webflow.sites.scripts.listCustomCodeBlocks("site_id", {}) */ public async listCustomCodeBlocks( siteId: string, @@ -271,7 +285,7 @@ export class Scripts { requestOptions?: Scripts.RequestOptions ): Promise { const { offset, limit } = request; - const _queryParams: Record = {}; + const _queryParams: Record = {}; if (offset != null) { _queryParams["offset"] = offset.toString(); } @@ -283,14 +297,16 @@ export class Scripts { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/custom_code/blocks` + `sites/${siteId}/custom_code/blocks` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", queryParameters: _queryParams, diff --git a/src/api/resources/token/client/Client.ts b/src/api/resources/token/client/Client.ts index 42eed019..1ac53328 100644 --- a/src/api/resources/token/client/Client.ts +++ b/src/api/resources/token/client/Client.ts @@ -36,14 +36,16 @@ export class Token { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - "v2/token/authorized_by" + "token/authorized_by" ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -99,14 +101,16 @@ export class Token { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - "v2/token/introspect" + "token/introspect" ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, diff --git a/src/api/resources/users/client/Client.ts b/src/api/resources/users/client/Client.ts index 8326b300..1f34627b 100644 --- a/src/api/resources/users/client/Client.ts +++ b/src/api/resources/users/client/Client.ts @@ -34,9 +34,7 @@ export class Users { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.users.list("string", { - * sort: Webflow.UsersListRequestSort.CreatedOnAscending - * }) + * await webflow.users.list("site_id", {}) */ public async list( siteId: string, @@ -44,7 +42,7 @@ export class Users { requestOptions?: Users.RequestOptions ): Promise { const { offset, limit, sort } = request; - const _queryParams: Record = {}; + const _queryParams: Record = {}; if (offset != null) { _queryParams["offset"] = offset.toString(); } @@ -60,14 +58,16 @@ export class Users { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/users` + `sites/${siteId}/users` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", queryParameters: _queryParams, @@ -131,20 +131,22 @@ export class Users { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.users.get("string", "string") + * await webflow.users.get("site_id", "user_id") */ public async get(siteId: string, userId: string, requestOptions?: Users.RequestOptions): Promise { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/users/${userId}` + `sites/${siteId}/users/${userId}` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -207,20 +209,22 @@ export class Users { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.users.delete("string", "string") + * await webflow.users.delete("site_id", "user_id") */ public async delete(siteId: string, userId: string, requestOptions?: Users.RequestOptions): Promise { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/users/${userId}` + `sites/${siteId}/users/${userId}` ), method: "DELETE", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -279,41 +283,37 @@ export class Users { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.users.update("string", "string", { - * id: "6287ec36a841b25637c663df", - * lastUpdated: new Date("2016-10-24T19:41:29.156Z"), - * invitedOn: new Date("2016-10-24T19:41:29.156Z"), - * createdOn: new Date("2016-10-24T19:41:29.156Z"), - * lastLogin: new Date("2016-10-24T19:41:29.156Z"), - * status: Webflow.UserStatus.Invited, - * accessGroups: [{ - * type: Webflow.UserAccessGroupsItemType.Admin - * }], + * await webflow.users.update("site_id", "user_id", { * data: { - * data: {} - * } + * name: "Some One", + * acceptPrivacy: false, + * acceptCommunications: false + * }, + * accessGroups: ["webflowers", "platinum", "free-tier", "accessGroups"] * }) */ public async update( siteId: string, userId: string, - request: Webflow.User, + request: Webflow.UsersUpdateRequest = {}, requestOptions?: Users.RequestOptions ): Promise { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/users/${userId}` + `sites/${siteId}/users/${userId}` ), method: "PATCH", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", - body: await serializers.User.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), + body: await serializers.UsersUpdateRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, }); @@ -375,8 +375,9 @@ export class Users { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.users.invite("string", { - * email: "some.one@home.com" + * await webflow.users.invite("site_id", { + * email: "some.one@home.com", + * accessGroups: ["webflowers", "accessGroups"] * }) */ public async invite( @@ -387,14 +388,16 @@ export class Users { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/users/invite` + `sites/${siteId}/users/invite` ), method: "POST", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", body: await serializers.UsersInviteRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), diff --git a/src/api/resources/users/client/requests/UsersInviteRequest.ts b/src/api/resources/users/client/requests/UsersInviteRequest.ts index 660e4fe7..d0660a55 100644 --- a/src/api/resources/users/client/requests/UsersInviteRequest.ts +++ b/src/api/resources/users/client/requests/UsersInviteRequest.ts @@ -5,7 +5,8 @@ /** * @example * { - * email: "some.one@home.com" + * email: "some.one@home.com", + * accessGroups: ["webflowers", "accessGroups"] * } */ export interface UsersInviteRequest { diff --git a/src/api/resources/users/client/requests/UsersListRequest.ts b/src/api/resources/users/client/requests/UsersListRequest.ts index 57fc585f..aae25488 100644 --- a/src/api/resources/users/client/requests/UsersListRequest.ts +++ b/src/api/resources/users/client/requests/UsersListRequest.ts @@ -6,9 +6,7 @@ import * as Webflow from "../../../.."; /** * @example - * { - * sort: Webflow.UsersListRequestSort.CreatedOnAscending - * } + * {} */ export interface UsersListRequest { /** diff --git a/src/api/resources/users/client/requests/UsersUpdateRequest.ts b/src/api/resources/users/client/requests/UsersUpdateRequest.ts new file mode 100644 index 00000000..c03f3e03 --- /dev/null +++ b/src/api/resources/users/client/requests/UsersUpdateRequest.ts @@ -0,0 +1,25 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Webflow from "../../../.."; + +/** + * @example + * { + * data: { + * name: "Some One", + * acceptPrivacy: false, + * acceptCommunications: false + * }, + * accessGroups: ["webflowers", "platinum", "free-tier", "accessGroups"] + * } + */ +export interface UsersUpdateRequest { + data?: Webflow.UsersUpdateRequestData; + /** + * An array of access group slugs. Access groups are assigned to the user as type `admin` and the user remains in the group until removed. + * + */ + accessGroups?: string[]; +} diff --git a/src/api/resources/users/client/requests/index.ts b/src/api/resources/users/client/requests/index.ts index 7041335e..feb425c3 100644 --- a/src/api/resources/users/client/requests/index.ts +++ b/src/api/resources/users/client/requests/index.ts @@ -1,2 +1,3 @@ export { UsersListRequest } from "./UsersListRequest"; +export { UsersUpdateRequest } from "./UsersUpdateRequest"; export { UsersInviteRequest } from "./UsersInviteRequest"; diff --git a/src/api/resources/users/types/UsersUpdateRequestData.ts b/src/api/resources/users/types/UsersUpdateRequestData.ts new file mode 100644 index 00000000..a838a89f --- /dev/null +++ b/src/api/resources/users/types/UsersUpdateRequestData.ts @@ -0,0 +1,12 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +export interface UsersUpdateRequestData { + /** The name of the user */ + name?: string; + /** Boolean indicating if the user has accepted the privacy policy */ + acceptPrivacy?: boolean; + /** Boolean indicating if the user has accepted to receive communications */ + acceptCommunications?: boolean; +} diff --git a/src/api/resources/users/types/index.ts b/src/api/resources/users/types/index.ts index 06eb1302..0baf5143 100644 --- a/src/api/resources/users/types/index.ts +++ b/src/api/resources/users/types/index.ts @@ -1 +1,2 @@ export * from "./UsersListRequestSort"; +export * from "./UsersUpdateRequestData"; diff --git a/src/api/resources/webhooks/client/Client.ts b/src/api/resources/webhooks/client/Client.ts index 6749e0d7..fd3256be 100644 --- a/src/api/resources/webhooks/client/Client.ts +++ b/src/api/resources/webhooks/client/Client.ts @@ -33,20 +33,22 @@ export class Webhooks { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.webhooks.list("string") + * await webflow.webhooks.list("site_id") */ public async list(siteId: string, requestOptions?: Webhooks.RequestOptions): Promise { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/webhooks` + `sites/${siteId}/webhooks` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -106,7 +108,7 @@ export class Webhooks { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.webhooks.create("string", { + * await webflow.webhooks.create("site_id", { * triggerType: Webflow.TriggerType.FormSubmission, * url: "https://api.mydomain.com/webhook" * }) @@ -119,14 +121,16 @@ export class Webhooks { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/sites/${siteId}/webhooks` + `sites/${siteId}/webhooks` ), method: "POST", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", body: await serializers.WebhooksCreateRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -187,20 +191,22 @@ export class Webhooks { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.webhooks.get("string") + * await webflow.webhooks.get("webhook_id") */ public async get(webhookId: string, requestOptions?: Webhooks.RequestOptions): Promise { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/webhooks/${webhookId}` + `webhooks/${webhookId}` ), method: "GET", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, @@ -260,20 +266,22 @@ export class Webhooks { * @throws {@link Webflow.InternalServerError} * * @example - * await webflow.webhooks.delete("string") + * await webflow.webhooks.delete("webhook_id") */ public async delete(webhookId: string, requestOptions?: Webhooks.RequestOptions): Promise { const _response = await core.fetcher({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.WebflowEnvironment.Default, - `v2/webhooks/${webhookId}` + `webhooks/${webhookId}` ), method: "DELETE", headers: { Authorization: await this._getAuthorizationHeader(), "X-Fern-Language": "JavaScript", "X-Fern-SDK-Name": "webflow-api", - "X-Fern-SDK-Version": "2.0.0-beta", + "X-Fern-SDK-Version": "v2.1.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, }, contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, diff --git a/src/api/types/AssetFolder.ts b/src/api/types/AssetFolder.ts index 4765b4ad..6737c6b0 100644 --- a/src/api/types/AssetFolder.ts +++ b/src/api/types/AssetFolder.ts @@ -2,6 +2,9 @@ * This file was auto-generated by Fern from our API Definition. */ +/** + * Asset Folder details + */ export interface AssetFolder { /** User visible name for the Asset Folder */ displayName?: string; diff --git a/src/api/types/AssetFolderList.ts b/src/api/types/AssetFolderList.ts index c9f1239e..288dc0cf 100644 --- a/src/api/types/AssetFolderList.ts +++ b/src/api/types/AssetFolderList.ts @@ -8,6 +8,7 @@ import * as Webflow from ".."; * The Asset Folders object */ export interface AssetFolderList { + /** A list of Asset folders */ + assetFolders?: Webflow.AssetFolder[]; pagination?: Webflow.Pagination; - pages?: Webflow.AssetFolder[]; } diff --git a/src/api/types/CollectionItem.ts b/src/api/types/CollectionItem.ts index a763a155..52f79cbe 100644 --- a/src/api/types/CollectionItem.ts +++ b/src/api/types/CollectionItem.ts @@ -10,6 +10,8 @@ import * as Webflow from ".."; export interface CollectionItem { /** Unique identifier for the Item */ id: string; + /** Identifier for the locale of the CMS item */ + cmsLocaleId?: string; /** The date the item was last published */ lastPublished?: string; /** The date the item was last updated */ diff --git a/src/api/types/Dom.ts b/src/api/types/Dom.ts new file mode 100644 index 00000000..c9e7392e --- /dev/null +++ b/src/api/types/Dom.ts @@ -0,0 +1,15 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Webflow from ".."; + +/** + * The DOM (Document Object Model) schema represents the content structure of a web page. It captures various content nodes, such as text and images, along with their associated attributes. Each node has a unique identifier and can be of different types like text or image. The schema also provides pagination details for scenarios where the content nodes are too many to be fetched in a single request. + */ +export interface Dom { + /** Page ID */ + pageId?: string; + nodes?: Webflow.Node[]; + pagination?: Webflow.Pagination; +} diff --git a/src/api/types/ImageNode.ts b/src/api/types/ImageNode.ts new file mode 100644 index 00000000..11ff84db --- /dev/null +++ b/src/api/types/ImageNode.ts @@ -0,0 +1,11 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +/** + * Represents an image within the DOM. It contains details about the image, such as its alternative text (alt) for accessibility and an asset identifier for fetching the actual image resource. Additional attributes can be associated with the image for styling or other purposes. + */ +export interface ImageNode { + alt?: string; + assetId?: string; +} diff --git a/src/api/types/InvalidScopes.ts b/src/api/types/InvalidScopes.ts new file mode 100644 index 00000000..8504a5c9 --- /dev/null +++ b/src/api/types/InvalidScopes.ts @@ -0,0 +1,11 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +export interface InvalidScopes { + status?: number; + message?: string; + publicErrorCode?: string; + externalReference?: string; + details?: string[]; +} diff --git a/src/api/types/Node.ts b/src/api/types/Node.ts new file mode 100644 index 00000000..dc03354f --- /dev/null +++ b/src/api/types/Node.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Webflow from ".."; + +/** + * A generic representation of a content element within the Document Object Model (DOM). Each node has a unique identifier and a specific type that determines its content structure and attributes. + */ +export interface Node { + /** Node UUID */ + id?: string; + type?: Webflow.NodeType; + text?: Webflow.TextNode; + image?: Webflow.ImageNode; + attributes?: Record; +} diff --git a/src/api/types/NodeType.ts b/src/api/types/NodeType.ts new file mode 100644 index 00000000..30b5f886 --- /dev/null +++ b/src/api/types/NodeType.ts @@ -0,0 +1,10 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +export type NodeType = "text" | "image"; + +export const NodeType = { + Text: "text", + Image: "image", +} as const; diff --git a/src/api/types/NotEnterprisePlanSite.ts b/src/api/types/NotEnterprisePlanSite.ts new file mode 100644 index 00000000..dd4bcdef --- /dev/null +++ b/src/api/types/NotEnterprisePlanSite.ts @@ -0,0 +1,16 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Webflow from ".."; + +export interface NotEnterprisePlanSite { + code?: "missing_scopes"; + type?: string; + /** Error message */ + message?: string; + /** Link to more information */ + externalReference?: string; + /** Array of errors */ + details?: Webflow.ErrorDetailsItem[]; +} diff --git a/src/api/types/OauthScope.ts b/src/api/types/OauthScope.ts index 607e22b4..242fbb23 100644 --- a/src/api/types/OauthScope.ts +++ b/src/api/types/OauthScope.ts @@ -35,7 +35,10 @@ export type OauthScope = | "ecommerce:read" /** * edit ecommerce data */ - | "ecommerce:write"; + | "ecommerce:write" + /** + * read site activity logs */ + | "site_activity:read"; export const OauthScope = { AuthorizedUserRead: "authorized_user:read", @@ -49,4 +52,5 @@ export const OauthScope = { UsersWrite: "users:write", EcommerceRead: "ecommerce:read", EcommerceWrite: "ecommerce:write", + SiteActivityRead: "site_activity:read", } as const; diff --git a/src/api/types/ProductAndSkUs.ts b/src/api/types/ProductAndSkUs.ts index 1eb1d965..8d0ba342 100644 --- a/src/api/types/ProductAndSkUs.ts +++ b/src/api/types/ProductAndSkUs.ts @@ -9,5 +9,6 @@ import * as Webflow from ".."; */ export interface ProductAndSkUs { product?: Webflow.Product; + /** A list of SKU Objects */ skus?: Webflow.Sku[]; } diff --git a/src/api/types/ProductFieldData.ts b/src/api/types/ProductFieldData.ts index a8aac632..00ee9a7c 100644 --- a/src/api/types/ProductFieldData.ts +++ b/src/api/types/ProductFieldData.ts @@ -6,9 +6,23 @@ import * as Webflow from ".."; export interface ProductFieldData { /** Name of the Product */ - name?: string; + name: string; /** URL structure of the Product in your site. */ - slug?: string; - /** Variant/Options types to include in SKUs */ + slug: string; + /** A description of your product */ + description?: string; + /** Boolean determining if the Product is shippable */ + shippable?: boolean; + /** Variant types to include in SKUs */ skuProperties?: Webflow.SkuPropertyList[]; + /** The categories your product belongs to. */ + categories?: string[]; + /** Product tax class */ + taxCategory?: Webflow.ProductFieldDataTaxCategory; + /** The default SKU associated with this product. */ + defaultSku?: string; + /** Product types. Enums reflect the following values in order: Physical, Digital, Service, Advanced" */ + ecProductType?: Webflow.ProductFieldDataEcProductType; + /** Custom fields for your product. */ + additionalProperties?: string; } diff --git a/src/api/types/ProductFieldDataEcProductType.ts b/src/api/types/ProductFieldDataEcProductType.ts new file mode 100644 index 00000000..a99ad2ef --- /dev/null +++ b/src/api/types/ProductFieldDataEcProductType.ts @@ -0,0 +1,19 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +/** + * Product types. Enums reflect the following values in order: Physical, Digital, Service, Advanced" + */ +export type ProductFieldDataEcProductType = + | "ff42fee0113744f693a764e3431a9cc2" + | "f22027db68002190aef89a4a2b7ac8a1" + | "c599e43b1a1c34d5a323aedf75d3adf6" + | "b6ccc1830db4b1babeb06a9ac5f6dd76"; + +export const ProductFieldDataEcProductType = { + Ff42Fee0113744F693A764E3431A9Cc2: "ff42fee0113744f693a764e3431a9cc2", + F22027Db68002190Aef89A4A2B7Ac8A1: "f22027db68002190aef89a4a2b7ac8a1", + C599E43B1A1C34D5A323Aedf75D3Adf6: "c599e43b1a1c34d5a323aedf75d3adf6", + B6Ccc1830Db4B1Babeb06A9Ac5F6Dd76: "b6ccc1830db4b1babeb06a9ac5f6dd76", +} as const; diff --git a/src/api/types/ProductFieldDataTaxCategory.ts b/src/api/types/ProductFieldDataTaxCategory.ts new file mode 100644 index 00000000..d59ca5df --- /dev/null +++ b/src/api/types/ProductFieldDataTaxCategory.ts @@ -0,0 +1,69 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +/** + * Product tax class + */ +export type ProductFieldDataTaxCategory = + | "standard-taxable" + | "standard-exempt" + | "books-religious" + | "books-textbook" + | "clothing" + | "clothing-swimwear" + | "digital-goods" + | "digital-service" + | "drugs-non-prescription" + | "drugs-prescription" + | "food-bottled-water" + | "food-candy" + | "food-groceries" + | "food-prepared" + | "food-soda" + | "food-supplements" + | "magazine-individual" + | "magazine-subscription" + | "service-admission" + | "service-advertising" + | "service-dry-cleaning" + | "service-hairdressing" + | "service-installation" + | "service-miscellaneous" + | "service-parking" + | "service-printing" + | "service-professional" + | "service-repair" + | "service-training"; + +export const ProductFieldDataTaxCategory = { + StandardTaxable: "standard-taxable", + StandardExempt: "standard-exempt", + BooksReligious: "books-religious", + BooksTextbook: "books-textbook", + Clothing: "clothing", + ClothingSwimwear: "clothing-swimwear", + DigitalGoods: "digital-goods", + DigitalService: "digital-service", + DrugsNonPrescription: "drugs-non-prescription", + DrugsPrescription: "drugs-prescription", + FoodBottledWater: "food-bottled-water", + FoodCandy: "food-candy", + FoodGroceries: "food-groceries", + FoodPrepared: "food-prepared", + FoodSoda: "food-soda", + FoodSupplements: "food-supplements", + MagazineIndividual: "magazine-individual", + MagazineSubscription: "magazine-subscription", + ServiceAdmission: "service-admission", + ServiceAdvertising: "service-advertising", + ServiceDryCleaning: "service-dry-cleaning", + ServiceHairdressing: "service-hairdressing", + ServiceInstallation: "service-installation", + ServiceMiscellaneous: "service-miscellaneous", + ServiceParking: "service-parking", + ServicePrinting: "service-printing", + ServiceProfessional: "service-professional", + ServiceRepair: "service-repair", + ServiceTraining: "service-training", +} as const; diff --git a/src/api/types/PublishStatus.ts b/src/api/types/PublishStatus.ts index e699101b..7b488fc3 100644 --- a/src/api/types/PublishStatus.ts +++ b/src/api/types/PublishStatus.ts @@ -3,7 +3,7 @@ */ /** - * Publish target + * Indicate whether your Product should be set as "staging" or "live" */ export type PublishStatus = "staging" | "live"; diff --git a/src/api/types/SiteActivityLogItem.ts b/src/api/types/SiteActivityLogItem.ts index 550a0ce0..e553adae 100644 --- a/src/api/types/SiteActivityLogItem.ts +++ b/src/api/types/SiteActivityLogItem.ts @@ -10,7 +10,7 @@ export interface SiteActivityLogItem { lastUpdated?: Date; event?: string; resourceOperation?: Webflow.SiteActivityLogItemResourceOperation; - user?: string; + user?: Webflow.SiteActivityLogItemUser; resourceId?: string; resourceName?: string; newValue?: string; diff --git a/src/api/types/SiteActivityLogItemUser.ts b/src/api/types/SiteActivityLogItemUser.ts new file mode 100644 index 00000000..0645923a --- /dev/null +++ b/src/api/types/SiteActivityLogItemUser.ts @@ -0,0 +1,8 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +export interface SiteActivityLogItemUser { + id?: string; + displayName?: string; +} diff --git a/src/api/types/Sku.ts b/src/api/types/Sku.ts index 5ba71dff..4e9c15d3 100644 --- a/src/api/types/Sku.ts +++ b/src/api/types/Sku.ts @@ -16,5 +16,6 @@ export interface Sku { lastUpdated?: Date; /** The date the Product was created */ createdOn?: Date; + /** Standard and Custom fields for a SKU */ fieldData?: Webflow.SkuFieldData; } diff --git a/src/api/types/SkuFieldData.ts b/src/api/types/SkuFieldData.ts index 0128150a..de7a257b 100644 --- a/src/api/types/SkuFieldData.ts +++ b/src/api/types/SkuFieldData.ts @@ -4,12 +4,23 @@ import * as Webflow from ".."; +/** + * Standard and Custom fields for a SKU + */ export interface SkuFieldData { + skuValues?: Webflow.SkuValueList; /** Name of the Product */ - name?: string; + name: string; /** URL structure of the Product in your site. */ - slug?: string; + slug: string; /** price of SKU */ - price?: Webflow.SkuFieldDataPrice; - skuValues?: Webflow.SkuValueList; + price: Webflow.SkuFieldDataPrice; + /** comparison price of SKU */ + compareAtPrice?: Webflow.SkuFieldDataCompareAtPrice; + ecSkuBillingMethod?: Webflow.SkuFieldDataEcSkuBillingMethod; + ecSkuSubscriptionPlan?: Webflow.SkuFieldDataEcSkuSubscriptionPlan; + /** A boolean indicating whether inventory for this product should be tracked. */ + trackInventory?: boolean; + /** Quantity of SKU that will be tracked as items are ordered. */ + quantity?: number; } diff --git a/src/api/types/SkuFieldDataCompareAtPrice.ts b/src/api/types/SkuFieldDataCompareAtPrice.ts new file mode 100644 index 00000000..5de20c20 --- /dev/null +++ b/src/api/types/SkuFieldDataCompareAtPrice.ts @@ -0,0 +1,13 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +/** + * comparison price of SKU + */ +export interface SkuFieldDataCompareAtPrice { + /** Price of SKU */ + value?: number; + /** Currency of Item */ + unit?: string; +} diff --git a/src/api/types/SkuFieldDataEcSkuBillingMethod.ts b/src/api/types/SkuFieldDataEcSkuBillingMethod.ts new file mode 100644 index 00000000..3f89429a --- /dev/null +++ b/src/api/types/SkuFieldDataEcSkuBillingMethod.ts @@ -0,0 +1,10 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +export type SkuFieldDataEcSkuBillingMethod = "one-time" | "subscription"; + +export const SkuFieldDataEcSkuBillingMethod = { + OneTime: "one-time", + Subscription: "subscription", +} as const; diff --git a/src/api/types/SkuFieldDataEcSkuSubscriptionPlan.ts b/src/api/types/SkuFieldDataEcSkuSubscriptionPlan.ts new file mode 100644 index 00000000..7cc124dd --- /dev/null +++ b/src/api/types/SkuFieldDataEcSkuSubscriptionPlan.ts @@ -0,0 +1,14 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Webflow from ".."; + +export interface SkuFieldDataEcSkuSubscriptionPlan { + /** Interval of subscription renewal */ + interval?: Webflow.SkuFieldDataEcSkuSubscriptionPlanInterval; + /** Frequncy of billing within interval */ + frequency?: number; + /** Number of days of a trial */ + trial?: number; +} diff --git a/src/api/types/SkuFieldDataEcSkuSubscriptionPlanInterval.ts b/src/api/types/SkuFieldDataEcSkuSubscriptionPlanInterval.ts new file mode 100644 index 00000000..46896ac4 --- /dev/null +++ b/src/api/types/SkuFieldDataEcSkuSubscriptionPlanInterval.ts @@ -0,0 +1,15 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +/** + * Interval of subscription renewal + */ +export type SkuFieldDataEcSkuSubscriptionPlanInterval = "day" | "week" | "month" | "year"; + +export const SkuFieldDataEcSkuSubscriptionPlanInterval = { + Day: "day", + Week: "week", + Month: "month", + Year: "year", +} as const; diff --git a/src/api/types/SkuPropertyList.ts b/src/api/types/SkuPropertyList.ts index 8aa1d0ad..d1e47461 100644 --- a/src/api/types/SkuPropertyList.ts +++ b/src/api/types/SkuPropertyList.ts @@ -8,10 +8,10 @@ import * as Webflow from ".."; * A variant/option type for a SKU */ export interface SkuPropertyList { - /** Unique identifier for a collection of Product options/Variants */ - id?: string; - /** Name of the collection of Product options/Variants */ - name?: string; - /** The individual Product variants/Options that are contained within the collection */ - enum?: Webflow.SkuPropertyListEnumItem[]; + /** Unique identifier for a collection of Product Variants */ + id: string; + /** Name of the collection of Product Variants */ + name: string; + /** The individual Product variants that are contained within the collection */ + enum: Webflow.SkuPropertyListEnumItem[]; } diff --git a/src/api/types/SkuPropertyListEnumItem.ts b/src/api/types/SkuPropertyListEnumItem.ts index b4843f2b..037188ff 100644 --- a/src/api/types/SkuPropertyListEnumItem.ts +++ b/src/api/types/SkuPropertyListEnumItem.ts @@ -7,9 +7,9 @@ */ export interface SkuPropertyListEnumItem { /** Unique identifier for a Product variant/Option */ - id?: string; + id: string; /** Name of the Product variant/Option */ - name?: string; + name: string; /** Slug for the Product variant/Option in the Site URL structure */ - slug?: string; + slug: string; } diff --git a/src/api/types/TextNode.ts b/src/api/types/TextNode.ts new file mode 100644 index 00000000..d40e72c5 --- /dev/null +++ b/src/api/types/TextNode.ts @@ -0,0 +1,11 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +/** + * Represents textual content within the DOM. It contains both the raw text and its HTML representation, allowing for flexibility in rendering and processing. Additional attributes can be associated with the text for styling or other purposes. + */ +export interface TextNode { + html?: string; + text?: string; +} diff --git a/src/api/types/index.ts b/src/api/types/index.ts index 29b5c8ca..f8f20244 100644 --- a/src/api/types/index.ts +++ b/src/api/types/index.ts @@ -5,6 +5,7 @@ export * from "./AuthorizationAuthorization"; export * from "./Authorization"; export * from "./Pagination"; export * from "./PublishStatus"; +export * from "./InvalidScopes"; export * from "./CustomCodeResponse"; export * from "./RegisteredScriptList"; export * from "./ScriptApplyList"; @@ -23,6 +24,11 @@ export * from "./PageDeletedWebhook"; export * from "./PageSeoGraphDataSeo"; export * from "./PageSeoGraphDataOpenGraph"; export * from "./PageSeoGraphData"; +export * from "./Dom"; +export * from "./NodeType"; +export * from "./Node"; +export * from "./TextNode"; +export * from "./ImageNode"; export * from "./CollectionList"; export * from "./CollectionListArrayItem"; export * from "./Collection"; @@ -44,6 +50,7 @@ export * from "./SitePublishPayload"; export * from "./SitePublish"; export * from "./SiteActivityLogResponse"; export * from "./SiteActivityLogItemResourceOperation"; +export * from "./SiteActivityLogItemUser"; export * from "./SiteActivityLogItem"; export * from "./Assets"; export * from "./Asset"; @@ -82,9 +89,16 @@ export * from "./UsersNotEnabled"; export * from "./DuplicateUserEmail"; export * from "./UserLimitReached"; export * from "./MissingScopes"; +export * from "./NotEnterprisePlanSite"; +export * from "./ProductFieldDataTaxCategory"; +export * from "./ProductFieldDataEcProductType"; export * from "./ProductFieldData"; export * from "./Product"; export * from "./SkuFieldDataPrice"; +export * from "./SkuFieldDataCompareAtPrice"; +export * from "./SkuFieldDataEcSkuBillingMethod"; +export * from "./SkuFieldDataEcSkuSubscriptionPlanInterval"; +export * from "./SkuFieldDataEcSkuSubscriptionPlan"; export * from "./SkuFieldData"; export * from "./Sku"; export * from "./ProductAndSkUs"; diff --git a/src/core/fetcher/Fetcher.ts b/src/core/fetcher/Fetcher.ts index 19de5d47..5348ac9a 100644 --- a/src/core/fetcher/Fetcher.ts +++ b/src/core/fetcher/Fetcher.ts @@ -1,5 +1,6 @@ import { default as FormData } from "form-data"; import qs from "qs"; +import { RUNTIME } from "../runtime"; import { APIResponse } from "./APIResponse"; export type FetchFunction = (args: Fetcher.Args) => Promise>; @@ -10,7 +11,7 @@ export declare namespace Fetcher { method: string; contentType?: string; headers?: Record; - queryParameters?: Record; + queryParameters?: Record; body?: unknown; timeoutMs?: number; maxRetries?: number; @@ -69,11 +70,17 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { const controller = new AbortController(); diff --git a/src/core/index.ts b/src/core/index.ts index e2eb66e8..2d20c46f 100644 --- a/src/core/index.ts +++ b/src/core/index.ts @@ -1,3 +1,4 @@ export * from "./fetcher"; export * from "./auth"; +export * from "./runtime"; export * as serialization from "./schemas"; diff --git a/src/core/runtime/index.ts b/src/core/runtime/index.ts new file mode 100644 index 00000000..5c76dbb1 --- /dev/null +++ b/src/core/runtime/index.ts @@ -0,0 +1 @@ +export { RUNTIME } from "./runtime"; diff --git a/src/core/runtime/runtime.ts b/src/core/runtime/runtime.ts new file mode 100644 index 00000000..f0692ab3 --- /dev/null +++ b/src/core/runtime/runtime.ts @@ -0,0 +1,112 @@ +interface DenoGlobal { + version: { + deno: string; + }; +} + +interface BunGlobal { + version: string; +} + +declare const Deno: DenoGlobal; +declare const Bun: BunGlobal; + +/** + * A constant that indicates whether the environment the code is running is a Web Browser. + */ +const isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined"; + +/** + * A constant that indicates whether the environment the code is running is a Web Worker. + */ +const isWebWorker = + typeof self === "object" && + // @ts-ignore + typeof self?.importScripts === "function" && + (self.constructor?.name === "DedicatedWorkerGlobalScope" || + self.constructor?.name === "ServiceWorkerGlobalScope" || + self.constructor?.name === "SharedWorkerGlobalScope"); + +/** + * A constant that indicates whether the environment the code is running is Deno. + */ +const isDeno = + typeof Deno !== "undefined" && typeof Deno.version !== "undefined" && typeof Deno.version.deno !== "undefined"; + +/** + * A constant that indicates whether the environment the code is running is Bun.sh. + */ +const isBun = typeof Bun !== "undefined" && typeof Bun.version !== "undefined"; + +/** + * A constant that indicates whether the environment the code is running is Node.JS. + */ +const isNode = + typeof process !== "undefined" && + Boolean(process.version) && + Boolean(process.versions?.node) && + // Deno spoofs process.versions.node, see https://deno.land/std@0.177.0/node/process.ts?s=versions + !isDeno && + !isBun; + +/** + * A constant that indicates whether the environment the code is running is in React-Native. + * https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Core/setUpNavigator.js + */ +const isReactNative = typeof navigator !== "undefined" && navigator?.product === "ReactNative"; + +/** + * A constant that indicates which environment and version the SDK is running in. + */ +export const RUNTIME: Runtime = evaluateRuntime(); + +export interface Runtime { + type: "browser" | "web-worker" | "deno" | "bun" | "node" | "react-native" | "unknown"; + version?: string; +} + +function evaluateRuntime(): Runtime { + if (isBrowser) { + return { + type: "browser", + version: window.navigator.userAgent, + }; + } + + if (isWebWorker) { + return { + type: "web-worker", + }; + } + + if (isDeno) { + return { + type: "deno", + version: Deno.version.deno, + }; + } + + if (isBun) { + return { + type: "bun", + version: Bun.version, + }; + } + + if (isNode) { + return { + type: "node", + version: process.versions.node, + }; + } + + if (isReactNative) { + return { + type: "react-native", + }; + } + + return { + type: "unknown", + }; +} diff --git a/src/environments.ts b/src/environments.ts index 08bb9f65..fcea4017 100644 --- a/src/environments.ts +++ b/src/environments.ts @@ -3,7 +3,7 @@ */ export const WebflowEnvironment = { - Default: "https://api.webflow.com", + Default: "https://api.webflow.com/v2", } as const; export type WebflowEnvironment = typeof WebflowEnvironment.Default; diff --git a/src/serialization/resources/assets/client/requests/AssetsUpdateRequest.ts b/src/serialization/resources/assets/client/requests/AssetsUpdateRequest.ts new file mode 100644 index 00000000..7236ad96 --- /dev/null +++ b/src/serialization/resources/assets/client/requests/AssetsUpdateRequest.ts @@ -0,0 +1,20 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../.."; +import * as Webflow from "../../../../../api"; +import * as core from "../../../../../core"; + +export const AssetsUpdateRequest: core.serialization.Schema< + serializers.AssetsUpdateRequest.Raw, + Webflow.AssetsUpdateRequest +> = core.serialization.object({ + displayName: core.serialization.string(), +}); + +export declare namespace AssetsUpdateRequest { + interface Raw { + displayName: string; + } +} diff --git a/src/serialization/resources/assets/client/requests/index.ts b/src/serialization/resources/assets/client/requests/index.ts index 1fd1f947..54ebd265 100644 --- a/src/serialization/resources/assets/client/requests/index.ts +++ b/src/serialization/resources/assets/client/requests/index.ts @@ -1,2 +1,3 @@ export { AssetsCreateRequest } from "./AssetsCreateRequest"; +export { AssetsUpdateRequest } from "./AssetsUpdateRequest"; export { AssetsCreateFolderRequest } from "./AssetsCreateFolderRequest"; diff --git a/src/serialization/resources/collections/resources/fields/client/requests/FieldCreate.ts b/src/serialization/resources/collections/resources/fields/client/requests/FieldCreate.ts new file mode 100644 index 00000000..7e58336b --- /dev/null +++ b/src/serialization/resources/collections/resources/fields/client/requests/FieldCreate.ts @@ -0,0 +1,26 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../../../.."; +import * as Webflow from "../../../../../../../api"; +import * as core from "../../../../../../../core"; + +export const FieldCreate: core.serialization.Schema< + serializers.collections.FieldCreate.Raw, + Webflow.collections.FieldCreate +> = core.serialization.object({ + isRequired: core.serialization.boolean().optional(), + type: core.serialization.lazy(async () => (await import("../../../../../..")).collections.FieldCreateType), + displayName: core.serialization.string(), + helpText: core.serialization.string().optional(), +}); + +export declare namespace FieldCreate { + interface Raw { + isRequired?: boolean | null; + type: serializers.collections.FieldCreateType.Raw; + displayName: string; + helpText?: string | null; + } +} diff --git a/src/serialization/resources/collections/resources/fields/client/requests/index.ts b/src/serialization/resources/collections/resources/fields/client/requests/index.ts index 6eda1252..93f46db9 100644 --- a/src/serialization/resources/collections/resources/fields/client/requests/index.ts +++ b/src/serialization/resources/collections/resources/fields/client/requests/index.ts @@ -1 +1,2 @@ +export { FieldCreate } from "./FieldCreate"; export { FieldUpdate } from "./FieldUpdate"; diff --git a/src/serialization/resources/collections/resources/fields/index.ts b/src/serialization/resources/collections/resources/fields/index.ts index 5ec76921..c9240f83 100644 --- a/src/serialization/resources/collections/resources/fields/index.ts +++ b/src/serialization/resources/collections/resources/fields/index.ts @@ -1 +1,2 @@ +export * from "./types"; export * from "./client"; diff --git a/src/serialization/resources/collections/resources/fields/types/FieldCreateType.ts b/src/serialization/resources/collections/resources/fields/types/FieldCreateType.ts new file mode 100644 index 00000000..6d6ff640 --- /dev/null +++ b/src/serialization/resources/collections/resources/fields/types/FieldCreateType.ts @@ -0,0 +1,43 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../../.."; +import * as Webflow from "../../../../../../api"; +import * as core from "../../../../../../core"; + +export const FieldCreateType: core.serialization.Schema< + serializers.collections.FieldCreateType.Raw, + Webflow.collections.FieldCreateType +> = core.serialization.enum_([ + "PlainText", + "RichText", + "Image", + "MultiImage", + "Video", + "Link", + "Email", + "Phone", + "Number", + "DateTime", + "Boolean", + "Color", + "File", +]); + +export declare namespace FieldCreateType { + type Raw = + | "PlainText" + | "RichText" + | "Image" + | "MultiImage" + | "Video" + | "Link" + | "Email" + | "Phone" + | "Number" + | "DateTime" + | "Boolean" + | "Color" + | "File"; +} diff --git a/src/serialization/resources/collections/resources/fields/types/index.ts b/src/serialization/resources/collections/resources/fields/types/index.ts new file mode 100644 index 00000000..56f55977 --- /dev/null +++ b/src/serialization/resources/collections/resources/fields/types/index.ts @@ -0,0 +1 @@ +export * from "./FieldCreateType"; diff --git a/src/serialization/resources/collections/resources/index.ts b/src/serialization/resources/collections/resources/index.ts index 2452d24a..3739438e 100644 --- a/src/serialization/resources/collections/resources/index.ts +++ b/src/serialization/resources/collections/resources/index.ts @@ -1,5 +1,6 @@ +export * as fields from "./fields"; +export * from "./fields/types"; export * as items from "./items"; export * from "./items/types"; -export * as fields from "./fields"; export * from "./fields/client/requests"; export * from "./items/client/requests"; diff --git a/src/serialization/resources/index.ts b/src/serialization/resources/index.ts index cf283290..6d30080f 100644 --- a/src/serialization/resources/index.ts +++ b/src/serialization/resources/index.ts @@ -1,4 +1,6 @@ export * as collections from "./collections"; +export * as pages from "./pages"; +export * from "./pages/types"; export * as users from "./users"; export * from "./users/types"; export * as accessGroups from "./accessGroups"; @@ -14,6 +16,7 @@ export * as assets from "./assets"; export * as sites from "./sites"; export * from "./sites/client/requests"; export * from "./collections/client/requests"; +export * from "./pages/client/requests"; export * as scripts from "./scripts"; export * from "./scripts/client/requests"; export * from "./webhooks/client/requests"; diff --git a/src/serialization/resources/pages/client/index.ts b/src/serialization/resources/pages/client/index.ts new file mode 100644 index 00000000..415726b7 --- /dev/null +++ b/src/serialization/resources/pages/client/index.ts @@ -0,0 +1 @@ +export * from "./requests"; diff --git a/src/serialization/resources/pages/client/requests/DomWrite.ts b/src/serialization/resources/pages/client/requests/DomWrite.ts new file mode 100644 index 00000000..53bff243 --- /dev/null +++ b/src/serialization/resources/pages/client/requests/DomWrite.ts @@ -0,0 +1,22 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../.."; +import * as Webflow from "../../../../../api"; +import * as core from "../../../../../core"; + +export const DomWrite: core.serialization.Schema< + serializers.DomWrite.Raw, + Omit +> = core.serialization.object({ + nodes: core.serialization.list( + core.serialization.lazyObject(async () => (await import("../../../..")).DomWriteNodesItem) + ), +}); + +export declare namespace DomWrite { + interface Raw { + nodes: serializers.DomWriteNodesItem.Raw[]; + } +} diff --git a/src/serialization/resources/pages/client/requests/index.ts b/src/serialization/resources/pages/client/requests/index.ts new file mode 100644 index 00000000..a4b8aef6 --- /dev/null +++ b/src/serialization/resources/pages/client/requests/index.ts @@ -0,0 +1 @@ +export { DomWrite } from "./DomWrite"; diff --git a/src/serialization/resources/pages/index.ts b/src/serialization/resources/pages/index.ts new file mode 100644 index 00000000..c9240f83 --- /dev/null +++ b/src/serialization/resources/pages/index.ts @@ -0,0 +1,2 @@ +export * from "./types"; +export * from "./client"; diff --git a/src/serialization/resources/pages/types/DomWriteNodesItem.ts b/src/serialization/resources/pages/types/DomWriteNodesItem.ts new file mode 100644 index 00000000..4d3dbc91 --- /dev/null +++ b/src/serialization/resources/pages/types/DomWriteNodesItem.ts @@ -0,0 +1,22 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../.."; +import * as Webflow from "../../../../api"; +import * as core from "../../../../core"; + +export const DomWriteNodesItem: core.serialization.ObjectSchema< + serializers.DomWriteNodesItem.Raw, + Webflow.DomWriteNodesItem +> = core.serialization.object({ + nodeId: core.serialization.string(), + text: core.serialization.string(), +}); + +export declare namespace DomWriteNodesItem { + interface Raw { + nodeId: string; + text: string; + } +} diff --git a/src/serialization/resources/pages/types/index.ts b/src/serialization/resources/pages/types/index.ts new file mode 100644 index 00000000..a2ba6486 --- /dev/null +++ b/src/serialization/resources/pages/types/index.ts @@ -0,0 +1 @@ +export * from "./DomWriteNodesItem"; diff --git a/src/serialization/resources/products/client/requests/ProductSkuCreate.ts b/src/serialization/resources/products/client/requests/ProductSkuCreate.ts new file mode 100644 index 00000000..22208d48 --- /dev/null +++ b/src/serialization/resources/products/client/requests/ProductSkuCreate.ts @@ -0,0 +1,24 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../.."; +import * as Webflow from "../../../../../api"; +import * as core from "../../../../../core"; + +export const ProductSkuCreate: core.serialization.Schema = + core.serialization.object({ + publishStatus: core.serialization.lazy(async () => (await import("../../../..")).PublishStatus).optional(), + product: core.serialization + .lazyObject(async () => (await import("../../../..")).ProductSkuCreateProduct) + .optional(), + sku: core.serialization.lazyObject(async () => (await import("../../../..")).ProductSkuCreateSku).optional(), + }); + +export declare namespace ProductSkuCreate { + interface Raw { + publishStatus?: serializers.PublishStatus.Raw | null; + product?: serializers.ProductSkuCreateProduct.Raw | null; + sku?: serializers.ProductSkuCreateSku.Raw | null; + } +} diff --git a/src/serialization/resources/products/client/requests/ProductsCreateRequest.ts b/src/serialization/resources/products/client/requests/ProductsCreateRequest.ts deleted file mode 100644 index 93c328f9..00000000 --- a/src/serialization/resources/products/client/requests/ProductsCreateRequest.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -import * as serializers from "../../../.."; -import * as Webflow from "../../../../../api"; -import * as core from "../../../../../core"; - -export const ProductsCreateRequest: core.serialization.Schema< - serializers.ProductsCreateRequest.Raw, - Webflow.ProductsCreateRequest -> = core.serialization.object({ - publishStatus: core.serialization.lazy(async () => (await import("../../../..")).PublishStatus).optional(), - product: core.serialization.lazyObject(async () => (await import("../../../..")).Product), - sku: core.serialization.lazyObject(async () => (await import("../../../..")).Sku), -}); - -export declare namespace ProductsCreateRequest { - interface Raw { - publishStatus?: serializers.PublishStatus.Raw | null; - product: serializers.Product.Raw; - sku: serializers.Sku.Raw; - } -} diff --git a/src/serialization/resources/products/client/requests/index.ts b/src/serialization/resources/products/client/requests/index.ts index 190942ae..f093ffef 100644 --- a/src/serialization/resources/products/client/requests/index.ts +++ b/src/serialization/resources/products/client/requests/index.ts @@ -1,4 +1,4 @@ -export { ProductsCreateRequest } from "./ProductsCreateRequest"; +export { ProductSkuCreate } from "./ProductSkuCreate"; export { ProductsUpdateRequest } from "./ProductsUpdateRequest"; export { ProductsCreateSkuRequest } from "./ProductsCreateSkuRequest"; export { ProductsUpdateSkuRequest } from "./ProductsUpdateSkuRequest"; diff --git a/src/serialization/resources/products/types/ProductSkuCreateProduct.ts b/src/serialization/resources/products/types/ProductSkuCreateProduct.ts new file mode 100644 index 00000000..74a3f3f2 --- /dev/null +++ b/src/serialization/resources/products/types/ProductSkuCreateProduct.ts @@ -0,0 +1,34 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../.."; +import * as Webflow from "../../../../api"; +import * as core from "../../../../core"; + +export const ProductSkuCreateProduct: core.serialization.ObjectSchema< + serializers.ProductSkuCreateProduct.Raw, + Webflow.ProductSkuCreateProduct +> = core.serialization.object({ + id: core.serialization.string().optional(), + lastPublished: core.serialization.date().optional(), + lastUpdated: core.serialization.date().optional(), + createdOn: core.serialization.date().optional(), + isArchived: core.serialization.boolean().optional(), + isDraft: core.serialization.boolean().optional(), + fieldData: core.serialization + .lazyObject(async () => (await import("../../..")).ProductSkuCreateProductFieldData) + .optional(), +}); + +export declare namespace ProductSkuCreateProduct { + interface Raw { + id?: string | null; + lastPublished?: string | null; + lastUpdated?: string | null; + createdOn?: string | null; + isArchived?: boolean | null; + isDraft?: boolean | null; + fieldData?: serializers.ProductSkuCreateProductFieldData.Raw | null; + } +} diff --git a/src/serialization/resources/products/types/ProductSkuCreateProductFieldData.ts b/src/serialization/resources/products/types/ProductSkuCreateProductFieldData.ts new file mode 100644 index 00000000..bcd6e20f --- /dev/null +++ b/src/serialization/resources/products/types/ProductSkuCreateProductFieldData.ts @@ -0,0 +1,51 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../.."; +import * as Webflow from "../../../../api"; +import * as core from "../../../../core"; + +export const ProductSkuCreateProductFieldData: core.serialization.ObjectSchema< + serializers.ProductSkuCreateProductFieldData.Raw, + Webflow.ProductSkuCreateProductFieldData +> = core.serialization.object({ + name: core.serialization.string(), + slug: core.serialization.string(), + description: core.serialization.string().optional(), + shippable: core.serialization.boolean().optional(), + skuProperties: core.serialization.property( + "sku-properties", + core.serialization + .list(core.serialization.lazyObject(async () => (await import("../../..")).SkuPropertyList)) + .optional() + ), + categories: core.serialization.list(core.serialization.unknown()).optional(), + taxCategory: core.serialization.property( + "tax-category", + core.serialization + .lazy(async () => (await import("../../..")).ProductSkuCreateProductFieldDataTaxCategory) + .optional() + ), + ecProductType: core.serialization.property( + "ec-product-type", + core.serialization + .lazy(async () => (await import("../../..")).ProductSkuCreateProductFieldDataEcProductType) + .optional() + ), + additionalProperties: core.serialization.unknown().optional(), +}); + +export declare namespace ProductSkuCreateProductFieldData { + interface Raw { + name: string; + slug: string; + description?: string | null; + shippable?: boolean | null; + "sku-properties"?: serializers.SkuPropertyList.Raw[] | null; + categories?: unknown[] | null; + "tax-category"?: serializers.ProductSkuCreateProductFieldDataTaxCategory.Raw | null; + "ec-product-type"?: serializers.ProductSkuCreateProductFieldDataEcProductType.Raw | null; + additionalProperties?: unknown | null; + } +} diff --git a/src/serialization/resources/products/types/ProductSkuCreateProductFieldDataEcProductType.ts b/src/serialization/resources/products/types/ProductSkuCreateProductFieldDataEcProductType.ts new file mode 100644 index 00000000..db41dff3 --- /dev/null +++ b/src/serialization/resources/products/types/ProductSkuCreateProductFieldDataEcProductType.ts @@ -0,0 +1,25 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../.."; +import * as Webflow from "../../../../api"; +import * as core from "../../../../core"; + +export const ProductSkuCreateProductFieldDataEcProductType: core.serialization.Schema< + serializers.ProductSkuCreateProductFieldDataEcProductType.Raw, + Webflow.ProductSkuCreateProductFieldDataEcProductType +> = core.serialization.enum_([ + "ff42fee0113744f693a764e3431a9cc2", + "f22027db68002190aef89a4a2b7ac8a1", + "c599e43b1a1c34d5a323aedf75d3adf6", + "b6ccc1830db4b1babeb06a9ac5f6dd76", +]); + +export declare namespace ProductSkuCreateProductFieldDataEcProductType { + type Raw = + | "ff42fee0113744f693a764e3431a9cc2" + | "f22027db68002190aef89a4a2b7ac8a1" + | "c599e43b1a1c34d5a323aedf75d3adf6" + | "b6ccc1830db4b1babeb06a9ac5f6dd76"; +} diff --git a/src/serialization/resources/products/types/ProductSkuCreateProductFieldDataTaxCategory.ts b/src/serialization/resources/products/types/ProductSkuCreateProductFieldDataTaxCategory.ts new file mode 100644 index 00000000..7594a495 --- /dev/null +++ b/src/serialization/resources/products/types/ProductSkuCreateProductFieldDataTaxCategory.ts @@ -0,0 +1,75 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../.."; +import * as Webflow from "../../../../api"; +import * as core from "../../../../core"; + +export const ProductSkuCreateProductFieldDataTaxCategory: core.serialization.Schema< + serializers.ProductSkuCreateProductFieldDataTaxCategory.Raw, + Webflow.ProductSkuCreateProductFieldDataTaxCategory +> = core.serialization.enum_([ + "standard-taxable", + "standard-exempt", + "books-religious", + "books-textbook", + "clothing", + "clothing-swimwear", + "digital-goods", + "digital-service", + "drugs-non-prescription", + "drugs-prescription", + "food-bottled-water", + "food-candy", + "food-groceries", + "food-prepared", + "food-soda", + "food-supplements", + "magazine-individual", + "magazine-subscription", + "service-admission", + "service-advertising", + "service-dry-cleaning", + "service-hairdressing", + "service-installation", + "service-miscellaneous", + "service-parking", + "service-printing", + "service-professional", + "service-repair", + "service-training", +]); + +export declare namespace ProductSkuCreateProductFieldDataTaxCategory { + type Raw = + | "standard-taxable" + | "standard-exempt" + | "books-religious" + | "books-textbook" + | "clothing" + | "clothing-swimwear" + | "digital-goods" + | "digital-service" + | "drugs-non-prescription" + | "drugs-prescription" + | "food-bottled-water" + | "food-candy" + | "food-groceries" + | "food-prepared" + | "food-soda" + | "food-supplements" + | "magazine-individual" + | "magazine-subscription" + | "service-admission" + | "service-advertising" + | "service-dry-cleaning" + | "service-hairdressing" + | "service-installation" + | "service-miscellaneous" + | "service-parking" + | "service-printing" + | "service-professional" + | "service-repair" + | "service-training"; +} diff --git a/src/serialization/resources/products/types/ProductSkuCreateSku.ts b/src/serialization/resources/products/types/ProductSkuCreateSku.ts new file mode 100644 index 00000000..c34b2e9a --- /dev/null +++ b/src/serialization/resources/products/types/ProductSkuCreateSku.ts @@ -0,0 +1,30 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../.."; +import * as Webflow from "../../../../api"; +import * as core from "../../../../core"; + +export const ProductSkuCreateSku: core.serialization.ObjectSchema< + serializers.ProductSkuCreateSku.Raw, + Webflow.ProductSkuCreateSku +> = core.serialization.object({ + id: core.serialization.string().optional(), + lastPublished: core.serialization.date().optional(), + lastUpdated: core.serialization.date().optional(), + createdOn: core.serialization.date().optional(), + fieldData: core.serialization + .lazyObject(async () => (await import("../../..")).ProductSkuCreateSkuFieldData) + .optional(), +}); + +export declare namespace ProductSkuCreateSku { + interface Raw { + id?: string | null; + lastPublished?: string | null; + lastUpdated?: string | null; + createdOn?: string | null; + fieldData?: serializers.ProductSkuCreateSkuFieldData.Raw | null; + } +} diff --git a/src/serialization/resources/products/types/ProductSkuCreateSkuFieldData.ts b/src/serialization/resources/products/types/ProductSkuCreateSkuFieldData.ts new file mode 100644 index 00000000..1f023995 --- /dev/null +++ b/src/serialization/resources/products/types/ProductSkuCreateSkuFieldData.ts @@ -0,0 +1,54 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../.."; +import * as Webflow from "../../../../api"; +import * as core from "../../../../core"; + +export const ProductSkuCreateSkuFieldData: core.serialization.ObjectSchema< + serializers.ProductSkuCreateSkuFieldData.Raw, + Webflow.ProductSkuCreateSkuFieldData +> = core.serialization.object({ + skuValues: core.serialization.property( + "sku-values", + core.serialization.lazy(async () => (await import("../../..")).SkuValueList).optional() + ), + name: core.serialization.string(), + slug: core.serialization.string(), + price: core.serialization.lazyObject(async () => (await import("../../..")).ProductSkuCreateSkuFieldDataPrice), + compareAtPrice: core.serialization.property( + "compare-at-price", + core.serialization + .lazyObject(async () => (await import("../../..")).ProductSkuCreateSkuFieldDataCompareAtPrice) + .optional() + ), + ecSkuBillingMethod: core.serialization.property( + "ec-sku-billing-method", + core.serialization + .lazy(async () => (await import("../../..")).ProductSkuCreateSkuFieldDataEcSkuBillingMethod) + .optional() + ), + ecSkuSubscriptionPlan: core.serialization.property( + "ec-sku-subscription-plan", + core.serialization + .lazyObject(async () => (await import("../../..")).ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlan) + .optional() + ), + trackInventory: core.serialization.property("track-inventory", core.serialization.boolean().optional()), + quantity: core.serialization.number().optional(), +}); + +export declare namespace ProductSkuCreateSkuFieldData { + interface Raw { + "sku-values"?: serializers.SkuValueList.Raw | null; + name: string; + slug: string; + price: serializers.ProductSkuCreateSkuFieldDataPrice.Raw; + "compare-at-price"?: serializers.ProductSkuCreateSkuFieldDataCompareAtPrice.Raw | null; + "ec-sku-billing-method"?: serializers.ProductSkuCreateSkuFieldDataEcSkuBillingMethod.Raw | null; + "ec-sku-subscription-plan"?: serializers.ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlan.Raw | null; + "track-inventory"?: boolean | null; + quantity?: number | null; + } +} diff --git a/src/serialization/resources/products/types/ProductSkuCreateSkuFieldDataCompareAtPrice.ts b/src/serialization/resources/products/types/ProductSkuCreateSkuFieldDataCompareAtPrice.ts new file mode 100644 index 00000000..027f5292 --- /dev/null +++ b/src/serialization/resources/products/types/ProductSkuCreateSkuFieldDataCompareAtPrice.ts @@ -0,0 +1,22 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../.."; +import * as Webflow from "../../../../api"; +import * as core from "../../../../core"; + +export const ProductSkuCreateSkuFieldDataCompareAtPrice: core.serialization.ObjectSchema< + serializers.ProductSkuCreateSkuFieldDataCompareAtPrice.Raw, + Webflow.ProductSkuCreateSkuFieldDataCompareAtPrice +> = core.serialization.object({ + value: core.serialization.number().optional(), + unit: core.serialization.string().optional(), +}); + +export declare namespace ProductSkuCreateSkuFieldDataCompareAtPrice { + interface Raw { + value?: number | null; + unit?: string | null; + } +} diff --git a/src/serialization/resources/products/types/ProductSkuCreateSkuFieldDataEcSkuBillingMethod.ts b/src/serialization/resources/products/types/ProductSkuCreateSkuFieldDataEcSkuBillingMethod.ts new file mode 100644 index 00000000..99e58f7e --- /dev/null +++ b/src/serialization/resources/products/types/ProductSkuCreateSkuFieldDataEcSkuBillingMethod.ts @@ -0,0 +1,16 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../.."; +import * as Webflow from "../../../../api"; +import * as core from "../../../../core"; + +export const ProductSkuCreateSkuFieldDataEcSkuBillingMethod: core.serialization.Schema< + serializers.ProductSkuCreateSkuFieldDataEcSkuBillingMethod.Raw, + Webflow.ProductSkuCreateSkuFieldDataEcSkuBillingMethod +> = core.serialization.enum_(["one-time", "subscription"]); + +export declare namespace ProductSkuCreateSkuFieldDataEcSkuBillingMethod { + type Raw = "one-time" | "subscription"; +} diff --git a/src/serialization/resources/products/types/ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlan.ts b/src/serialization/resources/products/types/ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlan.ts new file mode 100644 index 00000000..e574413e --- /dev/null +++ b/src/serialization/resources/products/types/ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlan.ts @@ -0,0 +1,26 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../.."; +import * as Webflow from "../../../../api"; +import * as core from "../../../../core"; + +export const ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlan: core.serialization.ObjectSchema< + serializers.ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlan.Raw, + Webflow.ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlan +> = core.serialization.object({ + interval: core.serialization + .lazy(async () => (await import("../../..")).ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlanInterval) + .optional(), + frequency: core.serialization.number().optional(), + trial: core.serialization.number().optional(), +}); + +export declare namespace ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlan { + interface Raw { + interval?: serializers.ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlanInterval.Raw | null; + frequency?: number | null; + trial?: number | null; + } +} diff --git a/src/serialization/resources/products/types/ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlanInterval.ts b/src/serialization/resources/products/types/ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlanInterval.ts new file mode 100644 index 00000000..28aac4d2 --- /dev/null +++ b/src/serialization/resources/products/types/ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlanInterval.ts @@ -0,0 +1,16 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../.."; +import * as Webflow from "../../../../api"; +import * as core from "../../../../core"; + +export const ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlanInterval: core.serialization.Schema< + serializers.ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlanInterval.Raw, + Webflow.ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlanInterval +> = core.serialization.enum_(["day", "week", "month", "year"]); + +export declare namespace ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlanInterval { + type Raw = "day" | "week" | "month" | "year"; +} diff --git a/src/serialization/resources/products/types/ProductSkuCreateSkuFieldDataPrice.ts b/src/serialization/resources/products/types/ProductSkuCreateSkuFieldDataPrice.ts new file mode 100644 index 00000000..58811f86 --- /dev/null +++ b/src/serialization/resources/products/types/ProductSkuCreateSkuFieldDataPrice.ts @@ -0,0 +1,24 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../.."; +import * as Webflow from "../../../../api"; +import * as core from "../../../../core"; + +export const ProductSkuCreateSkuFieldDataPrice: core.serialization.ObjectSchema< + serializers.ProductSkuCreateSkuFieldDataPrice.Raw, + Webflow.ProductSkuCreateSkuFieldDataPrice +> = core.serialization.object({ + required: core.serialization.unknown().optional(), + value: core.serialization.number().optional(), + unit: core.serialization.string().optional(), +}); + +export declare namespace ProductSkuCreateSkuFieldDataPrice { + interface Raw { + required?: unknown | null; + value?: number | null; + unit?: string | null; + } +} diff --git a/src/serialization/resources/products/types/index.ts b/src/serialization/resources/products/types/index.ts index e286df49..a6bad2b0 100644 --- a/src/serialization/resources/products/types/index.ts +++ b/src/serialization/resources/products/types/index.ts @@ -1 +1,12 @@ +export * from "./ProductSkuCreateProductFieldDataTaxCategory"; +export * from "./ProductSkuCreateProductFieldDataEcProductType"; +export * from "./ProductSkuCreateProductFieldData"; +export * from "./ProductSkuCreateProduct"; +export * from "./ProductSkuCreateSkuFieldDataPrice"; +export * from "./ProductSkuCreateSkuFieldDataCompareAtPrice"; +export * from "./ProductSkuCreateSkuFieldDataEcSkuBillingMethod"; +export * from "./ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlanInterval"; +export * from "./ProductSkuCreateSkuFieldDataEcSkuSubscriptionPlan"; +export * from "./ProductSkuCreateSkuFieldData"; +export * from "./ProductSkuCreateSku"; export * from "./ProductsCreateSkuResponse"; diff --git a/src/serialization/resources/users/client/requests/UsersUpdateRequest.ts b/src/serialization/resources/users/client/requests/UsersUpdateRequest.ts new file mode 100644 index 00000000..57a46f6f --- /dev/null +++ b/src/serialization/resources/users/client/requests/UsersUpdateRequest.ts @@ -0,0 +1,22 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../.."; +import * as Webflow from "../../../../../api"; +import * as core from "../../../../../core"; + +export const UsersUpdateRequest: core.serialization.Schema< + serializers.UsersUpdateRequest.Raw, + Webflow.UsersUpdateRequest +> = core.serialization.object({ + data: core.serialization.lazyObject(async () => (await import("../../../..")).UsersUpdateRequestData).optional(), + accessGroups: core.serialization.list(core.serialization.string()).optional(), +}); + +export declare namespace UsersUpdateRequest { + interface Raw { + data?: serializers.UsersUpdateRequestData.Raw | null; + accessGroups?: string[] | null; + } +} diff --git a/src/serialization/resources/users/client/requests/index.ts b/src/serialization/resources/users/client/requests/index.ts index ecf14c3f..c31b1b66 100644 --- a/src/serialization/resources/users/client/requests/index.ts +++ b/src/serialization/resources/users/client/requests/index.ts @@ -1 +1,2 @@ +export { UsersUpdateRequest } from "./UsersUpdateRequest"; export { UsersInviteRequest } from "./UsersInviteRequest"; diff --git a/src/serialization/resources/users/types/UsersUpdateRequestData.ts b/src/serialization/resources/users/types/UsersUpdateRequestData.ts new file mode 100644 index 00000000..46f2da75 --- /dev/null +++ b/src/serialization/resources/users/types/UsersUpdateRequestData.ts @@ -0,0 +1,24 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../.."; +import * as Webflow from "../../../../api"; +import * as core from "../../../../core"; + +export const UsersUpdateRequestData: core.serialization.ObjectSchema< + serializers.UsersUpdateRequestData.Raw, + Webflow.UsersUpdateRequestData +> = core.serialization.object({ + name: core.serialization.string().optional(), + acceptPrivacy: core.serialization.property("accept-privacy", core.serialization.boolean().optional()), + acceptCommunications: core.serialization.property("accept-communications", core.serialization.boolean().optional()), +}); + +export declare namespace UsersUpdateRequestData { + interface Raw { + name?: string | null; + "accept-privacy"?: boolean | null; + "accept-communications"?: boolean | null; + } +} diff --git a/src/serialization/resources/users/types/index.ts b/src/serialization/resources/users/types/index.ts index 06eb1302..0baf5143 100644 --- a/src/serialization/resources/users/types/index.ts +++ b/src/serialization/resources/users/types/index.ts @@ -1 +1,2 @@ export * from "./UsersListRequestSort"; +export * from "./UsersUpdateRequestData"; diff --git a/src/serialization/types/AssetFolderList.ts b/src/serialization/types/AssetFolderList.ts index e2fe6298..092363fd 100644 --- a/src/serialization/types/AssetFolderList.ts +++ b/src/serialization/types/AssetFolderList.ts @@ -10,15 +10,15 @@ export const AssetFolderList: core.serialization.ObjectSchema< serializers.AssetFolderList.Raw, Webflow.AssetFolderList > = core.serialization.object({ - pagination: core.serialization.lazyObject(async () => (await import("..")).Pagination).optional(), - pages: core.serialization + assetFolders: core.serialization .list(core.serialization.lazyObject(async () => (await import("..")).AssetFolder)) .optional(), + pagination: core.serialization.lazyObject(async () => (await import("..")).Pagination).optional(), }); export declare namespace AssetFolderList { interface Raw { + assetFolders?: serializers.AssetFolder.Raw[] | null; pagination?: serializers.Pagination.Raw | null; - pages?: serializers.AssetFolder.Raw[] | null; } } diff --git a/src/serialization/types/CollectionItem.ts b/src/serialization/types/CollectionItem.ts index 4555309e..4c74a09e 100644 --- a/src/serialization/types/CollectionItem.ts +++ b/src/serialization/types/CollectionItem.ts @@ -9,6 +9,7 @@ import * as core from "../../core"; export const CollectionItem: core.serialization.ObjectSchema = core.serialization.object({ id: core.serialization.string(), + cmsLocaleId: core.serialization.string().optional(), lastPublished: core.serialization.string().optional(), lastUpdated: core.serialization.string().optional(), createdOn: core.serialization.string().optional(), @@ -20,6 +21,7 @@ export const CollectionItem: core.serialization.ObjectSchema = core.serialization.object({ + pageId: core.serialization.string().optional(), + nodes: core.serialization.list(core.serialization.lazyObject(async () => (await import("..")).Node)).optional(), + pagination: core.serialization.lazyObject(async () => (await import("..")).Pagination).optional(), +}); + +export declare namespace Dom { + interface Raw { + pageId?: string | null; + nodes?: serializers.Node.Raw[] | null; + pagination?: serializers.Pagination.Raw | null; + } +} diff --git a/src/serialization/types/ImageNode.ts b/src/serialization/types/ImageNode.ts new file mode 100644 index 00000000..689af6aa --- /dev/null +++ b/src/serialization/types/ImageNode.ts @@ -0,0 +1,20 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from ".."; +import * as Webflow from "../../api"; +import * as core from "../../core"; + +export const ImageNode: core.serialization.ObjectSchema = + core.serialization.object({ + alt: core.serialization.string().optional(), + assetId: core.serialization.string().optional(), + }); + +export declare namespace ImageNode { + interface Raw { + alt?: string | null; + assetId?: string | null; + } +} diff --git a/src/serialization/types/InvalidScopes.ts b/src/serialization/types/InvalidScopes.ts new file mode 100644 index 00000000..68141b7d --- /dev/null +++ b/src/serialization/types/InvalidScopes.ts @@ -0,0 +1,26 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from ".."; +import * as Webflow from "../../api"; +import * as core from "../../core"; + +export const InvalidScopes: core.serialization.ObjectSchema = + core.serialization.object({ + status: core.serialization.number().optional(), + message: core.serialization.string().optional(), + publicErrorCode: core.serialization.string().optional(), + externalReference: core.serialization.string().optional(), + details: core.serialization.list(core.serialization.string()).optional(), + }); + +export declare namespace InvalidScopes { + interface Raw { + status?: number | null; + message?: string | null; + publicErrorCode?: string | null; + externalReference?: string | null; + details?: string[] | null; + } +} diff --git a/src/serialization/types/Node.ts b/src/serialization/types/Node.ts new file mode 100644 index 00000000..eb90cb4e --- /dev/null +++ b/src/serialization/types/Node.ts @@ -0,0 +1,25 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from ".."; +import * as Webflow from "../../api"; +import * as core from "../../core"; + +export const Node: core.serialization.ObjectSchema = core.serialization.object({ + id: core.serialization.string().optional(), + type: core.serialization.lazy(async () => (await import("..")).NodeType).optional(), + text: core.serialization.lazyObject(async () => (await import("..")).TextNode).optional(), + image: core.serialization.lazyObject(async () => (await import("..")).ImageNode).optional(), + attributes: core.serialization.record(core.serialization.string(), core.serialization.string()).optional(), +}); + +export declare namespace Node { + interface Raw { + id?: string | null; + type?: serializers.NodeType.Raw | null; + text?: serializers.TextNode.Raw | null; + image?: serializers.ImageNode.Raw | null; + attributes?: Record | null; + } +} diff --git a/src/serialization/types/NodeType.ts b/src/serialization/types/NodeType.ts new file mode 100644 index 00000000..adcc1d97 --- /dev/null +++ b/src/serialization/types/NodeType.ts @@ -0,0 +1,15 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from ".."; +import * as Webflow from "../../api"; +import * as core from "../../core"; + +export const NodeType: core.serialization.Schema = core.serialization.enum_( + ["text", "image"] +); + +export declare namespace NodeType { + type Raw = "text" | "image"; +} diff --git a/src/serialization/types/NotEnterprisePlanSite.ts b/src/serialization/types/NotEnterprisePlanSite.ts new file mode 100644 index 00000000..a2045bbc --- /dev/null +++ b/src/serialization/types/NotEnterprisePlanSite.ts @@ -0,0 +1,30 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from ".."; +import * as Webflow from "../../api"; +import * as core from "../../core"; + +export const NotEnterprisePlanSite: core.serialization.ObjectSchema< + serializers.NotEnterprisePlanSite.Raw, + Webflow.NotEnterprisePlanSite +> = core.serialization.object({ + code: core.serialization.stringLiteral("missing_scopes").optional(), + type: core.serialization.string().optional(), + message: core.serialization.string().optional(), + externalReference: core.serialization.string().optional(), + details: core.serialization + .list(core.serialization.lazy(async () => (await import("..")).ErrorDetailsItem)) + .optional(), +}); + +export declare namespace NotEnterprisePlanSite { + interface Raw { + code?: "missing_scopes" | null; + type?: string | null; + message?: string | null; + externalReference?: string | null; + details?: serializers.ErrorDetailsItem.Raw[] | null; + } +} diff --git a/src/serialization/types/OauthScope.ts b/src/serialization/types/OauthScope.ts index 0369f2b6..edb440a9 100644 --- a/src/serialization/types/OauthScope.ts +++ b/src/serialization/types/OauthScope.ts @@ -19,6 +19,7 @@ export const OauthScope: core.serialization.Schema = core.serialization.object({ - name: core.serialization.string().optional(), - slug: core.serialization.string().optional(), + name: core.serialization.string(), + slug: core.serialization.string(), + description: core.serialization.string().optional(), + shippable: core.serialization.boolean().optional(), skuProperties: core.serialization.property( "sku-properties", core.serialization .list(core.serialization.lazyObject(async () => (await import("..")).SkuPropertyList)) .optional() ), + categories: core.serialization.list(core.serialization.string()).optional(), + taxCategory: core.serialization.property( + "tax-category", + core.serialization.lazy(async () => (await import("..")).ProductFieldDataTaxCategory).optional() + ), + defaultSku: core.serialization.property("default-sku", core.serialization.string().optional()), + ecProductType: core.serialization.property( + "ec-product-type", + core.serialization.lazy(async () => (await import("..")).ProductFieldDataEcProductType).optional() + ), + additionalProperties: core.serialization.string().optional(), }); export declare namespace ProductFieldData { interface Raw { - name?: string | null; - slug?: string | null; + name: string; + slug: string; + description?: string | null; + shippable?: boolean | null; "sku-properties"?: serializers.SkuPropertyList.Raw[] | null; + categories?: string[] | null; + "tax-category"?: serializers.ProductFieldDataTaxCategory.Raw | null; + "default-sku"?: string | null; + "ec-product-type"?: serializers.ProductFieldDataEcProductType.Raw | null; + additionalProperties?: string | null; } } diff --git a/src/serialization/types/ProductFieldDataEcProductType.ts b/src/serialization/types/ProductFieldDataEcProductType.ts new file mode 100644 index 00000000..00d8c4c0 --- /dev/null +++ b/src/serialization/types/ProductFieldDataEcProductType.ts @@ -0,0 +1,25 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from ".."; +import * as Webflow from "../../api"; +import * as core from "../../core"; + +export const ProductFieldDataEcProductType: core.serialization.Schema< + serializers.ProductFieldDataEcProductType.Raw, + Webflow.ProductFieldDataEcProductType +> = core.serialization.enum_([ + "ff42fee0113744f693a764e3431a9cc2", + "f22027db68002190aef89a4a2b7ac8a1", + "c599e43b1a1c34d5a323aedf75d3adf6", + "b6ccc1830db4b1babeb06a9ac5f6dd76", +]); + +export declare namespace ProductFieldDataEcProductType { + type Raw = + | "ff42fee0113744f693a764e3431a9cc2" + | "f22027db68002190aef89a4a2b7ac8a1" + | "c599e43b1a1c34d5a323aedf75d3adf6" + | "b6ccc1830db4b1babeb06a9ac5f6dd76"; +} diff --git a/src/serialization/types/ProductFieldDataTaxCategory.ts b/src/serialization/types/ProductFieldDataTaxCategory.ts new file mode 100644 index 00000000..075abd3a --- /dev/null +++ b/src/serialization/types/ProductFieldDataTaxCategory.ts @@ -0,0 +1,75 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from ".."; +import * as Webflow from "../../api"; +import * as core from "../../core"; + +export const ProductFieldDataTaxCategory: core.serialization.Schema< + serializers.ProductFieldDataTaxCategory.Raw, + Webflow.ProductFieldDataTaxCategory +> = core.serialization.enum_([ + "standard-taxable", + "standard-exempt", + "books-religious", + "books-textbook", + "clothing", + "clothing-swimwear", + "digital-goods", + "digital-service", + "drugs-non-prescription", + "drugs-prescription", + "food-bottled-water", + "food-candy", + "food-groceries", + "food-prepared", + "food-soda", + "food-supplements", + "magazine-individual", + "magazine-subscription", + "service-admission", + "service-advertising", + "service-dry-cleaning", + "service-hairdressing", + "service-installation", + "service-miscellaneous", + "service-parking", + "service-printing", + "service-professional", + "service-repair", + "service-training", +]); + +export declare namespace ProductFieldDataTaxCategory { + type Raw = + | "standard-taxable" + | "standard-exempt" + | "books-religious" + | "books-textbook" + | "clothing" + | "clothing-swimwear" + | "digital-goods" + | "digital-service" + | "drugs-non-prescription" + | "drugs-prescription" + | "food-bottled-water" + | "food-candy" + | "food-groceries" + | "food-prepared" + | "food-soda" + | "food-supplements" + | "magazine-individual" + | "magazine-subscription" + | "service-admission" + | "service-advertising" + | "service-dry-cleaning" + | "service-hairdressing" + | "service-installation" + | "service-miscellaneous" + | "service-parking" + | "service-printing" + | "service-professional" + | "service-repair" + | "service-training"; +} diff --git a/src/serialization/types/SiteActivityLogItem.ts b/src/serialization/types/SiteActivityLogItem.ts index 13c4d5b5..ee8223ff 100644 --- a/src/serialization/types/SiteActivityLogItem.ts +++ b/src/serialization/types/SiteActivityLogItem.ts @@ -17,7 +17,7 @@ export const SiteActivityLogItem: core.serialization.ObjectSchema< resourceOperation: core.serialization .lazy(async () => (await import("..")).SiteActivityLogItemResourceOperation) .optional(), - user: core.serialization.string().optional(), + user: core.serialization.lazyObject(async () => (await import("..")).SiteActivityLogItemUser).optional(), resourceId: core.serialization.string().optional(), resourceName: core.serialization.string().optional(), newValue: core.serialization.string().optional(), @@ -32,7 +32,7 @@ export declare namespace SiteActivityLogItem { lastUpdated?: string | null; event?: string | null; resourceOperation?: serializers.SiteActivityLogItemResourceOperation.Raw | null; - user?: string | null; + user?: serializers.SiteActivityLogItemUser.Raw | null; resourceId?: string | null; resourceName?: string | null; newValue?: string | null; diff --git a/src/serialization/types/SiteActivityLogItemUser.ts b/src/serialization/types/SiteActivityLogItemUser.ts new file mode 100644 index 00000000..03deb61b --- /dev/null +++ b/src/serialization/types/SiteActivityLogItemUser.ts @@ -0,0 +1,22 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from ".."; +import * as Webflow from "../../api"; +import * as core from "../../core"; + +export const SiteActivityLogItemUser: core.serialization.ObjectSchema< + serializers.SiteActivityLogItemUser.Raw, + Webflow.SiteActivityLogItemUser +> = core.serialization.object({ + id: core.serialization.string().optional(), + displayName: core.serialization.string().optional(), +}); + +export declare namespace SiteActivityLogItemUser { + interface Raw { + id?: string | null; + displayName?: string | null; + } +} diff --git a/src/serialization/types/SkuFieldData.ts b/src/serialization/types/SkuFieldData.ts index 597872e1..e6780128 100644 --- a/src/serialization/types/SkuFieldData.ts +++ b/src/serialization/types/SkuFieldData.ts @@ -8,20 +8,39 @@ import * as core from "../../core"; export const SkuFieldData: core.serialization.ObjectSchema = core.serialization.object({ - name: core.serialization.string().optional(), - slug: core.serialization.string().optional(), - price: core.serialization.lazyObject(async () => (await import("..")).SkuFieldDataPrice).optional(), skuValues: core.serialization.property( "sku-values", core.serialization.lazy(async () => (await import("..")).SkuValueList).optional() ), + name: core.serialization.string(), + slug: core.serialization.string(), + price: core.serialization.lazyObject(async () => (await import("..")).SkuFieldDataPrice), + compareAtPrice: core.serialization.property( + "compare-at-price", + core.serialization.lazyObject(async () => (await import("..")).SkuFieldDataCompareAtPrice).optional() + ), + ecSkuBillingMethod: core.serialization.property( + "ec-sku-billing-method", + core.serialization.lazy(async () => (await import("..")).SkuFieldDataEcSkuBillingMethod).optional() + ), + ecSkuSubscriptionPlan: core.serialization.property( + "ec-sku-subscription-plan", + core.serialization.lazyObject(async () => (await import("..")).SkuFieldDataEcSkuSubscriptionPlan).optional() + ), + trackInventory: core.serialization.property("track-inventory", core.serialization.boolean().optional()), + quantity: core.serialization.number().optional(), }); export declare namespace SkuFieldData { interface Raw { - name?: string | null; - slug?: string | null; - price?: serializers.SkuFieldDataPrice.Raw | null; "sku-values"?: serializers.SkuValueList.Raw | null; + name: string; + slug: string; + price: serializers.SkuFieldDataPrice.Raw; + "compare-at-price"?: serializers.SkuFieldDataCompareAtPrice.Raw | null; + "ec-sku-billing-method"?: serializers.SkuFieldDataEcSkuBillingMethod.Raw | null; + "ec-sku-subscription-plan"?: serializers.SkuFieldDataEcSkuSubscriptionPlan.Raw | null; + "track-inventory"?: boolean | null; + quantity?: number | null; } } diff --git a/src/serialization/types/SkuFieldDataCompareAtPrice.ts b/src/serialization/types/SkuFieldDataCompareAtPrice.ts new file mode 100644 index 00000000..457149ef --- /dev/null +++ b/src/serialization/types/SkuFieldDataCompareAtPrice.ts @@ -0,0 +1,22 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from ".."; +import * as Webflow from "../../api"; +import * as core from "../../core"; + +export const SkuFieldDataCompareAtPrice: core.serialization.ObjectSchema< + serializers.SkuFieldDataCompareAtPrice.Raw, + Webflow.SkuFieldDataCompareAtPrice +> = core.serialization.object({ + value: core.serialization.number().optional(), + unit: core.serialization.string().optional(), +}); + +export declare namespace SkuFieldDataCompareAtPrice { + interface Raw { + value?: number | null; + unit?: string | null; + } +} diff --git a/src/serialization/types/SkuFieldDataEcSkuBillingMethod.ts b/src/serialization/types/SkuFieldDataEcSkuBillingMethod.ts new file mode 100644 index 00000000..f397934e --- /dev/null +++ b/src/serialization/types/SkuFieldDataEcSkuBillingMethod.ts @@ -0,0 +1,16 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from ".."; +import * as Webflow from "../../api"; +import * as core from "../../core"; + +export const SkuFieldDataEcSkuBillingMethod: core.serialization.Schema< + serializers.SkuFieldDataEcSkuBillingMethod.Raw, + Webflow.SkuFieldDataEcSkuBillingMethod +> = core.serialization.enum_(["one-time", "subscription"]); + +export declare namespace SkuFieldDataEcSkuBillingMethod { + type Raw = "one-time" | "subscription"; +} diff --git a/src/serialization/types/SkuFieldDataEcSkuSubscriptionPlan.ts b/src/serialization/types/SkuFieldDataEcSkuSubscriptionPlan.ts new file mode 100644 index 00000000..26101ed5 --- /dev/null +++ b/src/serialization/types/SkuFieldDataEcSkuSubscriptionPlan.ts @@ -0,0 +1,26 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from ".."; +import * as Webflow from "../../api"; +import * as core from "../../core"; + +export const SkuFieldDataEcSkuSubscriptionPlan: core.serialization.ObjectSchema< + serializers.SkuFieldDataEcSkuSubscriptionPlan.Raw, + Webflow.SkuFieldDataEcSkuSubscriptionPlan +> = core.serialization.object({ + interval: core.serialization + .lazy(async () => (await import("..")).SkuFieldDataEcSkuSubscriptionPlanInterval) + .optional(), + frequency: core.serialization.number().optional(), + trial: core.serialization.number().optional(), +}); + +export declare namespace SkuFieldDataEcSkuSubscriptionPlan { + interface Raw { + interval?: serializers.SkuFieldDataEcSkuSubscriptionPlanInterval.Raw | null; + frequency?: number | null; + trial?: number | null; + } +} diff --git a/src/serialization/types/SkuFieldDataEcSkuSubscriptionPlanInterval.ts b/src/serialization/types/SkuFieldDataEcSkuSubscriptionPlanInterval.ts new file mode 100644 index 00000000..fc798ad6 --- /dev/null +++ b/src/serialization/types/SkuFieldDataEcSkuSubscriptionPlanInterval.ts @@ -0,0 +1,16 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from ".."; +import * as Webflow from "../../api"; +import * as core from "../../core"; + +export const SkuFieldDataEcSkuSubscriptionPlanInterval: core.serialization.Schema< + serializers.SkuFieldDataEcSkuSubscriptionPlanInterval.Raw, + Webflow.SkuFieldDataEcSkuSubscriptionPlanInterval +> = core.serialization.enum_(["day", "week", "month", "year"]); + +export declare namespace SkuFieldDataEcSkuSubscriptionPlanInterval { + type Raw = "day" | "week" | "month" | "year"; +} diff --git a/src/serialization/types/SkuPropertyList.ts b/src/serialization/types/SkuPropertyList.ts index 6f6c673c..8a6a4529 100644 --- a/src/serialization/types/SkuPropertyList.ts +++ b/src/serialization/types/SkuPropertyList.ts @@ -10,17 +10,17 @@ export const SkuPropertyList: core.serialization.ObjectSchema< serializers.SkuPropertyList.Raw, Webflow.SkuPropertyList > = core.serialization.object({ - id: core.serialization.string().optional(), - name: core.serialization.string().optional(), - enum: core.serialization - .list(core.serialization.lazyObject(async () => (await import("..")).SkuPropertyListEnumItem)) - .optional(), + id: core.serialization.string(), + name: core.serialization.string(), + enum: core.serialization.list( + core.serialization.lazyObject(async () => (await import("..")).SkuPropertyListEnumItem) + ), }); export declare namespace SkuPropertyList { interface Raw { - id?: string | null; - name?: string | null; - enum?: serializers.SkuPropertyListEnumItem.Raw[] | null; + id: string; + name: string; + enum: serializers.SkuPropertyListEnumItem.Raw[]; } } diff --git a/src/serialization/types/SkuPropertyListEnumItem.ts b/src/serialization/types/SkuPropertyListEnumItem.ts index 0ffbfeca..7437b147 100644 --- a/src/serialization/types/SkuPropertyListEnumItem.ts +++ b/src/serialization/types/SkuPropertyListEnumItem.ts @@ -10,15 +10,15 @@ export const SkuPropertyListEnumItem: core.serialization.ObjectSchema< serializers.SkuPropertyListEnumItem.Raw, Webflow.SkuPropertyListEnumItem > = core.serialization.object({ - id: core.serialization.string().optional(), - name: core.serialization.string().optional(), - slug: core.serialization.string().optional(), + id: core.serialization.string(), + name: core.serialization.string(), + slug: core.serialization.string(), }); export declare namespace SkuPropertyListEnumItem { interface Raw { - id?: string | null; - name?: string | null; - slug?: string | null; + id: string; + name: string; + slug: string; } } diff --git a/src/serialization/types/TextNode.ts b/src/serialization/types/TextNode.ts new file mode 100644 index 00000000..690d2994 --- /dev/null +++ b/src/serialization/types/TextNode.ts @@ -0,0 +1,20 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from ".."; +import * as Webflow from "../../api"; +import * as core from "../../core"; + +export const TextNode: core.serialization.ObjectSchema = + core.serialization.object({ + html: core.serialization.string().optional(), + text: core.serialization.string().optional(), + }); + +export declare namespace TextNode { + interface Raw { + html?: string | null; + text?: string | null; + } +} diff --git a/src/serialization/types/index.ts b/src/serialization/types/index.ts index 29b5c8ca..f8f20244 100644 --- a/src/serialization/types/index.ts +++ b/src/serialization/types/index.ts @@ -5,6 +5,7 @@ export * from "./AuthorizationAuthorization"; export * from "./Authorization"; export * from "./Pagination"; export * from "./PublishStatus"; +export * from "./InvalidScopes"; export * from "./CustomCodeResponse"; export * from "./RegisteredScriptList"; export * from "./ScriptApplyList"; @@ -23,6 +24,11 @@ export * from "./PageDeletedWebhook"; export * from "./PageSeoGraphDataSeo"; export * from "./PageSeoGraphDataOpenGraph"; export * from "./PageSeoGraphData"; +export * from "./Dom"; +export * from "./NodeType"; +export * from "./Node"; +export * from "./TextNode"; +export * from "./ImageNode"; export * from "./CollectionList"; export * from "./CollectionListArrayItem"; export * from "./Collection"; @@ -44,6 +50,7 @@ export * from "./SitePublishPayload"; export * from "./SitePublish"; export * from "./SiteActivityLogResponse"; export * from "./SiteActivityLogItemResourceOperation"; +export * from "./SiteActivityLogItemUser"; export * from "./SiteActivityLogItem"; export * from "./Assets"; export * from "./Asset"; @@ -82,9 +89,16 @@ export * from "./UsersNotEnabled"; export * from "./DuplicateUserEmail"; export * from "./UserLimitReached"; export * from "./MissingScopes"; +export * from "./NotEnterprisePlanSite"; +export * from "./ProductFieldDataTaxCategory"; +export * from "./ProductFieldDataEcProductType"; export * from "./ProductFieldData"; export * from "./Product"; export * from "./SkuFieldDataPrice"; +export * from "./SkuFieldDataCompareAtPrice"; +export * from "./SkuFieldDataEcSkuBillingMethod"; +export * from "./SkuFieldDataEcSkuSubscriptionPlanInterval"; +export * from "./SkuFieldDataEcSkuSubscriptionPlan"; export * from "./SkuFieldData"; export * from "./Sku"; export * from "./ProductAndSkUs"; diff --git a/tests/client.test.ts b/tests/client.test.ts new file mode 100644 index 00000000..62b373b9 --- /dev/null +++ b/tests/client.test.ts @@ -0,0 +1,11 @@ +/** +* This is a test file for the SDK. +* +* Add any tests here and make sure to mark this file +* in `.fernignore`. +*/ +describe("test", () => { + it("default", () => { + expect(true).toBe(true); + }); +}); \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index e65fa534..5a306b23 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,7 +8,6 @@ "esModuleInterop": true, "skipLibCheck": true, "declaration": true, - "noUnusedParameters": true, "outDir": "dist", "rootDir": "src", "baseUrl": "src" diff --git a/yarn.lock b/yarn.lock index 7b8409b3..52b935b9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,627 @@ # yarn lockfile v1 +"@ampproject/remapping@^2.2.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== + dependencies: + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" + +"@babel/compat-data@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" + integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== + +"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.0.tgz#56cbda6b185ae9d9bed369816a8f4423c5f2ff1b" + integrity sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.24.0" + "@babel/parser" "^7.24.0" + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.0" + "@babel/types" "^7.24.0" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.23.6", "@babel/generator@^7.7.2": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" + integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== + dependencies: + "@babel/types" "^7.23.6" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + browserslist "^4.22.2" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-module-imports@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== + dependencies: + "@babel/types" "^7.22.15" + +"@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.20" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz#945681931a52f15ce879fd5b86ce2dae6d3d7f2a" + integrity sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w== + +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== + +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + +"@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== + +"@babel/helpers@^7.24.0": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.0.tgz#a3dd462b41769c95db8091e49cfe019389a9409b" + integrity sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA== + dependencies: + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.0" + "@babel/types" "^7.24.0" + +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.0": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.0.tgz#26a3d1ff49031c53a97d03b604375f028746a9ac" + integrity sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.7.2": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" + integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.7.2": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f" + integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/template@^7.22.15", "@babel/template@^7.24.0", "@babel/template@^7.3.3": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50" + integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/parser" "^7.24.0" + "@babel/types" "^7.24.0" + +"@babel/traverse@^7.24.0": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.0.tgz#4a408fbf364ff73135c714a2ab46a5eab2831b1e" + integrity sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.24.0" + "@babel/types" "^7.24.0" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6", "@babel/types@^7.24.0", "@babel/types@^7.3.3": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.0.tgz#3b951f435a92e7333eba05b7566fd297960ea1bf" + integrity sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w== + dependencies: + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + 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" + +"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc" + integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + slash "^3.0.0" + +"@jest/core@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f" + integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== + dependencies: + "@jest/console" "^29.7.0" + "@jest/reporters" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@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.7.0" + jest-config "^29.7.0" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-resolve-dependencies "^29.7.0" + jest-runner "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + jest-watcher "^29.7.0" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7" + integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== + dependencies: + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-mock "^29.7.0" + +"@jest/expect-utils@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" + integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== + dependencies: + jest-get-type "^29.6.3" + +"@jest/expect@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2" + integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== + dependencies: + expect "^29.7.0" + jest-snapshot "^29.7.0" + +"@jest/fake-timers@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565" + integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== + dependencies: + "@jest/types" "^29.6.3" + "@sinonjs/fake-timers" "^10.0.2" + "@types/node" "*" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-util "^29.7.0" + +"@jest/globals@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d" + integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/types" "^29.6.3" + jest-mock "^29.7.0" + +"@jest/reporters@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7" + integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" + "@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 "^6.0.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.1.3" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + jest-worker "^29.7.0" + slash "^3.0.0" + string-length "^4.0.1" + strip-ansi "^6.0.0" + v8-to-istanbul "^9.0.1" + +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/source-map@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4" + integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== + dependencies: + "@jridgewell/trace-mapping" "^0.3.18" + callsites "^3.0.0" + graceful-fs "^4.2.9" + +"@jest/test-result@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c" + integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== + dependencies: + "@jest/console" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce" + integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== + dependencies: + "@jest/test-result" "^29.7.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + slash "^3.0.0" + +"@jest/transform@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" + integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== + dependencies: + "@babel/core" "^7.11.6" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" + 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.7.0" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + write-file-atomic "^4.0.2" + +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== + dependencies: + "@jest/schemas" "^29.6.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@^0.3.2", "@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + +"@sinonjs/commons@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" + integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^10.0.2": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" + integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== + dependencies: + "@sinonjs/commons" "^3.0.0" + +"@types/babel__core@^7.1.14": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== + dependencies: + "@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.8" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" + integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz#7b7502be0aa80cc4ef22978846b983edaafcd4dd" + integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ== + dependencies: + "@babel/types" "^7.20.7" + +"@types/graceful-fs@^4.1.3": + version "4.1.9" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" + integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@^29.5.5": + version "29.5.12" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.12.tgz#7f7dc6eb4cf246d2474ed78744b05d06ce025544" + integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw== + dependencies: + expect "^29.0.0" + pretty-format "^29.0.0" + "@types/node-fetch@2.6.9": version "2.6.9" resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.9.tgz#15f529d247f1ede1824f7e7acdaa192d5f28071e" @@ -11,9 +632,9 @@ form-data "^4.0.0" "@types/node@*": - version "20.11.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.5.tgz#be10c622ca7fcaa3cf226cf80166abc31389d86e" - integrity sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w== + version "20.11.24" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.24.tgz#cc207511104694e84e9fb17f9a0c4c42d4517792" + integrity sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long== dependencies: undici-types "~5.26.4" @@ -27,24 +648,293 @@ resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.8.tgz#f2a7de3c107b89b441e071d5472e6b726b4adf45" integrity sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg== +"@types/stack-utils@^2.0.0": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== + "@types/url-join@4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@types/url-join/-/url-join-4.0.1.tgz#4989c97f969464647a8586c7252d97b449cdc045" integrity sha512-wDXw9LEEUHyV+7UWy7U315nrJGJ7p1BzaCxDpEoLr789Dk1WDVMMlf3iBfbG2F8NdWnYyFbtTxUn2ZNbm1Q4LQ== +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^17.0.8": + version "17.0.32" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229" + integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== + dependencies: + "@types/yargs-parser" "*" + +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +anymatch@^3.0.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -call-bind@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== +babel-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" + integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== + dependencies: + "@jest/transform" "^29.7.0" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^29.6.3" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + +babel-plugin-istanbul@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== 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" + +babel-plugin-jest-hoist@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626" + integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== + dependencies: + "@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@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + 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" + +babel-preset-jest@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" + integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== + dependencies: + babel-plugin-jest-hoist "^29.6.3" + babel-preset-current-node-syntax "^1.0.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browserslist@^4.22.2: + version "4.23.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" + integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== + dependencies: + caniuse-lite "^1.0.30001587" + electron-to-chromium "^1.4.668" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" + +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-lite@^1.0.30001587: + version "1.0.30001593" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001593.tgz#7cda1d9e5b0cad6ebab4133b1f239d4ea44fe659" + integrity sha512-UWM1zlo3cZfkpBysd7AS+z+v007q9G1+fLTUU42rQnY6t2axoogPW/xol6T7juU5EUoOhML4WgBIdG+9yYqAjQ== + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +ci-info@^3.2.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + +cjs-module-lexer@^1.0.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" + integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +collect-v8-coverage@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" + integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== combined-stream@^1.0.8: version "1.0.8" @@ -53,20 +943,191 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" -define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +create-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" + integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== dependencies: - get-intrinsic "^1.2.1" + "@jest/types" "^29.6.3" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-config "^29.7.0" + jest-util "^29.7.0" + prompts "^2.0.1" + +cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +dedent@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" + integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== + +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +define-data-property@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" gopd "^1.0.1" - has-property-descriptors "^1.0.0" delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== + +electron-to-chromium@^1.4.668: + version "1.4.691" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.691.tgz#e3c49de174b36b2bb96d09f44c81ff8ba273d775" + integrity sha512-vJ+/LmKja/St8Ofq4JGMFVZuwG7ECU6akjNSn2/g6nv8xbIBOWGlEs+WA8/3XaWkU0Nlyu0iFGgOxC4mpgFjgA== + +emittery@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" + integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +escalade@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + 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" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + +expect@^29.0.0, expect@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" + integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== + dependencies: + "@jest/expect-utils" "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fb-watchman@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.1" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + form-data@4.0.0, form-data@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" @@ -76,21 +1137,69 @@ form-data@4.0.0, form-data@^4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@^2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + function-bind@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" has-proto "^1.0.1" has-symbols "^1.0.3" hasown "^2.0.0" +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +glob@^7.1.3, glob@^7.1.4: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + 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" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + gopd@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" @@ -98,17 +1207,32 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" - integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== +graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== dependencies: - get-intrinsic "^1.2.2" + es-define-property "^1.0.0" has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== has-symbols@^1.0.3: version "1.0.3" @@ -116,17 +1240,602 @@ has-symbols@^1.0.3: integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + version "2.0.1" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.1.tgz#26f48f039de2c0f8d3356c223fb8d50253519faa" + integrity sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA== dependencies: function-bind "^1.1.2" +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-core-module@^2.13.0: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== + +istanbul-lib-instrument@^5.0.4: + version "5.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" + integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== + 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" + +istanbul-lib-instrument@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz#91655936cf7380e4e473383081e38478b69993b1" + integrity sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw== + dependencies: + "@babel/core" "^7.23.9" + "@babel/parser" "^7.23.9" + "@istanbuljs/schema" "^0.1.3" + istanbul-lib-coverage "^3.2.0" + semver "^7.5.4" + +istanbul-lib-report@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^4.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.1.3: + version "3.1.7" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz#daed12b9e1dca518e15c056e1e537e741280fa0b" + integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +jest-changed-files@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" + integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== + dependencies: + execa "^5.0.0" + jest-util "^29.7.0" + p-limit "^3.1.0" + +jest-circus@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a" + integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^1.0.0" + is-generator-fn "^2.0.0" + jest-each "^29.7.0" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + p-limit "^3.1.0" + pretty-format "^29.7.0" + pure-rand "^6.0.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-cli@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995" + integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== + dependencies: + "@jest/core" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + chalk "^4.0.0" + create-jest "^29.7.0" + exit "^0.1.2" + import-local "^3.0.2" + jest-config "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + yargs "^17.3.1" + +jest-config@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f" + integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== + dependencies: + "@babel/core" "^7.11.6" + "@jest/test-sequencer" "^29.7.0" + "@jest/types" "^29.6.3" + babel-jest "^29.7.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.7.0" + jest-environment-node "^29.7.0" + jest-get-type "^29.6.3" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-runner "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + micromatch "^4.0.4" + parse-json "^5.2.0" + pretty-format "^29.7.0" + slash "^3.0.0" + strip-json-comments "^3.1.1" + +jest-diff@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" + integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-docblock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a" + integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== + dependencies: + detect-newline "^3.0.0" + +jest-each@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1" + integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== + dependencies: + "@jest/types" "^29.6.3" + chalk "^4.0.0" + jest-get-type "^29.6.3" + jest-util "^29.7.0" + pretty-format "^29.7.0" + +jest-environment-node@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376" + integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-mock "^29.7.0" + jest-util "^29.7.0" + +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== + +jest-haste-map@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" + integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== + dependencies: + "@jest/types" "^29.6.3" + "@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.6.3" + jest-util "^29.7.0" + jest-worker "^29.7.0" + micromatch "^4.0.4" + walker "^1.0.8" + optionalDependencies: + fsevents "^2.3.2" + +jest-leak-detector@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728" + integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== + dependencies: + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-matcher-utils@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" + integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== + dependencies: + chalk "^4.0.0" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-message-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" + integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.6.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347" + integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-util "^29.7.0" + +jest-pnp-resolver@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" + integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== + +jest-resolve-dependencies@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428" + integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== + dependencies: + jest-regex-util "^29.6.3" + jest-snapshot "^29.7.0" + +jest-resolve@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30" + integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== + dependencies: + chalk "^4.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-pnp-resolver "^1.2.2" + jest-util "^29.7.0" + jest-validate "^29.7.0" + resolve "^1.20.0" + resolve.exports "^2.0.0" + slash "^3.0.0" + +jest-runner@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e" + integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== + dependencies: + "@jest/console" "^29.7.0" + "@jest/environment" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.13.1" + graceful-fs "^4.2.9" + jest-docblock "^29.7.0" + jest-environment-node "^29.7.0" + jest-haste-map "^29.7.0" + jest-leak-detector "^29.7.0" + jest-message-util "^29.7.0" + jest-resolve "^29.7.0" + jest-runtime "^29.7.0" + jest-util "^29.7.0" + jest-watcher "^29.7.0" + jest-worker "^29.7.0" + p-limit "^3.1.0" + source-map-support "0.5.13" + +jest-runtime@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817" + integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/globals" "^29.7.0" + "@jest/source-map" "^29.6.3" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@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.7.0" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + slash "^3.0.0" + strip-bom "^4.0.0" + +jest-snapshot@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5" + integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== + 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/types" "^7.3.3" + "@jest/expect-utils" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^29.7.0" + graceful-fs "^4.2.9" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + natural-compare "^1.4.0" + pretty-format "^29.7.0" + semver "^7.5.3" + +jest-util@^29.0.0, jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c" + integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== + dependencies: + "@jest/types" "^29.6.3" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^29.6.3" + leven "^3.1.0" + pretty-format "^29.7.0" + +jest-watcher@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2" + integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== + dependencies: + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.13.1" + jest-util "^29.7.0" + string-length "^4.0.1" + +jest-worker@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" + integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== + dependencies: + "@types/node" "*" + jest-util "^29.7.0" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613" + integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== + dependencies: + "@jest/core" "^29.7.0" + "@jest/types" "^29.6.3" + import-local "^3.0.2" + jest-cli "^29.7.0" + js-base64@3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.2.tgz#816d11d81a8aff241603d19ce5761e13e41d7745" integrity sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ== +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash.memoize@4.x: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" + +make-error@1.x: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + mime-db@1.52.0: version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" @@ -139,6 +1848,28 @@ mime-types@^2.1.12: dependencies: mime-db "1.52.0" +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + node-fetch@2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" @@ -146,16 +1877,152 @@ node-fetch@2.7.0: dependencies: whatwg-url "^5.0.0" -object-inspect@^1.9.0: +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +object-inspect@^1.13.1: version "1.13.1" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + 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" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pirates@^4.0.4: + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + prettier@2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== +pretty-format@^29.0.0, pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +prompts@^2.0.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +pure-rand@^6.0.0: + version "6.0.4" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.4.tgz#50b737f6a925468679bff00ad20eade53f37d5c7" + integrity sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA== + qs@6.11.2: version "6.11.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" @@ -163,31 +2030,248 @@ qs@6.11.2: dependencies: side-channel "^1.0.4" -set-function-length@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" - integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== +react-is@^18.0.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" + integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== dependencies: - define-data-property "^1.1.1" + resolve-from "^5.0.0" + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve.exports@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" + integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== + +resolve@^1.20.0: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +semver@^6.3.0, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.5.3, semver@^7.5.4: + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== + dependencies: + lru-cache "^6.0.0" + +set-function-length@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425" + integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g== + dependencies: + define-data-property "^1.1.2" + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.2" + get-intrinsic "^1.2.3" gopd "^1.0.1" has-property-descriptors "^1.0.1" +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +signal-exit@^3.0.3, signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +source-map-support@0.5.13: + version "0.5.13" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +stack-utils@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== + dependencies: + escape-string-regexp "^2.0.0" + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + is-number "^7.0.0" tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== +ts-jest@^29.1.1: + version "29.1.2" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.1.2.tgz#7613d8c81c43c8cb312c6904027257e814c40e09" + integrity sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g== + 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.5.3" + yargs-parser "^21.0.1" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + typescript@4.6.4: version "4.6.4" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.4.tgz#caa78bbc3a59e6a5c510d35703f6a09877ce45e9" @@ -198,11 +2282,35 @@ undici-types@~5.26.4: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + url-join@4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7" integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA== +v8-to-istanbul@^9.0.1: + version "9.2.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz#2ed7644a245cddd83d4e087b9b33b3e62dfd10ad" + integrity sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA== + dependencies: + "@jridgewell/trace-mapping" "^0.3.12" + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^2.0.0" + +walker@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" @@ -215,3 +2323,70 @@ whatwg-url@^5.0.0: dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" + integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^3.0.7" + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@^21.0.1, yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^17.3.1: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + 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" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==