diff --git a/.fern/metadata.json b/.fern/metadata.json index 9d76c5ac..5cc8c89c 100644 --- a/.fern/metadata.json +++ b/.fern/metadata.json @@ -53,10 +53,10 @@ ] } }, - "originGitCommit": "86a4c45d14847babf70751d87de4da7764ecd894", + "originGitCommit": "340529eacf4f1dcc5522e771872c1dd94b9c4891", "originGitCommitIsDirty": false, "invokedBy": "ci", - "requestedVersion": "1.5.5", + "requestedVersion": "1.5.6", "ciProvider": "github", - "sdkVersion": "1.5.5" + "sdkVersion": "1.5.6" } diff --git a/.fern/replay.lock b/.fern/replay.lock index b8cb9bbe..5fa59a8a 100644 --- a/.fern/replay.lock +++ b/.fern/replay.lock @@ -24,5 +24,11 @@ generations: cli_version: unknown generator_versions: fernapi/fern-typescript-node-sdk: 3.70.7 -current_generation: 690e2a4195915e188edcdfd7c7c92e3e4b8d45c0 + - commit_sha: 88adb21b6ea180113400c8518ae988b38175895c + tree_hash: 7141f6088a4e5ee9b0c6b14a4dc75027f38b5afb + timestamp: 2026-07-27T18:02:49.807Z + cli_version: unknown + generator_versions: + fernapi/fern-typescript-node-sdk: 3.70.7 +current_generation: 88adb21b6ea180113400c8518ae988b38175895c patches: [] diff --git a/package.json b/package.json index 37c1e2b6..c0124ab9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@schematichq/schematic-typescript-node", - "version": "1.5.5", + "version": "1.5.6", "private": false, "repository": { "type": "git", diff --git a/reference.md b/reference.md index 0fd29f53..913aff48 100644 --- a/reference.md +++ b/reference.md @@ -57,6 +57,7 @@ await client.getCreditLedger(); await client.accounts.listAccountMembers({ ids: ["ids"], q: "q", + role: "admin", limit: 1000000, offset: 1000000 }); @@ -160,6 +161,7 @@ await client.accounts.getAccountMember("account_member_id"); await client.accounts.countAccountMembers({ ids: ["ids"], q: "q", + role: "admin", limit: 1000000, offset: 1000000 }); @@ -4950,6 +4952,117 @@ await client.checkout.previewCheckoutInternal({ + + + + +
client.checkout.getCompanyBillingDetails(company_id) -> Schematic.GetCompanyBillingDetailsResponse +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```typescript +await client.checkout.getCompanyBillingDetails("company_id"); + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**company_id:** `string` — company_id + +
+
+ +
+
+ +**requestOptions:** `CheckoutClient.RequestOptions` + +
+
+
+
+ + +
+
+
+ +
client.checkout.updateCompanyBillingDetails(company_id, { ...params }) -> Schematic.UpdateCompanyBillingDetailsResponse +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```typescript +await client.checkout.updateCompanyBillingDetails("company_id", { + values: [{ + id: "id", + value: "value" + }] +}); + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**company_id:** `string` — company_id + +
+
+ +
+
+ +**request:** `Schematic.UpdateCompanyBillingDetailsRequestBody` + +
+
+ +
+
+ +**requestOptions:** `CheckoutClient.RequestOptions` + +
+
+
+
+ +
@@ -12316,6 +12429,166 @@ await client.integrationsapi.uninstallIntegration("integration_id"); + + + + +## licenses +
client.licenses.listLicenses({ ...params }) -> Schematic.ListLicensesResponse +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```typescript +await client.licenses.listLicenses({ + featureIds: ["feature_ids"], + ids: ["ids"], + name: "name", + limit: 1000000, + offset: 1000000 +}); + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**request:** `Schematic.ListLicensesRequest` + +
+
+ +
+
+ +**requestOptions:** `LicensesClient.RequestOptions` + +
+
+
+
+ + +
+
+
+ +
client.licenses.getSingleLicense(license_id) -> Schematic.GetSingleLicenseResponse +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```typescript +await client.licenses.getSingleLicense("license_id"); + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**license_id:** `string` — license_id + +
+
+ +
+
+ +**requestOptions:** `LicensesClient.RequestOptions` + +
+
+
+
+ + +
+
+
+ +
client.licenses.countLicenses({ ...params }) -> Schematic.CountLicensesResponse +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```typescript +await client.licenses.countLicenses({ + featureIds: ["feature_ids"], + ids: ["ids"], + name: "name", + limit: 1000000, + offset: 1000000 +}); + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**request:** `Schematic.CountLicensesRequest` + +
+
+ +
+
+ +**requestOptions:** `LicensesClient.RequestOptions` + +
+
+
+
+ +
@@ -12959,6 +13232,60 @@ await client.planmigrations.countMigrations({ + + + + +
client.planmigrations.previewMigration({ ...params }) -> Schematic.PreviewMigrationResponse +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```typescript +await client.planmigrations.previewMigration({ + companyIds: ["company_ids"], + planId: "plan_id", + planVersionIdTo: "plan_version_id_to", + targetPlanType: "plan" +}); + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**request:** `Schematic.PreviewMigrationRequestBody` + +
+
+ +
+
+ +**requestOptions:** `PlanmigrationsClient.RequestOptions` + +
+
+
+
+ +
diff --git a/src/BaseClient.ts b/src/BaseClient.ts index 833d5b4e..7bca48ea 100644 --- a/src/BaseClient.ts +++ b/src/BaseClient.ts @@ -60,8 +60,8 @@ export function normalizeClientOptions> { - const { ids, q, limit, offset } = request; + const { ids, q, role, limit, offset } = request; const _queryParams: Record = { ids, q, + role: + role != null + ? serializers.AccountMemberRole.jsonOrThrow(role, { unrecognizedObjectKeys: "strip" }) + : undefined, limit, offset, }; @@ -302,6 +307,7 @@ export class AccountsClient { * await client.accounts.countAccountMembers({ * ids: ["ids"], * q: "q", + * role: "admin", * limit: 1000000, * offset: 1000000 * }) @@ -317,10 +323,14 @@ export class AccountsClient { request: Schematic.CountAccountMembersRequest = {}, requestOptions?: AccountsClient.RequestOptions, ): Promise> { - const { ids, q, limit, offset } = request; + const { ids, q, role, limit, offset } = request; const _queryParams: Record = { ids, q, + role: + role != null + ? serializers.AccountMemberRole.jsonOrThrow(role, { unrecognizedObjectKeys: "strip" }) + : undefined, limit, offset, }; diff --git a/src/api/resources/accounts/client/requests/CountAccountMembersRequest.ts b/src/api/resources/accounts/client/requests/CountAccountMembersRequest.ts index 9067b98d..35e1a1e2 100644 --- a/src/api/resources/accounts/client/requests/CountAccountMembersRequest.ts +++ b/src/api/resources/accounts/client/requests/CountAccountMembersRequest.ts @@ -1,10 +1,13 @@ // This file was auto-generated by Fern from our API Definition. +import type * as Schematic from "../../../../index"; + /** * @example * { * ids: ["ids"], * q: "q", + * role: "admin", * limit: 1000000, * offset: 1000000 * } @@ -13,6 +16,8 @@ export interface CountAccountMembersRequest { ids?: string | string[]; /** Search filter */ q?: string; + /** Filter by member role */ + role?: Schematic.AccountMemberRole; /** Page limit (default 100) */ limit?: number; /** Page offset (default 0) */ diff --git a/src/api/resources/accounts/client/requests/ListAccountMembersRequest.ts b/src/api/resources/accounts/client/requests/ListAccountMembersRequest.ts index 038208dd..0860fc4a 100644 --- a/src/api/resources/accounts/client/requests/ListAccountMembersRequest.ts +++ b/src/api/resources/accounts/client/requests/ListAccountMembersRequest.ts @@ -1,10 +1,13 @@ // This file was auto-generated by Fern from our API Definition. +import type * as Schematic from "../../../../index"; + /** * @example * { * ids: ["ids"], * q: "q", + * role: "admin", * limit: 1000000, * offset: 1000000 * } @@ -13,6 +16,8 @@ export interface ListAccountMembersRequest { ids?: string | string[]; /** Search filter */ q?: string; + /** Filter by member role */ + role?: Schematic.AccountMemberRole; /** Page limit (default 100) */ limit?: number; /** Page offset (default 0) */ diff --git a/src/api/resources/accounts/types/CountAccountMembersParams.ts b/src/api/resources/accounts/types/CountAccountMembersParams.ts index a71e9b9b..c997c48a 100644 --- a/src/api/resources/accounts/types/CountAccountMembersParams.ts +++ b/src/api/resources/accounts/types/CountAccountMembersParams.ts @@ -1,5 +1,7 @@ // This file was auto-generated by Fern from our API Definition. +import type * as Schematic from "../../../index"; + /** * Input parameters */ @@ -11,4 +13,6 @@ export interface CountAccountMembersParams { offset?: number; /** Search filter */ q?: string; + /** Filter by member role */ + role?: Schematic.AccountMemberRole; } diff --git a/src/api/resources/accounts/types/ListAccountMembersParams.ts b/src/api/resources/accounts/types/ListAccountMembersParams.ts index 2b3f68de..4f2fc38b 100644 --- a/src/api/resources/accounts/types/ListAccountMembersParams.ts +++ b/src/api/resources/accounts/types/ListAccountMembersParams.ts @@ -1,5 +1,7 @@ // This file was auto-generated by Fern from our API Definition. +import type * as Schematic from "../../../index"; + /** * Input parameters */ @@ -11,4 +13,6 @@ export interface ListAccountMembersParams { offset?: number; /** Search filter */ q?: string; + /** Filter by member role */ + role?: Schematic.AccountMemberRole; } diff --git a/src/api/resources/checkout/client/Client.ts b/src/api/resources/checkout/client/Client.ts index 47724ee7..83b91b04 100644 --- a/src/api/resources/checkout/client/Client.ts +++ b/src/api/resources/checkout/client/Client.ts @@ -470,6 +470,275 @@ export class CheckoutClient { return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/checkout-internal/preview"); } + /** + * @param {string} company_id - company_id + * @param {CheckoutClient.RequestOptions} requestOptions - Request-specific configuration. + * + * @throws {@link Schematic.UnauthorizedError} + * @throws {@link Schematic.ForbiddenError} + * @throws {@link Schematic.NotFoundError} + * @throws {@link Schematic.InternalServerError} + * + * @example + * await client.checkout.getCompanyBillingDetails("company_id") + */ + public getCompanyBillingDetails( + company_id: string, + requestOptions?: CheckoutClient.RequestOptions, + ): core.HttpResponsePromise { + return core.HttpResponsePromise.fromPromise(this.__getCompanyBillingDetails(company_id, requestOptions)); + } + + private async __getCompanyBillingDetails( + company_id: string, + requestOptions?: CheckoutClient.RequestOptions, + ): Promise> { + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest(); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, + this._options?.headers, + requestOptions?.headers, + ); + const _response = await (this._options.fetcher ?? core.fetcher)({ + url: core.url.join( + (await core.Supplier.get(this._options.baseUrl)) ?? + (await core.Supplier.get(this._options.environment)) ?? + environments.SchematicEnvironment.Default, + `companies/${core.url.encodePathParam(company_id)}/billing-details`, + ), + method: "GET", + headers: _headers, + queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(), + timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, + maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, + abortSignal: requestOptions?.abortSignal, + fetchFn: this._options?.fetch, + logging: this._options.logging, + }); + if (_response.ok) { + return { + data: serializers.GetCompanyBillingDetailsResponse.parseOrThrow(_response.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + rawResponse: _response.rawResponse, + }; + } + + if (_response.error.reason === "status-code") { + switch (_response.error.statusCode) { + case 401: + throw new Schematic.UnauthorizedError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + case 403: + throw new Schematic.ForbiddenError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + case 404: + throw new Schematic.NotFoundError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + case 500: + throw new Schematic.InternalServerError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + default: + throw new errors.SchematicError({ + statusCode: _response.error.statusCode, + body: _response.error.body, + rawResponse: _response.rawResponse, + }); + } + } + + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/companies/{company_id}/billing-details", + ); + } + + /** + * @param {string} company_id - company_id + * @param {Schematic.UpdateCompanyBillingDetailsRequestBody} request + * @param {CheckoutClient.RequestOptions} requestOptions - Request-specific configuration. + * + * @throws {@link Schematic.BadRequestError} + * @throws {@link Schematic.UnauthorizedError} + * @throws {@link Schematic.ForbiddenError} + * @throws {@link Schematic.NotFoundError} + * @throws {@link Schematic.InternalServerError} + * + * @example + * await client.checkout.updateCompanyBillingDetails("company_id", { + * values: [{ + * id: "id", + * value: "value" + * }] + * }) + */ + public updateCompanyBillingDetails( + company_id: string, + request: Schematic.UpdateCompanyBillingDetailsRequestBody, + requestOptions?: CheckoutClient.RequestOptions, + ): core.HttpResponsePromise { + return core.HttpResponsePromise.fromPromise( + this.__updateCompanyBillingDetails(company_id, request, requestOptions), + ); + } + + private async __updateCompanyBillingDetails( + company_id: string, + request: Schematic.UpdateCompanyBillingDetailsRequestBody, + requestOptions?: CheckoutClient.RequestOptions, + ): Promise> { + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest(); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, + this._options?.headers, + requestOptions?.headers, + ); + const _response = await (this._options.fetcher ?? core.fetcher)({ + url: core.url.join( + (await core.Supplier.get(this._options.baseUrl)) ?? + (await core.Supplier.get(this._options.environment)) ?? + environments.SchematicEnvironment.Default, + `companies/${core.url.encodePathParam(company_id)}/billing-details`, + ), + method: "PUT", + headers: _headers, + contentType: "application/json", + queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(), + requestType: "json", + body: serializers.UpdateCompanyBillingDetailsRequestBody.jsonOrThrow(request, { + unrecognizedObjectKeys: "strip", + }), + timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, + maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, + abortSignal: requestOptions?.abortSignal, + fetchFn: this._options?.fetch, + logging: this._options.logging, + }); + if (_response.ok) { + return { + data: serializers.UpdateCompanyBillingDetailsResponse.parseOrThrow(_response.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + rawResponse: _response.rawResponse, + }; + } + + if (_response.error.reason === "status-code") { + switch (_response.error.statusCode) { + case 400: + throw new Schematic.BadRequestError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + case 401: + throw new Schematic.UnauthorizedError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + case 403: + throw new Schematic.ForbiddenError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + case 404: + throw new Schematic.NotFoundError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + case 500: + throw new Schematic.InternalServerError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + default: + throw new errors.SchematicError({ + statusCode: _response.error.statusCode, + body: _response.error.body, + rawResponse: _response.rawResponse, + }); + } + } + + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PUT", + "/companies/{company_id}/billing-details", + ); + } + /** * @param {Schematic.ManagePlanRequest} request * @param {CheckoutClient.RequestOptions} requestOptions - Request-specific configuration. diff --git a/src/api/resources/checkout/client/requests/UpdateCompanyBillingDetailsRequestBody.ts b/src/api/resources/checkout/client/requests/UpdateCompanyBillingDetailsRequestBody.ts new file mode 100644 index 00000000..a62ad52e --- /dev/null +++ b/src/api/resources/checkout/client/requests/UpdateCompanyBillingDetailsRequestBody.ts @@ -0,0 +1,19 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../../../index"; + +/** + * @example + * { + * values: [{ + * id: "id", + * value: "value" + * }] + * } + */ +export interface UpdateCompanyBillingDetailsRequestBody { + address?: Schematic.CustomerBillingAddress; + email?: string; + phone?: string; + values: Schematic.CheckoutFieldValue[]; +} diff --git a/src/api/resources/checkout/client/requests/index.ts b/src/api/resources/checkout/client/requests/index.ts index a7e95d14..9e841a39 100644 --- a/src/api/resources/checkout/client/requests/index.ts +++ b/src/api/resources/checkout/client/requests/index.ts @@ -1,3 +1,4 @@ export type { CancelSubscriptionRequest } from "./CancelSubscriptionRequest"; export type { CheckoutDataRequestBody } from "./CheckoutDataRequestBody"; +export type { UpdateCompanyBillingDetailsRequestBody } from "./UpdateCompanyBillingDetailsRequestBody"; export type { UpdateTrialEndRequestBody } from "./UpdateTrialEndRequestBody"; diff --git a/src/api/resources/checkout/types/GetCompanyBillingDetailsResponse.ts b/src/api/resources/checkout/types/GetCompanyBillingDetailsResponse.ts new file mode 100644 index 00000000..597b1cf8 --- /dev/null +++ b/src/api/resources/checkout/types/GetCompanyBillingDetailsResponse.ts @@ -0,0 +1,9 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../../index"; + +export interface GetCompanyBillingDetailsResponse { + data: Schematic.CompanyBillingDetailsResponseData; + /** Input parameters */ + params: Record; +} diff --git a/src/api/resources/checkout/types/UpdateCompanyBillingDetailsResponse.ts b/src/api/resources/checkout/types/UpdateCompanyBillingDetailsResponse.ts new file mode 100644 index 00000000..3d2a0fda --- /dev/null +++ b/src/api/resources/checkout/types/UpdateCompanyBillingDetailsResponse.ts @@ -0,0 +1,9 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../../index"; + +export interface UpdateCompanyBillingDetailsResponse { + data: Schematic.CompanyBillingDetailsResponseData; + /** Input parameters */ + params: Record; +} diff --git a/src/api/resources/checkout/types/index.ts b/src/api/resources/checkout/types/index.ts index c59f149c..31c95508 100644 --- a/src/api/resources/checkout/types/index.ts +++ b/src/api/resources/checkout/types/index.ts @@ -1,7 +1,9 @@ export * from "./CancelSubscriptionResponse"; export * from "./CheckoutInternalResponse"; export * from "./GetCheckoutDataResponse"; +export * from "./GetCompanyBillingDetailsResponse"; export * from "./ManagePlanResponse"; export * from "./PreviewCheckoutInternalResponse"; export * from "./PreviewManagePlanResponse"; +export * from "./UpdateCompanyBillingDetailsResponse"; export * from "./UpdateCustomerSubscriptionTrialEndResponse"; diff --git a/src/api/resources/index.ts b/src/api/resources/index.ts index c9af1325..49751ec3 100644 --- a/src/api/resources/index.ts +++ b/src/api/resources/index.ts @@ -42,6 +42,9 @@ export * from "./insights/types"; export * as integrationsapi from "./integrationsapi"; export * from "./integrationsapi/client/requests"; export * from "./integrationsapi/types"; +export * as licenses from "./licenses"; +export * from "./licenses/client/requests"; +export * from "./licenses/types"; export * as planbundle from "./planbundle"; export * from "./planbundle/client/requests"; export * from "./planbundle/types"; diff --git a/src/api/resources/licenses/client/Client.ts b/src/api/resources/licenses/client/Client.ts new file mode 100644 index 00000000..c194700e --- /dev/null +++ b/src/api/resources/licenses/client/Client.ts @@ -0,0 +1,433 @@ +// This file was auto-generated by Fern from our API Definition. + +import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient"; +import * as core from "../../../../core"; +import { mergeHeaders } from "../../../../core/headers"; +import * as environments from "../../../../environments"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError"; +import * as errors from "../../../../errors/index"; +import * as serializers from "../../../../serialization/index"; +import * as Schematic from "../../../index"; + +export declare namespace LicensesClient { + export type Options = BaseClientOptions; + + export interface RequestOptions extends BaseRequestOptions {} +} + +export class LicensesClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + + constructor(options: LicensesClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); + } + + /** + * @param {Schematic.ListLicensesRequest} request + * @param {LicensesClient.RequestOptions} requestOptions - Request-specific configuration. + * + * @throws {@link Schematic.BadRequestError} + * @throws {@link Schematic.UnauthorizedError} + * @throws {@link Schematic.ForbiddenError} + * @throws {@link Schematic.NotFoundError} + * @throws {@link Schematic.InternalServerError} + * + * @example + * await client.licenses.listLicenses({ + * featureIds: ["feature_ids"], + * ids: ["ids"], + * name: "name", + * limit: 1000000, + * offset: 1000000 + * }) + */ + public listLicenses( + request: Schematic.ListLicensesRequest = {}, + requestOptions?: LicensesClient.RequestOptions, + ): core.HttpResponsePromise { + return core.HttpResponsePromise.fromPromise(this.__listLicenses(request, requestOptions)); + } + + private async __listLicenses( + request: Schematic.ListLicensesRequest = {}, + requestOptions?: LicensesClient.RequestOptions, + ): Promise> { + const { featureIds, ids, name, limit, offset } = request; + const _queryParams: Record = { + feature_ids: featureIds, + ids, + name, + limit, + offset, + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest(); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, + this._options?.headers, + requestOptions?.headers, + ); + const _response = await (this._options.fetcher ?? core.fetcher)({ + url: core.url.join( + (await core.Supplier.get(this._options.baseUrl)) ?? + (await core.Supplier.get(this._options.environment)) ?? + environments.SchematicEnvironment.Default, + "licenses", + ), + method: "GET", + headers: _headers, + queryString: core.url + .queryBuilder() + .addMany(_queryParams) + .mergeAdditional(requestOptions?.queryParams) + .build(), + timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, + maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, + abortSignal: requestOptions?.abortSignal, + fetchFn: this._options?.fetch, + logging: this._options.logging, + }); + if (_response.ok) { + return { + data: serializers.ListLicensesResponse.parseOrThrow(_response.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + rawResponse: _response.rawResponse, + }; + } + + if (_response.error.reason === "status-code") { + switch (_response.error.statusCode) { + case 400: + throw new Schematic.BadRequestError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + case 401: + throw new Schematic.UnauthorizedError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + case 403: + throw new Schematic.ForbiddenError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + case 404: + throw new Schematic.NotFoundError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + case 500: + throw new Schematic.InternalServerError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + default: + throw new errors.SchematicError({ + statusCode: _response.error.statusCode, + body: _response.error.body, + rawResponse: _response.rawResponse, + }); + } + } + + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/licenses"); + } + + /** + * @param {string} license_id - license_id + * @param {LicensesClient.RequestOptions} requestOptions - Request-specific configuration. + * + * @throws {@link Schematic.UnauthorizedError} + * @throws {@link Schematic.ForbiddenError} + * @throws {@link Schematic.NotFoundError} + * @throws {@link Schematic.InternalServerError} + * + * @example + * await client.licenses.getSingleLicense("license_id") + */ + public getSingleLicense( + license_id: string, + requestOptions?: LicensesClient.RequestOptions, + ): core.HttpResponsePromise { + return core.HttpResponsePromise.fromPromise(this.__getSingleLicense(license_id, requestOptions)); + } + + private async __getSingleLicense( + license_id: string, + requestOptions?: LicensesClient.RequestOptions, + ): Promise> { + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest(); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, + this._options?.headers, + requestOptions?.headers, + ); + const _response = await (this._options.fetcher ?? core.fetcher)({ + url: core.url.join( + (await core.Supplier.get(this._options.baseUrl)) ?? + (await core.Supplier.get(this._options.environment)) ?? + environments.SchematicEnvironment.Default, + `licenses/${core.url.encodePathParam(license_id)}`, + ), + method: "GET", + headers: _headers, + queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(), + timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, + maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, + abortSignal: requestOptions?.abortSignal, + fetchFn: this._options?.fetch, + logging: this._options.logging, + }); + if (_response.ok) { + return { + data: serializers.GetSingleLicenseResponse.parseOrThrow(_response.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + rawResponse: _response.rawResponse, + }; + } + + if (_response.error.reason === "status-code") { + switch (_response.error.statusCode) { + case 401: + throw new Schematic.UnauthorizedError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + case 403: + throw new Schematic.ForbiddenError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + case 404: + throw new Schematic.NotFoundError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + case 500: + throw new Schematic.InternalServerError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + default: + throw new errors.SchematicError({ + statusCode: _response.error.statusCode, + body: _response.error.body, + rawResponse: _response.rawResponse, + }); + } + } + + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/licenses/{license_id}"); + } + + /** + * @param {Schematic.CountLicensesRequest} request + * @param {LicensesClient.RequestOptions} requestOptions - Request-specific configuration. + * + * @throws {@link Schematic.BadRequestError} + * @throws {@link Schematic.UnauthorizedError} + * @throws {@link Schematic.ForbiddenError} + * @throws {@link Schematic.NotFoundError} + * @throws {@link Schematic.InternalServerError} + * + * @example + * await client.licenses.countLicenses({ + * featureIds: ["feature_ids"], + * ids: ["ids"], + * name: "name", + * limit: 1000000, + * offset: 1000000 + * }) + */ + public countLicenses( + request: Schematic.CountLicensesRequest = {}, + requestOptions?: LicensesClient.RequestOptions, + ): core.HttpResponsePromise { + return core.HttpResponsePromise.fromPromise(this.__countLicenses(request, requestOptions)); + } + + private async __countLicenses( + request: Schematic.CountLicensesRequest = {}, + requestOptions?: LicensesClient.RequestOptions, + ): Promise> { + const { featureIds, ids, name, limit, offset } = request; + const _queryParams: Record = { + feature_ids: featureIds, + ids, + name, + limit, + offset, + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest(); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, + this._options?.headers, + requestOptions?.headers, + ); + const _response = await (this._options.fetcher ?? core.fetcher)({ + url: core.url.join( + (await core.Supplier.get(this._options.baseUrl)) ?? + (await core.Supplier.get(this._options.environment)) ?? + environments.SchematicEnvironment.Default, + "licenses/count", + ), + method: "GET", + headers: _headers, + queryString: core.url + .queryBuilder() + .addMany(_queryParams) + .mergeAdditional(requestOptions?.queryParams) + .build(), + timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, + maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, + abortSignal: requestOptions?.abortSignal, + fetchFn: this._options?.fetch, + logging: this._options.logging, + }); + if (_response.ok) { + return { + data: serializers.CountLicensesResponse.parseOrThrow(_response.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + rawResponse: _response.rawResponse, + }; + } + + if (_response.error.reason === "status-code") { + switch (_response.error.statusCode) { + case 400: + throw new Schematic.BadRequestError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + case 401: + throw new Schematic.UnauthorizedError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + case 403: + throw new Schematic.ForbiddenError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + case 404: + throw new Schematic.NotFoundError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + case 500: + throw new Schematic.InternalServerError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + default: + throw new errors.SchematicError({ + statusCode: _response.error.statusCode, + body: _response.error.body, + rawResponse: _response.rawResponse, + }); + } + } + + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/licenses/count"); + } +} diff --git a/src/api/resources/licenses/client/index.ts b/src/api/resources/licenses/client/index.ts new file mode 100644 index 00000000..415726b7 --- /dev/null +++ b/src/api/resources/licenses/client/index.ts @@ -0,0 +1 @@ +export * from "./requests"; diff --git a/src/api/resources/licenses/client/requests/CountLicensesRequest.ts b/src/api/resources/licenses/client/requests/CountLicensesRequest.ts new file mode 100644 index 00000000..7aec83a7 --- /dev/null +++ b/src/api/resources/licenses/client/requests/CountLicensesRequest.ts @@ -0,0 +1,21 @@ +// This file was auto-generated by Fern from our API Definition. + +/** + * @example + * { + * featureIds: ["feature_ids"], + * ids: ["ids"], + * name: "name", + * limit: 1000000, + * offset: 1000000 + * } + */ +export interface CountLicensesRequest { + featureIds?: string | string[]; + ids?: string | string[]; + name?: string; + /** Page limit (default 100) */ + limit?: number; + /** Page offset (default 0) */ + offset?: number; +} diff --git a/src/api/resources/licenses/client/requests/ListLicensesRequest.ts b/src/api/resources/licenses/client/requests/ListLicensesRequest.ts new file mode 100644 index 00000000..57770308 --- /dev/null +++ b/src/api/resources/licenses/client/requests/ListLicensesRequest.ts @@ -0,0 +1,21 @@ +// This file was auto-generated by Fern from our API Definition. + +/** + * @example + * { + * featureIds: ["feature_ids"], + * ids: ["ids"], + * name: "name", + * limit: 1000000, + * offset: 1000000 + * } + */ +export interface ListLicensesRequest { + featureIds?: string | string[]; + ids?: string | string[]; + name?: string; + /** Page limit (default 100) */ + limit?: number; + /** Page offset (default 0) */ + offset?: number; +} diff --git a/src/api/resources/licenses/client/requests/index.ts b/src/api/resources/licenses/client/requests/index.ts new file mode 100644 index 00000000..9fbe4fda --- /dev/null +++ b/src/api/resources/licenses/client/requests/index.ts @@ -0,0 +1,2 @@ +export type { CountLicensesRequest } from "./CountLicensesRequest"; +export type { ListLicensesRequest } from "./ListLicensesRequest"; diff --git a/src/api/resources/licenses/exports.ts b/src/api/resources/licenses/exports.ts new file mode 100644 index 00000000..5d36506b --- /dev/null +++ b/src/api/resources/licenses/exports.ts @@ -0,0 +1,4 @@ +// This file was auto-generated by Fern from our API Definition. + +export { LicensesClient } from "./client/Client"; +export * from "./client/index"; diff --git a/src/api/resources/licenses/index.ts b/src/api/resources/licenses/index.ts new file mode 100644 index 00000000..d2ec2302 --- /dev/null +++ b/src/api/resources/licenses/index.ts @@ -0,0 +1,2 @@ +export * from "./client"; +export * from "./types"; diff --git a/src/api/resources/licenses/types/CountLicensesParams.ts b/src/api/resources/licenses/types/CountLicensesParams.ts new file mode 100644 index 00000000..e4cf31d9 --- /dev/null +++ b/src/api/resources/licenses/types/CountLicensesParams.ts @@ -0,0 +1,14 @@ +// This file was auto-generated by Fern from our API Definition. + +/** + * Input parameters + */ +export interface CountLicensesParams { + featureIds?: string[]; + ids?: string[]; + /** Page limit (default 100) */ + limit?: number; + name?: string; + /** Page offset (default 0) */ + offset?: number; +} diff --git a/src/api/resources/licenses/types/CountLicensesResponse.ts b/src/api/resources/licenses/types/CountLicensesResponse.ts new file mode 100644 index 00000000..9126f830 --- /dev/null +++ b/src/api/resources/licenses/types/CountLicensesResponse.ts @@ -0,0 +1,9 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../../index"; + +export interface CountLicensesResponse { + data: Schematic.CountResponse; + /** Input parameters */ + params: Schematic.CountLicensesParams; +} diff --git a/src/api/resources/licenses/types/GetSingleLicenseResponse.ts b/src/api/resources/licenses/types/GetSingleLicenseResponse.ts new file mode 100644 index 00000000..2ae1a959 --- /dev/null +++ b/src/api/resources/licenses/types/GetSingleLicenseResponse.ts @@ -0,0 +1,9 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../../index"; + +export interface GetSingleLicenseResponse { + data: Schematic.LicenseResponseData; + /** Input parameters */ + params: Record; +} diff --git a/src/api/resources/licenses/types/ListLicensesParams.ts b/src/api/resources/licenses/types/ListLicensesParams.ts new file mode 100644 index 00000000..718f0374 --- /dev/null +++ b/src/api/resources/licenses/types/ListLicensesParams.ts @@ -0,0 +1,14 @@ +// This file was auto-generated by Fern from our API Definition. + +/** + * Input parameters + */ +export interface ListLicensesParams { + featureIds?: string[]; + ids?: string[]; + /** Page limit (default 100) */ + limit?: number; + name?: string; + /** Page offset (default 0) */ + offset?: number; +} diff --git a/src/api/resources/licenses/types/ListLicensesResponse.ts b/src/api/resources/licenses/types/ListLicensesResponse.ts new file mode 100644 index 00000000..539550c2 --- /dev/null +++ b/src/api/resources/licenses/types/ListLicensesResponse.ts @@ -0,0 +1,9 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../../index"; + +export interface ListLicensesResponse { + data: Schematic.LicenseResponseData[]; + /** Input parameters */ + params: Schematic.ListLicensesParams; +} diff --git a/src/api/resources/licenses/types/index.ts b/src/api/resources/licenses/types/index.ts new file mode 100644 index 00000000..6b6bb8a4 --- /dev/null +++ b/src/api/resources/licenses/types/index.ts @@ -0,0 +1,5 @@ +export * from "./CountLicensesParams"; +export * from "./CountLicensesResponse"; +export * from "./GetSingleLicenseResponse"; +export * from "./ListLicensesParams"; +export * from "./ListLicensesResponse"; diff --git a/src/api/resources/planmigrations/client/Client.ts b/src/api/resources/planmigrations/client/Client.ts index 107fcf86..0d8a01a5 100644 --- a/src/api/resources/planmigrations/client/Client.ts +++ b/src/api/resources/planmigrations/client/Client.ts @@ -1171,4 +1171,145 @@ export class PlanmigrationsClient { "/plan-version-migrations/count", ); } + + /** + * @param {Schematic.PreviewMigrationRequestBody} request + * @param {PlanmigrationsClient.RequestOptions} requestOptions - Request-specific configuration. + * + * @throws {@link Schematic.BadRequestError} + * @throws {@link Schematic.UnauthorizedError} + * @throws {@link Schematic.ForbiddenError} + * @throws {@link Schematic.NotFoundError} + * @throws {@link Schematic.InternalServerError} + * + * @example + * await client.planmigrations.previewMigration({ + * companyIds: ["company_ids"], + * planId: "plan_id", + * planVersionIdTo: "plan_version_id_to", + * targetPlanType: "plan" + * }) + */ + public previewMigration( + request: Schematic.PreviewMigrationRequestBody, + requestOptions?: PlanmigrationsClient.RequestOptions, + ): core.HttpResponsePromise { + return core.HttpResponsePromise.fromPromise(this.__previewMigration(request, requestOptions)); + } + + private async __previewMigration( + request: Schematic.PreviewMigrationRequestBody, + requestOptions?: PlanmigrationsClient.RequestOptions, + ): Promise> { + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest(); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, + this._options?.headers, + requestOptions?.headers, + ); + const _response = await (this._options.fetcher ?? core.fetcher)({ + url: core.url.join( + (await core.Supplier.get(this._options.baseUrl)) ?? + (await core.Supplier.get(this._options.environment)) ?? + environments.SchematicEnvironment.Default, + "plan-version-migrations/preview", + ), + method: "POST", + headers: _headers, + contentType: "application/json", + queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(), + requestType: "json", + body: serializers.PreviewMigrationRequestBody.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), + timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, + maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, + abortSignal: requestOptions?.abortSignal, + fetchFn: this._options?.fetch, + logging: this._options.logging, + }); + if (_response.ok) { + return { + data: serializers.PreviewMigrationResponse.parseOrThrow(_response.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + rawResponse: _response.rawResponse, + }; + } + + if (_response.error.reason === "status-code") { + switch (_response.error.statusCode) { + case 400: + throw new Schematic.BadRequestError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + case 401: + throw new Schematic.UnauthorizedError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + case 403: + throw new Schematic.ForbiddenError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + case 404: + throw new Schematic.NotFoundError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + case 500: + throw new Schematic.InternalServerError( + serializers.ApiError.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + _response.rawResponse, + ); + default: + throw new errors.SchematicError({ + statusCode: _response.error.statusCode, + body: _response.error.body, + rawResponse: _response.rawResponse, + }); + } + } + + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "POST", + "/plan-version-migrations/preview", + ); + } } diff --git a/src/api/resources/planmigrations/client/requests/PreviewMigrationRequestBody.ts b/src/api/resources/planmigrations/client/requests/PreviewMigrationRequestBody.ts new file mode 100644 index 00000000..8032162a --- /dev/null +++ b/src/api/resources/planmigrations/client/requests/PreviewMigrationRequestBody.ts @@ -0,0 +1,19 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../../../index"; + +/** + * @example + * { + * companyIds: ["company_ids"], + * planId: "plan_id", + * planVersionIdTo: "plan_version_id_to", + * targetPlanType: "plan" + * } + */ +export interface PreviewMigrationRequestBody { + companyIds: string[]; + planId: string; + planVersionIdTo: string; + targetPlanType: Schematic.PlanType; +} diff --git a/src/api/resources/planmigrations/client/requests/index.ts b/src/api/resources/planmigrations/client/requests/index.ts index e86ab2fc..fcc3febc 100644 --- a/src/api/resources/planmigrations/client/requests/index.ts +++ b/src/api/resources/planmigrations/client/requests/index.ts @@ -3,4 +3,5 @@ export type { CountMigrationsRequest } from "./CountMigrationsRequest"; export type { CreateMigrationInput } from "./CreateMigrationInput"; export type { ListCompanyMigrationsRequest } from "./ListCompanyMigrationsRequest"; export type { ListMigrationsRequest } from "./ListMigrationsRequest"; +export type { PreviewMigrationRequestBody } from "./PreviewMigrationRequestBody"; export type { RetryMigrationRequestBody } from "./RetryMigrationRequestBody"; diff --git a/src/api/resources/planmigrations/types/PreviewMigrationResponse.ts b/src/api/resources/planmigrations/types/PreviewMigrationResponse.ts new file mode 100644 index 00000000..bd810e68 --- /dev/null +++ b/src/api/resources/planmigrations/types/PreviewMigrationResponse.ts @@ -0,0 +1,9 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../../index"; + +export interface PreviewMigrationResponse { + data: Schematic.PlanVersionMigrationPreviewResponseData; + /** Input parameters */ + params: Record; +} diff --git a/src/api/resources/planmigrations/types/index.ts b/src/api/resources/planmigrations/types/index.ts index ddac476e..3f50410d 100644 --- a/src/api/resources/planmigrations/types/index.ts +++ b/src/api/resources/planmigrations/types/index.ts @@ -8,5 +8,6 @@ export * from "./ListCompanyMigrationsParams"; export * from "./ListCompanyMigrationsResponse"; export * from "./ListMigrationsParams"; export * from "./ListMigrationsResponse"; +export * from "./PreviewMigrationResponse"; export * from "./RetryCompanyMigrationResponse"; export * from "./RetryMigrationResponse"; diff --git a/src/api/types/BillingCreditGrantZeroedOutReason.ts b/src/api/types/BillingCreditGrantZeroedOutReason.ts index 74bdd0ed..db02ba70 100644 --- a/src/api/types/BillingCreditGrantZeroedOutReason.ts +++ b/src/api/types/BillingCreditGrantZeroedOutReason.ts @@ -4,6 +4,7 @@ export const BillingCreditGrantZeroedOutReason = { CustomerArchived: "customer_archived", Expired: "expired", IntegrationUninstalled: "integration_uninstalled", + LicenseRetired: "license_retired", Manual: "manual", PlanChange: "plan_change", PlanPeriodReset: "plan_period_reset", diff --git a/src/api/types/CompanyBillingAddressView.ts b/src/api/types/CompanyBillingAddressView.ts new file mode 100644 index 00000000..9419efea --- /dev/null +++ b/src/api/types/CompanyBillingAddressView.ts @@ -0,0 +1,10 @@ +// This file was auto-generated by Fern from our API Definition. + +export interface CompanyBillingAddressView { + city: string; + country: string; + line1: string; + line2: string; + postalCode: string; + state: string; +} diff --git a/src/api/types/CompanyBillingCheckoutSettings.ts b/src/api/types/CompanyBillingCheckoutSettings.ts new file mode 100644 index 00000000..96115f48 --- /dev/null +++ b/src/api/types/CompanyBillingCheckoutSettings.ts @@ -0,0 +1,7 @@ +// This file was auto-generated by Fern from our API Definition. + +export interface CompanyBillingCheckoutSettings { + collectAddress: boolean; + collectEmail: boolean; + collectPhone: boolean; +} diff --git a/src/api/types/CompanyBillingDetailsResponseData.ts b/src/api/types/CompanyBillingDetailsResponseData.ts new file mode 100644 index 00000000..dd327af0 --- /dev/null +++ b/src/api/types/CompanyBillingDetailsResponseData.ts @@ -0,0 +1,11 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../index"; + +export interface CompanyBillingDetailsResponseData { + address?: Schematic.CompanyBillingAddressView; + checkoutSettings: Schematic.CompanyBillingCheckoutSettings; + customFields: Schematic.CheckoutFieldWithValue[]; + email?: string; + phone?: string; +} diff --git a/src/api/types/CompanyBillingDetailsView.ts b/src/api/types/CompanyBillingDetailsView.ts new file mode 100644 index 00000000..1c4bdfc8 --- /dev/null +++ b/src/api/types/CompanyBillingDetailsView.ts @@ -0,0 +1,11 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../index"; + +export interface CompanyBillingDetailsView { + address?: Schematic.CompanyBillingAddressView; + checkoutSettings: Schematic.CompanyBillingCheckoutSettings; + customFields: Schematic.CheckoutFieldWithValue[]; + email?: string; + phone?: string; +} diff --git a/src/api/types/CreateEntitlementInBundleRequestBody.ts b/src/api/types/CreateEntitlementInBundleRequestBody.ts index 56030bf0..fa3455ce 100644 --- a/src/api/types/CreateEntitlementInBundleRequestBody.ts +++ b/src/api/types/CreateEntitlementInBundleRequestBody.ts @@ -34,6 +34,7 @@ export interface CreateEntitlementInBundleRequestBody { valueNumeric?: number; valueTraitId?: string; valueType: Schematic.EntitlementValueType; + warningTiers?: Schematic.WarningTierRequestBody[]; yearlyMeteredPriceId?: string; yearlyPriceTiers?: Schematic.CreatePriceTierRequestBody[]; yearlyUnitPrice?: number; diff --git a/src/api/types/CreditsAutoTopupSuccess.ts b/src/api/types/CreditsAutoTopupSuccess.ts new file mode 100644 index 00000000..b72c9b45 --- /dev/null +++ b/src/api/types/CreditsAutoTopupSuccess.ts @@ -0,0 +1,10 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../index"; + +export interface CreditsAutoTopupSuccess { + company?: Schematic.CreditsAutoTopupCompanySummary; + credit?: Schematic.CreditsAutoTopupCreditSummary; + grantId: string; + quantity: number; +} diff --git a/src/api/types/CreditsCreditPurchaseSuccess.ts b/src/api/types/CreditsCreditPurchaseSuccess.ts new file mode 100644 index 00000000..7be56451 --- /dev/null +++ b/src/api/types/CreditsCreditPurchaseSuccess.ts @@ -0,0 +1,12 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../index"; + +export interface CreditsCreditPurchaseSuccess { + bundleId: string; + bundleName: string; + company?: Schematic.CreditsWebhookCompanySummary; + credit?: Schematic.CreditsWebhookCreditSummary; + grantIds: string[]; + quantity: number; +} diff --git a/src/api/types/CreditsWebhookCompanySummary.ts b/src/api/types/CreditsWebhookCompanySummary.ts new file mode 100644 index 00000000..422b3fbb --- /dev/null +++ b/src/api/types/CreditsWebhookCompanySummary.ts @@ -0,0 +1,6 @@ +// This file was auto-generated by Fern from our API Definition. + +export interface CreditsWebhookCompanySummary { + id: string; + name: string; +} diff --git a/src/api/types/CreditsWebhookCreditSummary.ts b/src/api/types/CreditsWebhookCreditSummary.ts new file mode 100644 index 00000000..99415f9f --- /dev/null +++ b/src/api/types/CreditsWebhookCreditSummary.ts @@ -0,0 +1,6 @@ +// This file was auto-generated by Fern from our API Definition. + +export interface CreditsWebhookCreditSummary { + id: string; + name: string; +} diff --git a/src/api/types/CustomerBillingAddress.ts b/src/api/types/CustomerBillingAddress.ts new file mode 100644 index 00000000..3ac03d9b --- /dev/null +++ b/src/api/types/CustomerBillingAddress.ts @@ -0,0 +1,10 @@ +// This file was auto-generated by Fern from our API Definition. + +export interface CustomerBillingAddress { + city: string; + country: string; + line1: string; + line2: string; + postalCode: string; + state: string; +} diff --git a/src/api/types/FeatureDetailResponseData.ts b/src/api/types/FeatureDetailResponseData.ts index 06a88634..37316644 100644 --- a/src/api/types/FeatureDetailResponseData.ts +++ b/src/api/types/FeatureDetailResponseData.ts @@ -4,6 +4,8 @@ import type * as Schematic from "../index"; export interface FeatureDetailResponseData { billingLinkedResource?: Schematic.BillingLinkedResourceResponseData; + /** The billing provider product that sells this feature in the current environment. Set for license features once they have been priced in a plan; a feature priced in several environments has a different product in each. */ + billingProduct?: Schematic.BillingProductResponseData; createdAt: Date; description: string; eventSubtype?: string; @@ -12,6 +14,8 @@ export interface FeatureDetailResponseData { flags: Schematic.FlagDetailResponseData[]; icon: string; id: string; + /** The license sold through this feature. Set only on features of type license, and created automatically with them. */ + licenseId?: string; lifecyclePhase?: Schematic.FeatureLifecyclePhase; maintainer?: Schematic.AccountMemberResponseData; maintainerAccountMemberId?: string; @@ -22,4 +26,6 @@ export interface FeatureDetailResponseData { trait?: Schematic.EntityTraitDefinitionResponseData; traitId?: string; updatedAt: Date; + /** Set when the feature carries a pay-in-advance quantity. Provisioned lazily for other feature types, and at creation for license features. */ + usageLimitTraitId?: string; } diff --git a/src/api/types/FeatureInPlanResponseData.ts b/src/api/types/FeatureInPlanResponseData.ts index 4f530a0d..9d09f73f 100644 --- a/src/api/types/FeatureInPlanResponseData.ts +++ b/src/api/types/FeatureInPlanResponseData.ts @@ -12,6 +12,8 @@ export interface FeatureInPlanResponseData { flags: Schematic.FlagInPlanResponseData[]; icon: string; id: string; + /** The license sold through this feature. Set only on features of type license, and created automatically with them. */ + licenseId?: string; lifecyclePhase?: Schematic.FeatureLifecyclePhase; maintainerAccountMemberId?: string; name: string; @@ -21,4 +23,6 @@ export interface FeatureInPlanResponseData { trait?: Schematic.EntityTraitDefinitionResponseData; traitId?: string; updatedAt: Date; + /** Set when the feature carries a pay-in-advance quantity. Provisioned lazily for other feature types, and at creation for license features. */ + usageLimitTraitId?: string; } diff --git a/src/api/types/FeatureResponseData.ts b/src/api/types/FeatureResponseData.ts index 790a2391..155f5212 100644 --- a/src/api/types/FeatureResponseData.ts +++ b/src/api/types/FeatureResponseData.ts @@ -9,6 +9,8 @@ export interface FeatureResponseData { featureType: Schematic.FeatureType; icon: string; id: string; + /** The license sold through this feature. Set only on features of type license, and created automatically with them. */ + licenseId?: string; lifecyclePhase?: Schematic.FeatureLifecyclePhase; maintainerAccountMemberId?: string; name: string; @@ -16,4 +18,6 @@ export interface FeatureResponseData { singularName?: string; traitId?: string; updatedAt: Date; + /** Set when the feature carries a pay-in-advance quantity. Provisioned lazily for other feature types, and at creation for license features. */ + usageLimitTraitId?: string; } diff --git a/src/api/types/FeatureType.ts b/src/api/types/FeatureType.ts index dd5d5401..58f3bfa9 100644 --- a/src/api/types/FeatureType.ts +++ b/src/api/types/FeatureType.ts @@ -3,6 +3,7 @@ export const FeatureType = { Boolean: "boolean", Event: "event", + License: "license", Trait: "trait", } as const; export type FeatureType = (typeof FeatureType)[keyof typeof FeatureType]; diff --git a/src/api/types/FeatureView.ts b/src/api/types/FeatureView.ts index 2bd0f668..db333bcf 100644 --- a/src/api/types/FeatureView.ts +++ b/src/api/types/FeatureView.ts @@ -5,6 +5,7 @@ import type * as Schematic from "../index"; export interface FeatureView { accountId: string; billingLinkedResource?: Schematic.BillingLinkedResourceResponseData; + billingProduct?: Schematic.BillingProductResponseData; createdAt: Date; description: string; eventSubtype?: string; @@ -13,6 +14,7 @@ export interface FeatureView { flags: Schematic.FlagView[]; icon: string; id: string; + licenseId?: string; lifecyclePhase?: Schematic.FeatureLifecyclePhase; name: string; plans: Schematic.PreviewObject[]; diff --git a/src/api/types/LicenseResponseData.ts b/src/api/types/LicenseResponseData.ts new file mode 100644 index 00000000..2175ef76 --- /dev/null +++ b/src/api/types/LicenseResponseData.ts @@ -0,0 +1,8 @@ +// This file was auto-generated by Fern from our API Definition. + +export interface LicenseResponseData { + createdAt: Date; + id: string; + name: string; + updatedAt: Date; +} diff --git a/src/api/types/PlanVersionMigrationPreviewCompanyResponseData.ts b/src/api/types/PlanVersionMigrationPreviewCompanyResponseData.ts new file mode 100644 index 00000000..7fcb9e8a --- /dev/null +++ b/src/api/types/PlanVersionMigrationPreviewCompanyResponseData.ts @@ -0,0 +1,10 @@ +// This file was auto-generated by Fern from our API Definition. + +export interface PlanVersionMigrationPreviewCompanyResponseData { + companyId: string; + hasBillingChanges: boolean; + hasCustomPricing: boolean; + note?: string; + planVersionIdFrom?: string; + willUpdateSubscription: boolean; +} diff --git a/src/api/types/PlanVersionMigrationPreviewResponseData.ts b/src/api/types/PlanVersionMigrationPreviewResponseData.ts new file mode 100644 index 00000000..ff761750 --- /dev/null +++ b/src/api/types/PlanVersionMigrationPreviewResponseData.ts @@ -0,0 +1,7 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../index"; + +export interface PlanVersionMigrationPreviewResponseData { + companies: Schematic.PlanVersionMigrationPreviewCompanyResponseData[]; +} diff --git a/src/api/types/WebhookRequestType.ts b/src/api/types/WebhookRequestType.ts index 02b83cf9..0343dc77 100644 --- a/src/api/types/WebhookRequestType.ts +++ b/src/api/types/WebhookRequestType.ts @@ -13,6 +13,7 @@ export const WebhookRequestType = { CompanyUpdated: "company.updated", CreditLimitReached: "credit.limit.reached", CreditLimitWarning: "credit.limit.warning", + CreditPurchaseSuccess: "credit.purchase.success", EntitlementLimitReached: "entitlement.limit.reached", EntitlementLimitWarning: "entitlement.limit.warning", EntitlementSoftLimitReached: "entitlement.soft_limit.reached", @@ -40,5 +41,6 @@ export const WebhookRequestType = { UserUpdated: "user.updated", AutoTopupHardFailure: "auto.topup.hard.failure", AutoTopupRetryExceeded: "auto.topup.retry.exceeded", + AutoTopupSuccess: "auto.topup.success", } as const; export type WebhookRequestType = (typeof WebhookRequestType)[keyof typeof WebhookRequestType]; diff --git a/src/api/types/index.ts b/src/api/types/index.ts index 873eb82c..1dad8935 100644 --- a/src/api/types/index.ts +++ b/src/api/types/index.ts @@ -87,6 +87,10 @@ export * from "./CheckoutFieldWithValue"; export * from "./CheckoutSettingsResponseData"; export * from "./CheckoutSubscription"; export * from "./ClerkIntegrationConfig"; +export * from "./CompanyBillingAddressView"; +export * from "./CompanyBillingCheckoutSettings"; +export * from "./CompanyBillingDetailsResponseData"; +export * from "./CompanyBillingDetailsView"; export * from "./CompanyBillingEntityResponseData"; export * from "./CompanyBillingEntitySubscriptionResponseData"; export * from "./CompanyCreditBalance"; @@ -159,6 +163,10 @@ export * from "./CreditsAutoTopupCompanySummary"; export * from "./CreditsAutoTopupCreditSummary"; export * from "./CreditsAutoTopupHardFailure"; export * from "./CreditsAutoTopupRetryFailure"; +export * from "./CreditsAutoTopupSuccess"; +export * from "./CreditsCreditPurchaseSuccess"; +export * from "./CreditsWebhookCompanySummary"; +export * from "./CreditsWebhookCreditSummary"; export * from "./CreditTransferResponseData"; export * from "./CreditTransferView"; export * from "./CreditTriggerConfig"; @@ -166,6 +174,7 @@ export * from "./CreditUsage"; export * from "./CreditUsageAggregation"; export * from "./CreditUsageReason"; export * from "./CurrencyPriceRequestBody"; +export * from "./CustomerBillingAddress"; export * from "./CustomPlanActivationStrategy"; export * from "./CustomPlanBillingResponseData"; export * from "./CustomPlanBillingStatus"; @@ -250,6 +259,7 @@ export * from "./InvoiceResponseData"; export * from "./InvoiceStatus"; export * from "./IssueTemporaryAccessTokenResponseData"; export * from "./KeysRequestBody"; +export * from "./LicenseResponseData"; export * from "./LimitTimeSeriesPointResponseData"; export * from "./ManagePlanPreviewResponseResponseData"; export * from "./ManagePlanRequest"; @@ -297,6 +307,8 @@ export * from "./PlanTraitResponseData"; export * from "./PlanType"; export * from "./PlanVersionCompanyMigrationResponseData"; export * from "./PlanVersionCompanyMigrationStatus"; +export * from "./PlanVersionMigrationPreviewCompanyResponseData"; +export * from "./PlanVersionMigrationPreviewResponseData"; export * from "./PlanVersionMigrationResponseData"; export * from "./PlanVersionMigrationStatus"; export * from "./PlanVersionMigrationStrategy"; diff --git a/src/serialization/resources/accounts/types/CountAccountMembersParams.ts b/src/serialization/resources/accounts/types/CountAccountMembersParams.ts index 3f27d7be..0015842d 100644 --- a/src/serialization/resources/accounts/types/CountAccountMembersParams.ts +++ b/src/serialization/resources/accounts/types/CountAccountMembersParams.ts @@ -3,6 +3,7 @@ import type * as Schematic from "../../../../api/index"; import * as core from "../../../../core"; import type * as serializers from "../../../index"; +import { AccountMemberRole } from "../../../types/AccountMemberRole"; export const CountAccountMembersParams: core.serialization.ObjectSchema< serializers.CountAccountMembersParams.Raw, @@ -12,6 +13,7 @@ export const CountAccountMembersParams: core.serialization.ObjectSchema< limit: core.serialization.number().optional(), offset: core.serialization.number().optional(), q: core.serialization.string().optional(), + role: AccountMemberRole.optional(), }); export declare namespace CountAccountMembersParams { @@ -20,5 +22,6 @@ export declare namespace CountAccountMembersParams { limit?: number | null; offset?: number | null; q?: string | null; + role?: AccountMemberRole.Raw | null; } } diff --git a/src/serialization/resources/accounts/types/ListAccountMembersParams.ts b/src/serialization/resources/accounts/types/ListAccountMembersParams.ts index e6bba2b9..93ca4e07 100644 --- a/src/serialization/resources/accounts/types/ListAccountMembersParams.ts +++ b/src/serialization/resources/accounts/types/ListAccountMembersParams.ts @@ -3,6 +3,7 @@ import type * as Schematic from "../../../../api/index"; import * as core from "../../../../core"; import type * as serializers from "../../../index"; +import { AccountMemberRole } from "../../../types/AccountMemberRole"; export const ListAccountMembersParams: core.serialization.ObjectSchema< serializers.ListAccountMembersParams.Raw, @@ -12,6 +13,7 @@ export const ListAccountMembersParams: core.serialization.ObjectSchema< limit: core.serialization.number().optional(), offset: core.serialization.number().optional(), q: core.serialization.string().optional(), + role: AccountMemberRole.optional(), }); export declare namespace ListAccountMembersParams { @@ -20,5 +22,6 @@ export declare namespace ListAccountMembersParams { limit?: number | null; offset?: number | null; q?: string | null; + role?: AccountMemberRole.Raw | null; } } diff --git a/src/serialization/resources/checkout/client/requests/UpdateCompanyBillingDetailsRequestBody.ts b/src/serialization/resources/checkout/client/requests/UpdateCompanyBillingDetailsRequestBody.ts new file mode 100644 index 00000000..6eccfc82 --- /dev/null +++ b/src/serialization/resources/checkout/client/requests/UpdateCompanyBillingDetailsRequestBody.ts @@ -0,0 +1,26 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../../../../api/index"; +import * as core from "../../../../../core"; +import type * as serializers from "../../../../index"; +import { CheckoutFieldValue } from "../../../../types/CheckoutFieldValue"; +import { CustomerBillingAddress } from "../../../../types/CustomerBillingAddress"; + +export const UpdateCompanyBillingDetailsRequestBody: core.serialization.Schema< + serializers.UpdateCompanyBillingDetailsRequestBody.Raw, + Schematic.UpdateCompanyBillingDetailsRequestBody +> = core.serialization.object({ + address: CustomerBillingAddress.optional(), + email: core.serialization.string().optional(), + phone: core.serialization.string().optional(), + values: core.serialization.list(CheckoutFieldValue), +}); + +export declare namespace UpdateCompanyBillingDetailsRequestBody { + export interface Raw { + address?: CustomerBillingAddress.Raw | null; + email?: string | null; + phone?: string | null; + values: CheckoutFieldValue.Raw[]; + } +} diff --git a/src/serialization/resources/checkout/client/requests/index.ts b/src/serialization/resources/checkout/client/requests/index.ts index c70abe71..bfac8475 100644 --- a/src/serialization/resources/checkout/client/requests/index.ts +++ b/src/serialization/resources/checkout/client/requests/index.ts @@ -1,3 +1,4 @@ export { CancelSubscriptionRequest } from "./CancelSubscriptionRequest"; export { CheckoutDataRequestBody } from "./CheckoutDataRequestBody"; +export { UpdateCompanyBillingDetailsRequestBody } from "./UpdateCompanyBillingDetailsRequestBody"; export { UpdateTrialEndRequestBody } from "./UpdateTrialEndRequestBody"; diff --git a/src/serialization/resources/checkout/types/GetCompanyBillingDetailsResponse.ts b/src/serialization/resources/checkout/types/GetCompanyBillingDetailsResponse.ts new file mode 100644 index 00000000..b0f7e608 --- /dev/null +++ b/src/serialization/resources/checkout/types/GetCompanyBillingDetailsResponse.ts @@ -0,0 +1,21 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../../../api/index"; +import * as core from "../../../../core"; +import type * as serializers from "../../../index"; +import { CompanyBillingDetailsResponseData } from "../../../types/CompanyBillingDetailsResponseData"; + +export const GetCompanyBillingDetailsResponse: core.serialization.ObjectSchema< + serializers.GetCompanyBillingDetailsResponse.Raw, + Schematic.GetCompanyBillingDetailsResponse +> = core.serialization.object({ + data: CompanyBillingDetailsResponseData, + params: core.serialization.record(core.serialization.string(), core.serialization.unknown()), +}); + +export declare namespace GetCompanyBillingDetailsResponse { + export interface Raw { + data: CompanyBillingDetailsResponseData.Raw; + params: Record; + } +} diff --git a/src/serialization/resources/checkout/types/UpdateCompanyBillingDetailsResponse.ts b/src/serialization/resources/checkout/types/UpdateCompanyBillingDetailsResponse.ts new file mode 100644 index 00000000..79b7a327 --- /dev/null +++ b/src/serialization/resources/checkout/types/UpdateCompanyBillingDetailsResponse.ts @@ -0,0 +1,21 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../../../api/index"; +import * as core from "../../../../core"; +import type * as serializers from "../../../index"; +import { CompanyBillingDetailsResponseData } from "../../../types/CompanyBillingDetailsResponseData"; + +export const UpdateCompanyBillingDetailsResponse: core.serialization.ObjectSchema< + serializers.UpdateCompanyBillingDetailsResponse.Raw, + Schematic.UpdateCompanyBillingDetailsResponse +> = core.serialization.object({ + data: CompanyBillingDetailsResponseData, + params: core.serialization.record(core.serialization.string(), core.serialization.unknown()), +}); + +export declare namespace UpdateCompanyBillingDetailsResponse { + export interface Raw { + data: CompanyBillingDetailsResponseData.Raw; + params: Record; + } +} diff --git a/src/serialization/resources/checkout/types/index.ts b/src/serialization/resources/checkout/types/index.ts index c59f149c..31c95508 100644 --- a/src/serialization/resources/checkout/types/index.ts +++ b/src/serialization/resources/checkout/types/index.ts @@ -1,7 +1,9 @@ export * from "./CancelSubscriptionResponse"; export * from "./CheckoutInternalResponse"; export * from "./GetCheckoutDataResponse"; +export * from "./GetCompanyBillingDetailsResponse"; export * from "./ManagePlanResponse"; export * from "./PreviewCheckoutInternalResponse"; export * from "./PreviewManagePlanResponse"; +export * from "./UpdateCompanyBillingDetailsResponse"; export * from "./UpdateCustomerSubscriptionTrialEndResponse"; diff --git a/src/serialization/resources/index.ts b/src/serialization/resources/index.ts index b467928d..294609e6 100644 --- a/src/serialization/resources/index.ts +++ b/src/serialization/resources/index.ts @@ -41,6 +41,8 @@ export * from "./insights/types"; export * as integrationsapi from "./integrationsapi"; export * from "./integrationsapi/client/requests"; export * from "./integrationsapi/types"; +export * as licenses from "./licenses"; +export * from "./licenses/types"; export * as planbundle from "./planbundle"; export * from "./planbundle/client/requests"; export * from "./planbundle/types"; diff --git a/src/serialization/resources/licenses/index.ts b/src/serialization/resources/licenses/index.ts new file mode 100644 index 00000000..eea524d6 --- /dev/null +++ b/src/serialization/resources/licenses/index.ts @@ -0,0 +1 @@ +export * from "./types"; diff --git a/src/serialization/resources/licenses/types/CountLicensesParams.ts b/src/serialization/resources/licenses/types/CountLicensesParams.ts new file mode 100644 index 00000000..48c484b2 --- /dev/null +++ b/src/serialization/resources/licenses/types/CountLicensesParams.ts @@ -0,0 +1,29 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../../../api/index"; +import * as core from "../../../../core"; +import type * as serializers from "../../../index"; + +export const CountLicensesParams: core.serialization.ObjectSchema< + serializers.CountLicensesParams.Raw, + Schematic.CountLicensesParams +> = core.serialization.object({ + featureIds: core.serialization.property( + "feature_ids", + core.serialization.list(core.serialization.string()).optional(), + ), + ids: core.serialization.list(core.serialization.string()).optional(), + limit: core.serialization.number().optional(), + name: core.serialization.string().optional(), + offset: core.serialization.number().optional(), +}); + +export declare namespace CountLicensesParams { + export interface Raw { + feature_ids?: string[] | null; + ids?: string[] | null; + limit?: number | null; + name?: string | null; + offset?: number | null; + } +} diff --git a/src/serialization/resources/licenses/types/CountLicensesResponse.ts b/src/serialization/resources/licenses/types/CountLicensesResponse.ts new file mode 100644 index 00000000..ed61ba8a --- /dev/null +++ b/src/serialization/resources/licenses/types/CountLicensesResponse.ts @@ -0,0 +1,22 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../../../api/index"; +import * as core from "../../../../core"; +import type * as serializers from "../../../index"; +import { CountResponse } from "../../../types/CountResponse"; +import { CountLicensesParams } from "./CountLicensesParams"; + +export const CountLicensesResponse: core.serialization.ObjectSchema< + serializers.CountLicensesResponse.Raw, + Schematic.CountLicensesResponse +> = core.serialization.object({ + data: CountResponse, + params: CountLicensesParams, +}); + +export declare namespace CountLicensesResponse { + export interface Raw { + data: CountResponse.Raw; + params: CountLicensesParams.Raw; + } +} diff --git a/src/serialization/resources/licenses/types/GetSingleLicenseResponse.ts b/src/serialization/resources/licenses/types/GetSingleLicenseResponse.ts new file mode 100644 index 00000000..105450a7 --- /dev/null +++ b/src/serialization/resources/licenses/types/GetSingleLicenseResponse.ts @@ -0,0 +1,21 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../../../api/index"; +import * as core from "../../../../core"; +import type * as serializers from "../../../index"; +import { LicenseResponseData } from "../../../types/LicenseResponseData"; + +export const GetSingleLicenseResponse: core.serialization.ObjectSchema< + serializers.GetSingleLicenseResponse.Raw, + Schematic.GetSingleLicenseResponse +> = core.serialization.object({ + data: LicenseResponseData, + params: core.serialization.record(core.serialization.string(), core.serialization.unknown()), +}); + +export declare namespace GetSingleLicenseResponse { + export interface Raw { + data: LicenseResponseData.Raw; + params: Record; + } +} diff --git a/src/serialization/resources/licenses/types/ListLicensesParams.ts b/src/serialization/resources/licenses/types/ListLicensesParams.ts new file mode 100644 index 00000000..d87532c8 --- /dev/null +++ b/src/serialization/resources/licenses/types/ListLicensesParams.ts @@ -0,0 +1,29 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../../../api/index"; +import * as core from "../../../../core"; +import type * as serializers from "../../../index"; + +export const ListLicensesParams: core.serialization.ObjectSchema< + serializers.ListLicensesParams.Raw, + Schematic.ListLicensesParams +> = core.serialization.object({ + featureIds: core.serialization.property( + "feature_ids", + core.serialization.list(core.serialization.string()).optional(), + ), + ids: core.serialization.list(core.serialization.string()).optional(), + limit: core.serialization.number().optional(), + name: core.serialization.string().optional(), + offset: core.serialization.number().optional(), +}); + +export declare namespace ListLicensesParams { + export interface Raw { + feature_ids?: string[] | null; + ids?: string[] | null; + limit?: number | null; + name?: string | null; + offset?: number | null; + } +} diff --git a/src/serialization/resources/licenses/types/ListLicensesResponse.ts b/src/serialization/resources/licenses/types/ListLicensesResponse.ts new file mode 100644 index 00000000..161b5f15 --- /dev/null +++ b/src/serialization/resources/licenses/types/ListLicensesResponse.ts @@ -0,0 +1,22 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../../../api/index"; +import * as core from "../../../../core"; +import type * as serializers from "../../../index"; +import { LicenseResponseData } from "../../../types/LicenseResponseData"; +import { ListLicensesParams } from "./ListLicensesParams"; + +export const ListLicensesResponse: core.serialization.ObjectSchema< + serializers.ListLicensesResponse.Raw, + Schematic.ListLicensesResponse +> = core.serialization.object({ + data: core.serialization.list(LicenseResponseData), + params: ListLicensesParams, +}); + +export declare namespace ListLicensesResponse { + export interface Raw { + data: LicenseResponseData.Raw[]; + params: ListLicensesParams.Raw; + } +} diff --git a/src/serialization/resources/licenses/types/index.ts b/src/serialization/resources/licenses/types/index.ts new file mode 100644 index 00000000..6b6bb8a4 --- /dev/null +++ b/src/serialization/resources/licenses/types/index.ts @@ -0,0 +1,5 @@ +export * from "./CountLicensesParams"; +export * from "./CountLicensesResponse"; +export * from "./GetSingleLicenseResponse"; +export * from "./ListLicensesParams"; +export * from "./ListLicensesResponse"; diff --git a/src/serialization/resources/planmigrations/client/requests/PreviewMigrationRequestBody.ts b/src/serialization/resources/planmigrations/client/requests/PreviewMigrationRequestBody.ts new file mode 100644 index 00000000..d844aa6f --- /dev/null +++ b/src/serialization/resources/planmigrations/client/requests/PreviewMigrationRequestBody.ts @@ -0,0 +1,25 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../../../../api/index"; +import * as core from "../../../../../core"; +import type * as serializers from "../../../../index"; +import { PlanType } from "../../../../types/PlanType"; + +export const PreviewMigrationRequestBody: core.serialization.Schema< + serializers.PreviewMigrationRequestBody.Raw, + Schematic.PreviewMigrationRequestBody +> = core.serialization.object({ + companyIds: core.serialization.property("company_ids", core.serialization.list(core.serialization.string())), + planId: core.serialization.property("plan_id", core.serialization.string()), + planVersionIdTo: core.serialization.property("plan_version_id_to", core.serialization.string()), + targetPlanType: core.serialization.property("target_plan_type", PlanType), +}); + +export declare namespace PreviewMigrationRequestBody { + export interface Raw { + company_ids: string[]; + plan_id: string; + plan_version_id_to: string; + target_plan_type: PlanType.Raw; + } +} diff --git a/src/serialization/resources/planmigrations/client/requests/index.ts b/src/serialization/resources/planmigrations/client/requests/index.ts index 16472123..198142e7 100644 --- a/src/serialization/resources/planmigrations/client/requests/index.ts +++ b/src/serialization/resources/planmigrations/client/requests/index.ts @@ -1,2 +1,3 @@ export { CreateMigrationInput } from "./CreateMigrationInput"; +export { PreviewMigrationRequestBody } from "./PreviewMigrationRequestBody"; export { RetryMigrationRequestBody } from "./RetryMigrationRequestBody"; diff --git a/src/serialization/resources/planmigrations/types/PreviewMigrationResponse.ts b/src/serialization/resources/planmigrations/types/PreviewMigrationResponse.ts new file mode 100644 index 00000000..108d9830 --- /dev/null +++ b/src/serialization/resources/planmigrations/types/PreviewMigrationResponse.ts @@ -0,0 +1,21 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../../../api/index"; +import * as core from "../../../../core"; +import type * as serializers from "../../../index"; +import { PlanVersionMigrationPreviewResponseData } from "../../../types/PlanVersionMigrationPreviewResponseData"; + +export const PreviewMigrationResponse: core.serialization.ObjectSchema< + serializers.PreviewMigrationResponse.Raw, + Schematic.PreviewMigrationResponse +> = core.serialization.object({ + data: PlanVersionMigrationPreviewResponseData, + params: core.serialization.record(core.serialization.string(), core.serialization.unknown()), +}); + +export declare namespace PreviewMigrationResponse { + export interface Raw { + data: PlanVersionMigrationPreviewResponseData.Raw; + params: Record; + } +} diff --git a/src/serialization/resources/planmigrations/types/index.ts b/src/serialization/resources/planmigrations/types/index.ts index ddac476e..3f50410d 100644 --- a/src/serialization/resources/planmigrations/types/index.ts +++ b/src/serialization/resources/planmigrations/types/index.ts @@ -8,5 +8,6 @@ export * from "./ListCompanyMigrationsParams"; export * from "./ListCompanyMigrationsResponse"; export * from "./ListMigrationsParams"; export * from "./ListMigrationsResponse"; +export * from "./PreviewMigrationResponse"; export * from "./RetryCompanyMigrationResponse"; export * from "./RetryMigrationResponse"; diff --git a/src/serialization/types/BillingCreditGrantZeroedOutReason.ts b/src/serialization/types/BillingCreditGrantZeroedOutReason.ts index fb363295..b4c6b57e 100644 --- a/src/serialization/types/BillingCreditGrantZeroedOutReason.ts +++ b/src/serialization/types/BillingCreditGrantZeroedOutReason.ts @@ -11,6 +11,7 @@ export const BillingCreditGrantZeroedOutReason: core.serialization.Schema< "customer_archived", "expired", "integration_uninstalled", + "license_retired", "manual", "plan_change", "plan_period_reset", @@ -22,6 +23,7 @@ export declare namespace BillingCreditGrantZeroedOutReason { | "customer_archived" | "expired" | "integration_uninstalled" + | "license_retired" | "manual" | "plan_change" | "plan_period_reset" diff --git a/src/serialization/types/CompanyBillingAddressView.ts b/src/serialization/types/CompanyBillingAddressView.ts new file mode 100644 index 00000000..01ef74a9 --- /dev/null +++ b/src/serialization/types/CompanyBillingAddressView.ts @@ -0,0 +1,28 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../api/index"; +import * as core from "../../core"; +import type * as serializers from "../index"; + +export const CompanyBillingAddressView: core.serialization.ObjectSchema< + serializers.CompanyBillingAddressView.Raw, + Schematic.CompanyBillingAddressView +> = core.serialization.object({ + city: core.serialization.string(), + country: core.serialization.string(), + line1: core.serialization.string(), + line2: core.serialization.string(), + postalCode: core.serialization.property("postal_code", core.serialization.string()), + state: core.serialization.string(), +}); + +export declare namespace CompanyBillingAddressView { + export interface Raw { + city: string; + country: string; + line1: string; + line2: string; + postal_code: string; + state: string; + } +} diff --git a/src/serialization/types/CompanyBillingCheckoutSettings.ts b/src/serialization/types/CompanyBillingCheckoutSettings.ts new file mode 100644 index 00000000..efb8e3de --- /dev/null +++ b/src/serialization/types/CompanyBillingCheckoutSettings.ts @@ -0,0 +1,22 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../api/index"; +import * as core from "../../core"; +import type * as serializers from "../index"; + +export const CompanyBillingCheckoutSettings: core.serialization.ObjectSchema< + serializers.CompanyBillingCheckoutSettings.Raw, + Schematic.CompanyBillingCheckoutSettings +> = core.serialization.object({ + collectAddress: core.serialization.property("collect_address", core.serialization.boolean()), + collectEmail: core.serialization.property("collect_email", core.serialization.boolean()), + collectPhone: core.serialization.property("collect_phone", core.serialization.boolean()), +}); + +export declare namespace CompanyBillingCheckoutSettings { + export interface Raw { + collect_address: boolean; + collect_email: boolean; + collect_phone: boolean; + } +} diff --git a/src/serialization/types/CompanyBillingDetailsResponseData.ts b/src/serialization/types/CompanyBillingDetailsResponseData.ts new file mode 100644 index 00000000..f49bccf9 --- /dev/null +++ b/src/serialization/types/CompanyBillingDetailsResponseData.ts @@ -0,0 +1,29 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../api/index"; +import * as core from "../../core"; +import type * as serializers from "../index"; +import { CheckoutFieldWithValue } from "./CheckoutFieldWithValue"; +import { CompanyBillingAddressView } from "./CompanyBillingAddressView"; +import { CompanyBillingCheckoutSettings } from "./CompanyBillingCheckoutSettings"; + +export const CompanyBillingDetailsResponseData: core.serialization.ObjectSchema< + serializers.CompanyBillingDetailsResponseData.Raw, + Schematic.CompanyBillingDetailsResponseData +> = core.serialization.object({ + address: CompanyBillingAddressView.optional(), + checkoutSettings: core.serialization.property("checkout_settings", CompanyBillingCheckoutSettings), + customFields: core.serialization.property("custom_fields", core.serialization.list(CheckoutFieldWithValue)), + email: core.serialization.string().optional(), + phone: core.serialization.string().optional(), +}); + +export declare namespace CompanyBillingDetailsResponseData { + export interface Raw { + address?: CompanyBillingAddressView.Raw | null; + checkout_settings: CompanyBillingCheckoutSettings.Raw; + custom_fields: CheckoutFieldWithValue.Raw[]; + email?: string | null; + phone?: string | null; + } +} diff --git a/src/serialization/types/CompanyBillingDetailsView.ts b/src/serialization/types/CompanyBillingDetailsView.ts new file mode 100644 index 00000000..907da1e2 --- /dev/null +++ b/src/serialization/types/CompanyBillingDetailsView.ts @@ -0,0 +1,29 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../api/index"; +import * as core from "../../core"; +import type * as serializers from "../index"; +import { CheckoutFieldWithValue } from "./CheckoutFieldWithValue"; +import { CompanyBillingAddressView } from "./CompanyBillingAddressView"; +import { CompanyBillingCheckoutSettings } from "./CompanyBillingCheckoutSettings"; + +export const CompanyBillingDetailsView: core.serialization.ObjectSchema< + serializers.CompanyBillingDetailsView.Raw, + Schematic.CompanyBillingDetailsView +> = core.serialization.object({ + address: CompanyBillingAddressView.optional(), + checkoutSettings: core.serialization.property("checkout_settings", CompanyBillingCheckoutSettings), + customFields: core.serialization.property("custom_fields", core.serialization.list(CheckoutFieldWithValue)), + email: core.serialization.string().optional(), + phone: core.serialization.string().optional(), +}); + +export declare namespace CompanyBillingDetailsView { + export interface Raw { + address?: CompanyBillingAddressView.Raw | null; + checkout_settings: CompanyBillingCheckoutSettings.Raw; + custom_fields: CheckoutFieldWithValue.Raw[]; + email?: string | null; + phone?: string | null; + } +} diff --git a/src/serialization/types/CreateEntitlementInBundleRequestBody.ts b/src/serialization/types/CreateEntitlementInBundleRequestBody.ts index 52dbc1a2..7de2b5d3 100644 --- a/src/serialization/types/CreateEntitlementInBundleRequestBody.ts +++ b/src/serialization/types/CreateEntitlementInBundleRequestBody.ts @@ -10,6 +10,7 @@ import { EntitlementPriceBehavior } from "./EntitlementPriceBehavior"; import { EntitlementValueType } from "./EntitlementValueType"; import { MetricPeriod } from "./MetricPeriod"; import { MetricPeriodMonthReset } from "./MetricPeriodMonthReset"; +import { WarningTierRequestBody } from "./WarningTierRequestBody"; export const CreateEntitlementInBundleRequestBody: core.serialization.ObjectSchema< serializers.CreateEntitlementInBundleRequestBody.Raw, @@ -74,6 +75,10 @@ export const CreateEntitlementInBundleRequestBody: core.serialization.ObjectSche valueNumeric: core.serialization.property("value_numeric", core.serialization.number().optional()), valueTraitId: core.serialization.property("value_trait_id", core.serialization.string().optional()), valueType: core.serialization.property("value_type", EntitlementValueType), + warningTiers: core.serialization.property( + "warning_tiers", + core.serialization.list(WarningTierRequestBody).optional(), + ), yearlyMeteredPriceId: core.serialization.property( "yearly_metered_price_id", core.serialization.string().optional(), @@ -120,6 +125,7 @@ export declare namespace CreateEntitlementInBundleRequestBody { value_numeric?: number | null; value_trait_id?: string | null; value_type: EntitlementValueType.Raw; + warning_tiers?: WarningTierRequestBody.Raw[] | null; yearly_metered_price_id?: string | null; yearly_price_tiers?: CreatePriceTierRequestBody.Raw[] | null; yearly_unit_price?: number | null; diff --git a/src/serialization/types/CreditsAutoTopupSuccess.ts b/src/serialization/types/CreditsAutoTopupSuccess.ts new file mode 100644 index 00000000..0a1ac28a --- /dev/null +++ b/src/serialization/types/CreditsAutoTopupSuccess.ts @@ -0,0 +1,26 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../api/index"; +import * as core from "../../core"; +import type * as serializers from "../index"; +import { CreditsAutoTopupCompanySummary } from "./CreditsAutoTopupCompanySummary"; +import { CreditsAutoTopupCreditSummary } from "./CreditsAutoTopupCreditSummary"; + +export const CreditsAutoTopupSuccess: core.serialization.ObjectSchema< + serializers.CreditsAutoTopupSuccess.Raw, + Schematic.CreditsAutoTopupSuccess +> = core.serialization.object({ + company: CreditsAutoTopupCompanySummary.optional(), + credit: CreditsAutoTopupCreditSummary.optional(), + grantId: core.serialization.property("grant_id", core.serialization.string()), + quantity: core.serialization.number(), +}); + +export declare namespace CreditsAutoTopupSuccess { + export interface Raw { + company?: CreditsAutoTopupCompanySummary.Raw | null; + credit?: CreditsAutoTopupCreditSummary.Raw | null; + grant_id: string; + quantity: number; + } +} diff --git a/src/serialization/types/CreditsCreditPurchaseSuccess.ts b/src/serialization/types/CreditsCreditPurchaseSuccess.ts new file mode 100644 index 00000000..963809f2 --- /dev/null +++ b/src/serialization/types/CreditsCreditPurchaseSuccess.ts @@ -0,0 +1,30 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../api/index"; +import * as core from "../../core"; +import type * as serializers from "../index"; +import { CreditsWebhookCompanySummary } from "./CreditsWebhookCompanySummary"; +import { CreditsWebhookCreditSummary } from "./CreditsWebhookCreditSummary"; + +export const CreditsCreditPurchaseSuccess: core.serialization.ObjectSchema< + serializers.CreditsCreditPurchaseSuccess.Raw, + Schematic.CreditsCreditPurchaseSuccess +> = core.serialization.object({ + bundleId: core.serialization.property("bundle_id", core.serialization.string()), + bundleName: core.serialization.property("bundle_name", core.serialization.string()), + company: CreditsWebhookCompanySummary.optional(), + credit: CreditsWebhookCreditSummary.optional(), + grantIds: core.serialization.property("grant_ids", core.serialization.list(core.serialization.string())), + quantity: core.serialization.number(), +}); + +export declare namespace CreditsCreditPurchaseSuccess { + export interface Raw { + bundle_id: string; + bundle_name: string; + company?: CreditsWebhookCompanySummary.Raw | null; + credit?: CreditsWebhookCreditSummary.Raw | null; + grant_ids: string[]; + quantity: number; + } +} diff --git a/src/serialization/types/CreditsWebhookCompanySummary.ts b/src/serialization/types/CreditsWebhookCompanySummary.ts new file mode 100644 index 00000000..876228ba --- /dev/null +++ b/src/serialization/types/CreditsWebhookCompanySummary.ts @@ -0,0 +1,20 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../api/index"; +import * as core from "../../core"; +import type * as serializers from "../index"; + +export const CreditsWebhookCompanySummary: core.serialization.ObjectSchema< + serializers.CreditsWebhookCompanySummary.Raw, + Schematic.CreditsWebhookCompanySummary +> = core.serialization.object({ + id: core.serialization.string(), + name: core.serialization.string(), +}); + +export declare namespace CreditsWebhookCompanySummary { + export interface Raw { + id: string; + name: string; + } +} diff --git a/src/serialization/types/CreditsWebhookCreditSummary.ts b/src/serialization/types/CreditsWebhookCreditSummary.ts new file mode 100644 index 00000000..eaca03c1 --- /dev/null +++ b/src/serialization/types/CreditsWebhookCreditSummary.ts @@ -0,0 +1,20 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../api/index"; +import * as core from "../../core"; +import type * as serializers from "../index"; + +export const CreditsWebhookCreditSummary: core.serialization.ObjectSchema< + serializers.CreditsWebhookCreditSummary.Raw, + Schematic.CreditsWebhookCreditSummary +> = core.serialization.object({ + id: core.serialization.string(), + name: core.serialization.string(), +}); + +export declare namespace CreditsWebhookCreditSummary { + export interface Raw { + id: string; + name: string; + } +} diff --git a/src/serialization/types/CustomerBillingAddress.ts b/src/serialization/types/CustomerBillingAddress.ts new file mode 100644 index 00000000..fab0d5e4 --- /dev/null +++ b/src/serialization/types/CustomerBillingAddress.ts @@ -0,0 +1,28 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../api/index"; +import * as core from "../../core"; +import type * as serializers from "../index"; + +export const CustomerBillingAddress: core.serialization.ObjectSchema< + serializers.CustomerBillingAddress.Raw, + Schematic.CustomerBillingAddress +> = core.serialization.object({ + city: core.serialization.string(), + country: core.serialization.string(), + line1: core.serialization.string(), + line2: core.serialization.string(), + postalCode: core.serialization.property("postal_code", core.serialization.string()), + state: core.serialization.string(), +}); + +export declare namespace CustomerBillingAddress { + export interface Raw { + city: string; + country: string; + line1: string; + line2: string; + postal_code: string; + state: string; + } +} diff --git a/src/serialization/types/FeatureDetailResponseData.ts b/src/serialization/types/FeatureDetailResponseData.ts index 01262489..5bef47a6 100644 --- a/src/serialization/types/FeatureDetailResponseData.ts +++ b/src/serialization/types/FeatureDetailResponseData.ts @@ -5,6 +5,7 @@ import * as core from "../../core"; import type * as serializers from "../index"; import { AccountMemberResponseData } from "./AccountMemberResponseData"; import { BillingLinkedResourceResponseData } from "./BillingLinkedResourceResponseData"; +import { BillingProductResponseData } from "./BillingProductResponseData"; import { EntityTraitDefinitionResponseData } from "./EntityTraitDefinitionResponseData"; import { EventSummaryResponseData } from "./EventSummaryResponseData"; import { FeatureLifecyclePhase } from "./FeatureLifecyclePhase"; @@ -20,6 +21,7 @@ export const FeatureDetailResponseData: core.serialization.ObjectSchema< "billing_linked_resource", BillingLinkedResourceResponseData.optional(), ), + billingProduct: core.serialization.property("billing_product", BillingProductResponseData.optional()), createdAt: core.serialization.property("created_at", core.serialization.date()), description: core.serialization.string(), eventSubtype: core.serialization.property("event_subtype", core.serialization.string().optional()), @@ -28,6 +30,7 @@ export const FeatureDetailResponseData: core.serialization.ObjectSchema< flags: core.serialization.list(FlagDetailResponseData), icon: core.serialization.string(), id: core.serialization.string(), + licenseId: core.serialization.property("license_id", core.serialization.string().optional()), lifecyclePhase: core.serialization.property("lifecycle_phase", FeatureLifecyclePhase.optional()), maintainer: AccountMemberResponseData.optional(), maintainerAccountMemberId: core.serialization.property( @@ -41,11 +44,13 @@ export const FeatureDetailResponseData: core.serialization.ObjectSchema< trait: EntityTraitDefinitionResponseData.optional(), traitId: core.serialization.property("trait_id", core.serialization.string().optional()), updatedAt: core.serialization.property("updated_at", core.serialization.date()), + usageLimitTraitId: core.serialization.property("usage_limit_trait_id", core.serialization.string().optional()), }); export declare namespace FeatureDetailResponseData { export interface Raw { billing_linked_resource?: BillingLinkedResourceResponseData.Raw | null; + billing_product?: BillingProductResponseData.Raw | null; created_at: string; description: string; event_subtype?: string | null; @@ -54,6 +59,7 @@ export declare namespace FeatureDetailResponseData { flags: FlagDetailResponseData.Raw[]; icon: string; id: string; + license_id?: string | null; lifecycle_phase?: FeatureLifecyclePhase.Raw | null; maintainer?: AccountMemberResponseData.Raw | null; maintainer_account_member_id?: string | null; @@ -64,5 +70,6 @@ export declare namespace FeatureDetailResponseData { trait?: EntityTraitDefinitionResponseData.Raw | null; trait_id?: string | null; updated_at: string; + usage_limit_trait_id?: string | null; } } diff --git a/src/serialization/types/FeatureInPlanResponseData.ts b/src/serialization/types/FeatureInPlanResponseData.ts index a13b3fc2..adc864c0 100644 --- a/src/serialization/types/FeatureInPlanResponseData.ts +++ b/src/serialization/types/FeatureInPlanResponseData.ts @@ -27,6 +27,7 @@ export const FeatureInPlanResponseData: core.serialization.ObjectSchema< flags: core.serialization.list(FlagInPlanResponseData), icon: core.serialization.string(), id: core.serialization.string(), + licenseId: core.serialization.property("license_id", core.serialization.string().optional()), lifecyclePhase: core.serialization.property("lifecycle_phase", FeatureLifecyclePhase.optional()), maintainerAccountMemberId: core.serialization.property( "maintainer_account_member_id", @@ -39,6 +40,7 @@ export const FeatureInPlanResponseData: core.serialization.ObjectSchema< trait: EntityTraitDefinitionResponseData.optional(), traitId: core.serialization.property("trait_id", core.serialization.string().optional()), updatedAt: core.serialization.property("updated_at", core.serialization.date()), + usageLimitTraitId: core.serialization.property("usage_limit_trait_id", core.serialization.string().optional()), }); export declare namespace FeatureInPlanResponseData { @@ -52,6 +54,7 @@ export declare namespace FeatureInPlanResponseData { flags: FlagInPlanResponseData.Raw[]; icon: string; id: string; + license_id?: string | null; lifecycle_phase?: FeatureLifecyclePhase.Raw | null; maintainer_account_member_id?: string | null; name: string; @@ -61,5 +64,6 @@ export declare namespace FeatureInPlanResponseData { trait?: EntityTraitDefinitionResponseData.Raw | null; trait_id?: string | null; updated_at: string; + usage_limit_trait_id?: string | null; } } diff --git a/src/serialization/types/FeatureResponseData.ts b/src/serialization/types/FeatureResponseData.ts index bbc3eda2..47e73f47 100644 --- a/src/serialization/types/FeatureResponseData.ts +++ b/src/serialization/types/FeatureResponseData.ts @@ -16,6 +16,7 @@ export const FeatureResponseData: core.serialization.ObjectSchema< featureType: core.serialization.property("feature_type", FeatureType), icon: core.serialization.string(), id: core.serialization.string(), + licenseId: core.serialization.property("license_id", core.serialization.string().optional()), lifecyclePhase: core.serialization.property("lifecycle_phase", FeatureLifecyclePhase.optional()), maintainerAccountMemberId: core.serialization.property( "maintainer_account_member_id", @@ -26,6 +27,7 @@ export const FeatureResponseData: core.serialization.ObjectSchema< singularName: core.serialization.property("singular_name", core.serialization.string().optional()), traitId: core.serialization.property("trait_id", core.serialization.string().optional()), updatedAt: core.serialization.property("updated_at", core.serialization.date()), + usageLimitTraitId: core.serialization.property("usage_limit_trait_id", core.serialization.string().optional()), }); export declare namespace FeatureResponseData { @@ -36,6 +38,7 @@ export declare namespace FeatureResponseData { feature_type: FeatureType.Raw; icon: string; id: string; + license_id?: string | null; lifecycle_phase?: FeatureLifecyclePhase.Raw | null; maintainer_account_member_id?: string | null; name: string; @@ -43,5 +46,6 @@ export declare namespace FeatureResponseData { singular_name?: string | null; trait_id?: string | null; updated_at: string; + usage_limit_trait_id?: string | null; } } diff --git a/src/serialization/types/FeatureType.ts b/src/serialization/types/FeatureType.ts index d6d3e974..92cf5fa5 100644 --- a/src/serialization/types/FeatureType.ts +++ b/src/serialization/types/FeatureType.ts @@ -5,8 +5,8 @@ import * as core from "../../core"; import type * as serializers from "../index"; export const FeatureType: core.serialization.Schema = - core.serialization.enum_(["boolean", "event", "trait"]); + core.serialization.enum_(["boolean", "event", "license", "trait"]); export declare namespace FeatureType { - export type Raw = "boolean" | "event" | "trait"; + export type Raw = "boolean" | "event" | "license" | "trait"; } diff --git a/src/serialization/types/FeatureView.ts b/src/serialization/types/FeatureView.ts index 7e22ed63..f426d27a 100644 --- a/src/serialization/types/FeatureView.ts +++ b/src/serialization/types/FeatureView.ts @@ -4,6 +4,7 @@ import type * as Schematic from "../../api/index"; import * as core from "../../core"; import type * as serializers from "../index"; import { BillingLinkedResourceResponseData } from "./BillingLinkedResourceResponseData"; +import { BillingProductResponseData } from "./BillingProductResponseData"; import { EntityTraitDefinitionResponseData } from "./EntityTraitDefinitionResponseData"; import { EventSummaryResponseData } from "./EventSummaryResponseData"; import { FeatureLifecyclePhase } from "./FeatureLifecyclePhase"; @@ -18,6 +19,7 @@ export const FeatureView: core.serialization.ObjectSchema = core.serialization.object({ + createdAt: core.serialization.property("created_at", core.serialization.date()), + id: core.serialization.string(), + name: core.serialization.string(), + updatedAt: core.serialization.property("updated_at", core.serialization.date()), +}); + +export declare namespace LicenseResponseData { + export interface Raw { + created_at: string; + id: string; + name: string; + updated_at: string; + } +} diff --git a/src/serialization/types/PlanVersionMigrationPreviewCompanyResponseData.ts b/src/serialization/types/PlanVersionMigrationPreviewCompanyResponseData.ts new file mode 100644 index 00000000..b12682dc --- /dev/null +++ b/src/serialization/types/PlanVersionMigrationPreviewCompanyResponseData.ts @@ -0,0 +1,28 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../api/index"; +import * as core from "../../core"; +import type * as serializers from "../index"; + +export const PlanVersionMigrationPreviewCompanyResponseData: core.serialization.ObjectSchema< + serializers.PlanVersionMigrationPreviewCompanyResponseData.Raw, + Schematic.PlanVersionMigrationPreviewCompanyResponseData +> = core.serialization.object({ + companyId: core.serialization.property("company_id", core.serialization.string()), + hasBillingChanges: core.serialization.property("has_billing_changes", core.serialization.boolean()), + hasCustomPricing: core.serialization.property("has_custom_pricing", core.serialization.boolean()), + note: core.serialization.string().optional(), + planVersionIdFrom: core.serialization.property("plan_version_id_from", core.serialization.string().optional()), + willUpdateSubscription: core.serialization.property("will_update_subscription", core.serialization.boolean()), +}); + +export declare namespace PlanVersionMigrationPreviewCompanyResponseData { + export interface Raw { + company_id: string; + has_billing_changes: boolean; + has_custom_pricing: boolean; + note?: string | null; + plan_version_id_from?: string | null; + will_update_subscription: boolean; + } +} diff --git a/src/serialization/types/PlanVersionMigrationPreviewResponseData.ts b/src/serialization/types/PlanVersionMigrationPreviewResponseData.ts new file mode 100644 index 00000000..d308cf0b --- /dev/null +++ b/src/serialization/types/PlanVersionMigrationPreviewResponseData.ts @@ -0,0 +1,19 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Schematic from "../../api/index"; +import * as core from "../../core"; +import type * as serializers from "../index"; +import { PlanVersionMigrationPreviewCompanyResponseData } from "./PlanVersionMigrationPreviewCompanyResponseData"; + +export const PlanVersionMigrationPreviewResponseData: core.serialization.ObjectSchema< + serializers.PlanVersionMigrationPreviewResponseData.Raw, + Schematic.PlanVersionMigrationPreviewResponseData +> = core.serialization.object({ + companies: core.serialization.list(PlanVersionMigrationPreviewCompanyResponseData), +}); + +export declare namespace PlanVersionMigrationPreviewResponseData { + export interface Raw { + companies: PlanVersionMigrationPreviewCompanyResponseData.Raw[]; + } +} diff --git a/src/serialization/types/WebhookRequestType.ts b/src/serialization/types/WebhookRequestType.ts index d3104b3a..37491814 100644 --- a/src/serialization/types/WebhookRequestType.ts +++ b/src/serialization/types/WebhookRequestType.ts @@ -20,6 +20,7 @@ export const WebhookRequestType: core.serialization.Schema< "company.updated", "credit.limit.reached", "credit.limit.warning", + "credit.purchase.success", "entitlement.limit.reached", "entitlement.limit.warning", "entitlement.soft_limit.reached", @@ -47,6 +48,7 @@ export const WebhookRequestType: core.serialization.Schema< "user.updated", "auto.topup.hard.failure", "auto.topup.retry.exceeded", + "auto.topup.success", ]); export declare namespace WebhookRequestType { @@ -63,6 +65,7 @@ export declare namespace WebhookRequestType { | "company.updated" | "credit.limit.reached" | "credit.limit.warning" + | "credit.purchase.success" | "entitlement.limit.reached" | "entitlement.limit.warning" | "entitlement.soft_limit.reached" @@ -89,5 +92,6 @@ export declare namespace WebhookRequestType { | "user.deleted" | "user.updated" | "auto.topup.hard.failure" - | "auto.topup.retry.exceeded"; + | "auto.topup.retry.exceeded" + | "auto.topup.success"; } diff --git a/src/serialization/types/index.ts b/src/serialization/types/index.ts index 873eb82c..1dad8935 100644 --- a/src/serialization/types/index.ts +++ b/src/serialization/types/index.ts @@ -87,6 +87,10 @@ export * from "./CheckoutFieldWithValue"; export * from "./CheckoutSettingsResponseData"; export * from "./CheckoutSubscription"; export * from "./ClerkIntegrationConfig"; +export * from "./CompanyBillingAddressView"; +export * from "./CompanyBillingCheckoutSettings"; +export * from "./CompanyBillingDetailsResponseData"; +export * from "./CompanyBillingDetailsView"; export * from "./CompanyBillingEntityResponseData"; export * from "./CompanyBillingEntitySubscriptionResponseData"; export * from "./CompanyCreditBalance"; @@ -159,6 +163,10 @@ export * from "./CreditsAutoTopupCompanySummary"; export * from "./CreditsAutoTopupCreditSummary"; export * from "./CreditsAutoTopupHardFailure"; export * from "./CreditsAutoTopupRetryFailure"; +export * from "./CreditsAutoTopupSuccess"; +export * from "./CreditsCreditPurchaseSuccess"; +export * from "./CreditsWebhookCompanySummary"; +export * from "./CreditsWebhookCreditSummary"; export * from "./CreditTransferResponseData"; export * from "./CreditTransferView"; export * from "./CreditTriggerConfig"; @@ -166,6 +174,7 @@ export * from "./CreditUsage"; export * from "./CreditUsageAggregation"; export * from "./CreditUsageReason"; export * from "./CurrencyPriceRequestBody"; +export * from "./CustomerBillingAddress"; export * from "./CustomPlanActivationStrategy"; export * from "./CustomPlanBillingResponseData"; export * from "./CustomPlanBillingStatus"; @@ -250,6 +259,7 @@ export * from "./InvoiceResponseData"; export * from "./InvoiceStatus"; export * from "./IssueTemporaryAccessTokenResponseData"; export * from "./KeysRequestBody"; +export * from "./LicenseResponseData"; export * from "./LimitTimeSeriesPointResponseData"; export * from "./ManagePlanPreviewResponseResponseData"; export * from "./ManagePlanRequest"; @@ -297,6 +307,8 @@ export * from "./PlanTraitResponseData"; export * from "./PlanType"; export * from "./PlanVersionCompanyMigrationResponseData"; export * from "./PlanVersionCompanyMigrationStatus"; +export * from "./PlanVersionMigrationPreviewCompanyResponseData"; +export * from "./PlanVersionMigrationPreviewResponseData"; export * from "./PlanVersionMigrationResponseData"; export * from "./PlanVersionMigrationStatus"; export * from "./PlanVersionMigrationStrategy"; diff --git a/tests/wire/accounts.test.ts b/tests/wire/accounts.test.ts index 313cd754..7a002278 100644 --- a/tests/wire/accounts.test.ts +++ b/tests/wire/accounts.test.ts @@ -24,7 +24,7 @@ describe("AccountsClient", () => { updated_at: "2024-01-15T09:30:00Z", }, ], - params: { ids: ["ids"], limit: 1000000, offset: 1000000, q: "q" }, + params: { ids: ["ids"], limit: 1000000, offset: 1000000, q: "q", role: "admin" }, }; server.mockEndpoint().get("/account-members").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); @@ -32,6 +32,7 @@ describe("AccountsClient", () => { const response = await client.accounts.listAccountMembers({ ids: ["ids"], q: "q", + role: "admin", limit: 1000000, offset: 1000000, }); @@ -57,6 +58,7 @@ describe("AccountsClient", () => { limit: 1000000, offset: 1000000, q: "q", + role: "admin", }, }); }); @@ -258,7 +260,7 @@ describe("AccountsClient", () => { const rawResponseBody = { data: { count: 1000000 }, - params: { ids: ["ids"], limit: 1000000, offset: 1000000, q: "q" }, + params: { ids: ["ids"], limit: 1000000, offset: 1000000, q: "q", role: "admin" }, }; server @@ -272,6 +274,7 @@ describe("AccountsClient", () => { const response = await client.accounts.countAccountMembers({ ids: ["ids"], q: "q", + role: "admin", limit: 1000000, offset: 1000000, }); @@ -284,6 +287,7 @@ describe("AccountsClient", () => { limit: 1000000, offset: 1000000, q: "q", + role: "admin", }, }); }); diff --git a/tests/wire/checkout.test.ts b/tests/wire/checkout.test.ts index b6de2c02..32eb2b31 100644 --- a/tests/wire/checkout.test.ts +++ b/tests/wire/checkout.test.ts @@ -3569,6 +3569,414 @@ describe("CheckoutClient", () => { }).rejects.toThrow(Schematic.InternalServerError); }); + test("getCompanyBillingDetails (1)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + + const rawResponseBody = { + data: { + address: { + city: "city", + country: "country", + line1: "line1", + line2: "line2", + postal_code: "postal_code", + state: "state", + }, + checkout_settings: { collect_address: true, collect_email: true, collect_phone: true }, + custom_fields: [ + { + definition_id: "definition_id", + id: "id", + name: "name", + required: true, + stripe_metadata_key: "stripe_metadata_key", + }, + ], + email: "email", + phone: "phone", + }, + params: { key: "value" }, + }; + + server + .mockEndpoint() + .get("/companies/company_id/billing-details") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.checkout.getCompanyBillingDetails("company_id"); + expect(response).toEqual({ + data: { + address: { + city: "city", + country: "country", + line1: "line1", + line2: "line2", + postalCode: "postal_code", + state: "state", + }, + checkoutSettings: { + collectAddress: true, + collectEmail: true, + collectPhone: true, + }, + customFields: [ + { + definitionId: "definition_id", + id: "id", + name: "name", + required: true, + stripeMetadataKey: "stripe_metadata_key", + }, + ], + email: "email", + phone: "phone", + }, + params: { + key: "value", + }, + }); + }); + + test("getCompanyBillingDetails (2)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + + const rawResponseBody = { error: "error" }; + + server + .mockEndpoint() + .get("/companies/company_id/billing-details") + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.checkout.getCompanyBillingDetails("company_id"); + }).rejects.toThrow(Schematic.UnauthorizedError); + }); + + test("getCompanyBillingDetails (3)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + + const rawResponseBody = { error: "error" }; + + server + .mockEndpoint() + .get("/companies/company_id/billing-details") + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.checkout.getCompanyBillingDetails("company_id"); + }).rejects.toThrow(Schematic.ForbiddenError); + }); + + test("getCompanyBillingDetails (4)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + + const rawResponseBody = { error: "error" }; + + server + .mockEndpoint() + .get("/companies/company_id/billing-details") + .respondWith() + .statusCode(404) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.checkout.getCompanyBillingDetails("company_id"); + }).rejects.toThrow(Schematic.NotFoundError); + }); + + test("getCompanyBillingDetails (5)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + + const rawResponseBody = { error: "error" }; + + server + .mockEndpoint() + .get("/companies/company_id/billing-details") + .respondWith() + .statusCode(500) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.checkout.getCompanyBillingDetails("company_id"); + }).rejects.toThrow(Schematic.InternalServerError); + }); + + test("updateCompanyBillingDetails (1)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + const rawRequestBody = { values: [{ id: "id", value: "value" }] }; + const rawResponseBody = { + data: { + address: { + city: "city", + country: "country", + line1: "line1", + line2: "line2", + postal_code: "postal_code", + state: "state", + }, + checkout_settings: { collect_address: true, collect_email: true, collect_phone: true }, + custom_fields: [ + { + definition_id: "definition_id", + id: "id", + name: "name", + required: true, + stripe_metadata_key: "stripe_metadata_key", + }, + ], + email: "email", + phone: "phone", + }, + params: { key: "value" }, + }; + + server + .mockEndpoint() + .put("/companies/company_id/billing-details") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.checkout.updateCompanyBillingDetails("company_id", { + values: [ + { + id: "id", + value: "value", + }, + ], + }); + expect(response).toEqual({ + data: { + address: { + city: "city", + country: "country", + line1: "line1", + line2: "line2", + postalCode: "postal_code", + state: "state", + }, + checkoutSettings: { + collectAddress: true, + collectEmail: true, + collectPhone: true, + }, + customFields: [ + { + definitionId: "definition_id", + id: "id", + name: "name", + required: true, + stripeMetadataKey: "stripe_metadata_key", + }, + ], + email: "email", + phone: "phone", + }, + params: { + key: "value", + }, + }); + }); + + test("updateCompanyBillingDetails (2)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + const rawRequestBody = { + values: [ + { id: "id", value: "value" }, + { id: "id", value: "value" }, + ], + }; + const rawResponseBody = { error: "error" }; + + server + .mockEndpoint() + .put("/companies/company_id/billing-details") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(400) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.checkout.updateCompanyBillingDetails("company_id", { + values: [ + { + id: "id", + value: "value", + }, + { + id: "id", + value: "value", + }, + ], + }); + }).rejects.toThrow(Schematic.BadRequestError); + }); + + test("updateCompanyBillingDetails (3)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + const rawRequestBody = { + values: [ + { id: "id", value: "value" }, + { id: "id", value: "value" }, + ], + }; + const rawResponseBody = { error: "error" }; + + server + .mockEndpoint() + .put("/companies/company_id/billing-details") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.checkout.updateCompanyBillingDetails("company_id", { + values: [ + { + id: "id", + value: "value", + }, + { + id: "id", + value: "value", + }, + ], + }); + }).rejects.toThrow(Schematic.UnauthorizedError); + }); + + test("updateCompanyBillingDetails (4)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + const rawRequestBody = { + values: [ + { id: "id", value: "value" }, + { id: "id", value: "value" }, + ], + }; + const rawResponseBody = { error: "error" }; + + server + .mockEndpoint() + .put("/companies/company_id/billing-details") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.checkout.updateCompanyBillingDetails("company_id", { + values: [ + { + id: "id", + value: "value", + }, + { + id: "id", + value: "value", + }, + ], + }); + }).rejects.toThrow(Schematic.ForbiddenError); + }); + + test("updateCompanyBillingDetails (5)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + const rawRequestBody = { + values: [ + { id: "id", value: "value" }, + { id: "id", value: "value" }, + ], + }; + const rawResponseBody = { error: "error" }; + + server + .mockEndpoint() + .put("/companies/company_id/billing-details") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(404) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.checkout.updateCompanyBillingDetails("company_id", { + values: [ + { + id: "id", + value: "value", + }, + { + id: "id", + value: "value", + }, + ], + }); + }).rejects.toThrow(Schematic.NotFoundError); + }); + + test("updateCompanyBillingDetails (6)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + const rawRequestBody = { + values: [ + { id: "id", value: "value" }, + { id: "id", value: "value" }, + ], + }; + const rawResponseBody = { error: "error" }; + + server + .mockEndpoint() + .put("/companies/company_id/billing-details") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(500) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.checkout.updateCompanyBillingDetails("company_id", { + values: [ + { + id: "id", + value: "value", + }, + { + id: "id", + value: "value", + }, + ], + }); + }).rejects.toThrow(Schematic.InternalServerError); + }); + test("managePlan (1)", async () => { const server = mockServerPool.createServer(); const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); diff --git a/tests/wire/entitlements.test.ts b/tests/wire/entitlements.test.ts index df5da25a..90bdc5bc 100644 --- a/tests/wire/entitlements.test.ts +++ b/tests/wire/entitlements.test.ts @@ -874,6 +874,7 @@ describe("EntitlementsClient", () => { feature_type: "boolean", icon: "icon", id: "id", + license_id: "license_id", lifecycle_phase: "add_on", maintainer_account_member_id: "maintainer_account_member_id", name: "name", @@ -881,6 +882,7 @@ describe("EntitlementsClient", () => { singular_name: "singular_name", trait_id: "trait_id", updated_at: "2024-01-15T09:30:00Z", + usage_limit_trait_id: "usage_limit_trait_id", }, feature_id: "feature_id", id: "id", @@ -1232,6 +1234,7 @@ describe("EntitlementsClient", () => { featureType: "boolean", icon: "icon", id: "id", + licenseId: "license_id", lifecyclePhase: "add_on", maintainerAccountMemberId: "maintainer_account_member_id", name: "name", @@ -1239,6 +1242,7 @@ describe("EntitlementsClient", () => { singularName: "singular_name", traitId: "trait_id", updatedAt: new Date("2024-01-15T09:30:00.000Z"), + usageLimitTraitId: "usage_limit_trait_id", }, featureId: "feature_id", id: "id", @@ -1688,6 +1692,7 @@ describe("EntitlementsClient", () => { feature_type: "boolean", icon: "icon", id: "id", + license_id: "license_id", lifecycle_phase: "add_on", maintainer_account_member_id: "maintainer_account_member_id", name: "name", @@ -1695,6 +1700,7 @@ describe("EntitlementsClient", () => { singular_name: "singular_name", trait_id: "trait_id", updated_at: "2024-01-15T09:30:00Z", + usage_limit_trait_id: "usage_limit_trait_id", }, feature_id: "feature_id", id: "id", @@ -2041,6 +2047,7 @@ describe("EntitlementsClient", () => { featureType: "boolean", icon: "icon", id: "id", + licenseId: "license_id", lifecyclePhase: "add_on", maintainerAccountMemberId: "maintainer_account_member_id", name: "name", @@ -2048,6 +2055,7 @@ describe("EntitlementsClient", () => { singularName: "singular_name", traitId: "trait_id", updatedAt: new Date("2024-01-15T09:30:00.000Z"), + usageLimitTraitId: "usage_limit_trait_id", }, featureId: "feature_id", id: "id", @@ -2453,6 +2461,7 @@ describe("EntitlementsClient", () => { feature_type: "boolean", icon: "icon", id: "id", + license_id: "license_id", lifecycle_phase: "add_on", maintainer_account_member_id: "maintainer_account_member_id", name: "name", @@ -2460,6 +2469,7 @@ describe("EntitlementsClient", () => { singular_name: "singular_name", trait_id: "trait_id", updated_at: "2024-01-15T09:30:00Z", + usage_limit_trait_id: "usage_limit_trait_id", }, feature_id: "feature_id", id: "id", @@ -2809,6 +2819,7 @@ describe("EntitlementsClient", () => { featureType: "boolean", icon: "icon", id: "id", + licenseId: "license_id", lifecyclePhase: "add_on", maintainerAccountMemberId: "maintainer_account_member_id", name: "name", @@ -2816,6 +2827,7 @@ describe("EntitlementsClient", () => { singularName: "singular_name", traitId: "trait_id", updatedAt: new Date("2024-01-15T09:30:00.000Z"), + usageLimitTraitId: "usage_limit_trait_id", }, featureId: "feature_id", id: "id", @@ -6409,6 +6421,7 @@ describe("EntitlementsClient", () => { feature_type: "boolean", icon: "icon", id: "id", + license_id: "license_id", lifecycle_phase: "add_on", maintainer_account_member_id: "maintainer_account_member_id", name: "name", @@ -6416,6 +6429,7 @@ describe("EntitlementsClient", () => { singular_name: "singular_name", trait_id: "trait_id", updated_at: "2024-01-15T09:30:00Z", + usage_limit_trait_id: "usage_limit_trait_id", }, feature_id: "feature_id", id: "id", @@ -6625,6 +6639,7 @@ describe("EntitlementsClient", () => { featureType: "boolean", icon: "icon", id: "id", + licenseId: "license_id", lifecyclePhase: "add_on", maintainerAccountMemberId: "maintainer_account_member_id", name: "name", @@ -6632,6 +6647,7 @@ describe("EntitlementsClient", () => { singularName: "singular_name", traitId: "trait_id", updatedAt: new Date("2024-01-15T09:30:00.000Z"), + usageLimitTraitId: "usage_limit_trait_id", }, featureId: "feature_id", id: "id", @@ -6960,6 +6976,7 @@ describe("EntitlementsClient", () => { feature_type: "boolean", icon: "icon", id: "id", + license_id: "license_id", lifecycle_phase: "add_on", maintainer_account_member_id: "maintainer_account_member_id", name: "name", @@ -6967,6 +6984,7 @@ describe("EntitlementsClient", () => { singular_name: "singular_name", trait_id: "trait_id", updated_at: "2024-01-15T09:30:00Z", + usage_limit_trait_id: "usage_limit_trait_id", }, feature_id: "feature_id", id: "id", @@ -7171,6 +7189,7 @@ describe("EntitlementsClient", () => { featureType: "boolean", icon: "icon", id: "id", + licenseId: "license_id", lifecyclePhase: "add_on", maintainerAccountMemberId: "maintainer_account_member_id", name: "name", @@ -7178,6 +7197,7 @@ describe("EntitlementsClient", () => { singularName: "singular_name", traitId: "trait_id", updatedAt: new Date("2024-01-15T09:30:00.000Z"), + usageLimitTraitId: "usage_limit_trait_id", }, featureId: "feature_id", id: "id", @@ -7462,6 +7482,7 @@ describe("EntitlementsClient", () => { feature_type: "boolean", icon: "icon", id: "id", + license_id: "license_id", lifecycle_phase: "add_on", maintainer_account_member_id: "maintainer_account_member_id", name: "name", @@ -7469,6 +7490,7 @@ describe("EntitlementsClient", () => { singular_name: "singular_name", trait_id: "trait_id", updated_at: "2024-01-15T09:30:00Z", + usage_limit_trait_id: "usage_limit_trait_id", }, feature_id: "feature_id", id: "id", @@ -7676,6 +7698,7 @@ describe("EntitlementsClient", () => { featureType: "boolean", icon: "icon", id: "id", + licenseId: "license_id", lifecyclePhase: "add_on", maintainerAccountMemberId: "maintainer_account_member_id", name: "name", @@ -7683,6 +7706,7 @@ describe("EntitlementsClient", () => { singularName: "singular_name", traitId: "trait_id", updatedAt: new Date("2024-01-15T09:30:00.000Z"), + usageLimitTraitId: "usage_limit_trait_id", }, featureId: "feature_id", id: "id", @@ -8127,6 +8151,7 @@ describe("EntitlementsClient", () => { feature_type: "boolean", icon: "icon", id: "id", + license_id: "license_id", lifecycle_phase: "add_on", maintainer_account_member_id: "maintainer_account_member_id", name: "name", @@ -8134,6 +8159,7 @@ describe("EntitlementsClient", () => { singular_name: "singular_name", trait_id: "trait_id", updated_at: "2024-01-15T09:30:00Z", + usage_limit_trait_id: "usage_limit_trait_id", }, feature_id: "feature_id", id: "id", @@ -8345,6 +8371,7 @@ describe("EntitlementsClient", () => { featureType: "boolean", icon: "icon", id: "id", + licenseId: "license_id", lifecyclePhase: "add_on", maintainerAccountMemberId: "maintainer_account_member_id", name: "name", @@ -8352,6 +8379,7 @@ describe("EntitlementsClient", () => { singularName: "singular_name", traitId: "trait_id", updatedAt: new Date("2024-01-15T09:30:00.000Z"), + usageLimitTraitId: "usage_limit_trait_id", }, featureId: "feature_id", id: "id", @@ -9322,6 +9350,7 @@ describe("EntitlementsClient", () => { feature_type: "boolean", icon: "icon", id: "id", + license_id: "license_id", lifecycle_phase: "add_on", maintainer_account_member_id: "maintainer_account_member_id", name: "name", @@ -9329,6 +9358,7 @@ describe("EntitlementsClient", () => { singular_name: "singular_name", trait_id: "trait_id", updated_at: "2024-01-15T09:30:00Z", + usage_limit_trait_id: "usage_limit_trait_id", }, feature_id: "feature_id", id: "id", @@ -9520,6 +9550,7 @@ describe("EntitlementsClient", () => { ], icon: "icon", id: "id", + license_id: "license_id", lifecycle_phase: "add_on", maintainer_account_member_id: "maintainer_account_member_id", name: "name", @@ -9540,6 +9571,7 @@ describe("EntitlementsClient", () => { }, trait_id: "trait_id", updated_at: "2024-01-15T09:30:00Z", + usage_limit_trait_id: "usage_limit_trait_id", }, has_valid_allocation: true, is_unlimited: true, @@ -9744,6 +9776,7 @@ describe("EntitlementsClient", () => { feature_type: "boolean", icon: "icon", id: "id", + license_id: "license_id", lifecycle_phase: "add_on", maintainer_account_member_id: "maintainer_account_member_id", name: "name", @@ -9751,6 +9784,7 @@ describe("EntitlementsClient", () => { singular_name: "singular_name", trait_id: "trait_id", updated_at: "2024-01-15T09:30:00Z", + usage_limit_trait_id: "usage_limit_trait_id", }, feature_id: "feature_id", id: "id", @@ -10256,6 +10290,7 @@ describe("EntitlementsClient", () => { feature_type: "boolean", icon: "icon", id: "id", + license_id: "license_id", lifecycle_phase: "add_on", maintainer_account_member_id: "maintainer_account_member_id", name: "name", @@ -10263,6 +10298,7 @@ describe("EntitlementsClient", () => { singular_name: "singular_name", trait_id: "trait_id", updated_at: "2024-01-15T09:30:00Z", + usage_limit_trait_id: "usage_limit_trait_id", }, feature_id: "feature_id", id: "id", @@ -10454,6 +10490,7 @@ describe("EntitlementsClient", () => { ], icon: "icon", id: "id", + license_id: "license_id", lifecycle_phase: "add_on", maintainer_account_member_id: "maintainer_account_member_id", name: "name", @@ -10474,6 +10511,7 @@ describe("EntitlementsClient", () => { }, trait_id: "trait_id", updated_at: "2024-01-15T09:30:00Z", + usage_limit_trait_id: "usage_limit_trait_id", }, has_valid_allocation: true, is_unlimited: true, @@ -10678,6 +10716,7 @@ describe("EntitlementsClient", () => { feature_type: "boolean", icon: "icon", id: "id", + license_id: "license_id", lifecycle_phase: "add_on", maintainer_account_member_id: "maintainer_account_member_id", name: "name", @@ -10685,6 +10724,7 @@ describe("EntitlementsClient", () => { singular_name: "singular_name", trait_id: "trait_id", updated_at: "2024-01-15T09:30:00Z", + usage_limit_trait_id: "usage_limit_trait_id", }, feature_id: "feature_id", id: "id", @@ -11237,6 +11277,7 @@ describe("EntitlementsClient", () => { featureType: "boolean", icon: "icon", id: "id", + licenseId: "license_id", lifecyclePhase: "add_on", maintainerAccountMemberId: "maintainer_account_member_id", name: "name", @@ -11244,6 +11285,7 @@ describe("EntitlementsClient", () => { singularName: "singular_name", traitId: "trait_id", updatedAt: new Date("2024-01-15T09:30:00.000Z"), + usageLimitTraitId: "usage_limit_trait_id", }, featureId: "feature_id", id: "id", @@ -11437,6 +11479,7 @@ describe("EntitlementsClient", () => { ], icon: "icon", id: "id", + licenseId: "license_id", lifecyclePhase: "add_on", maintainerAccountMemberId: "maintainer_account_member_id", name: "name", @@ -11467,6 +11510,7 @@ describe("EntitlementsClient", () => { }, traitId: "trait_id", updatedAt: new Date("2024-01-15T09:30:00.000Z"), + usageLimitTraitId: "usage_limit_trait_id", }, hasValidAllocation: true, isUnlimited: true, @@ -11671,6 +11715,7 @@ describe("EntitlementsClient", () => { featureType: "boolean", icon: "icon", id: "id", + licenseId: "license_id", lifecyclePhase: "add_on", maintainerAccountMemberId: "maintainer_account_member_id", name: "name", @@ -11678,6 +11723,7 @@ describe("EntitlementsClient", () => { singularName: "singular_name", traitId: "trait_id", updatedAt: new Date("2024-01-15T09:30:00.000Z"), + usageLimitTraitId: "usage_limit_trait_id", }, featureId: "feature_id", id: "id", @@ -12230,6 +12276,7 @@ describe("EntitlementsClient", () => { featureType: "boolean", icon: "icon", id: "id", + licenseId: "license_id", lifecyclePhase: "add_on", maintainerAccountMemberId: "maintainer_account_member_id", name: "name", @@ -12237,6 +12284,7 @@ describe("EntitlementsClient", () => { singularName: "singular_name", traitId: "trait_id", updatedAt: new Date("2024-01-15T09:30:00.000Z"), + usageLimitTraitId: "usage_limit_trait_id", }, featureId: "feature_id", id: "id", @@ -12430,6 +12478,7 @@ describe("EntitlementsClient", () => { ], icon: "icon", id: "id", + licenseId: "license_id", lifecyclePhase: "add_on", maintainerAccountMemberId: "maintainer_account_member_id", name: "name", @@ -12460,6 +12509,7 @@ describe("EntitlementsClient", () => { }, traitId: "trait_id", updatedAt: new Date("2024-01-15T09:30:00.000Z"), + usageLimitTraitId: "usage_limit_trait_id", }, hasValidAllocation: true, isUnlimited: true, @@ -12664,6 +12714,7 @@ describe("EntitlementsClient", () => { featureType: "boolean", icon: "icon", id: "id", + licenseId: "license_id", lifecyclePhase: "add_on", maintainerAccountMemberId: "maintainer_account_member_id", name: "name", @@ -12671,6 +12722,7 @@ describe("EntitlementsClient", () => { singularName: "singular_name", traitId: "trait_id", updatedAt: new Date("2024-01-15T09:30:00.000Z"), + usageLimitTraitId: "usage_limit_trait_id", }, featureId: "feature_id", id: "id", diff --git a/tests/wire/features.test.ts b/tests/wire/features.test.ts index 20c11927..4ee57263 100644 --- a/tests/wire/features.test.ts +++ b/tests/wire/features.test.ts @@ -17,6 +17,19 @@ describe("FeaturesClient", () => { external_resource_id: "external_resource_id", originator: "metronome", }, + billing_product: { + account_id: "account_id", + created_at: "2024-01-15T09:30:00Z", + environment_id: "environment_id", + external_id: "external_id", + is_active: true, + name: "name", + price: 1.1, + product_id: "product_id", + provider_type: "metronome", + quantity: 1.1, + updated_at: "2024-01-15T09:30:00Z", + }, created_at: "2024-01-15T09:30:00Z", description: "description", event_subtype: "event_subtype", @@ -91,6 +104,7 @@ describe("FeaturesClient", () => { ], icon: "icon", id: "id", + license_id: "license_id", lifecycle_phase: "add_on", maintainer: { created_at: "2024-01-15T09:30:00Z", @@ -114,6 +128,7 @@ describe("FeaturesClient", () => { }, trait_id: "trait_id", updated_at: "2024-01-15T09:30:00Z", + usage_limit_trait_id: "usage_limit_trait_id", }, ], params: { @@ -152,6 +167,19 @@ describe("FeaturesClient", () => { externalResourceId: "external_resource_id", originator: "metronome", }, + billingProduct: { + accountId: "account_id", + createdAt: new Date("2024-01-15T09:30:00.000Z"), + environmentId: "environment_id", + externalId: "external_id", + isActive: true, + name: "name", + price: 1.1, + productId: "product_id", + providerType: "metronome", + quantity: 1.1, + updatedAt: new Date("2024-01-15T09:30:00.000Z"), + }, createdAt: new Date("2024-01-15T09:30:00.000Z"), description: "description", eventSubtype: "event_subtype", @@ -236,6 +264,7 @@ describe("FeaturesClient", () => { ], icon: "icon", id: "id", + licenseId: "license_id", lifecyclePhase: "add_on", maintainer: { createdAt: new Date("2024-01-15T09:30:00.000Z"), @@ -266,6 +295,7 @@ describe("FeaturesClient", () => { }, traitId: "trait_id", updatedAt: new Date("2024-01-15T09:30:00.000Z"), + usageLimitTraitId: "usage_limit_trait_id", }, ], params: { @@ -359,6 +389,20 @@ describe("FeaturesClient", () => { external_resource_id: "external_resource_id", originator: "metronome", }, + billing_product: { + account_id: "account_id", + created_at: "2024-01-15T09:30:00Z", + environment_id: "environment_id", + external_id: "external_id", + is_active: true, + name: "name", + price: 1.1, + price_decimal: "price_decimal", + product_id: "product_id", + provider_type: "metronome", + quantity: 1.1, + updated_at: "2024-01-15T09:30:00Z", + }, created_at: "2024-01-15T09:30:00Z", description: "description", event_subtype: "event_subtype", @@ -434,6 +478,7 @@ describe("FeaturesClient", () => { ], icon: "icon", id: "id", + license_id: "license_id", lifecycle_phase: "add_on", maintainer: { created_at: "2024-01-15T09:30:00Z", @@ -463,6 +508,7 @@ describe("FeaturesClient", () => { }, trait_id: "trait_id", updated_at: "2024-01-15T09:30:00Z", + usage_limit_trait_id: "usage_limit_trait_id", }, params: { key: "value" }, }; @@ -488,6 +534,20 @@ describe("FeaturesClient", () => { externalResourceId: "external_resource_id", originator: "metronome", }, + billingProduct: { + accountId: "account_id", + createdAt: new Date("2024-01-15T09:30:00.000Z"), + environmentId: "environment_id", + externalId: "external_id", + isActive: true, + name: "name", + price: 1.1, + priceDecimal: "price_decimal", + productId: "product_id", + providerType: "metronome", + quantity: 1.1, + updatedAt: new Date("2024-01-15T09:30:00.000Z"), + }, createdAt: new Date("2024-01-15T09:30:00.000Z"), description: "description", eventSubtype: "event_subtype", @@ -573,6 +633,7 @@ describe("FeaturesClient", () => { ], icon: "icon", id: "id", + licenseId: "license_id", lifecyclePhase: "add_on", maintainer: { createdAt: new Date("2024-01-15T09:30:00.000Z"), @@ -609,6 +670,7 @@ describe("FeaturesClient", () => { }, traitId: "trait_id", updatedAt: new Date("2024-01-15T09:30:00.000Z"), + usageLimitTraitId: "usage_limit_trait_id", }, params: { key: "value", @@ -747,6 +809,20 @@ describe("FeaturesClient", () => { external_resource_id: "external_resource_id", originator: "metronome", }, + billing_product: { + account_id: "account_id", + created_at: "2024-01-15T09:30:00Z", + environment_id: "environment_id", + external_id: "external_id", + is_active: true, + name: "name", + price: 1.1, + price_decimal: "price_decimal", + product_id: "product_id", + provider_type: "metronome", + quantity: 1.1, + updated_at: "2024-01-15T09:30:00Z", + }, created_at: "2024-01-15T09:30:00Z", description: "description", event_subtype: "event_subtype", @@ -822,6 +898,7 @@ describe("FeaturesClient", () => { ], icon: "icon", id: "id", + license_id: "license_id", lifecycle_phase: "add_on", maintainer: { created_at: "2024-01-15T09:30:00Z", @@ -851,6 +928,7 @@ describe("FeaturesClient", () => { }, trait_id: "trait_id", updated_at: "2024-01-15T09:30:00Z", + usage_limit_trait_id: "usage_limit_trait_id", }, params: { key: "value" }, }; @@ -871,6 +949,20 @@ describe("FeaturesClient", () => { externalResourceId: "external_resource_id", originator: "metronome", }, + billingProduct: { + accountId: "account_id", + createdAt: new Date("2024-01-15T09:30:00.000Z"), + environmentId: "environment_id", + externalId: "external_id", + isActive: true, + name: "name", + price: 1.1, + priceDecimal: "price_decimal", + productId: "product_id", + providerType: "metronome", + quantity: 1.1, + updatedAt: new Date("2024-01-15T09:30:00.000Z"), + }, createdAt: new Date("2024-01-15T09:30:00.000Z"), description: "description", eventSubtype: "event_subtype", @@ -956,6 +1048,7 @@ describe("FeaturesClient", () => { ], icon: "icon", id: "id", + licenseId: "license_id", lifecyclePhase: "add_on", maintainer: { createdAt: new Date("2024-01-15T09:30:00.000Z"), @@ -992,6 +1085,7 @@ describe("FeaturesClient", () => { }, traitId: "trait_id", updatedAt: new Date("2024-01-15T09:30:00.000Z"), + usageLimitTraitId: "usage_limit_trait_id", }, params: { key: "value", @@ -1086,6 +1180,20 @@ describe("FeaturesClient", () => { external_resource_id: "external_resource_id", originator: "metronome", }, + billing_product: { + account_id: "account_id", + created_at: "2024-01-15T09:30:00Z", + environment_id: "environment_id", + external_id: "external_id", + is_active: true, + name: "name", + price: 1.1, + price_decimal: "price_decimal", + product_id: "product_id", + provider_type: "metronome", + quantity: 1.1, + updated_at: "2024-01-15T09:30:00Z", + }, created_at: "2024-01-15T09:30:00Z", description: "description", event_subtype: "event_subtype", @@ -1161,6 +1269,7 @@ describe("FeaturesClient", () => { ], icon: "icon", id: "id", + license_id: "license_id", lifecycle_phase: "add_on", maintainer: { created_at: "2024-01-15T09:30:00Z", @@ -1190,6 +1299,7 @@ describe("FeaturesClient", () => { }, trait_id: "trait_id", updated_at: "2024-01-15T09:30:00Z", + usage_limit_trait_id: "usage_limit_trait_id", }, params: { key: "value" }, }; @@ -1211,6 +1321,20 @@ describe("FeaturesClient", () => { externalResourceId: "external_resource_id", originator: "metronome", }, + billingProduct: { + accountId: "account_id", + createdAt: new Date("2024-01-15T09:30:00.000Z"), + environmentId: "environment_id", + externalId: "external_id", + isActive: true, + name: "name", + price: 1.1, + priceDecimal: "price_decimal", + productId: "product_id", + providerType: "metronome", + quantity: 1.1, + updatedAt: new Date("2024-01-15T09:30:00.000Z"), + }, createdAt: new Date("2024-01-15T09:30:00.000Z"), description: "description", eventSubtype: "event_subtype", @@ -1296,6 +1420,7 @@ describe("FeaturesClient", () => { ], icon: "icon", id: "id", + licenseId: "license_id", lifecyclePhase: "add_on", maintainer: { createdAt: new Date("2024-01-15T09:30:00.000Z"), @@ -1332,6 +1457,7 @@ describe("FeaturesClient", () => { }, traitId: "trait_id", updatedAt: new Date("2024-01-15T09:30:00.000Z"), + usageLimitTraitId: "usage_limit_trait_id", }, params: { key: "value", @@ -1576,6 +1702,20 @@ describe("FeaturesClient", () => { external_resource_id: "external_resource_id", originator: "metronome", }, + billing_product: { + account_id: "account_id", + created_at: "2024-01-15T09:30:00Z", + environment_id: "environment_id", + external_id: "external_id", + is_active: true, + name: "name", + price: 1.1, + price_decimal: "price_decimal", + product_id: "product_id", + provider_type: "metronome", + quantity: 1.1, + updated_at: "2024-01-15T09:30:00Z", + }, created_at: "2024-01-15T09:30:00Z", description: "description", event_subtype: "event_subtype", @@ -1651,6 +1791,7 @@ describe("FeaturesClient", () => { ], icon: "icon", id: "id", + license_id: "license_id", lifecycle_phase: "add_on", maintainer: { created_at: "2024-01-15T09:30:00Z", @@ -1680,6 +1821,7 @@ describe("FeaturesClient", () => { }, trait_id: "trait_id", updated_at: "2024-01-15T09:30:00Z", + usage_limit_trait_id: "usage_limit_trait_id", }, params: { key: "value" }, }; @@ -1707,6 +1849,20 @@ describe("FeaturesClient", () => { externalResourceId: "external_resource_id", originator: "metronome", }, + billingProduct: { + accountId: "account_id", + createdAt: new Date("2024-01-15T09:30:00.000Z"), + environmentId: "environment_id", + externalId: "external_id", + isActive: true, + name: "name", + price: 1.1, + priceDecimal: "price_decimal", + productId: "product_id", + providerType: "metronome", + quantity: 1.1, + updatedAt: new Date("2024-01-15T09:30:00.000Z"), + }, createdAt: new Date("2024-01-15T09:30:00.000Z"), description: "description", eventSubtype: "event_subtype", @@ -1792,6 +1948,7 @@ describe("FeaturesClient", () => { ], icon: "icon", id: "id", + licenseId: "license_id", lifecyclePhase: "add_on", maintainer: { createdAt: new Date("2024-01-15T09:30:00.000Z"), @@ -1828,6 +1985,7 @@ describe("FeaturesClient", () => { }, traitId: "trait_id", updatedAt: new Date("2024-01-15T09:30:00.000Z"), + usageLimitTraitId: "usage_limit_trait_id", }, params: { key: "value", @@ -2398,6 +2556,7 @@ describe("FeaturesClient", () => { feature_type: "boolean", icon: "icon", id: "id", + license_id: "license_id", lifecycle_phase: "add_on", maintainer_account_member_id: "maintainer_account_member_id", name: "name", @@ -2405,6 +2564,7 @@ describe("FeaturesClient", () => { singular_name: "singular_name", trait_id: "trait_id", updated_at: "2024-01-15T09:30:00Z", + usage_limit_trait_id: "usage_limit_trait_id", }, feature_id: "feature_id", flag_type: "boolean", @@ -2507,6 +2667,7 @@ describe("FeaturesClient", () => { featureType: "boolean", icon: "icon", id: "id", + licenseId: "license_id", lifecyclePhase: "add_on", maintainerAccountMemberId: "maintainer_account_member_id", name: "name", @@ -2514,6 +2675,7 @@ describe("FeaturesClient", () => { singularName: "singular_name", traitId: "trait_id", updatedAt: new Date("2024-01-15T09:30:00.000Z"), + usageLimitTraitId: "usage_limit_trait_id", }, featureId: "feature_id", flagType: "boolean", @@ -2779,6 +2941,7 @@ describe("FeaturesClient", () => { feature_type: "boolean", icon: "icon", id: "id", + license_id: "license_id", lifecycle_phase: "add_on", maintainer_account_member_id: "maintainer_account_member_id", name: "name", @@ -2786,6 +2949,7 @@ describe("FeaturesClient", () => { singular_name: "singular_name", trait_id: "trait_id", updated_at: "2024-01-15T09:30:00Z", + usage_limit_trait_id: "usage_limit_trait_id", }, feature_id: "feature_id", flag_type: "boolean", @@ -2875,6 +3039,7 @@ describe("FeaturesClient", () => { featureType: "boolean", icon: "icon", id: "id", + licenseId: "license_id", lifecyclePhase: "add_on", maintainerAccountMemberId: "maintainer_account_member_id", name: "name", @@ -2882,6 +3047,7 @@ describe("FeaturesClient", () => { singularName: "singular_name", traitId: "trait_id", updatedAt: new Date("2024-01-15T09:30:00.000Z"), + usageLimitTraitId: "usage_limit_trait_id", }, featureId: "feature_id", flagType: "boolean", @@ -3045,6 +3211,7 @@ describe("FeaturesClient", () => { feature_type: "boolean", icon: "icon", id: "id", + license_id: "license_id", lifecycle_phase: "add_on", maintainer_account_member_id: "maintainer_account_member_id", name: "name", @@ -3052,6 +3219,7 @@ describe("FeaturesClient", () => { singular_name: "singular_name", trait_id: "trait_id", updated_at: "2024-01-15T09:30:00Z", + usage_limit_trait_id: "usage_limit_trait_id", }, feature_id: "feature_id", flag_type: "boolean", @@ -3154,6 +3322,7 @@ describe("FeaturesClient", () => { featureType: "boolean", icon: "icon", id: "id", + licenseId: "license_id", lifecyclePhase: "add_on", maintainerAccountMemberId: "maintainer_account_member_id", name: "name", @@ -3161,6 +3330,7 @@ describe("FeaturesClient", () => { singularName: "singular_name", traitId: "trait_id", updatedAt: new Date("2024-01-15T09:30:00.000Z"), + usageLimitTraitId: "usage_limit_trait_id", }, featureId: "feature_id", flagType: "boolean", diff --git a/tests/wire/licenses.test.ts b/tests/wire/licenses.test.ts new file mode 100644 index 00000000..08748817 --- /dev/null +++ b/tests/wire/licenses.test.ts @@ -0,0 +1,313 @@ +// This file was auto-generated by Fern from our API Definition. + +import * as Schematic from "../../src/api/index"; +import { SchematicClient } from "../../src/Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; + +describe("LicensesClient", () => { + test("listLicenses (1)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + + const rawResponseBody = { + data: [{ created_at: "2024-01-15T09:30:00Z", id: "id", name: "name", updated_at: "2024-01-15T09:30:00Z" }], + params: { feature_ids: ["feature_ids"], ids: ["ids"], limit: 1000000, name: "name", offset: 1000000 }, + }; + + server.mockEndpoint().get("/licenses").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.licenses.listLicenses({ + featureIds: ["feature_ids"], + ids: ["ids"], + name: "name", + limit: 1000000, + offset: 1000000, + }); + expect(response).toEqual({ + data: [ + { + createdAt: new Date("2024-01-15T09:30:00.000Z"), + id: "id", + name: "name", + updatedAt: new Date("2024-01-15T09:30:00.000Z"), + }, + ], + params: { + featureIds: ["feature_ids"], + ids: ["ids"], + limit: 1000000, + name: "name", + offset: 1000000, + }, + }); + }); + + test("listLicenses (2)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + + const rawResponseBody = { error: "error" }; + + server.mockEndpoint().get("/licenses").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); + + await expect(async () => { + return await client.licenses.listLicenses(); + }).rejects.toThrow(Schematic.BadRequestError); + }); + + test("listLicenses (3)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + + const rawResponseBody = { error: "error" }; + + server.mockEndpoint().get("/licenses").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); + + await expect(async () => { + return await client.licenses.listLicenses(); + }).rejects.toThrow(Schematic.UnauthorizedError); + }); + + test("listLicenses (4)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + + const rawResponseBody = { error: "error" }; + + server.mockEndpoint().get("/licenses").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); + + await expect(async () => { + return await client.licenses.listLicenses(); + }).rejects.toThrow(Schematic.ForbiddenError); + }); + + test("listLicenses (5)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + + const rawResponseBody = { error: "error" }; + + server.mockEndpoint().get("/licenses").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); + + await expect(async () => { + return await client.licenses.listLicenses(); + }).rejects.toThrow(Schematic.NotFoundError); + }); + + test("listLicenses (6)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + + const rawResponseBody = { error: "error" }; + + server.mockEndpoint().get("/licenses").respondWith().statusCode(500).jsonBody(rawResponseBody).build(); + + await expect(async () => { + return await client.licenses.listLicenses(); + }).rejects.toThrow(Schematic.InternalServerError); + }); + + test("getSingleLicense (1)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + + const rawResponseBody = { + data: { created_at: "2024-01-15T09:30:00Z", id: "id", name: "name", updated_at: "2024-01-15T09:30:00Z" }, + params: { key: "value" }, + }; + + server + .mockEndpoint() + .get("/licenses/license_id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.licenses.getSingleLicense("license_id"); + expect(response).toEqual({ + data: { + createdAt: new Date("2024-01-15T09:30:00.000Z"), + id: "id", + name: "name", + updatedAt: new Date("2024-01-15T09:30:00.000Z"), + }, + params: { + key: "value", + }, + }); + }); + + test("getSingleLicense (2)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + + const rawResponseBody = { error: "error" }; + + server + .mockEndpoint() + .get("/licenses/license_id") + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.licenses.getSingleLicense("license_id"); + }).rejects.toThrow(Schematic.UnauthorizedError); + }); + + test("getSingleLicense (3)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + + const rawResponseBody = { error: "error" }; + + server + .mockEndpoint() + .get("/licenses/license_id") + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.licenses.getSingleLicense("license_id"); + }).rejects.toThrow(Schematic.ForbiddenError); + }); + + test("getSingleLicense (4)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + + const rawResponseBody = { error: "error" }; + + server + .mockEndpoint() + .get("/licenses/license_id") + .respondWith() + .statusCode(404) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.licenses.getSingleLicense("license_id"); + }).rejects.toThrow(Schematic.NotFoundError); + }); + + test("getSingleLicense (5)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + + const rawResponseBody = { error: "error" }; + + server + .mockEndpoint() + .get("/licenses/license_id") + .respondWith() + .statusCode(500) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.licenses.getSingleLicense("license_id"); + }).rejects.toThrow(Schematic.InternalServerError); + }); + + test("countLicenses (1)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + + const rawResponseBody = { + data: { count: 1000000 }, + params: { feature_ids: ["feature_ids"], ids: ["ids"], limit: 1000000, name: "name", offset: 1000000 }, + }; + + server.mockEndpoint().get("/licenses/count").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.licenses.countLicenses({ + featureIds: ["feature_ids"], + ids: ["ids"], + name: "name", + limit: 1000000, + offset: 1000000, + }); + expect(response).toEqual({ + data: { + count: 1000000, + }, + params: { + featureIds: ["feature_ids"], + ids: ["ids"], + limit: 1000000, + name: "name", + offset: 1000000, + }, + }); + }); + + test("countLicenses (2)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + + const rawResponseBody = { error: "error" }; + + server.mockEndpoint().get("/licenses/count").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); + + await expect(async () => { + return await client.licenses.countLicenses(); + }).rejects.toThrow(Schematic.BadRequestError); + }); + + test("countLicenses (3)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + + const rawResponseBody = { error: "error" }; + + server.mockEndpoint().get("/licenses/count").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); + + await expect(async () => { + return await client.licenses.countLicenses(); + }).rejects.toThrow(Schematic.UnauthorizedError); + }); + + test("countLicenses (4)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + + const rawResponseBody = { error: "error" }; + + server.mockEndpoint().get("/licenses/count").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); + + await expect(async () => { + return await client.licenses.countLicenses(); + }).rejects.toThrow(Schematic.ForbiddenError); + }); + + test("countLicenses (5)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + + const rawResponseBody = { error: "error" }; + + server.mockEndpoint().get("/licenses/count").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); + + await expect(async () => { + return await client.licenses.countLicenses(); + }).rejects.toThrow(Schematic.NotFoundError); + }); + + test("countLicenses (6)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + + const rawResponseBody = { error: "error" }; + + server.mockEndpoint().get("/licenses/count").respondWith().statusCode(500).jsonBody(rawResponseBody).build(); + + await expect(async () => { + return await client.licenses.countLicenses(); + }).rejects.toThrow(Schematic.InternalServerError); + }); +}); diff --git a/tests/wire/planmigrations.test.ts b/tests/wire/planmigrations.test.ts index dce43932..5b41ca0a 100644 --- a/tests/wire/planmigrations.test.ts +++ b/tests/wire/planmigrations.test.ts @@ -1309,4 +1309,209 @@ describe("PlanmigrationsClient", () => { return await client.planmigrations.countMigrations(); }).rejects.toThrow(Schematic.InternalServerError); }); + + test("previewMigration (1)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + const rawRequestBody = { + company_ids: ["company_ids"], + plan_id: "plan_id", + plan_version_id_to: "plan_version_id_to", + target_plan_type: "plan", + }; + const rawResponseBody = { + data: { + companies: [ + { + company_id: "company_id", + has_billing_changes: true, + has_custom_pricing: true, + will_update_subscription: true, + }, + ], + }, + params: { key: "value" }, + }; + + server + .mockEndpoint() + .post("/plan-version-migrations/preview") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.planmigrations.previewMigration({ + companyIds: ["company_ids"], + planId: "plan_id", + planVersionIdTo: "plan_version_id_to", + targetPlanType: "plan", + }); + expect(response).toEqual({ + data: { + companies: [ + { + companyId: "company_id", + hasBillingChanges: true, + hasCustomPricing: true, + willUpdateSubscription: true, + }, + ], + }, + params: { + key: "value", + }, + }); + }); + + test("previewMigration (2)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + const rawRequestBody = { + company_ids: ["company_ids", "company_ids"], + plan_id: "plan_id", + plan_version_id_to: "plan_version_id_to", + target_plan_type: "plan", + }; + const rawResponseBody = { error: "error" }; + + server + .mockEndpoint() + .post("/plan-version-migrations/preview") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(400) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.planmigrations.previewMigration({ + companyIds: ["company_ids", "company_ids"], + planId: "plan_id", + planVersionIdTo: "plan_version_id_to", + targetPlanType: "plan", + }); + }).rejects.toThrow(Schematic.BadRequestError); + }); + + test("previewMigration (3)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + const rawRequestBody = { + company_ids: ["company_ids", "company_ids"], + plan_id: "plan_id", + plan_version_id_to: "plan_version_id_to", + target_plan_type: "plan", + }; + const rawResponseBody = { error: "error" }; + + server + .mockEndpoint() + .post("/plan-version-migrations/preview") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.planmigrations.previewMigration({ + companyIds: ["company_ids", "company_ids"], + planId: "plan_id", + planVersionIdTo: "plan_version_id_to", + targetPlanType: "plan", + }); + }).rejects.toThrow(Schematic.UnauthorizedError); + }); + + test("previewMigration (4)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + const rawRequestBody = { + company_ids: ["company_ids", "company_ids"], + plan_id: "plan_id", + plan_version_id_to: "plan_version_id_to", + target_plan_type: "plan", + }; + const rawResponseBody = { error: "error" }; + + server + .mockEndpoint() + .post("/plan-version-migrations/preview") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.planmigrations.previewMigration({ + companyIds: ["company_ids", "company_ids"], + planId: "plan_id", + planVersionIdTo: "plan_version_id_to", + targetPlanType: "plan", + }); + }).rejects.toThrow(Schematic.ForbiddenError); + }); + + test("previewMigration (5)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + const rawRequestBody = { + company_ids: ["company_ids", "company_ids"], + plan_id: "plan_id", + plan_version_id_to: "plan_version_id_to", + target_plan_type: "plan", + }; + const rawResponseBody = { error: "error" }; + + server + .mockEndpoint() + .post("/plan-version-migrations/preview") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(404) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.planmigrations.previewMigration({ + companyIds: ["company_ids", "company_ids"], + planId: "plan_id", + planVersionIdTo: "plan_version_id_to", + targetPlanType: "plan", + }); + }).rejects.toThrow(Schematic.NotFoundError); + }); + + test("previewMigration (6)", async () => { + const server = mockServerPool.createServer(); + const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl }); + const rawRequestBody = { + company_ids: ["company_ids", "company_ids"], + plan_id: "plan_id", + plan_version_id_to: "plan_version_id_to", + target_plan_type: "plan", + }; + const rawResponseBody = { error: "error" }; + + server + .mockEndpoint() + .post("/plan-version-migrations/preview") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(500) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.planmigrations.previewMigration({ + companyIds: ["company_ids", "company_ids"], + planId: "plan_id", + planVersionIdTo: "plan_version_id_to", + targetPlanType: "plan", + }); + }).rejects.toThrow(Schematic.InternalServerError); + }); }); diff --git a/yarn.lock b/yarn.lock index e57fd32c..c463dcaf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -338,30 +338,30 @@ dependencies: statuses "^2.0.1" -"@cloudflare/workerd-darwin-64@1.20260714.1": - version "1.20260714.1" - resolved "https://registry.yarnpkg.com/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20260714.1.tgz#2f006c394473a7b5d792c0144a1886042114a5a2" - integrity sha512-ZWXqAN8G7Cx9hMRQuk+59ziJhR3j1F4iO+Qs8aHdfKZ3Dq5Yi/57xvkJTgCGBnW1YU/L78r8f6HEy51bwbTpNw== - -"@cloudflare/workerd-darwin-arm64@1.20260714.1": - version "1.20260714.1" - resolved "https://registry.yarnpkg.com/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20260714.1.tgz#2602cab0e0a3dab46b8d2ecb5707a44868e7ecc4" - integrity sha512-tueWxWC3wyCbMG6zRAxsMXX0YLgrRWbiAPYFQ2uJ7dUH8G+5E7UTWaQS9B1HdJ0bpKFW1NWxhs1o2noKVFSUYg== - -"@cloudflare/workerd-linux-64@1.20260714.1": - version "1.20260714.1" - resolved "https://registry.yarnpkg.com/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20260714.1.tgz#24f3d22a4b8b563f09add8bb48ed649f407c71ff" - integrity sha512-1VChTZRb0l0F7R4e1G5RtLKV4oFi6x+rQgxh2+yu887j3l/3TLgatuv1L8/5zhc9gKEhATTxOh0e52Rtd9dDWQ== - -"@cloudflare/workerd-linux-arm64@1.20260714.1": - version "1.20260714.1" - resolved "https://registry.yarnpkg.com/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20260714.1.tgz#b7da800741feff8a562273733209941ede82043c" - integrity sha512-rMm3G+NirG2UdgHIRDdF1asNC6FqgIzZzkRG+VDhhDGcVxAQwvrMT1E38BivEvHr3G04MB4AfhcOczX0+GtRkQ== - -"@cloudflare/workerd-windows-64@1.20260714.1": - version "1.20260714.1" - resolved "https://registry.yarnpkg.com/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20260714.1.tgz#a7e7921021e782337a607d2a00c14341d50c0905" - integrity sha512-cGqnU3Hg2YZS/k3SAqrMp1DjpdsyFde72tWltdl6ZT9+SFz/Zrk/8gyTU1TcxC4YApXeNVH5TyU5cOGPgUJ0pg== +"@cloudflare/workerd-darwin-64@1.20260722.1": + version "1.20260722.1" + resolved "https://registry.yarnpkg.com/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20260722.1.tgz#a08145bb7b3d6e35bafe753475f8a8d7c3af71c5" + integrity sha512-vZOP8vIS3NwnuaO+gz0FZ7kIGeiO3bZmxV35Ph9zOXKSREhDFlH7wQ7mkCdhW3O4jnXsew+XT7b+DNEI2CcJGQ== + +"@cloudflare/workerd-darwin-arm64@1.20260722.1": + version "1.20260722.1" + resolved "https://registry.yarnpkg.com/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20260722.1.tgz#38ccfd2cb1b53c95e13a2a346332be6fff7a85e4" + integrity sha512-EmIQymihDq6WNdER4+LF8Qn80yqayBUpJ+tkOO7wmY8pmgfyXjIUFNXotl21AHovTeu2seR7HdVUgeN/BilCWw== + +"@cloudflare/workerd-linux-64@1.20260722.1": + version "1.20260722.1" + resolved "https://registry.yarnpkg.com/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20260722.1.tgz#3fbef2db0ee42a7543d38855713a1afa115b6dcb" + integrity sha512-jvZ3k9fxcnEn04s80CgIYxQfpOyAiz/8qC42DP8EBa9tR27qWyg9wmm31zIobVlrgBZn/+8NfdP73avRGcQOjQ== + +"@cloudflare/workerd-linux-arm64@1.20260722.1": + version "1.20260722.1" + resolved "https://registry.yarnpkg.com/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20260722.1.tgz#89ca2335e5b440a6d5f95761d73520fe21cf3cf3" + integrity sha512-BOSB55SMNdy+DA5uj2WirgiNanpHGis5PVvXH1wSfvjRKr4JGgWK+EZzxz0RFUo6QjjQQC/NimEzNZ7va7jmKg== + +"@cloudflare/workerd-windows-64@1.20260722.1": + version "1.20260722.1" + resolved "https://registry.yarnpkg.com/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20260722.1.tgz#d2378b95fad122c574a97e25fe03aea3425aec92" + integrity sha512-sYM8YgUpKnRz2xjvdJLX1Ojzoi4MlA4gk8WTTExhGydjYB2UTs5NIbv0ZmpKgMoK9io3ixgmiW56ZnTbcWOdiA== "@cspotcode/source-map-support@0.8.1": version "0.8.1" @@ -370,10 +370,10 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@emnapi/runtime@^1.7.0": - version "1.11.2" - resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.11.2.tgz#eb22f04d76febfdf4f87fdaff54c8a53f6bf0dbd" - integrity sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA== +"@emnapi/runtime@^1.11.1": + version "1.11.3" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.11.3.tgz#84257ae3b0531eb2aec1ffa23d70700da007ba95" + integrity sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA== dependencies: tslib "^2.4.0" @@ -507,152 +507,166 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz#9bdad8176be7811ad148d1f8772359041f46c6c5" integrity sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA== -"@img/colour@^1.0.0": +"@img/colour@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@img/colour/-/colour-1.1.0.tgz#b0c2c2fa661adf75effd6b4964497cd80010bb9d" integrity sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ== -"@img/sharp-darwin-arm64@0.34.5": - version "0.34.5" - resolved "https://registry.yarnpkg.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz#6e0732dcade126b6670af7aa17060b926835ea86" - integrity sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w== +"@img/sharp-darwin-arm64@0.35.2": + version "0.35.2" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.2.tgz#83a510a25161295cec4773fb881cbccad743c8c2" + integrity sha512-eEieHsMksAW4IiO5NzauESRl2D2qz3J/kwUxUrSfV06A93eEaRfMpHXyUb1mAqrR7i8U9A0GRqE9pjn6u1Jjpg== optionalDependencies: - "@img/sharp-libvips-darwin-arm64" "1.2.4" + "@img/sharp-libvips-darwin-arm64" "1.3.1" -"@img/sharp-darwin-x64@0.34.5": - version "0.34.5" - resolved "https://registry.yarnpkg.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz#19bc1dd6eba6d5a96283498b9c9f401180ee9c7b" - integrity sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw== +"@img/sharp-darwin-x64@0.35.2": + version "0.35.2" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.2.tgz#8861f1b13876c3735dc1d382147ff9689a90bbdb" + integrity sha512-BaktuGPCeHJMARpodR8jK4uKiZrPAy9WrfQW0sdI37clracq8Bp01AYS3SZgi5FS/y5twa9t4+LIuuxQjqRrWw== optionalDependencies: - "@img/sharp-libvips-darwin-x64" "1.2.4" - -"@img/sharp-libvips-darwin-arm64@1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz#2894c0cb87d42276c3889942e8e2db517a492c43" - integrity sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g== - -"@img/sharp-libvips-darwin-x64@1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz#e63681f4539a94af9cd17246ed8881734386f8cc" - integrity sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg== - -"@img/sharp-libvips-linux-arm64@1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz#b1b288b36864b3bce545ad91fa6dadcf1a4ad318" - integrity sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw== - -"@img/sharp-libvips-linux-arm@1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz#b9260dd1ebe6f9e3bdbcbdcac9d2ac125f35852d" - integrity sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A== - -"@img/sharp-libvips-linux-ppc64@1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz#4b83ecf2a829057222b38848c7b022e7b4d07aa7" - integrity sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA== - -"@img/sharp-libvips-linux-riscv64@1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz#880b4678009e5a2080af192332b00b0aaf8a48de" - integrity sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA== - -"@img/sharp-libvips-linux-s390x@1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz#74f343c8e10fad821b38f75ced30488939dc59ec" - integrity sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ== - -"@img/sharp-libvips-linux-x64@1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz#df4183e8bd8410f7d61b66859a35edeab0a531ce" - integrity sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw== - -"@img/sharp-libvips-linuxmusl-arm64@1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz#c8d6b48211df67137541007ee8d1b7b1f8ca8e06" - integrity sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw== - -"@img/sharp-libvips-linuxmusl-x64@1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz#be11c75bee5b080cbee31a153a8779448f919f75" - integrity sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg== - -"@img/sharp-linux-arm64@0.34.5": - version "0.34.5" - resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz#7aa7764ef9c001f15e610546d42fce56911790cc" - integrity sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg== + "@img/sharp-libvips-darwin-x64" "1.3.1" + +"@img/sharp-freebsd-wasm32@0.35.2": + version "0.35.2" + resolved "https://registry.yarnpkg.com/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.2.tgz#bd1c30356fd93f9da80af1746b7bcbd2bcdaff63" + integrity sha512-YoAxdnd8hPUkvLHd3bWY+YA8nw3xM/RyRopYucNsWHVSan8NLVM3X2volsfoRDcXdUJPg6tXahSd7HXPK7lRnw== + dependencies: + "@img/sharp-wasm32" "0.35.2" + +"@img/sharp-libvips-darwin-arm64@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.1.tgz#aaaeeb73ab52290ce3ec896a083557510f3d8b70" + integrity sha512-4V/M3roRMTYjiwZY9IOVQOE8OyeCxFAkYmyZDrZl51uOKjibm3oeEJ4WAmLxutAfzFbC9jqUiPs2gbnGflH+7g== + +"@img/sharp-libvips-darwin-x64@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.1.tgz#07330dffe179da2fbba1da7ccca72d42c4207315" + integrity sha512-c0/DxItpJv2+dGhgycJBBgotdqruGYDvA79drdh0MD1dFpy7JzJ/PlXwi1H4rFf0eTy8tgbI91aHDnZIceY3jQ== + +"@img/sharp-libvips-linux-arm64@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.1.tgz#a67bb9666e8f241da2fbedc1626812849a13ef05" + integrity sha512-JznefmcK9j1JKPz8AkQDh89kjojubyfOasWBPKfzMIhPwsgDy9evpE/naJTXXXmghS1iFwR8u/kTwh/I2/+GCw== + +"@img/sharp-libvips-linux-arm@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.1.tgz#71619f50cf16dea3eed985cdaf6edbe4d070f5f3" + integrity sha512-aGGy9aWzXgHBG7HNyQPWorZthlp7+x6fDRoPAQbGO3ThcttuTyKIx3NuSHb6zb4gBNq6/yNn9f1cy9nFKS/Vmg== + +"@img/sharp-libvips-linux-ppc64@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.1.tgz#1e35c91199d0753a42d90aecf019df92e0dfd123" + integrity sha512-1EkwGNCZk6iWNCMWqrvdJ+r1j0PT1zIz60CNPhYnJlK/zyeWqlsPZIe+ocBVqPF8k/Ssee/NCk+tE9Ryrko6ng== + +"@img/sharp-libvips-linux-riscv64@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.1.tgz#7c893516b2fe6a864fdc4c0ac62f168dfb2d8579" + integrity sha512-Ilays+w2bXdnxzxtQdmXR62u8o8GYa3eL4+Gr+1KiE4xperMZUslRaVPJwwPkzlHEjGfXAfRVAa/7CYCtSqsBw== + +"@img/sharp-libvips-linux-s390x@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.1.tgz#e38db9e12cf637941983d08be9cc99fc20f402f5" + integrity sha512-VfBwVHQTbRoj4XlpA/KLZ7ltgMpz+4WSejFzQ+GnoImjo1PtEJ59QB2qR1xQEeRPYIkNrPIm2L4cICMvz4C2ew== + +"@img/sharp-libvips-linux-x64@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.1.tgz#be150a15e8825ee9d5e5198b3ade6db9030f076b" + integrity sha512-+c8ukgwU62DS54nCAjw7keOfHUkmr0B5QHEdcOqRnodF/MNXJbVI8Eopoj4B/0H8Asr65I+A4Amrn7a85/md6A== + +"@img/sharp-libvips-linuxmusl-arm64@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.1.tgz#90b2f35579d874eba03be6397e36ca45a0359a5b" + integrity sha512-qlKb/pwbkAi1WMsJrYHk7CuDrd12s27U2QnRhFYUoJNrRCmkosMTttuRFat/DDB3IlDm5qE1TJgZ4JDnHX8Ldw== + +"@img/sharp-libvips-linuxmusl-x64@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.1.tgz#bec78d38a8a7446ee31110ec0487c149ecd9ee75" + integrity sha512-yO21HwoUVLN8Qa+/SBjQLMYwBWAVJjeGPNe+hc0OUeMeifEtJqu5a1c4HayE1nNpDih9y3/KkoltfkDodmKAlg== + +"@img/sharp-linux-arm64@0.35.2": + version "0.35.2" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.2.tgz#5e0c2c19398bff888b86abe6683af146bba67b94" + integrity sha512-af12Pnd0ZGu2HfP8NayB0kk6eC/lrfbQE6HlR4jD+34wdJ1Vw9TF6TMn6ZvffT+WgqVsl0hRbmNvz2u/23VmwA== optionalDependencies: - "@img/sharp-libvips-linux-arm64" "1.2.4" + "@img/sharp-libvips-linux-arm64" "1.3.1" -"@img/sharp-linux-arm@0.34.5": - version "0.34.5" - resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz#5fb0c3695dd12522d39c3ff7a6bc816461780a0d" - integrity sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw== +"@img/sharp-linux-arm@0.35.2": + version "0.35.2" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.2.tgz#9dee1a6eb241bc3f039da20a69206332cad1ef7a" + integrity sha512-SE4kzF2mepn6z+6E7L6lsV8FzuLL6IPQdyX8ZiwROAG/G8td+hP/m7FsFPwidtrF19gvajuC9l6TxAVcsA4S7A== optionalDependencies: - "@img/sharp-libvips-linux-arm" "1.2.4" + "@img/sharp-libvips-linux-arm" "1.3.1" -"@img/sharp-linux-ppc64@0.34.5": - version "0.34.5" - resolved "https://registry.yarnpkg.com/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz#9c213a81520a20caf66978f3d4c07456ff2e0813" - integrity sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA== +"@img/sharp-linux-ppc64@0.35.2": + version "0.35.2" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.2.tgz#4e5f03945faefc4d92121ba1f534b70697e538d5" + integrity sha512-hYSBm7zcNtDCozCxQHYZJiu63b/bXsgRZuOxCIBZsStMM9Vap47iFHdbX4kCvQsblPB/k+clhELpdQJHQLSHvg== optionalDependencies: - "@img/sharp-libvips-linux-ppc64" "1.2.4" + "@img/sharp-libvips-linux-ppc64" "1.3.1" -"@img/sharp-linux-riscv64@0.34.5": - version "0.34.5" - resolved "https://registry.yarnpkg.com/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz#cdd28182774eadbe04f62675a16aabbccb833f60" - integrity sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw== +"@img/sharp-linux-riscv64@0.35.2": + version "0.35.2" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.2.tgz#e58a0e877228c8910a404160e97c4c3f539f61dc" + integrity sha512-qQt0Kc13+Hoan/Awq/qMSQw3L+RI1NCRPgD5cUJ/1WSSmIoysLOc72jlRM3E0OHN9Yr313jgeQ2T+zW+F03QFA== optionalDependencies: - "@img/sharp-libvips-linux-riscv64" "1.2.4" + "@img/sharp-libvips-linux-riscv64" "1.3.1" -"@img/sharp-linux-s390x@0.34.5": - version "0.34.5" - resolved "https://registry.yarnpkg.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz#93eac601b9f329bb27917e0e19098c722d630df7" - integrity sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg== +"@img/sharp-linux-s390x@0.35.2": + version "0.35.2" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.2.tgz#e1292137042332c3581823ea51535dde971c538d" + integrity sha512-E4fLLfRPzDLlEeDaTzI98OFLcv++WL5ChLLMwPoVd0CIoZQqupBSNbOisPL5am9XsbQ9T84+iiMpUvbFtkunbA== optionalDependencies: - "@img/sharp-libvips-linux-s390x" "1.2.4" + "@img/sharp-libvips-linux-s390x" "1.3.1" -"@img/sharp-linux-x64@0.34.5": - version "0.34.5" - resolved "https://registry.yarnpkg.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz#55abc7cd754ffca5002b6c2b719abdfc846819a8" - integrity sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ== +"@img/sharp-linux-x64@0.35.2": + version "0.35.2" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.2.tgz#ba3a1bfaec00ab394953f843f2fe8d59507d0826" + integrity sha512-gi0zFJJRLswfCZmHtJdikXPOc5u7qamSOS3NHedLqLd4W8Q0NqjdBr6TTRIgsfFjqfTsHFgdfvJ9LwqSgcHiAA== optionalDependencies: - "@img/sharp-libvips-linux-x64" "1.2.4" + "@img/sharp-libvips-linux-x64" "1.3.1" -"@img/sharp-linuxmusl-arm64@0.34.5": - version "0.34.5" - resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz#d6515ee971bb62f73001a4829b9d865a11b77086" - integrity sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg== +"@img/sharp-linuxmusl-arm64@0.35.2": + version "0.35.2" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.2.tgz#02f6b375ce16b37e36ad29f4cddd4492327af212" + integrity sha512-siWbOW1u6HFnFLrp0waKyW7VEf7jYvcDWdrXEFa8AkdAQgEvuu5Fz8/Y70w9EeqAdwDtfU012BhEHHaDqvQNzg== optionalDependencies: - "@img/sharp-libvips-linuxmusl-arm64" "1.2.4" + "@img/sharp-libvips-linuxmusl-arm64" "1.3.1" -"@img/sharp-linuxmusl-x64@0.34.5": - version "0.34.5" - resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz#d97978aec7c5212f999714f2f5b736457e12ee9f" - integrity sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q== +"@img/sharp-linuxmusl-x64@0.35.2": + version "0.35.2" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.2.tgz#dc0d8e58a94ea74dc6e65925a975525575f6f3bf" + integrity sha512-YBqMMcjDi4QGYiSn4vNOYBhmlC4z5AXqkOUUqI2e0AFA4urNv4ESgOgwNl3K+4etQhha0twXlzeF20bbULm9Yg== optionalDependencies: - "@img/sharp-libvips-linuxmusl-x64" "1.2.4" + "@img/sharp-libvips-linuxmusl-x64" "1.3.1" -"@img/sharp-wasm32@0.34.5": - version "0.34.5" - resolved "https://registry.yarnpkg.com/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz#2f15803aa626f8c59dd7c9d0bbc766f1ab52cfa0" - integrity sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw== +"@img/sharp-wasm32@0.35.2": + version "0.35.2" + resolved "https://registry.yarnpkg.com/@img/sharp-wasm32/-/sharp-wasm32-0.35.2.tgz#9f5a3c5e5398127b34fa8fabed07ffdd8ca3428d" + integrity sha512-Mrv4JQNYVQ94xH+jzZ9r+gowleN8mv2FTgKT+PI6bx5C0G8TdNYndu161pg2i7uoBwxy2ImPMHrJOM2LZef7Bw== dependencies: - "@emnapi/runtime" "^1.7.0" + "@emnapi/runtime" "^1.11.1" -"@img/sharp-win32-arm64@0.34.5": - version "0.34.5" - resolved "https://registry.yarnpkg.com/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz#3706e9e3ac35fddfc1c87f94e849f1b75307ce0a" - integrity sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g== +"@img/sharp-webcontainers-wasm32@0.35.2": + version "0.35.2" + resolved "https://registry.yarnpkg.com/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.2.tgz#3594f5ea2eacf3481c1787146ade3df7cfd8eebe" + integrity sha512-QNV27pxs9wpApEiCfvHM1RDoP1w1+2KrUWWDPEhEwg+latvOrfuhWrHWZKwdSFwU6jh3myjw/yOCRsUIuOft3g== + dependencies: + "@img/sharp-wasm32" "0.35.2" + +"@img/sharp-win32-arm64@0.35.2": + version "0.35.2" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.2.tgz#7031c9134fe34e66c24ae21a0eed357430e81e5a" + integrity sha512-BiVRYc/t6/Vl3e1hBx0hugG4oN9Pydf4fgMSpxTQJmwGUg/YoXTWHiFeRymHfCZzifxu4F4rpk/I67D0LQ20wQ== -"@img/sharp-win32-ia32@0.34.5": - version "0.34.5" - resolved "https://registry.yarnpkg.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz#0b71166599b049e032f085fb9263e02f4e4788de" - integrity sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg== +"@img/sharp-win32-ia32@0.35.2": + version "0.35.2" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.2.tgz#6b91219defb88215291f9b05d5df8ff98b1be62c" + integrity sha512-YYEhx9PImCC7T0tI8JDMi4DB9LwLCXCU5OWNYEXAxh5Q1ShKkyC6byxzoBJ3gEFDnH2lQckWuDe70G7mB2XJog== -"@img/sharp-win32-x64@0.34.5": - version "0.34.5" - resolved "https://registry.yarnpkg.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz#a81ffb00e69267cd0a1d626eaedb8a8430b2b2f8" - integrity sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw== +"@img/sharp-win32-x64@0.35.2": + version "0.35.2" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.2.tgz#40652280d873b40c1a68c3b9d6eb09ab2f425901" + integrity sha512-imoOyBcoM/iiUr4J6VPpCNjPnjvP/Gks95898yB8YqoGGYmHYbOyCuNv9FMhFgtaiHFGbHW8bxKqRV6VjtXThQ== "@inquirer/ansi@^1.0.2": version "1.0.2" @@ -1168,9 +1182,9 @@ form-data "^4.0.4" "@types/node@*": - version "26.1.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-26.1.1.tgz#bad758d601e97d6cf457d204ee76a35fce7bd119" - integrity sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw== + version "26.1.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-26.1.2.tgz#da79708f1f9c6294f4cdec8f455a3032b028808a" + integrity sha512-Vu4a5UFA9rIIFJ7rB/Vaafh9lrCQszopTCx6KjFboXTGQbPNasehVR5TEiithSDGyd1DEiUByggTZsg8jukeIg== dependencies: undici-types "~8.3.0" @@ -1373,11 +1387,6 @@ acorn-globals@^7.0.0: acorn "^8.1.0" acorn-walk "^8.0.2" -acorn-import-phases@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz#16eb850ba99a056cb7cbfe872ffb8972e18c8bd7" - integrity sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ== - acorn-walk@^8.0.2: version "8.3.5" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.5.tgz#8a6b8ca8fc5b34685af15dabb44118663c296496" @@ -1538,10 +1547,10 @@ base64-js@^1.3.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -baseline-browser-mapping@^2.10.42: - version "2.10.44" - resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.44.tgz#2e074675e640b67cb3835c54c11aa2dd9119c0f8" - integrity sha512-T3ghW+sl/ZJ8w1v/yQx3qvJ9040DWoLBz8JT/CILbAKcFyG9b2MRe75v6W5uXjv6uH1lumK2Kv46y2zSkcej0Q== +baseline-browser-mapping@^2.10.44: + version "2.11.5" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.11.5.tgz#eca24c8ff0c24fcedef86260e2aae8c76b8dbce8" + integrity sha512-xJo6a6YZnwZfnyGmQKWMbVOcii7XRibjOskRh+WJ9UHQoX16xrQrcIgAMQOzfvs8XiLMx6ih/fsLPF73iY2D1A== brace-expansion@^1.1.7: version "1.1.16" @@ -1559,13 +1568,13 @@ braces@^3.0.3: fill-range "^7.1.1" browserslist@^4.24.0, browserslist@^4.28.1: - version "4.28.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.6.tgz#7cf83afcd69c55fde6fb2dcc5039ff0f4ba42610" - integrity sha512-FQBYNK15VMslhLHpA7+n+n1GOlF1kId2xcCg7/j95f24AOF6VDYMNH4mFxF7KuaTdv627faazpOAjFzMrfJOUw== + version "4.28.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.7.tgz#409046517fccd2e51cdc20f077454b7141184028" + integrity sha512-JxV13hNrFxqjOc8alRbq9dK1MM79NEXYpma2B2J4wAtpWS5zIEIKqWPGCl7N4o7Uc7B7itylh7SuDujATRyyTw== dependencies: - baseline-browser-mapping "^2.10.42" - caniuse-lite "^1.0.30001803" - electron-to-chromium "^1.5.389" + baseline-browser-mapping "^2.10.44" + caniuse-lite "^1.0.30001806" + electron-to-chromium "^1.5.393" node-releases "^2.0.51" update-browserslist-db "^1.2.3" @@ -1619,7 +1628,7 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001803: +caniuse-lite@^1.0.30001806: version "1.0.30001806" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001806.tgz#1bc8e502b723fa393455dfbedd5ccec0c29bb74e" integrity sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw== @@ -1831,10 +1840,10 @@ dunder-proto@^1.0.1: es-errors "^1.3.0" gopd "^1.2.0" -electron-to-chromium@^1.5.389: - version "1.5.393" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.393.tgz#aec971df2a6f4f7e51fbacb200d66cebfc7d3c17" - integrity sha512-kiDJdIUawuEIcp9XoICKp1iTYDEbgguIPq526N1Q7jIQDeQ3CqoMx71025PI/7E48Ddtw2HuWsVjY7afEgNxmg== +electron-to-chromium@^1.5.393: + version "1.5.396" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.396.tgz#4aa96428486c8d1c9c8aeb205b2d6e04928ca046" + integrity sha512-yHiw2Y3C3H9U6TMbOfoWK/BPreiOPXRfTWPBwQBoZG6/8TB6eOPnsy5oaRYuatR7Fw2SJ4kKforgufeo7fq0EQ== emittery@^0.13.1: version "0.13.1" @@ -1846,7 +1855,7 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -enhanced-resolve@^5.22.2: +enhanced-resolve@^5.24.2: version "5.24.3" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.24.3.tgz#406bbf1ec20971265a30254f08030fce6a8207fe" integrity sha512-PwKooW9JUzh5chmYfHM3IQl5OkK2u2Nm011MgeZrss3JmFraUx/fqrf78kk8GUMYoibx/14MdwTl/1WKkG7TpQ== @@ -2855,11 +2864,6 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -loader-runner@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.2.tgz#9913d3a15971f8f635915e601fb5c9d495d918e9" - integrity sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w== - locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -2939,14 +2943,14 @@ mimic-fn@^2.1.0: integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== miniflare@^4.20260421.0: - version "4.20260714.0" - resolved "https://registry.yarnpkg.com/miniflare/-/miniflare-4.20260714.0.tgz#9e6e566320b0664ecbaca9a8205af7ca740b00ef" - integrity sha512-MYlTCLdWCPqvrYY2uLwOjXwmglXuiHE3TGGkbOW4BwjUPa1r07E0iuHwrNDIs/sxK21r+o90Jx58AV2KeNdJZw== + version "4.20260722.0" + resolved "https://registry.yarnpkg.com/miniflare/-/miniflare-4.20260722.0.tgz#55c5d2b4b2fca17be2ea2085f8482c93b51e8d40" + integrity sha512-LW6ABMhCx/yIEFBLC/DO4yAhdm2T/G7jp7pr5T2kj895+CCIaHZqpMXdW9O6YE48LcYcCJChwWc8aEs1vpbTXw== dependencies: "@cspotcode/source-map-support" "0.8.1" - sharp "0.34.5" + sharp "0.35.2" undici "7.28.0" - workerd "1.20260714.1" + workerd "1.20260722.1" ws "8.21.0" youch "4.1.0-beta.10" @@ -3316,44 +3320,45 @@ semver@^6.3.0, semver@^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, semver@^7.7.3, semver@^7.8.0: +semver@^7.5.3, semver@^7.5.4, semver@^7.8.4, semver@^7.8.5: version "7.8.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.8.5.tgz#39b646037dd50c14fb451e7e4cac58ed8b863f69" integrity sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA== -sharp@0.34.5: - version "0.34.5" - resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.34.5.tgz#b6f148e4b8c61f1797bde11a9d1cfebbae2c57b0" - integrity sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg== +sharp@0.35.2: + version "0.35.2" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.35.2.tgz#4437256b654557e2b48279d1e67f086e7872d06a" + integrity sha512-FVtFjtBCMiJS6yb5CX7Sop45WFMpeGw6oRKuJnXYgf/f1ms/D7LE/ZUSNxnW7rZ/dbslQWYkoqFHGPaDBtaK4w== dependencies: - "@img/colour" "^1.0.0" + "@img/colour" "^1.1.0" detect-libc "^2.1.2" - semver "^7.7.3" + semver "^7.8.4" optionalDependencies: - "@img/sharp-darwin-arm64" "0.34.5" - "@img/sharp-darwin-x64" "0.34.5" - "@img/sharp-libvips-darwin-arm64" "1.2.4" - "@img/sharp-libvips-darwin-x64" "1.2.4" - "@img/sharp-libvips-linux-arm" "1.2.4" - "@img/sharp-libvips-linux-arm64" "1.2.4" - "@img/sharp-libvips-linux-ppc64" "1.2.4" - "@img/sharp-libvips-linux-riscv64" "1.2.4" - "@img/sharp-libvips-linux-s390x" "1.2.4" - "@img/sharp-libvips-linux-x64" "1.2.4" - "@img/sharp-libvips-linuxmusl-arm64" "1.2.4" - "@img/sharp-libvips-linuxmusl-x64" "1.2.4" - "@img/sharp-linux-arm" "0.34.5" - "@img/sharp-linux-arm64" "0.34.5" - "@img/sharp-linux-ppc64" "0.34.5" - "@img/sharp-linux-riscv64" "0.34.5" - "@img/sharp-linux-s390x" "0.34.5" - "@img/sharp-linux-x64" "0.34.5" - "@img/sharp-linuxmusl-arm64" "0.34.5" - "@img/sharp-linuxmusl-x64" "0.34.5" - "@img/sharp-wasm32" "0.34.5" - "@img/sharp-win32-arm64" "0.34.5" - "@img/sharp-win32-ia32" "0.34.5" - "@img/sharp-win32-x64" "0.34.5" + "@img/sharp-darwin-arm64" "0.35.2" + "@img/sharp-darwin-x64" "0.35.2" + "@img/sharp-freebsd-wasm32" "0.35.2" + "@img/sharp-libvips-darwin-arm64" "1.3.1" + "@img/sharp-libvips-darwin-x64" "1.3.1" + "@img/sharp-libvips-linux-arm" "1.3.1" + "@img/sharp-libvips-linux-arm64" "1.3.1" + "@img/sharp-libvips-linux-ppc64" "1.3.1" + "@img/sharp-libvips-linux-riscv64" "1.3.1" + "@img/sharp-libvips-linux-s390x" "1.3.1" + "@img/sharp-libvips-linux-x64" "1.3.1" + "@img/sharp-libvips-linuxmusl-arm64" "1.3.1" + "@img/sharp-libvips-linuxmusl-x64" "1.3.1" + "@img/sharp-linux-arm" "0.35.2" + "@img/sharp-linux-arm64" "0.35.2" + "@img/sharp-linux-ppc64" "0.35.2" + "@img/sharp-linux-riscv64" "0.35.2" + "@img/sharp-linux-s390x" "0.35.2" + "@img/sharp-linux-x64" "0.35.2" + "@img/sharp-linuxmusl-arm64" "0.35.2" + "@img/sharp-linuxmusl-x64" "0.35.2" + "@img/sharp-webcontainers-wasm32" "0.35.2" + "@img/sharp-win32-arm64" "0.35.2" + "@img/sharp-win32-ia32" "0.35.2" + "@img/sharp-win32-x64" "0.35.2" shebang-command@^2.0.0: version "2.0.0" @@ -3588,9 +3593,9 @@ tr46@~0.0.3: integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== ts-jest@^29.3.4: - version "29.4.11" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.4.11.tgz#42f5de21c37ccc01a580253afae6955abbf4d0b3" - integrity sha512-IrFl7l9AuB/qrNw5quqvAv/hmKMb8dhWOH4jQOGo0Oq8tCeo1O86/iTFG1FaRimgUkF13l4PcepO8ATFT6Ns4g== + version "29.4.12" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.4.12.tgz#c34cd91f02d364e9286d2c016843315fd0efff76" + integrity sha512-Ov6ClY53Fflh6BGAnY2DlTq1hYDrTycz2PVTXBWFW2CU+9zrEqAp9fWdGXl42EXO5RLSFAcAZ2JFKbP+zBTFfw== dependencies: bs-logger "^0.2.6" fast-json-stable-stringify "^2.1.0" @@ -3598,7 +3603,7 @@ ts-jest@^29.3.4: json5 "^2.2.3" lodash.memoize "^4.1.2" make-error "^1.3.6" - semver "^7.8.0" + semver "^7.8.5" type-fest "^4.41.0" yargs-parser "^21.1.1" @@ -3717,15 +3722,15 @@ webidl-conversions@^7.0.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== -webpack-sources@^3.5.0: +webpack-sources@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.5.1.tgz#76c2418486dcc02b2aa0694c104176c2858fe84a" integrity sha512-jyuiGJdtvY434z5bUZrjz67v76/ePNvFZTp9Mdz29IlH4+GPsgyGjiv0fKI+M7BdkU6ADjulUcKAd3tUK3WlEw== webpack@^5.105.4: - version "5.108.4" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.108.4.tgz#141818a411662773a0bb32dc5536acc5409943b7" - integrity sha512-yur8LyJoeiWh47dErD+Ok7vlbmDsJ3UbbRPAoxbGJ54WpE2y5yVo5G/inUzujnYgw3tPmBRdn+G7PoxXaYC33w== + version "5.109.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.109.0.tgz#871d8eee5e2d5e6eaf5ec8d1a6db74ea65491030" + integrity sha512-vomrngskVVXEZF9sMZfYAd4pXZUnfaWdJGlF+BTNF+gJBCKYCQBnOeVPlrh39Ewl7nlCsirDplMy6o5g9xJHBg== dependencies: "@types/estree" "^1.0.8" "@types/json-schema" "^7.0.15" @@ -3733,22 +3738,20 @@ webpack@^5.105.4: "@webassemblyjs/wasm-edit" "^1.14.1" "@webassemblyjs/wasm-parser" "^1.14.1" acorn "^8.16.0" - acorn-import-phases "^1.0.3" browserslist "^4.28.1" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.22.2" + enhanced-resolve "^5.24.2" es-module-lexer "^2.1.0" eslint-scope "5.1.1" events "^3.2.0" graceful-fs "^4.2.11" - loader-runner "^4.3.2" mime-db "^1.54.0" minimizer-webpack-plugin "^5.6.1" neo-async "^2.6.2" schema-utils "^4.3.3" tapable "^2.3.0" watchpack "^2.5.2" - webpack-sources "^3.5.0" + webpack-sources "^3.5.1" whatwg-encoding@^2.0.0: version "2.0.0" @@ -3790,16 +3793,16 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -workerd@1.20260714.1: - version "1.20260714.1" - resolved "https://registry.yarnpkg.com/workerd/-/workerd-1.20260714.1.tgz#60fb9c3651f8ed512bd4eaeff211cc8898c76441" - integrity sha512-oIbQzfdyl9UQUnG6XLegcSq0Mgt/7WKDbFOoqGgOWCS+/fhyGB460uKEgdAQQ9RHCO/ttcNCX/KiMIQzdoeu3Q== +workerd@1.20260722.1: + version "1.20260722.1" + resolved "https://registry.yarnpkg.com/workerd/-/workerd-1.20260722.1.tgz#59e393c8d63acb27664e5895963bfe4ea28e1848" + integrity sha512-NycKuc1x2onvsRfGGpM093vRlLFU2zHDAM0+APpccfg4+gZxDGCH27RmdDvkeBuoZyYqgLo3oAfF6re4mvC3vQ== optionalDependencies: - "@cloudflare/workerd-darwin-64" "1.20260714.1" - "@cloudflare/workerd-darwin-arm64" "1.20260714.1" - "@cloudflare/workerd-linux-64" "1.20260714.1" - "@cloudflare/workerd-linux-arm64" "1.20260714.1" - "@cloudflare/workerd-windows-64" "1.20260714.1" + "@cloudflare/workerd-darwin-64" "1.20260722.1" + "@cloudflare/workerd-darwin-arm64" "1.20260722.1" + "@cloudflare/workerd-linux-64" "1.20260722.1" + "@cloudflare/workerd-linux-arm64" "1.20260722.1" + "@cloudflare/workerd-windows-64" "1.20260722.1" wrap-ansi@^6.2.0: version "6.2.0"