From 2f91da37427f02ea39736743df82b0f71438c2ce Mon Sep 17 00:00:00 2001
From: "fern-api[bot]" <115122769+fern-api[bot]@users.noreply.github.com>
Date: Wed, 19 Aug 2026 15:14:36 +0000
Subject: [PATCH 1/2] [fern-generated] Update SDK
Generated by Fern
CLI Version: unknown
Generators:
- fernapi/fern-typescript-node-sdk: 3.70.7
---
.fern/metadata.json | 6 +-
package.json | 5 +-
reference.md | 356 ++++++++++++-
src/BaseClient.ts | 4 +-
src/api/resources/accounts/client/Client.ts | 246 +++++++++
.../UpdateOnboardingStateRequestBody.ts | 14 +
.../accounts/client/requests/index.ts | 1 +
.../types/GetOnboardingStateResponse.ts | 9 +
.../types/UpdateOnboardingStateResponse.ts | 9 +
src/api/resources/accounts/types/index.ts | 2 +
src/api/resources/companies/client/Client.ts | 423 +++++++++++++++-
.../client/requests/CountCompaniesRequest.ts | 3 +
.../requests/CountEntityTraitsRequest.ts | 21 +
...tBillingEntityChildSubscriptionsRequest.ts | 2 +-
.../GetCompanyBillingEntityRequest.ts | 2 +-
.../client/requests/ListCompaniesRequest.ts | 3 +
.../client/requests/ListPlanChangesRequest.ts | 2 -
.../companies/client/requests/index.ts | 1 +
.../companies/types/CountCompaniesParams.ts | 2 +
.../types/CountEntityTraitsParams.ts | 15 +
.../types/CountEntityTraitsResponse.ts | 9 +
.../DeleteEntityTraitDefinitionResponse.ts | 9 +
.../GetEntityTraitDefinitionUsageResponse.ts | 9 +
.../companies/types/ListCompaniesParams.ts | 2 +
.../companies/types/ListPlanChangesParams.ts | 1 -
src/api/resources/companies/types/index.ts | 4 +
src/api/resources/credits/client/Client.ts | 8 +-
.../requests/CountCompanyGrantsRequest.ts | 2 +-
.../requests/CreateCreditBundleRequestBody.ts | 2 +
.../requests/ListCompanyGrantsRequest.ts | 2 +-
.../UpdateCreditBundleDetailsRequestBody.ts | 2 +
.../resources/entitlements/client/Client.ts | 153 ++++++
.../ListFeatureUsageHistoryRequest.ts | 32 ++
.../entitlements/client/requests/index.ts | 1 +
.../types/ListFeatureUsageHistoryParams.ts | 23 +
.../types/ListFeatureUsageHistoryResponse.ts | 9 +
src/api/resources/entitlements/types/index.ts | 2 +
src/api/resources/planbundle/client/Client.ts | 42 +-
.../CreateCustomPlanBundleRequestBody.ts | 15 +-
.../requests/CreatePlanBundleRequestBody.ts | 9 +-
.../requests/UpdatePlanBundleRequestBody.ts | 7 +-
src/api/resources/plangroups/client/Client.ts | 2 +
.../requests/CreatePlanGroupRequestBody.ts | 3 +
.../requests/UpdatePlanGroupRequestBody.ts | 3 +
.../resources/planmigrations/client/Client.ts | 20 +-
.../requests/CountCompanyMigrationsRequest.ts | 2 +-
.../client/requests/CountMigrationsRequest.ts | 2 +-
.../client/requests/CreateMigrationInput.ts | 10 +-
.../requests/ListCompanyMigrationsRequest.ts | 2 +-
.../client/requests/ListMigrationsRequest.ts | 2 +-
.../requests/PreviewMigrationRequestBody.ts | 4 +-
src/api/resources/plans/client/Client.ts | 63 +--
.../requests/CreateCustomPlanRequestBody.ts | 1 +
.../requests/ListCustomPlanBillingsRequest.ts | 3 +
.../requests/PublishPlanVersionRequestBody.ts | 3 +
.../types/ListCustomPlanBillingsParams.ts | 2 +
src/api/types/BillingCollectionMethod.ts | 7 +
.../types/BillingCreditBundleResponseData.ts | 2 +
src/api/types/BillingCreditBundleView.ts | 1 +
.../types/BillingCreditGrantResponseData.ts | 4 +
.../BillingPlanCreditGrantResponseData.ts | 2 +
src/api/types/CheckFlagRequestBody.ts | 4 +
.../types/CheckoutBundlePurchaseBehavior.ts | 8 +
src/api/types/CheckoutSettingsResponseData.ts | 4 +
.../types/CompanyBillingCheckoutSettings.ts | 1 +
.../CompanyFeatureUsageExportMetadata.ts | 6 +
src/api/types/CompanyPlanCreditGrantView.ts | 1 +
src/api/types/ComponentCheckoutSettings.ts | 2 +
...CreateBillingPlanCreditGrantRequestBody.ts | 2 +
src/api/types/CreditCompanyGrantView.ts | 2 +
.../types/CustomPlanBillingResponseData.ts | 4 +
src/api/types/EntityTraitDefinitionUsage.ts | 10 +
src/api/types/EventBodyFlagCheck.ts | 2 +
.../types/FeatureUsageHistoryResponseData.ts | 14 +
src/api/types/GetOnboardingStateResp.ts | 12 +
src/api/types/ManagePlanRequest.ts | 14 +
src/api/types/MigrationProrationBehavior.ts | 8 +
src/api/types/OnboardingMilestone.ts | 7 +
src/api/types/OnboardingMilestoneView.ts | 10 +
src/api/types/OnboardingPath.ts | 7 +
src/api/types/OnboardingRequirement.ts | 11 +
src/api/types/OnboardingRequirementStatus.ts | 9 +
src/api/types/OnboardingRequirementView.ts | 10 +
src/api/types/OnboardingTrack.ts | 7 +
src/api/types/PlanBillingSource.ts | 7 +
src/api/types/PlanBundleResponseData.ts | 1 +
src/api/types/PlanCreditGrantView.ts | 1 +
...sionMigrationPreviewCompanyResponseData.ts | 1 +
...PlanVersionMigrationPreviewResponseData.ts | 1 +
.../types/PlanVersionMigrationResponseData.ts | 1 +
.../types/PreflightEventUsageRequestBody.ts | 8 +
src/api/types/PreflightRequestBody.ts | 12 +
.../PreviewSubscriptionFinanceResponseData.ts | 1 +
src/api/types/RulesEngineSchemaVersion.ts | 2 +-
...UpdateBillingPlanCreditGrantRequestBody.ts | 6 +-
src/api/types/UpsertCompanyRequestBody.ts | 2 +
src/api/types/UpsertUserRequestBody.ts | 2 +
src/api/types/UpsertUserSubRequestBody.ts | 2 +
src/api/types/WhoAmIResponseData.ts | 1 +
src/api/types/index.ts | 16 +
.../UpdateOnboardingStateRequestBody.ts | 26 +
.../accounts/client/requests/index.ts | 1 +
.../types/GetOnboardingStateResponse.ts | 21 +
.../types/UpdateOnboardingStateResponse.ts | 21 +
.../resources/accounts/types/index.ts | 2 +
.../companies/types/CountCompaniesParams.ts | 5 +
.../types/CountEntityTraitsParams.ts | 25 +
.../types/CountEntityTraitsResponse.ts | 22 +
.../DeleteEntityTraitDefinitionResponse.ts | 21 +
.../GetEntityTraitDefinitionUsageResponse.ts | 21 +
.../companies/types/ListCompaniesParams.ts | 5 +
.../companies/types/ListPlanChangesParams.ts | 2 -
.../resources/companies/types/index.ts | 4 +
.../requests/CreateCreditBundleRequestBody.ts | 5 +
.../UpdateCreditBundleDetailsRequestBody.ts | 5 +
.../types/ListFeatureUsageHistoryParams.ts | 37 ++
.../types/ListFeatureUsageHistoryResponse.ts | 22 +
.../resources/entitlements/types/index.ts | 2 +
.../CreateCustomPlanBundleRequestBody.ts | 8 +-
.../requests/CreatePlanBundleRequestBody.ts | 4 +-
.../requests/UpdatePlanBundleRequestBody.ts | 4 +-
.../requests/CreatePlanGroupRequestBody.ts | 8 +
.../requests/UpdatePlanGroupRequestBody.ts | 8 +
.../client/requests/CreateMigrationInput.ts | 18 +-
.../requests/PreviewMigrationRequestBody.ts | 12 +-
.../requests/CreateCustomPlanRequestBody.ts | 2 +
.../requests/PublishPlanVersionRequestBody.ts | 5 +
.../types/ListCustomPlanBillingsParams.ts | 3 +
.../types/BillingCollectionMethod.ts | 14 +
.../types/BillingCreditBundleResponseData.ts | 5 +
.../types/BillingCreditBundleView.ts | 5 +
.../types/BillingCreditGrantResponseData.ts | 4 +
.../BillingPlanCreditGrantResponseData.ts | 2 +
.../types/CheckFlagRequestBody.ts | 3 +
.../types/CheckoutBundlePurchaseBehavior.ts | 14 +
.../types/CheckoutSettingsResponseData.ts | 5 +
.../types/CompanyBillingCheckoutSettings.ts | 2 +
.../CompanyFeatureUsageExportMetadata.ts | 15 +
.../types/CompanyPlanCreditGrantView.ts | 2 +
.../types/ComponentCheckoutSettings.ts | 5 +
...CreateBillingPlanCreditGrantRequestBody.ts | 2 +
.../types/CreditCompanyGrantView.ts | 4 +
.../types/CustomPlanBillingResponseData.ts | 5 +
.../types/EntityTraitDefinitionUsage.ts | 28 ++
src/serialization/types/EventBodyFlagCheck.ts | 2 +
.../types/FeatureUsageHistoryResponseData.ts | 28 ++
.../types/GetOnboardingStateResp.ts | 33 ++
src/serialization/types/ManagePlanRequest.ts | 15 +
.../types/MigrationProrationBehavior.ts | 14 +
.../types/OnboardingMilestone.ts | 14 +
.../types/OnboardingMilestoneView.ts | 26 +
src/serialization/types/OnboardingPath.ts | 12 +
.../types/OnboardingRequirement.ts | 27 +
.../types/OnboardingRequirementStatus.ts | 14 +
.../types/OnboardingRequirementView.ts | 26 +
src/serialization/types/OnboardingTrack.ts | 12 +
src/serialization/types/PlanBillingSource.ts | 14 +
.../types/PlanBundleResponseData.ts | 3 +
.../types/PlanCreditGrantView.ts | 2 +
...sionMigrationPreviewCompanyResponseData.ts | 2 +
...PlanVersionMigrationPreviewResponseData.ts | 2 +
.../types/PlanVersionMigrationResponseData.ts | 3 +
.../types/PreflightEventUsageRequestBody.ts | 20 +
.../types/PreflightRequestBody.ts | 26 +
.../PreviewSubscriptionFinanceResponseData.ts | 2 +
.../types/RulesEngineSchemaVersion.ts | 4 +-
...UpdateBillingPlanCreditGrantRequestBody.ts | 2 +
.../types/UpsertCompanyRequestBody.ts | 5 +
.../types/UpsertUserRequestBody.ts | 5 +
.../types/UpsertUserSubRequestBody.ts | 5 +
src/serialization/types/WhoAmIResponseData.ts | 2 +
src/serialization/types/index.ts | 16 +
tests/wire/accounts.test.ts | 251 ++++++++++
tests/wire/checkout.test.ts | 44 +-
tests/wire/companies.test.ts | 466 +++++++++++++++++-
tests/wire/components.test.ts | 20 +
tests/wire/componentspublic.test.ts | 4 +
tests/wire/credits.test.ts | 92 +++-
tests/wire/entitlements.test.ts | 214 ++++++++
tests/wire/planbundle.test.ts | 288 +++++++++--
tests/wire/plangroups.test.ts | 44 ++
tests/wire/planmigrations.test.ts | 140 +++---
tests/wire/plans.test.ts | 111 +++--
yarn.lock | 38 +-
184 files changed, 3975 insertions(+), 333 deletions(-)
create mode 100644 src/api/resources/accounts/client/requests/UpdateOnboardingStateRequestBody.ts
create mode 100644 src/api/resources/accounts/types/GetOnboardingStateResponse.ts
create mode 100644 src/api/resources/accounts/types/UpdateOnboardingStateResponse.ts
create mode 100644 src/api/resources/companies/client/requests/CountEntityTraitsRequest.ts
create mode 100644 src/api/resources/companies/types/CountEntityTraitsParams.ts
create mode 100644 src/api/resources/companies/types/CountEntityTraitsResponse.ts
create mode 100644 src/api/resources/companies/types/DeleteEntityTraitDefinitionResponse.ts
create mode 100644 src/api/resources/companies/types/GetEntityTraitDefinitionUsageResponse.ts
create mode 100644 src/api/resources/entitlements/client/requests/ListFeatureUsageHistoryRequest.ts
create mode 100644 src/api/resources/entitlements/types/ListFeatureUsageHistoryParams.ts
create mode 100644 src/api/resources/entitlements/types/ListFeatureUsageHistoryResponse.ts
create mode 100644 src/api/types/BillingCollectionMethod.ts
create mode 100644 src/api/types/CheckoutBundlePurchaseBehavior.ts
create mode 100644 src/api/types/EntityTraitDefinitionUsage.ts
create mode 100644 src/api/types/FeatureUsageHistoryResponseData.ts
create mode 100644 src/api/types/GetOnboardingStateResp.ts
create mode 100644 src/api/types/MigrationProrationBehavior.ts
create mode 100644 src/api/types/OnboardingMilestone.ts
create mode 100644 src/api/types/OnboardingMilestoneView.ts
create mode 100644 src/api/types/OnboardingPath.ts
create mode 100644 src/api/types/OnboardingRequirement.ts
create mode 100644 src/api/types/OnboardingRequirementStatus.ts
create mode 100644 src/api/types/OnboardingRequirementView.ts
create mode 100644 src/api/types/OnboardingTrack.ts
create mode 100644 src/api/types/PlanBillingSource.ts
create mode 100644 src/api/types/PreflightEventUsageRequestBody.ts
create mode 100644 src/api/types/PreflightRequestBody.ts
create mode 100644 src/serialization/resources/accounts/client/requests/UpdateOnboardingStateRequestBody.ts
create mode 100644 src/serialization/resources/accounts/types/GetOnboardingStateResponse.ts
create mode 100644 src/serialization/resources/accounts/types/UpdateOnboardingStateResponse.ts
create mode 100644 src/serialization/resources/companies/types/CountEntityTraitsParams.ts
create mode 100644 src/serialization/resources/companies/types/CountEntityTraitsResponse.ts
create mode 100644 src/serialization/resources/companies/types/DeleteEntityTraitDefinitionResponse.ts
create mode 100644 src/serialization/resources/companies/types/GetEntityTraitDefinitionUsageResponse.ts
create mode 100644 src/serialization/resources/entitlements/types/ListFeatureUsageHistoryParams.ts
create mode 100644 src/serialization/resources/entitlements/types/ListFeatureUsageHistoryResponse.ts
create mode 100644 src/serialization/types/BillingCollectionMethod.ts
create mode 100644 src/serialization/types/CheckoutBundlePurchaseBehavior.ts
create mode 100644 src/serialization/types/EntityTraitDefinitionUsage.ts
create mode 100644 src/serialization/types/FeatureUsageHistoryResponseData.ts
create mode 100644 src/serialization/types/GetOnboardingStateResp.ts
create mode 100644 src/serialization/types/MigrationProrationBehavior.ts
create mode 100644 src/serialization/types/OnboardingMilestone.ts
create mode 100644 src/serialization/types/OnboardingMilestoneView.ts
create mode 100644 src/serialization/types/OnboardingPath.ts
create mode 100644 src/serialization/types/OnboardingRequirement.ts
create mode 100644 src/serialization/types/OnboardingRequirementStatus.ts
create mode 100644 src/serialization/types/OnboardingRequirementView.ts
create mode 100644 src/serialization/types/OnboardingTrack.ts
create mode 100644 src/serialization/types/PlanBillingSource.ts
create mode 100644 src/serialization/types/PreflightEventUsageRequestBody.ts
create mode 100644 src/serialization/types/PreflightRequestBody.ts
diff --git a/.fern/metadata.json b/.fern/metadata.json
index 3b5a83c1..eb92b49f 100644
--- a/.fern/metadata.json
+++ b/.fern/metadata.json
@@ -53,10 +53,10 @@
]
}
},
- "originGitCommit": "8cfe954dda14329fc30a4f80b915db0acf608382",
+ "originGitCommit": "2b057076e5ae2f32f2925743ebe8a584917851cc",
"originGitCommitIsDirty": false,
"invokedBy": "ci",
- "requestedVersion": "1.5.8",
+ "requestedVersion": "1.5.9",
"ciProvider": "github",
- "sdkVersion": "1.5.8"
+ "sdkVersion": "1.5.9"
}
diff --git a/package.json b/package.json
index 57d7ef26..9937134d 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@schematichq/schematic-typescript-node",
- "version": "1.5.8",
+ "version": "1.5.9",
"private": false,
"repository": {
"type": "git",
@@ -57,9 +57,6 @@
"crypto": false,
"timers": false
},
- "resolutions": {
- "undici": "7.29.0"
- },
"packageManager": "yarn@1.22.22",
"engines": {
"node": ">=18.0.0"
diff --git a/reference.md b/reference.md
index 9642bda2..9ad5824d 100644
--- a/reference.md
+++ b/reference.md
@@ -933,6 +933,96 @@ await client.accounts.deleteEnvironment("environment_id");
+
+
+
+
+client.accounts.getOnboardingState() -> Schematic.GetOnboardingStateResponse
+
+-
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+await client.accounts.getOnboardingState();
+
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**requestOptions:** `AccountsClient.RequestOptions`
+
+
+
+
+
+
+
+
+
+
+
+client.accounts.updateOnboardingState({ ...params }) -> Schematic.UpdateOnboardingStateResponse
+
+-
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+await client.accounts.updateOnboardingState();
+
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**request:** `Schematic.UpdateOnboardingStateRequestBody`
+
+
+
+
+
+-
+
+**requestOptions:** `AccountsClient.RequestOptions`
+
+
+
+
+
+
+
@@ -5331,6 +5421,7 @@ await client.companies.listCompanies({
planIds: ["plan_ids"],
planVersionId: "plan_version_id",
planVersionIds: ["plan_version_ids"],
+ planVersionUnpublished: true,
q: "q",
sortOrderColumn: "sort_order_column",
sortOrderDirection: "asc",
@@ -5563,6 +5654,7 @@ await client.companies.countCompanies({
planIds: ["plan_ids"],
planVersionId: "plan_version_id",
planVersionIds: ["plan_version_ids"],
+ planVersionUnpublished: true,
q: "q",
sortOrderColumn: "sort_order_column",
sortOrderDirection: "asc",
@@ -6580,6 +6672,104 @@ await client.companies.updateEntityTraitDefinition("entity_trait_definition_id",
+
+
+
+
+client.companies.deleteEntityTraitDefinition(entity_trait_definition_id) -> Schematic.DeleteEntityTraitDefinitionResponse
+
+-
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+await client.companies.deleteEntityTraitDefinition("entity_trait_definition_id");
+
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**entity_trait_definition_id:** `string` — entity_trait_definition_id
+
+
+
+
+
+-
+
+**requestOptions:** `CompaniesClient.RequestOptions`
+
+
+
+
+
+
+
+
+
+
+
+client.companies.getEntityTraitDefinitionUsage(entity_trait_definition_id) -> Schematic.GetEntityTraitDefinitionUsageResponse
+
+-
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+await client.companies.getEntityTraitDefinitionUsage("entity_trait_definition_id");
+
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**entity_trait_definition_id:** `string` — entity_trait_definition_id
+
+
+
+
+
+-
+
+**requestOptions:** `CompaniesClient.RequestOptions`
+
+
+
+
+
+
+
@@ -6691,6 +6881,60 @@ await client.companies.getEntityTraitValues({
+
+
+
+
+client.companies.countEntityTraits({ ...params }) -> Schematic.CountEntityTraitsResponse
+
+-
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+await client.companies.countEntityTraits({
+ definitionId: "definition_id",
+ entityType: "company",
+ limit: 1000000,
+ offset: 1000000
+});
+
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**request:** `Schematic.CountEntityTraitsRequest`
+
+
+
+
+
+-
+
+**requestOptions:** `CompaniesClient.RequestOptions`
+
+
+
+
+
+
+
@@ -6713,7 +6957,6 @@ await client.companies.listPlanChanges({
basePlanAction: "fallback",
companyId: "company_id",
companyIds: ["company_ids"],
- planIds: ["plan_ids"],
limit: 1000000,
offset: 1000000
});
@@ -7985,6 +8228,63 @@ await client.entitlements.listFeatureUsage({
+
+
+
+
+client.entitlements.listFeatureUsageHistory({ ...params }) -> Schematic.ListFeatureUsageHistoryResponse
+
+-
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+await client.entitlements.listFeatureUsageHistory({
+ companyIds: ["company_ids"],
+ endTime: new Date("2024-01-15T09:30:00.000Z"),
+ featureIds: ["feature_ids"],
+ granularity: "daily",
+ startTime: new Date("2024-01-15T09:30:00.000Z"),
+ limit: 1000000,
+ offset: 1000000
+});
+
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**request:** `Schematic.ListFeatureUsageHistoryRequest`
+
+
+
+
+
+-
+
+**requestOptions:** `EntitlementsClient.RequestOptions`
+
+
+
+
+
+
+
@@ -8811,7 +9111,7 @@ await client.entitlements.getUserUsageDetail({
## plans
-client.plans.updateCompanyPlans(company_plan_id, { ...params }) -> Schematic.UpdateCompanyPlansResponse
+client.plans.updateCompanyPlans(company_id, { ...params }) -> Schematic.UpdateCompanyPlansResponse
-
@@ -8824,7 +9124,7 @@ await client.entitlements.getUserUsageDetail({
-
```typescript
-await client.plans.updateCompanyPlans("company_plan_id", {
+await client.plans.updateCompanyPlans("company_id", {
addOnIds: ["add_on_ids"]
});
@@ -8842,7 +9142,7 @@ await client.plans.updateCompanyPlans("company_plan_id", {
-
-**company_plan_id:** `string` — company_plan_id
+**company_id:** `string` — company_id
@@ -8886,6 +9186,7 @@ await client.plans.updateCompanyPlans("company_plan_id", {
await client.plans.listCustomPlanBillings({
companyId: "company_id",
planId: "plan_id",
+ planBillingSource: "custom_plan",
status: "active",
statuses: ["active"],
limit: 1000000,
@@ -9726,7 +10027,7 @@ await client.plans.listPlanIssues({
-client.plans.deletePlanVersion(plan_id, { ...params }) -> Schematic.DeletePlanVersionResponse
+client.plans.deletePlanVersion(plan_version_id, { ...params }) -> Schematic.DeletePlanVersionResponse
-
@@ -9739,7 +10040,7 @@ await client.plans.listPlanIssues({
-
```typescript
-await client.plans.deletePlanVersion("plan_id", {
+await client.plans.deletePlanVersion("plan_version_id", {
promoteArchivedVersion: true
});
@@ -9757,7 +10058,7 @@ await client.plans.deletePlanVersion("plan_id", {
-
-**plan_id:** `string` — plan_id
+**plan_version_id:** `string` — plan_version_id
@@ -9785,7 +10086,7 @@ await client.plans.deletePlanVersion("plan_id", {
-client.plans.publishPlanVersion(plan_id, { ...params }) -> Schematic.PublishPlanVersionResponse
+client.plans.publishPlanVersion(plan_version_id, { ...params }) -> Schematic.PublishPlanVersionResponse
-
@@ -9798,7 +10099,7 @@ await client.plans.deletePlanVersion("plan_id", {
-
```typescript
-await client.plans.publishPlanVersion("plan_id", {
+await client.plans.publishPlanVersion("plan_version_id", {
excludedCompanyIds: ["excluded_company_ids"],
migrationStrategy: "immediate"
});
@@ -9817,7 +10118,7 @@ await client.plans.publishPlanVersion("plan_id", {
-
-**plan_id:** `string` — plan_id
+**plan_version_id:** `string` — plan_version_id
@@ -10283,9 +10584,18 @@ await client.components.previewComponentData({
```typescript
await client.planbundle.createCustomPlanBundle({
+ billingProduct: {
+ chargeType: "free",
+ isTrialable: true
+ },
entitlements: [{
action: "create"
- }]
+ }],
+ plan: {
+ companyId: "company_id",
+ description: "description",
+ name: "name"
+ }
});
```
@@ -10338,7 +10648,12 @@ await client.planbundle.createCustomPlanBundle({
await client.planbundle.createPlanBundle({
entitlements: [{
action: "create"
- }]
+ }],
+ plan: {
+ description: "description",
+ name: "name",
+ planType: "plan"
+ }
});
```
@@ -10375,7 +10690,7 @@ await client.planbundle.createPlanBundle({
-client.planbundle.updatePlanBundle(plan_bundle_id, { ...params }) -> Schematic.UpdatePlanBundleResponse
+client.planbundle.updatePlanBundle(plan_id, { ...params }) -> Schematic.UpdatePlanBundleResponse
-
@@ -10388,10 +10703,13 @@ await client.planbundle.createPlanBundle({
-
```typescript
-await client.planbundle.updatePlanBundle("plan_bundle_id", {
+await client.planbundle.updatePlanBundle("plan_id", {
entitlements: [{
action: "create"
- }]
+ }],
+ plan: {
+ name: "name"
+ }
});
```
@@ -10408,7 +10726,7 @@ await client.planbundle.updatePlanBundle("plan_bundle_id", {
-
-**plan_bundle_id:** `string` — plan_bundle_id
+**plan_id:** `string` — plan_id
@@ -12875,6 +13193,7 @@ await client.plangroups.createPlanGroup({
checkoutCollectAddress: true,
checkoutCollectEmail: true,
checkoutCollectPhone: true,
+ checkoutCollectTaxId: true,
enableTaxCollection: true,
optInEnabled: true,
orderedAddOns: [{
@@ -12950,6 +13269,7 @@ await client.plangroups.updatePlanGroup("plan_group_id", {
checkoutCollectAddress: true,
checkoutCollectEmail: true,
checkoutCollectPhone: true,
+ checkoutCollectTaxId: true,
enableTaxCollection: true,
optInEnabled: true,
orderedAddOns: [{
@@ -13243,11 +13563,8 @@ await client.planmigrations.listMigrations({
```typescript
await client.planmigrations.createMigration({
- companyIds: ["company_ids"],
- excludedCompanyIds: ["excluded_company_ids"],
planId: "plan_id",
planVersionIdTo: "plan_version_id_to",
- planVersionIdsFrom: ["plan_version_ids_from"],
strategy: "immediate",
targetPlanType: "plan"
});
@@ -13462,7 +13779,6 @@ await client.planmigrations.countMigrations({
```typescript
await client.planmigrations.previewMigration({
- companyIds: ["company_ids"],
planId: "plan_id",
planVersionIdTo: "plan_version_id_to",
targetPlanType: "plan"
diff --git a/src/BaseClient.ts b/src/BaseClient.ts
index 16bf6c88..123b030c 100644
--- a/src/BaseClient.ts
+++ b/src/BaseClient.ts
@@ -60,8 +60,8 @@ export function normalizeClientOptions {
+ return core.HttpResponsePromise.fromPromise(this.__getOnboardingState(requestOptions));
+ }
+
+ private async __getOnboardingState(
+ requestOptions?: AccountsClient.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,
+ "onboarding-state",
+ ),
+ 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.GetOnboardingStateResponse.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", "/onboarding-state");
+ }
+
+ /**
+ * @param {Schematic.UpdateOnboardingStateRequestBody} request
+ * @param {AccountsClient.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.accounts.updateOnboardingState()
+ */
+ public updateOnboardingState(
+ request: Schematic.UpdateOnboardingStateRequestBody = {},
+ requestOptions?: AccountsClient.RequestOptions,
+ ): core.HttpResponsePromise {
+ return core.HttpResponsePromise.fromPromise(this.__updateOnboardingState(request, requestOptions));
+ }
+
+ private async __updateOnboardingState(
+ request: Schematic.UpdateOnboardingStateRequestBody = {},
+ requestOptions?: AccountsClient.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,
+ "onboarding-state",
+ ),
+ method: "POST",
+ headers: _headers,
+ contentType: "application/json",
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
+ requestType: "json",
+ body: serializers.UpdateOnboardingStateRequestBody.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.UpdateOnboardingStateResponse.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", "/onboarding-state");
+ }
+
/**
* @param {AccountsClient.RequestOptions} requestOptions - Request-specific configuration.
*
diff --git a/src/api/resources/accounts/client/requests/UpdateOnboardingStateRequestBody.ts b/src/api/resources/accounts/client/requests/UpdateOnboardingStateRequestBody.ts
new file mode 100644
index 00000000..4feb1392
--- /dev/null
+++ b/src/api/resources/accounts/client/requests/UpdateOnboardingStateRequestBody.ts
@@ -0,0 +1,14 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type * as Schematic from "../../../../index";
+
+/**
+ * @example
+ * {}
+ */
+export interface UpdateOnboardingStateRequestBody {
+ path?: Schematic.OnboardingPath;
+ pricingPageUrl?: string;
+ track?: Schematic.OnboardingTrack;
+ websiteUrl?: string;
+}
diff --git a/src/api/resources/accounts/client/requests/index.ts b/src/api/resources/accounts/client/requests/index.ts
index a9a05330..b4d76103 100644
--- a/src/api/resources/accounts/client/requests/index.ts
+++ b/src/api/resources/accounts/client/requests/index.ts
@@ -9,3 +9,4 @@ export type { ListAuditLogsRequest } from "./ListAuditLogsRequest";
export type { ListEnvironmentsRequest } from "./ListEnvironmentsRequest";
export type { UpdateApiKeyRequestBody } from "./UpdateApiKeyRequestBody";
export type { UpdateEnvironmentRequestBody } from "./UpdateEnvironmentRequestBody";
+export type { UpdateOnboardingStateRequestBody } from "./UpdateOnboardingStateRequestBody";
diff --git a/src/api/resources/accounts/types/GetOnboardingStateResponse.ts b/src/api/resources/accounts/types/GetOnboardingStateResponse.ts
new file mode 100644
index 00000000..053bf492
--- /dev/null
+++ b/src/api/resources/accounts/types/GetOnboardingStateResponse.ts
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type * as Schematic from "../../../index";
+
+export interface GetOnboardingStateResponse {
+ data: Schematic.GetOnboardingStateResp;
+ /** Input parameters */
+ params: Record;
+}
diff --git a/src/api/resources/accounts/types/UpdateOnboardingStateResponse.ts b/src/api/resources/accounts/types/UpdateOnboardingStateResponse.ts
new file mode 100644
index 00000000..ff6140c3
--- /dev/null
+++ b/src/api/resources/accounts/types/UpdateOnboardingStateResponse.ts
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type * as Schematic from "../../../index";
+
+export interface UpdateOnboardingStateResponse {
+ data: Schematic.GetOnboardingStateResp;
+ /** Input parameters */
+ params: Record;
+}
diff --git a/src/api/resources/accounts/types/index.ts b/src/api/resources/accounts/types/index.ts
index 9b5e764e..df4acd31 100644
--- a/src/api/resources/accounts/types/index.ts
+++ b/src/api/resources/accounts/types/index.ts
@@ -12,6 +12,7 @@ export * from "./GetAccountMemberResponse";
export * from "./GetApiKeyResponse";
export * from "./GetAuditLogResponse";
export * from "./GetEnvironmentResponse";
+export * from "./GetOnboardingStateResponse";
export * from "./GetWhoAmIResponse";
export * from "./ListAccountMembersParams";
export * from "./ListAccountMembersResponse";
@@ -24,3 +25,4 @@ export * from "./ListEnvironmentsResponse";
export * from "./QuickstartResponse";
export * from "./UpdateApiKeyResponse";
export * from "./UpdateEnvironmentResponse";
+export * from "./UpdateOnboardingStateResponse";
diff --git a/src/api/resources/companies/client/Client.ts b/src/api/resources/companies/client/Client.ts
index d279ae32..4f9ad8f9 100644
--- a/src/api/resources/companies/client/Client.ts
+++ b/src/api/resources/companies/client/Client.ts
@@ -44,6 +44,7 @@ export class CompaniesClient {
* planIds: ["plan_ids"],
* planVersionId: "plan_version_id",
* planVersionIds: ["plan_version_ids"],
+ * planVersionUnpublished: true,
* q: "q",
* sortOrderColumn: "sort_order_column",
* sortOrderDirection: "asc",
@@ -78,6 +79,7 @@ export class CompaniesClient {
planIds,
planVersionId,
planVersionIds,
+ planVersionUnpublished,
q,
sortOrderColumn,
sortOrderDirection,
@@ -100,6 +102,7 @@ export class CompaniesClient {
plan_ids: planIds,
plan_version_id: planVersionId,
plan_version_ids: planVersionIds,
+ plan_version_unpublished: planVersionUnpublished,
q,
sort_order_column: sortOrderColumn,
sort_order_direction:
@@ -652,6 +655,7 @@ export class CompaniesClient {
* planIds: ["plan_ids"],
* planVersionId: "plan_version_id",
* planVersionIds: ["plan_version_ids"],
+ * planVersionUnpublished: true,
* q: "q",
* sortOrderColumn: "sort_order_column",
* sortOrderDirection: "asc",
@@ -686,6 +690,7 @@ export class CompaniesClient {
planIds,
planVersionId,
planVersionIds,
+ planVersionUnpublished,
q,
sortOrderColumn,
sortOrderDirection,
@@ -708,6 +713,7 @@ export class CompaniesClient {
plan_ids: planIds,
plan_version_id: planVersionId,
plan_version_ids: planVersionIds,
+ plan_version_unpublished: planVersionUnpublished,
q,
sort_order_column: sortOrderColumn,
sort_order_direction:
@@ -1266,14 +1272,14 @@ export class CompaniesClient {
* })
*/
public getCompanyBillingEntity(
- request: Schematic.GetCompanyBillingEntityRequest = {},
+ request: Schematic.GetCompanyBillingEntityRequest,
requestOptions?: CompaniesClient.RequestOptions,
): core.HttpResponsePromise {
return core.HttpResponsePromise.fromPromise(this.__getCompanyBillingEntity(request, requestOptions));
}
private async __getCompanyBillingEntity(
- request: Schematic.GetCompanyBillingEntityRequest = {},
+ request: Schematic.GetCompanyBillingEntityRequest,
requestOptions?: CompaniesClient.RequestOptions,
): Promise> {
const { companyId } = request;
@@ -1404,14 +1410,14 @@ export class CompaniesClient {
* })
*/
public getBillingEntityChildSubscriptions(
- request: Schematic.GetBillingEntityChildSubscriptionsRequest = {},
+ request: Schematic.GetBillingEntityChildSubscriptionsRequest,
requestOptions?: CompaniesClient.RequestOptions,
): core.HttpResponsePromise {
return core.HttpResponsePromise.fromPromise(this.__getBillingEntityChildSubscriptions(request, requestOptions));
}
private async __getBillingEntityChildSubscriptions(
- request: Schematic.GetBillingEntityChildSubscriptionsRequest = {},
+ request: Schematic.GetBillingEntityChildSubscriptionsRequest,
requestOptions?: CompaniesClient.RequestOptions,
): Promise> {
const { companyId } = request;
@@ -3371,6 +3377,264 @@ export class CompaniesClient {
);
}
+ /**
+ * @param {string} entity_trait_definition_id - entity_trait_definition_id
+ * @param {CompaniesClient.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.companies.deleteEntityTraitDefinition("entity_trait_definition_id")
+ */
+ public deleteEntityTraitDefinition(
+ entity_trait_definition_id: string,
+ requestOptions?: CompaniesClient.RequestOptions,
+ ): core.HttpResponsePromise {
+ return core.HttpResponsePromise.fromPromise(
+ this.__deleteEntityTraitDefinition(entity_trait_definition_id, requestOptions),
+ );
+ }
+
+ private async __deleteEntityTraitDefinition(
+ entity_trait_definition_id: string,
+ requestOptions?: CompaniesClient.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,
+ `entity-trait-definitions/${core.url.encodePathParam(entity_trait_definition_id)}`,
+ ),
+ method: "DELETE",
+ 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.DeleteEntityTraitDefinitionResponse.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,
+ "DELETE",
+ "/entity-trait-definitions/{entity_trait_definition_id}",
+ );
+ }
+
+ /**
+ * @param {string} entity_trait_definition_id - entity_trait_definition_id
+ * @param {CompaniesClient.RequestOptions} requestOptions - Request-specific configuration.
+ *
+ * @throws {@link Schematic.UnauthorizedError}
+ * @throws {@link Schematic.ForbiddenError}
+ * @throws {@link Schematic.NotFoundError}
+ * @throws {@link Schematic.InternalServerError}
+ *
+ * @example
+ * await client.companies.getEntityTraitDefinitionUsage("entity_trait_definition_id")
+ */
+ public getEntityTraitDefinitionUsage(
+ entity_trait_definition_id: string,
+ requestOptions?: CompaniesClient.RequestOptions,
+ ): core.HttpResponsePromise {
+ return core.HttpResponsePromise.fromPromise(
+ this.__getEntityTraitDefinitionUsage(entity_trait_definition_id, requestOptions),
+ );
+ }
+
+ private async __getEntityTraitDefinitionUsage(
+ entity_trait_definition_id: string,
+ requestOptions?: CompaniesClient.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,
+ `entity-trait-definitions/${core.url.encodePathParam(entity_trait_definition_id)}/usage`,
+ ),
+ 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.GetEntityTraitDefinitionUsageResponse.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",
+ "/entity-trait-definitions/{entity_trait_definition_id}/usage",
+ );
+ }
+
/**
* @param {Schematic.CountEntityTraitDefinitionsRequest} request
* @param {CompaniesClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -3680,6 +3944,153 @@ export class CompaniesClient {
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/entity-trait-values");
}
+ /**
+ * @param {Schematic.CountEntityTraitsRequest} request
+ * @param {CompaniesClient.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.companies.countEntityTraits({
+ * definitionId: "definition_id",
+ * entityType: "company",
+ * limit: 1000000,
+ * offset: 1000000
+ * })
+ */
+ public countEntityTraits(
+ request: Schematic.CountEntityTraitsRequest = {},
+ requestOptions?: CompaniesClient.RequestOptions,
+ ): core.HttpResponsePromise {
+ return core.HttpResponsePromise.fromPromise(this.__countEntityTraits(request, requestOptions));
+ }
+
+ private async __countEntityTraits(
+ request: Schematic.CountEntityTraitsRequest = {},
+ requestOptions?: CompaniesClient.RequestOptions,
+ ): Promise> {
+ const { definitionId, entityType, limit, offset } = request;
+ const _queryParams: Record = {
+ definition_id: definitionId,
+ entity_type:
+ entityType != null
+ ? serializers.EntityType.jsonOrThrow(entityType, { unrecognizedObjectKeys: "strip" })
+ : undefined,
+ 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,
+ "entity-traits/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.CountEntityTraitsResponse.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", "/entity-traits/count");
+ }
+
/**
* @param {Schematic.ListPlanChangesRequest} request
* @param {CompaniesClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -3696,7 +4107,6 @@ export class CompaniesClient {
* basePlanAction: "fallback",
* companyId: "company_id",
* companyIds: ["company_ids"],
- * planIds: ["plan_ids"],
* limit: 1000000,
* offset: 1000000
* })
@@ -3712,7 +4122,7 @@ export class CompaniesClient {
request: Schematic.ListPlanChangesRequest = {},
requestOptions?: CompaniesClient.RequestOptions,
): Promise> {
- const { action, basePlanAction, companyId, companyIds, planIds, limit, offset } = request;
+ const { action, basePlanAction, companyId, companyIds, limit, offset } = request;
const _queryParams: Record = {
action:
action != null
@@ -3726,7 +4136,6 @@ export class CompaniesClient {
: undefined,
company_id: companyId,
company_ids: companyIds,
- plan_ids: planIds,
limit,
offset,
};
diff --git a/src/api/resources/companies/client/requests/CountCompaniesRequest.ts b/src/api/resources/companies/client/requests/CountCompaniesRequest.ts
index 3933fcca..38a8a0b3 100644
--- a/src/api/resources/companies/client/requests/CountCompaniesRequest.ts
+++ b/src/api/resources/companies/client/requests/CountCompaniesRequest.ts
@@ -13,6 +13,7 @@ import type * as Schematic from "../../../../index";
* planIds: ["plan_ids"],
* planVersionId: "plan_version_id",
* planVersionIds: ["plan_version_ids"],
+ * planVersionUnpublished: true,
* q: "q",
* sortOrderColumn: "sort_order_column",
* sortOrderDirection: "asc",
@@ -44,6 +45,8 @@ export interface CountCompaniesRequest {
planVersionId?: string;
/** Filter companies by one or more plan version IDs (each ID starts with plvr_). Takes precedence over plan_version_id when set. */
planVersionIds?: string | string[];
+ /** Filter companies assigned to a plan version that is no longer published, meaning the plan has since moved on to a newer version */
+ planVersionUnpublished?: boolean;
/** Search for companies by name, keys or string traits */
q?: string;
/** Column to sort by (e.g. name, created_at, last_seen_at) */
diff --git a/src/api/resources/companies/client/requests/CountEntityTraitsRequest.ts b/src/api/resources/companies/client/requests/CountEntityTraitsRequest.ts
new file mode 100644
index 00000000..682afd1e
--- /dev/null
+++ b/src/api/resources/companies/client/requests/CountEntityTraitsRequest.ts
@@ -0,0 +1,21 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type * as Schematic from "../../../../index";
+
+/**
+ * @example
+ * {
+ * definitionId: "definition_id",
+ * entityType: "company",
+ * limit: 1000000,
+ * offset: 1000000
+ * }
+ */
+export interface CountEntityTraitsRequest {
+ definitionId?: string;
+ entityType?: Schematic.EntityType;
+ /** Page limit (default 100) */
+ limit?: number;
+ /** Page offset (default 0) */
+ offset?: number;
+}
diff --git a/src/api/resources/companies/client/requests/GetBillingEntityChildSubscriptionsRequest.ts b/src/api/resources/companies/client/requests/GetBillingEntityChildSubscriptionsRequest.ts
index 25f09daf..57aa95e5 100644
--- a/src/api/resources/companies/client/requests/GetBillingEntityChildSubscriptionsRequest.ts
+++ b/src/api/resources/companies/client/requests/GetBillingEntityChildSubscriptionsRequest.ts
@@ -7,5 +7,5 @@
* }
*/
export interface GetBillingEntityChildSubscriptionsRequest {
- companyId?: string;
+ companyId: string;
}
diff --git a/src/api/resources/companies/client/requests/GetCompanyBillingEntityRequest.ts b/src/api/resources/companies/client/requests/GetCompanyBillingEntityRequest.ts
index b29215fe..36b883cc 100644
--- a/src/api/resources/companies/client/requests/GetCompanyBillingEntityRequest.ts
+++ b/src/api/resources/companies/client/requests/GetCompanyBillingEntityRequest.ts
@@ -7,5 +7,5 @@
* }
*/
export interface GetCompanyBillingEntityRequest {
- companyId?: string;
+ companyId: string;
}
diff --git a/src/api/resources/companies/client/requests/ListCompaniesRequest.ts b/src/api/resources/companies/client/requests/ListCompaniesRequest.ts
index 85e5ed04..6ef4d9fe 100644
--- a/src/api/resources/companies/client/requests/ListCompaniesRequest.ts
+++ b/src/api/resources/companies/client/requests/ListCompaniesRequest.ts
@@ -13,6 +13,7 @@ import type * as Schematic from "../../../../index";
* planIds: ["plan_ids"],
* planVersionId: "plan_version_id",
* planVersionIds: ["plan_version_ids"],
+ * planVersionUnpublished: true,
* q: "q",
* sortOrderColumn: "sort_order_column",
* sortOrderDirection: "asc",
@@ -44,6 +45,8 @@ export interface ListCompaniesRequest {
planVersionId?: string;
/** Filter companies by one or more plan version IDs (each ID starts with plvr_). Takes precedence over plan_version_id when set. */
planVersionIds?: string | string[];
+ /** Filter companies assigned to a plan version that is no longer published, meaning the plan has since moved on to a newer version */
+ planVersionUnpublished?: boolean;
/** Search for companies by name, keys or string traits */
q?: string;
/** Column to sort by (e.g. name, created_at, last_seen_at) */
diff --git a/src/api/resources/companies/client/requests/ListPlanChangesRequest.ts b/src/api/resources/companies/client/requests/ListPlanChangesRequest.ts
index 183e068b..7180f6a5 100644
--- a/src/api/resources/companies/client/requests/ListPlanChangesRequest.ts
+++ b/src/api/resources/companies/client/requests/ListPlanChangesRequest.ts
@@ -9,7 +9,6 @@ import type * as Schematic from "../../../../index";
* basePlanAction: "fallback",
* companyId: "company_id",
* companyIds: ["company_ids"],
- * planIds: ["plan_ids"],
* limit: 1000000,
* offset: 1000000
* }
@@ -19,7 +18,6 @@ export interface ListPlanChangesRequest {
basePlanAction?: Schematic.PlanChangeBasePlanAction;
companyId?: string;
companyIds?: string | string[];
- planIds?: string | string[];
/** Page limit (default 100) */
limit?: number;
/** Page offset (default 0) */
diff --git a/src/api/resources/companies/client/requests/index.ts b/src/api/resources/companies/client/requests/index.ts
index d1db20fa..4043dd86 100644
--- a/src/api/resources/companies/client/requests/index.ts
+++ b/src/api/resources/companies/client/requests/index.ts
@@ -2,6 +2,7 @@ export type { CountCompaniesRequest } from "./CountCompaniesRequest";
export type { CountEntityKeyDefinitionsRequest } from "./CountEntityKeyDefinitionsRequest";
export type { CountEntityKeysRequest } from "./CountEntityKeysRequest";
export type { CountEntityTraitDefinitionsRequest } from "./CountEntityTraitDefinitionsRequest";
+export type { CountEntityTraitsRequest } from "./CountEntityTraitsRequest";
export type { CountPlanTraitsRequest } from "./CountPlanTraitsRequest";
export type { CountUsersRequest } from "./CountUsersRequest";
export type { CreateEntityTraitDefinitionRequestBody } from "./CreateEntityTraitDefinitionRequestBody";
diff --git a/src/api/resources/companies/types/CountCompaniesParams.ts b/src/api/resources/companies/types/CountCompaniesParams.ts
index 797b1e04..08157e86 100644
--- a/src/api/resources/companies/types/CountCompaniesParams.ts
+++ b/src/api/resources/companies/types/CountCompaniesParams.ts
@@ -26,6 +26,8 @@ export interface CountCompaniesParams {
planVersionId?: string;
/** Filter companies by one or more plan version IDs (each ID starts with plvr_). Takes precedence over plan_version_id when set. */
planVersionIds?: string[];
+ /** Filter companies assigned to a plan version that is no longer published, meaning the plan has since moved on to a newer version */
+ planVersionUnpublished?: boolean;
/** Search for companies by name, keys or string traits */
q?: string;
/** Column to sort by (e.g. name, created_at, last_seen_at) */
diff --git a/src/api/resources/companies/types/CountEntityTraitsParams.ts b/src/api/resources/companies/types/CountEntityTraitsParams.ts
new file mode 100644
index 00000000..7815b6e0
--- /dev/null
+++ b/src/api/resources/companies/types/CountEntityTraitsParams.ts
@@ -0,0 +1,15 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type * as Schematic from "../../../index";
+
+/**
+ * Input parameters
+ */
+export interface CountEntityTraitsParams {
+ definitionId?: string;
+ entityType?: Schematic.EntityType;
+ /** Page limit (default 100) */
+ limit?: number;
+ /** Page offset (default 0) */
+ offset?: number;
+}
diff --git a/src/api/resources/companies/types/CountEntityTraitsResponse.ts b/src/api/resources/companies/types/CountEntityTraitsResponse.ts
new file mode 100644
index 00000000..526ccb77
--- /dev/null
+++ b/src/api/resources/companies/types/CountEntityTraitsResponse.ts
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type * as Schematic from "../../../index";
+
+export interface CountEntityTraitsResponse {
+ data: Schematic.CountResponse;
+ /** Input parameters */
+ params: Schematic.CountEntityTraitsParams;
+}
diff --git a/src/api/resources/companies/types/DeleteEntityTraitDefinitionResponse.ts b/src/api/resources/companies/types/DeleteEntityTraitDefinitionResponse.ts
new file mode 100644
index 00000000..fbb2e11d
--- /dev/null
+++ b/src/api/resources/companies/types/DeleteEntityTraitDefinitionResponse.ts
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type * as Schematic from "../../../index";
+
+export interface DeleteEntityTraitDefinitionResponse {
+ data: Schematic.DeleteResponse;
+ /** Input parameters */
+ params: Record;
+}
diff --git a/src/api/resources/companies/types/GetEntityTraitDefinitionUsageResponse.ts b/src/api/resources/companies/types/GetEntityTraitDefinitionUsageResponse.ts
new file mode 100644
index 00000000..2422fb9d
--- /dev/null
+++ b/src/api/resources/companies/types/GetEntityTraitDefinitionUsageResponse.ts
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type * as Schematic from "../../../index";
+
+export interface GetEntityTraitDefinitionUsageResponse {
+ data: Schematic.EntityTraitDefinitionUsage;
+ /** Input parameters */
+ params: Record;
+}
diff --git a/src/api/resources/companies/types/ListCompaniesParams.ts b/src/api/resources/companies/types/ListCompaniesParams.ts
index 8db623df..e565d755 100644
--- a/src/api/resources/companies/types/ListCompaniesParams.ts
+++ b/src/api/resources/companies/types/ListCompaniesParams.ts
@@ -26,6 +26,8 @@ export interface ListCompaniesParams {
planVersionId?: string;
/** Filter companies by one or more plan version IDs (each ID starts with plvr_). Takes precedence over plan_version_id when set. */
planVersionIds?: string[];
+ /** Filter companies assigned to a plan version that is no longer published, meaning the plan has since moved on to a newer version */
+ planVersionUnpublished?: boolean;
/** Search for companies by name, keys or string traits */
q?: string;
/** Column to sort by (e.g. name, created_at, last_seen_at) */
diff --git a/src/api/resources/companies/types/ListPlanChangesParams.ts b/src/api/resources/companies/types/ListPlanChangesParams.ts
index c88dce95..600277bc 100644
--- a/src/api/resources/companies/types/ListPlanChangesParams.ts
+++ b/src/api/resources/companies/types/ListPlanChangesParams.ts
@@ -14,5 +14,4 @@ export interface ListPlanChangesParams {
limit?: number;
/** Page offset (default 0) */
offset?: number;
- planIds?: string[];
}
diff --git a/src/api/resources/companies/types/index.ts b/src/api/resources/companies/types/index.ts
index f2b0a833..1ba311a4 100644
--- a/src/api/resources/companies/types/index.ts
+++ b/src/api/resources/companies/types/index.ts
@@ -6,6 +6,8 @@ export * from "./CountEntityKeysParams";
export * from "./CountEntityKeysResponse";
export * from "./CountEntityTraitDefinitionsParams";
export * from "./CountEntityTraitDefinitionsResponse";
+export * from "./CountEntityTraitsParams";
+export * from "./CountEntityTraitsResponse";
export * from "./CountPlanTraitsParams";
export * from "./CountPlanTraitsResponse";
export * from "./CountUsersParams";
@@ -17,6 +19,7 @@ export * from "./DeleteCompanyMembershipResponse";
export * from "./DeleteCompanyParams";
export * from "./DeleteCompanyResponse";
export * from "./DeleteEntityKeyDefinitionResponse";
+export * from "./DeleteEntityTraitDefinitionResponse";
export * from "./DeleteUserByKeysResponse";
export * from "./DeleteUserResponse";
export * from "./GetActiveCompanySubscriptionParams";
@@ -27,6 +30,7 @@ export * from "./GetCompanyBillingEntityParams";
export * from "./GetCompanyBillingEntityResponse";
export * from "./GetCompanyResponse";
export * from "./GetEntityTraitDefinitionResponse";
+export * from "./GetEntityTraitDefinitionUsageResponse";
export * from "./GetEntityTraitValuesParams";
export * from "./GetEntityTraitValuesResponse";
export * from "./GetOrCreateCompanyMembershipResponse";
diff --git a/src/api/resources/credits/client/Client.ts b/src/api/resources/credits/client/Client.ts
index b34170e5..bfaf0e9d 100644
--- a/src/api/resources/credits/client/Client.ts
+++ b/src/api/resources/credits/client/Client.ts
@@ -2119,14 +2119,14 @@ export class CreditsClient {
* })
*/
public countCompanyGrants(
- request: Schematic.CountCompanyGrantsRequest = {},
+ request: Schematic.CountCompanyGrantsRequest,
requestOptions?: CreditsClient.RequestOptions,
): core.HttpResponsePromise {
return core.HttpResponsePromise.fromPromise(this.__countCompanyGrants(request, requestOptions));
}
private async __countCompanyGrants(
- request: Schematic.CountCompanyGrantsRequest = {},
+ request: Schematic.CountCompanyGrantsRequest,
requestOptions?: CreditsClient.RequestOptions,
): Promise> {
const { companyId, order, dir, limit, offset } = request;
@@ -2276,14 +2276,14 @@ export class CreditsClient {
* })
*/
public listCompanyGrants(
- request: Schematic.ListCompanyGrantsRequest = {},
+ request: Schematic.ListCompanyGrantsRequest,
requestOptions?: CreditsClient.RequestOptions,
): core.HttpResponsePromise {
return core.HttpResponsePromise.fromPromise(this.__listCompanyGrants(request, requestOptions));
}
private async __listCompanyGrants(
- request: Schematic.ListCompanyGrantsRequest = {},
+ request: Schematic.ListCompanyGrantsRequest,
requestOptions?: CreditsClient.RequestOptions,
): Promise> {
const { companyId, order, dir, limit, offset } = request;
diff --git a/src/api/resources/credits/client/requests/CountCompanyGrantsRequest.ts b/src/api/resources/credits/client/requests/CountCompanyGrantsRequest.ts
index 664ccf36..b9cd6c0c 100644
--- a/src/api/resources/credits/client/requests/CountCompanyGrantsRequest.ts
+++ b/src/api/resources/credits/client/requests/CountCompanyGrantsRequest.ts
@@ -13,7 +13,7 @@ import type * as Schematic from "../../../../index";
* }
*/
export interface CountCompanyGrantsRequest {
- companyId?: string;
+ companyId: string;
order?: Schematic.CreditGrantSortOrder;
dir?: Schematic.SortDirection;
/** Page limit (default 100) */
diff --git a/src/api/resources/credits/client/requests/CreateCreditBundleRequestBody.ts b/src/api/resources/credits/client/requests/CreateCreditBundleRequestBody.ts
index c4cedbc1..68159f91 100644
--- a/src/api/resources/credits/client/requests/CreateCreditBundleRequestBody.ts
+++ b/src/api/resources/credits/client/requests/CreateCreditBundleRequestBody.ts
@@ -14,6 +14,8 @@ import type * as Schematic from "../../../../index";
export interface CreateCreditBundleRequestBody {
bundleName: string;
bundleType?: Schematic.BillingCreditBundleType;
+ /** Plans whose companies may purchase this bundle. Omitted or empty means the bundle is purchasable on every plan. */
+ compatiblePlanIds?: string[];
creditId: string;
currency: string;
currencyPrices?: Schematic.CreditBundleCurrencyPriceRequestBody[];
diff --git a/src/api/resources/credits/client/requests/ListCompanyGrantsRequest.ts b/src/api/resources/credits/client/requests/ListCompanyGrantsRequest.ts
index 1102ae8b..9f5997be 100644
--- a/src/api/resources/credits/client/requests/ListCompanyGrantsRequest.ts
+++ b/src/api/resources/credits/client/requests/ListCompanyGrantsRequest.ts
@@ -13,7 +13,7 @@ import type * as Schematic from "../../../../index";
* }
*/
export interface ListCompanyGrantsRequest {
- companyId?: string;
+ companyId: string;
order?: Schematic.CreditGrantSortOrder;
dir?: Schematic.SortDirection;
/** Page limit (default 100) */
diff --git a/src/api/resources/credits/client/requests/UpdateCreditBundleDetailsRequestBody.ts b/src/api/resources/credits/client/requests/UpdateCreditBundleDetailsRequestBody.ts
index 08f54350..dbdf0d30 100644
--- a/src/api/resources/credits/client/requests/UpdateCreditBundleDetailsRequestBody.ts
+++ b/src/api/resources/credits/client/requests/UpdateCreditBundleDetailsRequestBody.ts
@@ -11,6 +11,8 @@ import type * as Schematic from "../../../../index";
*/
export interface UpdateCreditBundleDetailsRequestBody {
bundleName: string;
+ /** Plans whose companies may purchase this bundle. Omitted leaves compatibility unchanged; empty resets the bundle to purchasable on every plan. */
+ compatiblePlanIds?: string[];
currencyPrices?: Schematic.CreditBundleCurrencyPriceRequestBody[];
expiryType?: Schematic.BillingCreditExpiryType;
expiryUnit?: Schematic.BillingCreditExpiryUnit;
diff --git a/src/api/resources/entitlements/client/Client.ts b/src/api/resources/entitlements/client/Client.ts
index 87c50722..31b14e44 100644
--- a/src/api/resources/entitlements/client/Client.ts
+++ b/src/api/resources/entitlements/client/Client.ts
@@ -1322,6 +1322,159 @@ export class EntitlementsClient {
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/feature-usage");
}
+ /**
+ * @param {Schematic.ListFeatureUsageHistoryRequest} request
+ * @param {EntitlementsClient.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.entitlements.listFeatureUsageHistory({
+ * companyIds: ["company_ids"],
+ * endTime: new Date("2024-01-15T09:30:00.000Z"),
+ * featureIds: ["feature_ids"],
+ * granularity: "daily",
+ * startTime: new Date("2024-01-15T09:30:00.000Z"),
+ * limit: 1000000,
+ * offset: 1000000
+ * })
+ */
+ public listFeatureUsageHistory(
+ request: Schematic.ListFeatureUsageHistoryRequest,
+ requestOptions?: EntitlementsClient.RequestOptions,
+ ): core.HttpResponsePromise {
+ return core.HttpResponsePromise.fromPromise(this.__listFeatureUsageHistory(request, requestOptions));
+ }
+
+ private async __listFeatureUsageHistory(
+ request: Schematic.ListFeatureUsageHistoryRequest,
+ requestOptions?: EntitlementsClient.RequestOptions,
+ ): Promise> {
+ const { companyIds, endTime, featureIds, granularity, startTime, limit, offset } = request;
+ const _queryParams: Record = {
+ company_ids: companyIds,
+ end_time: endTime.toISOString(),
+ feature_ids: featureIds,
+ granularity:
+ granularity != null
+ ? serializers.TimeSeriesGranularity.jsonOrThrow(granularity, { unrecognizedObjectKeys: "strip" })
+ : undefined,
+ start_time: startTime.toISOString(),
+ 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,
+ "feature-usage-history",
+ ),
+ 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.ListFeatureUsageHistoryResponse.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", "/feature-usage-history");
+ }
+
/**
* @param {Schematic.GetFeatureUsageTimeSeriesRequest} request
* @param {EntitlementsClient.RequestOptions} requestOptions - Request-specific configuration.
diff --git a/src/api/resources/entitlements/client/requests/ListFeatureUsageHistoryRequest.ts b/src/api/resources/entitlements/client/requests/ListFeatureUsageHistoryRequest.ts
new file mode 100644
index 00000000..13de7d69
--- /dev/null
+++ b/src/api/resources/entitlements/client/requests/ListFeatureUsageHistoryRequest.ts
@@ -0,0 +1,32 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type * as Schematic from "../../../../index";
+
+/**
+ * @example
+ * {
+ * companyIds: ["company_ids"],
+ * endTime: new Date("2024-01-15T09:30:00.000Z"),
+ * featureIds: ["feature_ids"],
+ * granularity: "daily",
+ * startTime: new Date("2024-01-15T09:30:00.000Z"),
+ * limit: 1000000,
+ * offset: 1000000
+ * }
+ */
+export interface ListFeatureUsageHistoryRequest {
+ /** Restrict to these company IDs; omit for every company in the environment */
+ companyIds?: string | string[];
+ /** Exclusive end of the window; must fall on an hour boundary */
+ endTime: Date;
+ /** Restrict to these event features; omit for every event feature in the environment. Where several features measure the same event, each is reported separately and a page may carry more rows than the requested limit */
+ featureIds?: string | string[];
+ /** Bucket the window; omit for a single total per company and feature */
+ granularity?: Schematic.TimeSeriesGranularity;
+ /** Inclusive start of the window; must fall on an hour boundary */
+ startTime: Date;
+ /** Page limit (default 100) */
+ limit?: number;
+ /** Page offset (default 0) */
+ offset?: number;
+}
diff --git a/src/api/resources/entitlements/client/requests/index.ts b/src/api/resources/entitlements/client/requests/index.ts
index 5f0b1a72..5dcfba73 100644
--- a/src/api/resources/entitlements/client/requests/index.ts
+++ b/src/api/resources/entitlements/client/requests/index.ts
@@ -13,6 +13,7 @@ export type { GetUserUsageByCompanyRequest } from "./GetUserUsageByCompanyReques
export type { GetUserUsageDetailRequest } from "./GetUserUsageDetailRequest";
export type { ListCompanyOverridesRequest } from "./ListCompanyOverridesRequest";
export type { ListFeatureCompaniesRequest } from "./ListFeatureCompaniesRequest";
+export type { ListFeatureUsageHistoryRequest } from "./ListFeatureUsageHistoryRequest";
export type { ListFeatureUsageRequest } from "./ListFeatureUsageRequest";
export type { ListFeatureUsersRequest } from "./ListFeatureUsersRequest";
export type { ListPlanEntitlementsRequest } from "./ListPlanEntitlementsRequest";
diff --git a/src/api/resources/entitlements/types/ListFeatureUsageHistoryParams.ts b/src/api/resources/entitlements/types/ListFeatureUsageHistoryParams.ts
new file mode 100644
index 00000000..aa9005bf
--- /dev/null
+++ b/src/api/resources/entitlements/types/ListFeatureUsageHistoryParams.ts
@@ -0,0 +1,23 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type * as Schematic from "../../../index";
+
+/**
+ * Input parameters
+ */
+export interface ListFeatureUsageHistoryParams {
+ /** Restrict to these company IDs; omit for every company in the environment */
+ companyIds?: string[];
+ /** Exclusive end of the window; must fall on an hour boundary */
+ endTime?: Date;
+ /** Restrict to these event features; omit for every event feature in the environment. Where several features measure the same event, each is reported separately and a page may carry more rows than the requested limit */
+ featureIds?: string[];
+ /** Bucket the window; omit for a single total per company and feature */
+ granularity?: Schematic.TimeSeriesGranularity;
+ /** Page limit (default 100) */
+ limit?: number;
+ /** Page offset (default 0) */
+ offset?: number;
+ /** Inclusive start of the window; must fall on an hour boundary */
+ startTime?: Date;
+}
diff --git a/src/api/resources/entitlements/types/ListFeatureUsageHistoryResponse.ts b/src/api/resources/entitlements/types/ListFeatureUsageHistoryResponse.ts
new file mode 100644
index 00000000..b09a0192
--- /dev/null
+++ b/src/api/resources/entitlements/types/ListFeatureUsageHistoryResponse.ts
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type * as Schematic from "../../../index";
+
+export interface ListFeatureUsageHistoryResponse {
+ data: Schematic.FeatureUsageHistoryResponseData[];
+ /** Input parameters */
+ params: Schematic.ListFeatureUsageHistoryParams;
+}
diff --git a/src/api/resources/entitlements/types/index.ts b/src/api/resources/entitlements/types/index.ts
index be3b6d01..102fd822 100644
--- a/src/api/resources/entitlements/types/index.ts
+++ b/src/api/resources/entitlements/types/index.ts
@@ -27,6 +27,8 @@ export * from "./ListCompanyOverridesParams";
export * from "./ListCompanyOverridesResponse";
export * from "./ListFeatureCompaniesParams";
export * from "./ListFeatureCompaniesResponse";
+export * from "./ListFeatureUsageHistoryParams";
+export * from "./ListFeatureUsageHistoryResponse";
export * from "./ListFeatureUsageParams";
export * from "./ListFeatureUsageResponse";
export * from "./ListFeatureUsersParams";
diff --git a/src/api/resources/planbundle/client/Client.ts b/src/api/resources/planbundle/client/Client.ts
index 047077eb..379445b8 100644
--- a/src/api/resources/planbundle/client/Client.ts
+++ b/src/api/resources/planbundle/client/Client.ts
@@ -35,9 +35,18 @@ export class PlanbundleClient {
*
* @example
* await client.planbundle.createCustomPlanBundle({
+ * billingProduct: {
+ * chargeType: "free",
+ * isTrialable: true
+ * },
* entitlements: [{
* action: "create"
- * }]
+ * }],
+ * plan: {
+ * companyId: "company_id",
+ * description: "description",
+ * name: "name"
+ * }
* })
*/
public createCustomPlanBundle(
@@ -174,7 +183,12 @@ export class PlanbundleClient {
* await client.planbundle.createPlanBundle({
* entitlements: [{
* action: "create"
- * }]
+ * }],
+ * plan: {
+ * description: "description",
+ * name: "name",
+ * planType: "plan"
+ * }
* })
*/
public createPlanBundle(
@@ -296,7 +310,7 @@ export class PlanbundleClient {
}
/**
- * @param {string} plan_bundle_id - plan_bundle_id
+ * @param {string} plan_id - plan_id
* @param {Schematic.UpdatePlanBundleRequestBody} request
* @param {PlanbundleClient.RequestOptions} requestOptions - Request-specific configuration.
*
@@ -307,22 +321,25 @@ export class PlanbundleClient {
* @throws {@link Schematic.InternalServerError}
*
* @example
- * await client.planbundle.updatePlanBundle("plan_bundle_id", {
+ * await client.planbundle.updatePlanBundle("plan_id", {
* entitlements: [{
* action: "create"
- * }]
+ * }],
+ * plan: {
+ * name: "name"
+ * }
* })
*/
public updatePlanBundle(
- plan_bundle_id: string,
+ plan_id: string,
request: Schematic.UpdatePlanBundleRequestBody,
requestOptions?: PlanbundleClient.RequestOptions,
): core.HttpResponsePromise {
- return core.HttpResponsePromise.fromPromise(this.__updatePlanBundle(plan_bundle_id, request, requestOptions));
+ return core.HttpResponsePromise.fromPromise(this.__updatePlanBundle(plan_id, request, requestOptions));
}
private async __updatePlanBundle(
- plan_bundle_id: string,
+ plan_id: string,
request: Schematic.UpdatePlanBundleRequestBody,
requestOptions?: PlanbundleClient.RequestOptions,
): Promise> {
@@ -337,7 +354,7 @@ export class PlanbundleClient {
(await core.Supplier.get(this._options.baseUrl)) ??
(await core.Supplier.get(this._options.environment)) ??
environments.SchematicEnvironment.Default,
- `plan-bundles/${core.url.encodePathParam(plan_bundle_id)}`,
+ `plan-bundles/${core.url.encodePathParam(plan_id)}`,
),
method: "PUT",
headers: _headers,
@@ -430,11 +447,6 @@ export class PlanbundleClient {
}
}
- return handleNonStatusCodeError(
- _response.error,
- _response.rawResponse,
- "PUT",
- "/plan-bundles/{plan_bundle_id}",
- );
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "PUT", "/plan-bundles/{plan_id}");
}
}
diff --git a/src/api/resources/planbundle/client/requests/CreateCustomPlanBundleRequestBody.ts b/src/api/resources/planbundle/client/requests/CreateCustomPlanBundleRequestBody.ts
index 1b35a6a9..26c78c9f 100644
--- a/src/api/resources/planbundle/client/requests/CreateCustomPlanBundleRequestBody.ts
+++ b/src/api/resources/planbundle/client/requests/CreateCustomPlanBundleRequestBody.ts
@@ -5,14 +5,23 @@ import type * as Schematic from "../../../../index";
/**
* @example
* {
+ * billingProduct: {
+ * chargeType: "free",
+ * isTrialable: true
+ * },
* entitlements: [{
* action: "create"
- * }]
+ * }],
+ * plan: {
+ * companyId: "company_id",
+ * description: "description",
+ * name: "name"
+ * }
* }
*/
export interface CreateCustomPlanBundleRequestBody {
- billingProduct?: Schematic.UpsertBillingProductRequestBody;
+ billingProduct: Schematic.UpsertBillingProductRequestBody;
creditGrants?: Schematic.PlanBundleCreditGrantRequestBody[];
entitlements: Schematic.PlanBundleEntitlementRequestBody[];
- plan?: Schematic.CreateCustomPlanBundlePlanRequestBody;
+ plan: Schematic.CreateCustomPlanBundlePlanRequestBody;
}
diff --git a/src/api/resources/planbundle/client/requests/CreatePlanBundleRequestBody.ts b/src/api/resources/planbundle/client/requests/CreatePlanBundleRequestBody.ts
index ec2964ca..0b9b0999 100644
--- a/src/api/resources/planbundle/client/requests/CreatePlanBundleRequestBody.ts
+++ b/src/api/resources/planbundle/client/requests/CreatePlanBundleRequestBody.ts
@@ -7,12 +7,17 @@ import type * as Schematic from "../../../../index";
* {
* entitlements: [{
* action: "create"
- * }]
+ * }],
+ * plan: {
+ * description: "description",
+ * name: "name",
+ * planType: "plan"
+ * }
* }
*/
export interface CreatePlanBundleRequestBody {
billingProduct?: Schematic.UpsertBillingProductRequestBody;
creditGrants?: Schematic.PlanBundleCreditGrantRequestBody[];
entitlements: Schematic.PlanBundleEntitlementRequestBody[];
- plan?: Schematic.CreatePlanRequestBody;
+ plan: Schematic.CreatePlanRequestBody;
}
diff --git a/src/api/resources/planbundle/client/requests/UpdatePlanBundleRequestBody.ts b/src/api/resources/planbundle/client/requests/UpdatePlanBundleRequestBody.ts
index 2680caa0..90190c86 100644
--- a/src/api/resources/planbundle/client/requests/UpdatePlanBundleRequestBody.ts
+++ b/src/api/resources/planbundle/client/requests/UpdatePlanBundleRequestBody.ts
@@ -7,13 +7,16 @@ import type * as Schematic from "../../../../index";
* {
* entitlements: [{
* action: "create"
- * }]
+ * }],
+ * plan: {
+ * name: "name"
+ * }
* }
*/
export interface UpdatePlanBundleRequestBody {
billingProduct?: Schematic.UpsertBillingProductRequestBody;
creditGrants?: Schematic.PlanBundleCreditGrantRequestBody[];
entitlements: Schematic.PlanBundleEntitlementRequestBody[];
- plan?: Schematic.UpdatePlanRequestBody;
+ plan: Schematic.UpdatePlanRequestBody;
planVersionId?: string;
}
diff --git a/src/api/resources/plangroups/client/Client.ts b/src/api/resources/plangroups/client/Client.ts
index 91bf6479..b8fc6ffb 100644
--- a/src/api/resources/plangroups/client/Client.ts
+++ b/src/api/resources/plangroups/client/Client.ts
@@ -165,6 +165,7 @@ export class PlangroupsClient {
* checkoutCollectAddress: true,
* checkoutCollectEmail: true,
* checkoutCollectPhone: true,
+ * checkoutCollectTaxId: true,
* enableTaxCollection: true,
* optInEnabled: true,
* orderedAddOns: [{
@@ -323,6 +324,7 @@ export class PlangroupsClient {
* checkoutCollectAddress: true,
* checkoutCollectEmail: true,
* checkoutCollectPhone: true,
+ * checkoutCollectTaxId: true,
* enableTaxCollection: true,
* optInEnabled: true,
* orderedAddOns: [{
diff --git a/src/api/resources/plangroups/client/requests/CreatePlanGroupRequestBody.ts b/src/api/resources/plangroups/client/requests/CreatePlanGroupRequestBody.ts
index 89174a62..291a853d 100644
--- a/src/api/resources/plangroups/client/requests/CreatePlanGroupRequestBody.ts
+++ b/src/api/resources/plangroups/client/requests/CreatePlanGroupRequestBody.ts
@@ -9,6 +9,7 @@ import type * as Schematic from "../../../../index";
* checkoutCollectAddress: true,
* checkoutCollectEmail: true,
* checkoutCollectPhone: true,
+ * checkoutCollectTaxId: true,
* enableTaxCollection: true,
* optInEnabled: true,
* orderedAddOns: [{
@@ -36,9 +37,11 @@ export interface CreatePlanGroupRequestBody {
addOnCompatibilities?: Schematic.CompatiblePlans[];
/** Use OrderedAddOns instead */
addOnIds: string[];
+ checkoutBundlePurchaseBehavior?: Schematic.CheckoutBundlePurchaseBehavior;
checkoutCollectAddress: boolean;
checkoutCollectEmail: boolean;
checkoutCollectPhone: boolean;
+ checkoutCollectTaxId: boolean;
customCheckoutFields?: Schematic.CheckoutFieldInput[];
customPlanConfig?: Schematic.CustomPlanConfig;
customPlanId?: string;
diff --git a/src/api/resources/plangroups/client/requests/UpdatePlanGroupRequestBody.ts b/src/api/resources/plangroups/client/requests/UpdatePlanGroupRequestBody.ts
index 76259a60..a02bdb02 100644
--- a/src/api/resources/plangroups/client/requests/UpdatePlanGroupRequestBody.ts
+++ b/src/api/resources/plangroups/client/requests/UpdatePlanGroupRequestBody.ts
@@ -9,6 +9,7 @@ import type * as Schematic from "../../../../index";
* checkoutCollectAddress: true,
* checkoutCollectEmail: true,
* checkoutCollectPhone: true,
+ * checkoutCollectTaxId: true,
* enableTaxCollection: true,
* optInEnabled: true,
* orderedAddOns: [{
@@ -36,9 +37,11 @@ export interface UpdatePlanGroupRequestBody {
addOnCompatibilities?: Schematic.CompatiblePlans[];
/** Use OrderedAddOns instead */
addOnIds: string[];
+ checkoutBundlePurchaseBehavior?: Schematic.CheckoutBundlePurchaseBehavior;
checkoutCollectAddress: boolean;
checkoutCollectEmail: boolean;
checkoutCollectPhone: boolean;
+ checkoutCollectTaxId: boolean;
customCheckoutFields?: Schematic.CheckoutFieldInput[];
customPlanConfig?: Schematic.CustomPlanConfig;
customPlanId?: string;
diff --git a/src/api/resources/planmigrations/client/Client.ts b/src/api/resources/planmigrations/client/Client.ts
index 0d8a01a5..94f8ff36 100644
--- a/src/api/resources/planmigrations/client/Client.ts
+++ b/src/api/resources/planmigrations/client/Client.ts
@@ -43,14 +43,14 @@ export class PlanmigrationsClient {
* })
*/
public listCompanyMigrations(
- request: Schematic.ListCompanyMigrationsRequest = {},
+ request: Schematic.ListCompanyMigrationsRequest,
requestOptions?: PlanmigrationsClient.RequestOptions,
): core.HttpResponsePromise {
return core.HttpResponsePromise.fromPromise(this.__listCompanyMigrations(request, requestOptions));
}
private async __listCompanyMigrations(
- request: Schematic.ListCompanyMigrationsRequest = {},
+ request: Schematic.ListCompanyMigrationsRequest,
requestOptions?: PlanmigrationsClient.RequestOptions,
): Promise> {
const { migrationId, q, status, limit, offset } = request;
@@ -334,14 +334,14 @@ export class PlanmigrationsClient {
* })
*/
public countCompanyMigrations(
- request: Schematic.CountCompanyMigrationsRequest = {},
+ request: Schematic.CountCompanyMigrationsRequest,
requestOptions?: PlanmigrationsClient.RequestOptions,
): core.HttpResponsePromise {
return core.HttpResponsePromise.fromPromise(this.__countCompanyMigrations(request, requestOptions));
}
private async __countCompanyMigrations(
- request: Schematic.CountCompanyMigrationsRequest = {},
+ request: Schematic.CountCompanyMigrationsRequest,
requestOptions?: PlanmigrationsClient.RequestOptions,
): Promise> {
const { migrationId, q, status, limit, offset } = request;
@@ -489,14 +489,14 @@ export class PlanmigrationsClient {
* })
*/
public listMigrations(
- request: Schematic.ListMigrationsRequest = {},
+ request: Schematic.ListMigrationsRequest,
requestOptions?: PlanmigrationsClient.RequestOptions,
): core.HttpResponsePromise {
return core.HttpResponsePromise.fromPromise(this.__listMigrations(request, requestOptions));
}
private async __listMigrations(
- request: Schematic.ListMigrationsRequest = {},
+ request: Schematic.ListMigrationsRequest,
requestOptions?: PlanmigrationsClient.RequestOptions,
): Promise> {
const { planVersionId, status, limit, offset } = request;
@@ -629,11 +629,8 @@ export class PlanmigrationsClient {
*
* @example
* await client.planmigrations.createMigration({
- * companyIds: ["company_ids"],
- * excludedCompanyIds: ["excluded_company_ids"],
* planId: "plan_id",
* planVersionIdTo: "plan_version_id_to",
- * planVersionIdsFrom: ["plan_version_ids_from"],
* strategy: "immediate",
* targetPlanType: "plan"
* })
@@ -1039,14 +1036,14 @@ export class PlanmigrationsClient {
* })
*/
public countMigrations(
- request: Schematic.CountMigrationsRequest = {},
+ request: Schematic.CountMigrationsRequest,
requestOptions?: PlanmigrationsClient.RequestOptions,
): core.HttpResponsePromise {
return core.HttpResponsePromise.fromPromise(this.__countMigrations(request, requestOptions));
}
private async __countMigrations(
- request: Schematic.CountMigrationsRequest = {},
+ request: Schematic.CountMigrationsRequest,
requestOptions?: PlanmigrationsClient.RequestOptions,
): Promise> {
const { planVersionId, status, limit, offset } = request;
@@ -1184,7 +1181,6 @@ export class PlanmigrationsClient {
*
* @example
* await client.planmigrations.previewMigration({
- * companyIds: ["company_ids"],
* planId: "plan_id",
* planVersionIdTo: "plan_version_id_to",
* targetPlanType: "plan"
diff --git a/src/api/resources/planmigrations/client/requests/CountCompanyMigrationsRequest.ts b/src/api/resources/planmigrations/client/requests/CountCompanyMigrationsRequest.ts
index ae9b0371..8f09a91c 100644
--- a/src/api/resources/planmigrations/client/requests/CountCompanyMigrationsRequest.ts
+++ b/src/api/resources/planmigrations/client/requests/CountCompanyMigrationsRequest.ts
@@ -13,7 +13,7 @@ import type * as Schematic from "../../../../index";
* }
*/
export interface CountCompanyMigrationsRequest {
- migrationId?: string;
+ migrationId: string;
q?: string;
status?: Schematic.PlanVersionCompanyMigrationStatus;
/** Page limit (default 100) */
diff --git a/src/api/resources/planmigrations/client/requests/CountMigrationsRequest.ts b/src/api/resources/planmigrations/client/requests/CountMigrationsRequest.ts
index f2db100e..b04f8ac1 100644
--- a/src/api/resources/planmigrations/client/requests/CountMigrationsRequest.ts
+++ b/src/api/resources/planmigrations/client/requests/CountMigrationsRequest.ts
@@ -12,7 +12,7 @@ import type * as Schematic from "../../../../index";
* }
*/
export interface CountMigrationsRequest {
- planVersionId?: string;
+ planVersionId: string;
status?: Schematic.PlanVersionMigrationStatus;
/** Page limit (default 100) */
limit?: number;
diff --git a/src/api/resources/planmigrations/client/requests/CreateMigrationInput.ts b/src/api/resources/planmigrations/client/requests/CreateMigrationInput.ts
index 555ed37b..590e3e8d 100644
--- a/src/api/resources/planmigrations/client/requests/CreateMigrationInput.ts
+++ b/src/api/resources/planmigrations/client/requests/CreateMigrationInput.ts
@@ -5,21 +5,19 @@ import type * as Schematic from "../../../../index";
/**
* @example
* {
- * companyIds: ["company_ids"],
- * excludedCompanyIds: ["excluded_company_ids"],
* planId: "plan_id",
* planVersionIdTo: "plan_version_id_to",
- * planVersionIdsFrom: ["plan_version_ids_from"],
* strategy: "immediate",
* targetPlanType: "plan"
* }
*/
export interface CreateMigrationInput {
- companyIds: string[];
- excludedCompanyIds: string[];
+ companyIds?: string[];
+ excludedCompanyIds?: string[];
planId: string;
planVersionIdTo: string;
- planVersionIdsFrom: string[];
+ planVersionIdsFrom?: string[];
+ prorationBehavior?: Schematic.MigrationProrationBehavior;
strategy: Schematic.PlanVersionMigrationStrategy;
targetPlanType: Schematic.PlanType;
}
diff --git a/src/api/resources/planmigrations/client/requests/ListCompanyMigrationsRequest.ts b/src/api/resources/planmigrations/client/requests/ListCompanyMigrationsRequest.ts
index 6e38cfa4..ec5fb370 100644
--- a/src/api/resources/planmigrations/client/requests/ListCompanyMigrationsRequest.ts
+++ b/src/api/resources/planmigrations/client/requests/ListCompanyMigrationsRequest.ts
@@ -13,7 +13,7 @@ import type * as Schematic from "../../../../index";
* }
*/
export interface ListCompanyMigrationsRequest {
- migrationId?: string;
+ migrationId: string;
q?: string;
status?: Schematic.PlanVersionCompanyMigrationStatus;
/** Page limit (default 100) */
diff --git a/src/api/resources/planmigrations/client/requests/ListMigrationsRequest.ts b/src/api/resources/planmigrations/client/requests/ListMigrationsRequest.ts
index 0ed6f2b9..2343d471 100644
--- a/src/api/resources/planmigrations/client/requests/ListMigrationsRequest.ts
+++ b/src/api/resources/planmigrations/client/requests/ListMigrationsRequest.ts
@@ -12,7 +12,7 @@ import type * as Schematic from "../../../../index";
* }
*/
export interface ListMigrationsRequest {
- planVersionId?: string;
+ planVersionId: string;
status?: Schematic.PlanVersionMigrationStatus;
/** Page limit (default 100) */
limit?: number;
diff --git a/src/api/resources/planmigrations/client/requests/PreviewMigrationRequestBody.ts b/src/api/resources/planmigrations/client/requests/PreviewMigrationRequestBody.ts
index 8032162a..8cc01776 100644
--- a/src/api/resources/planmigrations/client/requests/PreviewMigrationRequestBody.ts
+++ b/src/api/resources/planmigrations/client/requests/PreviewMigrationRequestBody.ts
@@ -5,15 +5,15 @@ 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[];
+ companyIds?: string[];
planId: string;
planVersionIdTo: string;
+ planVersionIdsFrom?: string[];
targetPlanType: Schematic.PlanType;
}
diff --git a/src/api/resources/plans/client/Client.ts b/src/api/resources/plans/client/Client.ts
index 2181df0d..34bbf420 100644
--- a/src/api/resources/plans/client/Client.ts
+++ b/src/api/resources/plans/client/Client.ts
@@ -24,7 +24,7 @@ export class PlansClient {
}
/**
- * @param {string} company_plan_id - company_plan_id
+ * @param {string} company_id - company_id
* @param {Schematic.UpdateCompanyPlansRequestBody} request
* @param {PlansClient.RequestOptions} requestOptions - Request-specific configuration.
*
@@ -35,22 +35,20 @@ export class PlansClient {
* @throws {@link Schematic.InternalServerError}
*
* @example
- * await client.plans.updateCompanyPlans("company_plan_id", {
+ * await client.plans.updateCompanyPlans("company_id", {
* addOnIds: ["add_on_ids"]
* })
*/
public updateCompanyPlans(
- company_plan_id: string,
+ company_id: string,
request: Schematic.UpdateCompanyPlansRequestBody,
requestOptions?: PlansClient.RequestOptions,
): core.HttpResponsePromise {
- return core.HttpResponsePromise.fromPromise(
- this.__updateCompanyPlans(company_plan_id, request, requestOptions),
- );
+ return core.HttpResponsePromise.fromPromise(this.__updateCompanyPlans(company_id, request, requestOptions));
}
private async __updateCompanyPlans(
- company_plan_id: string,
+ company_id: string,
request: Schematic.UpdateCompanyPlansRequestBody,
requestOptions?: PlansClient.RequestOptions,
): Promise> {
@@ -65,7 +63,7 @@ export class PlansClient {
(await core.Supplier.get(this._options.baseUrl)) ??
(await core.Supplier.get(this._options.environment)) ??
environments.SchematicEnvironment.Default,
- `company-plans/${core.url.encodePathParam(company_plan_id)}`,
+ `company-plans/${core.url.encodePathParam(company_id)}`,
),
method: "PUT",
headers: _headers,
@@ -158,12 +156,7 @@ export class PlansClient {
}
}
- return handleNonStatusCodeError(
- _response.error,
- _response.rawResponse,
- "PUT",
- "/company-plans/{company_plan_id}",
- );
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "PUT", "/company-plans/{company_id}");
}
/**
@@ -180,6 +173,7 @@ export class PlansClient {
* await client.plans.listCustomPlanBillings({
* companyId: "company_id",
* planId: "plan_id",
+ * planBillingSource: "custom_plan",
* status: "active",
* statuses: ["active"],
* limit: 1000000,
@@ -197,10 +191,14 @@ export class PlansClient {
request: Schematic.ListCustomPlanBillingsRequest = {},
requestOptions?: PlansClient.RequestOptions,
): Promise> {
- const { companyId, planId, status, statuses, limit, offset } = request;
+ const { companyId, planId, planBillingSource, status, statuses, limit, offset } = request;
const _queryParams: Record = {
company_id: companyId,
plan_id: planId,
+ plan_billing_source:
+ planBillingSource != null
+ ? serializers.PlanBillingSource.jsonOrThrow(planBillingSource, { unrecognizedObjectKeys: "strip" })
+ : undefined,
status:
status != null
? serializers.CustomPlanBillingStatus.jsonOrThrow(status, { unrecognizedObjectKeys: "strip" })
@@ -2378,7 +2376,7 @@ export class PlansClient {
}
/**
- * @param {string} plan_id - plan_id
+ * @param {string} plan_version_id - plan_version_id
* @param {Schematic.DeletePlanVersionRequest} request
* @param {PlansClient.RequestOptions} requestOptions - Request-specific configuration.
*
@@ -2389,20 +2387,20 @@ export class PlansClient {
* @throws {@link Schematic.InternalServerError}
*
* @example
- * await client.plans.deletePlanVersion("plan_id", {
+ * await client.plans.deletePlanVersion("plan_version_id", {
* promoteArchivedVersion: true
* })
*/
public deletePlanVersion(
- plan_id: string,
+ plan_version_id: string,
request: Schematic.DeletePlanVersionRequest = {},
requestOptions?: PlansClient.RequestOptions,
): core.HttpResponsePromise {
- return core.HttpResponsePromise.fromPromise(this.__deletePlanVersion(plan_id, request, requestOptions));
+ return core.HttpResponsePromise.fromPromise(this.__deletePlanVersion(plan_version_id, request, requestOptions));
}
private async __deletePlanVersion(
- plan_id: string,
+ plan_version_id: string,
request: Schematic.DeletePlanVersionRequest = {},
requestOptions?: PlansClient.RequestOptions,
): Promise> {
@@ -2421,7 +2419,7 @@ export class PlansClient {
(await core.Supplier.get(this._options.baseUrl)) ??
(await core.Supplier.get(this._options.environment)) ??
environments.SchematicEnvironment.Default,
- `plans/version/${core.url.encodePathParam(plan_id)}`,
+ `plans/version/${core.url.encodePathParam(plan_version_id)}`,
),
method: "DELETE",
headers: _headers,
@@ -2515,11 +2513,16 @@ export class PlansClient {
}
}
- return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/plans/version/{plan_id}");
+ return handleNonStatusCodeError(
+ _response.error,
+ _response.rawResponse,
+ "DELETE",
+ "/plans/version/{plan_version_id}",
+ );
}
/**
- * @param {string} plan_id - plan_id
+ * @param {string} plan_version_id - plan_version_id
* @param {Schematic.PublishPlanVersionRequestBody} request
* @param {PlansClient.RequestOptions} requestOptions - Request-specific configuration.
*
@@ -2530,21 +2533,23 @@ export class PlansClient {
* @throws {@link Schematic.InternalServerError}
*
* @example
- * await client.plans.publishPlanVersion("plan_id", {
+ * await client.plans.publishPlanVersion("plan_version_id", {
* excludedCompanyIds: ["excluded_company_ids"],
* migrationStrategy: "immediate"
* })
*/
public publishPlanVersion(
- plan_id: string,
+ plan_version_id: string,
request: Schematic.PublishPlanVersionRequestBody,
requestOptions?: PlansClient.RequestOptions,
): core.HttpResponsePromise {
- return core.HttpResponsePromise.fromPromise(this.__publishPlanVersion(plan_id, request, requestOptions));
+ return core.HttpResponsePromise.fromPromise(
+ this.__publishPlanVersion(plan_version_id, request, requestOptions),
+ );
}
private async __publishPlanVersion(
- plan_id: string,
+ plan_version_id: string,
request: Schematic.PublishPlanVersionRequestBody,
requestOptions?: PlansClient.RequestOptions,
): Promise> {
@@ -2559,7 +2564,7 @@ export class PlansClient {
(await core.Supplier.get(this._options.baseUrl)) ??
(await core.Supplier.get(this._options.environment)) ??
environments.SchematicEnvironment.Default,
- `plans/version/${core.url.encodePathParam(plan_id)}/publish`,
+ `plans/version/${core.url.encodePathParam(plan_version_id)}/publish`,
),
method: "PUT",
headers: _headers,
@@ -2656,7 +2661,7 @@ export class PlansClient {
_response.error,
_response.rawResponse,
"PUT",
- "/plans/version/{plan_id}/publish",
+ "/plans/version/{plan_version_id}/publish",
);
}
}
diff --git a/src/api/resources/plans/client/requests/CreateCustomPlanRequestBody.ts b/src/api/resources/plans/client/requests/CreateCustomPlanRequestBody.ts
index f977558e..97c9a456 100644
--- a/src/api/resources/plans/client/requests/CreateCustomPlanRequestBody.ts
+++ b/src/api/resources/plans/client/requests/CreateCustomPlanRequestBody.ts
@@ -13,6 +13,7 @@ import type * as Schematic from "../../../../index";
export interface CreateCustomPlanRequestBody {
companyId: string;
copiedFromPlanId?: string;
+ copiedPriceId?: string;
description: string;
icon?: Schematic.PlanIcon;
name: string;
diff --git a/src/api/resources/plans/client/requests/ListCustomPlanBillingsRequest.ts b/src/api/resources/plans/client/requests/ListCustomPlanBillingsRequest.ts
index 5be318e0..c279a55a 100644
--- a/src/api/resources/plans/client/requests/ListCustomPlanBillingsRequest.ts
+++ b/src/api/resources/plans/client/requests/ListCustomPlanBillingsRequest.ts
@@ -7,6 +7,7 @@ import type * as Schematic from "../../../../index";
* {
* companyId: "company_id",
* planId: "plan_id",
+ * planBillingSource: "custom_plan",
* status: "active",
* statuses: ["active"],
* limit: 1000000,
@@ -18,6 +19,8 @@ export interface ListCustomPlanBillingsRequest {
companyId?: string;
/** Filter by plan ID */
planId?: string;
+ /** Filter by the flow that created the billing record. Defaults to custom_plan. */
+ planBillingSource?: Schematic.PlanBillingSource;
/** Filter by billing status */
status?: Schematic.CustomPlanBillingStatus;
/** Filter by multiple billing statuses */
diff --git a/src/api/resources/plans/client/requests/PublishPlanVersionRequestBody.ts b/src/api/resources/plans/client/requests/PublishPlanVersionRequestBody.ts
index 4dcb6ca8..775277b7 100644
--- a/src/api/resources/plans/client/requests/PublishPlanVersionRequestBody.ts
+++ b/src/api/resources/plans/client/requests/PublishPlanVersionRequestBody.ts
@@ -19,6 +19,9 @@ export interface PublishPlanVersionRequestBody {
excludedCompanyIds: string[];
migrationStrategy: Schematic.PlanVersionMigrationStrategy;
phone?: string;
+ prorationBehavior?: Schematic.MigrationProrationBehavior;
+ /** Refuse the publish if any company would be migrated onto the new version */
+ requireNoMigration?: boolean;
/** Whether Stripe emails the invoice when it is finalized. Defaults to true. */
sendInvoice?: boolean;
taxId?: Schematic.TaxIdInput;
diff --git a/src/api/resources/plans/types/ListCustomPlanBillingsParams.ts b/src/api/resources/plans/types/ListCustomPlanBillingsParams.ts
index c518ea44..f639b1ac 100644
--- a/src/api/resources/plans/types/ListCustomPlanBillingsParams.ts
+++ b/src/api/resources/plans/types/ListCustomPlanBillingsParams.ts
@@ -12,6 +12,8 @@ export interface ListCustomPlanBillingsParams {
limit?: number;
/** Page offset (default 0) */
offset?: number;
+ /** Filter by the flow that created the billing record. Defaults to custom_plan. */
+ planBillingSource?: Schematic.PlanBillingSource;
/** Filter by plan ID */
planId?: string;
/** Filter by billing status */
diff --git a/src/api/types/BillingCollectionMethod.ts b/src/api/types/BillingCollectionMethod.ts
new file mode 100644
index 00000000..8ba1d7a9
--- /dev/null
+++ b/src/api/types/BillingCollectionMethod.ts
@@ -0,0 +1,7 @@
+// This file was auto-generated by Fern from our API Definition.
+
+export const BillingCollectionMethod = {
+ ChargeAutomatically: "charge_automatically",
+ SendInvoice: "send_invoice",
+} as const;
+export type BillingCollectionMethod = (typeof BillingCollectionMethod)[keyof typeof BillingCollectionMethod];
diff --git a/src/api/types/BillingCreditBundleResponseData.ts b/src/api/types/BillingCreditBundleResponseData.ts
index 2e32e4e3..4bac0807 100644
--- a/src/api/types/BillingCreditBundleResponseData.ts
+++ b/src/api/types/BillingCreditBundleResponseData.ts
@@ -5,6 +5,8 @@ import type * as Schematic from "../index";
export interface BillingCreditBundleResponseData {
billingInvoiceId?: string;
bundleType: Schematic.BillingCreditBundleType;
+ /** Plans whose companies may purchase this bundle. Empty means the bundle is purchasable on every plan. */
+ compatiblePlanIds: string[];
createdAt: Date;
creditDescription?: string;
creditIcon?: string;
diff --git a/src/api/types/BillingCreditBundleView.ts b/src/api/types/BillingCreditBundleView.ts
index 4b97c5f4..91b6bf2c 100644
--- a/src/api/types/BillingCreditBundleView.ts
+++ b/src/api/types/BillingCreditBundleView.ts
@@ -4,6 +4,7 @@ import type * as Schematic from "../index";
export interface BillingCreditBundleView {
bundleType: Schematic.BillingCreditBundleType;
+ compatiblePlanIds: string[];
createdAt: Date;
creditDescription?: string;
creditIcon?: string;
diff --git a/src/api/types/BillingCreditGrantResponseData.ts b/src/api/types/BillingCreditGrantResponseData.ts
index 1e39e316..4f37a896 100644
--- a/src/api/types/BillingCreditGrantResponseData.ts
+++ b/src/api/types/BillingCreditGrantResponseData.ts
@@ -4,6 +4,8 @@ import type * as Schematic from "../index";
export interface BillingCreditGrantResponseData {
companyId: string;
+ /** The license instance this grant was issued for. Set only when a per-license plan grant issued it; null on a plan's own grant. */
+ companyLicenseId?: string;
companyName: string;
createdAt: Date;
creditIcon?: string;
@@ -13,6 +15,8 @@ export interface BillingCreditGrantResponseData {
expiresAt?: Date;
grantReason: Schematic.BillingCreditGrantReason;
id: string;
+ /** Name of the license this grant was issued for, when it came from a per-license plan grant. */
+ licenseName?: string;
planId?: string;
planName?: string;
price?: Schematic.BillingPriceResponseData;
diff --git a/src/api/types/BillingPlanCreditGrantResponseData.ts b/src/api/types/BillingPlanCreditGrantResponseData.ts
index 31a05d68..e11014d4 100644
--- a/src/api/types/BillingPlanCreditGrantResponseData.ts
+++ b/src/api/types/BillingPlanCreditGrantResponseData.ts
@@ -17,6 +17,8 @@ export interface BillingPlanCreditGrantResponseData {
autoTopupThresholdPercent?: number;
/** Whether buyers can purchase one-time credit bundles on this grant, independent of auto top-up availability. */
canBuyBundles: boolean;
+ /** Credits granted once per company on top of the per-license amount. Always 0 when scaling is fixed. */
+ companyCreditAmount: number;
createdAt: Date;
credit?: Schematic.BillingCreditResponseData;
creditAmount: number;
diff --git a/src/api/types/CheckFlagRequestBody.ts b/src/api/types/CheckFlagRequestBody.ts
index 85e9b24b..d2003352 100644
--- a/src/api/types/CheckFlagRequestBody.ts
+++ b/src/api/types/CheckFlagRequestBody.ts
@@ -1,6 +1,10 @@
// This file was auto-generated by Fern from our API Definition.
+import type * as Schematic from "../index";
+
export interface CheckFlagRequestBody {
company?: Record;
+ /** Hypothetical usage to evaluate the flag against, for answering "would this action be allowed?" before performing it. Only supported when checking a single flag. Values are caller-asserted and can widen a verdict as well as narrow it, so do not forward untrusted input here when the result gates access. Only the flag value reflects the preflight; the entitlement and usage figures in the response are the company's current, unsimulated ones */
+ preflight?: Schematic.PreflightRequestBody;
user?: Record;
}
diff --git a/src/api/types/CheckoutBundlePurchaseBehavior.ts b/src/api/types/CheckoutBundlePurchaseBehavior.ts
new file mode 100644
index 00000000..e8e39a4e
--- /dev/null
+++ b/src/api/types/CheckoutBundlePurchaseBehavior.ts
@@ -0,0 +1,8 @@
+// This file was auto-generated by Fern from our API Definition.
+
+export const CheckoutBundlePurchaseBehavior = {
+ Individual: "individual",
+ Quantity: "quantity",
+} as const;
+export type CheckoutBundlePurchaseBehavior =
+ (typeof CheckoutBundlePurchaseBehavior)[keyof typeof CheckoutBundlePurchaseBehavior];
diff --git a/src/api/types/CheckoutSettingsResponseData.ts b/src/api/types/CheckoutSettingsResponseData.ts
index a9600c8c..874abf9a 100644
--- a/src/api/types/CheckoutSettingsResponseData.ts
+++ b/src/api/types/CheckoutSettingsResponseData.ts
@@ -1,9 +1,13 @@
// This file was auto-generated by Fern from our API Definition.
+import type * as Schematic from "../index";
+
export interface CheckoutSettingsResponseData {
+ bundlePurchaseBehavior: Schematic.CheckoutBundlePurchaseBehavior;
collectAddress: boolean;
collectEmail: boolean;
collectPhone: boolean;
+ collectTaxId: boolean;
optInEnabled: boolean;
optInText?: string;
optInTitle?: string;
diff --git a/src/api/types/CompanyBillingCheckoutSettings.ts b/src/api/types/CompanyBillingCheckoutSettings.ts
index 96115f48..6f0b81a6 100644
--- a/src/api/types/CompanyBillingCheckoutSettings.ts
+++ b/src/api/types/CompanyBillingCheckoutSettings.ts
@@ -4,4 +4,5 @@ export interface CompanyBillingCheckoutSettings {
collectAddress: boolean;
collectEmail: boolean;
collectPhone: boolean;
+ collectTaxId: boolean;
}
diff --git a/src/api/types/CompanyFeatureUsageExportMetadata.ts b/src/api/types/CompanyFeatureUsageExportMetadata.ts
index 90f53d10..c0376f7a 100644
--- a/src/api/types/CompanyFeatureUsageExportMetadata.ts
+++ b/src/api/types/CompanyFeatureUsageExportMetadata.ts
@@ -7,6 +7,10 @@ export interface CompanyFeatureUsageExportMetadata {
companyIds?: string[];
/** Restrict the export to companies with these billing credit type IDs */
creditTypeIds?: string[];
+ /** Company key definition IDs to include as columns, one column per definition, mirroring the companies list */
+ entityKeyDefinitionIds?: string[];
+ /** Company trait definition IDs to include as columns, one column per definition, mirroring the companies list */
+ entityTraitDefinitionIds?: string[];
/** Schematic feature IDs (starting with 'feat_') to include as usage columns; empty means no usage columns */
featureIds?: string[];
/** Restrict the export to companies that do (or do not) have a scheduled downgrade */
@@ -21,6 +25,8 @@ export interface CompanyFeatureUsageExportMetadata {
planIds?: string[];
/** Restrict the export to companies on this plan version ID */
planVersionId?: string;
+ /** Restrict the export to companies on a plan version that is no longer published */
+ planVersionUnpublished?: boolean;
/** Free-text search over company name and keys */
q?: string;
/** Column to sort the exported rows by (e.g. name, created_at, plan); defaults to name */
diff --git a/src/api/types/CompanyPlanCreditGrantView.ts b/src/api/types/CompanyPlanCreditGrantView.ts
index bbd7320f..cc6a28eb 100644
--- a/src/api/types/CompanyPlanCreditGrantView.ts
+++ b/src/api/types/CompanyPlanCreditGrantView.ts
@@ -17,6 +17,7 @@ export interface CompanyPlanCreditGrantView {
companyAutoTopupAmount?: number;
companyAutoTopupEnabled?: boolean;
companyAutoTopupThresholdCredits?: number;
+ companyCreditAmount: number;
createdAt: Date;
credit?: Schematic.BillingCreditView;
creditAmount: number;
diff --git a/src/api/types/ComponentCheckoutSettings.ts b/src/api/types/ComponentCheckoutSettings.ts
index 1e1b82cc..02238208 100644
--- a/src/api/types/ComponentCheckoutSettings.ts
+++ b/src/api/types/ComponentCheckoutSettings.ts
@@ -3,9 +3,11 @@
import type * as Schematic from "../index";
export interface ComponentCheckoutSettings {
+ bundlePurchaseBehavior: Schematic.CheckoutBundlePurchaseBehavior;
collectAddress: boolean;
collectEmail: boolean;
collectPhone: boolean;
+ collectTaxId: boolean;
prorationBehavior: Schematic.ProrationBehavior;
taxCollectionEnabled: boolean;
}
diff --git a/src/api/types/CreateBillingPlanCreditGrantRequestBody.ts b/src/api/types/CreateBillingPlanCreditGrantRequestBody.ts
index 10a314a4..ee765e18 100644
--- a/src/api/types/CreateBillingPlanCreditGrantRequestBody.ts
+++ b/src/api/types/CreateBillingPlanCreditGrantRequestBody.ts
@@ -15,6 +15,8 @@ export interface CreateBillingPlanCreditGrantRequestBody {
autoTopupThresholdCredits?: number;
autoTopupThresholdPercent?: number;
canBuyBundles?: boolean;
+ /** Credits granted once per company on top of the per-license amount. Only valid when scaling is per_license. Defaults to 0. */
+ companyCreditAmount?: number;
creditAmount: number;
creditId: string;
expiryType?: Schematic.BillingCreditExpiryType;
diff --git a/src/api/types/CreditCompanyGrantView.ts b/src/api/types/CreditCompanyGrantView.ts
index 7ec31136..87429ddf 100644
--- a/src/api/types/CreditCompanyGrantView.ts
+++ b/src/api/types/CreditCompanyGrantView.ts
@@ -6,6 +6,7 @@ export interface CreditCompanyGrantView {
billingCreditBundleId?: string;
billingCreditId: string;
companyId: string;
+ companyLicenseId?: string;
companyName: string;
createdAt: Date;
creditDescription: string;
@@ -19,6 +20,7 @@ export interface CreditCompanyGrantView {
expiryUnitCount?: number;
grantReason: Schematic.BillingCreditGrantReason;
id: string;
+ licenseName?: string;
planId?: string;
planName?: string;
pluralName?: string;
diff --git a/src/api/types/CustomPlanBillingResponseData.ts b/src/api/types/CustomPlanBillingResponseData.ts
index 1bcc479b..19bf6695 100644
--- a/src/api/types/CustomPlanBillingResponseData.ts
+++ b/src/api/types/CustomPlanBillingResponseData.ts
@@ -4,12 +4,16 @@ import type * as Schematic from "../index";
export interface CustomPlanBillingResponseData {
activationStrategy: Schematic.CustomPlanActivationStrategy;
+ /** The billing period renewal date pinned when the subscription started, when one was set. When no invoice exists yet, the first invoice is raised on this date. */
+ billingCycleAnchor?: Date;
companyId: string;
createdAt: Date;
daysUntilDue: number;
externalInvoiceId?: string;
id: string;
paidAt?: Date;
+ /** The flow that created this billing record: a custom plan, or a standard plan assigned by invoice through Manage Plan. */
+ planBillingSource: Schematic.PlanBillingSource;
planId: string;
publishedAt?: Date;
sendInvoice: boolean;
diff --git a/src/api/types/EntityTraitDefinitionUsage.ts b/src/api/types/EntityTraitDefinitionUsage.ts
new file mode 100644
index 00000000..9638a8a3
--- /dev/null
+++ b/src/api/types/EntityTraitDefinitionUsage.ts
@@ -0,0 +1,10 @@
+// This file was auto-generated by Fern from our API Definition.
+
+export interface EntityTraitDefinitionUsage {
+ checkoutFieldConfigCount: number;
+ companyOverrideCount: number;
+ featureCount: number;
+ planEntitlementCount: number;
+ planTraitCount: number;
+ ruleConditionCount: number;
+}
diff --git a/src/api/types/EventBodyFlagCheck.ts b/src/api/types/EventBodyFlagCheck.ts
index 86340bf5..86882f26 100644
--- a/src/api/types/EventBodyFlagCheck.ts
+++ b/src/api/types/EventBodyFlagCheck.ts
@@ -9,6 +9,8 @@ export interface EventBodyFlagCheck {
flagId?: string;
/** The key of the flag being checked */
flagKey: string;
+ /** Whether the check was a preflight, asking whether an action would be allowed rather than reporting one that happened. Absent on ordinary checks */
+ preflight?: boolean;
/** The reason why the value was returned */
reason: string;
/** Key-value pairs used to to identify company for which the flag was checked */
diff --git a/src/api/types/FeatureUsageHistoryResponseData.ts b/src/api/types/FeatureUsageHistoryResponseData.ts
new file mode 100644
index 00000000..949dc237
--- /dev/null
+++ b/src/api/types/FeatureUsageHistoryResponseData.ts
@@ -0,0 +1,14 @@
+// This file was auto-generated by Fern from our API Definition.
+
+export interface FeatureUsageHistoryResponseData {
+ /** Companies are identified by ID only. To report against your own identifiers, resolve them once via the companies API and cache the mapping; keys are not repeated on every row. */
+ companyId: string;
+ eventSubtype: string;
+ featureId: string;
+ /** Exclusive end of the period this usage covers */
+ periodEnd: Date;
+ /** Inclusive start of the period this usage covers */
+ periodStart: Date;
+ /** Usage recorded within this period; an incremental total, not a running one */
+ usage: number;
+}
diff --git a/src/api/types/GetOnboardingStateResp.ts b/src/api/types/GetOnboardingStateResp.ts
new file mode 100644
index 00000000..f44c3d09
--- /dev/null
+++ b/src/api/types/GetOnboardingStateResp.ts
@@ -0,0 +1,12 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type * as Schematic from "../index";
+
+export interface GetOnboardingStateResp {
+ environmentId?: string;
+ milestones: Schematic.OnboardingMilestoneView[];
+ path?: Schematic.OnboardingPath;
+ requirements: Schematic.OnboardingRequirementView[];
+ suggestedNext: Schematic.OnboardingRequirement[];
+ track?: Schematic.OnboardingTrack;
+}
diff --git a/src/api/types/ManagePlanRequest.ts b/src/api/types/ManagePlanRequest.ts
index b2c045e7..08e71170 100644
--- a/src/api/types/ManagePlanRequest.ts
+++ b/src/api/types/ManagePlanRequest.ts
@@ -3,22 +3,36 @@
import type * as Schematic from "../index";
export interface ManagePlanRequest {
+ /** If true, the company gets the plan only once the first invoice is paid. Only applies to an invoiced subscription. Defaults to false. */
+ activateOnPayment?: boolean;
addOnSelections: Schematic.PlanSelection[];
basePlanId?: string;
basePlanPriceId?: string;
basePlanVersionId?: string;
+ /** The date the subscription's billing period renews on. Only honored when starting a new subscription; changing the anchor on an existing subscription is not supported. */
+ billingCycleAnchor?: Date;
+ /** Address the invoice is sent to. Required when collection_method is send_invoice. */
+ billingEmail?: string;
/** The company that pays for this subscription. Must already have a Stripe customer. Only honored when starting a new subscription. */
billingEntityId?: string;
/** If false, subscription cancels at period end. Only applies when removing all plans. Defaults to true. */
cancelImmediately?: boolean;
+ /** How the subscription is paid: charged to a payment method on file, or invoiced with payment terms. Invoicing is only available when starting a new subscription. Defaults to charge_automatically. */
+ collectionMethod?: Schematic.BillingCollectionMethod;
companyId: string;
couponExternalId?: string;
creditBundles: Schematic.UpdateCreditBundleRequestBody[];
customFieldValues: Schematic.CheckoutFieldValue[];
+ /** Payment terms in days for an invoiced subscription. Defaults to 30. */
+ daysUntilDue?: number;
payInAdvanceEntitlements: Schematic.UpdatePayInAdvanceRequestBody[];
paymentMethodExternalId?: string;
promoCode?: string;
/** If true and cancel_immediately is true, issue prorated credit. Only applies when removing all plans. Defaults to true. */
prorate?: boolean;
+ /** When true, the partial period between the subscription starting and its renewal date is billed pro rata straight away. When false that period is free and no invoice is raised until the renewal date. Only applies alongside billing_cycle_anchor. Defaults to true. */
+ prorateFirstPeriod?: boolean;
+ /** Whether Stripe emails the invoice when it is finalized. Only applies to an invoiced subscription. Defaults to true. */
+ sendInvoice?: boolean;
trialEnd?: Date;
}
diff --git a/src/api/types/MigrationProrationBehavior.ts b/src/api/types/MigrationProrationBehavior.ts
new file mode 100644
index 00000000..22f3352f
--- /dev/null
+++ b/src/api/types/MigrationProrationBehavior.ts
@@ -0,0 +1,8 @@
+// This file was auto-generated by Fern from our API Definition.
+
+export const MigrationProrationBehavior = {
+ AlwaysInvoice: "always_invoice",
+ CreateProrations: "create_prorations",
+ None: "none",
+} as const;
+export type MigrationProrationBehavior = (typeof MigrationProrationBehavior)[keyof typeof MigrationProrationBehavior];
diff --git a/src/api/types/OnboardingMilestone.ts b/src/api/types/OnboardingMilestone.ts
new file mode 100644
index 00000000..02a89a68
--- /dev/null
+++ b/src/api/types/OnboardingMilestone.ts
@@ -0,0 +1,7 @@
+// This file was auto-generated by Fern from our API Definition.
+
+export const OnboardingMilestone = {
+ Evaluated: "evaluated",
+ Implemented: "implemented",
+} as const;
+export type OnboardingMilestone = (typeof OnboardingMilestone)[keyof typeof OnboardingMilestone];
diff --git a/src/api/types/OnboardingMilestoneView.ts b/src/api/types/OnboardingMilestoneView.ts
new file mode 100644
index 00000000..e907fb16
--- /dev/null
+++ b/src/api/types/OnboardingMilestoneView.ts
@@ -0,0 +1,10 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type * as Schematic from "../index";
+
+export interface OnboardingMilestoneView {
+ id: Schematic.OnboardingMilestone;
+ missing: Schematic.OnboardingRequirement[];
+ progress: number;
+ reachedAt?: Date;
+}
diff --git a/src/api/types/OnboardingPath.ts b/src/api/types/OnboardingPath.ts
new file mode 100644
index 00000000..99cccf5e
--- /dev/null
+++ b/src/api/types/OnboardingPath.ts
@@ -0,0 +1,7 @@
+// This file was auto-generated by Fern from our API Definition.
+
+export const OnboardingPath = {
+ Agent: "agent",
+ App: "app",
+} as const;
+export type OnboardingPath = (typeof OnboardingPath)[keyof typeof OnboardingPath];
diff --git a/src/api/types/OnboardingRequirement.ts b/src/api/types/OnboardingRequirement.ts
new file mode 100644
index 00000000..be214000
--- /dev/null
+++ b/src/api/types/OnboardingRequirement.ts
@@ -0,0 +1,11 @@
+// This file was auto-generated by Fern from our API Definition.
+
+export const OnboardingRequirement = {
+ ConnectBilling: "connect_billing",
+ CreateApiKey: "create_api_key",
+ FirstFlagCheck: "first_flag_check",
+ ImportCompanies: "import_companies",
+ ModelPackaging: "model_packaging",
+ SendEvents: "send_events",
+} as const;
+export type OnboardingRequirement = (typeof OnboardingRequirement)[keyof typeof OnboardingRequirement];
diff --git a/src/api/types/OnboardingRequirementStatus.ts b/src/api/types/OnboardingRequirementStatus.ts
new file mode 100644
index 00000000..2ee69134
--- /dev/null
+++ b/src/api/types/OnboardingRequirementStatus.ts
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+export const OnboardingRequirementStatus = {
+ Available: "available",
+ Blocked: "blocked",
+ Complete: "complete",
+} as const;
+export type OnboardingRequirementStatus =
+ (typeof OnboardingRequirementStatus)[keyof typeof OnboardingRequirementStatus];
diff --git a/src/api/types/OnboardingRequirementView.ts b/src/api/types/OnboardingRequirementView.ts
new file mode 100644
index 00000000..0b02558d
--- /dev/null
+++ b/src/api/types/OnboardingRequirementView.ts
@@ -0,0 +1,10 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type * as Schematic from "../index";
+
+export interface OnboardingRequirementView {
+ blockedBy?: Schematic.OnboardingRequirement[];
+ id: Schematic.OnboardingRequirement;
+ satisfiedBy?: string;
+ status: Schematic.OnboardingRequirementStatus;
+}
diff --git a/src/api/types/OnboardingTrack.ts b/src/api/types/OnboardingTrack.ts
new file mode 100644
index 00000000..a2481869
--- /dev/null
+++ b/src/api/types/OnboardingTrack.ts
@@ -0,0 +1,7 @@
+// This file was auto-generated by Fern from our API Definition.
+
+export const OnboardingTrack = {
+ Catalog: "catalog",
+ SinglePlan: "single_plan",
+} as const;
+export type OnboardingTrack = (typeof OnboardingTrack)[keyof typeof OnboardingTrack];
diff --git a/src/api/types/PlanBillingSource.ts b/src/api/types/PlanBillingSource.ts
new file mode 100644
index 00000000..3bc3d0fb
--- /dev/null
+++ b/src/api/types/PlanBillingSource.ts
@@ -0,0 +1,7 @@
+// This file was auto-generated by Fern from our API Definition.
+
+export const PlanBillingSource = {
+ CustomPlan: "custom_plan",
+ ManagePlan: "manage_plan",
+} as const;
+export type PlanBillingSource = (typeof PlanBillingSource)[keyof typeof PlanBillingSource];
diff --git a/src/api/types/PlanBundleResponseData.ts b/src/api/types/PlanBundleResponseData.ts
index ee355b39..48ca5195 100644
--- a/src/api/types/PlanBundleResponseData.ts
+++ b/src/api/types/PlanBundleResponseData.ts
@@ -7,4 +7,5 @@ export interface PlanBundleResponseData {
creditGrants?: Schematic.BillingPlanCreditGrantResponseData[];
entitlements?: Schematic.PlanEntitlementResponseData[];
plan?: Schematic.PlanResponseData;
+ planVersion?: Schematic.PlanVersionResponseData;
}
diff --git a/src/api/types/PlanCreditGrantView.ts b/src/api/types/PlanCreditGrantView.ts
index b4cd0edf..4ede298c 100644
--- a/src/api/types/PlanCreditGrantView.ts
+++ b/src/api/types/PlanCreditGrantView.ts
@@ -14,6 +14,7 @@ export interface PlanCreditGrantView {
billingCreditAutoTopupThresholdCredits?: number;
billingCreditAutoTopupThresholdPercent?: number;
billingCreditCanBuyBundles: boolean;
+ companyCreditAmount: number;
createdAt: Date;
credit?: Schematic.BillingCreditView;
creditAmount: number;
diff --git a/src/api/types/PlanVersionMigrationPreviewCompanyResponseData.ts b/src/api/types/PlanVersionMigrationPreviewCompanyResponseData.ts
index 7fcb9e8a..556720a9 100644
--- a/src/api/types/PlanVersionMigrationPreviewCompanyResponseData.ts
+++ b/src/api/types/PlanVersionMigrationPreviewCompanyResponseData.ts
@@ -7,4 +7,5 @@ export interface PlanVersionMigrationPreviewCompanyResponseData {
note?: string;
planVersionIdFrom?: string;
willUpdateSubscription: boolean;
+ wouldFail: boolean;
}
diff --git a/src/api/types/PlanVersionMigrationPreviewResponseData.ts b/src/api/types/PlanVersionMigrationPreviewResponseData.ts
index ff761750..9f4e9ca9 100644
--- a/src/api/types/PlanVersionMigrationPreviewResponseData.ts
+++ b/src/api/types/PlanVersionMigrationPreviewResponseData.ts
@@ -4,4 +4,5 @@ import type * as Schematic from "../index";
export interface PlanVersionMigrationPreviewResponseData {
companies: Schematic.PlanVersionMigrationPreviewCompanyResponseData[];
+ hasBillingChanges: boolean;
}
diff --git a/src/api/types/PlanVersionMigrationResponseData.ts b/src/api/types/PlanVersionMigrationResponseData.ts
index 2c060d2a..c8327831 100644
--- a/src/api/types/PlanVersionMigrationResponseData.ts
+++ b/src/api/types/PlanVersionMigrationResponseData.ts
@@ -13,6 +13,7 @@ export interface PlanVersionMigrationResponseData {
planVersionIdFrom?: string;
planVersionIdTo: string;
planVersionIdsFrom: string[];
+ prorationBehavior?: Schematic.MigrationProrationBehavior;
skippedCompanies: number;
startedAt?: Date;
status: Schematic.PlanVersionMigrationStatus;
diff --git a/src/api/types/PreflightEventUsageRequestBody.ts b/src/api/types/PreflightEventUsageRequestBody.ts
new file mode 100644
index 00000000..d5be6576
--- /dev/null
+++ b/src/api/types/PreflightEventUsageRequestBody.ts
@@ -0,0 +1,8 @@
+// This file was auto-generated by Fern from our API Definition.
+
+export interface PreflightEventUsageRequestBody {
+ /** The event subtype the usage would be recorded under */
+ eventSubtype: string;
+ /** How many units of the event subtype the action would record. Zero has no effect */
+ quantity: number;
+}
diff --git a/src/api/types/PreflightRequestBody.ts b/src/api/types/PreflightRequestBody.ts
new file mode 100644
index 00000000..6930e444
--- /dev/null
+++ b/src/api/types/PreflightRequestBody.ts
@@ -0,0 +1,12 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type * as Schematic from "../index";
+
+export interface PreflightRequestBody {
+ /** Cost in credits of the action, keyed by credit ID, for callers that have already computed it. Takes precedence over usage and event_usage on credit balance conditions for the same credit. A cost of zero means the action is free, not that the input is absent */
+ creditCost?: Record;
+ /** Usage of a specific event subtype. Preferred over usage when the subtype is known, since it only affects conditions measuring that subtype */
+ eventUsage?: Schematic.PreflightEventUsageRequestBody;
+ /** Quantity of usage to simulate against any numeric condition encountered while evaluating the flag. Zero has no effect */
+ usage?: number;
+}
diff --git a/src/api/types/PreviewSubscriptionFinanceResponseData.ts b/src/api/types/PreviewSubscriptionFinanceResponseData.ts
index 0741ca45..bfb153ee 100644
--- a/src/api/types/PreviewSubscriptionFinanceResponseData.ts
+++ b/src/api/types/PreviewSubscriptionFinanceResponseData.ts
@@ -4,6 +4,7 @@ import type * as Schematic from "../index";
export interface PreviewSubscriptionFinanceResponseData {
amountOff: number;
+ discountAmount: number;
discounts: Schematic.PreviewSubscriptionDiscountResponseData[];
dueNow: number;
newCharges: number;
diff --git a/src/api/types/RulesEngineSchemaVersion.ts b/src/api/types/RulesEngineSchemaVersion.ts
index 275a4728..1b12584b 100644
--- a/src/api/types/RulesEngineSchemaVersion.ts
+++ b/src/api/types/RulesEngineSchemaVersion.ts
@@ -2,7 +2,7 @@
/** The current schema version hash for rules engine types. The first enum value is always the current version. */
export const RulesEngineSchemaVersion = {
- V5B3E7220: "v5b3e7220",
+ Vc8Eb8Df4: "vc8eb8df4",
PlaceholderForFernCompatibility: "placeholder-for-fern-compatibility",
} as const;
export type RulesEngineSchemaVersion = (typeof RulesEngineSchemaVersion)[keyof typeof RulesEngineSchemaVersion];
diff --git a/src/api/types/UpdateBillingPlanCreditGrantRequestBody.ts b/src/api/types/UpdateBillingPlanCreditGrantRequestBody.ts
index 85b43861..1d10c989 100644
--- a/src/api/types/UpdateBillingPlanCreditGrantRequestBody.ts
+++ b/src/api/types/UpdateBillingPlanCreditGrantRequestBody.ts
@@ -15,17 +15,19 @@ export interface UpdateBillingPlanCreditGrantRequestBody {
autoTopupThresholdCredits?: number;
autoTopupThresholdPercent?: number;
canBuyBundles?: boolean;
+ /** Credits granted once per company on top of the per-license amount. Only valid when the grant scales per license. */
+ companyCreditAmount?: number;
creditAmount?: number;
expiryType?: Schematic.BillingCreditExpiryType;
expiryUnit?: Schematic.BillingCreditExpiryUnit;
expiryUnitCount?: number;
- /** The license whose quantity scales this grant. Cannot be changed after creation. */
+ /** The license whose quantity scales this grant. Cleared when the grant moves off per-license scaling. */
licenseId?: string;
resetCadence: Schematic.BillingPlanCreditGrantResetCadence;
resetStart: Schematic.BillingPlanCreditGrantResetStart;
resetType?: Schematic.BillingPlanCreditGrantResetType;
/** Percentage of unused credits that carry over when this grant resets. Only applies when reset_type is plan_period. Rolled-over credits expire at the next reset and are not rolled again. */
rolloverPercentage?: number;
- /** Whether the grant is a fixed amount per company, or issued once per license the company holds. Cannot be changed after creation. */
+ /** Whether the grant is a fixed amount per company, or issued once per license the company holds. Changing this re-issues the credits companies already hold for this grant. */
scaling?: Schematic.PlanCreditGrantScaling;
}
diff --git a/src/api/types/UpsertCompanyRequestBody.ts b/src/api/types/UpsertCompanyRequestBody.ts
index 9e114116..4c780fd4 100644
--- a/src/api/types/UpsertCompanyRequestBody.ts
+++ b/src/api/types/UpsertCompanyRequestBody.ts
@@ -12,6 +12,8 @@ export interface UpsertCompanyRequestBody {
lastSeenAt?: Date;
name?: string;
preventKeyRemap?: boolean;
+ /** Names of keys to remove from the company. Removing a key the company does not have does nothing, and a company must keep at least one key. */
+ removeKeys?: string[];
/** A map of trait names to trait values */
traits?: Record;
updateOnly?: boolean;
diff --git a/src/api/types/UpsertUserRequestBody.ts b/src/api/types/UpsertUserRequestBody.ts
index 9e5f1ee8..e326ee83 100644
--- a/src/api/types/UpsertUserRequestBody.ts
+++ b/src/api/types/UpsertUserRequestBody.ts
@@ -15,6 +15,8 @@ export interface UpsertUserRequestBody {
keys: Record;
lastSeenAt?: Date;
name?: string;
+ /** Names of keys to remove from the user. Removing a key the user does not have does nothing, and a user must keep at least one key. */
+ removeKeys?: string[];
/** A map of trait names to trait values */
traits?: Record;
updateOnly?: boolean;
diff --git a/src/api/types/UpsertUserSubRequestBody.ts b/src/api/types/UpsertUserSubRequestBody.ts
index dbd40fb2..338bab79 100644
--- a/src/api/types/UpsertUserSubRequestBody.ts
+++ b/src/api/types/UpsertUserSubRequestBody.ts
@@ -11,6 +11,8 @@ export interface UpsertUserSubRequestBody {
keys: Record;
lastSeenAt?: Date;
name?: string;
+ /** Names of keys to remove from the user. Removing a key the user does not have does nothing, and a user must keep at least one key. */
+ removeKeys?: string[];
/** A map of trait names to trait values */
traits?: Record;
updateOnly?: boolean;
diff --git a/src/api/types/WhoAmIResponseData.ts b/src/api/types/WhoAmIResponseData.ts
index c42f9d63..af43b1e7 100644
--- a/src/api/types/WhoAmIResponseData.ts
+++ b/src/api/types/WhoAmIResponseData.ts
@@ -9,6 +9,7 @@ export interface WhoAmIResponseData {
apiKeyId?: string;
environmentId?: string;
environments: Schematic.EnvironmentResponseData[];
+ onboardingComplete: boolean;
stripeUserId?: string;
userId?: string;
userName?: string;
diff --git a/src/api/types/index.ts b/src/api/types/index.ts
index f8d4644b..948ca836 100644
--- a/src/api/types/index.ts
+++ b/src/api/types/index.ts
@@ -12,6 +12,7 @@ export * from "./ApiKeyScope";
export * from "./AuditLogExportMetadata";
export * from "./AuditLogListResponseData";
export * from "./AuditLogResponseData";
+export * from "./BillingCollectionMethod";
export * from "./BillingCouponResponseData";
export * from "./BillingCreditAutoTopupAvailability";
export * from "./BillingCreditBundleResponseData";
@@ -80,6 +81,7 @@ export * from "./CheckFlagRequestBody";
export * from "./CheckFlagResponseData";
export * from "./CheckFlagsBulkResponseData";
export * from "./CheckFlagsResponseData";
+export * from "./CheckoutBundlePurchaseBehavior";
export * from "./CheckoutDataResponseData";
export * from "./CheckoutFieldInput";
export * from "./CheckoutFieldResponseData";
@@ -204,6 +206,7 @@ export * from "./EntityKeyDefinitionResponseData";
export * from "./EntityKeyDetailResponseData";
export * from "./EntityKeyResponseData";
export * from "./EntityTraitDefinitionResponseData";
+export * from "./EntityTraitDefinitionUsage";
export * from "./EntityTraitDetailResponseData";
export * from "./EntityTraitResponseData";
export * from "./EntityTraitValue";
@@ -237,6 +240,7 @@ export * from "./FeatureLifecyclePhase";
export * from "./FeatureResponseData";
export * from "./FeatureType";
export * from "./FeatureUsageDetailResponseData";
+export * from "./FeatureUsageHistoryResponseData";
export * from "./FeatureUsageLegacyResponseData";
export * from "./FeatureUsageResponseData";
export * from "./FeatureUsageTimeSeriesResponseData";
@@ -247,6 +251,7 @@ export * from "./FlagResponseData";
export * from "./FlagType";
export * from "./FlagView";
export * from "./GenericPreviewObject";
+export * from "./GetOnboardingStateResp";
export * from "./InsightsSummaryResponseData";
export * from "./InstallIntegrationRequestBody";
export * from "./IntegrationCapabilities";
@@ -276,11 +281,20 @@ export * from "./MetricPeriod";
export * from "./MetricPeriodMonthReset";
export * from "./MetronomeIntegrationConfig";
export * from "./MigrationErrorCode";
+export * from "./MigrationProrationBehavior";
export * from "./MrrResponseData";
+export * from "./OnboardingMilestone";
+export * from "./OnboardingMilestoneView";
+export * from "./OnboardingPath";
+export * from "./OnboardingRequirement";
+export * from "./OnboardingRequirementStatus";
+export * from "./OnboardingRequirementView";
+export * from "./OnboardingTrack";
export * from "./OrbIntegrationConfig";
export * from "./OrderedPlansInGroup";
export * from "./PaymentMethodRequestBody";
export * from "./PaymentMethodResponseData";
+export * from "./PlanBillingSource";
export * from "./PlanBundleAction";
export * from "./PlanBundleCreditGrantRequestBody";
export * from "./PlanBundleEntitlementRequestBody";
@@ -323,6 +337,8 @@ export * from "./PlanVersionResponseData";
export * from "./PlanVersionSnapshotView";
export * from "./PlanVersionStatus";
export * from "./PlanViewPublicResponseData";
+export * from "./PreflightEventUsageRequestBody";
+export * from "./PreflightRequestBody";
export * from "./PreviewObject";
export * from "./PreviewObjectResponseData";
export * from "./PreviewSubscriptionChangeResponseData";
diff --git a/src/serialization/resources/accounts/client/requests/UpdateOnboardingStateRequestBody.ts b/src/serialization/resources/accounts/client/requests/UpdateOnboardingStateRequestBody.ts
new file mode 100644
index 00000000..55508016
--- /dev/null
+++ b/src/serialization/resources/accounts/client/requests/UpdateOnboardingStateRequestBody.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 { OnboardingPath } from "../../../../types/OnboardingPath";
+import { OnboardingTrack } from "../../../../types/OnboardingTrack";
+
+export const UpdateOnboardingStateRequestBody: core.serialization.Schema<
+ serializers.UpdateOnboardingStateRequestBody.Raw,
+ Schematic.UpdateOnboardingStateRequestBody
+> = core.serialization.object({
+ path: OnboardingPath.optional(),
+ pricingPageUrl: core.serialization.property("pricing_page_url", core.serialization.string().optional()),
+ track: OnboardingTrack.optional(),
+ websiteUrl: core.serialization.property("website_url", core.serialization.string().optional()),
+});
+
+export declare namespace UpdateOnboardingStateRequestBody {
+ export interface Raw {
+ path?: OnboardingPath.Raw | null;
+ pricing_page_url?: string | null;
+ track?: OnboardingTrack.Raw | null;
+ website_url?: string | null;
+ }
+}
diff --git a/src/serialization/resources/accounts/client/requests/index.ts b/src/serialization/resources/accounts/client/requests/index.ts
index 3e66f20b..a491f8b7 100644
--- a/src/serialization/resources/accounts/client/requests/index.ts
+++ b/src/serialization/resources/accounts/client/requests/index.ts
@@ -2,3 +2,4 @@ export { CreateApiKeyRequestBody } from "./CreateApiKeyRequestBody";
export { CreateEnvironmentRequestBody } from "./CreateEnvironmentRequestBody";
export { UpdateApiKeyRequestBody } from "./UpdateApiKeyRequestBody";
export { UpdateEnvironmentRequestBody } from "./UpdateEnvironmentRequestBody";
+export { UpdateOnboardingStateRequestBody } from "./UpdateOnboardingStateRequestBody";
diff --git a/src/serialization/resources/accounts/types/GetOnboardingStateResponse.ts b/src/serialization/resources/accounts/types/GetOnboardingStateResponse.ts
new file mode 100644
index 00000000..c8198fd0
--- /dev/null
+++ b/src/serialization/resources/accounts/types/GetOnboardingStateResponse.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 { GetOnboardingStateResp } from "../../../types/GetOnboardingStateResp";
+
+export const GetOnboardingStateResponse: core.serialization.ObjectSchema<
+ serializers.GetOnboardingStateResponse.Raw,
+ Schematic.GetOnboardingStateResponse
+> = core.serialization.object({
+ data: GetOnboardingStateResp,
+ params: core.serialization.record(core.serialization.string(), core.serialization.unknown()),
+});
+
+export declare namespace GetOnboardingStateResponse {
+ export interface Raw {
+ data: GetOnboardingStateResp.Raw;
+ params: Record;
+ }
+}
diff --git a/src/serialization/resources/accounts/types/UpdateOnboardingStateResponse.ts b/src/serialization/resources/accounts/types/UpdateOnboardingStateResponse.ts
new file mode 100644
index 00000000..ee724b33
--- /dev/null
+++ b/src/serialization/resources/accounts/types/UpdateOnboardingStateResponse.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 { GetOnboardingStateResp } from "../../../types/GetOnboardingStateResp";
+
+export const UpdateOnboardingStateResponse: core.serialization.ObjectSchema<
+ serializers.UpdateOnboardingStateResponse.Raw,
+ Schematic.UpdateOnboardingStateResponse
+> = core.serialization.object({
+ data: GetOnboardingStateResp,
+ params: core.serialization.record(core.serialization.string(), core.serialization.unknown()),
+});
+
+export declare namespace UpdateOnboardingStateResponse {
+ export interface Raw {
+ data: GetOnboardingStateResp.Raw;
+ params: Record;
+ }
+}
diff --git a/src/serialization/resources/accounts/types/index.ts b/src/serialization/resources/accounts/types/index.ts
index 9b5e764e..df4acd31 100644
--- a/src/serialization/resources/accounts/types/index.ts
+++ b/src/serialization/resources/accounts/types/index.ts
@@ -12,6 +12,7 @@ export * from "./GetAccountMemberResponse";
export * from "./GetApiKeyResponse";
export * from "./GetAuditLogResponse";
export * from "./GetEnvironmentResponse";
+export * from "./GetOnboardingStateResponse";
export * from "./GetWhoAmIResponse";
export * from "./ListAccountMembersParams";
export * from "./ListAccountMembersResponse";
@@ -24,3 +25,4 @@ export * from "./ListEnvironmentsResponse";
export * from "./QuickstartResponse";
export * from "./UpdateApiKeyResponse";
export * from "./UpdateEnvironmentResponse";
+export * from "./UpdateOnboardingStateResponse";
diff --git a/src/serialization/resources/companies/types/CountCompaniesParams.ts b/src/serialization/resources/companies/types/CountCompaniesParams.ts
index 305cacaa..bcf0e6c5 100644
--- a/src/serialization/resources/companies/types/CountCompaniesParams.ts
+++ b/src/serialization/resources/companies/types/CountCompaniesParams.ts
@@ -33,6 +33,10 @@ export const CountCompaniesParams: core.serialization.ObjectSchema<
"plan_version_ids",
core.serialization.list(core.serialization.string()).optional(),
),
+ planVersionUnpublished: core.serialization.property(
+ "plan_version_unpublished",
+ core.serialization.boolean().optional(),
+ ),
q: core.serialization.string().optional(),
sortOrderColumn: core.serialization.property("sort_order_column", core.serialization.string().optional()),
sortOrderDirection: core.serialization.property("sort_order_direction", SortDirection.optional()),
@@ -66,6 +70,7 @@ export declare namespace CountCompaniesParams {
plan_ids?: string[] | null;
plan_version_id?: string | null;
plan_version_ids?: string[] | null;
+ plan_version_unpublished?: boolean | null;
q?: string | null;
sort_order_column?: string | null;
sort_order_direction?: SortDirection.Raw | null;
diff --git a/src/serialization/resources/companies/types/CountEntityTraitsParams.ts b/src/serialization/resources/companies/types/CountEntityTraitsParams.ts
new file mode 100644
index 00000000..d70aa1af
--- /dev/null
+++ b/src/serialization/resources/companies/types/CountEntityTraitsParams.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 { EntityType } from "../../../types/EntityType";
+
+export const CountEntityTraitsParams: core.serialization.ObjectSchema<
+ serializers.CountEntityTraitsParams.Raw,
+ Schematic.CountEntityTraitsParams
+> = core.serialization.object({
+ definitionId: core.serialization.property("definition_id", core.serialization.string().optional()),
+ entityType: core.serialization.property("entity_type", EntityType.optional()),
+ limit: core.serialization.number().optional(),
+ offset: core.serialization.number().optional(),
+});
+
+export declare namespace CountEntityTraitsParams {
+ export interface Raw {
+ definition_id?: string | null;
+ entity_type?: EntityType.Raw | null;
+ limit?: number | null;
+ offset?: number | null;
+ }
+}
diff --git a/src/serialization/resources/companies/types/CountEntityTraitsResponse.ts b/src/serialization/resources/companies/types/CountEntityTraitsResponse.ts
new file mode 100644
index 00000000..88e8f4d2
--- /dev/null
+++ b/src/serialization/resources/companies/types/CountEntityTraitsResponse.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 { CountEntityTraitsParams } from "./CountEntityTraitsParams";
+
+export const CountEntityTraitsResponse: core.serialization.ObjectSchema<
+ serializers.CountEntityTraitsResponse.Raw,
+ Schematic.CountEntityTraitsResponse
+> = core.serialization.object({
+ data: CountResponse,
+ params: CountEntityTraitsParams,
+});
+
+export declare namespace CountEntityTraitsResponse {
+ export interface Raw {
+ data: CountResponse.Raw;
+ params: CountEntityTraitsParams.Raw;
+ }
+}
diff --git a/src/serialization/resources/companies/types/DeleteEntityTraitDefinitionResponse.ts b/src/serialization/resources/companies/types/DeleteEntityTraitDefinitionResponse.ts
new file mode 100644
index 00000000..518805ba
--- /dev/null
+++ b/src/serialization/resources/companies/types/DeleteEntityTraitDefinitionResponse.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 { DeleteResponse } from "../../../types/DeleteResponse";
+
+export const DeleteEntityTraitDefinitionResponse: core.serialization.ObjectSchema<
+ serializers.DeleteEntityTraitDefinitionResponse.Raw,
+ Schematic.DeleteEntityTraitDefinitionResponse
+> = core.serialization.object({
+ data: DeleteResponse,
+ params: core.serialization.record(core.serialization.string(), core.serialization.unknown()),
+});
+
+export declare namespace DeleteEntityTraitDefinitionResponse {
+ export interface Raw {
+ data: DeleteResponse.Raw;
+ params: Record;
+ }
+}
diff --git a/src/serialization/resources/companies/types/GetEntityTraitDefinitionUsageResponse.ts b/src/serialization/resources/companies/types/GetEntityTraitDefinitionUsageResponse.ts
new file mode 100644
index 00000000..d90b93a4
--- /dev/null
+++ b/src/serialization/resources/companies/types/GetEntityTraitDefinitionUsageResponse.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 { EntityTraitDefinitionUsage } from "../../../types/EntityTraitDefinitionUsage";
+
+export const GetEntityTraitDefinitionUsageResponse: core.serialization.ObjectSchema<
+ serializers.GetEntityTraitDefinitionUsageResponse.Raw,
+ Schematic.GetEntityTraitDefinitionUsageResponse
+> = core.serialization.object({
+ data: EntityTraitDefinitionUsage,
+ params: core.serialization.record(core.serialization.string(), core.serialization.unknown()),
+});
+
+export declare namespace GetEntityTraitDefinitionUsageResponse {
+ export interface Raw {
+ data: EntityTraitDefinitionUsage.Raw;
+ params: Record;
+ }
+}
diff --git a/src/serialization/resources/companies/types/ListCompaniesParams.ts b/src/serialization/resources/companies/types/ListCompaniesParams.ts
index 9c62a44f..2e63f921 100644
--- a/src/serialization/resources/companies/types/ListCompaniesParams.ts
+++ b/src/serialization/resources/companies/types/ListCompaniesParams.ts
@@ -33,6 +33,10 @@ export const ListCompaniesParams: core.serialization.ObjectSchema<
"plan_version_ids",
core.serialization.list(core.serialization.string()).optional(),
),
+ planVersionUnpublished: core.serialization.property(
+ "plan_version_unpublished",
+ core.serialization.boolean().optional(),
+ ),
q: core.serialization.string().optional(),
sortOrderColumn: core.serialization.property("sort_order_column", core.serialization.string().optional()),
sortOrderDirection: core.serialization.property("sort_order_direction", SortDirection.optional()),
@@ -66,6 +70,7 @@ export declare namespace ListCompaniesParams {
plan_ids?: string[] | null;
plan_version_id?: string | null;
plan_version_ids?: string[] | null;
+ plan_version_unpublished?: boolean | null;
q?: string | null;
sort_order_column?: string | null;
sort_order_direction?: SortDirection.Raw | null;
diff --git a/src/serialization/resources/companies/types/ListPlanChangesParams.ts b/src/serialization/resources/companies/types/ListPlanChangesParams.ts
index c29e903a..8d5b6e05 100644
--- a/src/serialization/resources/companies/types/ListPlanChangesParams.ts
+++ b/src/serialization/resources/companies/types/ListPlanChangesParams.ts
@@ -19,7 +19,6 @@ export const ListPlanChangesParams: core.serialization.ObjectSchema<
),
limit: core.serialization.number().optional(),
offset: core.serialization.number().optional(),
- planIds: core.serialization.property("plan_ids", core.serialization.list(core.serialization.string()).optional()),
});
export declare namespace ListPlanChangesParams {
@@ -30,6 +29,5 @@ export declare namespace ListPlanChangesParams {
company_ids?: string[] | null;
limit?: number | null;
offset?: number | null;
- plan_ids?: string[] | null;
}
}
diff --git a/src/serialization/resources/companies/types/index.ts b/src/serialization/resources/companies/types/index.ts
index f2b0a833..1ba311a4 100644
--- a/src/serialization/resources/companies/types/index.ts
+++ b/src/serialization/resources/companies/types/index.ts
@@ -6,6 +6,8 @@ export * from "./CountEntityKeysParams";
export * from "./CountEntityKeysResponse";
export * from "./CountEntityTraitDefinitionsParams";
export * from "./CountEntityTraitDefinitionsResponse";
+export * from "./CountEntityTraitsParams";
+export * from "./CountEntityTraitsResponse";
export * from "./CountPlanTraitsParams";
export * from "./CountPlanTraitsResponse";
export * from "./CountUsersParams";
@@ -17,6 +19,7 @@ export * from "./DeleteCompanyMembershipResponse";
export * from "./DeleteCompanyParams";
export * from "./DeleteCompanyResponse";
export * from "./DeleteEntityKeyDefinitionResponse";
+export * from "./DeleteEntityTraitDefinitionResponse";
export * from "./DeleteUserByKeysResponse";
export * from "./DeleteUserResponse";
export * from "./GetActiveCompanySubscriptionParams";
@@ -27,6 +30,7 @@ export * from "./GetCompanyBillingEntityParams";
export * from "./GetCompanyBillingEntityResponse";
export * from "./GetCompanyResponse";
export * from "./GetEntityTraitDefinitionResponse";
+export * from "./GetEntityTraitDefinitionUsageResponse";
export * from "./GetEntityTraitValuesParams";
export * from "./GetEntityTraitValuesResponse";
export * from "./GetOrCreateCompanyMembershipResponse";
diff --git a/src/serialization/resources/credits/client/requests/CreateCreditBundleRequestBody.ts b/src/serialization/resources/credits/client/requests/CreateCreditBundleRequestBody.ts
index df68d04c..bc3fb5b2 100644
--- a/src/serialization/resources/credits/client/requests/CreateCreditBundleRequestBody.ts
+++ b/src/serialization/resources/credits/client/requests/CreateCreditBundleRequestBody.ts
@@ -15,6 +15,10 @@ export const CreateCreditBundleRequestBody: core.serialization.Schema<
> = core.serialization.object({
bundleName: core.serialization.property("bundle_name", core.serialization.string()),
bundleType: core.serialization.property("bundle_type", BillingCreditBundleType.optional()),
+ compatiblePlanIds: core.serialization.property(
+ "compatible_plan_ids",
+ core.serialization.list(core.serialization.string()).optional(),
+ ),
creditId: core.serialization.property("credit_id", core.serialization.string()),
currency: core.serialization.string(),
currencyPrices: core.serialization.property(
@@ -34,6 +38,7 @@ export declare namespace CreateCreditBundleRequestBody {
export interface Raw {
bundle_name: string;
bundle_type?: BillingCreditBundleType.Raw | null;
+ compatible_plan_ids?: string[] | null;
credit_id: string;
currency: string;
currency_prices?: CreditBundleCurrencyPriceRequestBody.Raw[] | null;
diff --git a/src/serialization/resources/credits/client/requests/UpdateCreditBundleDetailsRequestBody.ts b/src/serialization/resources/credits/client/requests/UpdateCreditBundleDetailsRequestBody.ts
index beb33056..f2f7f61d 100644
--- a/src/serialization/resources/credits/client/requests/UpdateCreditBundleDetailsRequestBody.ts
+++ b/src/serialization/resources/credits/client/requests/UpdateCreditBundleDetailsRequestBody.ts
@@ -13,6 +13,10 @@ export const UpdateCreditBundleDetailsRequestBody: core.serialization.Schema<
Schematic.UpdateCreditBundleDetailsRequestBody
> = core.serialization.object({
bundleName: core.serialization.property("bundle_name", core.serialization.string()),
+ compatiblePlanIds: core.serialization.property(
+ "compatible_plan_ids",
+ core.serialization.list(core.serialization.string()).optional(),
+ ),
currencyPrices: core.serialization.property(
"currency_prices",
core.serialization.list(CreditBundleCurrencyPriceRequestBody).optional(),
@@ -29,6 +33,7 @@ export const UpdateCreditBundleDetailsRequestBody: core.serialization.Schema<
export declare namespace UpdateCreditBundleDetailsRequestBody {
export interface Raw {
bundle_name: string;
+ compatible_plan_ids?: string[] | null;
currency_prices?: CreditBundleCurrencyPriceRequestBody.Raw[] | null;
expiry_type?: BillingCreditExpiryType.Raw | null;
expiry_unit?: BillingCreditExpiryUnit.Raw | null;
diff --git a/src/serialization/resources/entitlements/types/ListFeatureUsageHistoryParams.ts b/src/serialization/resources/entitlements/types/ListFeatureUsageHistoryParams.ts
new file mode 100644
index 00000000..473a0e85
--- /dev/null
+++ b/src/serialization/resources/entitlements/types/ListFeatureUsageHistoryParams.ts
@@ -0,0 +1,37 @@
+// 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 { TimeSeriesGranularity } from "../../../types/TimeSeriesGranularity";
+
+export const ListFeatureUsageHistoryParams: core.serialization.ObjectSchema<
+ serializers.ListFeatureUsageHistoryParams.Raw,
+ Schematic.ListFeatureUsageHistoryParams
+> = core.serialization.object({
+ companyIds: core.serialization.property(
+ "company_ids",
+ core.serialization.list(core.serialization.string()).optional(),
+ ),
+ endTime: core.serialization.property("end_time", core.serialization.date().optional()),
+ featureIds: core.serialization.property(
+ "feature_ids",
+ core.serialization.list(core.serialization.string()).optional(),
+ ),
+ granularity: TimeSeriesGranularity.optional(),
+ limit: core.serialization.number().optional(),
+ offset: core.serialization.number().optional(),
+ startTime: core.serialization.property("start_time", core.serialization.date().optional()),
+});
+
+export declare namespace ListFeatureUsageHistoryParams {
+ export interface Raw {
+ company_ids?: string[] | null;
+ end_time?: string | null;
+ feature_ids?: string[] | null;
+ granularity?: TimeSeriesGranularity.Raw | null;
+ limit?: number | null;
+ offset?: number | null;
+ start_time?: string | null;
+ }
+}
diff --git a/src/serialization/resources/entitlements/types/ListFeatureUsageHistoryResponse.ts b/src/serialization/resources/entitlements/types/ListFeatureUsageHistoryResponse.ts
new file mode 100644
index 00000000..34a26b2e
--- /dev/null
+++ b/src/serialization/resources/entitlements/types/ListFeatureUsageHistoryResponse.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 { FeatureUsageHistoryResponseData } from "../../../types/FeatureUsageHistoryResponseData";
+import { ListFeatureUsageHistoryParams } from "./ListFeatureUsageHistoryParams";
+
+export const ListFeatureUsageHistoryResponse: core.serialization.ObjectSchema<
+ serializers.ListFeatureUsageHistoryResponse.Raw,
+ Schematic.ListFeatureUsageHistoryResponse
+> = core.serialization.object({
+ data: core.serialization.list(FeatureUsageHistoryResponseData),
+ params: ListFeatureUsageHistoryParams,
+});
+
+export declare namespace ListFeatureUsageHistoryResponse {
+ export interface Raw {
+ data: FeatureUsageHistoryResponseData.Raw[];
+ params: ListFeatureUsageHistoryParams.Raw;
+ }
+}
diff --git a/src/serialization/resources/entitlements/types/index.ts b/src/serialization/resources/entitlements/types/index.ts
index be3b6d01..102fd822 100644
--- a/src/serialization/resources/entitlements/types/index.ts
+++ b/src/serialization/resources/entitlements/types/index.ts
@@ -27,6 +27,8 @@ export * from "./ListCompanyOverridesParams";
export * from "./ListCompanyOverridesResponse";
export * from "./ListFeatureCompaniesParams";
export * from "./ListFeatureCompaniesResponse";
+export * from "./ListFeatureUsageHistoryParams";
+export * from "./ListFeatureUsageHistoryResponse";
export * from "./ListFeatureUsageParams";
export * from "./ListFeatureUsageResponse";
export * from "./ListFeatureUsersParams";
diff --git a/src/serialization/resources/planbundle/client/requests/CreateCustomPlanBundleRequestBody.ts b/src/serialization/resources/planbundle/client/requests/CreateCustomPlanBundleRequestBody.ts
index 5239dcc3..dce63126 100644
--- a/src/serialization/resources/planbundle/client/requests/CreateCustomPlanBundleRequestBody.ts
+++ b/src/serialization/resources/planbundle/client/requests/CreateCustomPlanBundleRequestBody.ts
@@ -12,20 +12,20 @@ export const CreateCustomPlanBundleRequestBody: core.serialization.Schema<
serializers.CreateCustomPlanBundleRequestBody.Raw,
Schematic.CreateCustomPlanBundleRequestBody
> = core.serialization.object({
- billingProduct: core.serialization.property("billing_product", UpsertBillingProductRequestBody.optional()),
+ billingProduct: core.serialization.property("billing_product", UpsertBillingProductRequestBody),
creditGrants: core.serialization.property(
"credit_grants",
core.serialization.list(PlanBundleCreditGrantRequestBody).optional(),
),
entitlements: core.serialization.list(PlanBundleEntitlementRequestBody),
- plan: CreateCustomPlanBundlePlanRequestBody.optional(),
+ plan: CreateCustomPlanBundlePlanRequestBody,
});
export declare namespace CreateCustomPlanBundleRequestBody {
export interface Raw {
- billing_product?: UpsertBillingProductRequestBody.Raw | null;
+ billing_product: UpsertBillingProductRequestBody.Raw;
credit_grants?: PlanBundleCreditGrantRequestBody.Raw[] | null;
entitlements: PlanBundleEntitlementRequestBody.Raw[];
- plan?: CreateCustomPlanBundlePlanRequestBody.Raw | null;
+ plan: CreateCustomPlanBundlePlanRequestBody.Raw;
}
}
diff --git a/src/serialization/resources/planbundle/client/requests/CreatePlanBundleRequestBody.ts b/src/serialization/resources/planbundle/client/requests/CreatePlanBundleRequestBody.ts
index f5fcda45..2abbd189 100644
--- a/src/serialization/resources/planbundle/client/requests/CreatePlanBundleRequestBody.ts
+++ b/src/serialization/resources/planbundle/client/requests/CreatePlanBundleRequestBody.ts
@@ -18,7 +18,7 @@ export const CreatePlanBundleRequestBody: core.serialization.Schema<
core.serialization.list(PlanBundleCreditGrantRequestBody).optional(),
),
entitlements: core.serialization.list(PlanBundleEntitlementRequestBody),
- plan: CreatePlanRequestBody.optional(),
+ plan: CreatePlanRequestBody,
});
export declare namespace CreatePlanBundleRequestBody {
@@ -26,6 +26,6 @@ export declare namespace CreatePlanBundleRequestBody {
billing_product?: UpsertBillingProductRequestBody.Raw | null;
credit_grants?: PlanBundleCreditGrantRequestBody.Raw[] | null;
entitlements: PlanBundleEntitlementRequestBody.Raw[];
- plan?: CreatePlanRequestBody.Raw | null;
+ plan: CreatePlanRequestBody.Raw;
}
}
diff --git a/src/serialization/resources/planbundle/client/requests/UpdatePlanBundleRequestBody.ts b/src/serialization/resources/planbundle/client/requests/UpdatePlanBundleRequestBody.ts
index 2d9cc35a..08cb4592 100644
--- a/src/serialization/resources/planbundle/client/requests/UpdatePlanBundleRequestBody.ts
+++ b/src/serialization/resources/planbundle/client/requests/UpdatePlanBundleRequestBody.ts
@@ -18,7 +18,7 @@ export const UpdatePlanBundleRequestBody: core.serialization.Schema<
core.serialization.list(PlanBundleCreditGrantRequestBody).optional(),
),
entitlements: core.serialization.list(PlanBundleEntitlementRequestBody),
- plan: UpdatePlanRequestBody.optional(),
+ plan: UpdatePlanRequestBody,
planVersionId: core.serialization.property("plan_version_id", core.serialization.string().optional()),
});
@@ -27,7 +27,7 @@ export declare namespace UpdatePlanBundleRequestBody {
billing_product?: UpsertBillingProductRequestBody.Raw | null;
credit_grants?: PlanBundleCreditGrantRequestBody.Raw[] | null;
entitlements: PlanBundleEntitlementRequestBody.Raw[];
- plan?: UpdatePlanRequestBody.Raw | null;
+ plan: UpdatePlanRequestBody.Raw;
plan_version_id?: string | null;
}
}
diff --git a/src/serialization/resources/plangroups/client/requests/CreatePlanGroupRequestBody.ts b/src/serialization/resources/plangroups/client/requests/CreatePlanGroupRequestBody.ts
index 414b282e..7a597132 100644
--- a/src/serialization/resources/plangroups/client/requests/CreatePlanGroupRequestBody.ts
+++ b/src/serialization/resources/plangroups/client/requests/CreatePlanGroupRequestBody.ts
@@ -3,6 +3,7 @@
import type * as Schematic from "../../../../../api/index";
import * as core from "../../../../../core";
import type * as serializers from "../../../../index";
+import { CheckoutBundlePurchaseBehavior } from "../../../../types/CheckoutBundlePurchaseBehavior";
import { CheckoutFieldInput } from "../../../../types/CheckoutFieldInput";
import { CompatiblePlans } from "../../../../types/CompatiblePlans";
import { CustomPlanConfig } from "../../../../types/CustomPlanConfig";
@@ -20,9 +21,14 @@ export const CreatePlanGroupRequestBody: core.serialization.Schema<
core.serialization.list(CompatiblePlans).optional(),
),
addOnIds: core.serialization.property("add_on_ids", core.serialization.list(core.serialization.string())),
+ checkoutBundlePurchaseBehavior: core.serialization.property(
+ "checkout_bundle_purchase_behavior",
+ CheckoutBundlePurchaseBehavior.optional(),
+ ),
checkoutCollectAddress: core.serialization.property("checkout_collect_address", core.serialization.boolean()),
checkoutCollectEmail: core.serialization.property("checkout_collect_email", core.serialization.boolean()),
checkoutCollectPhone: core.serialization.property("checkout_collect_phone", core.serialization.boolean()),
+ checkoutCollectTaxId: core.serialization.property("checkout_collect_tax_id", core.serialization.boolean()),
customCheckoutFields: core.serialization.property(
"custom_checkout_fields",
core.serialization.list(CheckoutFieldInput).optional(),
@@ -93,9 +99,11 @@ export declare namespace CreatePlanGroupRequestBody {
export interface Raw {
add_on_compatibilities?: CompatiblePlans.Raw[] | null;
add_on_ids: string[];
+ checkout_bundle_purchase_behavior?: CheckoutBundlePurchaseBehavior.Raw | null;
checkout_collect_address: boolean;
checkout_collect_email: boolean;
checkout_collect_phone: boolean;
+ checkout_collect_tax_id: boolean;
custom_checkout_fields?: CheckoutFieldInput.Raw[] | null;
custom_plan_config?: CustomPlanConfig.Raw | null;
custom_plan_id?: string | null;
diff --git a/src/serialization/resources/plangroups/client/requests/UpdatePlanGroupRequestBody.ts b/src/serialization/resources/plangroups/client/requests/UpdatePlanGroupRequestBody.ts
index 18a0fcd7..20f346b6 100644
--- a/src/serialization/resources/plangroups/client/requests/UpdatePlanGroupRequestBody.ts
+++ b/src/serialization/resources/plangroups/client/requests/UpdatePlanGroupRequestBody.ts
@@ -3,6 +3,7 @@
import type * as Schematic from "../../../../../api/index";
import * as core from "../../../../../core";
import type * as serializers from "../../../../index";
+import { CheckoutBundlePurchaseBehavior } from "../../../../types/CheckoutBundlePurchaseBehavior";
import { CheckoutFieldInput } from "../../../../types/CheckoutFieldInput";
import { CompatiblePlans } from "../../../../types/CompatiblePlans";
import { CustomPlanConfig } from "../../../../types/CustomPlanConfig";
@@ -20,9 +21,14 @@ export const UpdatePlanGroupRequestBody: core.serialization.Schema<
core.serialization.list(CompatiblePlans).optional(),
),
addOnIds: core.serialization.property("add_on_ids", core.serialization.list(core.serialization.string())),
+ checkoutBundlePurchaseBehavior: core.serialization.property(
+ "checkout_bundle_purchase_behavior",
+ CheckoutBundlePurchaseBehavior.optional(),
+ ),
checkoutCollectAddress: core.serialization.property("checkout_collect_address", core.serialization.boolean()),
checkoutCollectEmail: core.serialization.property("checkout_collect_email", core.serialization.boolean()),
checkoutCollectPhone: core.serialization.property("checkout_collect_phone", core.serialization.boolean()),
+ checkoutCollectTaxId: core.serialization.property("checkout_collect_tax_id", core.serialization.boolean()),
customCheckoutFields: core.serialization.property(
"custom_checkout_fields",
core.serialization.list(CheckoutFieldInput).optional(),
@@ -93,9 +99,11 @@ export declare namespace UpdatePlanGroupRequestBody {
export interface Raw {
add_on_compatibilities?: CompatiblePlans.Raw[] | null;
add_on_ids: string[];
+ checkout_bundle_purchase_behavior?: CheckoutBundlePurchaseBehavior.Raw | null;
checkout_collect_address: boolean;
checkout_collect_email: boolean;
checkout_collect_phone: boolean;
+ checkout_collect_tax_id: boolean;
custom_checkout_fields?: CheckoutFieldInput.Raw[] | null;
custom_plan_config?: CustomPlanConfig.Raw | null;
custom_plan_id?: string | null;
diff --git a/src/serialization/resources/planmigrations/client/requests/CreateMigrationInput.ts b/src/serialization/resources/planmigrations/client/requests/CreateMigrationInput.ts
index 64aba6ee..e7cb0c78 100644
--- a/src/serialization/resources/planmigrations/client/requests/CreateMigrationInput.ts
+++ b/src/serialization/resources/planmigrations/client/requests/CreateMigrationInput.ts
@@ -3,6 +3,7 @@
import type * as Schematic from "../../../../../api/index";
import * as core from "../../../../../core";
import type * as serializers from "../../../../index";
+import { MigrationProrationBehavior } from "../../../../types/MigrationProrationBehavior";
import { PlanType } from "../../../../types/PlanType";
import { PlanVersionMigrationStrategy } from "../../../../types/PlanVersionMigrationStrategy";
@@ -10,28 +11,33 @@ export const CreateMigrationInput: core.serialization.Schema<
serializers.CreateMigrationInput.Raw,
Schematic.CreateMigrationInput
> = core.serialization.object({
- companyIds: core.serialization.property("company_ids", core.serialization.list(core.serialization.string())),
+ companyIds: core.serialization.property(
+ "company_ids",
+ core.serialization.list(core.serialization.string()).optional(),
+ ),
excludedCompanyIds: core.serialization.property(
"excluded_company_ids",
- core.serialization.list(core.serialization.string()),
+ core.serialization.list(core.serialization.string()).optional(),
),
planId: core.serialization.property("plan_id", core.serialization.string()),
planVersionIdTo: core.serialization.property("plan_version_id_to", core.serialization.string()),
planVersionIdsFrom: core.serialization.property(
"plan_version_ids_from",
- core.serialization.list(core.serialization.string()),
+ core.serialization.list(core.serialization.string()).optional(),
),
+ prorationBehavior: core.serialization.property("proration_behavior", MigrationProrationBehavior.optional()),
strategy: PlanVersionMigrationStrategy,
targetPlanType: core.serialization.property("target_plan_type", PlanType),
});
export declare namespace CreateMigrationInput {
export interface Raw {
- company_ids: string[];
- excluded_company_ids: string[];
+ company_ids?: string[] | null;
+ excluded_company_ids?: string[] | null;
plan_id: string;
plan_version_id_to: string;
- plan_version_ids_from: string[];
+ plan_version_ids_from?: string[] | null;
+ proration_behavior?: MigrationProrationBehavior.Raw | null;
strategy: PlanVersionMigrationStrategy.Raw;
target_plan_type: PlanType.Raw;
}
diff --git a/src/serialization/resources/planmigrations/client/requests/PreviewMigrationRequestBody.ts b/src/serialization/resources/planmigrations/client/requests/PreviewMigrationRequestBody.ts
index d844aa6f..e3a758ed 100644
--- a/src/serialization/resources/planmigrations/client/requests/PreviewMigrationRequestBody.ts
+++ b/src/serialization/resources/planmigrations/client/requests/PreviewMigrationRequestBody.ts
@@ -9,17 +9,25 @@ 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())),
+ companyIds: core.serialization.property(
+ "company_ids",
+ core.serialization.list(core.serialization.string()).optional(),
+ ),
planId: core.serialization.property("plan_id", core.serialization.string()),
planVersionIdTo: core.serialization.property("plan_version_id_to", core.serialization.string()),
+ planVersionIdsFrom: core.serialization.property(
+ "plan_version_ids_from",
+ core.serialization.list(core.serialization.string()).optional(),
+ ),
targetPlanType: core.serialization.property("target_plan_type", PlanType),
});
export declare namespace PreviewMigrationRequestBody {
export interface Raw {
- company_ids: string[];
+ company_ids?: string[] | null;
plan_id: string;
plan_version_id_to: string;
+ plan_version_ids_from?: string[] | null;
target_plan_type: PlanType.Raw;
}
}
diff --git a/src/serialization/resources/plans/client/requests/CreateCustomPlanRequestBody.ts b/src/serialization/resources/plans/client/requests/CreateCustomPlanRequestBody.ts
index 82bd7a7f..e4d7011e 100644
--- a/src/serialization/resources/plans/client/requests/CreateCustomPlanRequestBody.ts
+++ b/src/serialization/resources/plans/client/requests/CreateCustomPlanRequestBody.ts
@@ -11,6 +11,7 @@ export const CreateCustomPlanRequestBody: core.serialization.Schema<
> = core.serialization.object({
companyId: core.serialization.property("company_id", core.serialization.string()),
copiedFromPlanId: core.serialization.property("copied_from_plan_id", core.serialization.string().optional()),
+ copiedPriceId: core.serialization.property("copied_price_id", core.serialization.string().optional()),
description: core.serialization.string(),
icon: PlanIcon.optional(),
name: core.serialization.string(),
@@ -20,6 +21,7 @@ export declare namespace CreateCustomPlanRequestBody {
export interface Raw {
company_id: string;
copied_from_plan_id?: string | null;
+ copied_price_id?: string | null;
description: string;
icon?: PlanIcon.Raw | null;
name: string;
diff --git a/src/serialization/resources/plans/client/requests/PublishPlanVersionRequestBody.ts b/src/serialization/resources/plans/client/requests/PublishPlanVersionRequestBody.ts
index 9624fae1..4890dd49 100644
--- a/src/serialization/resources/plans/client/requests/PublishPlanVersionRequestBody.ts
+++ b/src/serialization/resources/plans/client/requests/PublishPlanVersionRequestBody.ts
@@ -6,6 +6,7 @@ import type * as serializers from "../../../../index";
import { CheckoutFieldValue } from "../../../../types/CheckoutFieldValue";
import { CustomerBillingAddress } from "../../../../types/CustomerBillingAddress";
import { CustomPlanActivationStrategy } from "../../../../types/CustomPlanActivationStrategy";
+import { MigrationProrationBehavior } from "../../../../types/MigrationProrationBehavior";
import { PlanVersionMigrationStrategy } from "../../../../types/PlanVersionMigrationStrategy";
import { TaxIdInput } from "../../../../types/TaxIdInput";
@@ -28,6 +29,8 @@ export const PublishPlanVersionRequestBody: core.serialization.Schema<
),
migrationStrategy: core.serialization.property("migration_strategy", PlanVersionMigrationStrategy),
phone: core.serialization.string().optional(),
+ prorationBehavior: core.serialization.property("proration_behavior", MigrationProrationBehavior.optional()),
+ requireNoMigration: core.serialization.property("require_no_migration", core.serialization.boolean().optional()),
sendInvoice: core.serialization.property("send_invoice", core.serialization.boolean().optional()),
taxId: core.serialization.property("tax_id", TaxIdInput.optional()),
});
@@ -43,6 +46,8 @@ export declare namespace PublishPlanVersionRequestBody {
excluded_company_ids: string[];
migration_strategy: PlanVersionMigrationStrategy.Raw;
phone?: string | null;
+ proration_behavior?: MigrationProrationBehavior.Raw | null;
+ require_no_migration?: boolean | null;
send_invoice?: boolean | null;
tax_id?: TaxIdInput.Raw | null;
}
diff --git a/src/serialization/resources/plans/types/ListCustomPlanBillingsParams.ts b/src/serialization/resources/plans/types/ListCustomPlanBillingsParams.ts
index b76b3f8c..4b40b3bc 100644
--- a/src/serialization/resources/plans/types/ListCustomPlanBillingsParams.ts
+++ b/src/serialization/resources/plans/types/ListCustomPlanBillingsParams.ts
@@ -4,6 +4,7 @@ import type * as Schematic from "../../../../api/index";
import * as core from "../../../../core";
import type * as serializers from "../../../index";
import { CustomPlanBillingStatus } from "../../../types/CustomPlanBillingStatus";
+import { PlanBillingSource } from "../../../types/PlanBillingSource";
export const ListCustomPlanBillingsParams: core.serialization.ObjectSchema<
serializers.ListCustomPlanBillingsParams.Raw,
@@ -12,6 +13,7 @@ export const ListCustomPlanBillingsParams: core.serialization.ObjectSchema<
companyId: core.serialization.property("company_id", core.serialization.string().optional()),
limit: core.serialization.number().optional(),
offset: core.serialization.number().optional(),
+ planBillingSource: core.serialization.property("plan_billing_source", PlanBillingSource.optional()),
planId: core.serialization.property("plan_id", core.serialization.string().optional()),
status: CustomPlanBillingStatus.optional(),
statuses: core.serialization.list(CustomPlanBillingStatus).optional(),
@@ -22,6 +24,7 @@ export declare namespace ListCustomPlanBillingsParams {
company_id?: string | null;
limit?: number | null;
offset?: number | null;
+ plan_billing_source?: PlanBillingSource.Raw | null;
plan_id?: string | null;
status?: CustomPlanBillingStatus.Raw | null;
statuses?: CustomPlanBillingStatus.Raw[] | null;
diff --git a/src/serialization/types/BillingCollectionMethod.ts b/src/serialization/types/BillingCollectionMethod.ts
new file mode 100644
index 00000000..4bdb923e
--- /dev/null
+++ b/src/serialization/types/BillingCollectionMethod.ts
@@ -0,0 +1,14 @@
+// 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 BillingCollectionMethod: core.serialization.Schema<
+ serializers.BillingCollectionMethod.Raw,
+ Schematic.BillingCollectionMethod
+> = core.serialization.enum_(["charge_automatically", "send_invoice"]);
+
+export declare namespace BillingCollectionMethod {
+ export type Raw = "charge_automatically" | "send_invoice";
+}
diff --git a/src/serialization/types/BillingCreditBundleResponseData.ts b/src/serialization/types/BillingCreditBundleResponseData.ts
index 18064787..96445132 100644
--- a/src/serialization/types/BillingCreditBundleResponseData.ts
+++ b/src/serialization/types/BillingCreditBundleResponseData.ts
@@ -16,6 +16,10 @@ export const BillingCreditBundleResponseData: core.serialization.ObjectSchema<
> = core.serialization.object({
billingInvoiceId: core.serialization.property("billing_invoice_id", core.serialization.string().optional()),
bundleType: core.serialization.property("bundle_type", BillingCreditBundleType),
+ compatiblePlanIds: core.serialization.property(
+ "compatible_plan_ids",
+ core.serialization.list(core.serialization.string()),
+ ),
createdAt: core.serialization.property("created_at", core.serialization.date()),
creditDescription: core.serialization.property("credit_description", core.serialization.string().optional()),
creditIcon: core.serialization.property("credit_icon", core.serialization.string().optional()),
@@ -44,6 +48,7 @@ export declare namespace BillingCreditBundleResponseData {
export interface Raw {
billing_invoice_id?: string | null;
bundle_type: BillingCreditBundleType.Raw;
+ compatible_plan_ids: string[];
created_at: string;
credit_description?: string | null;
credit_icon?: string | null;
diff --git a/src/serialization/types/BillingCreditBundleView.ts b/src/serialization/types/BillingCreditBundleView.ts
index 8a2c96e0..b3ffd50e 100644
--- a/src/serialization/types/BillingCreditBundleView.ts
+++ b/src/serialization/types/BillingCreditBundleView.ts
@@ -15,6 +15,10 @@ export const BillingCreditBundleView: core.serialization.ObjectSchema<
Schematic.BillingCreditBundleView
> = core.serialization.object({
bundleType: core.serialization.property("bundle_type", BillingCreditBundleType),
+ compatiblePlanIds: core.serialization.property(
+ "compatible_plan_ids",
+ core.serialization.list(core.serialization.string()),
+ ),
createdAt: core.serialization.property("created_at", core.serialization.date()),
creditDescription: core.serialization.property("credit_description", core.serialization.string().optional()),
creditIcon: core.serialization.property("credit_icon", core.serialization.string().optional()),
@@ -39,6 +43,7 @@ export const BillingCreditBundleView: core.serialization.ObjectSchema<
export declare namespace BillingCreditBundleView {
export interface Raw {
bundle_type: BillingCreditBundleType.Raw;
+ compatible_plan_ids: string[];
created_at: string;
credit_description?: string | null;
credit_icon?: string | null;
diff --git a/src/serialization/types/BillingCreditGrantResponseData.ts b/src/serialization/types/BillingCreditGrantResponseData.ts
index aa4488c4..e7e77d83 100644
--- a/src/serialization/types/BillingCreditGrantResponseData.ts
+++ b/src/serialization/types/BillingCreditGrantResponseData.ts
@@ -14,6 +14,7 @@ export const BillingCreditGrantResponseData: core.serialization.ObjectSchema<
Schematic.BillingCreditGrantResponseData
> = core.serialization.object({
companyId: core.serialization.property("company_id", core.serialization.string()),
+ companyLicenseId: core.serialization.property("company_license_id", core.serialization.string().optional()),
companyName: core.serialization.property("company_name", core.serialization.string()),
createdAt: core.serialization.property("created_at", core.serialization.date()),
creditIcon: core.serialization.property("credit_icon", core.serialization.string().optional()),
@@ -23,6 +24,7 @@ export const BillingCreditGrantResponseData: core.serialization.ObjectSchema<
expiresAt: core.serialization.property("expires_at", core.serialization.date().optional()),
grantReason: core.serialization.property("grant_reason", BillingCreditGrantReason),
id: core.serialization.string(),
+ licenseName: core.serialization.property("license_name", core.serialization.string().optional()),
planId: core.serialization.property("plan_id", core.serialization.string().optional()),
planName: core.serialization.property("plan_name", core.serialization.string().optional()),
price: BillingPriceResponseData.optional(),
@@ -45,6 +47,7 @@ export const BillingCreditGrantResponseData: core.serialization.ObjectSchema<
export declare namespace BillingCreditGrantResponseData {
export interface Raw {
company_id: string;
+ company_license_id?: string | null;
company_name: string;
created_at: string;
credit_icon?: string | null;
@@ -54,6 +57,7 @@ export declare namespace BillingCreditGrantResponseData {
expires_at?: string | null;
grant_reason: BillingCreditGrantReason.Raw;
id: string;
+ license_name?: string | null;
plan_id?: string | null;
plan_name?: string | null;
price?: BillingPriceResponseData.Raw | null;
diff --git a/src/serialization/types/BillingPlanCreditGrantResponseData.ts b/src/serialization/types/BillingPlanCreditGrantResponseData.ts
index 11082e96..6143bb54 100644
--- a/src/serialization/types/BillingPlanCreditGrantResponseData.ts
+++ b/src/serialization/types/BillingPlanCreditGrantResponseData.ts
@@ -37,6 +37,7 @@ export const BillingPlanCreditGrantResponseData: core.serialization.ObjectSchema
core.serialization.number().optional(),
),
canBuyBundles: core.serialization.property("can_buy_bundles", core.serialization.boolean()),
+ companyCreditAmount: core.serialization.property("company_credit_amount", core.serialization.number()),
createdAt: core.serialization.property("created_at", core.serialization.date()),
credit: BillingCreditResponseData.optional(),
creditAmount: core.serialization.property("credit_amount", core.serialization.number()),
@@ -74,6 +75,7 @@ export declare namespace BillingPlanCreditGrantResponseData {
auto_topup_threshold_credits?: number | null;
auto_topup_threshold_percent?: number | null;
can_buy_bundles: boolean;
+ company_credit_amount: number;
created_at: string;
credit?: BillingCreditResponseData.Raw | null;
credit_amount: number;
diff --git a/src/serialization/types/CheckFlagRequestBody.ts b/src/serialization/types/CheckFlagRequestBody.ts
index 1e561066..5fd8a770 100644
--- a/src/serialization/types/CheckFlagRequestBody.ts
+++ b/src/serialization/types/CheckFlagRequestBody.ts
@@ -3,18 +3,21 @@
import type * as Schematic from "../../api/index";
import * as core from "../../core";
import type * as serializers from "../index";
+import { PreflightRequestBody } from "./PreflightRequestBody";
export const CheckFlagRequestBody: core.serialization.ObjectSchema<
serializers.CheckFlagRequestBody.Raw,
Schematic.CheckFlagRequestBody
> = core.serialization.object({
company: core.serialization.record(core.serialization.string(), core.serialization.string()).optional(),
+ preflight: PreflightRequestBody.optional(),
user: core.serialization.record(core.serialization.string(), core.serialization.string()).optional(),
});
export declare namespace CheckFlagRequestBody {
export interface Raw {
company?: Record | null;
+ preflight?: PreflightRequestBody.Raw | null;
user?: Record | null;
}
}
diff --git a/src/serialization/types/CheckoutBundlePurchaseBehavior.ts b/src/serialization/types/CheckoutBundlePurchaseBehavior.ts
new file mode 100644
index 00000000..6a29dfe4
--- /dev/null
+++ b/src/serialization/types/CheckoutBundlePurchaseBehavior.ts
@@ -0,0 +1,14 @@
+// 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 CheckoutBundlePurchaseBehavior: core.serialization.Schema<
+ serializers.CheckoutBundlePurchaseBehavior.Raw,
+ Schematic.CheckoutBundlePurchaseBehavior
+> = core.serialization.enum_(["individual", "quantity"]);
+
+export declare namespace CheckoutBundlePurchaseBehavior {
+ export type Raw = "individual" | "quantity";
+}
diff --git a/src/serialization/types/CheckoutSettingsResponseData.ts b/src/serialization/types/CheckoutSettingsResponseData.ts
index 456786f4..e798069e 100644
--- a/src/serialization/types/CheckoutSettingsResponseData.ts
+++ b/src/serialization/types/CheckoutSettingsResponseData.ts
@@ -3,14 +3,17 @@
import type * as Schematic from "../../api/index";
import * as core from "../../core";
import type * as serializers from "../index";
+import { CheckoutBundlePurchaseBehavior } from "./CheckoutBundlePurchaseBehavior";
export const CheckoutSettingsResponseData: core.serialization.ObjectSchema<
serializers.CheckoutSettingsResponseData.Raw,
Schematic.CheckoutSettingsResponseData
> = core.serialization.object({
+ bundlePurchaseBehavior: core.serialization.property("bundle_purchase_behavior", CheckoutBundlePurchaseBehavior),
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()),
+ collectTaxId: core.serialization.property("collect_tax_id", core.serialization.boolean()),
optInEnabled: core.serialization.property("opt_in_enabled", core.serialization.boolean()),
optInText: core.serialization.property("opt_in_text", core.serialization.string().optional()),
optInTitle: core.serialization.property("opt_in_title", core.serialization.string().optional()),
@@ -18,9 +21,11 @@ export const CheckoutSettingsResponseData: core.serialization.ObjectSchema<
export declare namespace CheckoutSettingsResponseData {
export interface Raw {
+ bundle_purchase_behavior: CheckoutBundlePurchaseBehavior.Raw;
collect_address: boolean;
collect_email: boolean;
collect_phone: boolean;
+ collect_tax_id: boolean;
opt_in_enabled: boolean;
opt_in_text?: string | null;
opt_in_title?: string | null;
diff --git a/src/serialization/types/CompanyBillingCheckoutSettings.ts b/src/serialization/types/CompanyBillingCheckoutSettings.ts
index efb8e3de..5c53f0d8 100644
--- a/src/serialization/types/CompanyBillingCheckoutSettings.ts
+++ b/src/serialization/types/CompanyBillingCheckoutSettings.ts
@@ -11,6 +11,7 @@ export const CompanyBillingCheckoutSettings: core.serialization.ObjectSchema<
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()),
+ collectTaxId: core.serialization.property("collect_tax_id", core.serialization.boolean()),
});
export declare namespace CompanyBillingCheckoutSettings {
@@ -18,5 +19,6 @@ export declare namespace CompanyBillingCheckoutSettings {
collect_address: boolean;
collect_email: boolean;
collect_phone: boolean;
+ collect_tax_id: boolean;
}
}
diff --git a/src/serialization/types/CompanyFeatureUsageExportMetadata.ts b/src/serialization/types/CompanyFeatureUsageExportMetadata.ts
index 69c715e6..f4766a0f 100644
--- a/src/serialization/types/CompanyFeatureUsageExportMetadata.ts
+++ b/src/serialization/types/CompanyFeatureUsageExportMetadata.ts
@@ -18,6 +18,14 @@ export const CompanyFeatureUsageExportMetadata: core.serialization.ObjectSchema<
"credit_type_ids",
core.serialization.list(core.serialization.string()).optional(),
),
+ entityKeyDefinitionIds: core.serialization.property(
+ "entity_key_definition_ids",
+ core.serialization.list(core.serialization.string()).optional(),
+ ),
+ entityTraitDefinitionIds: core.serialization.property(
+ "entity_trait_definition_ids",
+ core.serialization.list(core.serialization.string()).optional(),
+ ),
featureIds: core.serialization.property(
"feature_ids",
core.serialization.list(core.serialization.string()).optional(),
@@ -37,6 +45,10 @@ export const CompanyFeatureUsageExportMetadata: core.serialization.ObjectSchema<
planId: core.serialization.property("plan_id", core.serialization.string().optional()),
planIds: core.serialization.property("plan_ids", core.serialization.list(core.serialization.string()).optional()),
planVersionId: core.serialization.property("plan_version_id", core.serialization.string().optional()),
+ planVersionUnpublished: core.serialization.property(
+ "plan_version_unpublished",
+ core.serialization.boolean().optional(),
+ ),
q: core.serialization.string().optional(),
sortOrderColumn: core.serialization.property("sort_order_column", core.serialization.string().optional()),
sortOrderDirection: core.serialization.property(
@@ -69,6 +81,8 @@ export declare namespace CompanyFeatureUsageExportMetadata {
export interface Raw {
company_ids?: string[] | null;
credit_type_ids?: string[] | null;
+ entity_key_definition_ids?: string[] | null;
+ entity_trait_definition_ids?: string[] | null;
feature_ids?: string[] | null;
has_scheduled_downgrade?: boolean | null;
monetized_subscriptions?: boolean | null;
@@ -76,6 +90,7 @@ export declare namespace CompanyFeatureUsageExportMetadata {
plan_id?: string | null;
plan_ids?: string[] | null;
plan_version_id?: string | null;
+ plan_version_unpublished?: boolean | null;
q?: string | null;
sort_order_column?: string | null;
sort_order_direction?: CompanyFeatureUsageExportMetadataSortOrderDirection.Raw | null;
diff --git a/src/serialization/types/CompanyPlanCreditGrantView.ts b/src/serialization/types/CompanyPlanCreditGrantView.ts
index a00deae2..595a5ec6 100644
--- a/src/serialization/types/CompanyPlanCreditGrantView.ts
+++ b/src/serialization/types/CompanyPlanCreditGrantView.ts
@@ -73,6 +73,7 @@ export const CompanyPlanCreditGrantView: core.serialization.ObjectSchema<
"company_auto_topup_threshold_credits",
core.serialization.number().optional(),
),
+ companyCreditAmount: core.serialization.property("company_credit_amount", core.serialization.number()),
createdAt: core.serialization.property("created_at", core.serialization.date()),
credit: BillingCreditView.optional(),
creditAmount: core.serialization.property("credit_amount", core.serialization.number()),
@@ -114,6 +115,7 @@ export declare namespace CompanyPlanCreditGrantView {
company_auto_topup_amount?: number | null;
company_auto_topup_enabled?: boolean | null;
company_auto_topup_threshold_credits?: number | null;
+ company_credit_amount: number;
created_at: string;
credit?: BillingCreditView.Raw | null;
credit_amount: number;
diff --git a/src/serialization/types/ComponentCheckoutSettings.ts b/src/serialization/types/ComponentCheckoutSettings.ts
index 4f9e73df..e178bbbe 100644
--- a/src/serialization/types/ComponentCheckoutSettings.ts
+++ b/src/serialization/types/ComponentCheckoutSettings.ts
@@ -3,24 +3,29 @@
import type * as Schematic from "../../api/index";
import * as core from "../../core";
import type * as serializers from "../index";
+import { CheckoutBundlePurchaseBehavior } from "./CheckoutBundlePurchaseBehavior";
import { ProrationBehavior } from "./ProrationBehavior";
export const ComponentCheckoutSettings: core.serialization.ObjectSchema<
serializers.ComponentCheckoutSettings.Raw,
Schematic.ComponentCheckoutSettings
> = core.serialization.object({
+ bundlePurchaseBehavior: core.serialization.property("bundle_purchase_behavior", CheckoutBundlePurchaseBehavior),
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()),
+ collectTaxId: core.serialization.property("collect_tax_id", core.serialization.boolean()),
prorationBehavior: core.serialization.property("proration_behavior", ProrationBehavior),
taxCollectionEnabled: core.serialization.property("tax_collection_enabled", core.serialization.boolean()),
});
export declare namespace ComponentCheckoutSettings {
export interface Raw {
+ bundle_purchase_behavior: CheckoutBundlePurchaseBehavior.Raw;
collect_address: boolean;
collect_email: boolean;
collect_phone: boolean;
+ collect_tax_id: boolean;
proration_behavior: ProrationBehavior.Raw;
tax_collection_enabled: boolean;
}
diff --git a/src/serialization/types/CreateBillingPlanCreditGrantRequestBody.ts b/src/serialization/types/CreateBillingPlanCreditGrantRequestBody.ts
index c5d49612..d0ede966 100644
--- a/src/serialization/types/CreateBillingPlanCreditGrantRequestBody.ts
+++ b/src/serialization/types/CreateBillingPlanCreditGrantRequestBody.ts
@@ -43,6 +43,7 @@ export const CreateBillingPlanCreditGrantRequestBody: core.serialization.ObjectS
core.serialization.number().optional(),
),
canBuyBundles: core.serialization.property("can_buy_bundles", core.serialization.boolean().optional()),
+ companyCreditAmount: core.serialization.property("company_credit_amount", core.serialization.number().optional()),
creditAmount: core.serialization.property("credit_amount", core.serialization.number()),
creditId: core.serialization.property("credit_id", core.serialization.string()),
expiryType: core.serialization.property("expiry_type", BillingCreditExpiryType.optional()),
@@ -72,6 +73,7 @@ export declare namespace CreateBillingPlanCreditGrantRequestBody {
auto_topup_threshold_credits?: number | null;
auto_topup_threshold_percent?: number | null;
can_buy_bundles?: boolean | null;
+ company_credit_amount?: number | null;
credit_amount: number;
credit_id: string;
expiry_type?: BillingCreditExpiryType.Raw | null;
diff --git a/src/serialization/types/CreditCompanyGrantView.ts b/src/serialization/types/CreditCompanyGrantView.ts
index 58edbab0..c3a0c5f3 100644
--- a/src/serialization/types/CreditCompanyGrantView.ts
+++ b/src/serialization/types/CreditCompanyGrantView.ts
@@ -21,6 +21,7 @@ export const CreditCompanyGrantView: core.serialization.ObjectSchema<
),
billingCreditId: core.serialization.property("billing_credit_id", core.serialization.string()),
companyId: core.serialization.property("company_id", core.serialization.string()),
+ companyLicenseId: core.serialization.property("company_license_id", core.serialization.string().optional()),
companyName: core.serialization.property("company_name", core.serialization.string()),
createdAt: core.serialization.property("created_at", core.serialization.date()),
creditDescription: core.serialization.property("credit_description", core.serialization.string()),
@@ -34,6 +35,7 @@ export const CreditCompanyGrantView: core.serialization.ObjectSchema<
expiryUnitCount: core.serialization.property("expiry_unit_count", core.serialization.number().optional()),
grantReason: core.serialization.property("grant_reason", BillingCreditGrantReason),
id: core.serialization.string(),
+ licenseName: core.serialization.property("license_name", core.serialization.string().optional()),
planId: core.serialization.property("plan_id", core.serialization.string().optional()),
planName: core.serialization.property("plan_name", core.serialization.string().optional()),
pluralName: core.serialization.property("plural_name", core.serialization.string().optional()),
@@ -60,6 +62,7 @@ export declare namespace CreditCompanyGrantView {
billing_credit_bundle_id?: string | null;
billing_credit_id: string;
company_id: string;
+ company_license_id?: string | null;
company_name: string;
created_at: string;
credit_description: string;
@@ -73,6 +76,7 @@ export declare namespace CreditCompanyGrantView {
expiry_unit_count?: number | null;
grant_reason: BillingCreditGrantReason.Raw;
id: string;
+ license_name?: string | null;
plan_id?: string | null;
plan_name?: string | null;
plural_name?: string | null;
diff --git a/src/serialization/types/CustomPlanBillingResponseData.ts b/src/serialization/types/CustomPlanBillingResponseData.ts
index e4155c69..7bfe2705 100644
--- a/src/serialization/types/CustomPlanBillingResponseData.ts
+++ b/src/serialization/types/CustomPlanBillingResponseData.ts
@@ -5,18 +5,21 @@ import * as core from "../../core";
import type * as serializers from "../index";
import { CustomPlanActivationStrategy } from "./CustomPlanActivationStrategy";
import { CustomPlanBillingStatus } from "./CustomPlanBillingStatus";
+import { PlanBillingSource } from "./PlanBillingSource";
export const CustomPlanBillingResponseData: core.serialization.ObjectSchema<
serializers.CustomPlanBillingResponseData.Raw,
Schematic.CustomPlanBillingResponseData
> = core.serialization.object({
activationStrategy: core.serialization.property("activation_strategy", CustomPlanActivationStrategy),
+ billingCycleAnchor: core.serialization.property("billing_cycle_anchor", core.serialization.date().optional()),
companyId: core.serialization.property("company_id", core.serialization.string()),
createdAt: core.serialization.property("created_at", core.serialization.date()),
daysUntilDue: core.serialization.property("days_until_due", core.serialization.number()),
externalInvoiceId: core.serialization.property("external_invoice_id", core.serialization.string().optional()),
id: core.serialization.string(),
paidAt: core.serialization.property("paid_at", core.serialization.date().optional()),
+ planBillingSource: core.serialization.property("plan_billing_source", PlanBillingSource),
planId: core.serialization.property("plan_id", core.serialization.string()),
publishedAt: core.serialization.property("published_at", core.serialization.date().optional()),
sendInvoice: core.serialization.property("send_invoice", core.serialization.boolean()),
@@ -28,12 +31,14 @@ export const CustomPlanBillingResponseData: core.serialization.ObjectSchema<
export declare namespace CustomPlanBillingResponseData {
export interface Raw {
activation_strategy: CustomPlanActivationStrategy.Raw;
+ billing_cycle_anchor?: string | null;
company_id: string;
created_at: string;
days_until_due: number;
external_invoice_id?: string | null;
id: string;
paid_at?: string | null;
+ plan_billing_source: PlanBillingSource.Raw;
plan_id: string;
published_at?: string | null;
send_invoice: boolean;
diff --git a/src/serialization/types/EntityTraitDefinitionUsage.ts b/src/serialization/types/EntityTraitDefinitionUsage.ts
new file mode 100644
index 00000000..df5ead6d
--- /dev/null
+++ b/src/serialization/types/EntityTraitDefinitionUsage.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 EntityTraitDefinitionUsage: core.serialization.ObjectSchema<
+ serializers.EntityTraitDefinitionUsage.Raw,
+ Schematic.EntityTraitDefinitionUsage
+> = core.serialization.object({
+ checkoutFieldConfigCount: core.serialization.property("checkout_field_config_count", core.serialization.number()),
+ companyOverrideCount: core.serialization.property("company_override_count", core.serialization.number()),
+ featureCount: core.serialization.property("feature_count", core.serialization.number()),
+ planEntitlementCount: core.serialization.property("plan_entitlement_count", core.serialization.number()),
+ planTraitCount: core.serialization.property("plan_trait_count", core.serialization.number()),
+ ruleConditionCount: core.serialization.property("rule_condition_count", core.serialization.number()),
+});
+
+export declare namespace EntityTraitDefinitionUsage {
+ export interface Raw {
+ checkout_field_config_count: number;
+ company_override_count: number;
+ feature_count: number;
+ plan_entitlement_count: number;
+ plan_trait_count: number;
+ rule_condition_count: number;
+ }
+}
diff --git a/src/serialization/types/EventBodyFlagCheck.ts b/src/serialization/types/EventBodyFlagCheck.ts
index fafec08d..a2c9716b 100644
--- a/src/serialization/types/EventBodyFlagCheck.ts
+++ b/src/serialization/types/EventBodyFlagCheck.ts
@@ -12,6 +12,7 @@ export const EventBodyFlagCheck: core.serialization.ObjectSchema<
error: core.serialization.string().optional(),
flagId: core.serialization.property("flag_id", core.serialization.string().optional()),
flagKey: core.serialization.property("flag_key", core.serialization.string()),
+ preflight: core.serialization.boolean().optional(),
reason: core.serialization.string(),
reqCompany: core.serialization.property(
"req_company",
@@ -32,6 +33,7 @@ export declare namespace EventBodyFlagCheck {
error?: string | null;
flag_id?: string | null;
flag_key: string;
+ preflight?: boolean | null;
reason: string;
req_company?: Record | null;
req_user?: Record | null;
diff --git a/src/serialization/types/FeatureUsageHistoryResponseData.ts b/src/serialization/types/FeatureUsageHistoryResponseData.ts
new file mode 100644
index 00000000..30cffde2
--- /dev/null
+++ b/src/serialization/types/FeatureUsageHistoryResponseData.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 FeatureUsageHistoryResponseData: core.serialization.ObjectSchema<
+ serializers.FeatureUsageHistoryResponseData.Raw,
+ Schematic.FeatureUsageHistoryResponseData
+> = core.serialization.object({
+ companyId: core.serialization.property("company_id", core.serialization.string()),
+ eventSubtype: core.serialization.property("event_subtype", core.serialization.string()),
+ featureId: core.serialization.property("feature_id", core.serialization.string()),
+ periodEnd: core.serialization.property("period_end", core.serialization.date()),
+ periodStart: core.serialization.property("period_start", core.serialization.date()),
+ usage: core.serialization.number(),
+});
+
+export declare namespace FeatureUsageHistoryResponseData {
+ export interface Raw {
+ company_id: string;
+ event_subtype: string;
+ feature_id: string;
+ period_end: string;
+ period_start: string;
+ usage: number;
+ }
+}
diff --git a/src/serialization/types/GetOnboardingStateResp.ts b/src/serialization/types/GetOnboardingStateResp.ts
new file mode 100644
index 00000000..ec307e53
--- /dev/null
+++ b/src/serialization/types/GetOnboardingStateResp.ts
@@ -0,0 +1,33 @@
+// 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 { OnboardingMilestoneView } from "./OnboardingMilestoneView";
+import { OnboardingPath } from "./OnboardingPath";
+import { OnboardingRequirement } from "./OnboardingRequirement";
+import { OnboardingRequirementView } from "./OnboardingRequirementView";
+import { OnboardingTrack } from "./OnboardingTrack";
+
+export const GetOnboardingStateResp: core.serialization.ObjectSchema<
+ serializers.GetOnboardingStateResp.Raw,
+ Schematic.GetOnboardingStateResp
+> = core.serialization.object({
+ environmentId: core.serialization.property("environment_id", core.serialization.string().optional()),
+ milestones: core.serialization.list(OnboardingMilestoneView),
+ path: OnboardingPath.optional(),
+ requirements: core.serialization.list(OnboardingRequirementView),
+ suggestedNext: core.serialization.property("suggested_next", core.serialization.list(OnboardingRequirement)),
+ track: OnboardingTrack.optional(),
+});
+
+export declare namespace GetOnboardingStateResp {
+ export interface Raw {
+ environment_id?: string | null;
+ milestones: OnboardingMilestoneView.Raw[];
+ path?: OnboardingPath.Raw | null;
+ requirements: OnboardingRequirementView.Raw[];
+ suggested_next: OnboardingRequirement.Raw[];
+ track?: OnboardingTrack.Raw | null;
+ }
+}
diff --git a/src/serialization/types/ManagePlanRequest.ts b/src/serialization/types/ManagePlanRequest.ts
index c391059a..2d047ba8 100644
--- a/src/serialization/types/ManagePlanRequest.ts
+++ b/src/serialization/types/ManagePlanRequest.ts
@@ -3,6 +3,7 @@
import type * as Schematic from "../../api/index";
import * as core from "../../core";
import type * as serializers from "../index";
+import { BillingCollectionMethod } from "./BillingCollectionMethod";
import { CheckoutFieldValue } from "./CheckoutFieldValue";
import { PlanSelection } from "./PlanSelection";
import { UpdateCreditBundleRequestBody } from "./UpdateCreditBundleRequestBody";
@@ -12,12 +13,16 @@ export const ManagePlanRequest: core.serialization.ObjectSchema<
serializers.ManagePlanRequest.Raw,
Schematic.ManagePlanRequest
> = core.serialization.object({
+ activateOnPayment: core.serialization.property("activate_on_payment", core.serialization.boolean().optional()),
addOnSelections: core.serialization.property("add_on_selections", core.serialization.list(PlanSelection)),
basePlanId: core.serialization.property("base_plan_id", core.serialization.string().optional()),
basePlanPriceId: core.serialization.property("base_plan_price_id", core.serialization.string().optional()),
basePlanVersionId: core.serialization.property("base_plan_version_id", core.serialization.string().optional()),
+ billingCycleAnchor: core.serialization.property("billing_cycle_anchor", core.serialization.date().optional()),
+ billingEmail: core.serialization.property("billing_email", core.serialization.string().optional()),
billingEntityId: core.serialization.property("billing_entity_id", core.serialization.string().optional()),
cancelImmediately: core.serialization.property("cancel_immediately", core.serialization.boolean().optional()),
+ collectionMethod: core.serialization.property("collection_method", BillingCollectionMethod.optional()),
companyId: core.serialization.property("company_id", core.serialization.string()),
couponExternalId: core.serialization.property("coupon_external_id", core.serialization.string().optional()),
creditBundles: core.serialization.property(
@@ -25,6 +30,7 @@ export const ManagePlanRequest: core.serialization.ObjectSchema<
core.serialization.list(UpdateCreditBundleRequestBody),
),
customFieldValues: core.serialization.property("custom_field_values", core.serialization.list(CheckoutFieldValue)),
+ daysUntilDue: core.serialization.property("days_until_due", core.serialization.number().optional()),
payInAdvanceEntitlements: core.serialization.property(
"pay_in_advance_entitlements",
core.serialization.list(UpdatePayInAdvanceRequestBody),
@@ -35,25 +41,34 @@ export const ManagePlanRequest: core.serialization.ObjectSchema<
),
promoCode: core.serialization.property("promo_code", core.serialization.string().optional()),
prorate: core.serialization.boolean().optional(),
+ prorateFirstPeriod: core.serialization.property("prorate_first_period", core.serialization.boolean().optional()),
+ sendInvoice: core.serialization.property("send_invoice", core.serialization.boolean().optional()),
trialEnd: core.serialization.property("trial_end", core.serialization.date().optional()),
});
export declare namespace ManagePlanRequest {
export interface Raw {
+ activate_on_payment?: boolean | null;
add_on_selections: PlanSelection.Raw[];
base_plan_id?: string | null;
base_plan_price_id?: string | null;
base_plan_version_id?: string | null;
+ billing_cycle_anchor?: string | null;
+ billing_email?: string | null;
billing_entity_id?: string | null;
cancel_immediately?: boolean | null;
+ collection_method?: BillingCollectionMethod.Raw | null;
company_id: string;
coupon_external_id?: string | null;
credit_bundles: UpdateCreditBundleRequestBody.Raw[];
custom_field_values: CheckoutFieldValue.Raw[];
+ days_until_due?: number | null;
pay_in_advance_entitlements: UpdatePayInAdvanceRequestBody.Raw[];
payment_method_external_id?: string | null;
promo_code?: string | null;
prorate?: boolean | null;
+ prorate_first_period?: boolean | null;
+ send_invoice?: boolean | null;
trial_end?: string | null;
}
}
diff --git a/src/serialization/types/MigrationProrationBehavior.ts b/src/serialization/types/MigrationProrationBehavior.ts
new file mode 100644
index 00000000..16bcd267
--- /dev/null
+++ b/src/serialization/types/MigrationProrationBehavior.ts
@@ -0,0 +1,14 @@
+// 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 MigrationProrationBehavior: core.serialization.Schema<
+ serializers.MigrationProrationBehavior.Raw,
+ Schematic.MigrationProrationBehavior
+> = core.serialization.enum_(["always_invoice", "create_prorations", "none"]);
+
+export declare namespace MigrationProrationBehavior {
+ export type Raw = "always_invoice" | "create_prorations" | "none";
+}
diff --git a/src/serialization/types/OnboardingMilestone.ts b/src/serialization/types/OnboardingMilestone.ts
new file mode 100644
index 00000000..7d1f29df
--- /dev/null
+++ b/src/serialization/types/OnboardingMilestone.ts
@@ -0,0 +1,14 @@
+// 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 OnboardingMilestone: core.serialization.Schema<
+ serializers.OnboardingMilestone.Raw,
+ Schematic.OnboardingMilestone
+> = core.serialization.enum_(["evaluated", "implemented"]);
+
+export declare namespace OnboardingMilestone {
+ export type Raw = "evaluated" | "implemented";
+}
diff --git a/src/serialization/types/OnboardingMilestoneView.ts b/src/serialization/types/OnboardingMilestoneView.ts
new file mode 100644
index 00000000..bef355c8
--- /dev/null
+++ b/src/serialization/types/OnboardingMilestoneView.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 { OnboardingMilestone } from "./OnboardingMilestone";
+import { OnboardingRequirement } from "./OnboardingRequirement";
+
+export const OnboardingMilestoneView: core.serialization.ObjectSchema<
+ serializers.OnboardingMilestoneView.Raw,
+ Schematic.OnboardingMilestoneView
+> = core.serialization.object({
+ id: OnboardingMilestone,
+ missing: core.serialization.list(OnboardingRequirement),
+ progress: core.serialization.number(),
+ reachedAt: core.serialization.property("reached_at", core.serialization.date().optional()),
+});
+
+export declare namespace OnboardingMilestoneView {
+ export interface Raw {
+ id: OnboardingMilestone.Raw;
+ missing: OnboardingRequirement.Raw[];
+ progress: number;
+ reached_at?: string | null;
+ }
+}
diff --git a/src/serialization/types/OnboardingPath.ts b/src/serialization/types/OnboardingPath.ts
new file mode 100644
index 00000000..79f99546
--- /dev/null
+++ b/src/serialization/types/OnboardingPath.ts
@@ -0,0 +1,12 @@
+// 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 OnboardingPath: core.serialization.Schema =
+ core.serialization.enum_(["agent", "app"]);
+
+export declare namespace OnboardingPath {
+ export type Raw = "agent" | "app";
+}
diff --git a/src/serialization/types/OnboardingRequirement.ts b/src/serialization/types/OnboardingRequirement.ts
new file mode 100644
index 00000000..0a0339c9
--- /dev/null
+++ b/src/serialization/types/OnboardingRequirement.ts
@@ -0,0 +1,27 @@
+// 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 OnboardingRequirement: core.serialization.Schema<
+ serializers.OnboardingRequirement.Raw,
+ Schematic.OnboardingRequirement
+> = core.serialization.enum_([
+ "connect_billing",
+ "create_api_key",
+ "first_flag_check",
+ "import_companies",
+ "model_packaging",
+ "send_events",
+]);
+
+export declare namespace OnboardingRequirement {
+ export type Raw =
+ | "connect_billing"
+ | "create_api_key"
+ | "first_flag_check"
+ | "import_companies"
+ | "model_packaging"
+ | "send_events";
+}
diff --git a/src/serialization/types/OnboardingRequirementStatus.ts b/src/serialization/types/OnboardingRequirementStatus.ts
new file mode 100644
index 00000000..fd6a38f7
--- /dev/null
+++ b/src/serialization/types/OnboardingRequirementStatus.ts
@@ -0,0 +1,14 @@
+// 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 OnboardingRequirementStatus: core.serialization.Schema<
+ serializers.OnboardingRequirementStatus.Raw,
+ Schematic.OnboardingRequirementStatus
+> = core.serialization.enum_(["available", "blocked", "complete"]);
+
+export declare namespace OnboardingRequirementStatus {
+ export type Raw = "available" | "blocked" | "complete";
+}
diff --git a/src/serialization/types/OnboardingRequirementView.ts b/src/serialization/types/OnboardingRequirementView.ts
new file mode 100644
index 00000000..e7f9be50
--- /dev/null
+++ b/src/serialization/types/OnboardingRequirementView.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 { OnboardingRequirement } from "./OnboardingRequirement";
+import { OnboardingRequirementStatus } from "./OnboardingRequirementStatus";
+
+export const OnboardingRequirementView: core.serialization.ObjectSchema<
+ serializers.OnboardingRequirementView.Raw,
+ Schematic.OnboardingRequirementView
+> = core.serialization.object({
+ blockedBy: core.serialization.property("blocked_by", core.serialization.list(OnboardingRequirement).optional()),
+ id: OnboardingRequirement,
+ satisfiedBy: core.serialization.property("satisfied_by", core.serialization.string().optional()),
+ status: OnboardingRequirementStatus,
+});
+
+export declare namespace OnboardingRequirementView {
+ export interface Raw {
+ blocked_by?: OnboardingRequirement.Raw[] | null;
+ id: OnboardingRequirement.Raw;
+ satisfied_by?: string | null;
+ status: OnboardingRequirementStatus.Raw;
+ }
+}
diff --git a/src/serialization/types/OnboardingTrack.ts b/src/serialization/types/OnboardingTrack.ts
new file mode 100644
index 00000000..7479a562
--- /dev/null
+++ b/src/serialization/types/OnboardingTrack.ts
@@ -0,0 +1,12 @@
+// 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 OnboardingTrack: core.serialization.Schema =
+ core.serialization.enum_(["catalog", "single_plan"]);
+
+export declare namespace OnboardingTrack {
+ export type Raw = "catalog" | "single_plan";
+}
diff --git a/src/serialization/types/PlanBillingSource.ts b/src/serialization/types/PlanBillingSource.ts
new file mode 100644
index 00000000..cd4bb7a4
--- /dev/null
+++ b/src/serialization/types/PlanBillingSource.ts
@@ -0,0 +1,14 @@
+// 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 PlanBillingSource: core.serialization.Schema<
+ serializers.PlanBillingSource.Raw,
+ Schematic.PlanBillingSource
+> = core.serialization.enum_(["custom_plan", "manage_plan"]);
+
+export declare namespace PlanBillingSource {
+ export type Raw = "custom_plan" | "manage_plan";
+}
diff --git a/src/serialization/types/PlanBundleResponseData.ts b/src/serialization/types/PlanBundleResponseData.ts
index 9938541f..de2dc813 100644
--- a/src/serialization/types/PlanBundleResponseData.ts
+++ b/src/serialization/types/PlanBundleResponseData.ts
@@ -7,6 +7,7 @@ import { BillingPlanCreditGrantResponseData } from "./BillingPlanCreditGrantResp
import { BillingProductPlanResponseData } from "./BillingProductPlanResponseData";
import { PlanEntitlementResponseData } from "./PlanEntitlementResponseData";
import { PlanResponseData } from "./PlanResponseData";
+import { PlanVersionResponseData } from "./PlanVersionResponseData";
export const PlanBundleResponseData: core.serialization.ObjectSchema<
serializers.PlanBundleResponseData.Raw,
@@ -19,6 +20,7 @@ export const PlanBundleResponseData: core.serialization.ObjectSchema<
),
entitlements: core.serialization.list(PlanEntitlementResponseData).optional(),
plan: PlanResponseData.optional(),
+ planVersion: core.serialization.property("plan_version", PlanVersionResponseData.optional()),
});
export declare namespace PlanBundleResponseData {
@@ -27,5 +29,6 @@ export declare namespace PlanBundleResponseData {
credit_grants?: BillingPlanCreditGrantResponseData.Raw[] | null;
entitlements?: PlanEntitlementResponseData.Raw[] | null;
plan?: PlanResponseData.Raw | null;
+ plan_version?: PlanVersionResponseData.Raw | null;
}
}
diff --git a/src/serialization/types/PlanCreditGrantView.ts b/src/serialization/types/PlanCreditGrantView.ts
index b8aa7e30..e03c506c 100644
--- a/src/serialization/types/PlanCreditGrantView.ts
+++ b/src/serialization/types/PlanCreditGrantView.ts
@@ -61,6 +61,7 @@ export const PlanCreditGrantView: core.serialization.ObjectSchema<
"billing_credit_can_buy_bundles",
core.serialization.boolean(),
),
+ companyCreditAmount: core.serialization.property("company_credit_amount", core.serialization.number()),
createdAt: core.serialization.property("created_at", core.serialization.date()),
credit: BillingCreditView.optional(),
creditAmount: core.serialization.property("credit_amount", core.serialization.number()),
@@ -99,6 +100,7 @@ export declare namespace PlanCreditGrantView {
billing_credit_auto_topup_threshold_credits?: number | null;
billing_credit_auto_topup_threshold_percent?: number | null;
billing_credit_can_buy_bundles: boolean;
+ company_credit_amount: number;
created_at: string;
credit?: BillingCreditView.Raw | null;
credit_amount: number;
diff --git a/src/serialization/types/PlanVersionMigrationPreviewCompanyResponseData.ts b/src/serialization/types/PlanVersionMigrationPreviewCompanyResponseData.ts
index b12682dc..b160120a 100644
--- a/src/serialization/types/PlanVersionMigrationPreviewCompanyResponseData.ts
+++ b/src/serialization/types/PlanVersionMigrationPreviewCompanyResponseData.ts
@@ -14,6 +14,7 @@ export const PlanVersionMigrationPreviewCompanyResponseData: core.serialization.
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()),
+ wouldFail: core.serialization.property("would_fail", core.serialization.boolean()),
});
export declare namespace PlanVersionMigrationPreviewCompanyResponseData {
@@ -24,5 +25,6 @@ export declare namespace PlanVersionMigrationPreviewCompanyResponseData {
note?: string | null;
plan_version_id_from?: string | null;
will_update_subscription: boolean;
+ would_fail: boolean;
}
}
diff --git a/src/serialization/types/PlanVersionMigrationPreviewResponseData.ts b/src/serialization/types/PlanVersionMigrationPreviewResponseData.ts
index d308cf0b..153c7412 100644
--- a/src/serialization/types/PlanVersionMigrationPreviewResponseData.ts
+++ b/src/serialization/types/PlanVersionMigrationPreviewResponseData.ts
@@ -10,10 +10,12 @@ export const PlanVersionMigrationPreviewResponseData: core.serialization.ObjectS
Schematic.PlanVersionMigrationPreviewResponseData
> = core.serialization.object({
companies: core.serialization.list(PlanVersionMigrationPreviewCompanyResponseData),
+ hasBillingChanges: core.serialization.property("has_billing_changes", core.serialization.boolean()),
});
export declare namespace PlanVersionMigrationPreviewResponseData {
export interface Raw {
companies: PlanVersionMigrationPreviewCompanyResponseData.Raw[];
+ has_billing_changes: boolean;
}
}
diff --git a/src/serialization/types/PlanVersionMigrationResponseData.ts b/src/serialization/types/PlanVersionMigrationResponseData.ts
index effba931..2d6fd4bc 100644
--- a/src/serialization/types/PlanVersionMigrationResponseData.ts
+++ b/src/serialization/types/PlanVersionMigrationResponseData.ts
@@ -3,6 +3,7 @@
import type * as Schematic from "../../api/index";
import * as core from "../../core";
import type * as serializers from "../index";
+import { MigrationProrationBehavior } from "./MigrationProrationBehavior";
import { PlanVersionMigrationStatus } from "./PlanVersionMigrationStatus";
import { PlanVersionMigrationStrategy } from "./PlanVersionMigrationStrategy";
@@ -23,6 +24,7 @@ export const PlanVersionMigrationResponseData: core.serialization.ObjectSchema<
"plan_version_ids_from",
core.serialization.list(core.serialization.string()),
),
+ prorationBehavior: core.serialization.property("proration_behavior", MigrationProrationBehavior.optional()),
skippedCompanies: core.serialization.property("skipped_companies", core.serialization.number()),
startedAt: core.serialization.property("started_at", core.serialization.date().optional()),
status: PlanVersionMigrationStatus,
@@ -43,6 +45,7 @@ export declare namespace PlanVersionMigrationResponseData {
plan_version_id_from?: string | null;
plan_version_id_to: string;
plan_version_ids_from: string[];
+ proration_behavior?: MigrationProrationBehavior.Raw | null;
skipped_companies: number;
started_at?: string | null;
status: PlanVersionMigrationStatus.Raw;
diff --git a/src/serialization/types/PreflightEventUsageRequestBody.ts b/src/serialization/types/PreflightEventUsageRequestBody.ts
new file mode 100644
index 00000000..4e16fb7d
--- /dev/null
+++ b/src/serialization/types/PreflightEventUsageRequestBody.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 PreflightEventUsageRequestBody: core.serialization.ObjectSchema<
+ serializers.PreflightEventUsageRequestBody.Raw,
+ Schematic.PreflightEventUsageRequestBody
+> = core.serialization.object({
+ eventSubtype: core.serialization.property("event_subtype", core.serialization.string()),
+ quantity: core.serialization.number(),
+});
+
+export declare namespace PreflightEventUsageRequestBody {
+ export interface Raw {
+ event_subtype: string;
+ quantity: number;
+ }
+}
diff --git a/src/serialization/types/PreflightRequestBody.ts b/src/serialization/types/PreflightRequestBody.ts
new file mode 100644
index 00000000..2ccd9126
--- /dev/null
+++ b/src/serialization/types/PreflightRequestBody.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 { PreflightEventUsageRequestBody } from "./PreflightEventUsageRequestBody";
+
+export const PreflightRequestBody: core.serialization.ObjectSchema<
+ serializers.PreflightRequestBody.Raw,
+ Schematic.PreflightRequestBody
+> = core.serialization.object({
+ creditCost: core.serialization.property(
+ "credit_cost",
+ core.serialization.record(core.serialization.string(), core.serialization.number()).optional(),
+ ),
+ eventUsage: core.serialization.property("event_usage", PreflightEventUsageRequestBody.optional()),
+ usage: core.serialization.number().optional(),
+});
+
+export declare namespace PreflightRequestBody {
+ export interface Raw {
+ credit_cost?: Record | null;
+ event_usage?: PreflightEventUsageRequestBody.Raw | null;
+ usage?: number | null;
+ }
+}
diff --git a/src/serialization/types/PreviewSubscriptionFinanceResponseData.ts b/src/serialization/types/PreviewSubscriptionFinanceResponseData.ts
index 5a2b380d..02930279 100644
--- a/src/serialization/types/PreviewSubscriptionFinanceResponseData.ts
+++ b/src/serialization/types/PreviewSubscriptionFinanceResponseData.ts
@@ -11,6 +11,7 @@ export const PreviewSubscriptionFinanceResponseData: core.serialization.ObjectSc
Schematic.PreviewSubscriptionFinanceResponseData
> = core.serialization.object({
amountOff: core.serialization.property("amount_off", core.serialization.number()),
+ discountAmount: core.serialization.property("discount_amount", core.serialization.number()),
discounts: core.serialization.list(PreviewSubscriptionDiscountResponseData),
dueNow: core.serialization.property("due_now", core.serialization.number()),
newCharges: core.serialization.property("new_charges", core.serialization.number()),
@@ -33,6 +34,7 @@ export const PreviewSubscriptionFinanceResponseData: core.serialization.ObjectSc
export declare namespace PreviewSubscriptionFinanceResponseData {
export interface Raw {
amount_off: number;
+ discount_amount: number;
discounts: PreviewSubscriptionDiscountResponseData.Raw[];
due_now: number;
new_charges: number;
diff --git a/src/serialization/types/RulesEngineSchemaVersion.ts b/src/serialization/types/RulesEngineSchemaVersion.ts
index 4b20dc14..93a4bb23 100644
--- a/src/serialization/types/RulesEngineSchemaVersion.ts
+++ b/src/serialization/types/RulesEngineSchemaVersion.ts
@@ -7,8 +7,8 @@ import type * as serializers from "../index";
export const RulesEngineSchemaVersion: core.serialization.Schema<
serializers.RulesEngineSchemaVersion.Raw,
Schematic.RulesEngineSchemaVersion
-> = core.serialization.enum_(["v5b3e7220", "placeholder-for-fern-compatibility"]);
+> = core.serialization.enum_(["vc8eb8df4", "placeholder-for-fern-compatibility"]);
export declare namespace RulesEngineSchemaVersion {
- export type Raw = "v5b3e7220" | "placeholder-for-fern-compatibility";
+ export type Raw = "vc8eb8df4" | "placeholder-for-fern-compatibility";
}
diff --git a/src/serialization/types/UpdateBillingPlanCreditGrantRequestBody.ts b/src/serialization/types/UpdateBillingPlanCreditGrantRequestBody.ts
index d0d9a1c6..d557c533 100644
--- a/src/serialization/types/UpdateBillingPlanCreditGrantRequestBody.ts
+++ b/src/serialization/types/UpdateBillingPlanCreditGrantRequestBody.ts
@@ -43,6 +43,7 @@ export const UpdateBillingPlanCreditGrantRequestBody: core.serialization.ObjectS
core.serialization.number().optional(),
),
canBuyBundles: core.serialization.property("can_buy_bundles", core.serialization.boolean().optional()),
+ companyCreditAmount: core.serialization.property("company_credit_amount", core.serialization.number().optional()),
creditAmount: core.serialization.property("credit_amount", core.serialization.number().optional()),
expiryType: core.serialization.property("expiry_type", BillingCreditExpiryType.optional()),
expiryUnit: core.serialization.property("expiry_unit", BillingCreditExpiryUnit.optional()),
@@ -69,6 +70,7 @@ export declare namespace UpdateBillingPlanCreditGrantRequestBody {
auto_topup_threshold_credits?: number | null;
auto_topup_threshold_percent?: number | null;
can_buy_bundles?: boolean | null;
+ company_credit_amount?: number | null;
credit_amount?: number | null;
expiry_type?: BillingCreditExpiryType.Raw | null;
expiry_unit?: BillingCreditExpiryUnit.Raw | null;
diff --git a/src/serialization/types/UpsertCompanyRequestBody.ts b/src/serialization/types/UpsertCompanyRequestBody.ts
index c33fb29c..243bcf4c 100644
--- a/src/serialization/types/UpsertCompanyRequestBody.ts
+++ b/src/serialization/types/UpsertCompanyRequestBody.ts
@@ -15,6 +15,10 @@ export const UpsertCompanyRequestBody: core.serialization.ObjectSchema<
lastSeenAt: core.serialization.property("last_seen_at", core.serialization.date().optional()),
name: core.serialization.string().optional(),
preventKeyRemap: core.serialization.property("prevent_key_remap", core.serialization.boolean().optional()),
+ removeKeys: core.serialization.property(
+ "remove_keys",
+ core.serialization.list(core.serialization.string()).optional(),
+ ),
traits: core.serialization.record(core.serialization.string(), core.serialization.unknown()).optional(),
updateOnly: core.serialization.property("update_only", core.serialization.boolean().optional()),
});
@@ -28,6 +32,7 @@ export declare namespace UpsertCompanyRequestBody {
last_seen_at?: string | null;
name?: string | null;
prevent_key_remap?: boolean | null;
+ remove_keys?: string[] | null;
traits?: Record | null;
update_only?: boolean | null;
}
diff --git a/src/serialization/types/UpsertUserRequestBody.ts b/src/serialization/types/UpsertUserRequestBody.ts
index 17aa92d3..de45d109 100644
--- a/src/serialization/types/UpsertUserRequestBody.ts
+++ b/src/serialization/types/UpsertUserRequestBody.ts
@@ -21,6 +21,10 @@ export const UpsertUserRequestBody: core.serialization.ObjectSchema<
keys: core.serialization.record(core.serialization.string(), core.serialization.string()),
lastSeenAt: core.serialization.property("last_seen_at", core.serialization.date().optional()),
name: core.serialization.string().optional(),
+ removeKeys: core.serialization.property(
+ "remove_keys",
+ core.serialization.list(core.serialization.string()).optional(),
+ ),
traits: core.serialization.record(core.serialization.string(), core.serialization.unknown()).optional(),
updateOnly: core.serialization.property("update_only", core.serialization.boolean().optional()),
});
@@ -35,6 +39,7 @@ export declare namespace UpsertUserRequestBody {
keys: Record;
last_seen_at?: string | null;
name?: string | null;
+ remove_keys?: string[] | null;
traits?: Record | null;
update_only?: boolean | null;
}
diff --git a/src/serialization/types/UpsertUserSubRequestBody.ts b/src/serialization/types/UpsertUserSubRequestBody.ts
index 2cca1284..51205f63 100644
--- a/src/serialization/types/UpsertUserSubRequestBody.ts
+++ b/src/serialization/types/UpsertUserSubRequestBody.ts
@@ -17,6 +17,10 @@ export const UpsertUserSubRequestBody: core.serialization.ObjectSchema<
keys: core.serialization.record(core.serialization.string(), core.serialization.string()),
lastSeenAt: core.serialization.property("last_seen_at", core.serialization.date().optional()),
name: core.serialization.string().optional(),
+ removeKeys: core.serialization.property(
+ "remove_keys",
+ core.serialization.list(core.serialization.string()).optional(),
+ ),
traits: core.serialization.record(core.serialization.string(), core.serialization.unknown()).optional(),
updateOnly: core.serialization.property("update_only", core.serialization.boolean().optional()),
});
@@ -29,6 +33,7 @@ export declare namespace UpsertUserSubRequestBody {
keys: Record;
last_seen_at?: string | null;
name?: string | null;
+ remove_keys?: string[] | null;
traits?: Record | null;
update_only?: boolean | null;
}
diff --git a/src/serialization/types/WhoAmIResponseData.ts b/src/serialization/types/WhoAmIResponseData.ts
index 30161de3..1366e1e3 100644
--- a/src/serialization/types/WhoAmIResponseData.ts
+++ b/src/serialization/types/WhoAmIResponseData.ts
@@ -16,6 +16,7 @@ export const WhoAmIResponseData: core.serialization.ObjectSchema<
apiKeyId: core.serialization.property("api_key_id", core.serialization.string().optional()),
environmentId: core.serialization.property("environment_id", core.serialization.string().optional()),
environments: core.serialization.list(EnvironmentResponseData),
+ onboardingComplete: core.serialization.property("onboarding_complete", core.serialization.boolean()),
stripeUserId: core.serialization.property("stripe_user_id", core.serialization.string().optional()),
userId: core.serialization.property("user_id", core.serialization.string().optional()),
userName: core.serialization.property("user_name", core.serialization.string().optional()),
@@ -29,6 +30,7 @@ export declare namespace WhoAmIResponseData {
api_key_id?: string | null;
environment_id?: string | null;
environments: EnvironmentResponseData.Raw[];
+ onboarding_complete: boolean;
stripe_user_id?: string | null;
user_id?: string | null;
user_name?: string | null;
diff --git a/src/serialization/types/index.ts b/src/serialization/types/index.ts
index f8d4644b..948ca836 100644
--- a/src/serialization/types/index.ts
+++ b/src/serialization/types/index.ts
@@ -12,6 +12,7 @@ export * from "./ApiKeyScope";
export * from "./AuditLogExportMetadata";
export * from "./AuditLogListResponseData";
export * from "./AuditLogResponseData";
+export * from "./BillingCollectionMethod";
export * from "./BillingCouponResponseData";
export * from "./BillingCreditAutoTopupAvailability";
export * from "./BillingCreditBundleResponseData";
@@ -80,6 +81,7 @@ export * from "./CheckFlagRequestBody";
export * from "./CheckFlagResponseData";
export * from "./CheckFlagsBulkResponseData";
export * from "./CheckFlagsResponseData";
+export * from "./CheckoutBundlePurchaseBehavior";
export * from "./CheckoutDataResponseData";
export * from "./CheckoutFieldInput";
export * from "./CheckoutFieldResponseData";
@@ -204,6 +206,7 @@ export * from "./EntityKeyDefinitionResponseData";
export * from "./EntityKeyDetailResponseData";
export * from "./EntityKeyResponseData";
export * from "./EntityTraitDefinitionResponseData";
+export * from "./EntityTraitDefinitionUsage";
export * from "./EntityTraitDetailResponseData";
export * from "./EntityTraitResponseData";
export * from "./EntityTraitValue";
@@ -237,6 +240,7 @@ export * from "./FeatureLifecyclePhase";
export * from "./FeatureResponseData";
export * from "./FeatureType";
export * from "./FeatureUsageDetailResponseData";
+export * from "./FeatureUsageHistoryResponseData";
export * from "./FeatureUsageLegacyResponseData";
export * from "./FeatureUsageResponseData";
export * from "./FeatureUsageTimeSeriesResponseData";
@@ -247,6 +251,7 @@ export * from "./FlagResponseData";
export * from "./FlagType";
export * from "./FlagView";
export * from "./GenericPreviewObject";
+export * from "./GetOnboardingStateResp";
export * from "./InsightsSummaryResponseData";
export * from "./InstallIntegrationRequestBody";
export * from "./IntegrationCapabilities";
@@ -276,11 +281,20 @@ export * from "./MetricPeriod";
export * from "./MetricPeriodMonthReset";
export * from "./MetronomeIntegrationConfig";
export * from "./MigrationErrorCode";
+export * from "./MigrationProrationBehavior";
export * from "./MrrResponseData";
+export * from "./OnboardingMilestone";
+export * from "./OnboardingMilestoneView";
+export * from "./OnboardingPath";
+export * from "./OnboardingRequirement";
+export * from "./OnboardingRequirementStatus";
+export * from "./OnboardingRequirementView";
+export * from "./OnboardingTrack";
export * from "./OrbIntegrationConfig";
export * from "./OrderedPlansInGroup";
export * from "./PaymentMethodRequestBody";
export * from "./PaymentMethodResponseData";
+export * from "./PlanBillingSource";
export * from "./PlanBundleAction";
export * from "./PlanBundleCreditGrantRequestBody";
export * from "./PlanBundleEntitlementRequestBody";
@@ -323,6 +337,8 @@ export * from "./PlanVersionResponseData";
export * from "./PlanVersionSnapshotView";
export * from "./PlanVersionStatus";
export * from "./PlanViewPublicResponseData";
+export * from "./PreflightEventUsageRequestBody";
+export * from "./PreflightRequestBody";
export * from "./PreviewObject";
export * from "./PreviewObjectResponseData";
export * from "./PreviewSubscriptionChangeResponseData";
diff --git a/tests/wire/accounts.test.ts b/tests/wire/accounts.test.ts
index a12a39d3..59a8a96e 100644
--- a/tests/wire/accounts.test.ts
+++ b/tests/wire/accounts.test.ts
@@ -2394,6 +2394,255 @@ describe("AccountsClient", () => {
}).rejects.toThrow(Schematic.InternalServerError);
});
+ test("getOnboardingState (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = {
+ data: {
+ environment_id: "environment_id",
+ milestones: [{ id: "evaluated", missing: ["connect_billing"], progress: 1.1 }],
+ path: "agent",
+ requirements: [{ id: "connect_billing", status: "available" }],
+ suggested_next: ["connect_billing"],
+ track: "catalog",
+ },
+ params: { key: "value" },
+ };
+
+ server.mockEndpoint().get("/onboarding-state").respondWith().statusCode(200).jsonBody(rawResponseBody).build();
+
+ const response = await client.accounts.getOnboardingState();
+ expect(response).toEqual({
+ data: {
+ environmentId: "environment_id",
+ milestones: [
+ {
+ id: "evaluated",
+ missing: ["connect_billing"],
+ progress: 1.1,
+ },
+ ],
+ path: "agent",
+ requirements: [
+ {
+ id: "connect_billing",
+ status: "available",
+ },
+ ],
+ suggestedNext: ["connect_billing"],
+ track: "catalog",
+ },
+ params: {
+ key: "value",
+ },
+ });
+ });
+
+ test("getOnboardingState (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { error: "error" };
+
+ server.mockEndpoint().get("/onboarding-state").respondWith().statusCode(401).jsonBody(rawResponseBody).build();
+
+ await expect(async () => {
+ return await client.accounts.getOnboardingState();
+ }).rejects.toThrow(Schematic.UnauthorizedError);
+ });
+
+ test("getOnboardingState (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { error: "error" };
+
+ server.mockEndpoint().get("/onboarding-state").respondWith().statusCode(403).jsonBody(rawResponseBody).build();
+
+ await expect(async () => {
+ return await client.accounts.getOnboardingState();
+ }).rejects.toThrow(Schematic.ForbiddenError);
+ });
+
+ test("getOnboardingState (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { error: "error" };
+
+ server.mockEndpoint().get("/onboarding-state").respondWith().statusCode(404).jsonBody(rawResponseBody).build();
+
+ await expect(async () => {
+ return await client.accounts.getOnboardingState();
+ }).rejects.toThrow(Schematic.NotFoundError);
+ });
+
+ test("getOnboardingState (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { error: "error" };
+
+ server.mockEndpoint().get("/onboarding-state").respondWith().statusCode(500).jsonBody(rawResponseBody).build();
+
+ await expect(async () => {
+ return await client.accounts.getOnboardingState();
+ }).rejects.toThrow(Schematic.InternalServerError);
+ });
+
+ test("updateOnboardingState (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+ const rawRequestBody = {};
+ const rawResponseBody = {
+ data: {
+ environment_id: "environment_id",
+ milestones: [{ id: "evaluated", missing: ["connect_billing"], progress: 1.1 }],
+ path: "agent",
+ requirements: [{ id: "connect_billing", status: "available" }],
+ suggested_next: ["connect_billing"],
+ track: "catalog",
+ },
+ params: { key: "value" },
+ };
+
+ server
+ .mockEndpoint()
+ .post("/onboarding-state")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(200)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ const response = await client.accounts.updateOnboardingState();
+ expect(response).toEqual({
+ data: {
+ environmentId: "environment_id",
+ milestones: [
+ {
+ id: "evaluated",
+ missing: ["connect_billing"],
+ progress: 1.1,
+ },
+ ],
+ path: "agent",
+ requirements: [
+ {
+ id: "connect_billing",
+ status: "available",
+ },
+ ],
+ suggestedNext: ["connect_billing"],
+ track: "catalog",
+ },
+ params: {
+ key: "value",
+ },
+ });
+ });
+
+ test("updateOnboardingState (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+ const rawRequestBody = {};
+ const rawResponseBody = { error: "error" };
+
+ server
+ .mockEndpoint()
+ .post("/onboarding-state")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(400)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.accounts.updateOnboardingState();
+ }).rejects.toThrow(Schematic.BadRequestError);
+ });
+
+ test("updateOnboardingState (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+ const rawRequestBody = {};
+ const rawResponseBody = { error: "error" };
+
+ server
+ .mockEndpoint()
+ .post("/onboarding-state")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(401)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.accounts.updateOnboardingState();
+ }).rejects.toThrow(Schematic.UnauthorizedError);
+ });
+
+ test("updateOnboardingState (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+ const rawRequestBody = {};
+ const rawResponseBody = { error: "error" };
+
+ server
+ .mockEndpoint()
+ .post("/onboarding-state")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(403)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.accounts.updateOnboardingState();
+ }).rejects.toThrow(Schematic.ForbiddenError);
+ });
+
+ test("updateOnboardingState (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+ const rawRequestBody = {};
+ const rawResponseBody = { error: "error" };
+
+ server
+ .mockEndpoint()
+ .post("/onboarding-state")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(404)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.accounts.updateOnboardingState();
+ }).rejects.toThrow(Schematic.NotFoundError);
+ });
+
+ test("updateOnboardingState (6)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+ const rawRequestBody = {};
+ const rawResponseBody = { error: "error" };
+
+ server
+ .mockEndpoint()
+ .post("/onboarding-state")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(500)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.accounts.updateOnboardingState();
+ }).rejects.toThrow(Schematic.InternalServerError);
+ });
+
test("quickstart (1)", async () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
@@ -2498,6 +2747,7 @@ describe("AccountsClient", () => {
updated_at: "2024-01-15T09:30:00Z",
},
],
+ onboarding_complete: true,
stripe_user_id: "stripe_user_id",
user_id: "user_id",
user_name: "user_name",
@@ -2524,6 +2774,7 @@ describe("AccountsClient", () => {
updatedAt: new Date("2024-01-15T09:30:00.000Z"),
},
],
+ onboardingComplete: true,
stripeUserId: "stripe_user_id",
userId: "user_id",
userName: "user_name",
diff --git a/tests/wire/checkout.test.ts b/tests/wire/checkout.test.ts
index 6c0da98b..64dfb7b6 100644
--- a/tests/wire/checkout.test.ts
+++ b/tests/wire/checkout.test.ts
@@ -920,6 +920,7 @@ describe("CheckoutClient", () => {
auto_topup_enabled: true,
auto_topup_self_service: true,
can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_id: "credit_id",
@@ -997,6 +998,7 @@ describe("CheckoutClient", () => {
available_credit_bundles: [
{
bundle_type: "fixed",
+ compatible_plan_ids: ["compatible_plan_ids"],
created_at: "2024-01-15T09:30:00Z",
credit_id: "credit_id",
credit_name: "credit_name",
@@ -1019,6 +1021,7 @@ describe("CheckoutClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -1140,6 +1143,7 @@ describe("CheckoutClient", () => {
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
id: "id",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
send_invoice: true,
status: "active",
@@ -1218,6 +1222,7 @@ describe("CheckoutClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -1483,6 +1488,7 @@ describe("CheckoutClient", () => {
auto_topup_enabled: true,
auto_topup_self_service: true,
can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_id: "credit_id",
@@ -2005,6 +2011,7 @@ describe("CheckoutClient", () => {
autoTopupEnabled: true,
autoTopupSelfService: true,
canBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditId: "credit_id",
@@ -2087,6 +2094,7 @@ describe("CheckoutClient", () => {
availableCreditBundles: [
{
bundleType: "fixed",
+ compatiblePlanIds: ["compatible_plan_ids"],
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditId: "credit_id",
creditName: "credit_name",
@@ -2113,6 +2121,7 @@ describe("CheckoutClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -2236,6 +2245,7 @@ describe("CheckoutClient", () => {
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
id: "id",
+ planBillingSource: "custom_plan",
planId: "plan_id",
sendInvoice: true,
status: "active",
@@ -2320,6 +2330,7 @@ describe("CheckoutClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -2635,6 +2646,7 @@ describe("CheckoutClient", () => {
autoTopupEnabled: true,
autoTopupSelfService: true,
canBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditId: "credit_id",
@@ -2924,6 +2936,7 @@ describe("CheckoutClient", () => {
due_now: 1000000,
finance: {
amount_off: 1000000,
+ discount_amount: 1000000,
discounts: [
{
coupon_name: "coupon_name",
@@ -3027,6 +3040,7 @@ describe("CheckoutClient", () => {
dueNow: 1000000,
finance: {
amountOff: 1000000,
+ discountAmount: 1000000,
discounts: [
{
couponName: "coupon_name",
@@ -3587,7 +3601,12 @@ describe("CheckoutClient", () => {
postal_code: "postal_code",
state: "state",
},
- checkout_settings: { collect_address: true, collect_email: true, collect_phone: true },
+ checkout_settings: {
+ collect_address: true,
+ collect_email: true,
+ collect_phone: true,
+ collect_tax_id: true,
+ },
custom_fields: [
{
definition_id: "definition_id",
@@ -3627,6 +3646,7 @@ describe("CheckoutClient", () => {
collectAddress: true,
collectEmail: true,
collectPhone: true,
+ collectTaxId: true,
},
customFields: [
{
@@ -3744,7 +3764,12 @@ describe("CheckoutClient", () => {
postal_code: "postal_code",
state: "state",
},
- checkout_settings: { collect_address: true, collect_email: true, collect_phone: true },
+ checkout_settings: {
+ collect_address: true,
+ collect_email: true,
+ collect_phone: true,
+ collect_tax_id: true,
+ },
custom_fields: [
{
definition_id: "definition_id",
@@ -3792,6 +3817,7 @@ describe("CheckoutClient", () => {
collectAddress: true,
collectEmail: true,
collectPhone: true,
+ collectTaxId: true,
},
customFields: [
{
@@ -4020,6 +4046,7 @@ describe("CheckoutClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -4141,6 +4168,7 @@ describe("CheckoutClient", () => {
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
id: "id",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
send_invoice: true,
status: "active",
@@ -4219,6 +4247,7 @@ describe("CheckoutClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -4338,6 +4367,7 @@ describe("CheckoutClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -4461,6 +4491,7 @@ describe("CheckoutClient", () => {
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
id: "id",
+ planBillingSource: "custom_plan",
planId: "plan_id",
sendInvoice: true,
status: "active",
@@ -4545,6 +4576,7 @@ describe("CheckoutClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -5020,6 +5052,7 @@ describe("CheckoutClient", () => {
due_now: 1000000,
finance: {
amount_off: 1000000,
+ discount_amount: 1000000,
discounts: [
{
coupon_name: "coupon_name",
@@ -5113,6 +5146,7 @@ describe("CheckoutClient", () => {
dueNow: 1000000,
finance: {
amountOff: 1000000,
+ discountAmount: 1000000,
discounts: [
{
couponName: "coupon_name",
@@ -5557,6 +5591,7 @@ describe("CheckoutClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -5678,6 +5713,7 @@ describe("CheckoutClient", () => {
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
id: "id",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
send_invoice: true,
status: "active",
@@ -5756,6 +5792,7 @@ describe("CheckoutClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -5852,6 +5889,7 @@ describe("CheckoutClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -5975,6 +6013,7 @@ describe("CheckoutClient", () => {
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
id: "id",
+ planBillingSource: "custom_plan",
planId: "plan_id",
sendInvoice: true,
status: "active",
@@ -6059,6 +6098,7 @@ describe("CheckoutClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
diff --git a/tests/wire/companies.test.ts b/tests/wire/companies.test.ts
index e68c1e73..64a2cfdb 100644
--- a/tests/wire/companies.test.ts
+++ b/tests/wire/companies.test.ts
@@ -20,6 +20,7 @@ describe("CompaniesClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -141,6 +142,7 @@ describe("CompaniesClient", () => {
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
id: "id",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
send_invoice: true,
status: "active",
@@ -219,6 +221,7 @@ describe("CompaniesClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -299,6 +302,7 @@ describe("CompaniesClient", () => {
plan_ids: ["plan_ids"],
plan_version_id: "plan_version_id",
plan_version_ids: ["plan_version_ids"],
+ plan_version_unpublished: true,
q: "q",
sort_order_column: "sort_order_column",
sort_order_direction: "asc",
@@ -323,6 +327,7 @@ describe("CompaniesClient", () => {
planIds: ["plan_ids"],
planVersionId: "plan_version_id",
planVersionIds: ["plan_version_ids"],
+ planVersionUnpublished: true,
q: "q",
sortOrderColumn: "sort_order_column",
sortOrderDirection: "asc",
@@ -347,6 +352,7 @@ describe("CompaniesClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -470,6 +476,7 @@ describe("CompaniesClient", () => {
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
id: "id",
+ planBillingSource: "custom_plan",
planId: "plan_id",
sendInvoice: true,
status: "active",
@@ -554,6 +561,7 @@ describe("CompaniesClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -641,6 +649,7 @@ describe("CompaniesClient", () => {
planIds: ["plan_ids"],
planVersionId: "plan_version_id",
planVersionIds: ["plan_version_ids"],
+ planVersionUnpublished: true,
q: "q",
sortOrderColumn: "sort_order_column",
sortOrderDirection: "asc",
@@ -734,6 +743,7 @@ describe("CompaniesClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -889,6 +899,7 @@ describe("CompaniesClient", () => {
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
id: "id",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
send_invoice: true,
status: "active",
@@ -982,6 +993,7 @@ describe("CompaniesClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -1082,6 +1094,7 @@ describe("CompaniesClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -1241,6 +1254,7 @@ describe("CompaniesClient", () => {
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
id: "id",
+ planBillingSource: "custom_plan",
planId: "plan_id",
sendInvoice: true,
status: "active",
@@ -1340,6 +1354,7 @@ describe("CompaniesClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -1560,6 +1575,7 @@ describe("CompaniesClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -1715,6 +1731,7 @@ describe("CompaniesClient", () => {
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
id: "id",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
send_invoice: true,
status: "active",
@@ -1808,6 +1825,7 @@ describe("CompaniesClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -1903,6 +1921,7 @@ describe("CompaniesClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -2062,6 +2081,7 @@ describe("CompaniesClient", () => {
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
id: "id",
+ planBillingSource: "custom_plan",
planId: "plan_id",
sendInvoice: true,
status: "active",
@@ -2161,6 +2181,7 @@ describe("CompaniesClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -2464,6 +2485,7 @@ describe("CompaniesClient", () => {
plan_ids: ["plan_ids"],
plan_version_id: "plan_version_id",
plan_version_ids: ["plan_version_ids"],
+ plan_version_unpublished: true,
q: "q",
sort_order_column: "sort_order_column",
sort_order_direction: "asc",
@@ -2488,6 +2510,7 @@ describe("CompaniesClient", () => {
planIds: ["plan_ids"],
planVersionId: "plan_version_id",
planVersionIds: ["plan_version_ids"],
+ planVersionUnpublished: true,
q: "q",
sortOrderColumn: "sort_order_column",
sortOrderDirection: "asc",
@@ -2516,6 +2539,7 @@ describe("CompaniesClient", () => {
planIds: ["plan_ids"],
planVersionId: "plan_version_id",
planVersionIds: ["plan_version_ids"],
+ planVersionUnpublished: true,
q: "q",
sortOrderColumn: "sort_order_column",
sortOrderDirection: "asc",
@@ -2609,6 +2633,7 @@ describe("CompaniesClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -2764,6 +2789,7 @@ describe("CompaniesClient", () => {
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
id: "id",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
send_invoice: true,
status: "active",
@@ -2857,6 +2883,7 @@ describe("CompaniesClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -2957,6 +2984,7 @@ describe("CompaniesClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -3116,6 +3144,7 @@ describe("CompaniesClient", () => {
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
id: "id",
+ planBillingSource: "custom_plan",
planId: "plan_id",
sendInvoice: true,
status: "active",
@@ -3215,6 +3244,7 @@ describe("CompaniesClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -3618,6 +3648,7 @@ describe("CompaniesClient", () => {
company_auto_topup_amount: 1000000,
company_auto_topup_enabled: true,
company_auto_topup_threshold_credits: 1000000,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit: {
account_id: "account_id",
@@ -3708,6 +3739,7 @@ describe("CompaniesClient", () => {
company_auto_topup_amount: 1000000,
company_auto_topup_enabled: true,
company_auto_topup_threshold_credits: 1000000,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit: {
account_id: "account_id",
@@ -3812,6 +3844,7 @@ describe("CompaniesClient", () => {
company_auto_topup_amount: 1000000,
company_auto_topup_enabled: true,
company_auto_topup_threshold_credits: 1000000,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit: {
account_id: "account_id",
@@ -3902,6 +3935,7 @@ describe("CompaniesClient", () => {
company_auto_topup_amount: 1000000,
company_auto_topup_enabled: true,
company_auto_topup_threshold_credits: 1000000,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit: {
account_id: "account_id",
@@ -4522,12 +4556,14 @@ describe("CompaniesClient", () => {
custom_plan_billings: [
{
activation_strategy: "on_payment",
+ billing_cycle_anchor: "2024-01-15T09:30:00Z",
company_id: "company_id",
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
external_invoice_id: "external_invoice_id",
id: "id",
paid_at: "2024-01-15T09:30:00Z",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
published_at: "2024-01-15T09:30:00Z",
send_invoice: true,
@@ -4537,12 +4573,14 @@ describe("CompaniesClient", () => {
},
{
activation_strategy: "on_payment",
+ billing_cycle_anchor: "2024-01-15T09:30:00Z",
company_id: "company_id",
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
external_invoice_id: "external_invoice_id",
id: "id",
paid_at: "2024-01-15T09:30:00Z",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
published_at: "2024-01-15T09:30:00Z",
send_invoice: true,
@@ -4793,6 +4831,7 @@ describe("CompaniesClient", () => {
company_auto_topup_amount: 1000000,
company_auto_topup_enabled: true,
company_auto_topup_threshold_credits: 1000000,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit: {
account_id: "account_id",
@@ -4883,6 +4922,7 @@ describe("CompaniesClient", () => {
company_auto_topup_amount: 1000000,
company_auto_topup_enabled: true,
company_auto_topup_threshold_credits: 1000000,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit: {
account_id: "account_id",
@@ -5319,6 +5359,7 @@ describe("CompaniesClient", () => {
companyAutoTopupAmount: 1000000,
companyAutoTopupEnabled: true,
companyAutoTopupThresholdCredits: 1000000,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
credit: {
accountId: "account_id",
@@ -5421,6 +5462,7 @@ describe("CompaniesClient", () => {
companyAutoTopupAmount: 1000000,
companyAutoTopupEnabled: true,
companyAutoTopupThresholdCredits: 1000000,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
credit: {
accountId: "account_id",
@@ -5537,6 +5579,7 @@ describe("CompaniesClient", () => {
companyAutoTopupAmount: 1000000,
companyAutoTopupEnabled: true,
companyAutoTopupThresholdCredits: 1000000,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
credit: {
accountId: "account_id",
@@ -5639,6 +5682,7 @@ describe("CompaniesClient", () => {
companyAutoTopupAmount: 1000000,
companyAutoTopupEnabled: true,
companyAutoTopupThresholdCredits: 1000000,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
credit: {
accountId: "account_id",
@@ -6285,12 +6329,14 @@ describe("CompaniesClient", () => {
customPlanBillings: [
{
activationStrategy: "on_payment",
+ billingCycleAnchor: new Date("2024-01-15T09:30:00.000Z"),
companyId: "company_id",
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
externalInvoiceId: "external_invoice_id",
id: "id",
paidAt: new Date("2024-01-15T09:30:00.000Z"),
+ planBillingSource: "custom_plan",
planId: "plan_id",
publishedAt: new Date("2024-01-15T09:30:00.000Z"),
sendInvoice: true,
@@ -6300,12 +6346,14 @@ describe("CompaniesClient", () => {
},
{
activationStrategy: "on_payment",
+ billingCycleAnchor: new Date("2024-01-15T09:30:00.000Z"),
companyId: "company_id",
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
externalInvoiceId: "external_invoice_id",
id: "id",
paidAt: new Date("2024-01-15T09:30:00.000Z"),
+ planBillingSource: "custom_plan",
planId: "plan_id",
publishedAt: new Date("2024-01-15T09:30:00.000Z"),
sendInvoice: true,
@@ -6568,6 +6616,7 @@ describe("CompaniesClient", () => {
companyAutoTopupAmount: 1000000,
companyAutoTopupEnabled: true,
companyAutoTopupThresholdCredits: 1000000,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
credit: {
accountId: "account_id",
@@ -6670,6 +6719,7 @@ describe("CompaniesClient", () => {
companyAutoTopupAmount: 1000000,
companyAutoTopupEnabled: true,
companyAutoTopupThresholdCredits: 1000000,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
credit: {
accountId: "account_id",
@@ -7285,7 +7335,9 @@ describe("CompaniesClient", () => {
.build();
await expect(async () => {
- return await client.companies.getCompanyBillingEntity();
+ return await client.companies.getCompanyBillingEntity({
+ companyId: "company_id",
+ });
}).rejects.toThrow(Schematic.BadRequestError);
});
@@ -7304,7 +7356,9 @@ describe("CompaniesClient", () => {
.build();
await expect(async () => {
- return await client.companies.getCompanyBillingEntity();
+ return await client.companies.getCompanyBillingEntity({
+ companyId: "company_id",
+ });
}).rejects.toThrow(Schematic.UnauthorizedError);
});
@@ -7323,7 +7377,9 @@ describe("CompaniesClient", () => {
.build();
await expect(async () => {
- return await client.companies.getCompanyBillingEntity();
+ return await client.companies.getCompanyBillingEntity({
+ companyId: "company_id",
+ });
}).rejects.toThrow(Schematic.ForbiddenError);
});
@@ -7342,7 +7398,9 @@ describe("CompaniesClient", () => {
.build();
await expect(async () => {
- return await client.companies.getCompanyBillingEntity();
+ return await client.companies.getCompanyBillingEntity({
+ companyId: "company_id",
+ });
}).rejects.toThrow(Schematic.NotFoundError);
});
@@ -7361,7 +7419,9 @@ describe("CompaniesClient", () => {
.build();
await expect(async () => {
- return await client.companies.getCompanyBillingEntity();
+ return await client.companies.getCompanyBillingEntity({
+ companyId: "company_id",
+ });
}).rejects.toThrow(Schematic.InternalServerError);
});
@@ -7572,7 +7632,9 @@ describe("CompaniesClient", () => {
.build();
await expect(async () => {
- return await client.companies.getBillingEntityChildSubscriptions();
+ return await client.companies.getBillingEntityChildSubscriptions({
+ companyId: "company_id",
+ });
}).rejects.toThrow(Schematic.BadRequestError);
});
@@ -7591,7 +7653,9 @@ describe("CompaniesClient", () => {
.build();
await expect(async () => {
- return await client.companies.getBillingEntityChildSubscriptions();
+ return await client.companies.getBillingEntityChildSubscriptions({
+ companyId: "company_id",
+ });
}).rejects.toThrow(Schematic.UnauthorizedError);
});
@@ -7610,7 +7674,9 @@ describe("CompaniesClient", () => {
.build();
await expect(async () => {
- return await client.companies.getBillingEntityChildSubscriptions();
+ return await client.companies.getBillingEntityChildSubscriptions({
+ companyId: "company_id",
+ });
}).rejects.toThrow(Schematic.ForbiddenError);
});
@@ -7629,7 +7695,9 @@ describe("CompaniesClient", () => {
.build();
await expect(async () => {
- return await client.companies.getBillingEntityChildSubscriptions();
+ return await client.companies.getBillingEntityChildSubscriptions({
+ companyId: "company_id",
+ });
}).rejects.toThrow(Schematic.NotFoundError);
});
@@ -7648,7 +7716,9 @@ describe("CompaniesClient", () => {
.build();
await expect(async () => {
- return await client.companies.getBillingEntityChildSubscriptions();
+ return await client.companies.getBillingEntityChildSubscriptions({
+ companyId: "company_id",
+ });
}).rejects.toThrow(Schematic.InternalServerError);
});
@@ -8397,6 +8467,7 @@ describe("CompaniesClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -8552,6 +8623,7 @@ describe("CompaniesClient", () => {
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
id: "id",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
send_invoice: true,
status: "active",
@@ -8645,6 +8717,7 @@ describe("CompaniesClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -8746,6 +8819,7 @@ describe("CompaniesClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -8905,6 +8979,7 @@ describe("CompaniesClient", () => {
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
id: "id",
+ planBillingSource: "custom_plan",
planId: "plan_id",
sendInvoice: true,
status: "active",
@@ -9004,6 +9079,7 @@ describe("CompaniesClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -10313,6 +10389,242 @@ describe("CompaniesClient", () => {
}).rejects.toThrow(Schematic.InternalServerError);
});
+ test("deleteEntityTraitDefinition (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { data: { deleted: true }, params: { key: "value" } };
+
+ server
+ .mockEndpoint()
+ .delete("/entity-trait-definitions/entity_trait_definition_id")
+ .respondWith()
+ .statusCode(200)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ const response = await client.companies.deleteEntityTraitDefinition("entity_trait_definition_id");
+ expect(response).toEqual({
+ data: {
+ deleted: true,
+ },
+ params: {
+ key: "value",
+ },
+ });
+ });
+
+ test("deleteEntityTraitDefinition (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { error: "error" };
+
+ server
+ .mockEndpoint()
+ .delete("/entity-trait-definitions/entity_trait_definition_id")
+ .respondWith()
+ .statusCode(400)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.companies.deleteEntityTraitDefinition("entity_trait_definition_id");
+ }).rejects.toThrow(Schematic.BadRequestError);
+ });
+
+ test("deleteEntityTraitDefinition (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { error: "error" };
+
+ server
+ .mockEndpoint()
+ .delete("/entity-trait-definitions/entity_trait_definition_id")
+ .respondWith()
+ .statusCode(401)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.companies.deleteEntityTraitDefinition("entity_trait_definition_id");
+ }).rejects.toThrow(Schematic.UnauthorizedError);
+ });
+
+ test("deleteEntityTraitDefinition (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { error: "error" };
+
+ server
+ .mockEndpoint()
+ .delete("/entity-trait-definitions/entity_trait_definition_id")
+ .respondWith()
+ .statusCode(403)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.companies.deleteEntityTraitDefinition("entity_trait_definition_id");
+ }).rejects.toThrow(Schematic.ForbiddenError);
+ });
+
+ test("deleteEntityTraitDefinition (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { error: "error" };
+
+ server
+ .mockEndpoint()
+ .delete("/entity-trait-definitions/entity_trait_definition_id")
+ .respondWith()
+ .statusCode(404)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.companies.deleteEntityTraitDefinition("entity_trait_definition_id");
+ }).rejects.toThrow(Schematic.NotFoundError);
+ });
+
+ test("deleteEntityTraitDefinition (6)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { error: "error" };
+
+ server
+ .mockEndpoint()
+ .delete("/entity-trait-definitions/entity_trait_definition_id")
+ .respondWith()
+ .statusCode(500)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.companies.deleteEntityTraitDefinition("entity_trait_definition_id");
+ }).rejects.toThrow(Schematic.InternalServerError);
+ });
+
+ test("getEntityTraitDefinitionUsage (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = {
+ data: {
+ checkout_field_config_count: 1000000,
+ company_override_count: 1000000,
+ feature_count: 1000000,
+ plan_entitlement_count: 1000000,
+ plan_trait_count: 1000000,
+ rule_condition_count: 1000000,
+ },
+ params: { key: "value" },
+ };
+
+ server
+ .mockEndpoint()
+ .get("/entity-trait-definitions/entity_trait_definition_id/usage")
+ .respondWith()
+ .statusCode(200)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ const response = await client.companies.getEntityTraitDefinitionUsage("entity_trait_definition_id");
+ expect(response).toEqual({
+ data: {
+ checkoutFieldConfigCount: 1000000,
+ companyOverrideCount: 1000000,
+ featureCount: 1000000,
+ planEntitlementCount: 1000000,
+ planTraitCount: 1000000,
+ ruleConditionCount: 1000000,
+ },
+ params: {
+ key: "value",
+ },
+ });
+ });
+
+ test("getEntityTraitDefinitionUsage (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { error: "error" };
+
+ server
+ .mockEndpoint()
+ .get("/entity-trait-definitions/entity_trait_definition_id/usage")
+ .respondWith()
+ .statusCode(401)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.companies.getEntityTraitDefinitionUsage("entity_trait_definition_id");
+ }).rejects.toThrow(Schematic.UnauthorizedError);
+ });
+
+ test("getEntityTraitDefinitionUsage (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { error: "error" };
+
+ server
+ .mockEndpoint()
+ .get("/entity-trait-definitions/entity_trait_definition_id/usage")
+ .respondWith()
+ .statusCode(403)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.companies.getEntityTraitDefinitionUsage("entity_trait_definition_id");
+ }).rejects.toThrow(Schematic.ForbiddenError);
+ });
+
+ test("getEntityTraitDefinitionUsage (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { error: "error" };
+
+ server
+ .mockEndpoint()
+ .get("/entity-trait-definitions/entity_trait_definition_id/usage")
+ .respondWith()
+ .statusCode(404)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.companies.getEntityTraitDefinitionUsage("entity_trait_definition_id");
+ }).rejects.toThrow(Schematic.NotFoundError);
+ });
+
+ test("getEntityTraitDefinitionUsage (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { error: "error" };
+
+ server
+ .mockEndpoint()
+ .get("/entity-trait-definitions/entity_trait_definition_id/usage")
+ .respondWith()
+ .statusCode(500)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.companies.getEntityTraitDefinitionUsage("entity_trait_definition_id");
+ }).rejects.toThrow(Schematic.InternalServerError);
+ });
+
test("countEntityTraitDefinitions (1)", async () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
@@ -10602,6 +10914,137 @@ describe("CompaniesClient", () => {
}).rejects.toThrow(Schematic.InternalServerError);
});
+ test("countEntityTraits (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = {
+ data: { count: 1000000 },
+ params: { definition_id: "definition_id", entity_type: "company", limit: 1000000, offset: 1000000 },
+ };
+
+ server
+ .mockEndpoint()
+ .get("/entity-traits/count")
+ .respondWith()
+ .statusCode(200)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ const response = await client.companies.countEntityTraits({
+ definitionId: "definition_id",
+ entityType: "company",
+ limit: 1000000,
+ offset: 1000000,
+ });
+ expect(response).toEqual({
+ data: {
+ count: 1000000,
+ },
+ params: {
+ definitionId: "definition_id",
+ entityType: "company",
+ limit: 1000000,
+ offset: 1000000,
+ },
+ });
+ });
+
+ test("countEntityTraits (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { error: "error" };
+
+ server
+ .mockEndpoint()
+ .get("/entity-traits/count")
+ .respondWith()
+ .statusCode(400)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.companies.countEntityTraits();
+ }).rejects.toThrow(Schematic.BadRequestError);
+ });
+
+ test("countEntityTraits (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { error: "error" };
+
+ server
+ .mockEndpoint()
+ .get("/entity-traits/count")
+ .respondWith()
+ .statusCode(401)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.companies.countEntityTraits();
+ }).rejects.toThrow(Schematic.UnauthorizedError);
+ });
+
+ test("countEntityTraits (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { error: "error" };
+
+ server
+ .mockEndpoint()
+ .get("/entity-traits/count")
+ .respondWith()
+ .statusCode(403)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.companies.countEntityTraits();
+ }).rejects.toThrow(Schematic.ForbiddenError);
+ });
+
+ test("countEntityTraits (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { error: "error" };
+
+ server
+ .mockEndpoint()
+ .get("/entity-traits/count")
+ .respondWith()
+ .statusCode(404)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.companies.countEntityTraits();
+ }).rejects.toThrow(Schematic.NotFoundError);
+ });
+
+ test("countEntityTraits (6)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { error: "error" };
+
+ server
+ .mockEndpoint()
+ .get("/entity-traits/count")
+ .respondWith()
+ .statusCode(500)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.companies.countEntityTraits();
+ }).rejects.toThrow(Schematic.InternalServerError);
+ });
+
test("listPlanChanges (1)", async () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
@@ -10687,7 +11130,6 @@ describe("CompaniesClient", () => {
company_ids: ["company_ids"],
limit: 1000000,
offset: 1000000,
- plan_ids: ["plan_ids"],
},
};
@@ -10698,7 +11140,6 @@ describe("CompaniesClient", () => {
basePlanAction: "fallback",
companyId: "company_id",
companyIds: ["company_ids"],
- planIds: ["plan_ids"],
limit: 1000000,
offset: 1000000,
});
@@ -10809,7 +11250,6 @@ describe("CompaniesClient", () => {
companyIds: ["company_ids"],
limit: 1000000,
offset: 1000000,
- planIds: ["plan_ids"],
},
});
});
diff --git a/tests/wire/components.test.ts b/tests/wire/components.test.ts
index 3074b470..34156cc5 100644
--- a/tests/wire/components.test.ts
+++ b/tests/wire/components.test.ts
@@ -1025,6 +1025,7 @@ describe("ComponentsClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -1177,6 +1178,7 @@ describe("ComponentsClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -1227,9 +1229,11 @@ describe("ComponentsClient", () => {
],
capabilities: { badge_visibility: true, checkout: true },
checkout_settings: {
+ bundle_purchase_behavior: "individual",
collect_address: true,
collect_email: true,
collect_phone: true,
+ collect_tax_id: true,
proration_behavior: "create_prorations",
tax_collection_enabled: true,
},
@@ -1242,6 +1246,7 @@ describe("ComponentsClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -1363,6 +1368,7 @@ describe("ComponentsClient", () => {
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
id: "id",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
send_invoice: true,
status: "active",
@@ -1441,6 +1447,7 @@ describe("ComponentsClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -1522,6 +1529,7 @@ describe("ComponentsClient", () => {
credit_bundles: [
{
bundle_type: "fixed",
+ compatible_plan_ids: ["compatible_plan_ids"],
created_at: "2024-01-15T09:30:00Z",
credit_id: "credit_id",
credit_name: "credit_name",
@@ -1739,6 +1747,7 @@ describe("ComponentsClient", () => {
auto_topup_enabled: true,
auto_topup_self_service: true,
can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_id: "credit_id",
@@ -2025,6 +2034,7 @@ describe("ComponentsClient", () => {
auto_topup_enabled: true,
auto_topup_self_service: true,
can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_id: "credit_id",
@@ -2370,6 +2380,7 @@ describe("ComponentsClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -2545,6 +2556,7 @@ describe("ComponentsClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -2606,9 +2618,11 @@ describe("ComponentsClient", () => {
checkout: true,
},
checkoutSettings: {
+ bundlePurchaseBehavior: "individual",
collectAddress: true,
collectEmail: true,
collectPhone: true,
+ collectTaxId: true,
prorationBehavior: "create_prorations",
taxCollectionEnabled: true,
},
@@ -2621,6 +2635,7 @@ describe("ComponentsClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -2744,6 +2759,7 @@ describe("ComponentsClient", () => {
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
id: "id",
+ planBillingSource: "custom_plan",
planId: "plan_id",
sendInvoice: true,
status: "active",
@@ -2828,6 +2844,7 @@ describe("ComponentsClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -2918,6 +2935,7 @@ describe("ComponentsClient", () => {
creditBundles: [
{
bundleType: "fixed",
+ compatiblePlanIds: ["compatible_plan_ids"],
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditId: "credit_id",
creditName: "credit_name",
@@ -3177,6 +3195,7 @@ describe("ComponentsClient", () => {
autoTopupEnabled: true,
autoTopupSelfService: true,
canBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditId: "credit_id",
@@ -3501,6 +3520,7 @@ describe("ComponentsClient", () => {
autoTopupEnabled: true,
autoTopupSelfService: true,
canBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditId: "credit_id",
diff --git a/tests/wire/componentspublic.test.ts b/tests/wire/componentspublic.test.ts
index b21b7149..cc206c60 100644
--- a/tests/wire/componentspublic.test.ts
+++ b/tests/wire/componentspublic.test.ts
@@ -117,6 +117,7 @@ describe("ComponentspublicClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -258,6 +259,7 @@ describe("ComponentspublicClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -447,6 +449,7 @@ describe("ComponentspublicClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -611,6 +614,7 @@ describe("ComponentspublicClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
diff --git a/tests/wire/credits.test.ts b/tests/wire/credits.test.ts
index bc8eca61..afaf883d 100644
--- a/tests/wire/credits.test.ts
+++ b/tests/wire/credits.test.ts
@@ -1118,6 +1118,7 @@ describe("CreditsClient", () => {
{
billing_invoice_id: "billing_invoice_id",
bundle_type: "fixed",
+ compatible_plan_ids: ["compatible_plan_ids"],
created_at: "2024-01-15T09:30:00Z",
credit_description: "credit_description",
credit_icon: "credit_icon",
@@ -1188,6 +1189,7 @@ describe("CreditsClient", () => {
{
billingInvoiceId: "billing_invoice_id",
bundleType: "fixed",
+ compatiblePlanIds: ["compatible_plan_ids"],
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditDescription: "credit_description",
creditIcon: "credit_icon",
@@ -1350,6 +1352,7 @@ describe("CreditsClient", () => {
data: {
billing_invoice_id: "billing_invoice_id",
bundle_type: "fixed",
+ compatible_plan_ids: ["compatible_plan_ids"],
created_at: "2024-01-15T09:30:00Z",
credit_description: "credit_description",
credit_icon: "credit_icon",
@@ -1414,6 +1417,7 @@ describe("CreditsClient", () => {
data: {
billingInvoiceId: "billing_invoice_id",
bundleType: "fixed",
+ compatiblePlanIds: ["compatible_plan_ids"],
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditDescription: "credit_description",
creditIcon: "credit_icon",
@@ -1472,7 +1476,7 @@ describe("CreditsClient", () => {
const rawRequestBody = {
bundle_name: "bundle_name",
credit_id: "credit_id",
- currency: "currency",
+ currency: "foo",
price_per_unit: 1000000,
};
const rawResponseBody = { error: "error" };
@@ -1490,7 +1494,7 @@ describe("CreditsClient", () => {
return await client.credits.createCreditBundle({
bundleName: "bundle_name",
creditId: "credit_id",
- currency: "currency",
+ currency: "foo",
pricePerUnit: 1000000,
});
}).rejects.toThrow(Schematic.BadRequestError);
@@ -1502,7 +1506,7 @@ describe("CreditsClient", () => {
const rawRequestBody = {
bundle_name: "bundle_name",
credit_id: "credit_id",
- currency: "currency",
+ currency: "foo",
price_per_unit: 1000000,
};
const rawResponseBody = { error: "error" };
@@ -1520,7 +1524,7 @@ describe("CreditsClient", () => {
return await client.credits.createCreditBundle({
bundleName: "bundle_name",
creditId: "credit_id",
- currency: "currency",
+ currency: "foo",
pricePerUnit: 1000000,
});
}).rejects.toThrow(Schematic.UnauthorizedError);
@@ -1532,7 +1536,7 @@ describe("CreditsClient", () => {
const rawRequestBody = {
bundle_name: "bundle_name",
credit_id: "credit_id",
- currency: "currency",
+ currency: "foo",
price_per_unit: 1000000,
};
const rawResponseBody = { error: "error" };
@@ -1550,7 +1554,7 @@ describe("CreditsClient", () => {
return await client.credits.createCreditBundle({
bundleName: "bundle_name",
creditId: "credit_id",
- currency: "currency",
+ currency: "foo",
pricePerUnit: 1000000,
});
}).rejects.toThrow(Schematic.ForbiddenError);
@@ -1562,7 +1566,7 @@ describe("CreditsClient", () => {
const rawRequestBody = {
bundle_name: "bundle_name",
credit_id: "credit_id",
- currency: "currency",
+ currency: "foo",
price_per_unit: 1000000,
};
const rawResponseBody = { error: "error" };
@@ -1580,7 +1584,7 @@ describe("CreditsClient", () => {
return await client.credits.createCreditBundle({
bundleName: "bundle_name",
creditId: "credit_id",
- currency: "currency",
+ currency: "foo",
pricePerUnit: 1000000,
});
}).rejects.toThrow(Schematic.NotFoundError);
@@ -1592,7 +1596,7 @@ describe("CreditsClient", () => {
const rawRequestBody = {
bundle_name: "bundle_name",
credit_id: "credit_id",
- currency: "currency",
+ currency: "foo",
price_per_unit: 1000000,
};
const rawResponseBody = { error: "error" };
@@ -1610,7 +1614,7 @@ describe("CreditsClient", () => {
return await client.credits.createCreditBundle({
bundleName: "bundle_name",
creditId: "credit_id",
- currency: "currency",
+ currency: "foo",
pricePerUnit: 1000000,
});
}).rejects.toThrow(Schematic.InternalServerError);
@@ -1624,6 +1628,7 @@ describe("CreditsClient", () => {
data: {
billing_invoice_id: "billing_invoice_id",
bundle_type: "fixed",
+ compatible_plan_ids: ["compatible_plan_ids"],
created_at: "2024-01-15T09:30:00Z",
credit_description: "credit_description",
credit_icon: "credit_icon",
@@ -1682,6 +1687,7 @@ describe("CreditsClient", () => {
data: {
billingInvoiceId: "billing_invoice_id",
bundleType: "fixed",
+ compatiblePlanIds: ["compatible_plan_ids"],
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditDescription: "credit_description",
creditIcon: "credit_icon",
@@ -1818,6 +1824,7 @@ describe("CreditsClient", () => {
data: {
billing_invoice_id: "billing_invoice_id",
bundle_type: "fixed",
+ compatible_plan_ids: ["compatible_plan_ids"],
created_at: "2024-01-15T09:30:00Z",
credit_description: "credit_description",
credit_icon: "credit_icon",
@@ -1880,6 +1887,7 @@ describe("CreditsClient", () => {
data: {
billingInvoiceId: "billing_invoice_id",
bundleType: "fixed",
+ compatiblePlanIds: ["compatible_plan_ids"],
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditDescription: "credit_description",
creditIcon: "credit_icon",
@@ -2447,6 +2455,7 @@ describe("CreditsClient", () => {
const rawResponseBody = {
data: {
company_id: "company_id",
+ company_license_id: "company_license_id",
company_name: "company_name",
created_at: "2024-01-15T09:30:00Z",
credit_icon: "credit_icon",
@@ -2456,6 +2465,7 @@ describe("CreditsClient", () => {
expires_at: "2024-01-15T09:30:00Z",
grant_reason: "adjustment",
id: "id",
+ license_name: "license_name",
plan_id: "plan_id",
plan_name: "plan_name",
price: {
@@ -2510,6 +2520,7 @@ describe("CreditsClient", () => {
expect(response).toEqual({
data: {
companyId: "company_id",
+ companyLicenseId: "company_license_id",
companyName: "company_name",
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditIcon: "credit_icon",
@@ -2519,6 +2530,7 @@ describe("CreditsClient", () => {
expiresAt: new Date("2024-01-15T09:30:00.000Z"),
grantReason: "adjustment",
id: "id",
+ licenseName: "license_name",
planId: "plan_id",
planName: "plan_name",
price: {
@@ -2675,6 +2687,7 @@ describe("CreditsClient", () => {
const rawResponseBody = {
data: {
company_id: "company_id",
+ company_license_id: "company_license_id",
company_name: "company_name",
created_at: "2024-01-15T09:30:00Z",
credit_icon: "credit_icon",
@@ -2684,6 +2697,7 @@ describe("CreditsClient", () => {
expires_at: "2024-01-15T09:30:00Z",
grant_reason: "adjustment",
id: "id",
+ license_name: "license_name",
plan_id: "plan_id",
plan_name: "plan_name",
price: {
@@ -2743,6 +2757,7 @@ describe("CreditsClient", () => {
expect(response).toEqual({
data: {
companyId: "company_id",
+ companyLicenseId: "company_license_id",
companyName: "company_name",
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditIcon: "credit_icon",
@@ -2752,6 +2767,7 @@ describe("CreditsClient", () => {
expiresAt: new Date("2024-01-15T09:30:00.000Z"),
grantReason: "adjustment",
id: "id",
+ licenseName: "license_name",
planId: "plan_id",
planName: "plan_name",
price: {
@@ -2999,7 +3015,9 @@ describe("CreditsClient", () => {
.build();
await expect(async () => {
- return await client.credits.countCompanyGrants();
+ return await client.credits.countCompanyGrants({
+ companyId: "company_id",
+ });
}).rejects.toThrow(Schematic.BadRequestError);
});
@@ -3018,7 +3036,9 @@ describe("CreditsClient", () => {
.build();
await expect(async () => {
- return await client.credits.countCompanyGrants();
+ return await client.credits.countCompanyGrants({
+ companyId: "company_id",
+ });
}).rejects.toThrow(Schematic.UnauthorizedError);
});
@@ -3037,7 +3057,9 @@ describe("CreditsClient", () => {
.build();
await expect(async () => {
- return await client.credits.countCompanyGrants();
+ return await client.credits.countCompanyGrants({
+ companyId: "company_id",
+ });
}).rejects.toThrow(Schematic.ForbiddenError);
});
@@ -3056,7 +3078,9 @@ describe("CreditsClient", () => {
.build();
await expect(async () => {
- return await client.credits.countCompanyGrants();
+ return await client.credits.countCompanyGrants({
+ companyId: "company_id",
+ });
}).rejects.toThrow(Schematic.NotFoundError);
});
@@ -3075,7 +3099,9 @@ describe("CreditsClient", () => {
.build();
await expect(async () => {
- return await client.credits.countCompanyGrants();
+ return await client.credits.countCompanyGrants({
+ companyId: "company_id",
+ });
}).rejects.toThrow(Schematic.InternalServerError);
});
@@ -3087,6 +3113,7 @@ describe("CreditsClient", () => {
data: [
{
company_id: "company_id",
+ company_license_id: "company_license_id",
company_name: "company_name",
created_at: "2024-01-15T09:30:00Z",
credit_icon: "credit_icon",
@@ -3096,6 +3123,7 @@ describe("CreditsClient", () => {
expires_at: "2024-01-15T09:30:00Z",
grant_reason: "adjustment",
id: "id",
+ license_name: "license_name",
plan_id: "plan_id",
plan_name: "plan_name",
price: {
@@ -3155,6 +3183,7 @@ describe("CreditsClient", () => {
data: [
{
companyId: "company_id",
+ companyLicenseId: "company_license_id",
companyName: "company_name",
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditIcon: "credit_icon",
@@ -3164,6 +3193,7 @@ describe("CreditsClient", () => {
expiresAt: new Date("2024-01-15T09:30:00.000Z"),
grantReason: "adjustment",
id: "id",
+ licenseName: "license_name",
planId: "plan_id",
planName: "plan_name",
price: {
@@ -3226,7 +3256,9 @@ describe("CreditsClient", () => {
.build();
await expect(async () => {
- return await client.credits.listCompanyGrants();
+ return await client.credits.listCompanyGrants({
+ companyId: "company_id",
+ });
}).rejects.toThrow(Schematic.BadRequestError);
});
@@ -3245,7 +3277,9 @@ describe("CreditsClient", () => {
.build();
await expect(async () => {
- return await client.credits.listCompanyGrants();
+ return await client.credits.listCompanyGrants({
+ companyId: "company_id",
+ });
}).rejects.toThrow(Schematic.UnauthorizedError);
});
@@ -3264,7 +3298,9 @@ describe("CreditsClient", () => {
.build();
await expect(async () => {
- return await client.credits.listCompanyGrants();
+ return await client.credits.listCompanyGrants({
+ companyId: "company_id",
+ });
}).rejects.toThrow(Schematic.ForbiddenError);
});
@@ -3283,7 +3319,9 @@ describe("CreditsClient", () => {
.build();
await expect(async () => {
- return await client.credits.listCompanyGrants();
+ return await client.credits.listCompanyGrants({
+ companyId: "company_id",
+ });
}).rejects.toThrow(Schematic.NotFoundError);
});
@@ -3302,7 +3340,9 @@ describe("CreditsClient", () => {
.build();
await expect(async () => {
- return await client.credits.listCompanyGrants();
+ return await client.credits.listCompanyGrants({
+ companyId: "company_id",
+ });
}).rejects.toThrow(Schematic.InternalServerError);
});
@@ -3445,6 +3485,7 @@ describe("CreditsClient", () => {
data: [
{
company_id: "company_id",
+ company_license_id: "company_license_id",
company_name: "company_name",
created_at: "2024-01-15T09:30:00Z",
credit_icon: "credit_icon",
@@ -3454,6 +3495,7 @@ describe("CreditsClient", () => {
expires_at: "2024-01-15T09:30:00Z",
grant_reason: "adjustment",
id: "id",
+ license_name: "license_name",
plan_id: "plan_id",
plan_name: "plan_name",
price: {
@@ -3512,6 +3554,7 @@ describe("CreditsClient", () => {
data: [
{
companyId: "company_id",
+ companyLicenseId: "company_license_id",
companyName: "company_name",
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditIcon: "credit_icon",
@@ -3521,6 +3564,7 @@ describe("CreditsClient", () => {
expiresAt: new Date("2024-01-15T09:30:00.000Z"),
grantReason: "adjustment",
id: "id",
+ licenseName: "license_name",
planId: "plan_id",
planName: "plan_name",
price: {
@@ -4173,6 +4217,7 @@ describe("CreditsClient", () => {
auto_topup_threshold_credits: 1000000,
auto_topup_threshold_percent: 1000000,
can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit: {
burn_strategy: "expiration_priority",
@@ -4250,6 +4295,7 @@ describe("CreditsClient", () => {
autoTopupThresholdCredits: 1000000,
autoTopupThresholdPercent: 1000000,
canBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
credit: {
burnStrategy: "expiration_priority",
@@ -4421,6 +4467,7 @@ describe("CreditsClient", () => {
auto_topup_threshold_credits: 1000000,
auto_topup_threshold_percent: 1000000,
can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit: {
burn_strategy: "expiration_priority",
@@ -4512,6 +4559,7 @@ describe("CreditsClient", () => {
autoTopupThresholdCredits: 1000000,
autoTopupThresholdPercent: 1000000,
canBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
credit: {
burnStrategy: "expiration_priority",
@@ -4763,6 +4811,7 @@ describe("CreditsClient", () => {
auto_topup_threshold_credits: 1000000,
auto_topup_threshold_percent: 1000000,
can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit: {
burn_strategy: "expiration_priority",
@@ -4847,6 +4896,7 @@ describe("CreditsClient", () => {
autoTopupThresholdCredits: 1000000,
autoTopupThresholdPercent: 1000000,
canBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
credit: {
burnStrategy: "expiration_priority",
@@ -5014,6 +5064,7 @@ describe("CreditsClient", () => {
auto_topup_threshold_credits: 1000000,
auto_topup_threshold_percent: 1000000,
can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit: {
burn_strategy: "expiration_priority",
@@ -5102,6 +5153,7 @@ describe("CreditsClient", () => {
autoTopupThresholdCredits: 1000000,
autoTopupThresholdPercent: 1000000,
canBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
credit: {
burnStrategy: "expiration_priority",
diff --git a/tests/wire/entitlements.test.ts b/tests/wire/entitlements.test.ts
index c1a12c1a..79964682 100644
--- a/tests/wire/entitlements.test.ts
+++ b/tests/wire/entitlements.test.ts
@@ -21,6 +21,7 @@ describe("EntitlementsClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -94,6 +95,7 @@ describe("EntitlementsClient", () => {
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
id: "id",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
send_invoice: true,
status: "active",
@@ -278,6 +280,7 @@ describe("EntitlementsClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -351,6 +354,7 @@ describe("EntitlementsClient", () => {
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
id: "id",
+ planBillingSource: "custom_plan",
planId: "plan_id",
sendInvoice: true,
status: "active",
@@ -602,6 +606,7 @@ describe("EntitlementsClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -723,6 +728,7 @@ describe("EntitlementsClient", () => {
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
id: "id",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
send_invoice: true,
status: "active",
@@ -801,6 +807,7 @@ describe("EntitlementsClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -950,6 +957,7 @@ describe("EntitlementsClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -1073,6 +1081,7 @@ describe("EntitlementsClient", () => {
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
id: "id",
+ planBillingSource: "custom_plan",
planId: "plan_id",
sendInvoice: true,
status: "active",
@@ -1157,6 +1166,7 @@ describe("EntitlementsClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -1426,6 +1436,7 @@ describe("EntitlementsClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -1547,6 +1558,7 @@ describe("EntitlementsClient", () => {
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
id: "id",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
send_invoice: true,
status: "active",
@@ -1625,6 +1637,7 @@ describe("EntitlementsClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -1769,6 +1782,7 @@ describe("EntitlementsClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -1892,6 +1906,7 @@ describe("EntitlementsClient", () => {
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
id: "id",
+ planBillingSource: "custom_plan",
planId: "plan_id",
sendInvoice: true,
status: "active",
@@ -1976,6 +1991,7 @@ describe("EntitlementsClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -2201,6 +2217,7 @@ describe("EntitlementsClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -2322,6 +2339,7 @@ describe("EntitlementsClient", () => {
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
id: "id",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
send_invoice: true,
status: "active",
@@ -2400,6 +2418,7 @@ describe("EntitlementsClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -2547,6 +2566,7 @@ describe("EntitlementsClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -2670,6 +2690,7 @@ describe("EntitlementsClient", () => {
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
id: "id",
+ planBillingSource: "custom_plan",
planId: "plan_id",
sendInvoice: true,
status: "active",
@@ -2754,6 +2775,7 @@ describe("EntitlementsClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -3288,6 +3310,7 @@ describe("EntitlementsClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -3361,6 +3384,7 @@ describe("EntitlementsClient", () => {
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
id: "id",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
send_invoice: true,
status: "active",
@@ -3683,6 +3707,7 @@ describe("EntitlementsClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -3756,6 +3781,7 @@ describe("EntitlementsClient", () => {
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
id: "id",
+ planBillingSource: "custom_plan",
planId: "plan_id",
sendInvoice: true,
status: "active",
@@ -4866,6 +4892,182 @@ describe("EntitlementsClient", () => {
}).rejects.toThrow(Schematic.InternalServerError);
});
+ test("listFeatureUsageHistory (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = {
+ data: [
+ {
+ company_id: "company_id",
+ event_subtype: "event_subtype",
+ feature_id: "feature_id",
+ period_end: "2024-01-15T09:30:00Z",
+ period_start: "2024-01-15T09:30:00Z",
+ usage: 1000000,
+ },
+ ],
+ params: {
+ company_ids: ["company_ids"],
+ end_time: "2024-01-15T09:30:00Z",
+ feature_ids: ["feature_ids"],
+ granularity: "daily",
+ limit: 1000000,
+ offset: 1000000,
+ start_time: "2024-01-15T09:30:00Z",
+ },
+ };
+
+ server
+ .mockEndpoint()
+ .get("/feature-usage-history")
+ .respondWith()
+ .statusCode(200)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ const response = await client.entitlements.listFeatureUsageHistory({
+ companyIds: ["company_ids"],
+ endTime: new Date("2024-01-15T09:30:00.000Z"),
+ featureIds: ["feature_ids"],
+ granularity: "daily",
+ startTime: new Date("2024-01-15T09:30:00.000Z"),
+ limit: 1000000,
+ offset: 1000000,
+ });
+ expect(response).toEqual({
+ data: [
+ {
+ companyId: "company_id",
+ eventSubtype: "event_subtype",
+ featureId: "feature_id",
+ periodEnd: new Date("2024-01-15T09:30:00.000Z"),
+ periodStart: new Date("2024-01-15T09:30:00.000Z"),
+ usage: 1000000,
+ },
+ ],
+ params: {
+ companyIds: ["company_ids"],
+ endTime: new Date("2024-01-15T09:30:00.000Z"),
+ featureIds: ["feature_ids"],
+ granularity: "daily",
+ limit: 1000000,
+ offset: 1000000,
+ startTime: new Date("2024-01-15T09:30:00.000Z"),
+ },
+ });
+ });
+
+ test("listFeatureUsageHistory (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { error: "error" };
+
+ server
+ .mockEndpoint()
+ .get("/feature-usage-history")
+ .respondWith()
+ .statusCode(400)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.entitlements.listFeatureUsageHistory({
+ endTime: new Date("2024-01-15T09:30:00.000Z"),
+ startTime: new Date("2024-01-15T09:30:00.000Z"),
+ });
+ }).rejects.toThrow(Schematic.BadRequestError);
+ });
+
+ test("listFeatureUsageHistory (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { error: "error" };
+
+ server
+ .mockEndpoint()
+ .get("/feature-usage-history")
+ .respondWith()
+ .statusCode(401)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.entitlements.listFeatureUsageHistory({
+ endTime: new Date("2024-01-15T09:30:00.000Z"),
+ startTime: new Date("2024-01-15T09:30:00.000Z"),
+ });
+ }).rejects.toThrow(Schematic.UnauthorizedError);
+ });
+
+ test("listFeatureUsageHistory (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { error: "error" };
+
+ server
+ .mockEndpoint()
+ .get("/feature-usage-history")
+ .respondWith()
+ .statusCode(403)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.entitlements.listFeatureUsageHistory({
+ endTime: new Date("2024-01-15T09:30:00.000Z"),
+ startTime: new Date("2024-01-15T09:30:00.000Z"),
+ });
+ }).rejects.toThrow(Schematic.ForbiddenError);
+ });
+
+ test("listFeatureUsageHistory (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { error: "error" };
+
+ server
+ .mockEndpoint()
+ .get("/feature-usage-history")
+ .respondWith()
+ .statusCode(404)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.entitlements.listFeatureUsageHistory({
+ endTime: new Date("2024-01-15T09:30:00.000Z"),
+ startTime: new Date("2024-01-15T09:30:00.000Z"),
+ });
+ }).rejects.toThrow(Schematic.NotFoundError);
+ });
+
+ test("listFeatureUsageHistory (6)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { error: "error" };
+
+ server
+ .mockEndpoint()
+ .get("/feature-usage-history")
+ .respondWith()
+ .statusCode(500)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.entitlements.listFeatureUsageHistory({
+ endTime: new Date("2024-01-15T09:30:00.000Z"),
+ startTime: new Date("2024-01-15T09:30:00.000Z"),
+ });
+ }).rejects.toThrow(Schematic.InternalServerError);
+ });
+
test("getFeatureUsageTimeSeries (1)", async () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
@@ -5200,6 +5402,7 @@ describe("EntitlementsClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -5273,6 +5476,7 @@ describe("EntitlementsClient", () => {
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
id: "id",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
send_invoice: true,
status: "active",
@@ -5494,6 +5698,7 @@ describe("EntitlementsClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -5567,6 +5772,7 @@ describe("EntitlementsClient", () => {
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
id: "id",
+ planBillingSource: "custom_plan",
planId: "plan_id",
sendInvoice: true,
status: "active",
@@ -9200,6 +9406,7 @@ describe("EntitlementsClient", () => {
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
id: "id",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
send_invoice: true,
status: "active",
@@ -9211,6 +9418,7 @@ describe("EntitlementsClient", () => {
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
id: "id",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
send_invoice: true,
status: "active",
@@ -10142,6 +10350,7 @@ describe("EntitlementsClient", () => {
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
id: "id",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
send_invoice: true,
status: "active",
@@ -10153,6 +10362,7 @@ describe("EntitlementsClient", () => {
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
id: "id",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
send_invoice: true,
status: "active",
@@ -11109,6 +11319,7 @@ describe("EntitlementsClient", () => {
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
id: "id",
+ planBillingSource: "custom_plan",
planId: "plan_id",
sendInvoice: true,
status: "active",
@@ -11120,6 +11331,7 @@ describe("EntitlementsClient", () => {
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
id: "id",
+ planBillingSource: "custom_plan",
planId: "plan_id",
sendInvoice: true,
status: "active",
@@ -12110,6 +12322,7 @@ describe("EntitlementsClient", () => {
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
id: "id",
+ planBillingSource: "custom_plan",
planId: "plan_id",
sendInvoice: true,
status: "active",
@@ -12121,6 +12334,7 @@ describe("EntitlementsClient", () => {
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
id: "id",
+ planBillingSource: "custom_plan",
planId: "plan_id",
sendInvoice: true,
status: "active",
diff --git a/tests/wire/planbundle.test.ts b/tests/wire/planbundle.test.ts
index f51a58cb..a9921539 100644
--- a/tests/wire/planbundle.test.ts
+++ b/tests/wire/planbundle.test.ts
@@ -8,7 +8,11 @@ describe("PlanbundleClient", () => {
test("createCustomPlanBundle (1)", async () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
- const rawRequestBody = { entitlements: [{ action: "create" }] };
+ const rawRequestBody = {
+ billing_product: { charge_type: "free", is_trialable: true },
+ entitlements: [{ action: "create" }],
+ plan: { company_id: "company_id", description: "description", name: "name" },
+ };
const rawResponseBody = {
data: {
billing_product: {
@@ -31,6 +35,7 @@ describe("PlanbundleClient", () => {
auto_topup_enabled: true,
auto_topup_self_service: true,
can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_id: "credit_id",
@@ -68,6 +73,19 @@ describe("PlanbundleClient", () => {
plan_type: "plan",
updated_at: "2024-01-15T09:30:00Z",
},
+ plan_version: {
+ created_at: "2024-01-15T09:30:00Z",
+ description: "description",
+ environment_id: "environment_id",
+ icon: "amber",
+ id: "id",
+ name: "name",
+ original_plan_id: "original_plan_id",
+ plan_type: "plan",
+ status: "published",
+ updated_at: "2024-01-15T09:30:00Z",
+ version: 1000000,
+ },
},
params: { key: "value" },
};
@@ -82,11 +100,20 @@ describe("PlanbundleClient", () => {
.build();
const response = await client.planbundle.createCustomPlanBundle({
+ billingProduct: {
+ chargeType: "free",
+ isTrialable: true,
+ },
entitlements: [
{
action: "create",
},
],
+ plan: {
+ companyId: "company_id",
+ description: "description",
+ name: "name",
+ },
});
expect(response).toEqual({
data: {
@@ -110,6 +137,7 @@ describe("PlanbundleClient", () => {
autoTopupEnabled: true,
autoTopupSelfService: true,
canBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditId: "credit_id",
@@ -157,6 +185,19 @@ describe("PlanbundleClient", () => {
planType: "plan",
updatedAt: new Date("2024-01-15T09:30:00.000Z"),
},
+ planVersion: {
+ createdAt: new Date("2024-01-15T09:30:00.000Z"),
+ description: "description",
+ environmentId: "environment_id",
+ icon: "amber",
+ id: "id",
+ name: "name",
+ originalPlanId: "original_plan_id",
+ planType: "plan",
+ status: "published",
+ updatedAt: new Date("2024-01-15T09:30:00.000Z"),
+ version: 1000000,
+ },
},
params: {
key: "value",
@@ -167,7 +208,11 @@ describe("PlanbundleClient", () => {
test("createCustomPlanBundle (2)", async () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
- const rawRequestBody = { entitlements: [{ action: "create" }, { action: "create" }] };
+ const rawRequestBody = {
+ billing_product: { charge_type: "free", is_trialable: true },
+ entitlements: [{ action: "create" }, { action: "create" }],
+ plan: { company_id: "company_id", description: "description", name: "x" },
+ };
const rawResponseBody = { error: "error" };
server
@@ -181,6 +226,10 @@ describe("PlanbundleClient", () => {
await expect(async () => {
return await client.planbundle.createCustomPlanBundle({
+ billingProduct: {
+ chargeType: "free",
+ isTrialable: true,
+ },
entitlements: [
{
action: "create",
@@ -189,6 +238,11 @@ describe("PlanbundleClient", () => {
action: "create",
},
],
+ plan: {
+ companyId: "company_id",
+ description: "description",
+ name: "x",
+ },
});
}).rejects.toThrow(Schematic.BadRequestError);
});
@@ -196,7 +250,11 @@ describe("PlanbundleClient", () => {
test("createCustomPlanBundle (3)", async () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
- const rawRequestBody = { entitlements: [{ action: "create" }, { action: "create" }] };
+ const rawRequestBody = {
+ billing_product: { charge_type: "free", is_trialable: true },
+ entitlements: [{ action: "create" }, { action: "create" }],
+ plan: { company_id: "company_id", description: "description", name: "x" },
+ };
const rawResponseBody = { error: "error" };
server
@@ -210,6 +268,10 @@ describe("PlanbundleClient", () => {
await expect(async () => {
return await client.planbundle.createCustomPlanBundle({
+ billingProduct: {
+ chargeType: "free",
+ isTrialable: true,
+ },
entitlements: [
{
action: "create",
@@ -218,6 +280,11 @@ describe("PlanbundleClient", () => {
action: "create",
},
],
+ plan: {
+ companyId: "company_id",
+ description: "description",
+ name: "x",
+ },
});
}).rejects.toThrow(Schematic.UnauthorizedError);
});
@@ -225,7 +292,11 @@ describe("PlanbundleClient", () => {
test("createCustomPlanBundle (4)", async () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
- const rawRequestBody = { entitlements: [{ action: "create" }, { action: "create" }] };
+ const rawRequestBody = {
+ billing_product: { charge_type: "free", is_trialable: true },
+ entitlements: [{ action: "create" }, { action: "create" }],
+ plan: { company_id: "company_id", description: "description", name: "x" },
+ };
const rawResponseBody = { error: "error" };
server
@@ -239,6 +310,10 @@ describe("PlanbundleClient", () => {
await expect(async () => {
return await client.planbundle.createCustomPlanBundle({
+ billingProduct: {
+ chargeType: "free",
+ isTrialable: true,
+ },
entitlements: [
{
action: "create",
@@ -247,6 +322,11 @@ describe("PlanbundleClient", () => {
action: "create",
},
],
+ plan: {
+ companyId: "company_id",
+ description: "description",
+ name: "x",
+ },
});
}).rejects.toThrow(Schematic.ForbiddenError);
});
@@ -254,7 +334,11 @@ describe("PlanbundleClient", () => {
test("createCustomPlanBundle (5)", async () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
- const rawRequestBody = { entitlements: [{ action: "create" }, { action: "create" }] };
+ const rawRequestBody = {
+ billing_product: { charge_type: "free", is_trialable: true },
+ entitlements: [{ action: "create" }, { action: "create" }],
+ plan: { company_id: "company_id", description: "description", name: "x" },
+ };
const rawResponseBody = { error: "error" };
server
@@ -268,6 +352,10 @@ describe("PlanbundleClient", () => {
await expect(async () => {
return await client.planbundle.createCustomPlanBundle({
+ billingProduct: {
+ chargeType: "free",
+ isTrialable: true,
+ },
entitlements: [
{
action: "create",
@@ -276,6 +364,11 @@ describe("PlanbundleClient", () => {
action: "create",
},
],
+ plan: {
+ companyId: "company_id",
+ description: "description",
+ name: "x",
+ },
});
}).rejects.toThrow(Schematic.NotFoundError);
});
@@ -283,7 +376,11 @@ describe("PlanbundleClient", () => {
test("createCustomPlanBundle (6)", async () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
- const rawRequestBody = { entitlements: [{ action: "create" }, { action: "create" }] };
+ const rawRequestBody = {
+ billing_product: { charge_type: "free", is_trialable: true },
+ entitlements: [{ action: "create" }, { action: "create" }],
+ plan: { company_id: "company_id", description: "description", name: "x" },
+ };
const rawResponseBody = { error: "error" };
server
@@ -297,6 +394,10 @@ describe("PlanbundleClient", () => {
await expect(async () => {
return await client.planbundle.createCustomPlanBundle({
+ billingProduct: {
+ chargeType: "free",
+ isTrialable: true,
+ },
entitlements: [
{
action: "create",
@@ -305,6 +406,11 @@ describe("PlanbundleClient", () => {
action: "create",
},
],
+ plan: {
+ companyId: "company_id",
+ description: "description",
+ name: "x",
+ },
});
}).rejects.toThrow(Schematic.InternalServerError);
});
@@ -312,7 +418,10 @@ describe("PlanbundleClient", () => {
test("createPlanBundle (1)", async () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
- const rawRequestBody = { entitlements: [{ action: "create" }] };
+ const rawRequestBody = {
+ entitlements: [{ action: "create" }],
+ plan: { description: "description", name: "name", plan_type: "plan" },
+ };
const rawResponseBody = {
data: {
billing_product: {
@@ -335,6 +444,7 @@ describe("PlanbundleClient", () => {
auto_topup_enabled: true,
auto_topup_self_service: true,
can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_id: "credit_id",
@@ -372,6 +482,19 @@ describe("PlanbundleClient", () => {
plan_type: "plan",
updated_at: "2024-01-15T09:30:00Z",
},
+ plan_version: {
+ created_at: "2024-01-15T09:30:00Z",
+ description: "description",
+ environment_id: "environment_id",
+ icon: "amber",
+ id: "id",
+ name: "name",
+ original_plan_id: "original_plan_id",
+ plan_type: "plan",
+ status: "published",
+ updated_at: "2024-01-15T09:30:00Z",
+ version: 1000000,
+ },
},
params: { key: "value" },
};
@@ -391,6 +514,11 @@ describe("PlanbundleClient", () => {
action: "create",
},
],
+ plan: {
+ description: "description",
+ name: "name",
+ planType: "plan",
+ },
});
expect(response).toEqual({
data: {
@@ -414,6 +542,7 @@ describe("PlanbundleClient", () => {
autoTopupEnabled: true,
autoTopupSelfService: true,
canBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditId: "credit_id",
@@ -461,6 +590,19 @@ describe("PlanbundleClient", () => {
planType: "plan",
updatedAt: new Date("2024-01-15T09:30:00.000Z"),
},
+ planVersion: {
+ createdAt: new Date("2024-01-15T09:30:00.000Z"),
+ description: "description",
+ environmentId: "environment_id",
+ icon: "amber",
+ id: "id",
+ name: "name",
+ originalPlanId: "original_plan_id",
+ planType: "plan",
+ status: "published",
+ updatedAt: new Date("2024-01-15T09:30:00.000Z"),
+ version: 1000000,
+ },
},
params: {
key: "value",
@@ -471,7 +613,10 @@ describe("PlanbundleClient", () => {
test("createPlanBundle (2)", async () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
- const rawRequestBody = { entitlements: [{ action: "create" }, { action: "create" }] };
+ const rawRequestBody = {
+ entitlements: [{ action: "create" }, { action: "create" }],
+ plan: { description: "description", name: "x", plan_type: "plan" },
+ };
const rawResponseBody = { error: "error" };
server
@@ -493,6 +638,11 @@ describe("PlanbundleClient", () => {
action: "create",
},
],
+ plan: {
+ description: "description",
+ name: "x",
+ planType: "plan",
+ },
});
}).rejects.toThrow(Schematic.BadRequestError);
});
@@ -500,7 +650,10 @@ describe("PlanbundleClient", () => {
test("createPlanBundle (3)", async () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
- const rawRequestBody = { entitlements: [{ action: "create" }, { action: "create" }] };
+ const rawRequestBody = {
+ entitlements: [{ action: "create" }, { action: "create" }],
+ plan: { description: "description", name: "x", plan_type: "plan" },
+ };
const rawResponseBody = { error: "error" };
server
@@ -522,6 +675,11 @@ describe("PlanbundleClient", () => {
action: "create",
},
],
+ plan: {
+ description: "description",
+ name: "x",
+ planType: "plan",
+ },
});
}).rejects.toThrow(Schematic.UnauthorizedError);
});
@@ -529,7 +687,10 @@ describe("PlanbundleClient", () => {
test("createPlanBundle (4)", async () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
- const rawRequestBody = { entitlements: [{ action: "create" }, { action: "create" }] };
+ const rawRequestBody = {
+ entitlements: [{ action: "create" }, { action: "create" }],
+ plan: { description: "description", name: "x", plan_type: "plan" },
+ };
const rawResponseBody = { error: "error" };
server
@@ -551,6 +712,11 @@ describe("PlanbundleClient", () => {
action: "create",
},
],
+ plan: {
+ description: "description",
+ name: "x",
+ planType: "plan",
+ },
});
}).rejects.toThrow(Schematic.ForbiddenError);
});
@@ -558,7 +724,10 @@ describe("PlanbundleClient", () => {
test("createPlanBundle (5)", async () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
- const rawRequestBody = { entitlements: [{ action: "create" }, { action: "create" }] };
+ const rawRequestBody = {
+ entitlements: [{ action: "create" }, { action: "create" }],
+ plan: { description: "description", name: "x", plan_type: "plan" },
+ };
const rawResponseBody = { error: "error" };
server
@@ -580,6 +749,11 @@ describe("PlanbundleClient", () => {
action: "create",
},
],
+ plan: {
+ description: "description",
+ name: "x",
+ planType: "plan",
+ },
});
}).rejects.toThrow(Schematic.NotFoundError);
});
@@ -587,7 +761,10 @@ describe("PlanbundleClient", () => {
test("createPlanBundle (6)", async () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
- const rawRequestBody = { entitlements: [{ action: "create" }, { action: "create" }] };
+ const rawRequestBody = {
+ entitlements: [{ action: "create" }, { action: "create" }],
+ plan: { description: "description", name: "x", plan_type: "plan" },
+ };
const rawResponseBody = { error: "error" };
server
@@ -609,6 +786,11 @@ describe("PlanbundleClient", () => {
action: "create",
},
],
+ plan: {
+ description: "description",
+ name: "x",
+ planType: "plan",
+ },
});
}).rejects.toThrow(Schematic.InternalServerError);
});
@@ -616,7 +798,7 @@ describe("PlanbundleClient", () => {
test("updatePlanBundle (1)", async () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
- const rawRequestBody = { entitlements: [{ action: "create" }] };
+ const rawRequestBody = { entitlements: [{ action: "create" }], plan: { name: "name" } };
const rawResponseBody = {
data: {
billing_product: {
@@ -639,6 +821,7 @@ describe("PlanbundleClient", () => {
auto_topup_enabled: true,
auto_topup_self_service: true,
can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_id: "credit_id",
@@ -676,25 +859,41 @@ describe("PlanbundleClient", () => {
plan_type: "plan",
updated_at: "2024-01-15T09:30:00Z",
},
+ plan_version: {
+ created_at: "2024-01-15T09:30:00Z",
+ description: "description",
+ environment_id: "environment_id",
+ icon: "amber",
+ id: "id",
+ name: "name",
+ original_plan_id: "original_plan_id",
+ plan_type: "plan",
+ status: "published",
+ updated_at: "2024-01-15T09:30:00Z",
+ version: 1000000,
+ },
},
params: { key: "value" },
};
server
.mockEndpoint()
- .put("/plan-bundles/plan_bundle_id")
+ .put("/plan-bundles/plan_id")
.jsonBody(rawRequestBody)
.respondWith()
.statusCode(200)
.jsonBody(rawResponseBody)
.build();
- const response = await client.planbundle.updatePlanBundle("plan_bundle_id", {
+ const response = await client.planbundle.updatePlanBundle("plan_id", {
entitlements: [
{
action: "create",
},
],
+ plan: {
+ name: "name",
+ },
});
expect(response).toEqual({
data: {
@@ -718,6 +917,7 @@ describe("PlanbundleClient", () => {
autoTopupEnabled: true,
autoTopupSelfService: true,
canBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditId: "credit_id",
@@ -765,6 +965,19 @@ describe("PlanbundleClient", () => {
planType: "plan",
updatedAt: new Date("2024-01-15T09:30:00.000Z"),
},
+ planVersion: {
+ createdAt: new Date("2024-01-15T09:30:00.000Z"),
+ description: "description",
+ environmentId: "environment_id",
+ icon: "amber",
+ id: "id",
+ name: "name",
+ originalPlanId: "original_plan_id",
+ planType: "plan",
+ status: "published",
+ updatedAt: new Date("2024-01-15T09:30:00.000Z"),
+ version: 1000000,
+ },
},
params: {
key: "value",
@@ -775,12 +988,12 @@ describe("PlanbundleClient", () => {
test("updatePlanBundle (2)", async () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
- const rawRequestBody = { entitlements: [{ action: "create" }, { action: "create" }] };
+ const rawRequestBody = { entitlements: [{ action: "create" }, { action: "create" }], plan: { name: "x" } };
const rawResponseBody = { error: "error" };
server
.mockEndpoint()
- .put("/plan-bundles/plan_bundle_id")
+ .put("/plan-bundles/plan_id")
.jsonBody(rawRequestBody)
.respondWith()
.statusCode(400)
@@ -788,7 +1001,7 @@ describe("PlanbundleClient", () => {
.build();
await expect(async () => {
- return await client.planbundle.updatePlanBundle("plan_bundle_id", {
+ return await client.planbundle.updatePlanBundle("plan_id", {
entitlements: [
{
action: "create",
@@ -797,6 +1010,9 @@ describe("PlanbundleClient", () => {
action: "create",
},
],
+ plan: {
+ name: "x",
+ },
});
}).rejects.toThrow(Schematic.BadRequestError);
});
@@ -804,12 +1020,12 @@ describe("PlanbundleClient", () => {
test("updatePlanBundle (3)", async () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
- const rawRequestBody = { entitlements: [{ action: "create" }, { action: "create" }] };
+ const rawRequestBody = { entitlements: [{ action: "create" }, { action: "create" }], plan: { name: "x" } };
const rawResponseBody = { error: "error" };
server
.mockEndpoint()
- .put("/plan-bundles/plan_bundle_id")
+ .put("/plan-bundles/plan_id")
.jsonBody(rawRequestBody)
.respondWith()
.statusCode(401)
@@ -817,7 +1033,7 @@ describe("PlanbundleClient", () => {
.build();
await expect(async () => {
- return await client.planbundle.updatePlanBundle("plan_bundle_id", {
+ return await client.planbundle.updatePlanBundle("plan_id", {
entitlements: [
{
action: "create",
@@ -826,6 +1042,9 @@ describe("PlanbundleClient", () => {
action: "create",
},
],
+ plan: {
+ name: "x",
+ },
});
}).rejects.toThrow(Schematic.UnauthorizedError);
});
@@ -833,12 +1052,12 @@ describe("PlanbundleClient", () => {
test("updatePlanBundle (4)", async () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
- const rawRequestBody = { entitlements: [{ action: "create" }, { action: "create" }] };
+ const rawRequestBody = { entitlements: [{ action: "create" }, { action: "create" }], plan: { name: "x" } };
const rawResponseBody = { error: "error" };
server
.mockEndpoint()
- .put("/plan-bundles/plan_bundle_id")
+ .put("/plan-bundles/plan_id")
.jsonBody(rawRequestBody)
.respondWith()
.statusCode(403)
@@ -846,7 +1065,7 @@ describe("PlanbundleClient", () => {
.build();
await expect(async () => {
- return await client.planbundle.updatePlanBundle("plan_bundle_id", {
+ return await client.planbundle.updatePlanBundle("plan_id", {
entitlements: [
{
action: "create",
@@ -855,6 +1074,9 @@ describe("PlanbundleClient", () => {
action: "create",
},
],
+ plan: {
+ name: "x",
+ },
});
}).rejects.toThrow(Schematic.ForbiddenError);
});
@@ -862,12 +1084,12 @@ describe("PlanbundleClient", () => {
test("updatePlanBundle (5)", async () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
- const rawRequestBody = { entitlements: [{ action: "create" }, { action: "create" }] };
+ const rawRequestBody = { entitlements: [{ action: "create" }, { action: "create" }], plan: { name: "x" } };
const rawResponseBody = { error: "error" };
server
.mockEndpoint()
- .put("/plan-bundles/plan_bundle_id")
+ .put("/plan-bundles/plan_id")
.jsonBody(rawRequestBody)
.respondWith()
.statusCode(404)
@@ -875,7 +1097,7 @@ describe("PlanbundleClient", () => {
.build();
await expect(async () => {
- return await client.planbundle.updatePlanBundle("plan_bundle_id", {
+ return await client.planbundle.updatePlanBundle("plan_id", {
entitlements: [
{
action: "create",
@@ -884,6 +1106,9 @@ describe("PlanbundleClient", () => {
action: "create",
},
],
+ plan: {
+ name: "x",
+ },
});
}).rejects.toThrow(Schematic.NotFoundError);
});
@@ -891,12 +1116,12 @@ describe("PlanbundleClient", () => {
test("updatePlanBundle (6)", async () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
- const rawRequestBody = { entitlements: [{ action: "create" }, { action: "create" }] };
+ const rawRequestBody = { entitlements: [{ action: "create" }, { action: "create" }], plan: { name: "x" } };
const rawResponseBody = { error: "error" };
server
.mockEndpoint()
- .put("/plan-bundles/plan_bundle_id")
+ .put("/plan-bundles/plan_id")
.jsonBody(rawRequestBody)
.respondWith()
.statusCode(500)
@@ -904,7 +1129,7 @@ describe("PlanbundleClient", () => {
.build();
await expect(async () => {
- return await client.planbundle.updatePlanBundle("plan_bundle_id", {
+ return await client.planbundle.updatePlanBundle("plan_id", {
entitlements: [
{
action: "create",
@@ -913,6 +1138,9 @@ describe("PlanbundleClient", () => {
action: "create",
},
],
+ plan: {
+ name: "x",
+ },
});
}).rejects.toThrow(Schematic.InternalServerError);
});
diff --git a/tests/wire/plangroups.test.ts b/tests/wire/plangroups.test.ts
index 08c35b62..618b053a 100644
--- a/tests/wire/plangroups.test.ts
+++ b/tests/wire/plangroups.test.ts
@@ -134,9 +134,11 @@ describe("PlangroupsClient", () => {
},
],
checkout_settings: {
+ bundle_purchase_behavior: "individual",
collect_address: true,
collect_email: true,
collect_phone: true,
+ collect_tax_id: true,
opt_in_enabled: true,
opt_in_text: "opt_in_text",
opt_in_title: "opt_in_title",
@@ -348,6 +350,7 @@ describe("PlangroupsClient", () => {
auto_topup_enabled: true,
auto_topup_self_service: true,
can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_id: "credit_id",
@@ -606,6 +609,7 @@ describe("PlangroupsClient", () => {
auto_topup_enabled: true,
auto_topup_self_service: true,
can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_id: "credit_id",
@@ -866,6 +870,7 @@ describe("PlangroupsClient", () => {
auto_topup_enabled: true,
auto_topup_self_service: true,
can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_id: "credit_id",
@@ -1291,6 +1296,7 @@ describe("PlangroupsClient", () => {
auto_topup_enabled: true,
auto_topup_self_service: true,
can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_id: "credit_id",
@@ -1551,9 +1557,11 @@ describe("PlangroupsClient", () => {
},
],
checkoutSettings: {
+ bundlePurchaseBehavior: "individual",
collectAddress: true,
collectEmail: true,
collectPhone: true,
+ collectTaxId: true,
optInEnabled: true,
optInText: "opt_in_text",
optInTitle: "opt_in_title",
@@ -1807,6 +1815,7 @@ describe("PlangroupsClient", () => {
autoTopupEnabled: true,
autoTopupSelfService: true,
canBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditId: "credit_id",
@@ -2103,6 +2112,7 @@ describe("PlangroupsClient", () => {
autoTopupEnabled: true,
autoTopupSelfService: true,
canBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditId: "credit_id",
@@ -2401,6 +2411,7 @@ describe("PlangroupsClient", () => {
autoTopupEnabled: true,
autoTopupSelfService: true,
canBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditId: "credit_id",
@@ -2899,6 +2910,7 @@ describe("PlangroupsClient", () => {
autoTopupEnabled: true,
autoTopupSelfService: true,
canBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditId: "credit_id",
@@ -3069,6 +3081,7 @@ describe("PlangroupsClient", () => {
checkout_collect_address: true,
checkout_collect_email: true,
checkout_collect_phone: true,
+ checkout_collect_tax_id: true,
enable_tax_collection: true,
opt_in_enabled: true,
ordered_add_ons: [{ plan_id: "plan_id" }],
@@ -3092,9 +3105,11 @@ describe("PlangroupsClient", () => {
],
add_on_ids: ["add_on_ids"],
checkout_settings: {
+ bundle_purchase_behavior: "individual",
collect_address: true,
collect_email: true,
collect_phone: true,
+ collect_tax_id: true,
opt_in_enabled: true,
opt_in_text: "opt_in_text",
opt_in_title: "opt_in_title",
@@ -3148,6 +3163,7 @@ describe("PlangroupsClient", () => {
checkoutCollectAddress: true,
checkoutCollectEmail: true,
checkoutCollectPhone: true,
+ checkoutCollectTaxId: true,
enableTaxCollection: true,
optInEnabled: true,
orderedAddOns: [
@@ -3186,9 +3202,11 @@ describe("PlangroupsClient", () => {
],
addOnIds: ["add_on_ids"],
checkoutSettings: {
+ bundlePurchaseBehavior: "individual",
collectAddress: true,
collectEmail: true,
collectPhone: true,
+ collectTaxId: true,
optInEnabled: true,
optInText: "opt_in_text",
optInTitle: "opt_in_title",
@@ -3247,6 +3265,7 @@ describe("PlangroupsClient", () => {
checkout_collect_address: true,
checkout_collect_email: true,
checkout_collect_phone: true,
+ checkout_collect_tax_id: true,
enable_tax_collection: true,
opt_in_enabled: true,
ordered_add_ons: [{ plan_id: "plan_id" }, { plan_id: "plan_id" }],
@@ -3280,6 +3299,7 @@ describe("PlangroupsClient", () => {
checkoutCollectAddress: true,
checkoutCollectEmail: true,
checkoutCollectPhone: true,
+ checkoutCollectTaxId: true,
enableTaxCollection: true,
optInEnabled: true,
orderedAddOns: [
@@ -3328,6 +3348,7 @@ describe("PlangroupsClient", () => {
checkout_collect_address: true,
checkout_collect_email: true,
checkout_collect_phone: true,
+ checkout_collect_tax_id: true,
enable_tax_collection: true,
opt_in_enabled: true,
ordered_add_ons: [{ plan_id: "plan_id" }, { plan_id: "plan_id" }],
@@ -3361,6 +3382,7 @@ describe("PlangroupsClient", () => {
checkoutCollectAddress: true,
checkoutCollectEmail: true,
checkoutCollectPhone: true,
+ checkoutCollectTaxId: true,
enableTaxCollection: true,
optInEnabled: true,
orderedAddOns: [
@@ -3409,6 +3431,7 @@ describe("PlangroupsClient", () => {
checkout_collect_address: true,
checkout_collect_email: true,
checkout_collect_phone: true,
+ checkout_collect_tax_id: true,
enable_tax_collection: true,
opt_in_enabled: true,
ordered_add_ons: [{ plan_id: "plan_id" }, { plan_id: "plan_id" }],
@@ -3442,6 +3465,7 @@ describe("PlangroupsClient", () => {
checkoutCollectAddress: true,
checkoutCollectEmail: true,
checkoutCollectPhone: true,
+ checkoutCollectTaxId: true,
enableTaxCollection: true,
optInEnabled: true,
orderedAddOns: [
@@ -3490,6 +3514,7 @@ describe("PlangroupsClient", () => {
checkout_collect_address: true,
checkout_collect_email: true,
checkout_collect_phone: true,
+ checkout_collect_tax_id: true,
enable_tax_collection: true,
opt_in_enabled: true,
ordered_add_ons: [{ plan_id: "plan_id" }, { plan_id: "plan_id" }],
@@ -3523,6 +3548,7 @@ describe("PlangroupsClient", () => {
checkoutCollectAddress: true,
checkoutCollectEmail: true,
checkoutCollectPhone: true,
+ checkoutCollectTaxId: true,
enableTaxCollection: true,
optInEnabled: true,
orderedAddOns: [
@@ -3571,6 +3597,7 @@ describe("PlangroupsClient", () => {
checkout_collect_address: true,
checkout_collect_email: true,
checkout_collect_phone: true,
+ checkout_collect_tax_id: true,
enable_tax_collection: true,
opt_in_enabled: true,
ordered_add_ons: [{ plan_id: "plan_id" }, { plan_id: "plan_id" }],
@@ -3604,6 +3631,7 @@ describe("PlangroupsClient", () => {
checkoutCollectAddress: true,
checkoutCollectEmail: true,
checkoutCollectPhone: true,
+ checkoutCollectTaxId: true,
enableTaxCollection: true,
optInEnabled: true,
orderedAddOns: [
@@ -3652,6 +3680,7 @@ describe("PlangroupsClient", () => {
checkout_collect_address: true,
checkout_collect_email: true,
checkout_collect_phone: true,
+ checkout_collect_tax_id: true,
enable_tax_collection: true,
opt_in_enabled: true,
ordered_add_ons: [{ plan_id: "plan_id" }],
@@ -3675,9 +3704,11 @@ describe("PlangroupsClient", () => {
],
add_on_ids: ["add_on_ids"],
checkout_settings: {
+ bundle_purchase_behavior: "individual",
collect_address: true,
collect_email: true,
collect_phone: true,
+ collect_tax_id: true,
opt_in_enabled: true,
opt_in_text: "opt_in_text",
opt_in_title: "opt_in_title",
@@ -3731,6 +3762,7 @@ describe("PlangroupsClient", () => {
checkoutCollectAddress: true,
checkoutCollectEmail: true,
checkoutCollectPhone: true,
+ checkoutCollectTaxId: true,
enableTaxCollection: true,
optInEnabled: true,
orderedAddOns: [
@@ -3769,9 +3801,11 @@ describe("PlangroupsClient", () => {
],
addOnIds: ["add_on_ids"],
checkoutSettings: {
+ bundlePurchaseBehavior: "individual",
collectAddress: true,
collectEmail: true,
collectPhone: true,
+ collectTaxId: true,
optInEnabled: true,
optInText: "opt_in_text",
optInTitle: "opt_in_title",
@@ -3830,6 +3864,7 @@ describe("PlangroupsClient", () => {
checkout_collect_address: true,
checkout_collect_email: true,
checkout_collect_phone: true,
+ checkout_collect_tax_id: true,
enable_tax_collection: true,
opt_in_enabled: true,
ordered_add_ons: [{ plan_id: "plan_id" }, { plan_id: "plan_id" }],
@@ -3863,6 +3898,7 @@ describe("PlangroupsClient", () => {
checkoutCollectAddress: true,
checkoutCollectEmail: true,
checkoutCollectPhone: true,
+ checkoutCollectTaxId: true,
enableTaxCollection: true,
optInEnabled: true,
orderedAddOns: [
@@ -3911,6 +3947,7 @@ describe("PlangroupsClient", () => {
checkout_collect_address: true,
checkout_collect_email: true,
checkout_collect_phone: true,
+ checkout_collect_tax_id: true,
enable_tax_collection: true,
opt_in_enabled: true,
ordered_add_ons: [{ plan_id: "plan_id" }, { plan_id: "plan_id" }],
@@ -3944,6 +3981,7 @@ describe("PlangroupsClient", () => {
checkoutCollectAddress: true,
checkoutCollectEmail: true,
checkoutCollectPhone: true,
+ checkoutCollectTaxId: true,
enableTaxCollection: true,
optInEnabled: true,
orderedAddOns: [
@@ -3992,6 +4030,7 @@ describe("PlangroupsClient", () => {
checkout_collect_address: true,
checkout_collect_email: true,
checkout_collect_phone: true,
+ checkout_collect_tax_id: true,
enable_tax_collection: true,
opt_in_enabled: true,
ordered_add_ons: [{ plan_id: "plan_id" }, { plan_id: "plan_id" }],
@@ -4025,6 +4064,7 @@ describe("PlangroupsClient", () => {
checkoutCollectAddress: true,
checkoutCollectEmail: true,
checkoutCollectPhone: true,
+ checkoutCollectTaxId: true,
enableTaxCollection: true,
optInEnabled: true,
orderedAddOns: [
@@ -4073,6 +4113,7 @@ describe("PlangroupsClient", () => {
checkout_collect_address: true,
checkout_collect_email: true,
checkout_collect_phone: true,
+ checkout_collect_tax_id: true,
enable_tax_collection: true,
opt_in_enabled: true,
ordered_add_ons: [{ plan_id: "plan_id" }, { plan_id: "plan_id" }],
@@ -4106,6 +4147,7 @@ describe("PlangroupsClient", () => {
checkoutCollectAddress: true,
checkoutCollectEmail: true,
checkoutCollectPhone: true,
+ checkoutCollectTaxId: true,
enableTaxCollection: true,
optInEnabled: true,
orderedAddOns: [
@@ -4154,6 +4196,7 @@ describe("PlangroupsClient", () => {
checkout_collect_address: true,
checkout_collect_email: true,
checkout_collect_phone: true,
+ checkout_collect_tax_id: true,
enable_tax_collection: true,
opt_in_enabled: true,
ordered_add_ons: [{ plan_id: "plan_id" }, { plan_id: "plan_id" }],
@@ -4187,6 +4230,7 @@ describe("PlangroupsClient", () => {
checkoutCollectAddress: true,
checkoutCollectEmail: true,
checkoutCollectPhone: true,
+ checkoutCollectTaxId: true,
enableTaxCollection: true,
optInEnabled: true,
orderedAddOns: [
diff --git a/tests/wire/planmigrations.test.ts b/tests/wire/planmigrations.test.ts
index 5b41ca0a..420d02b5 100644
--- a/tests/wire/planmigrations.test.ts
+++ b/tests/wire/planmigrations.test.ts
@@ -86,7 +86,9 @@ describe("PlanmigrationsClient", () => {
.build();
await expect(async () => {
- return await client.planmigrations.listCompanyMigrations();
+ return await client.planmigrations.listCompanyMigrations({
+ migrationId: "migration_id",
+ });
}).rejects.toThrow(Schematic.BadRequestError);
});
@@ -105,7 +107,9 @@ describe("PlanmigrationsClient", () => {
.build();
await expect(async () => {
- return await client.planmigrations.listCompanyMigrations();
+ return await client.planmigrations.listCompanyMigrations({
+ migrationId: "migration_id",
+ });
}).rejects.toThrow(Schematic.UnauthorizedError);
});
@@ -124,7 +128,9 @@ describe("PlanmigrationsClient", () => {
.build();
await expect(async () => {
- return await client.planmigrations.listCompanyMigrations();
+ return await client.planmigrations.listCompanyMigrations({
+ migrationId: "migration_id",
+ });
}).rejects.toThrow(Schematic.ForbiddenError);
});
@@ -143,7 +149,9 @@ describe("PlanmigrationsClient", () => {
.build();
await expect(async () => {
- return await client.planmigrations.listCompanyMigrations();
+ return await client.planmigrations.listCompanyMigrations({
+ migrationId: "migration_id",
+ });
}).rejects.toThrow(Schematic.NotFoundError);
});
@@ -162,7 +170,9 @@ describe("PlanmigrationsClient", () => {
.build();
await expect(async () => {
- return await client.planmigrations.listCompanyMigrations();
+ return await client.planmigrations.listCompanyMigrations({
+ migrationId: "migration_id",
+ });
}).rejects.toThrow(Schematic.InternalServerError);
});
@@ -366,7 +376,9 @@ describe("PlanmigrationsClient", () => {
.build();
await expect(async () => {
- return await client.planmigrations.countCompanyMigrations();
+ return await client.planmigrations.countCompanyMigrations({
+ migrationId: "migration_id",
+ });
}).rejects.toThrow(Schematic.BadRequestError);
});
@@ -385,7 +397,9 @@ describe("PlanmigrationsClient", () => {
.build();
await expect(async () => {
- return await client.planmigrations.countCompanyMigrations();
+ return await client.planmigrations.countCompanyMigrations({
+ migrationId: "migration_id",
+ });
}).rejects.toThrow(Schematic.UnauthorizedError);
});
@@ -404,7 +418,9 @@ describe("PlanmigrationsClient", () => {
.build();
await expect(async () => {
- return await client.planmigrations.countCompanyMigrations();
+ return await client.planmigrations.countCompanyMigrations({
+ migrationId: "migration_id",
+ });
}).rejects.toThrow(Schematic.ForbiddenError);
});
@@ -423,7 +439,9 @@ describe("PlanmigrationsClient", () => {
.build();
await expect(async () => {
- return await client.planmigrations.countCompanyMigrations();
+ return await client.planmigrations.countCompanyMigrations({
+ migrationId: "migration_id",
+ });
}).rejects.toThrow(Schematic.NotFoundError);
});
@@ -442,7 +460,9 @@ describe("PlanmigrationsClient", () => {
.build();
await expect(async () => {
- return await client.planmigrations.countCompanyMigrations();
+ return await client.planmigrations.countCompanyMigrations({
+ migrationId: "migration_id",
+ });
}).rejects.toThrow(Schematic.InternalServerError);
});
@@ -463,6 +483,7 @@ describe("PlanmigrationsClient", () => {
plan_version_id_from: "plan_version_id_from",
plan_version_id_to: "plan_version_id_to",
plan_version_ids_from: ["plan_version_ids_from"],
+ proration_behavior: "always_invoice",
skipped_companies: 1000000,
started_at: "2024-01-15T09:30:00Z",
status: "completed",
@@ -501,6 +522,7 @@ describe("PlanmigrationsClient", () => {
planVersionIdFrom: "plan_version_id_from",
planVersionIdTo: "plan_version_id_to",
planVersionIdsFrom: ["plan_version_ids_from"],
+ prorationBehavior: "always_invoice",
skippedCompanies: 1000000,
startedAt: new Date("2024-01-15T09:30:00.000Z"),
status: "completed",
@@ -533,7 +555,9 @@ describe("PlanmigrationsClient", () => {
.build();
await expect(async () => {
- return await client.planmigrations.listMigrations();
+ return await client.planmigrations.listMigrations({
+ planVersionId: "plan_version_id",
+ });
}).rejects.toThrow(Schematic.BadRequestError);
});
@@ -552,7 +576,9 @@ describe("PlanmigrationsClient", () => {
.build();
await expect(async () => {
- return await client.planmigrations.listMigrations();
+ return await client.planmigrations.listMigrations({
+ planVersionId: "plan_version_id",
+ });
}).rejects.toThrow(Schematic.UnauthorizedError);
});
@@ -571,7 +597,9 @@ describe("PlanmigrationsClient", () => {
.build();
await expect(async () => {
- return await client.planmigrations.listMigrations();
+ return await client.planmigrations.listMigrations({
+ planVersionId: "plan_version_id",
+ });
}).rejects.toThrow(Schematic.ForbiddenError);
});
@@ -590,7 +618,9 @@ describe("PlanmigrationsClient", () => {
.build();
await expect(async () => {
- return await client.planmigrations.listMigrations();
+ return await client.planmigrations.listMigrations({
+ planVersionId: "plan_version_id",
+ });
}).rejects.toThrow(Schematic.NotFoundError);
});
@@ -609,7 +639,9 @@ describe("PlanmigrationsClient", () => {
.build();
await expect(async () => {
- return await client.planmigrations.listMigrations();
+ return await client.planmigrations.listMigrations({
+ planVersionId: "plan_version_id",
+ });
}).rejects.toThrow(Schematic.InternalServerError);
});
@@ -617,11 +649,8 @@ describe("PlanmigrationsClient", () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
const rawRequestBody = {
- company_ids: ["company_ids"],
- excluded_company_ids: ["excluded_company_ids"],
plan_id: "plan_id",
plan_version_id_to: "plan_version_id_to",
- plan_version_ids_from: ["plan_version_ids_from"],
strategy: "immediate",
target_plan_type: "plan",
};
@@ -637,6 +666,7 @@ describe("PlanmigrationsClient", () => {
plan_version_id_from: "plan_version_id_from",
plan_version_id_to: "plan_version_id_to",
plan_version_ids_from: ["plan_version_ids_from"],
+ proration_behavior: "always_invoice",
skipped_companies: 1000000,
started_at: "2024-01-15T09:30:00Z",
status: "completed",
@@ -657,11 +687,8 @@ describe("PlanmigrationsClient", () => {
.build();
const response = await client.planmigrations.createMigration({
- companyIds: ["company_ids"],
- excludedCompanyIds: ["excluded_company_ids"],
planId: "plan_id",
planVersionIdTo: "plan_version_id_to",
- planVersionIdsFrom: ["plan_version_ids_from"],
strategy: "immediate",
targetPlanType: "plan",
});
@@ -677,6 +704,7 @@ describe("PlanmigrationsClient", () => {
planVersionIdFrom: "plan_version_id_from",
planVersionIdTo: "plan_version_id_to",
planVersionIdsFrom: ["plan_version_ids_from"],
+ prorationBehavior: "always_invoice",
skippedCompanies: 1000000,
startedAt: new Date("2024-01-15T09:30:00.000Z"),
status: "completed",
@@ -694,11 +722,8 @@ describe("PlanmigrationsClient", () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
const rawRequestBody = {
- company_ids: ["company_ids", "company_ids"],
- excluded_company_ids: ["excluded_company_ids", "excluded_company_ids"],
plan_id: "plan_id",
plan_version_id_to: "plan_version_id_to",
- plan_version_ids_from: ["plan_version_ids_from", "plan_version_ids_from"],
strategy: "immediate",
target_plan_type: "plan",
};
@@ -715,11 +740,8 @@ describe("PlanmigrationsClient", () => {
await expect(async () => {
return await client.planmigrations.createMigration({
- companyIds: ["company_ids", "company_ids"],
- excludedCompanyIds: ["excluded_company_ids", "excluded_company_ids"],
planId: "plan_id",
planVersionIdTo: "plan_version_id_to",
- planVersionIdsFrom: ["plan_version_ids_from", "plan_version_ids_from"],
strategy: "immediate",
targetPlanType: "plan",
});
@@ -730,11 +752,8 @@ describe("PlanmigrationsClient", () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
const rawRequestBody = {
- company_ids: ["company_ids", "company_ids"],
- excluded_company_ids: ["excluded_company_ids", "excluded_company_ids"],
plan_id: "plan_id",
plan_version_id_to: "plan_version_id_to",
- plan_version_ids_from: ["plan_version_ids_from", "plan_version_ids_from"],
strategy: "immediate",
target_plan_type: "plan",
};
@@ -751,11 +770,8 @@ describe("PlanmigrationsClient", () => {
await expect(async () => {
return await client.planmigrations.createMigration({
- companyIds: ["company_ids", "company_ids"],
- excludedCompanyIds: ["excluded_company_ids", "excluded_company_ids"],
planId: "plan_id",
planVersionIdTo: "plan_version_id_to",
- planVersionIdsFrom: ["plan_version_ids_from", "plan_version_ids_from"],
strategy: "immediate",
targetPlanType: "plan",
});
@@ -766,11 +782,8 @@ describe("PlanmigrationsClient", () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
const rawRequestBody = {
- company_ids: ["company_ids", "company_ids"],
- excluded_company_ids: ["excluded_company_ids", "excluded_company_ids"],
plan_id: "plan_id",
plan_version_id_to: "plan_version_id_to",
- plan_version_ids_from: ["plan_version_ids_from", "plan_version_ids_from"],
strategy: "immediate",
target_plan_type: "plan",
};
@@ -787,11 +800,8 @@ describe("PlanmigrationsClient", () => {
await expect(async () => {
return await client.planmigrations.createMigration({
- companyIds: ["company_ids", "company_ids"],
- excludedCompanyIds: ["excluded_company_ids", "excluded_company_ids"],
planId: "plan_id",
planVersionIdTo: "plan_version_id_to",
- planVersionIdsFrom: ["plan_version_ids_from", "plan_version_ids_from"],
strategy: "immediate",
targetPlanType: "plan",
});
@@ -802,11 +812,8 @@ describe("PlanmigrationsClient", () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
const rawRequestBody = {
- company_ids: ["company_ids", "company_ids"],
- excluded_company_ids: ["excluded_company_ids", "excluded_company_ids"],
plan_id: "plan_id",
plan_version_id_to: "plan_version_id_to",
- plan_version_ids_from: ["plan_version_ids_from", "plan_version_ids_from"],
strategy: "immediate",
target_plan_type: "plan",
};
@@ -823,11 +830,8 @@ describe("PlanmigrationsClient", () => {
await expect(async () => {
return await client.planmigrations.createMigration({
- companyIds: ["company_ids", "company_ids"],
- excludedCompanyIds: ["excluded_company_ids", "excluded_company_ids"],
planId: "plan_id",
planVersionIdTo: "plan_version_id_to",
- planVersionIdsFrom: ["plan_version_ids_from", "plan_version_ids_from"],
strategy: "immediate",
targetPlanType: "plan",
});
@@ -838,11 +842,8 @@ describe("PlanmigrationsClient", () => {
const server = mockServerPool.createServer();
const client = new SchematicClient({ maxRetries: 0, apiKey: "test", environment: server.baseUrl });
const rawRequestBody = {
- company_ids: ["company_ids", "company_ids"],
- excluded_company_ids: ["excluded_company_ids", "excluded_company_ids"],
plan_id: "plan_id",
plan_version_id_to: "plan_version_id_to",
- plan_version_ids_from: ["plan_version_ids_from", "plan_version_ids_from"],
strategy: "immediate",
target_plan_type: "plan",
};
@@ -859,11 +860,8 @@ describe("PlanmigrationsClient", () => {
await expect(async () => {
return await client.planmigrations.createMigration({
- companyIds: ["company_ids", "company_ids"],
- excludedCompanyIds: ["excluded_company_ids", "excluded_company_ids"],
planId: "plan_id",
planVersionIdTo: "plan_version_id_to",
- planVersionIdsFrom: ["plan_version_ids_from", "plan_version_ids_from"],
strategy: "immediate",
targetPlanType: "plan",
});
@@ -886,6 +884,7 @@ describe("PlanmigrationsClient", () => {
plan_version_id_from: "plan_version_id_from",
plan_version_id_to: "plan_version_id_to",
plan_version_ids_from: ["plan_version_ids_from"],
+ proration_behavior: "always_invoice",
skipped_companies: 1000000,
started_at: "2024-01-15T09:30:00Z",
status: "completed",
@@ -917,6 +916,7 @@ describe("PlanmigrationsClient", () => {
planVersionIdFrom: "plan_version_id_from",
planVersionIdTo: "plan_version_id_to",
planVersionIdsFrom: ["plan_version_ids_from"],
+ prorationBehavior: "always_invoice",
skippedCompanies: 1000000,
startedAt: new Date("2024-01-15T09:30:00.000Z"),
status: "completed",
@@ -1022,6 +1022,7 @@ describe("PlanmigrationsClient", () => {
plan_version_id_from: "plan_version_id_from",
plan_version_id_to: "plan_version_id_to",
plan_version_ids_from: ["plan_version_ids_from"],
+ proration_behavior: "always_invoice",
skipped_companies: 1000000,
started_at: "2024-01-15T09:30:00Z",
status: "completed",
@@ -1056,6 +1057,7 @@ describe("PlanmigrationsClient", () => {
planVersionIdFrom: "plan_version_id_from",
planVersionIdTo: "plan_version_id_to",
planVersionIdsFrom: ["plan_version_ids_from"],
+ prorationBehavior: "always_invoice",
skippedCompanies: 1000000,
startedAt: new Date("2024-01-15T09:30:00.000Z"),
status: "completed",
@@ -1230,7 +1232,9 @@ describe("PlanmigrationsClient", () => {
.build();
await expect(async () => {
- return await client.planmigrations.countMigrations();
+ return await client.planmigrations.countMigrations({
+ planVersionId: "plan_version_id",
+ });
}).rejects.toThrow(Schematic.BadRequestError);
});
@@ -1249,7 +1253,9 @@ describe("PlanmigrationsClient", () => {
.build();
await expect(async () => {
- return await client.planmigrations.countMigrations();
+ return await client.planmigrations.countMigrations({
+ planVersionId: "plan_version_id",
+ });
}).rejects.toThrow(Schematic.UnauthorizedError);
});
@@ -1268,7 +1274,9 @@ describe("PlanmigrationsClient", () => {
.build();
await expect(async () => {
- return await client.planmigrations.countMigrations();
+ return await client.planmigrations.countMigrations({
+ planVersionId: "plan_version_id",
+ });
}).rejects.toThrow(Schematic.ForbiddenError);
});
@@ -1287,7 +1295,9 @@ describe("PlanmigrationsClient", () => {
.build();
await expect(async () => {
- return await client.planmigrations.countMigrations();
+ return await client.planmigrations.countMigrations({
+ planVersionId: "plan_version_id",
+ });
}).rejects.toThrow(Schematic.NotFoundError);
});
@@ -1306,7 +1316,9 @@ describe("PlanmigrationsClient", () => {
.build();
await expect(async () => {
- return await client.planmigrations.countMigrations();
+ return await client.planmigrations.countMigrations({
+ planVersionId: "plan_version_id",
+ });
}).rejects.toThrow(Schematic.InternalServerError);
});
@@ -1314,7 +1326,6 @@ describe("PlanmigrationsClient", () => {
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",
@@ -1327,8 +1338,10 @@ describe("PlanmigrationsClient", () => {
has_billing_changes: true,
has_custom_pricing: true,
will_update_subscription: true,
+ would_fail: true,
},
],
+ has_billing_changes: true,
},
params: { key: "value" },
};
@@ -1343,7 +1356,6 @@ describe("PlanmigrationsClient", () => {
.build();
const response = await client.planmigrations.previewMigration({
- companyIds: ["company_ids"],
planId: "plan_id",
planVersionIdTo: "plan_version_id_to",
targetPlanType: "plan",
@@ -1356,8 +1368,10 @@ describe("PlanmigrationsClient", () => {
hasBillingChanges: true,
hasCustomPricing: true,
willUpdateSubscription: true,
+ wouldFail: true,
},
],
+ hasBillingChanges: true,
},
params: {
key: "value",
@@ -1369,7 +1383,6 @@ describe("PlanmigrationsClient", () => {
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",
@@ -1387,7 +1400,6 @@ describe("PlanmigrationsClient", () => {
await expect(async () => {
return await client.planmigrations.previewMigration({
- companyIds: ["company_ids", "company_ids"],
planId: "plan_id",
planVersionIdTo: "plan_version_id_to",
targetPlanType: "plan",
@@ -1399,7 +1411,6 @@ describe("PlanmigrationsClient", () => {
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",
@@ -1417,7 +1428,6 @@ describe("PlanmigrationsClient", () => {
await expect(async () => {
return await client.planmigrations.previewMigration({
- companyIds: ["company_ids", "company_ids"],
planId: "plan_id",
planVersionIdTo: "plan_version_id_to",
targetPlanType: "plan",
@@ -1429,7 +1439,6 @@ describe("PlanmigrationsClient", () => {
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",
@@ -1447,7 +1456,6 @@ describe("PlanmigrationsClient", () => {
await expect(async () => {
return await client.planmigrations.previewMigration({
- companyIds: ["company_ids", "company_ids"],
planId: "plan_id",
planVersionIdTo: "plan_version_id_to",
targetPlanType: "plan",
@@ -1459,7 +1467,6 @@ describe("PlanmigrationsClient", () => {
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",
@@ -1477,7 +1484,6 @@ describe("PlanmigrationsClient", () => {
await expect(async () => {
return await client.planmigrations.previewMigration({
- companyIds: ["company_ids", "company_ids"],
planId: "plan_id",
planVersionIdTo: "plan_version_id_to",
targetPlanType: "plan",
@@ -1489,7 +1495,6 @@ describe("PlanmigrationsClient", () => {
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",
@@ -1507,7 +1512,6 @@ describe("PlanmigrationsClient", () => {
await expect(async () => {
return await client.planmigrations.previewMigration({
- companyIds: ["company_ids", "company_ids"],
planId: "plan_id",
planVersionIdTo: "plan_version_id_to",
targetPlanType: "plan",
diff --git a/tests/wire/plans.test.ts b/tests/wire/plans.test.ts
index 32c60c28..8880b979 100644
--- a/tests/wire/plans.test.ts
+++ b/tests/wire/plans.test.ts
@@ -19,6 +19,7 @@ describe("PlansClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -174,6 +175,7 @@ describe("PlansClient", () => {
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
id: "id",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
send_invoice: true,
status: "active",
@@ -267,6 +269,7 @@ describe("PlansClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -345,14 +348,14 @@ describe("PlansClient", () => {
server
.mockEndpoint()
- .put("/company-plans/company_plan_id")
+ .put("/company-plans/company_id")
.jsonBody(rawRequestBody)
.respondWith()
.statusCode(200)
.jsonBody(rawResponseBody)
.build();
- const response = await client.plans.updateCompanyPlans("company_plan_id", {
+ const response = await client.plans.updateCompanyPlans("company_id", {
addOnIds: ["add_on_ids"],
});
expect(response).toEqual({
@@ -365,6 +368,7 @@ describe("PlansClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -524,6 +528,7 @@ describe("PlansClient", () => {
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
id: "id",
+ planBillingSource: "custom_plan",
planId: "plan_id",
sendInvoice: true,
status: "active",
@@ -623,6 +628,7 @@ describe("PlansClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -717,7 +723,7 @@ describe("PlansClient", () => {
server
.mockEndpoint()
- .put("/company-plans/company_plan_id")
+ .put("/company-plans/company_id")
.jsonBody(rawRequestBody)
.respondWith()
.statusCode(400)
@@ -725,7 +731,7 @@ describe("PlansClient", () => {
.build();
await expect(async () => {
- return await client.plans.updateCompanyPlans("company_plan_id", {
+ return await client.plans.updateCompanyPlans("company_id", {
addOnIds: ["add_on_ids", "add_on_ids"],
});
}).rejects.toThrow(Schematic.BadRequestError);
@@ -739,7 +745,7 @@ describe("PlansClient", () => {
server
.mockEndpoint()
- .put("/company-plans/company_plan_id")
+ .put("/company-plans/company_id")
.jsonBody(rawRequestBody)
.respondWith()
.statusCode(401)
@@ -747,7 +753,7 @@ describe("PlansClient", () => {
.build();
await expect(async () => {
- return await client.plans.updateCompanyPlans("company_plan_id", {
+ return await client.plans.updateCompanyPlans("company_id", {
addOnIds: ["add_on_ids", "add_on_ids"],
});
}).rejects.toThrow(Schematic.UnauthorizedError);
@@ -761,7 +767,7 @@ describe("PlansClient", () => {
server
.mockEndpoint()
- .put("/company-plans/company_plan_id")
+ .put("/company-plans/company_id")
.jsonBody(rawRequestBody)
.respondWith()
.statusCode(403)
@@ -769,7 +775,7 @@ describe("PlansClient", () => {
.build();
await expect(async () => {
- return await client.plans.updateCompanyPlans("company_plan_id", {
+ return await client.plans.updateCompanyPlans("company_id", {
addOnIds: ["add_on_ids", "add_on_ids"],
});
}).rejects.toThrow(Schematic.ForbiddenError);
@@ -783,7 +789,7 @@ describe("PlansClient", () => {
server
.mockEndpoint()
- .put("/company-plans/company_plan_id")
+ .put("/company-plans/company_id")
.jsonBody(rawRequestBody)
.respondWith()
.statusCode(404)
@@ -791,7 +797,7 @@ describe("PlansClient", () => {
.build();
await expect(async () => {
- return await client.plans.updateCompanyPlans("company_plan_id", {
+ return await client.plans.updateCompanyPlans("company_id", {
addOnIds: ["add_on_ids", "add_on_ids"],
});
}).rejects.toThrow(Schematic.NotFoundError);
@@ -805,7 +811,7 @@ describe("PlansClient", () => {
server
.mockEndpoint()
- .put("/company-plans/company_plan_id")
+ .put("/company-plans/company_id")
.jsonBody(rawRequestBody)
.respondWith()
.statusCode(500)
@@ -813,7 +819,7 @@ describe("PlansClient", () => {
.build();
await expect(async () => {
- return await client.plans.updateCompanyPlans("company_plan_id", {
+ return await client.plans.updateCompanyPlans("company_id", {
addOnIds: ["add_on_ids", "add_on_ids"],
});
}).rejects.toThrow(Schematic.InternalServerError);
@@ -827,12 +833,14 @@ describe("PlansClient", () => {
data: [
{
activation_strategy: "on_payment",
+ billing_cycle_anchor: "2024-01-15T09:30:00Z",
company_id: "company_id",
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
external_invoice_id: "external_invoice_id",
id: "id",
paid_at: "2024-01-15T09:30:00Z",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
published_at: "2024-01-15T09:30:00Z",
send_invoice: true,
@@ -845,6 +853,7 @@ describe("PlansClient", () => {
company_id: "company_id",
limit: 1000000,
offset: 1000000,
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
status: "active",
statuses: ["active"],
@@ -862,6 +871,7 @@ describe("PlansClient", () => {
const response = await client.plans.listCustomPlanBillings({
companyId: "company_id",
planId: "plan_id",
+ planBillingSource: "custom_plan",
status: "active",
statuses: ["active"],
limit: 1000000,
@@ -871,12 +881,14 @@ describe("PlansClient", () => {
data: [
{
activationStrategy: "on_payment",
+ billingCycleAnchor: new Date("2024-01-15T09:30:00.000Z"),
companyId: "company_id",
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
externalInvoiceId: "external_invoice_id",
id: "id",
paidAt: new Date("2024-01-15T09:30:00.000Z"),
+ planBillingSource: "custom_plan",
planId: "plan_id",
publishedAt: new Date("2024-01-15T09:30:00.000Z"),
sendInvoice: true,
@@ -889,6 +901,7 @@ describe("PlansClient", () => {
companyId: "company_id",
limit: 1000000,
offset: 1000000,
+ planBillingSource: "custom_plan",
planId: "plan_id",
status: "active",
statuses: ["active"],
@@ -998,12 +1011,14 @@ describe("PlansClient", () => {
const rawResponseBody = {
data: {
activation_strategy: "on_payment",
+ billing_cycle_anchor: "2024-01-15T09:30:00Z",
company_id: "company_id",
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
external_invoice_id: "external_invoice_id",
id: "id",
paid_at: "2024-01-15T09:30:00Z",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
published_at: "2024-01-15T09:30:00Z",
send_invoice: true,
@@ -1029,12 +1044,14 @@ describe("PlansClient", () => {
expect(response).toEqual({
data: {
activationStrategy: "on_payment",
+ billingCycleAnchor: new Date("2024-01-15T09:30:00.000Z"),
companyId: "company_id",
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
externalInvoiceId: "external_invoice_id",
id: "id",
paidAt: new Date("2024-01-15T09:30:00.000Z"),
+ planBillingSource: "custom_plan",
planId: "plan_id",
publishedAt: new Date("2024-01-15T09:30:00.000Z"),
sendInvoice: true,
@@ -1175,12 +1192,14 @@ describe("PlansClient", () => {
const rawResponseBody = {
data: {
activation_strategy: "on_payment",
+ billing_cycle_anchor: "2024-01-15T09:30:00Z",
company_id: "company_id",
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
external_invoice_id: "external_invoice_id",
id: "id",
paid_at: "2024-01-15T09:30:00Z",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
published_at: "2024-01-15T09:30:00Z",
send_invoice: true,
@@ -1206,12 +1225,14 @@ describe("PlansClient", () => {
expect(response).toEqual({
data: {
activationStrategy: "on_payment",
+ billingCycleAnchor: new Date("2024-01-15T09:30:00.000Z"),
companyId: "company_id",
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
externalInvoiceId: "external_invoice_id",
id: "id",
paidAt: new Date("2024-01-15T09:30:00.000Z"),
+ planBillingSource: "custom_plan",
planId: "plan_id",
publishedAt: new Date("2024-01-15T09:30:00.000Z"),
sendInvoice: true,
@@ -1520,6 +1541,7 @@ describe("PlansClient", () => {
auto_topup_enabled: true,
auto_topup_self_service: true,
can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_id: "credit_id",
@@ -1837,6 +1859,7 @@ describe("PlansClient", () => {
autoTopupEnabled: true,
autoTopupSelfService: true,
canBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditId: "credit_id",
@@ -2227,6 +2250,7 @@ describe("PlansClient", () => {
auto_topup_enabled: true,
auto_topup_self_service: true,
can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_id: "credit_id",
@@ -2560,6 +2584,7 @@ describe("PlansClient", () => {
autoTopupEnabled: true,
autoTopupSelfService: true,
canBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditId: "credit_id",
@@ -2906,6 +2931,7 @@ describe("PlansClient", () => {
auto_topup_enabled: true,
auto_topup_self_service: true,
can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_id: "credit_id",
@@ -3223,6 +3249,7 @@ describe("PlansClient", () => {
autoTopupEnabled: true,
autoTopupSelfService: true,
canBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditId: "credit_id",
@@ -3615,6 +3642,7 @@ describe("PlansClient", () => {
auto_topup_enabled: true,
auto_topup_self_service: true,
can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_id: "credit_id",
@@ -3923,6 +3951,7 @@ describe("PlansClient", () => {
autoTopupEnabled: true,
autoTopupSelfService: true,
canBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditId: "credit_id",
@@ -4247,6 +4276,7 @@ describe("PlansClient", () => {
auto_topup_enabled: true,
auto_topup_self_service: true,
can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_id: "credit_id",
@@ -4562,6 +4592,7 @@ describe("PlansClient", () => {
autoTopupEnabled: true,
autoTopupSelfService: true,
canBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditId: "credit_id",
@@ -5205,6 +5236,7 @@ describe("PlansClient", () => {
auto_topup_enabled: true,
auto_topup_self_service: true,
can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_id: "credit_id",
@@ -5524,6 +5556,7 @@ describe("PlansClient", () => {
autoTopupEnabled: true,
autoTopupSelfService: true,
canBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditId: "credit_id",
@@ -5786,6 +5819,7 @@ describe("PlansClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -5907,6 +5941,7 @@ describe("PlansClient", () => {
created_at: "2024-01-15T09:30:00Z",
days_until_due: 1000000,
id: "id",
+ plan_billing_source: "custom_plan",
plan_id: "plan_id",
send_invoice: true,
status: "active",
@@ -5985,6 +6020,7 @@ describe("PlansClient", () => {
billing_credit_auto_topup_enabled: true,
billing_credit_auto_topup_self_service: true,
billing_credit_can_buy_bundles: true,
+ company_credit_amount: 1000000,
created_at: "2024-01-15T09:30:00Z",
credit_amount: 1000000,
credit_description: "credit_description",
@@ -6082,6 +6118,7 @@ describe("PlansClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -6205,6 +6242,7 @@ describe("PlansClient", () => {
createdAt: new Date("2024-01-15T09:30:00.000Z"),
daysUntilDue: 1000000,
id: "id",
+ planBillingSource: "custom_plan",
planId: "plan_id",
sendInvoice: true,
status: "active",
@@ -6289,6 +6327,7 @@ describe("PlansClient", () => {
billingCreditAutoTopupEnabled: true,
billingCreditAutoTopupSelfService: true,
billingCreditCanBuyBundles: true,
+ companyCreditAmount: 1000000,
createdAt: new Date("2024-01-15T09:30:00.000Z"),
creditAmount: 1000000,
creditDescription: "credit_description",
@@ -6873,13 +6912,13 @@ describe("PlansClient", () => {
server
.mockEndpoint()
- .delete("/plans/version/plan_id")
+ .delete("/plans/version/plan_version_id")
.respondWith()
.statusCode(200)
.jsonBody(rawResponseBody)
.build();
- const response = await client.plans.deletePlanVersion("plan_id", {
+ const response = await client.plans.deletePlanVersion("plan_version_id", {
promoteArchivedVersion: true,
});
expect(response).toEqual({
@@ -6900,14 +6939,14 @@ describe("PlansClient", () => {
server
.mockEndpoint()
- .delete("/plans/version/plan_id")
+ .delete("/plans/version/plan_version_id")
.respondWith()
.statusCode(400)
.jsonBody(rawResponseBody)
.build();
await expect(async () => {
- return await client.plans.deletePlanVersion("plan_id");
+ return await client.plans.deletePlanVersion("plan_version_id");
}).rejects.toThrow(Schematic.BadRequestError);
});
@@ -6919,14 +6958,14 @@ describe("PlansClient", () => {
server
.mockEndpoint()
- .delete("/plans/version/plan_id")
+ .delete("/plans/version/plan_version_id")
.respondWith()
.statusCode(401)
.jsonBody(rawResponseBody)
.build();
await expect(async () => {
- return await client.plans.deletePlanVersion("plan_id");
+ return await client.plans.deletePlanVersion("plan_version_id");
}).rejects.toThrow(Schematic.UnauthorizedError);
});
@@ -6938,14 +6977,14 @@ describe("PlansClient", () => {
server
.mockEndpoint()
- .delete("/plans/version/plan_id")
+ .delete("/plans/version/plan_version_id")
.respondWith()
.statusCode(403)
.jsonBody(rawResponseBody)
.build();
await expect(async () => {
- return await client.plans.deletePlanVersion("plan_id");
+ return await client.plans.deletePlanVersion("plan_version_id");
}).rejects.toThrow(Schematic.ForbiddenError);
});
@@ -6957,14 +6996,14 @@ describe("PlansClient", () => {
server
.mockEndpoint()
- .delete("/plans/version/plan_id")
+ .delete("/plans/version/plan_version_id")
.respondWith()
.statusCode(404)
.jsonBody(rawResponseBody)
.build();
await expect(async () => {
- return await client.plans.deletePlanVersion("plan_id");
+ return await client.plans.deletePlanVersion("plan_version_id");
}).rejects.toThrow(Schematic.NotFoundError);
});
@@ -6976,14 +7015,14 @@ describe("PlansClient", () => {
server
.mockEndpoint()
- .delete("/plans/version/plan_id")
+ .delete("/plans/version/plan_version_id")
.respondWith()
.statusCode(500)
.jsonBody(rawResponseBody)
.build();
await expect(async () => {
- return await client.plans.deletePlanVersion("plan_id");
+ return await client.plans.deletePlanVersion("plan_version_id");
}).rejects.toThrow(Schematic.InternalServerError);
});
@@ -7010,14 +7049,14 @@ describe("PlansClient", () => {
server
.mockEndpoint()
- .put("/plans/version/plan_id/publish")
+ .put("/plans/version/plan_version_id/publish")
.jsonBody(rawRequestBody)
.respondWith()
.statusCode(200)
.jsonBody(rawResponseBody)
.build();
- const response = await client.plans.publishPlanVersion("plan_id", {
+ const response = await client.plans.publishPlanVersion("plan_version_id", {
excludedCompanyIds: ["excluded_company_ids"],
migrationStrategy: "immediate",
});
@@ -7052,7 +7091,7 @@ describe("PlansClient", () => {
server
.mockEndpoint()
- .put("/plans/version/plan_id/publish")
+ .put("/plans/version/plan_version_id/publish")
.jsonBody(rawRequestBody)
.respondWith()
.statusCode(400)
@@ -7060,7 +7099,7 @@ describe("PlansClient", () => {
.build();
await expect(async () => {
- return await client.plans.publishPlanVersion("plan_id", {
+ return await client.plans.publishPlanVersion("plan_version_id", {
excludedCompanyIds: ["excluded_company_ids", "excluded_company_ids"],
migrationStrategy: "immediate",
});
@@ -7078,7 +7117,7 @@ describe("PlansClient", () => {
server
.mockEndpoint()
- .put("/plans/version/plan_id/publish")
+ .put("/plans/version/plan_version_id/publish")
.jsonBody(rawRequestBody)
.respondWith()
.statusCode(401)
@@ -7086,7 +7125,7 @@ describe("PlansClient", () => {
.build();
await expect(async () => {
- return await client.plans.publishPlanVersion("plan_id", {
+ return await client.plans.publishPlanVersion("plan_version_id", {
excludedCompanyIds: ["excluded_company_ids", "excluded_company_ids"],
migrationStrategy: "immediate",
});
@@ -7104,7 +7143,7 @@ describe("PlansClient", () => {
server
.mockEndpoint()
- .put("/plans/version/plan_id/publish")
+ .put("/plans/version/plan_version_id/publish")
.jsonBody(rawRequestBody)
.respondWith()
.statusCode(403)
@@ -7112,7 +7151,7 @@ describe("PlansClient", () => {
.build();
await expect(async () => {
- return await client.plans.publishPlanVersion("plan_id", {
+ return await client.plans.publishPlanVersion("plan_version_id", {
excludedCompanyIds: ["excluded_company_ids", "excluded_company_ids"],
migrationStrategy: "immediate",
});
@@ -7130,7 +7169,7 @@ describe("PlansClient", () => {
server
.mockEndpoint()
- .put("/plans/version/plan_id/publish")
+ .put("/plans/version/plan_version_id/publish")
.jsonBody(rawRequestBody)
.respondWith()
.statusCode(404)
@@ -7138,7 +7177,7 @@ describe("PlansClient", () => {
.build();
await expect(async () => {
- return await client.plans.publishPlanVersion("plan_id", {
+ return await client.plans.publishPlanVersion("plan_version_id", {
excludedCompanyIds: ["excluded_company_ids", "excluded_company_ids"],
migrationStrategy: "immediate",
});
@@ -7156,7 +7195,7 @@ describe("PlansClient", () => {
server
.mockEndpoint()
- .put("/plans/version/plan_id/publish")
+ .put("/plans/version/plan_version_id/publish")
.jsonBody(rawRequestBody)
.respondWith()
.statusCode(500)
@@ -7164,7 +7203,7 @@ describe("PlansClient", () => {
.build();
await expect(async () => {
- return await client.plans.publishPlanVersion("plan_id", {
+ return await client.plans.publishPlanVersion("plan_version_id", {
excludedCompanyIds: ["excluded_company_ids", "excluded_company_ids"],
migrationStrategy: "immediate",
});
diff --git a/yarn.lock b/yarn.lock
index 3c31239b..663366d9 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1548,9 +1548,9 @@ base64-js@^1.3.1:
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
baseline-browser-mapping@^2.11.12:
- version "2.11.13"
- resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.11.13.tgz#660073103c1bee93e54df55f117b7528adf6af19"
- integrity sha512-k9HNuUVMlqVjQ9UHzfPjIqiDbWw7WqT1AoT7GL8VwvF3r0ZfArtgiSPAlmupyNquNgOJHTuH4CKYf8ttMTWBTQ==
+ version "2.11.15"
+ resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.11.15.tgz#9c0cac93d7d304f3d61bb41088a102cd62e68676"
+ integrity sha512-FwMjJJ7HnyZpWe+oWxegG0fezZyBZUagI5LZEoO3GCbtbKNwRfMH9Ue5d5v01PNePBy1QSfPSDTTeVL0Hb9EzA==
brace-expansion@^1.1.7:
version "1.1.18"
@@ -1841,9 +1841,9 @@ dunder-proto@^1.0.1:
gopd "^1.2.0"
electron-to-chromium@^1.5.402:
- version "1.5.403"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.403.tgz#8a6e422bc68c5d2fa4d8c5fa2ba9a583c3d4452c"
- integrity sha512-MQsYmdaLzvaCX5j+ZZBr5Fm6uCCnPQcRtlvmvRlWqrXy+BH2O4ffXIAScF+JQznQWB9brWp4lSD9Z4yNmaf2BA==
+ version "1.5.411"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.411.tgz#d56c7e43f91e2b3abb53b4eecd646e20d0b18b34"
+ integrity sha512-gglkxzokjHfawpGxq75XdBV2/l3BAPzrsMs70qgaZdTW5rpV1tC4MdgJVP9fN126bODA4ZJQkn1wryEzJyQXIg==
emittery@^0.13.1:
version "0.13.1"
@@ -1891,9 +1891,9 @@ es-errors@^1.3.0:
integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
es-module-lexer@^2.1.0:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-2.3.1.tgz#5bf2df06999dbbe5f006a5f46a11fb9f5b7b391b"
- integrity sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-2.3.2.tgz#311fa4f40168c1975c505477c51b23234d41ad55"
+ integrity sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==
es-object-atoms@^1.0.0, es-object-atoms@^1.1.1:
version "1.1.2"
@@ -3521,9 +3521,9 @@ tapable@^2.3.0, tapable@^2.3.3:
integrity sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==
terser@^5.31.1:
- version "5.49.2"
- resolved "https://registry.yarnpkg.com/terser/-/terser-5.49.2.tgz#cc08cfb6097e5da650bfd45c769ebd15c514fc23"
- integrity sha512-rGbJiKeQ4WDe3EXlDAIaQcwftVfv2Q8o1awFNfvXolJYKkb1AuZY1RTOmqx4LJXZENbWZA7eIsYGHuEzHsi1nQ==
+ version "5.50.0"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-5.50.0.tgz#4e560a46704f9172f96ba31c3bd6dc108ad2cead"
+ integrity sha512-CN9BVxWhgS/hRxtUMjtC2uRWSTcSfQFHMDWma6sKKfIivCD91sM+FOPfvwoaRMqCSrUpe1nv3jDamd9eEQ4y+w==
dependencies:
"@jridgewell/source-map" "^0.3.3"
acorn "^8.15.0"
@@ -3656,10 +3656,10 @@ undici-types@~8.3.0:
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.3.0.tgz#44e9fc9f3244648cdea35e4f9bb2d681e9410809"
integrity sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==
-undici@7.28.0, undici@7.29.0:
- version "7.29.0"
- resolved "https://registry.yarnpkg.com/undici/-/undici-7.29.0.tgz#ae0f6f62e06e057a9cbb7b2b5fde2bb74f791b8f"
- integrity sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==
+undici@7.28.0:
+ version "7.28.0"
+ resolved "https://registry.yarnpkg.com/undici/-/undici-7.28.0.tgz#97d64564198b285bc281f0e8e29597e3d11fe7ec"
+ integrity sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==
universalify@^0.2.0:
version "0.2.0"
@@ -3667,9 +3667,9 @@ universalify@^0.2.0:
integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==
update-browserslist-db@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.3.0.tgz#9ff2604d5b949051639c01a223a16619f8a2b2c7"
- integrity sha512-x/M6q3w4Ybp91CNaS4S69UnliqR3BzRpOT6LWbksjth0S/+jhfaPJsWjt/TewpT8j9eLIojUf5jr29WextHroA==
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.3.1.tgz#a71c28dd22f505481dbc4689087b18d933e90afd"
+ integrity sha512-ZZ61DsRsOnakl74HAmp3oSN4aXUmEWXf+i/yv0h7tIBfICc3VdrFErQKUUKPgu3AMsTUMbcongALEN4l6GSUrQ==
dependencies:
escalade "^3.2.0"
picocolors "^1.1.1"
From 4ebe8b54d59fab301661aeabaa0bc5186a9f81b4 Mon Sep 17 00:00:00 2001
From: "fern-api[bot]" <115122769+fern-api[bot]@users.noreply.github.com>
Date: Wed, 19 Aug 2026 15:14:37 +0000
Subject: [PATCH 2/2] [fern-replay] Applied customizations
Patches applied (1):
- patch-7a37bae5: chore(deps): resolve dependabot security alerts (#156)
---
.fern/replay.lock | 4051 ++++++++++++++++++++++++++++++++++++++++++++-
package.json | 3 +
yarn.lock | 8 +-
3 files changed, 4056 insertions(+), 6 deletions(-)
diff --git a/.fern/replay.lock b/.fern/replay.lock
index fce9b604..a30c3c75 100644
--- a/.fern/replay.lock
+++ b/.fern/replay.lock
@@ -42,5 +42,4052 @@ generations:
cli_version: unknown
generator_versions:
fernapi/fern-typescript-node-sdk: 3.70.7
-current_generation: a5c877f9ecaa4061db14572ff37a6dc9e4a95978
-patches: []
+ - commit_sha: 4aa8e15e8199e715486ba5340692e84aa1495d7f
+ tree_hash: 66caff72a5f78d3b4b9f67463e54a98f55d8d59d
+ timestamp: 2026-08-19T15:14:32.972Z
+ cli_version: unknown
+ generator_versions:
+ fernapi/fern-typescript-node-sdk: 3.70.7
+current_generation: 4aa8e15e8199e715486ba5340692e84aa1495d7f
+patches:
+ - id: patch-7a37bae5
+ content_hash: sha256:4b8a2c162ce5cb93a744e2c6dbe2c8c37feff60c4728cf67d01968de5977499e
+ original_commit: 7a37bae547cd7e3acf4123558f38a67e8de1449b
+ original_message: "chore(deps): resolve dependabot security alerts (#156)"
+ original_author: Orbit
+ base_generation: 4aa8e15e8199e715486ba5340692e84aa1495d7f
+ files:
+ - package.json
+ - yarn.lock
+ patch_content: |
+ diff --git a/package.json b/package.json
+ index 9937134..39d7c7d 100644
+ --- a/package.json
+ +++ b/package.json
+ @@ -57,6 +57,9 @@
+ "crypto": false,
+ "timers": false
+ },
+ + "resolutions": {
+ + "undici": "7.29.0"
+ + },
+ "packageManager": "yarn@1.22.22",
+ "engines": {
+ "node": ">=18.0.0"
+ diff --git a/yarn.lock b/yarn.lock
+ index 663366d..4f1f74b 100644
+ --- a/yarn.lock
+ +++ b/yarn.lock
+ @@ -3656,10 +3656,10 @@ undici-types@~8.3.0:
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.3.0.tgz#44e9fc9f3244648cdea35e4f9bb2d681e9410809"
+ integrity sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==
+
+ -undici@7.28.0:
+ - version "7.28.0"
+ - resolved "https://registry.yarnpkg.com/undici/-/undici-7.28.0.tgz#97d64564198b285bc281f0e8e29597e3d11fe7ec"
+ - integrity sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==
+ +undici@7.28.0, undici@7.29.0:
+ + version "7.29.0"
+ + resolved "https://registry.yarnpkg.com/undici/-/undici-7.29.0.tgz#ae0f6f62e06e057a9cbb7b2b5fde2bb74f791b8f"
+ + integrity sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==
+
+ universalify@^0.2.0:
+ version "0.2.0"
+ theirs_snapshot:
+ package.json: |
+ {
+ "name": "@schematichq/schematic-typescript-node",
+ "version": "1.5.9",
+ "private": false,
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/schematichq/schematic-node.git"
+ },
+ "main": "./dist/index.js",
+ "types": "./dist/index.d.ts",
+ "scripts": {
+ "format": "biome format --write --skip-parse-errors --no-errors-on-unmatched --max-diagnostics=none",
+ "format:check": "biome format --skip-parse-errors --no-errors-on-unmatched --max-diagnostics=none",
+ "lint": "biome lint --skip-parse-errors --no-errors-on-unmatched --max-diagnostics=none",
+ "lint:fix": "biome lint --fix --unsafe --skip-parse-errors --no-errors-on-unmatched --max-diagnostics=none",
+ "check": "biome check --skip-parse-errors --no-errors-on-unmatched --max-diagnostics=none",
+ "check:fix": "biome check --fix --unsafe --skip-parse-errors --no-errors-on-unmatched --max-diagnostics=none",
+ "build": "node build.js",
+ "prepack": "",
+ "test": "jest --config jest.config.mjs",
+ "test:unit": "jest --selectProjects unit",
+ "test:wire": "jest --selectProjects wire",
+ "build:legacy": "tsc",
+ "test:cloudflare": "node scripts/test-cloudflare.mjs"
+ },
+ "dependencies": {
+ "form-data": "^4.0.4",
+ "formdata-node": "^6.0.3",
+ "node-fetch": "^2.7.0",
+ "readable-stream": "^4.7.0",
+ "ws": "^8.18.1"
+ },
+ "devDependencies": {
+ "@types/node-fetch": "^2.6.12",
+ "@types/readable-stream": "^4.0.23",
+ "webpack": "^5.105.4",
+ "ts-loader": "^9.5.4",
+ "jest": "^29.7.0",
+ "@jest/globals": "^29.7.0",
+ "@types/jest": "^29.5.14",
+ "ts-jest": "^29.3.4",
+ "jest-environment-jsdom": "^29.7.0",
+ "msw": "2.11.2",
+ "@types/node": "^20.0.0",
+ "typescript": "~5.9.3",
+ "@biomejs/biome": "2.4.10",
+ "esbuild": "^0.25.9",
+ "miniflare": "^4.20260421.0",
+ "redis": "^4.7.0",
+ "@types/ws": "^8.18.1"
+ },
+ "browser": {
+ "fs": false,
+ "os": false,
+ "path": false,
+ "stream": false,
+ "crypto": false,
+ "timers": false
+ },
+ "resolutions": {
+ "undici": "7.29.0"
+ },
+ "packageManager": "yarn@1.22.22",
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "sideEffects": false,
+ "license": "MIT",
+ "files": [
+ "dist/**/*.js",
+ "dist/**/*.d.ts",
+ "dist/**/*.wasm",
+ "!dist/**/*.js.map",
+ "!dist/**/*.test.*",
+ "README.md"
+ ]
+ }
+ yarn.lock: |
+ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+ # yarn lockfile v1
+
+
+ "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.29.7.tgz#f2fbbfea87c44a21590ec515b778b2c26d8866e7"
+ integrity sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.29.7"
+ js-tokens "^4.0.0"
+ picocolors "^1.1.1"
+
+ "@babel/compat-data@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.29.7.tgz#6f0237f0f36d2e51c0570a636faed9d2d0efe629"
+ integrity sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==
+
+ "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.29.7.tgz#80c10b17248082968b57a857b91640971f2070f7"
+ integrity sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==
+ dependencies:
+ "@babel/code-frame" "^7.29.7"
+ "@babel/generator" "^7.29.7"
+ "@babel/helper-compilation-targets" "^7.29.7"
+ "@babel/helper-module-transforms" "^7.29.7"
+ "@babel/helpers" "^7.29.7"
+ "@babel/parser" "^7.29.7"
+ "@babel/template" "^7.29.7"
+ "@babel/traverse" "^7.29.7"
+ "@babel/types" "^7.29.7"
+ "@jridgewell/remapping" "^2.3.5"
+ convert-source-map "^2.0.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.2"
+ json5 "^2.2.3"
+ semver "^6.3.1"
+
+ "@babel/generator@^7.29.7", "@babel/generator@^7.29.8", "@babel/generator@^7.7.2":
+ version "7.29.8"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.29.8.tgz#4b0b887885422643339e09022148a4c4ebaa4979"
+ integrity sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==
+ dependencies:
+ "@babel/parser" "^7.29.8"
+ "@babel/types" "^7.29.8"
+ "@jridgewell/gen-mapping" "^0.3.12"
+ "@jridgewell/trace-mapping" "^0.3.28"
+ jsesc "^3.0.2"
+
+ "@babel/helper-compilation-targets@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz#7a1def704302401c47f64fa85589e974ae217042"
+ integrity sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==
+ dependencies:
+ "@babel/compat-data" "^7.29.7"
+ "@babel/helper-validator-option" "^7.29.7"
+ browserslist "^4.24.0"
+ lru-cache "^5.1.1"
+ semver "^6.3.1"
+
+ "@babel/helper-globals@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.29.7.tgz#f04a96fbd8473241b1079243f5b3f03a3010ab7b"
+ integrity sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==
+
+ "@babel/helper-module-imports@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz#ef25048a518e828d7393fac5882ddd73921d7396"
+ integrity sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==
+ dependencies:
+ "@babel/traverse" "^7.29.7"
+ "@babel/types" "^7.29.7"
+
+ "@babel/helper-module-transforms@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz#b062747a5997ba138637201328bbff77960574ae"
+ integrity sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==
+ dependencies:
+ "@babel/helper-module-imports" "^7.29.7"
+ "@babel/helper-validator-identifier" "^7.29.7"
+ "@babel/traverse" "^7.29.7"
+
+ "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.29.7", "@babel/helper-plugin-utils@^7.8.0":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz#c0a0766f1a13617d8a17407d7ab8f9d486225ea4"
+ integrity sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==
+
+ "@babel/helper-string-parser@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz#7f0871d99824d23137d60f86fcf6130fd5a1b51f"
+ integrity sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==
+
+ "@babel/helper-validator-identifier@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz#bd87084ced0c796ec46bda492de6e83d29e89fc2"
+ integrity sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==
+
+ "@babel/helper-validator-option@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz#cf315be940213b354eb4abcc0bd01ebe3f73bc2a"
+ integrity sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==
+
+ "@babel/helpers@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.29.7.tgz#45abfde7548997e34376c3e69feb475cffb4a607"
+ integrity sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==
+ dependencies:
+ "@babel/template" "^7.29.7"
+ "@babel/types" "^7.29.7"
+
+ "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.29.7", "@babel/parser@^7.29.8":
+ version "7.29.8"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.8.tgz#9653716a2f10c677b98fbc63d4bfb000c302cf17"
+ integrity sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==
+ dependencies:
+ "@babel/types" "^7.29.8"
+
+ "@babel/plugin-syntax-async-generators@^7.8.4":
+ version "7.8.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
+ integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+ "@babel/plugin-syntax-bigint@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea"
+ integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+ "@babel/plugin-syntax-class-properties@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
+ integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.12.13"
+
+ "@babel/plugin-syntax-class-static-block@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406"
+ integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+ "@babel/plugin-syntax-import-attributes@^7.24.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.29.7.tgz#6115264516e95ead0f35a41710906612e447f605"
+ integrity sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.29.7"
+
+ "@babel/plugin-syntax-import-meta@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
+ integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+ "@babel/plugin-syntax-json-strings@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
+ integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+ "@babel/plugin-syntax-jsx@^7.7.2":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz#622c16f9ad63782fe6e83dadc7e40330744b7f1e"
+ integrity sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.29.7"
+
+ "@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
+ integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+ "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
+ integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+ "@babel/plugin-syntax-numeric-separator@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
+ integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+ "@babel/plugin-syntax-object-rest-spread@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
+ integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+ "@babel/plugin-syntax-optional-catch-binding@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
+ integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+ "@babel/plugin-syntax-optional-chaining@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
+ integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+ "@babel/plugin-syntax-private-property-in-object@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad"
+ integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+ "@babel/plugin-syntax-top-level-await@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
+ integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+ "@babel/plugin-syntax-typescript@^7.7.2":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.29.7.tgz#7c29388932313ed58413a0343048d75d92fb5b24"
+ integrity sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.29.7"
+
+ "@babel/template@^7.29.7", "@babel/template@^7.3.3":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.29.7.tgz#4d9d4004f645cdd304de958c725162784ecac700"
+ integrity sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==
+ dependencies:
+ "@babel/code-frame" "^7.29.7"
+ "@babel/parser" "^7.29.7"
+ "@babel/types" "^7.29.7"
+
+ "@babel/traverse@^7.29.7":
+ version "7.29.8"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.29.8.tgz#4111014cdc71a0f95d9471907590baa0b8a6b28a"
+ integrity sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==
+ dependencies:
+ "@babel/code-frame" "^7.29.7"
+ "@babel/generator" "^7.29.8"
+ "@babel/helper-globals" "^7.29.7"
+ "@babel/parser" "^7.29.8"
+ "@babel/template" "^7.29.7"
+ "@babel/types" "^7.29.8"
+ debug "^4.3.1"
+
+ "@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.28.2", "@babel/types@^7.29.7", "@babel/types@^7.29.8", "@babel/types@^7.3.3":
+ version "7.29.8"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.8.tgz#1229eef31d85156d70fa3f4cd859376d0eaf6863"
+ integrity sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==
+ dependencies:
+ "@babel/helper-string-parser" "^7.29.7"
+ "@babel/helper-validator-identifier" "^7.29.7"
+
+ "@bcoe/v8-coverage@^0.2.3":
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
+ integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
+
+ "@biomejs/biome@2.4.10":
+ version "2.4.10"
+ resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-2.4.10.tgz#daa52be56f027d16ca6fe36e313fd6b405b5d0f4"
+ integrity sha512-xxA3AphFQ1geij4JTHXv4EeSTda1IFn22ye9LdyVPoJU19fNVl0uzfEuhsfQ4Yue/0FaLs2/ccVi4UDiE7R30w==
+ optionalDependencies:
+ "@biomejs/cli-darwin-arm64" "2.4.10"
+ "@biomejs/cli-darwin-x64" "2.4.10"
+ "@biomejs/cli-linux-arm64" "2.4.10"
+ "@biomejs/cli-linux-arm64-musl" "2.4.10"
+ "@biomejs/cli-linux-x64" "2.4.10"
+ "@biomejs/cli-linux-x64-musl" "2.4.10"
+ "@biomejs/cli-win32-arm64" "2.4.10"
+ "@biomejs/cli-win32-x64" "2.4.10"
+
+ "@biomejs/cli-darwin-arm64@2.4.10":
+ version "2.4.10"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.4.10.tgz#bc348350bb2949ae814bc171354379819101268b"
+ integrity sha512-vuzzI1cWqDVzOMIkYyHbKqp+AkQq4K7k+UCXWpkYcY/HDn1UxdsbsfgtVpa40shem8Kax4TLDLlx8kMAecgqiw==
+
+ "@biomejs/cli-darwin-x64@2.4.10":
+ version "2.4.10"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.4.10.tgz#864610f590005d877bed7f3e6ec39b25718caae2"
+ integrity sha512-14fzASRo+BPotwp7nWULy2W5xeUyFnTaq1V13Etrrxkrih+ez/2QfgFm5Ehtf5vSjtgx/IJycMMpn5kPd5ZNaA==
+
+ "@biomejs/cli-linux-arm64-musl@2.4.10":
+ version "2.4.10"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.4.10.tgz#3542e9e89a3b83c6c6561e72d82ce40ce2063330"
+ integrity sha512-WrJY6UuiSD/Dh+nwK2qOTu8kdMDlLV3dLMmychIghHPAysWFq1/DGC1pVZx8POE3ZkzKR3PUUnVrtZfMfaJjyQ==
+
+ "@biomejs/cli-linux-arm64@2.4.10":
+ version "2.4.10"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.4.10.tgz#4d6b78d7c0eedbf97d41f0223fe715d603d66273"
+ integrity sha512-7MH1CMW5uuxQ/s7FLST63qF8B3Hgu2HRdZ7tA1X1+mk+St4JOuIrqdhIBnnyqeyWJNI+Bww7Es5QZ0wIc1Cmkw==
+
+ "@biomejs/cli-linux-x64-musl@2.4.10":
+ version "2.4.10"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.4.10.tgz#4bad644dfa1f6e6a58440943d197cd406c85d9f7"
+ integrity sha512-kDTi3pI6PBN6CiczsWYOyP2zk0IJI08EWEQyDMQWW221rPaaEz6FvjLhnU07KMzLv8q3qSuoB93ua6inSQ55Tw==
+
+ "@biomejs/cli-linux-x64@2.4.10":
+ version "2.4.10"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-2.4.10.tgz#d63810a2cb3e80c727314df497aca47c72ccded5"
+ integrity sha512-tZLvEEi2u9Xu1zAqRjTcpIDGVtldigVvzug2fTuPG0ME/g8/mXpRPcNgLB22bGn6FvLJpHHnqLnwliOu8xjYrg==
+
+ "@biomejs/cli-win32-arm64@2.4.10":
+ version "2.4.10"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.4.10.tgz#e6927c6267776a8546908b1f45d394b416722dde"
+ integrity sha512-umwQU6qPzH+ISTf/eHyJ/QoQnJs3V9Vpjz2OjZXe9MVBZ7prgGafMy7yYeRGnlmDAn87AKTF3Q6weLoMGpeqdQ==
+
+ "@biomejs/cli-win32-x64@2.4.10":
+ version "2.4.10"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-2.4.10.tgz#fcd5c63f96f7342e55cd66df25f3d20a12cbf621"
+ integrity sha512-aW/JU5GuyH4uxMrNYpoC2kjaHlyJGLgIa3XkhPEZI0uKhZhJZU8BuEyJmvgzSPQNGozBwWjC972RaNdcJ9KyJg==
+
+ "@bundled-es-modules/cookie@^2.0.1":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@bundled-es-modules/cookie/-/cookie-2.0.1.tgz#b41376af6a06b3e32a15241d927b840a9b4de507"
+ integrity sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==
+ dependencies:
+ cookie "^0.7.2"
+
+ "@bundled-es-modules/statuses@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@bundled-es-modules/statuses/-/statuses-1.0.1.tgz#761d10f44e51a94902c4da48675b71a76cc98872"
+ integrity sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==
+ dependencies:
+ statuses "^2.0.1"
+
+ "@cloudflare/workerd-darwin-64@1.20260730.1":
+ version "1.20260730.1"
+ resolved "https://registry.yarnpkg.com/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20260730.1.tgz#31ae566b7bda5ff3e17265df28858cbcce4b8883"
+ integrity sha512-+MBHmPaiTe2KajryW0T24rZvWFxb41hD3d8anNzQqHzft6vSEb18+sp0znSwxgij7ApPhSM1+vhkNg4f3YMguA==
+
+ "@cloudflare/workerd-darwin-arm64@1.20260730.1":
+ version "1.20260730.1"
+ resolved "https://registry.yarnpkg.com/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20260730.1.tgz#6649b329ff415de2c94be85567b4c9ca08083769"
+ integrity sha512-SBHKntPkKvNPgaCrTe99xC1CAl8ygJDzlYfK0LbuJ1muKadIw35WnhO0wu894fKBtllsVQdNzDLee+cm0ppLSQ==
+
+ "@cloudflare/workerd-linux-64@1.20260730.1":
+ version "1.20260730.1"
+ resolved "https://registry.yarnpkg.com/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20260730.1.tgz#c679bd6b47893e37d367fff5c2b214c3d5f94807"
+ integrity sha512-ouyPOSMbiKPeSwUJUvxtMcxGAXs2J4aPE4T5ABIYX5ClcQx5j5bbHTmnqOQEY8sAuLTPjH7dY+iB6UI5ISlwwA==
+
+ "@cloudflare/workerd-linux-arm64@1.20260730.1":
+ version "1.20260730.1"
+ resolved "https://registry.yarnpkg.com/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20260730.1.tgz#a27ac7aca71f373903c3a73128aae6d01ad653f2"
+ integrity sha512-YQ+Mi78U3TPdgBPtwq+Sm6rJU+Ihl2y0pjYtuuKkdmUbYzL7oLR6Xqq9wljhasnuCFICssDJaqhMep5WizYoEQ==
+
+ "@cloudflare/workerd-windows-64@1.20260730.1":
+ version "1.20260730.1"
+ resolved "https://registry.yarnpkg.com/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20260730.1.tgz#364d7da55aa74b5e93ef1485763d3e03f7dcffd0"
+ integrity sha512-27fAN+vUECW1oYVc1KOcHYpkL8COM2Uxtxql7TL595kxbjoqS5yckw7NLz7bTf2pALFCZWjqXDjZGJ/xbG4ZKQ==
+
+ "@cspotcode/source-map-support@0.8.1":
+ version "0.8.1"
+ resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1"
+ integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==
+ dependencies:
+ "@jridgewell/trace-mapping" "0.3.9"
+
+ "@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"
+
+ "@esbuild/aix-ppc64@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz#80fcbe36130e58b7670511e888b8e88a259ed76c"
+ integrity sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==
+
+ "@esbuild/android-arm64@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz#8aa4965f8d0a7982dc21734bf6601323a66da752"
+ integrity sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==
+
+ "@esbuild/android-arm@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.12.tgz#300712101f7f50f1d2627a162e6e09b109b6767a"
+ integrity sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==
+
+ "@esbuild/android-x64@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.12.tgz#87dfb27161202bdc958ef48bb61b09c758faee16"
+ integrity sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==
+
+ "@esbuild/darwin-arm64@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz#79197898ec1ff745d21c071e1c7cc3c802f0c1fd"
+ integrity sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==
+
+ "@esbuild/darwin-x64@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz#146400a8562133f45c4d2eadcf37ddd09718079e"
+ integrity sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==
+
+ "@esbuild/freebsd-arm64@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz#1c5f9ba7206e158fd2b24c59fa2d2c8bb47ca0fe"
+ integrity sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==
+
+ "@esbuild/freebsd-x64@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz#ea631f4a36beaac4b9279fa0fcc6ca29eaeeb2b3"
+ integrity sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==
+
+ "@esbuild/linux-arm64@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz#e1066bce58394f1b1141deec8557a5f0a22f5977"
+ integrity sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==
+
+ "@esbuild/linux-arm@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz#452cd66b20932d08bdc53a8b61c0e30baf4348b9"
+ integrity sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==
+
+ "@esbuild/linux-ia32@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz#b24f8acc45bcf54192c7f2f3be1b53e6551eafe0"
+ integrity sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==
+
+ "@esbuild/linux-loong64@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz#f9cfffa7fc8322571fbc4c8b3268caf15bd81ad0"
+ integrity sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==
+
+ "@esbuild/linux-mips64el@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz#575a14bd74644ffab891adc7d7e60d275296f2cd"
+ integrity sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==
+
+ "@esbuild/linux-ppc64@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz#75b99c70a95fbd5f7739d7692befe60601591869"
+ integrity sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==
+
+ "@esbuild/linux-riscv64@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz#2e3259440321a44e79ddf7535c325057da875cd6"
+ integrity sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==
+
+ "@esbuild/linux-s390x@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz#17676cabbfe5928da5b2a0d6df5d58cd08db2663"
+ integrity sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==
+
+ "@esbuild/linux-x64@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz#0583775685ca82066d04c3507f09524d3cd7a306"
+ integrity sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==
+
+ "@esbuild/netbsd-arm64@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz#f04c4049cb2e252fe96b16fed90f70746b13f4a4"
+ integrity sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==
+
+ "@esbuild/netbsd-x64@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz#77da0d0a0d826d7c921eea3d40292548b258a076"
+ integrity sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==
+
+ "@esbuild/openbsd-arm64@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz#6296f5867aedef28a81b22ab2009c786a952dccd"
+ integrity sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==
+
+ "@esbuild/openbsd-x64@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz#f8d23303360e27b16cf065b23bbff43c14142679"
+ integrity sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==
+
+ "@esbuild/openharmony-arm64@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz#49e0b768744a3924be0d7fd97dd6ce9b2923d88d"
+ integrity sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==
+
+ "@esbuild/sunos-x64@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz#a6ed7d6778d67e528c81fb165b23f4911b9b13d6"
+ integrity sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==
+
+ "@esbuild/win32-arm64@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz#9ac14c378e1b653af17d08e7d3ce34caef587323"
+ integrity sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==
+
+ "@esbuild/win32-ia32@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz#918942dcbbb35cc14fca39afb91b5e6a3d127267"
+ integrity sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==
+
+ "@esbuild/win32-x64@0.25.12":
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz#9bdad8176be7811ad148d1f8772359041f46c6c5"
+ integrity sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==
+
+ "@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.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.3.1"
+
+ "@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.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.3.1"
+
+ "@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.3.1"
+
+ "@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.3.1"
+
+ "@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.3.1"
+
+ "@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.3.1"
+
+ "@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.3.1"
+
+ "@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.3.1"
+
+ "@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.3.1"
+
+ "@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.11.1"
+
+ "@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.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.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"
+ resolved "https://registry.yarnpkg.com/@inquirer/ansi/-/ansi-1.0.2.tgz#674a4c4d81ad460695cb2a1fc69d78cd187f337e"
+ integrity sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==
+
+ "@inquirer/confirm@^5.0.0":
+ version "5.1.21"
+ resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-5.1.21.tgz#610c4acd7797d94890a6e2dde2c98eb1e891dd12"
+ integrity sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==
+ dependencies:
+ "@inquirer/core" "^10.3.2"
+ "@inquirer/type" "^3.0.10"
+
+ "@inquirer/core@^10.3.2":
+ version "10.3.2"
+ resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-10.3.2.tgz#535979ff3ff4fe1e7cc4f83e2320504c743b7e20"
+ integrity sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==
+ dependencies:
+ "@inquirer/ansi" "^1.0.2"
+ "@inquirer/figures" "^1.0.15"
+ "@inquirer/type" "^3.0.10"
+ cli-width "^4.1.0"
+ mute-stream "^2.0.0"
+ signal-exit "^4.1.0"
+ wrap-ansi "^6.2.0"
+ yoctocolors-cjs "^2.1.3"
+
+ "@inquirer/figures@^1.0.15":
+ version "1.0.15"
+ resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.15.tgz#dbb49ed80df11df74268023b496ac5d9acd22b3a"
+ integrity sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==
+
+ "@inquirer/type@^3.0.10":
+ version "3.0.10"
+ resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-3.0.10.tgz#11ed564ec78432a200ea2601a212d24af8150d50"
+ integrity sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==
+
+ "@istanbuljs/load-nyc-config@^1.0.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
+ integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==
+ dependencies:
+ camelcase "^5.3.1"
+ find-up "^4.1.0"
+ get-package-type "^0.1.0"
+ js-yaml "^3.13.1"
+ resolve-from "^5.0.0"
+
+ "@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3":
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.6.tgz#8dc9afa2ac1506cb1a58f89940f1c124446c8df3"
+ integrity sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==
+
+ "@jest/console@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc"
+ integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ jest-message-util "^29.7.0"
+ jest-util "^29.7.0"
+ slash "^3.0.0"
+
+ "@jest/core@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f"
+ integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==
+ dependencies:
+ "@jest/console" "^29.7.0"
+ "@jest/reporters" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ ansi-escapes "^4.2.1"
+ chalk "^4.0.0"
+ ci-info "^3.2.0"
+ exit "^0.1.2"
+ graceful-fs "^4.2.9"
+ jest-changed-files "^29.7.0"
+ jest-config "^29.7.0"
+ jest-haste-map "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-regex-util "^29.6.3"
+ jest-resolve "^29.7.0"
+ jest-resolve-dependencies "^29.7.0"
+ jest-runner "^29.7.0"
+ jest-runtime "^29.7.0"
+ jest-snapshot "^29.7.0"
+ jest-util "^29.7.0"
+ jest-validate "^29.7.0"
+ jest-watcher "^29.7.0"
+ micromatch "^4.0.4"
+ pretty-format "^29.7.0"
+ slash "^3.0.0"
+ strip-ansi "^6.0.0"
+
+ "@jest/environment@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7"
+ integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==
+ dependencies:
+ "@jest/fake-timers" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ jest-mock "^29.7.0"
+
+ "@jest/expect-utils@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6"
+ integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==
+ dependencies:
+ jest-get-type "^29.6.3"
+
+ "@jest/expect@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2"
+ integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==
+ dependencies:
+ expect "^29.7.0"
+ jest-snapshot "^29.7.0"
+
+ "@jest/fake-timers@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565"
+ integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@sinonjs/fake-timers" "^10.0.2"
+ "@types/node" "*"
+ jest-message-util "^29.7.0"
+ jest-mock "^29.7.0"
+ jest-util "^29.7.0"
+
+ "@jest/globals@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d"
+ integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/expect" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ jest-mock "^29.7.0"
+
+ "@jest/reporters@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7"
+ integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==
+ dependencies:
+ "@bcoe/v8-coverage" "^0.2.3"
+ "@jest/console" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@jridgewell/trace-mapping" "^0.3.18"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ collect-v8-coverage "^1.0.0"
+ exit "^0.1.2"
+ glob "^7.1.3"
+ graceful-fs "^4.2.9"
+ istanbul-lib-coverage "^3.0.0"
+ istanbul-lib-instrument "^6.0.0"
+ istanbul-lib-report "^3.0.0"
+ istanbul-lib-source-maps "^4.0.0"
+ istanbul-reports "^3.1.3"
+ jest-message-util "^29.7.0"
+ jest-util "^29.7.0"
+ jest-worker "^29.7.0"
+ slash "^3.0.0"
+ string-length "^4.0.1"
+ strip-ansi "^6.0.0"
+ v8-to-istanbul "^9.0.1"
+
+ "@jest/schemas@^29.6.3":
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03"
+ integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==
+ dependencies:
+ "@sinclair/typebox" "^0.27.8"
+
+ "@jest/source-map@^29.6.3":
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4"
+ integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==
+ dependencies:
+ "@jridgewell/trace-mapping" "^0.3.18"
+ callsites "^3.0.0"
+ graceful-fs "^4.2.9"
+
+ "@jest/test-result@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c"
+ integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==
+ dependencies:
+ "@jest/console" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ collect-v8-coverage "^1.0.0"
+
+ "@jest/test-sequencer@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce"
+ integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==
+ dependencies:
+ "@jest/test-result" "^29.7.0"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.7.0"
+ slash "^3.0.0"
+
+ "@jest/transform@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c"
+ integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==
+ dependencies:
+ "@babel/core" "^7.11.6"
+ "@jest/types" "^29.6.3"
+ "@jridgewell/trace-mapping" "^0.3.18"
+ babel-plugin-istanbul "^6.1.1"
+ chalk "^4.0.0"
+ convert-source-map "^2.0.0"
+ fast-json-stable-stringify "^2.1.0"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.7.0"
+ jest-regex-util "^29.6.3"
+ jest-util "^29.7.0"
+ micromatch "^4.0.4"
+ pirates "^4.0.4"
+ slash "^3.0.0"
+ write-file-atomic "^4.0.2"
+
+ "@jest/types@^29.6.3":
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59"
+ integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==
+ dependencies:
+ "@jest/schemas" "^29.6.3"
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ "@types/istanbul-reports" "^3.0.0"
+ "@types/node" "*"
+ "@types/yargs" "^17.0.8"
+ chalk "^4.0.0"
+
+ "@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5":
+ version "0.3.13"
+ resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f"
+ integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==
+ dependencies:
+ "@jridgewell/sourcemap-codec" "^1.5.0"
+ "@jridgewell/trace-mapping" "^0.3.24"
+
+ "@jridgewell/remapping@^2.3.5":
+ version "2.3.5"
+ resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1"
+ integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==
+ dependencies:
+ "@jridgewell/gen-mapping" "^0.3.5"
+ "@jridgewell/trace-mapping" "^0.3.24"
+
+ "@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0":
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6"
+ integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
+
+ "@jridgewell/source-map@^0.3.3":
+ version "0.3.11"
+ resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.11.tgz#b21835cbd36db656b857c2ad02ebd413cc13a9ba"
+ integrity sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==
+ dependencies:
+ "@jridgewell/gen-mapping" "^0.3.5"
+ "@jridgewell/trace-mapping" "^0.3.25"
+
+ "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0":
+ version "1.5.5"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba"
+ integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==
+
+ "@jridgewell/trace-mapping@0.3.9":
+ version "0.3.9"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9"
+ integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==
+ dependencies:
+ "@jridgewell/resolve-uri" "^3.0.3"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+
+ "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.28":
+ version "0.3.31"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0"
+ integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==
+ dependencies:
+ "@jridgewell/resolve-uri" "^3.1.0"
+ "@jridgewell/sourcemap-codec" "^1.4.14"
+
+ "@mswjs/interceptors@^0.39.1":
+ version "0.39.8"
+ resolved "https://registry.yarnpkg.com/@mswjs/interceptors/-/interceptors-0.39.8.tgz#0a2cf4cf26a731214ca4156273121f67dff7ebf8"
+ integrity sha512-2+BzZbjRO7Ct61k8fMNHEtoKjeWI9pIlHFTqBwZ5icHpqszIgEZbjb1MW5Z0+bITTCTl3gk4PDBxs9tA/csXvA==
+ dependencies:
+ "@open-draft/deferred-promise" "^2.2.0"
+ "@open-draft/logger" "^0.3.0"
+ "@open-draft/until" "^2.0.0"
+ is-node-process "^1.2.0"
+ outvariant "^1.4.3"
+ strict-event-emitter "^0.5.1"
+
+ "@open-draft/deferred-promise@^2.2.0":
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz#4a822d10f6f0e316be4d67b4d4f8c9a124b073bd"
+ integrity sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==
+
+ "@open-draft/logger@^0.3.0":
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/@open-draft/logger/-/logger-0.3.0.tgz#2b3ab1242b360aa0adb28b85f5d7da1c133a0954"
+ integrity sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==
+ dependencies:
+ is-node-process "^1.2.0"
+ outvariant "^1.4.0"
+
+ "@open-draft/until@^2.0.0", "@open-draft/until@^2.1.0":
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/@open-draft/until/-/until-2.1.0.tgz#0acf32f470af2ceaf47f095cdecd40d68666efda"
+ integrity sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==
+
+ "@poppinss/colors@^4.1.5":
+ version "4.1.6"
+ resolved "https://registry.yarnpkg.com/@poppinss/colors/-/colors-4.1.6.tgz#bf8546e30cfc5ee8dfe68988ce58eb0ad9d7c21b"
+ integrity sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==
+ dependencies:
+ kleur "^4.1.5"
+
+ "@poppinss/dumper@^0.6.4":
+ version "0.6.5"
+ resolved "https://registry.yarnpkg.com/@poppinss/dumper/-/dumper-0.6.5.tgz#8992703338d80d2218fdc37245c8cfc67f0f6ac9"
+ integrity sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==
+ dependencies:
+ "@poppinss/colors" "^4.1.5"
+ "@sindresorhus/is" "^7.0.2"
+ supports-color "^10.0.0"
+
+ "@poppinss/exception@^1.2.2":
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/@poppinss/exception/-/exception-1.2.3.tgz#b713855e6c9fe2110fea0949455c50828145e64a"
+ integrity sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==
+
+ "@redis/bloom@1.2.0":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@redis/bloom/-/bloom-1.2.0.tgz#d3fd6d3c0af3ef92f26767b56414a370c7b63b71"
+ integrity sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==
+
+ "@redis/client@1.6.1":
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/@redis/client/-/client-1.6.1.tgz#c4636b7cb34e96008a988409b7e787364ae761a2"
+ integrity sha512-/KCsg3xSlR+nCK8/8ZYSknYxvXHwubJrU82F3Lm1Fp6789VQ0/3RJKfsmRXjqfaTA++23CvC3hqmqe/2GEt6Kw==
+ dependencies:
+ cluster-key-slot "1.1.2"
+ generic-pool "3.9.0"
+ yallist "4.0.0"
+
+ "@redis/graph@1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@redis/graph/-/graph-1.1.1.tgz#8c10df2df7f7d02741866751764031a957a170ea"
+ integrity sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==
+
+ "@redis/json@1.0.7":
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/@redis/json/-/json-1.0.7.tgz#016257fcd933c4cbcb9c49cde8a0961375c6893b"
+ integrity sha512-6UyXfjVaTBTJtKNG4/9Z8PSpKE6XgSyEb8iwaqDcy+uKrd/DGYHTWkUdnQDyzm727V7p21WUMhsqz5oy65kPcQ==
+
+ "@redis/search@1.2.0":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@redis/search/-/search-1.2.0.tgz#50976fd3f31168f585666f7922dde111c74567b8"
+ integrity sha512-tYoDBbtqOVigEDMAcTGsRlMycIIjwMCgD8eR2t0NANeQmgK/lvxNAvYyb6bZDD4frHRhIHkJu2TBRvB0ERkOmw==
+
+ "@redis/time-series@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@redis/time-series/-/time-series-1.1.0.tgz#cba454c05ec201bd5547aaf55286d44682ac8eb5"
+ integrity sha512-c1Q99M5ljsIuc4YdaCwfUEXsofakb9c8+Zse2qxTadu8TalLXuAESzLvFAvNVbkmSlvlzIQOLpBCmWI9wTOt+g==
+
+ "@sinclair/typebox@^0.27.8":
+ version "0.27.12"
+ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.12.tgz#0cacd3cff047a32936b1ace47ea7c86eaab60a7f"
+ integrity sha512-hhyNJ+nbR6ZR7pToHvllEFun9TL0sbL+tk/ON75lo+Xas054uez98qRbsuNt7MBCyZKK4+8Yli/OAGZhmfBZ/g==
+
+ "@sindresorhus/is@^7.0.2":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-7.2.0.tgz#7c594e1a64336d2008d99d814056d459421504d4"
+ integrity sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==
+
+ "@sinonjs/commons@^3.0.0":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd"
+ integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==
+ dependencies:
+ type-detect "4.0.8"
+
+ "@sinonjs/fake-timers@^10.0.2":
+ version "10.3.0"
+ resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66"
+ integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==
+ dependencies:
+ "@sinonjs/commons" "^3.0.0"
+
+ "@speed-highlight/core@^1.2.7":
+ version "1.2.24"
+ resolved "https://registry.yarnpkg.com/@speed-highlight/core/-/core-1.2.24.tgz#e70acdec4f12420f6ec642ce987150622529bd67"
+ integrity sha512-qeW2e1l78afw8VhRPfPQ1Gjj+KU5XFQ/OFV5ti6eTa9bruO7mJyZtA4vw0ofqmA3tKCkROE9xLk3VZoeRc98nw==
+
+ "@tootallnate/once@2":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.1.tgz#35adc6222e3662fa2222ce123b961476a746b9ea"
+ integrity sha512-HqmEUIGRJ5fSXchkVgR5F7qn48bDBzv0kWj/Kfu5e6uci4UlEeng4331LnBkWffb++Ei3FOVLxo8JJWMFBDMeQ==
+
+ "@types/babel__core@^7.1.14":
+ version "7.20.5"
+ resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017"
+ integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==
+ dependencies:
+ "@babel/parser" "^7.20.7"
+ "@babel/types" "^7.20.7"
+ "@types/babel__generator" "*"
+ "@types/babel__template" "*"
+ "@types/babel__traverse" "*"
+
+ "@types/babel__generator@*":
+ version "7.27.0"
+ resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.27.0.tgz#b5819294c51179957afaec341442f9341e4108a9"
+ integrity sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==
+ dependencies:
+ "@babel/types" "^7.0.0"
+
+ "@types/babel__template@*":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f"
+ integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==
+ dependencies:
+ "@babel/parser" "^7.1.0"
+ "@babel/types" "^7.0.0"
+
+ "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
+ version "7.28.0"
+ resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.28.0.tgz#07d713d6cce0d265c9849db0cbe62d3f61f36f74"
+ integrity sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==
+ dependencies:
+ "@babel/types" "^7.28.2"
+
+ "@types/cookie@^0.6.0":
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.6.0.tgz#eac397f28bf1d6ae0ae081363eca2f425bedf0d5"
+ integrity sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==
+
+ "@types/estree@^1.0.8":
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.9.tgz#cf3f0e876d7bee15a93ab925b82bf570a3904a24"
+ integrity sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==
+
+ "@types/graceful-fs@^4.1.3":
+ version "4.1.9"
+ resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4"
+ integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==
+ dependencies:
+ "@types/node" "*"
+
+ "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7"
+ integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==
+
+ "@types/istanbul-lib-report@*":
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf"
+ integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==
+ dependencies:
+ "@types/istanbul-lib-coverage" "*"
+
+ "@types/istanbul-reports@^3.0.0":
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54"
+ integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==
+ dependencies:
+ "@types/istanbul-lib-report" "*"
+
+ "@types/jest@^29.5.14":
+ version "29.5.14"
+ resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.14.tgz#2b910912fa1d6856cadcd0c1f95af7df1d6049e5"
+ integrity sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==
+ dependencies:
+ expect "^29.0.0"
+ pretty-format "^29.0.0"
+
+ "@types/jsdom@^20.0.0":
+ version "20.0.1"
+ resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-20.0.1.tgz#07c14bc19bd2f918c1929541cdaacae894744808"
+ integrity sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==
+ dependencies:
+ "@types/node" "*"
+ "@types/tough-cookie" "*"
+ parse5 "^7.0.0"
+
+ "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.9":
+ version "7.0.15"
+ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
+ integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
+
+ "@types/node-fetch@^2.6.12":
+ version "2.6.13"
+ resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.13.tgz#e0c9b7b5edbdb1b50ce32c127e85e880872d56ee"
+ integrity sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==
+ dependencies:
+ "@types/node" "*"
+ form-data "^4.0.4"
+
+ "@types/node@*":
+ version "26.2.0"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-26.2.0.tgz#5a4875a862fda8fdc57de8faa579bb81ecba1685"
+ integrity sha512-5IviulTZeRNp2vAJ514cc/HUlY5nZ9fCbq9DMyC52BrhFZACo3nI0R7qBxhQmo/d27NFe96ur/b7Wwxklda+kg==
+ dependencies:
+ undici-types "~8.3.0"
+
+ "@types/node@^20.0.0":
+ version "20.19.43"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.19.43.tgz#fcecf580ba42a0db55cf404c372c97973c376c97"
+ integrity sha512-6oYBAi5ikg4Pl+kGsoYtawUMBT2zZMCvPNF7pVLnHZfd1zf38DRiWn/gT01RYCdUqkv7Fhr+C9ot4/tb+2sVvA==
+ dependencies:
+ undici-types "~6.21.0"
+
+ "@types/readable-stream@^4.0.23":
+ version "4.0.24"
+ resolved "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-4.0.24.tgz#7b2431bfc1367d05c53598ad36094b044726d442"
+ integrity sha512-NRvUNC/JFGPJvqdAfEve8oginbM6V08u5NzLWpG8MwA2kTPOLnqk+wpwuPT+mp3aUsxyuT6m2gnrPuHYCruzEg==
+ dependencies:
+ "@types/node" "*"
+
+ "@types/stack-utils@^2.0.0":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8"
+ integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==
+
+ "@types/statuses@^2.0.4":
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/@types/statuses/-/statuses-2.0.6.tgz#66748315cc9a96d63403baa8671b2c124f8633aa"
+ integrity sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==
+
+ "@types/tough-cookie@*":
+ version "4.0.5"
+ resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304"
+ integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==
+
+ "@types/ws@^8.18.1":
+ version "8.18.1"
+ resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9"
+ integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==
+ dependencies:
+ "@types/node" "*"
+
+ "@types/yargs-parser@*":
+ version "21.0.3"
+ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15"
+ integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==
+
+ "@types/yargs@^17.0.8":
+ version "17.0.35"
+ resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.35.tgz#07013e46aa4d7d7d50a49e15604c1c5340d4eb24"
+ integrity sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==
+ dependencies:
+ "@types/yargs-parser" "*"
+
+ "@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1":
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6"
+ integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==
+ dependencies:
+ "@webassemblyjs/helper-numbers" "1.13.2"
+ "@webassemblyjs/helper-wasm-bytecode" "1.13.2"
+
+ "@webassemblyjs/floating-point-hex-parser@1.13.2":
+ version "1.13.2"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz#fcca1eeddb1cc4e7b6eed4fc7956d6813b21b9fb"
+ integrity sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==
+
+ "@webassemblyjs/helper-api-error@1.13.2":
+ version "1.13.2"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz#e0a16152248bc38daee76dd7e21f15c5ef3ab1e7"
+ integrity sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==
+
+ "@webassemblyjs/helper-buffer@1.14.1":
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz#822a9bc603166531f7d5df84e67b5bf99b72b96b"
+ integrity sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==
+
+ "@webassemblyjs/helper-numbers@1.13.2":
+ version "1.13.2"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz#dbd932548e7119f4b8a7877fd5a8d20e63490b2d"
+ integrity sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==
+ dependencies:
+ "@webassemblyjs/floating-point-hex-parser" "1.13.2"
+ "@webassemblyjs/helper-api-error" "1.13.2"
+ "@xtuc/long" "4.2.2"
+
+ "@webassemblyjs/helper-wasm-bytecode@1.13.2":
+ version "1.13.2"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz#e556108758f448aae84c850e593ce18a0eb31e0b"
+ integrity sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==
+
+ "@webassemblyjs/helper-wasm-section@1.14.1":
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz#9629dda9c4430eab54b591053d6dc6f3ba050348"
+ integrity sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==
+ dependencies:
+ "@webassemblyjs/ast" "1.14.1"
+ "@webassemblyjs/helper-buffer" "1.14.1"
+ "@webassemblyjs/helper-wasm-bytecode" "1.13.2"
+ "@webassemblyjs/wasm-gen" "1.14.1"
+
+ "@webassemblyjs/ieee754@1.13.2":
+ version "1.13.2"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz#1c5eaace1d606ada2c7fd7045ea9356c59ee0dba"
+ integrity sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==
+ dependencies:
+ "@xtuc/ieee754" "^1.2.0"
+
+ "@webassemblyjs/leb128@1.13.2":
+ version "1.13.2"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz#57c5c3deb0105d02ce25fa3fd74f4ebc9fd0bbb0"
+ integrity sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==
+ dependencies:
+ "@xtuc/long" "4.2.2"
+
+ "@webassemblyjs/utf8@1.13.2":
+ version "1.13.2"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz#917a20e93f71ad5602966c2d685ae0c6c21f60f1"
+ integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==
+
+ "@webassemblyjs/wasm-edit@^1.14.1":
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz#ac6689f502219b59198ddec42dcd496b1004d597"
+ integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==
+ dependencies:
+ "@webassemblyjs/ast" "1.14.1"
+ "@webassemblyjs/helper-buffer" "1.14.1"
+ "@webassemblyjs/helper-wasm-bytecode" "1.13.2"
+ "@webassemblyjs/helper-wasm-section" "1.14.1"
+ "@webassemblyjs/wasm-gen" "1.14.1"
+ "@webassemblyjs/wasm-opt" "1.14.1"
+ "@webassemblyjs/wasm-parser" "1.14.1"
+ "@webassemblyjs/wast-printer" "1.14.1"
+
+ "@webassemblyjs/wasm-gen@1.14.1":
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz#991e7f0c090cb0bb62bbac882076e3d219da9570"
+ integrity sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==
+ dependencies:
+ "@webassemblyjs/ast" "1.14.1"
+ "@webassemblyjs/helper-wasm-bytecode" "1.13.2"
+ "@webassemblyjs/ieee754" "1.13.2"
+ "@webassemblyjs/leb128" "1.13.2"
+ "@webassemblyjs/utf8" "1.13.2"
+
+ "@webassemblyjs/wasm-opt@1.14.1":
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz#e6f71ed7ccae46781c206017d3c14c50efa8106b"
+ integrity sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==
+ dependencies:
+ "@webassemblyjs/ast" "1.14.1"
+ "@webassemblyjs/helper-buffer" "1.14.1"
+ "@webassemblyjs/wasm-gen" "1.14.1"
+ "@webassemblyjs/wasm-parser" "1.14.1"
+
+ "@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.14.1":
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz#b3e13f1893605ca78b52c68e54cf6a865f90b9fb"
+ integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==
+ dependencies:
+ "@webassemblyjs/ast" "1.14.1"
+ "@webassemblyjs/helper-api-error" "1.13.2"
+ "@webassemblyjs/helper-wasm-bytecode" "1.13.2"
+ "@webassemblyjs/ieee754" "1.13.2"
+ "@webassemblyjs/leb128" "1.13.2"
+ "@webassemblyjs/utf8" "1.13.2"
+
+ "@webassemblyjs/wast-printer@1.14.1":
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz#3bb3e9638a8ae5fdaf9610e7a06b4d9f9aa6fe07"
+ integrity sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==
+ dependencies:
+ "@webassemblyjs/ast" "1.14.1"
+ "@xtuc/long" "4.2.2"
+
+ "@xtuc/ieee754@^1.2.0":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
+ integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==
+
+ "@xtuc/long@4.2.2":
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
+ integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
+
+ abab@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291"
+ integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==
+
+ abort-controller@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392"
+ integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==
+ dependencies:
+ event-target-shim "^5.0.0"
+
+ acorn-globals@^7.0.0:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3"
+ integrity sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==
+ dependencies:
+ acorn "^8.1.0"
+ acorn-walk "^8.0.2"
+
+ acorn-walk@^8.0.2:
+ version "8.3.5"
+ resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.5.tgz#8a6b8ca8fc5b34685af15dabb44118663c296496"
+ integrity sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==
+ dependencies:
+ acorn "^8.11.0"
+
+ acorn@^8.1.0, acorn@^8.11.0, acorn@^8.15.0, acorn@^8.16.0, acorn@^8.8.1:
+ version "8.18.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.18.0.tgz#4faf01b2d6d326bfeed97aea1f52220b5f4c1940"
+ integrity sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==
+
+ agent-base@6:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
+ integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
+ dependencies:
+ debug "4"
+
+ ajv-formats@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520"
+ integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==
+ dependencies:
+ ajv "^8.0.0"
+
+ ajv-keywords@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16"
+ integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==
+ dependencies:
+ fast-deep-equal "^3.1.3"
+
+ ajv@^8.0.0, ajv@^8.9.0:
+ version "8.20.0"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.20.0.tgz#304b3636add88ba7d936760dd50ece006dea95f9"
+ integrity sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==
+ dependencies:
+ fast-deep-equal "^3.1.3"
+ fast-uri "^3.0.1"
+ json-schema-traverse "^1.0.0"
+ require-from-string "^2.0.2"
+
+ ansi-escapes@^4.2.1:
+ version "4.3.2"
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
+ integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
+ dependencies:
+ type-fest "^0.21.3"
+
+ ansi-regex@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+ integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
+
+ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+ integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+ dependencies:
+ color-convert "^2.0.1"
+
+ ansi-styles@^5.0.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
+ integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
+
+ anymatch@^3.0.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
+ integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
+ dependencies:
+ normalize-path "^3.0.0"
+ picomatch "^2.0.4"
+
+ argparse@^1.0.7:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+ integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
+ dependencies:
+ sprintf-js "~1.0.2"
+
+ asynckit@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+ integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
+
+ babel-jest@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5"
+ integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==
+ dependencies:
+ "@jest/transform" "^29.7.0"
+ "@types/babel__core" "^7.1.14"
+ babel-plugin-istanbul "^6.1.1"
+ babel-preset-jest "^29.6.3"
+ chalk "^4.0.0"
+ graceful-fs "^4.2.9"
+ slash "^3.0.0"
+
+ babel-plugin-istanbul@^6.1.1:
+ version "6.1.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73"
+ integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@istanbuljs/load-nyc-config" "^1.0.0"
+ "@istanbuljs/schema" "^0.1.2"
+ istanbul-lib-instrument "^5.0.4"
+ test-exclude "^6.0.0"
+
+ babel-plugin-jest-hoist@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626"
+ integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==
+ dependencies:
+ "@babel/template" "^7.3.3"
+ "@babel/types" "^7.3.3"
+ "@types/babel__core" "^7.1.14"
+ "@types/babel__traverse" "^7.0.6"
+
+ babel-preset-current-node-syntax@^1.0.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz#20730d6cdc7dda5d89401cab10ac6a32067acde6"
+ integrity sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==
+ dependencies:
+ "@babel/plugin-syntax-async-generators" "^7.8.4"
+ "@babel/plugin-syntax-bigint" "^7.8.3"
+ "@babel/plugin-syntax-class-properties" "^7.12.13"
+ "@babel/plugin-syntax-class-static-block" "^7.14.5"
+ "@babel/plugin-syntax-import-attributes" "^7.24.7"
+ "@babel/plugin-syntax-import-meta" "^7.10.4"
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+ "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+ "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
+ "@babel/plugin-syntax-top-level-await" "^7.14.5"
+
+ babel-preset-jest@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c"
+ integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==
+ dependencies:
+ babel-plugin-jest-hoist "^29.6.3"
+ babel-preset-current-node-syntax "^1.0.0"
+
+ balanced-match@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
+ integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+
+ base64-js@^1.3.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
+ integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+
+ baseline-browser-mapping@^2.11.12:
+ version "2.11.15"
+ resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.11.15.tgz#9c0cac93d7d304f3d61bb41088a102cd62e68676"
+ integrity sha512-FwMjJJ7HnyZpWe+oWxegG0fezZyBZUagI5LZEoO3GCbtbKNwRfMH9Ue5d5v01PNePBy1QSfPSDTTeVL0Hb9EzA==
+
+ brace-expansion@^1.1.7:
+ version "1.1.18"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.18.tgz#3ce74d89885136be1535341f8c3d4425c29a5cab"
+ integrity sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+ braces@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
+ integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
+ dependencies:
+ fill-range "^7.1.1"
+
+ browserslist@^4.24.0, browserslist@^4.28.1:
+ version "4.28.8"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.8.tgz#a3c79ceb70028527e5da7dafc887f3200b5168c0"
+ integrity sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA==
+ dependencies:
+ baseline-browser-mapping "^2.11.12"
+ caniuse-lite "^1.0.30001809"
+ electron-to-chromium "^1.5.402"
+ node-releases "^2.0.53"
+ update-browserslist-db "^1.3.0"
+
+ bs-logger@^0.2.6:
+ version "0.2.6"
+ resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8"
+ integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==
+ dependencies:
+ fast-json-stable-stringify "2.x"
+
+ bser@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
+ integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==
+ dependencies:
+ node-int64 "^0.4.0"
+
+ buffer-from@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
+ integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
+
+ buffer@^6.0.3:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6"
+ integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
+ dependencies:
+ base64-js "^1.3.1"
+ ieee754 "^1.2.1"
+
+ call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6"
+ integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==
+ dependencies:
+ es-errors "^1.3.0"
+ function-bind "^1.1.2"
+
+ callsites@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
+ integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+
+ camelcase@^5.3.1:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
+ integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+
+ camelcase@^6.2.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
+ integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
+
+ caniuse-lite@^1.0.30001809:
+ version "1.0.30001809"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001809.tgz#e6cf71f14ddfe008f114dd2a846923be3c03a07b"
+ integrity sha512-xxWVywk6a6Arlk+hymeycyn/VgqEfLDxupvhH/xiY5SJ/18kmi9o6MiO320DCUzypORHLtvh0I4i04tUhCNHNQ==
+
+ chalk@^4.0.0, chalk@^4.1.0:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
+ integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
+ char-regex@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf"
+ integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==
+
+ chrome-trace-event@^1.0.2:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b"
+ integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==
+
+ ci-info@^3.2.0:
+ version "3.9.0"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4"
+ integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
+
+ cjs-module-lexer@^1.0.0:
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz#0f79731eb8cfe1ec72acd4066efac9d61991b00d"
+ integrity sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==
+
+ cli-width@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5"
+ integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==
+
+ cliui@^8.0.1:
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa"
+ integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==
+ dependencies:
+ string-width "^4.2.0"
+ strip-ansi "^6.0.1"
+ wrap-ansi "^7.0.0"
+
+ cluster-key-slot@1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz#88ddaa46906e303b5de30d3153b7d9fe0a0c19ac"
+ integrity sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==
+
+ co@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+ integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==
+
+ collect-v8-coverage@^1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz#cc1f01eb8d02298cbc9a437c74c70ab4e5210b80"
+ integrity sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==
+
+ color-convert@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+ integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+ dependencies:
+ color-name "~1.1.4"
+
+ color-name@~1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
+ combined-stream@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+ integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+ dependencies:
+ delayed-stream "~1.0.0"
+
+ commander@^2.20.0:
+ version "2.20.3"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
+ integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+
+ concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+ integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
+
+ convert-source-map@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
+ integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
+
+ cookie@^0.7.2:
+ version "0.7.2"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7"
+ integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==
+
+ cookie@^1.0.2:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-1.1.1.tgz#3bb9bdfc82369db9c2f69c93c9c3ceb310c88b3c"
+ integrity sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==
+
+ create-jest@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320"
+ integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ chalk "^4.0.0"
+ exit "^0.1.2"
+ graceful-fs "^4.2.9"
+ jest-config "^29.7.0"
+ jest-util "^29.7.0"
+ prompts "^2.0.1"
+
+ cross-spawn@^7.0.3:
+ version "7.0.6"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
+ integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
+ dependencies:
+ path-key "^3.1.0"
+ shebang-command "^2.0.0"
+ which "^2.0.1"
+
+ cssom@^0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36"
+ integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==
+
+ cssom@~0.3.6:
+ version "0.3.8"
+ resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"
+ integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==
+
+ cssstyle@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852"
+ integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==
+ dependencies:
+ cssom "~0.3.6"
+
+ data-urls@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143"
+ integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==
+ dependencies:
+ abab "^2.0.6"
+ whatwg-mimetype "^3.0.0"
+ whatwg-url "^11.0.0"
+
+ debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1:
+ version "4.4.3"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a"
+ integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==
+ dependencies:
+ ms "^2.1.3"
+
+ decimal.js@^10.4.2:
+ version "10.6.0"
+ resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.6.0.tgz#e649a43e3ab953a72192ff5983865e509f37ed9a"
+ integrity sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==
+
+ dedent@^1.0.0:
+ version "1.7.2"
+ resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.7.2.tgz#34e2264ab538301e27cf7b07bf2369c19baa8dd9"
+ integrity sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==
+
+ deepmerge@^4.2.2:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
+ integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
+
+ delayed-stream@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+ integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
+
+ detect-libc@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.1.2.tgz#689c5dcdc1900ef5583a4cb9f6d7b473742074ad"
+ integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==
+
+ detect-newline@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
+ integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==
+
+ diff-sequences@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921"
+ integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==
+
+ domexception@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673"
+ integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==
+ dependencies:
+ webidl-conversions "^7.0.0"
+
+ dunder-proto@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a"
+ integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==
+ dependencies:
+ call-bind-apply-helpers "^1.0.1"
+ es-errors "^1.3.0"
+ gopd "^1.2.0"
+
+ electron-to-chromium@^1.5.402:
+ version "1.5.411"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.411.tgz#d56c7e43f91e2b3abb53b4eecd646e20d0b18b34"
+ integrity sha512-gglkxzokjHfawpGxq75XdBV2/l3BAPzrsMs70qgaZdTW5rpV1tC4MdgJVP9fN126bODA4ZJQkn1wryEzJyQXIg==
+
+ emittery@^0.13.1:
+ version "0.13.1"
+ resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad"
+ integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==
+
+ emoji-regex@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+ integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
+ enhanced-resolve@^5.24.4:
+ version "5.24.5"
+ resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.24.5.tgz#b4dad3255b7545f07ba5535189868e9f85f47573"
+ integrity sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A==
+ dependencies:
+ graceful-fs "^4.2.4"
+ tapable "^2.3.3"
+
+ entities@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-6.0.1.tgz#c28c34a43379ca7f61d074130b2f5f7020a30694"
+ integrity sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==
+
+ error-ex@^1.3.1:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.4.tgz#b3a8d8bb6f92eecc1629e3e27d3c8607a8a32414"
+ integrity sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==
+ dependencies:
+ is-arrayish "^0.2.1"
+
+ error-stack-parser-es@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz#e6a1655dd12f39bb3a85bf4c7088187d78740327"
+ integrity sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==
+
+ es-define-property@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa"
+ integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==
+
+ es-errors@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
+ integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
+
+ es-module-lexer@^2.1.0:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-2.3.2.tgz#311fa4f40168c1975c505477c51b23234d41ad55"
+ integrity sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==
+
+ es-object-atoms@^1.0.0, es-object-atoms@^1.1.1:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.2.tgz#a2d0b373205724dfa525d23b0c3e1b1ca582c99b"
+ integrity sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==
+ dependencies:
+ es-errors "^1.3.0"
+
+ es-set-tostringtag@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d"
+ integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==
+ dependencies:
+ es-errors "^1.3.0"
+ get-intrinsic "^1.2.6"
+ has-tostringtag "^1.0.2"
+ hasown "^2.0.2"
+
+ esbuild@^0.25.9:
+ version "0.25.12"
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.12.tgz#97a1d041f4ab00c2fce2f838d2b9969a2d2a97a5"
+ integrity sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==
+ optionalDependencies:
+ "@esbuild/aix-ppc64" "0.25.12"
+ "@esbuild/android-arm" "0.25.12"
+ "@esbuild/android-arm64" "0.25.12"
+ "@esbuild/android-x64" "0.25.12"
+ "@esbuild/darwin-arm64" "0.25.12"
+ "@esbuild/darwin-x64" "0.25.12"
+ "@esbuild/freebsd-arm64" "0.25.12"
+ "@esbuild/freebsd-x64" "0.25.12"
+ "@esbuild/linux-arm" "0.25.12"
+ "@esbuild/linux-arm64" "0.25.12"
+ "@esbuild/linux-ia32" "0.25.12"
+ "@esbuild/linux-loong64" "0.25.12"
+ "@esbuild/linux-mips64el" "0.25.12"
+ "@esbuild/linux-ppc64" "0.25.12"
+ "@esbuild/linux-riscv64" "0.25.12"
+ "@esbuild/linux-s390x" "0.25.12"
+ "@esbuild/linux-x64" "0.25.12"
+ "@esbuild/netbsd-arm64" "0.25.12"
+ "@esbuild/netbsd-x64" "0.25.12"
+ "@esbuild/openbsd-arm64" "0.25.12"
+ "@esbuild/openbsd-x64" "0.25.12"
+ "@esbuild/openharmony-arm64" "0.25.12"
+ "@esbuild/sunos-x64" "0.25.12"
+ "@esbuild/win32-arm64" "0.25.12"
+ "@esbuild/win32-ia32" "0.25.12"
+ "@esbuild/win32-x64" "0.25.12"
+
+ escalade@^3.1.1, escalade@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5"
+ integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
+
+ escape-string-regexp@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
+ integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
+
+ escodegen@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17"
+ integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==
+ dependencies:
+ esprima "^4.0.1"
+ estraverse "^5.2.0"
+ esutils "^2.0.2"
+ optionalDependencies:
+ source-map "~0.6.1"
+
+ eslint-scope@5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
+ integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
+ dependencies:
+ esrecurse "^4.3.0"
+ estraverse "^4.1.1"
+
+ esprima@^4.0.0, esprima@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
+ integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
+
+ esrecurse@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
+ integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
+ dependencies:
+ estraverse "^5.2.0"
+
+ estraverse@^4.1.1:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
+ integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
+
+ estraverse@^5.2.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
+ integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
+
+ esutils@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+ integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+
+ event-target-shim@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789"
+ integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==
+
+ events@^3.2.0, events@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
+ integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
+
+ execa@^5.0.0:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
+ integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
+ dependencies:
+ cross-spawn "^7.0.3"
+ get-stream "^6.0.0"
+ human-signals "^2.1.0"
+ is-stream "^2.0.0"
+ merge-stream "^2.0.0"
+ npm-run-path "^4.0.1"
+ onetime "^5.1.2"
+ signal-exit "^3.0.3"
+ strip-final-newline "^2.0.0"
+
+ exit@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
+ integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==
+
+ expect@^29.0.0, expect@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc"
+ integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==
+ dependencies:
+ "@jest/expect-utils" "^29.7.0"
+ jest-get-type "^29.6.3"
+ jest-matcher-utils "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-util "^29.7.0"
+
+ fast-deep-equal@^3.1.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+ integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
+ fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+ integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+
+ fast-uri@^3.0.1:
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.5.tgz#610f37419a030270430cecd68d74e3d4d96725d0"
+ integrity sha512-gHwA1O9LDIcKunMKhObS/HimwtehO1nPUECKAu5TpKgaO19fcWEl4bliWe1jWxVFvIXztJjjQ4L8XQ1EU9f7Jw==
+
+ fb-watchman@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c"
+ integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==
+ dependencies:
+ bser "2.1.1"
+
+ fill-range@^7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
+ integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
+ dependencies:
+ to-regex-range "^5.0.1"
+
+ find-up@^4.0.0, find-up@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
+ integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
+ dependencies:
+ locate-path "^5.0.0"
+ path-exists "^4.0.0"
+
+ form-data@^4.0.0, form-data@^4.0.4:
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.6.tgz#28e864e1b786dbebb68db1f452f9635278665827"
+ integrity sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.8"
+ es-set-tostringtag "^2.1.0"
+ hasown "^2.0.4"
+ mime-types "^2.1.35"
+
+ formdata-node@^6.0.3:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/formdata-node/-/formdata-node-6.0.3.tgz#48f8e2206ae2befded82af621ef015f08168dc6d"
+ integrity sha512-8e1++BCiTzUno9v5IZ2J6bv4RU+3UKDmqWUQD0MIMVCd9AdhWkO1gw57oo1mNEX1dMq2EGI+FbWz4B92pscSQg==
+
+ fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+ integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
+
+ fsevents@^2.3.2:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
+ integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
+
+ function-bind@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
+ integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
+
+ generic-pool@3.9.0:
+ version "3.9.0"
+ resolved "https://registry.yarnpkg.com/generic-pool/-/generic-pool-3.9.0.tgz#36f4a678e963f4fdb8707eab050823abc4e8f5e4"
+ integrity sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==
+
+ gensync@^1.0.0-beta.2:
+ version "1.0.0-beta.2"
+ resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
+ integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
+
+ get-caller-file@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
+ integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+
+ get-intrinsic@^1.2.6:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01"
+ integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==
+ dependencies:
+ call-bind-apply-helpers "^1.0.2"
+ es-define-property "^1.0.1"
+ es-errors "^1.3.0"
+ es-object-atoms "^1.1.1"
+ function-bind "^1.1.2"
+ get-proto "^1.0.1"
+ gopd "^1.2.0"
+ has-symbols "^1.1.0"
+ hasown "^2.0.2"
+ math-intrinsics "^1.1.0"
+
+ get-package-type@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
+ integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
+
+ get-proto@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1"
+ integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==
+ dependencies:
+ dunder-proto "^1.0.1"
+ es-object-atoms "^1.0.0"
+
+ get-stream@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
+ integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
+
+ glob@^7.1.3, glob@^7.1.4:
+ version "7.2.3"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
+ integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.1.1"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+ gopd@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1"
+ integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==
+
+ graceful-fs@^4.1.2, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.9:
+ version "4.2.11"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
+ integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
+
+ graphql@^16.8.1:
+ version "16.14.2"
+ resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.14.2.tgz#83faf25869e3df727cc855161db5da85b0e5b2c0"
+ integrity sha512-Chq1s4CY7jmh8gO2qvLIJyfCDIN+EHLFW/9iShnp1z8FjBQMoodWP1kDC36VAMXXIvAjj4ARa7ntfAV2BrjsbA==
+
+ handlebars@^4.7.9:
+ version "4.7.9"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.9.tgz#6f139082ab58dc4e5a0e51efe7db5ae890d56a0f"
+ integrity sha512-4E71E0rpOaQuJR2A3xDZ+GM1HyWYv1clR58tC8emQNeQe3RH7MAzSbat+V0wG78LQBo6m6bzSG/L4pBuCsgnUQ==
+ dependencies:
+ minimist "^1.2.5"
+ neo-async "^2.6.2"
+ source-map "^0.6.1"
+ wordwrap "^1.0.0"
+ optionalDependencies:
+ uglify-js "^3.1.4"
+
+ has-flag@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
+ integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+
+ has-symbols@^1.0.3, has-symbols@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338"
+ integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==
+
+ has-tostringtag@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc"
+ integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==
+ dependencies:
+ has-symbols "^1.0.3"
+
+ hasown@^2.0.2, hasown@^2.0.3, hasown@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.4.tgz#8c62d8cb90beb2aad5d0a5b67581ad9854c3f003"
+ integrity sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==
+ dependencies:
+ function-bind "^1.1.2"
+
+ headers-polyfill@^4.0.2:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/headers-polyfill/-/headers-polyfill-4.0.3.tgz#922a0155de30ecc1f785bcf04be77844ca95ad07"
+ integrity sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==
+
+ html-encoding-sniffer@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9"
+ integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==
+ dependencies:
+ whatwg-encoding "^2.0.0"
+
+ html-escaper@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
+ integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
+
+ http-proxy-agent@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43"
+ integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==
+ dependencies:
+ "@tootallnate/once" "2"
+ agent-base "6"
+ debug "4"
+
+ https-proxy-agent@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6"
+ integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==
+ dependencies:
+ agent-base "6"
+ debug "4"
+
+ human-signals@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
+ integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
+
+ iconv-lite@0.6.3:
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
+ integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3.0.0"
+
+ ieee754@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
+ integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
+
+ import-local@^3.0.2:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260"
+ integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==
+ dependencies:
+ pkg-dir "^4.2.0"
+ resolve-cwd "^3.0.0"
+
+ imurmurhash@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+ integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
+
+ inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+ inherits@2:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+ is-arrayish@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+ integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
+
+ is-core-module@^2.16.1:
+ version "2.16.2"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.2.tgz#3e07450a8080ebce3fbf0cac494f4d2ab324e082"
+ integrity sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==
+ dependencies:
+ hasown "^2.0.3"
+
+ is-fullwidth-code-point@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+ integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
+ is-generator-fn@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
+ integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
+
+ is-node-process@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/is-node-process/-/is-node-process-1.2.0.tgz#ea02a1b90ddb3934a19aea414e88edef7e11d134"
+ integrity sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==
+
+ is-number@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
+ is-potential-custom-element-name@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5"
+ integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==
+
+ is-stream@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
+ integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
+
+ isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+ integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
+
+ istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756"
+ integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==
+
+ istanbul-lib-instrument@^5.0.4:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d"
+ integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==
+ dependencies:
+ "@babel/core" "^7.12.3"
+ "@babel/parser" "^7.14.7"
+ "@istanbuljs/schema" "^0.1.2"
+ istanbul-lib-coverage "^3.2.0"
+ semver "^6.3.0"
+
+ istanbul-lib-instrument@^6.0.0:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz#fa15401df6c15874bcb2105f773325d78c666765"
+ integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==
+ dependencies:
+ "@babel/core" "^7.23.9"
+ "@babel/parser" "^7.23.9"
+ "@istanbuljs/schema" "^0.1.3"
+ istanbul-lib-coverage "^3.2.0"
+ semver "^7.5.4"
+
+ istanbul-lib-report@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d"
+ integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==
+ dependencies:
+ istanbul-lib-coverage "^3.0.0"
+ make-dir "^4.0.0"
+ supports-color "^7.1.0"
+
+ istanbul-lib-source-maps@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551"
+ integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==
+ dependencies:
+ debug "^4.1.1"
+ istanbul-lib-coverage "^3.0.0"
+ source-map "^0.6.1"
+
+ istanbul-reports@^3.1.3:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.2.0.tgz#cb4535162b5784aa623cee21a7252cf2c807ac93"
+ integrity sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==
+ dependencies:
+ html-escaper "^2.0.0"
+ istanbul-lib-report "^3.0.0"
+
+ jest-changed-files@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a"
+ integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==
+ dependencies:
+ execa "^5.0.0"
+ jest-util "^29.7.0"
+ p-limit "^3.1.0"
+
+ jest-circus@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a"
+ integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/expect" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ co "^4.6.0"
+ dedent "^1.0.0"
+ is-generator-fn "^2.0.0"
+ jest-each "^29.7.0"
+ jest-matcher-utils "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-runtime "^29.7.0"
+ jest-snapshot "^29.7.0"
+ jest-util "^29.7.0"
+ p-limit "^3.1.0"
+ pretty-format "^29.7.0"
+ pure-rand "^6.0.0"
+ slash "^3.0.0"
+ stack-utils "^2.0.3"
+
+ jest-cli@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995"
+ integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==
+ dependencies:
+ "@jest/core" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ chalk "^4.0.0"
+ create-jest "^29.7.0"
+ exit "^0.1.2"
+ import-local "^3.0.2"
+ jest-config "^29.7.0"
+ jest-util "^29.7.0"
+ jest-validate "^29.7.0"
+ yargs "^17.3.1"
+
+ jest-config@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f"
+ integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==
+ dependencies:
+ "@babel/core" "^7.11.6"
+ "@jest/test-sequencer" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ babel-jest "^29.7.0"
+ chalk "^4.0.0"
+ ci-info "^3.2.0"
+ deepmerge "^4.2.2"
+ glob "^7.1.3"
+ graceful-fs "^4.2.9"
+ jest-circus "^29.7.0"
+ jest-environment-node "^29.7.0"
+ jest-get-type "^29.6.3"
+ jest-regex-util "^29.6.3"
+ jest-resolve "^29.7.0"
+ jest-runner "^29.7.0"
+ jest-util "^29.7.0"
+ jest-validate "^29.7.0"
+ micromatch "^4.0.4"
+ parse-json "^5.2.0"
+ pretty-format "^29.7.0"
+ slash "^3.0.0"
+ strip-json-comments "^3.1.1"
+
+ jest-diff@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a"
+ integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==
+ dependencies:
+ chalk "^4.0.0"
+ diff-sequences "^29.6.3"
+ jest-get-type "^29.6.3"
+ pretty-format "^29.7.0"
+
+ jest-docblock@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a"
+ integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==
+ dependencies:
+ detect-newline "^3.0.0"
+
+ jest-each@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1"
+ integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ chalk "^4.0.0"
+ jest-get-type "^29.6.3"
+ jest-util "^29.7.0"
+ pretty-format "^29.7.0"
+
+ jest-environment-jsdom@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz#d206fa3551933c3fd519e5dfdb58a0f5139a837f"
+ integrity sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/fake-timers" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/jsdom" "^20.0.0"
+ "@types/node" "*"
+ jest-mock "^29.7.0"
+ jest-util "^29.7.0"
+ jsdom "^20.0.0"
+
+ jest-environment-node@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376"
+ integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/fake-timers" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ jest-mock "^29.7.0"
+ jest-util "^29.7.0"
+
+ jest-get-type@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1"
+ integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==
+
+ jest-haste-map@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104"
+ integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@types/graceful-fs" "^4.1.3"
+ "@types/node" "*"
+ anymatch "^3.0.3"
+ fb-watchman "^2.0.0"
+ graceful-fs "^4.2.9"
+ jest-regex-util "^29.6.3"
+ jest-util "^29.7.0"
+ jest-worker "^29.7.0"
+ micromatch "^4.0.4"
+ walker "^1.0.8"
+ optionalDependencies:
+ fsevents "^2.3.2"
+
+ jest-leak-detector@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728"
+ integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==
+ dependencies:
+ jest-get-type "^29.6.3"
+ pretty-format "^29.7.0"
+
+ jest-matcher-utils@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12"
+ integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==
+ dependencies:
+ chalk "^4.0.0"
+ jest-diff "^29.7.0"
+ jest-get-type "^29.6.3"
+ pretty-format "^29.7.0"
+
+ jest-message-util@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3"
+ integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==
+ dependencies:
+ "@babel/code-frame" "^7.12.13"
+ "@jest/types" "^29.6.3"
+ "@types/stack-utils" "^2.0.0"
+ chalk "^4.0.0"
+ graceful-fs "^4.2.9"
+ micromatch "^4.0.4"
+ pretty-format "^29.7.0"
+ slash "^3.0.0"
+ stack-utils "^2.0.3"
+
+ jest-mock@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347"
+ integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ jest-util "^29.7.0"
+
+ jest-pnp-resolver@^1.2.2:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e"
+ integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==
+
+ jest-regex-util@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52"
+ integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==
+
+ jest-resolve-dependencies@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428"
+ integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==
+ dependencies:
+ jest-regex-util "^29.6.3"
+ jest-snapshot "^29.7.0"
+
+ jest-resolve@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30"
+ integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==
+ dependencies:
+ chalk "^4.0.0"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.7.0"
+ jest-pnp-resolver "^1.2.2"
+ jest-util "^29.7.0"
+ jest-validate "^29.7.0"
+ resolve "^1.20.0"
+ resolve.exports "^2.0.0"
+ slash "^3.0.0"
+
+ jest-runner@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e"
+ integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==
+ dependencies:
+ "@jest/console" "^29.7.0"
+ "@jest/environment" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ emittery "^0.13.1"
+ graceful-fs "^4.2.9"
+ jest-docblock "^29.7.0"
+ jest-environment-node "^29.7.0"
+ jest-haste-map "^29.7.0"
+ jest-leak-detector "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-resolve "^29.7.0"
+ jest-runtime "^29.7.0"
+ jest-util "^29.7.0"
+ jest-watcher "^29.7.0"
+ jest-worker "^29.7.0"
+ p-limit "^3.1.0"
+ source-map-support "0.5.13"
+
+ jest-runtime@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817"
+ integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/fake-timers" "^29.7.0"
+ "@jest/globals" "^29.7.0"
+ "@jest/source-map" "^29.6.3"
+ "@jest/test-result" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ cjs-module-lexer "^1.0.0"
+ collect-v8-coverage "^1.0.0"
+ glob "^7.1.3"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-mock "^29.7.0"
+ jest-regex-util "^29.6.3"
+ jest-resolve "^29.7.0"
+ jest-snapshot "^29.7.0"
+ jest-util "^29.7.0"
+ slash "^3.0.0"
+ strip-bom "^4.0.0"
+
+ jest-snapshot@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5"
+ integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==
+ dependencies:
+ "@babel/core" "^7.11.6"
+ "@babel/generator" "^7.7.2"
+ "@babel/plugin-syntax-jsx" "^7.7.2"
+ "@babel/plugin-syntax-typescript" "^7.7.2"
+ "@babel/types" "^7.3.3"
+ "@jest/expect-utils" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ babel-preset-current-node-syntax "^1.0.0"
+ chalk "^4.0.0"
+ expect "^29.7.0"
+ graceful-fs "^4.2.9"
+ jest-diff "^29.7.0"
+ jest-get-type "^29.6.3"
+ jest-matcher-utils "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-util "^29.7.0"
+ natural-compare "^1.4.0"
+ pretty-format "^29.7.0"
+ semver "^7.5.3"
+
+ jest-util@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc"
+ integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ ci-info "^3.2.0"
+ graceful-fs "^4.2.9"
+ picomatch "^2.2.3"
+
+ jest-validate@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c"
+ integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ camelcase "^6.2.0"
+ chalk "^4.0.0"
+ jest-get-type "^29.6.3"
+ leven "^3.1.0"
+ pretty-format "^29.7.0"
+
+ jest-watcher@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2"
+ integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==
+ dependencies:
+ "@jest/test-result" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ ansi-escapes "^4.2.1"
+ chalk "^4.0.0"
+ emittery "^0.13.1"
+ jest-util "^29.7.0"
+ string-length "^4.0.1"
+
+ jest-worker@^27.4.5:
+ version "27.5.1"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0"
+ integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==
+ dependencies:
+ "@types/node" "*"
+ merge-stream "^2.0.0"
+ supports-color "^8.0.0"
+
+ jest-worker@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a"
+ integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==
+ dependencies:
+ "@types/node" "*"
+ jest-util "^29.7.0"
+ merge-stream "^2.0.0"
+ supports-color "^8.0.0"
+
+ jest@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613"
+ integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==
+ dependencies:
+ "@jest/core" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ import-local "^3.0.2"
+ jest-cli "^29.7.0"
+
+ js-tokens@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+ js-yaml@^3.13.1:
+ version "3.15.1"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.15.1.tgz#24bc95028f361cdaaa84745b06a109c4486773c0"
+ integrity sha512-S99WuO3HlhO3XN41EtYUNl9zzXjoJx7QvmipxsJVxtCBT0YHEFy+iOJhjSvrmV12nYhWpZaM8lPHkJm0yUMbag==
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
+ jsdom@^20.0.0:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.3.tgz#886a41ba1d4726f67a8858028c99489fed6ad4db"
+ integrity sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==
+ dependencies:
+ abab "^2.0.6"
+ acorn "^8.8.1"
+ acorn-globals "^7.0.0"
+ cssom "^0.5.0"
+ cssstyle "^2.3.0"
+ data-urls "^3.0.2"
+ decimal.js "^10.4.2"
+ domexception "^4.0.0"
+ escodegen "^2.0.0"
+ form-data "^4.0.0"
+ html-encoding-sniffer "^3.0.0"
+ http-proxy-agent "^5.0.0"
+ https-proxy-agent "^5.0.1"
+ is-potential-custom-element-name "^1.0.1"
+ nwsapi "^2.2.2"
+ parse5 "^7.1.1"
+ saxes "^6.0.0"
+ symbol-tree "^3.2.4"
+ tough-cookie "^4.1.2"
+ w3c-xmlserializer "^4.0.0"
+ webidl-conversions "^7.0.0"
+ whatwg-encoding "^2.0.0"
+ whatwg-mimetype "^3.0.0"
+ whatwg-url "^11.0.0"
+ ws "^8.11.0"
+ xml-name-validator "^4.0.0"
+
+ jsesc@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d"
+ integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==
+
+ json-parse-even-better-errors@^2.3.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
+ integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
+
+ json-schema-traverse@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
+ integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
+
+ json5@^2.2.3:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
+ integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
+
+ kleur@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
+ integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
+
+ kleur@^4.1.5:
+ version "4.1.5"
+ resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780"
+ integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==
+
+ leven@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
+ integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
+
+ lines-and-columns@^1.1.6:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
+ integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
+
+ locate-path@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
+ integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
+ dependencies:
+ p-locate "^4.1.0"
+
+ lodash.memoize@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
+ integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==
+
+ lru-cache@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
+ integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
+ dependencies:
+ yallist "^3.0.2"
+
+ make-dir@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e"
+ integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==
+ dependencies:
+ semver "^7.5.3"
+
+ make-error@^1.3.6:
+ version "1.3.6"
+ resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
+ integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
+
+ makeerror@1.0.12:
+ version "1.0.12"
+ resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a"
+ integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==
+ dependencies:
+ tmpl "1.0.5"
+
+ math-intrinsics@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9"
+ integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==
+
+ merge-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
+ integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
+
+ micromatch@^4.0.4:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
+ integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
+ dependencies:
+ braces "^3.0.3"
+ picomatch "^2.3.1"
+
+ mime-db@1.52.0:
+ version "1.52.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
+ integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+
+ mime-db@^1.54.0:
+ version "1.54.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5"
+ integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==
+
+ mime-types@^2.1.35:
+ version "2.1.35"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
+ integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
+ dependencies:
+ mime-db "1.52.0"
+
+ mimic-fn@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
+ integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
+
+ miniflare@^4.20260421.0:
+ version "4.20260730.0"
+ resolved "https://registry.yarnpkg.com/miniflare/-/miniflare-4.20260730.0.tgz#56c731a8f9e7f309d09eb26a892b95aad4e35537"
+ integrity sha512-1Z9SB9r/o//80UA02Re3QhtcecSHAyAjf5EcKBfQVlQrCg7Miy79hl2PvtkwFLIaJ5rcrOPdDcRr577okwZPsg==
+ dependencies:
+ "@cspotcode/source-map-support" "0.8.1"
+ sharp "0.35.2"
+ undici "7.28.0"
+ workerd "1.20260730.1"
+ ws "8.21.0"
+ youch "4.1.0-beta.10"
+
+ minimatch@^3.0.4, minimatch@^3.1.1:
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.5.tgz#580c88f8d5445f2bd6aa8f3cadefa0de79fbd69e"
+ integrity sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==
+ dependencies:
+ brace-expansion "^1.1.7"
+
+ minimist@^1.2.5:
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
+ integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
+
+ minimizer-webpack-plugin@^5.6.1:
+ version "5.6.1"
+ resolved "https://registry.yarnpkg.com/minimizer-webpack-plugin/-/minimizer-webpack-plugin-5.6.1.tgz#289922a4c96c4ed1ddb76b8a00bd8074e89a2f7f"
+ integrity sha512-DoeAZz8Q1C1znwsUzej1fdoi4jCf7/+Em27ouLqfK/+3m8G+D7yDhUwrc3CNhjSzGUN1kn7Iv4sWmjflQHenpw==
+ dependencies:
+ "@jridgewell/trace-mapping" "^0.3.25"
+ jest-worker "^27.4.5"
+ schema-utils "^4.3.0"
+ terser "^5.31.1"
+
+ ms@^2.1.3:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
+ integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
+ msw@2.11.2:
+ version "2.11.2"
+ resolved "https://registry.yarnpkg.com/msw/-/msw-2.11.2.tgz#622d83855f456a5f93b1528f6eb6f4c0114623c3"
+ integrity sha512-MI54hLCsrMwiflkcqlgYYNJJddY5/+S0SnONvhv1owOplvqohKSQyGejpNdUGyCwgs4IH7PqaNbPw/sKOEze9Q==
+ dependencies:
+ "@bundled-es-modules/cookie" "^2.0.1"
+ "@bundled-es-modules/statuses" "^1.0.1"
+ "@inquirer/confirm" "^5.0.0"
+ "@mswjs/interceptors" "^0.39.1"
+ "@open-draft/deferred-promise" "^2.2.0"
+ "@open-draft/until" "^2.1.0"
+ "@types/cookie" "^0.6.0"
+ "@types/statuses" "^2.0.4"
+ graphql "^16.8.1"
+ headers-polyfill "^4.0.2"
+ is-node-process "^1.2.0"
+ outvariant "^1.4.3"
+ path-to-regexp "^6.3.0"
+ picocolors "^1.1.1"
+ rettime "^0.7.0"
+ strict-event-emitter "^0.5.1"
+ tough-cookie "^6.0.0"
+ type-fest "^4.26.1"
+ yargs "^17.7.2"
+
+ mute-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-2.0.0.tgz#a5446fc0c512b71c83c44d908d5c7b7b4c493b2b"
+ integrity sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==
+
+ natural-compare@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+ integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
+
+ neo-async@^2.6.2:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
+ integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
+
+ node-fetch@^2.7.0:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
+ integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
+ dependencies:
+ whatwg-url "^5.0.0"
+
+ node-int64@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
+ integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==
+
+ node-releases@^2.0.53:
+ version "2.0.53"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.53.tgz#0fe5ad8a7935e075172f574e56f0c20f07fa41af"
+ integrity sha512-D9UOmYG3UH1V+ENW56t5QXBwJw1YEY18ruVeus89Rw+SyIgjPkCO84bRzO3uNIYosJbNwiabWVn48o3uJLjxFQ==
+
+ normalize-path@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+ integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+
+ npm-run-path@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
+ integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
+ dependencies:
+ path-key "^3.0.0"
+
+ nwsapi@^2.2.2:
+ version "2.2.24"
+ resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.24.tgz#f8927043d4c9b516abdebe804a32c8d1f9484d1f"
+ integrity sha512-7YRhZ3jS45LwmSCT4b2sVFHt/WuovaktDU07QrtOBY2PXskss5a9jfmR9jptyumwXST+rFjrmppMY1KT/yn35A==
+
+ once@^1.3.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
+ dependencies:
+ wrappy "1"
+
+ onetime@^5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
+ integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
+ dependencies:
+ mimic-fn "^2.1.0"
+
+ outvariant@^1.4.0, outvariant@^1.4.3:
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/outvariant/-/outvariant-1.4.3.tgz#221c1bfc093e8fec7075497e7799fdbf43d14873"
+ integrity sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==
+
+ p-limit@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
+ integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
+ dependencies:
+ p-try "^2.0.0"
+
+ p-limit@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
+ integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
+ dependencies:
+ yocto-queue "^0.1.0"
+
+ p-locate@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
+ integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
+ dependencies:
+ p-limit "^2.2.0"
+
+ p-try@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
+ integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+
+ parse-json@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
+ integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ error-ex "^1.3.1"
+ json-parse-even-better-errors "^2.3.0"
+ lines-and-columns "^1.1.6"
+
+ parse5@^7.0.0, parse5@^7.1.1:
+ version "7.3.0"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.3.0.tgz#d7e224fa72399c7a175099f45fc2ad024b05ec05"
+ integrity sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==
+ dependencies:
+ entities "^6.0.0"
+
+ path-exists@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
+ integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+
+ path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+ integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
+
+ path-key@^3.0.0, path-key@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
+ integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+
+ path-parse@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
+ integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
+
+ path-to-regexp@^6.3.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.3.0.tgz#2b6a26a337737a8e1416f9272ed0766b1c0389f4"
+ integrity sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==
+
+ picocolors@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
+ integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
+
+ picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.2.tgz#5a942915e26b372dc0f0e6753149a16e6b1c5601"
+ integrity sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==
+
+ picomatch@^4.0.0:
+ version "4.0.5"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.5.tgz#51ea57a17d86f605f81039595fbc40ed06a55fab"
+ integrity sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==
+
+ pirates@^4.0.4:
+ version "4.0.7"
+ resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.7.tgz#643b4a18c4257c8a65104b73f3049ce9a0a15e22"
+ integrity sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==
+
+ pkg-dir@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
+ integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
+ dependencies:
+ find-up "^4.0.0"
+
+ pretty-format@^29.0.0, pretty-format@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812"
+ integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==
+ dependencies:
+ "@jest/schemas" "^29.6.3"
+ ansi-styles "^5.0.0"
+ react-is "^18.0.0"
+
+ process@^0.11.10:
+ version "0.11.10"
+ resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
+ integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
+
+ prompts@^2.0.1:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069"
+ integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==
+ dependencies:
+ kleur "^3.0.3"
+ sisteransi "^1.0.5"
+
+ psl@^1.1.33:
+ version "1.15.0"
+ resolved "https://registry.yarnpkg.com/psl/-/psl-1.15.0.tgz#bdace31896f1d97cec6a79e8224898ce93d974c6"
+ integrity sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==
+ dependencies:
+ punycode "^2.3.1"
+
+ punycode@^2.1.1, punycode@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
+ integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
+
+ pure-rand@^6.0.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2"
+ integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==
+
+ querystringify@^2.1.1:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
+ integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
+
+ react-is@^18.0.0:
+ version "18.3.1"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e"
+ integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==
+
+ readable-stream@^4.7.0:
+ version "4.7.0"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.7.0.tgz#cedbd8a1146c13dfff8dab14068028d58c15ac91"
+ integrity sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==
+ dependencies:
+ abort-controller "^3.0.0"
+ buffer "^6.0.3"
+ events "^3.3.0"
+ process "^0.11.10"
+ string_decoder "^1.3.0"
+
+ redis@^4.7.0:
+ version "4.7.1"
+ resolved "https://registry.yarnpkg.com/redis/-/redis-4.7.1.tgz#08588a30936be0e7ad9c0f3e1ac6a85ccaf73e94"
+ integrity sha512-S1bJDnqLftzHXHP8JsT5II/CtHWQrASX5K96REjWjlmWKrviSOLWmM7QnRLstAWsu1VBBV1ffV6DzCvxNP0UJQ==
+ dependencies:
+ "@redis/bloom" "1.2.0"
+ "@redis/client" "1.6.1"
+ "@redis/graph" "1.1.1"
+ "@redis/json" "1.0.7"
+ "@redis/search" "1.2.0"
+ "@redis/time-series" "1.1.0"
+
+ require-directory@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+ integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
+
+ require-from-string@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
+ integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
+
+ requires-port@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
+ integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==
+
+ resolve-cwd@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
+ integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
+ dependencies:
+ resolve-from "^5.0.0"
+
+ resolve-from@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
+ integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
+
+ resolve.exports@^2.0.0:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.3.tgz#41955e6f1b4013b7586f873749a635dea07ebe3f"
+ integrity sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==
+
+ resolve@^1.20.0:
+ version "1.22.12"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.12.tgz#f5b2a680897c69c238a13cd16b15671f8b73549f"
+ integrity sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==
+ dependencies:
+ es-errors "^1.3.0"
+ is-core-module "^2.16.1"
+ path-parse "^1.0.7"
+ supports-preserve-symlinks-flag "^1.0.0"
+
+ rettime@^0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/rettime/-/rettime-0.7.0.tgz#c040f1a65e396eaa4b8346dd96ed937edc79d96f"
+ integrity sha512-LPRKoHnLKd/r3dVxcwO7vhCW+orkOGj9ViueosEBK6ie89CijnfRlhaDhHq/3Hxu4CkWQtxwlBG0mzTQY6uQjw==
+
+ safe-buffer@~5.2.0:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
+ "safer-buffer@>= 2.1.2 < 3.0.0":
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+ saxes@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5"
+ integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==
+ dependencies:
+ xmlchars "^2.2.0"
+
+ schema-utils@^4.3.0, schema-utils@^4.3.3:
+ version "4.3.3"
+ resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.3.tgz#5b1850912fa31df90716963d45d9121fdfc09f46"
+ integrity sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==
+ dependencies:
+ "@types/json-schema" "^7.0.9"
+ ajv "^8.9.0"
+ ajv-formats "^2.1.1"
+ ajv-keywords "^5.1.0"
+
+ semver@^6.3.0, semver@^6.3.1:
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
+ integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
+
+ semver@^7.5.3, semver@^7.5.4, 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.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.1.0"
+ detect-libc "^2.1.2"
+ semver "^7.8.4"
+ optionalDependencies:
+ "@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"
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
+ integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
+ dependencies:
+ shebang-regex "^3.0.0"
+
+ shebang-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
+ integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+
+ signal-exit@^3.0.3, signal-exit@^3.0.7:
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
+ integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
+
+ signal-exit@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
+ integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
+
+ sisteransi@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
+ integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
+
+ slash@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
+ integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
+
+ source-map-support@0.5.13:
+ version "0.5.13"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932"
+ integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==
+ dependencies:
+ buffer-from "^1.0.0"
+ source-map "^0.6.0"
+
+ source-map-support@~0.5.20:
+ version "0.5.21"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
+ integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
+ dependencies:
+ buffer-from "^1.0.0"
+ source-map "^0.6.0"
+
+ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+ source-map@^0.7.4:
+ version "0.7.6"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.6.tgz#a3658ab87e5b6429c8a1f3ba0083d4c61ca3ef02"
+ integrity sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==
+
+ sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+ integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
+
+ stack-utils@^2.0.3:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f"
+ integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==
+ dependencies:
+ escape-string-regexp "^2.0.0"
+
+ statuses@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.2.tgz#8f75eecef765b5e1cfcdc080da59409ed424e382"
+ integrity sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==
+
+ strict-event-emitter@^0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz#1602ece81c51574ca39c6815e09f1a3e8550bd93"
+ integrity sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==
+
+ string-length@^4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a"
+ integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==
+ dependencies:
+ char-regex "^1.0.2"
+ strip-ansi "^6.0.0"
+
+ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.1"
+
+ string_decoder@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
+ integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
+ dependencies:
+ safe-buffer "~5.2.0"
+
+ strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+ dependencies:
+ ansi-regex "^5.0.1"
+
+ strip-bom@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
+ integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
+
+ strip-final-newline@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
+ integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+
+ strip-json-comments@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
+ integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+
+ supports-color@^10.0.0:
+ version "10.2.2"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-10.2.2.tgz#466c2978cc5cd0052d542a0b576461c2b802ebb4"
+ integrity sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==
+
+ supports-color@^7.1.0:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
+ integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
+ dependencies:
+ has-flag "^4.0.0"
+
+ supports-color@^8.0.0:
+ version "8.1.1"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
+ integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
+ dependencies:
+ has-flag "^4.0.0"
+
+ supports-preserve-symlinks-flag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
+ integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+
+ symbol-tree@^3.2.4:
+ version "3.2.4"
+ resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
+ integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
+
+ tapable@^2.3.0, tapable@^2.3.3:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.3.3.tgz#5da7c9992c46038221267985ab28421a8879f160"
+ integrity sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==
+
+ terser@^5.31.1:
+ version "5.50.0"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-5.50.0.tgz#4e560a46704f9172f96ba31c3bd6dc108ad2cead"
+ integrity sha512-CN9BVxWhgS/hRxtUMjtC2uRWSTcSfQFHMDWma6sKKfIivCD91sM+FOPfvwoaRMqCSrUpe1nv3jDamd9eEQ4y+w==
+ dependencies:
+ "@jridgewell/source-map" "^0.3.3"
+ acorn "^8.15.0"
+ commander "^2.20.0"
+ source-map-support "~0.5.20"
+
+ test-exclude@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
+ integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
+ dependencies:
+ "@istanbuljs/schema" "^0.1.2"
+ glob "^7.1.4"
+ minimatch "^3.0.4"
+
+ tldts-core@^7.4.10:
+ version "7.4.10"
+ resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-7.4.10.tgz#33b31839bc37e8283f97d8b5741aa665691701f0"
+ integrity sha512-KnQjp53ZekKgm/r3l+u8kJGGzYgrWdP8+Mql7a4vijh2WE0IrZWspQj/TpTxDho/YxO+AnOZnIjQcCD+q6iJsw==
+
+ tldts@^7.0.5:
+ version "7.4.10"
+ resolved "https://registry.yarnpkg.com/tldts/-/tldts-7.4.10.tgz#c1f2804bb028062ae5345cb0adb129cd50f94471"
+ integrity sha512-GgouD1B+sWwvkaEq8vXC15DjQitxbvs12oIXELpconwm+Tg3zfcEv4jgzq3vtKverDXsg3VI8aRgNL2Nra0Iog==
+ dependencies:
+ tldts-core "^7.4.10"
+
+ tmpl@1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc"
+ integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==
+
+ to-regex-range@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+ integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+ dependencies:
+ is-number "^7.0.0"
+
+ tough-cookie@^4.1.2:
+ version "4.1.4"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36"
+ integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==
+ dependencies:
+ psl "^1.1.33"
+ punycode "^2.1.1"
+ universalify "^0.2.0"
+ url-parse "^1.5.3"
+
+ tough-cookie@^6.0.0:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-6.0.2.tgz#7b1f22fcf2daf06c4ff9d53ec1845f44c6627062"
+ integrity sha512-exgYmnmL/sJpR3upZfXG5PoatXQii55xAiXGXzY+sROLZ/Y+SLcp9PgJNI9Vz37HpQ74WvDcLT8eqm+kV3FzrA==
+ dependencies:
+ tldts "^7.0.5"
+
+ tr46@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9"
+ integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==
+ dependencies:
+ punycode "^2.1.1"
+
+ tr46@~0.0.3:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
+ integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
+
+ ts-jest@^29.3.4:
+ 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"
+ handlebars "^4.7.9"
+ json5 "^2.2.3"
+ lodash.memoize "^4.1.2"
+ make-error "^1.3.6"
+ semver "^7.8.5"
+ type-fest "^4.41.0"
+ yargs-parser "^21.1.1"
+
+ ts-loader@^9.5.4:
+ version "9.6.2"
+ resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.6.2.tgz#a08f4935ddb87edbd58ce33b7b2558c2a77fdd47"
+ integrity sha512-R4iuczmtgxvtuI556s+hTZ6/7Ee03VCAk/l/M8LY1OAsUgB7YydsCxkgq9D9pKRaD7GJqUi2u8fp9zZP/ufjKA==
+ dependencies:
+ chalk "^4.1.0"
+ picomatch "^4.0.0"
+ source-map "^0.7.4"
+
+ tslib@^2.4.0:
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
+ integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
+
+ type-detect@4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
+ integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
+
+ type-fest@^0.21.3:
+ version "0.21.3"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
+ integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
+
+ type-fest@^4.26.1, type-fest@^4.41.0:
+ version "4.41.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.41.0.tgz#6ae1c8e5731273c2bf1f58ad39cbae2c91a46c58"
+ integrity sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==
+
+ typescript@~5.9.3:
+ version "5.9.3"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f"
+ integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==
+
+ uglify-js@^3.1.4:
+ version "3.19.3"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.3.tgz#82315e9bbc6f2b25888858acd1fff8441035b77f"
+ integrity sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==
+
+ undici-types@~6.21.0:
+ version "6.21.0"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb"
+ integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==
+
+ undici-types@~8.3.0:
+ version "8.3.0"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.3.0.tgz#44e9fc9f3244648cdea35e4f9bb2d681e9410809"
+ integrity sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==
+
+ undici@7.28.0, undici@7.29.0:
+ version "7.29.0"
+ resolved "https://registry.yarnpkg.com/undici/-/undici-7.29.0.tgz#ae0f6f62e06e057a9cbb7b2b5fde2bb74f791b8f"
+ integrity sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==
+
+ universalify@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0"
+ integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==
+
+ update-browserslist-db@^1.3.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.3.1.tgz#a71c28dd22f505481dbc4689087b18d933e90afd"
+ integrity sha512-ZZ61DsRsOnakl74HAmp3oSN4aXUmEWXf+i/yv0h7tIBfICc3VdrFErQKUUKPgu3AMsTUMbcongALEN4l6GSUrQ==
+ dependencies:
+ escalade "^3.2.0"
+ picocolors "^1.1.1"
+
+ url-parse@^1.5.3:
+ version "1.5.10"
+ resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1"
+ integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==
+ dependencies:
+ querystringify "^2.1.1"
+ requires-port "^1.0.0"
+
+ v8-to-istanbul@^9.0.1:
+ version "9.3.0"
+ resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz#b9572abfa62bd556c16d75fdebc1a411d5ff3175"
+ integrity sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==
+ dependencies:
+ "@jridgewell/trace-mapping" "^0.3.12"
+ "@types/istanbul-lib-coverage" "^2.0.1"
+ convert-source-map "^2.0.0"
+
+ w3c-xmlserializer@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073"
+ integrity sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==
+ dependencies:
+ xml-name-validator "^4.0.0"
+
+ walker@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f"
+ integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==
+ dependencies:
+ makeerror "1.0.12"
+
+ watchpack@^2.5.2:
+ version "2.5.2"
+ resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.5.2.tgz#e12e82d84674266fc1c6dbfe38891b92ff0522ec"
+ integrity sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==
+ dependencies:
+ graceful-fs "^4.1.2"
+
+ webidl-conversions@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
+ integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
+
+ webidl-conversions@^7.0.0:
+ version "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.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.109.2"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.109.2.tgz#b58dc289561c3282db35c210a99379a836a4c28d"
+ integrity sha512-U9/cvLzxObKNEZ9+TtdqrHM5/9z3lgl2c+c4BzbqGxFQvQvBAq87yql5A8pQ+rrMbS496MZJeF5enVBndIy2hw==
+ dependencies:
+ "@types/estree" "^1.0.8"
+ "@types/json-schema" "^7.0.15"
+ "@webassemblyjs/ast" "^1.14.1"
+ "@webassemblyjs/wasm-edit" "^1.14.1"
+ "@webassemblyjs/wasm-parser" "^1.14.1"
+ acorn "^8.16.0"
+ browserslist "^4.28.1"
+ chrome-trace-event "^1.0.2"
+ enhanced-resolve "^5.24.4"
+ es-module-lexer "^2.1.0"
+ eslint-scope "5.1.1"
+ events "^3.2.0"
+ graceful-fs "^4.2.11"
+ 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.1"
+
+ whatwg-encoding@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53"
+ integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==
+ dependencies:
+ iconv-lite "0.6.3"
+
+ whatwg-mimetype@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7"
+ integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==
+
+ whatwg-url@^11.0.0:
+ version "11.0.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018"
+ integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==
+ dependencies:
+ tr46 "^3.0.0"
+ webidl-conversions "^7.0.0"
+
+ whatwg-url@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
+ integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==
+ dependencies:
+ tr46 "~0.0.3"
+ webidl-conversions "^3.0.0"
+
+ which@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
+ integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
+ dependencies:
+ isexe "^2.0.0"
+
+ wordwrap@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
+ integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==
+
+ workerd@1.20260730.1:
+ version "1.20260730.1"
+ resolved "https://registry.yarnpkg.com/workerd/-/workerd-1.20260730.1.tgz#d1e5e12f651905b37fbbedf9e3462585ca7956b3"
+ integrity sha512-zmfNIjwYSWFY5chGBOjWtH3xAE7p97FTC6vR4Ep98290ho6AeAR/NVcBD274YCLEUYzqm8yxdtZlxMybU8a3jA==
+ optionalDependencies:
+ "@cloudflare/workerd-darwin-64" "1.20260730.1"
+ "@cloudflare/workerd-darwin-arm64" "1.20260730.1"
+ "@cloudflare/workerd-linux-64" "1.20260730.1"
+ "@cloudflare/workerd-linux-arm64" "1.20260730.1"
+ "@cloudflare/workerd-windows-64" "1.20260730.1"
+
+ wrap-ansi@^6.2.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
+ integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
+ wrap-ansi@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
+ wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
+
+ write-file-atomic@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd"
+ integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==
+ dependencies:
+ imurmurhash "^0.1.4"
+ signal-exit "^3.0.7"
+
+ ws@8.21.0:
+ version "8.21.0"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.0.tgz#012e413fc07429945121b0c153158c4343086951"
+ integrity sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==
+
+ ws@^8.11.0, ws@^8.18.1:
+ version "8.21.3"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc"
+ integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==
+
+ xml-name-validator@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835"
+ integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==
+
+ xmlchars@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
+ integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
+
+ y18n@^5.0.5:
+ version "5.0.8"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
+ integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
+
+ yallist@4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+ integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+
+ yallist@^3.0.2:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
+ integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
+
+ yargs-parser@^21.1.1:
+ version "21.1.1"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
+ integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
+
+ yargs@^17.3.1, yargs@^17.7.2:
+ version "17.7.3"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.3.tgz#779dffe6bcafec596a7172e983289a588647faaa"
+ integrity sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==
+ dependencies:
+ cliui "^8.0.1"
+ escalade "^3.1.1"
+ get-caller-file "^2.0.5"
+ require-directory "^2.1.1"
+ string-width "^4.2.3"
+ y18n "^5.0.5"
+ yargs-parser "^21.1.1"
+
+ yocto-queue@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
+ integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+
+ yoctocolors-cjs@^2.1.3:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz#7e4964ea8ec422b7a40ac917d3a344cfd2304baa"
+ integrity sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==
+
+ youch-core@^0.3.3:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/youch-core/-/youch-core-0.3.3.tgz#c5d3d85aeea0d8bc7b36e9764ed3f14b7ceddc7d"
+ integrity sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==
+ dependencies:
+ "@poppinss/exception" "^1.2.2"
+ error-stack-parser-es "^1.0.5"
+
+ youch@4.1.0-beta.10:
+ version "4.1.0-beta.10"
+ resolved "https://registry.yarnpkg.com/youch/-/youch-4.1.0-beta.10.tgz#94702059e0ba7668025f5cd1b5e5c0f3eb0e83c2"
+ integrity sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==
+ dependencies:
+ "@poppinss/colors" "^4.1.5"
+ "@poppinss/dumper" "^0.6.4"
+ "@speed-highlight/core" "^1.2.7"
+ cookie "^1.0.2"
+ youch-core "^0.3.3"
diff --git a/package.json b/package.json
index 9937134d..39d7c7de 100644
--- a/package.json
+++ b/package.json
@@ -57,6 +57,9 @@
"crypto": false,
"timers": false
},
+ "resolutions": {
+ "undici": "7.29.0"
+ },
"packageManager": "yarn@1.22.22",
"engines": {
"node": ">=18.0.0"
diff --git a/yarn.lock b/yarn.lock
index 663366d9..4f1f74b3 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3656,10 +3656,10 @@ undici-types@~8.3.0:
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.3.0.tgz#44e9fc9f3244648cdea35e4f9bb2d681e9410809"
integrity sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==
-undici@7.28.0:
- version "7.28.0"
- resolved "https://registry.yarnpkg.com/undici/-/undici-7.28.0.tgz#97d64564198b285bc281f0e8e29597e3d11fe7ec"
- integrity sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==
+undici@7.28.0, undici@7.29.0:
+ version "7.29.0"
+ resolved "https://registry.yarnpkg.com/undici/-/undici-7.29.0.tgz#ae0f6f62e06e057a9cbb7b2b5fde2bb74f791b8f"
+ integrity sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==
universalify@^0.2.0:
version "0.2.0"