From fe90e201b7ad8bda7f98e786debfae37c025ee98 Mon Sep 17 00:00:00 2001 From: Allen Zhang Date: Tue, 11 Jun 2024 19:41:48 -0700 Subject: [PATCH 01/42] ARM Library reorganization (#945) - Created fully versioned Azure.ResourceManager.CommonTypes subnamespace - Moving all common type definitions/parameters into corresponding tsp files for later easy swagger generation - Adding back compat layers so all existing entities moved from Foundations continue to work (via `alias`) - Added default logic to add `@useDependency` to CommonType reference via `@armProviderNamespace` and `@armCommonTypeVersion` decorators to prevent breaking change. --------- Co-authored-by: Timothee Guerin --- .../azhang_ArmReorg-2024-4-31-18-40-39.md | 7 + .../reference/data-types.md | 1460 ++++++++++------- .../reference/decorators.md | 6 +- .../reference/index.mdx | 95 +- .../reference/interfaces.md | 112 +- .../arm-library/ref-library/int-templates.tsp | 1 + .../arm-library/ref-library/op-templates.tsp | 1 + .../operations/operation-status/main.tsp | 2 +- .../common-properties/main.tsp | 68 + .../encryption/main.tsp | 16 +- .../managed-identity/main.tsp | 62 + .../2023-03-01-preview/openapi.json | 554 +++++++ .../{ => 2023-03-01-preview}/openapi.json | 56 +- .../2023-03-01-preview/openapi.json | 483 ++++++ .../typespec-autorest/test/arm/arm.test.ts | 4 + .../test/decorators.test.ts | 2 + .../typespec-azure-resource-manager/README.md | 6 +- .../lib/arm.tsp | 9 +- .../lib/backcompat.tsp | 27 + .../lib/common-types/common-types.tsp | 12 +- .../commontypes.private.decorators.tsp | 43 + .../customer-managed-keys-ref.tsp | 27 + .../common-types/customer-managed-keys.tsp | 83 +- .../common-types/extended-location-ref.tsp | 1 + .../lib/common-types/extended-location.tsp | 31 +- .../lib/common-types/internal.tsp | 24 + .../lib/common-types/managed-identity-ref.tsp | 79 + .../lib/common-types/managed-identity.tsp | 137 +- .../lib/common-types/private-links-ref.tsp | 159 ++ .../lib/common-types/private-links.tsp | 156 +- .../lib/common-types/types-ref.tsp | 414 +++++ .../lib/common-types/types.tsp | 514 +++--- .../lib/decorators.tsp | 2 +- .../lib/{ => foundations}/arm.foundations.tsp | 44 +- .../lib/foundations/backcompat.tsp | 39 + .../deprecation.tsp} | 11 + .../lib/models.tsp | 18 + .../lib/parameters.tsp | 81 +- .../lib/private.decorators.tsp | 38 - .../lib/responses.tsp | 14 +- .../src/common-types.ts | 68 +- .../src/commontypes.private.decorators.ts | 135 ++ .../src/lib.ts | 6 + .../src/namespace.ts | 51 + .../src/private.decorators.ts | 126 -- .../src/rules/arm-common-types-version.ts | 12 +- .../src/rules/core-operations.ts | 2 +- .../arm-common-types-registration.test.ts | 26 +- .../test/enforce-constraint.test.ts | 14 +- .../test/rules/arm-resource-interface.test.ts | 2 + .../test/rules/core-operations.test.ts | 6 + .../test/rules/operation-usage.test.ts | 2 + .../test/rules/patch-operations.test.ts | 4 + .../test/rules/retry-after.test.ts | 27 +- 54 files changed, 3850 insertions(+), 1529 deletions(-) create mode 100644 .chronus/changes/azhang_ArmReorg-2024-4-31-18-40-39.md create mode 100644 packages/samples/specs/resource-manager/resource-common-properties/common-properties/main.tsp create mode 100644 packages/samples/specs/resource-manager/resource-common-properties/managed-identity/main.tsp create mode 100644 packages/samples/test/output/azure/resource-manager/resource-common-properties/common-properties/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json rename packages/samples/test/output/azure/resource-manager/resource-common-properties/encryption/@azure-tools/typespec-autorest/{ => 2023-03-01-preview}/openapi.json (76%) create mode 100644 packages/samples/test/output/azure/resource-manager/resource-common-properties/managed-identity/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json create mode 100644 packages/typespec-azure-resource-manager/lib/backcompat.tsp create mode 100644 packages/typespec-azure-resource-manager/lib/common-types/commontypes.private.decorators.tsp create mode 100644 packages/typespec-azure-resource-manager/lib/common-types/customer-managed-keys-ref.tsp create mode 100644 packages/typespec-azure-resource-manager/lib/common-types/extended-location-ref.tsp create mode 100644 packages/typespec-azure-resource-manager/lib/common-types/internal.tsp create mode 100644 packages/typespec-azure-resource-manager/lib/common-types/managed-identity-ref.tsp create mode 100644 packages/typespec-azure-resource-manager/lib/common-types/private-links-ref.tsp create mode 100644 packages/typespec-azure-resource-manager/lib/common-types/types-ref.tsp rename packages/typespec-azure-resource-manager/lib/{ => foundations}/arm.foundations.tsp (93%) create mode 100644 packages/typespec-azure-resource-manager/lib/foundations/backcompat.tsp rename packages/typespec-azure-resource-manager/lib/{common-types/backcompat.tsp => foundations/deprecation.tsp} (59%) create mode 100644 packages/typespec-azure-resource-manager/src/commontypes.private.decorators.ts diff --git a/.chronus/changes/azhang_ArmReorg-2024-4-31-18-40-39.md b/.chronus/changes/azhang_ArmReorg-2024-4-31-18-40-39.md new file mode 100644 index 0000000000..958652c9f0 --- /dev/null +++ b/.chronus/changes/azhang_ArmReorg-2024-4-31-18-40-39.md @@ -0,0 +1,7 @@ +--- +changeKind: internal +packages: + - "@azure-tools/typespec-azure-resource-manager" +--- + +Reorganize ARM library internal models into fully version controlled `Azure.ResourceManager.CommontTypes` namespace. \ No newline at end of file diff --git a/docs/libraries/azure-resource-manager/reference/data-types.md b/docs/libraries/azure-resource-manager/reference/data-types.md index 4b8edd2901..178430fad5 100644 --- a/docs/libraries/azure-resource-manager/reference/data-types.md +++ b/docs/libraries/azure-resource-manager/reference/data-types.md @@ -8,20 +8,6 @@ toc_max_heading_level: 3 ## Azure.ResourceManager -### `ApiVersionParameter` {#Azure.ResourceManager.ApiVersionParameter} - -The default api-version parameter type. - -```typespec -model Azure.ResourceManager.ApiVersionParameter -``` - -#### Properties - -| Name | Type | Description | -| ---------- | -------- | ------------------------------------------ | -| apiVersion | `string` | The API version to use for this operation. | - ### `ArmAcceptedLroResponse` {#Azure.ResourceManager.ArmAcceptedLroResponse} ```typespec @@ -201,9 +187,9 @@ model Azure.ResourceManager.ArmLocationResource #### Properties -| Name | Type | Description | -| -------- | -------- | ------------------ | -| location | `string` | The location name. | +| Name | Type | Description | +| -------- | -------- | ----------------------------- | +| location | `string` | The name of the Azure region. | ### `ArmLroLocationHeader` {#Azure.ResourceManager.ArmLroLocationHeader} @@ -273,7 +259,7 @@ model Azure.ResourceManager.ArmOperationStatus | startTime? | `utcDateTime` | Operation start time | | endTime? | `utcDateTime` | Operation complete time | | percentComplete? | `float64` | The progress made toward completing the operation | -| error? | [`ErrorDetail`](./data-types.md#Azure.ResourceManager.Foundations.ErrorDetail) | Errors that occurred if the operation ended with Canceled or Failed status | +| error? | [`ErrorDetail`](./data-types.md#Azure.ResourceManager.CommonTypes.ErrorDetail) | Errors that occurred if the operation ended with Canceled or Failed status | ### `ArmResourceCreatedResponse` {#Azure.ResourceManager.ArmResourceCreatedResponse} @@ -378,23 +364,6 @@ model Azure.ResourceManager.ArmResponse | statusCode | `200` | The status code. | | body | `ResponseBody` | | -### `CustomerManagedKeyEncryption` {#Azure.ResourceManager.CustomerManagedKeyEncryption} - -Customer-managed key encryption properties for the resource. - -```typespec -model Azure.ResourceManager.CustomerManagedKeyEncryption -``` - -#### Properties - -| Name | Type | Description | -| ------------------------------- | -------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| keyEncryptionKeyIdentity? | [`KeyEncryptionKeyIdentity`](./data-types.md#Azure.ResourceManager.KeyEncryptionKeyIdentity) | The type of identity to use. Values can be systemAssignedIdentity, userAssignedIdentity, or delegatedResourceIdentity. | -| userAssignedIdentityResourceId? | `Core.armResourceIdentifier` | User assigned identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity. | -| federatedClientId? | `Core.uuid` | application client identity to use for accessing key encryption key Url in a different tenant. Ex: f83c6b1b-4d34-47e4-bb34-9d83df58b540 | -| delegatedIdentityClientId? | `Core.uuid` | delegated identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity and userAssignedIdentity - internal use only. | - ### `DefaultProvisioningStateProperty` {#Azure.ResourceManager.DefaultProvisioningStateProperty} Standard resource provisioning state model. If you do not have any custom provisioning state, @@ -419,12 +388,13 @@ model FooProperties { | ------------------ | ---------------------------------------------------------------------------------------------- | --------------------------------------- | | provisioningState? | [`ResourceProvisioningState`](./data-types.md#Azure.ResourceManager.ResourceProvisioningState) | The provisioning state of the resource. | -### `Encryption` {#Azure.ResourceManager.Encryption} +### `EncryptionProperty` {#Azure.ResourceManager.EncryptionProperty} Model used only to spread in the `encryption` envelope property for a resource. +All encryption configuration for a resource. ```typespec -model Azure.ResourceManager.Encryption +model Azure.ResourceManager.EncryptionProperty ``` #### Examples @@ -437,25 +407,9 @@ model Foo is TrackedResource { #### Properties -| Name | Type | Description | -| ---------- | ------------------------------------------------------------------------------------------ | -------------------------------------------- | -| encryption | [`EncryptionConfiguration`](./data-types.md#Azure.ResourceManager.EncryptionConfiguration) | All encryption configuration for a resource. | - -### `EncryptionConfiguration` {#Azure.ResourceManager.EncryptionConfiguration} - -All encryption configuration for a resource. - -```typespec -model Azure.ResourceManager.EncryptionConfiguration -``` - -#### Properties - -| Name | Type | Description | -| ----------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| infrastructureEncryption? | [`InfrastructureEncryption`](./data-types.md#Azure.ResourceManager.InfrastructureEncryption) | Indicates if infrastructure encryption is enabled or disabled. | -| customerManagedKeyEncryption? | [`CustomerManagedKeyEncryption`](./data-types.md#Azure.ResourceManager.CustomerManagedKeyEncryption) | All customer-managed key encryption properties for the resource. | -| keyEncryptionKeyUrl? | `string` | key encryption key Url, versioned or unversioned. Ex: https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 or https://contosovault.vault.azure.net/keys/contosokek. | +| Name | Type | Description | +| ---------- | ---------------------------------------------------------------------------- | -------------------------------------------- | +| encryption | [`Encryption`](./data-types.md#Azure.ResourceManager.CommonTypes.Encryption) | All encryption configuration for a resource. | ### `EntityTagProperty` {#Azure.ResourceManager.EntityTagProperty} @@ -480,20 +434,6 @@ model Foo is TrackedResource { | ----- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | eTag? | `string` | If eTag is provided in the response body, it may also be provided as a header per the normal etag convention. Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields. | -### `ErrorResponse` {#Azure.ResourceManager.ErrorResponse} - -The standard Azure Resource Manager error response - -```typespec -model Azure.ResourceManager.ErrorResponse -``` - -#### Properties - -| Name | Type | Description | -| ------ | ------------------------------------------------------------------------------ | ----------------- | -| error? | [`ErrorDetail`](./data-types.md#Azure.ResourceManager.Foundations.ErrorDetail) | The error object. | - ### `ExtendedLocationProperty` {#Azure.ResourceManager.ExtendedLocationProperty} Model representing the standard `extendedLocation` envelope property for a resource. @@ -516,7 +456,7 @@ model Employee is TrackedResource { | Name | Type | Description | | ----------------- | ---------------------------------------------------------------------------------------- | ----------- | -| extendedLocation? | [`ExtendedLocation`](./data-types.md#Azure.ResourceManager.Foundations.ExtendedLocation) | | +| extendedLocation? | [`ExtendedLocation`](./data-types.md#Azure.ResourceManager.CommonTypes.ExtendedLocation) | | ### `ExtensionResource` {#Azure.ResourceManager.ExtensionResource} @@ -573,20 +513,6 @@ model Azure.ResourceManager.LocationParameter | -------- | -------- | ------------------ | | location | `string` | The location name. | -### `LocationResourceParameter` {#Azure.ResourceManager.LocationResourceParameter} - -The default location parameter type. - -```typespec -model Azure.ResourceManager.LocationResourceParameter -``` - -#### Properties - -| Name | Type | Description | -| -------- | -------- | ------------------ | -| location | `string` | The location name. | - ### `ManagedByProperty` {#Azure.ResourceManager.ManagedByProperty} Model representing the standard `managedBy` envelope property for a resource. @@ -633,7 +559,7 @@ model Foo is TrackedResource { | Name | Type | Description | | --------- | ---------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | -| identity? | [`ManagedServiceIdentity`](./data-types.md#Azure.ResourceManager.Foundations.ManagedServiceIdentity) | The managed service identities assigned to this resource. | +| identity? | [`ManagedServiceIdentity`](./data-types.md#Azure.ResourceManager.CommonTypes.ManagedServiceIdentity) | The managed service identities assigned to this resource. | ### `ManagedSystemAssignedIdentityProperty` {#Azure.ResourceManager.ManagedSystemAssignedIdentityProperty} @@ -658,7 +584,7 @@ model Foo is TrackedResource { | Name | Type | Description | | --------- | ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------- | -| identity? | [`SystemAssignedServiceIdentity`](./data-types.md#Azure.ResourceManager.Foundations.SystemAssignedServiceIdentity) | The managed service identities assigned to this resource. | +| identity? | [`SystemAssignedServiceIdentity`](./data-types.md#Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentity) | The managed service identities assigned to this resource. | ### `ParentKeysOf` {#Azure.ResourceManager.ParentKeysOf} @@ -678,163 +604,6 @@ model Azure.ResourceManager.ParentKeysOf None -### `PrivateEndpoint` {#Azure.ResourceManager.PrivateEndpoint} - -The private endpoint resource - -```typespec -model Azure.ResourceManager.PrivateEndpoint -``` - -#### Properties - -| Name | Type | Description | -| ---- | ---------------------------- | -------------------------------------------- | -| id? | `Core.armResourceIdentifier` | The resource identifier for private endpoint | - -### `PrivateEndpointConnection` {#Azure.ResourceManager.PrivateEndpointConnection} - -The private endpoint connection resource - -```typespec -model Azure.ResourceManager.PrivateEndpointConnection -``` - -#### Properties - -| Name | Type | Description | -| ----------- | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------ | -| properties? | [`PrivateEndpointConnectionProperties`](./data-types.md#Azure.ResourceManager.PrivateEndpointConnectionProperties) | The private endpoint connection properties | - -### `PrivateEndpointConnectionParameter` {#Azure.ResourceManager.PrivateEndpointConnectionParameter} - -The name of the private endpoint connection associated with the Azure resource. - -```typespec -model Azure.ResourceManager.PrivateEndpointConnectionParameter -``` - -#### Template Parameters - -| Name | Description | -| ------- | ----------------------------------------------------------------------------------------------- | -| Segment | The resource type name for private endpoint connections (default is privateEndpointConnections) | - -#### Properties - -| Name | Type | Description | -| ---- | -------- | ------------------------------------------------------------------------------- | -| name | `string` | The name of the private endpoint connection associated with the Azure resource. | - -### `PrivateEndpointConnectionProperties` {#Azure.ResourceManager.PrivateEndpointConnectionProperties} - -Properties of he private endpoint connection resource - -```typespec -model Azure.ResourceManager.PrivateEndpointConnectionProperties -``` - -#### Properties - -| Name | Type | Description | -| --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | -| groupIds? | `string[]` | The group identifiers for the private endpoint resource | -| privateEndpoint? | [`PrivateEndpoint`](./data-types.md#Azure.ResourceManager.PrivateEndpoint) | The private endpoint resource | -| privateLinkServiceConnectionState | [`PrivateLinkServiceConnectionState`](./data-types.md#Azure.ResourceManager.PrivateLinkServiceConnectionState) | A collection of information about the state of the connection between service consumer and provider. | -| provisioningState? | [`PrivateEndpointConnectionProvisioningState`](./data-types.md#Azure.ResourceManager.PrivateEndpointConnectionProvisioningState) | The provisioning state of the private endpoint connection resource. | - -### `PrivateEndpointConnectionResourceListResult` {#Azure.ResourceManager.PrivateEndpointConnectionResourceListResult} - -List of private endpoint connections associated with the specified resource. - -```typespec -model Azure.ResourceManager.PrivateEndpointConnectionResourceListResult -``` - -#### Properties - -| Name | Type | Description | -| ------ | --------------------------------------------- | ------------------------------------- | -| value? | `ResourceManager.PrivateEndpointConnection[]` | Array of private endpoint connections | - -### `PrivateLinkResource` {#Azure.ResourceManager.PrivateLinkResource} - -```typespec -model Azure.ResourceManager.PrivateLinkResource -``` - -#### Properties - -| Name | Type | Description | -| ----------- | ------------------------------------------------------------------------------------------------------ | ---------------------------------------- | -| properties? | [`PrivateLinkResourceProperties`](./data-types.md#Azure.ResourceManager.PrivateLinkResourceProperties) | Properties of the private link resource. | - -### `PrivateLinkResourceListResult` {#Azure.ResourceManager.PrivateLinkResourceListResult} - -A list of private link resources. - -```typespec -model Azure.ResourceManager.PrivateLinkResourceListResult -``` - -#### Properties - -| Name | Type | Description | -| ------ | --------------------------------------- | ------------------------------- | -| value? | `ResourceManager.PrivateLinkResource[]` | Array of private link resources | - -### `PrivateLinkResourceParameter` {#Azure.ResourceManager.PrivateLinkResourceParameter} - -The name of the private link associated with the Azure resource. - -```typespec -model Azure.ResourceManager.PrivateLinkResourceParameter -``` - -#### Template Parameters - -| Name | Description | -| ------- | -------------------------------------------------------------------------- | -| Segment | The resource type name for private links (default is privateLinkResources) | - -#### Properties - -| Name | Type | Description | -| ---- | -------- | ---------------------------------------------------------------- | -| name | `string` | The name of the private link associated with the Azure resource. | - -### `PrivateLinkResourceProperties` {#Azure.ResourceManager.PrivateLinkResourceProperties} - -Properties of a private link resource. - -```typespec -model Azure.ResourceManager.PrivateLinkResourceProperties -``` - -#### Properties - -| Name | Type | Description | -| ------------------ | ---------- | ----------------------------------------------------- | -| groupId? | `string` | The private link resource group id. | -| requiredMembers? | `string[]` | The private link resource required member names. | -| requiredZoneNames? | `string[]` | The private link resource private link DNS zone name. | - -### `PrivateLinkServiceConnectionState` {#Azure.ResourceManager.PrivateLinkServiceConnectionState} - -A collection of information about the state of the connection between service consumer and provider. - -```typespec -model Azure.ResourceManager.PrivateLinkServiceConnectionState -``` - -#### Properties - -| Name | Type | Description | -| ---------------- | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | -| status? | [`PrivateEndpointServiceConnectionStatus`](./data-types.md#Azure.ResourceManager.PrivateEndpointServiceConnectionStatus) | Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. | -| description? | `string` | The reason for approval/rejection of the connection. | -| actionsRequired? | `string` | A message indicating if changes on the service provider require any updates on the consumer. | - ### `ProviderNamespace` {#Azure.ResourceManager.ProviderNamespace} Model describing the provider namespace. @@ -888,23 +657,9 @@ model Azure.ResourceManager.ResourceGroupLocationResource #### Properties -| Name | Type | Description | -| -------- | -------- | ------------------ | -| location | `string` | The location name. | - -### `ResourceGroupParameter` {#Azure.ResourceManager.ResourceGroupParameter} - -The default resource group parameter type. - -```typespec -model Azure.ResourceManager.ResourceGroupParameter -``` - -#### Properties - -| Name | Type | Description | -| ----------------- | -------- | ------------------------------------------------------------- | -| resourceGroupName | `string` | The name of the resource group. The name is case insensitive. | +| Name | Type | Description | +| -------- | -------- | ----------------------------- | +| location | `string` | The name of the Azure region. | ### `ResourceInstanceParameters` {#Azure.ResourceManager.ResourceInstanceParameters} @@ -1045,7 +800,7 @@ model Foo is TrackedResource { | Name | Type | Description | | ----- | ---------------------------------------------------------------- | ----------------------------- | -| plan? | [`Plan`](./data-types.md#Azure.ResourceManager.Foundations.Plan) | Details of the resource plan. | +| plan? | [`Plan`](./data-types.md#Azure.ResourceManager.CommonTypes.Plan) | Details of the resource plan. | ### `ResourceSkuProperty` {#Azure.ResourceManager.ResourceSkuProperty} @@ -1069,7 +824,7 @@ model Foo is TrackedResource { | Name | Type | Description | | ---- | -------------------------------------------------------------- | ------------------------------------------------------- | -| sku? | [`Sku`](./data-types.md#Azure.ResourceManager.Foundations.Sku) | The SKU (Stock Keeping Unit) assigned to this resource. | +| sku? | [`Sku`](./data-types.md#Azure.ResourceManager.CommonTypes.Sku) | The SKU (Stock Keeping Unit) assigned to this resource. | ### `ResourceUriParameter` {#Azure.ResourceManager.ResourceUriParameter} @@ -1085,20 +840,6 @@ model Azure.ResourceManager.ResourceUriParameter | ----------- | -------- | ---------------------------------------------------------------------- | | resourceUri | `string` | The fully qualified Azure Resource manager identifier of the resource. | -### `SubscriptionIdParameter` {#Azure.ResourceManager.SubscriptionIdParameter} - -The default subscriptionId parameter type. - -```typespec -model Azure.ResourceManager.SubscriptionIdParameter -``` - -#### Properties - -| Name | Type | Description | -| -------------- | -------- | ---------------------------------- | -| subscriptionId | `string` | The ID of the target subscription. | - ### `SubscriptionLocationResource` {#Azure.ResourceManager.SubscriptionLocationResource} The location resource for subscription-based locations. This can be used as a parent @@ -1110,9 +851,9 @@ model Azure.ResourceManager.SubscriptionLocationResource #### Properties -| Name | Type | Description | -| -------- | -------- | ------------------ | -| location | `string` | The location name. | +| Name | Type | Description | +| -------- | -------- | ----------------------------- | +| location | `string` | The name of the Azure region. | ### `TenantLocationResource` {#Azure.ResourceManager.TenantLocationResource} @@ -1125,9 +866,9 @@ model Azure.ResourceManager.TenantLocationResource #### Properties -| Name | Type | Description | -| -------- | -------- | ------------------ | -| location | `string` | The location name. | +| Name | Type | Description | +| -------- | -------- | ----------------------------- | +| location | `string` | The name of the Azure region. | ### `TrackedResource` {#Azure.ResourceManager.TrackedResource} @@ -1159,38 +900,6 @@ Supported versions of Azure.ResourceManager building blocks. enum Azure.ResourceManager.Versions ``` -### `InfrastructureEncryption` {#Azure.ResourceManager.InfrastructureEncryption} - -(Optional) Discouraged to include in resource definition. Only needed where it is possible to disable platform (AKA infrastructure) encryption. Azure SQL TDE is an example of this. Values are enabled and disabled. - -```typespec -union Azure.ResourceManager.InfrastructureEncryption -``` - -### `KeyEncryptionKeyIdentity` {#Azure.ResourceManager.KeyEncryptionKeyIdentity} - -The type of identity to use. - -```typespec -union Azure.ResourceManager.KeyEncryptionKeyIdentity -``` - -### `PrivateEndpointConnectionProvisioningState` {#Azure.ResourceManager.PrivateEndpointConnectionProvisioningState} - -The provisioning state of the connection - -```typespec -union Azure.ResourceManager.PrivateEndpointConnectionProvisioningState -``` - -### `PrivateEndpointServiceConnectionStatus` {#Azure.ResourceManager.PrivateEndpointServiceConnectionStatus} - -The private endpoint connection status - -```typespec -union Azure.ResourceManager.PrivateEndpointServiceConnectionStatus -``` - ### `ResourceProvisioningState` {#Azure.ResourceManager.ResourceProvisioningState} Standard terminal provisioning state of resource type. You can include in your @@ -1214,52 +923,40 @@ union FooProvisioningState { ## Azure.ResourceManager.CommonTypes -### `Versions` {#Azure.ResourceManager.CommonTypes.Versions} - -The Azure Resource Manager common-types versions. - -```typespec -enum Azure.ResourceManager.CommonTypes.Versions -``` - -## Azure.ResourceManager.Foundations - -### `ArmTagsProperty` {#Azure.ResourceManager.Foundations.ArmTagsProperty} - -Standard type definition for Azure Resource Manager Tags property. +### `ApiVersionParameter` {#Azure.ResourceManager.CommonTypes.ApiVersionParameter} -It is included in the TrackedResource template definition. +The default api-version parameter type. ```typespec -model Azure.ResourceManager.Foundations.ArmTagsProperty +model Azure.ResourceManager.CommonTypes.ApiVersionParameter ``` #### Properties -| Name | Type | Description | -| ----- | ---------------- | -------------- | -| tags? | `Record` | Resource tags. | +| Name | Type | Description | +| ---------- | -------- | ------------------------------------------ | +| apiVersion | `string` | The API version to use for this operation. | -### `AzureEntityResource` {#Azure.ResourceManager.Foundations.AzureEntityResource} +### `AzureEntityResource` {#Azure.ResourceManager.CommonTypes.AzureEntityResource} The resource model definition for an Azure Resource Manager resource with an etag. ```typespec -model Azure.ResourceManager.Foundations.AzureEntityResource +model Azure.ResourceManager.CommonTypes.AzureEntityResource ``` #### Properties -| Name | Type | Description | -| ---- | -------- | -------------- | -| etag | `string` | Resource Etag. | +| Name | Type | Description | +| ----- | -------- | -------------- | +| etag? | `string` | Resource Etag. | -### `CheckNameAvailabilityRequest` {#Azure.ResourceManager.Foundations.CheckNameAvailabilityRequest} +### `CheckNameAvailabilityRequest` {#Azure.ResourceManager.CommonTypes.CheckNameAvailabilityRequest} The check availability request body. ```typespec -model Azure.ResourceManager.Foundations.CheckNameAvailabilityRequest +model Azure.ResourceManager.CommonTypes.CheckNameAvailabilityRequest ``` #### Properties @@ -1269,12 +966,12 @@ model Azure.ResourceManager.Foundations.CheckNameAvailabilityRequest | name? | `string` | The name of the resource for which availability needs to be checked. | | type? | `string` | The resource type. | -### `CheckNameAvailabilityResponse` {#Azure.ResourceManager.Foundations.CheckNameAvailabilityResponse} +### `CheckNameAvailabilityResponse` {#Azure.ResourceManager.CommonTypes.CheckNameAvailabilityResponse} The check availability result. ```typespec -model Azure.ResourceManager.Foundations.CheckNameAvailabilityResponse +model Azure.ResourceManager.CommonTypes.CheckNameAvailabilityResponse ``` #### Properties @@ -1282,54 +979,75 @@ model Azure.ResourceManager.Foundations.CheckNameAvailabilityResponse | Name | Type | Description | | -------------- | -------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | | nameAvailable? | `boolean` | Indicates if the resource name is available. | -| reason? | [`CheckNameAvailabilityReason`](./data-types.md#Azure.ResourceManager.Foundations.CheckNameAvailabilityReason) | The reason why the given name is not available. | +| reason? | [`CheckNameAvailabilityReason`](./data-types.md#Azure.ResourceManager.CommonTypes.CheckNameAvailabilityReason) | The reason why the given name is not available. | | message? | `string` | Detailed reason why the given name is not available. | -### `DefaultBaseParameters` {#Azure.ResourceManager.Foundations.DefaultBaseParameters} +### `CustomerManagedKeyEncryption` {#Azure.ResourceManager.CommonTypes.CustomerManagedKeyEncryption} -Base parameters for a resource. +Customer-managed key encryption properties for the resource. ```typespec -model Azure.ResourceManager.Foundations.DefaultBaseParameters +model Azure.ResourceManager.CommonTypes.CustomerManagedKeyEncryption ``` -#### Template Parameters - -| Name | Description | -| -------- | ------------------------- | -| Resource | The type of the resource. | - #### Properties -| Name | Type | Description | -| ----------------- | -------- | ---------------------------------------------------------------------- | -| apiVersion | `string` | The API version to use for this operation. | -| subscriptionId | `string` | The ID of the target subscription. | -| location | `string` | The location name. | -| resourceGroupName | `string` | The name of the resource group. The name is case insensitive. | -| resourceUri | `string` | The fully qualified Azure Resource manager identifier of the resource. | +| Name | Type | Description | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| keyEncryptionKeyIdentity? | [`KeyEncryptionKeyIdentity`](./data-types.md#Azure.ResourceManager.CommonTypes.KeyEncryptionKeyIdentity) | All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault. | +| keyEncryptionKeyUrl? | `string` | key encryption key Url, versioned or non-versioned. Ex: https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 or https://contosovault.vault.azure.net/keys/contosokek. | -### `ErrorAdditionalInfo` {#Azure.ResourceManager.Foundations.ErrorAdditionalInfo} +### `Encryption` {#Azure.ResourceManager.CommonTypes.Encryption} -The resource management error additional info. +(Optional) Discouraged to include in resource definition. Only needed where it is possible to disable platform (AKA infrastructure) encryption. Azure SQL TDE is an example of this. Values are enabled and disabled. ```typespec -model Azure.ResourceManager.Foundations.ErrorAdditionalInfo +model Azure.ResourceManager.CommonTypes.Encryption ``` #### Properties -| Name | Type | Description | -| ----- | -------- | ------------------------- | +| Name | Type | Description | +| ----------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | +| infrastructureEncryption? | [`InfrastructureEncryption`](./data-types.md#Azure.ResourceManager.CommonTypes.InfrastructureEncryption) | Values are enabled and disabled. | +| customerManagedKeyEncryption? | [`CustomerManagedKeyEncryption`](./data-types.md#Azure.ResourceManager.CommonTypes.CustomerManagedKeyEncryption) | All Customer-managed key encryption properties for the resource. | + +### `EncryptionProperties` {#Azure.ResourceManager.CommonTypes.EncryptionProperties} + +Configuration of key for data encryption + +```typespec +model Azure.ResourceManager.CommonTypes.EncryptionProperties +``` + +#### Properties + +| Name | Type | Description | +| ------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| status? | [`EncryptionStatus`](./data-types.md#Azure.ResourceManager.CommonTypes.EncryptionStatus) | Indicates whether or not the encryption is enabled for container registry. | +| keyVaultProperties? | [`KeyVaultProperties`](./data-types.md#Azure.ResourceManager.CommonTypes.KeyVaultProperties) | Key vault properties. | + +### `ErrorAdditionalInfo` {#Azure.ResourceManager.CommonTypes.ErrorAdditionalInfo} + +The resource management error additional info. + +```typespec +model Azure.ResourceManager.CommonTypes.ErrorAdditionalInfo +``` + +#### Properties + +| Name | Type | Description | +| ----- | -------- | ------------------------- | | type? | `string` | The additional info type. | | info? | `{}` | The additional info. | -### `ErrorDetail` {#Azure.ResourceManager.Foundations.ErrorDetail} +### `ErrorDetail` {#Azure.ResourceManager.CommonTypes.ErrorDetail} The error detail. ```typespec -model Azure.ResourceManager.Foundations.ErrorDetail +model Azure.ResourceManager.CommonTypes.ErrorDetail ``` #### Properties @@ -1339,15 +1057,29 @@ model Azure.ResourceManager.Foundations.ErrorDetail | code? | `string` | The error code. | | message? | `string` | The error message. | | target? | `string` | The error target. | -| details? | `ResourceManager.Foundations.ErrorDetail[]` | The error details. | -| additionalInfo? | `ResourceManager.Foundations.ErrorAdditionalInfo[]` | The error additional info. | +| details? | `ResourceManager.CommonTypes.ErrorDetail[]` | The error details. | +| additionalInfo? | `ResourceManager.CommonTypes.ErrorAdditionalInfo[]` | The error additional info. | + +### `ErrorResponse` {#Azure.ResourceManager.CommonTypes.ErrorResponse} + +Common error response for all Azure Resource Manager APIs to return error details for failed operations. + +```typespec +model Azure.ResourceManager.CommonTypes.ErrorResponse +``` -### `ExtendedLocation` {#Azure.ResourceManager.Foundations.ExtendedLocation} +#### Properties + +| Name | Type | Description | +| ------ | ------------------------------------------------------------------------------ | ----------------- | +| error? | [`ErrorDetail`](./data-types.md#Azure.ResourceManager.CommonTypes.ErrorDetail) | The error object. | + +### `ExtendedLocation` {#Azure.ResourceManager.CommonTypes.ExtendedLocation} The complex type of the extended location. ```typespec -model Azure.ResourceManager.Foundations.ExtendedLocation +model Azure.ResourceManager.CommonTypes.ExtendedLocation ``` #### Properties @@ -1355,119 +1087,176 @@ model Azure.ResourceManager.Foundations.ExtendedLocation | Name | Type | Description | | ---- | ------------------------------------------------------------------------------------------------ | ---------------------------------- | | name | `string` | The name of the extended location. | -| type | [`ExtendedLocationType`](./data-types.md#Azure.ResourceManager.Foundations.ExtendedLocationType) | The type of the extended location. | +| type | [`ExtendedLocationType`](./data-types.md#Azure.ResourceManager.CommonTypes.ExtendedLocationType) | The type of the extended location. | -### `ExtensionBaseParameters` {#Azure.ResourceManager.Foundations.ExtensionBaseParameters} +### `ExtensionResource` {#Azure.ResourceManager.CommonTypes.ExtensionResource} -The static parameters for an extension resource +The base extension resource. ```typespec -model Azure.ResourceManager.Foundations.ExtensionBaseParameters +model Azure.ResourceManager.CommonTypes.ExtensionResource ``` #### Properties -| Name | Type | Description | -| ----------- | -------- | ---------------------------------------------------------------------- | -| apiVersion | `string` | The API version to use for this operation. | -| resourceUri | `string` | The fully qualified Azure Resource manager identifier of the resource. | +None -### `ExtensionResource` {#Azure.ResourceManager.Foundations.ExtensionResource} +### `Identity` {#Azure.ResourceManager.CommonTypes.Identity} -The base extension resource. +Identity for the resource. ```typespec -model Azure.ResourceManager.Foundations.ExtensionResource +model Azure.ResourceManager.CommonTypes.Identity ``` #### Properties -None +| Name | Type | Description | +| ------------ | ------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------- | +| principalId? | `Core.uuid` | The principal ID of resource identity. The value must be an UUID. | +| tenantId? | `Core.uuid` | The tenant ID of resource. The value must be an UUID. | +| type? | [`ResourceIdentityType`](./data-types.md#Azure.ResourceManager.CommonTypes.ResourceIdentityType) | The identity type. | -### `ExtensionScope` {#Azure.ResourceManager.Foundations.ExtensionScope} +### `IfMatchHeader` {#Azure.ResourceManager.CommonTypes.IfMatchHeader} -Parameter model for listing an extension resource +The default ARM If-Match header type. ```typespec -model Azure.ResourceManager.Foundations.ExtensionScope +model Azure.ResourceManager.CommonTypes.IfMatchHeader ``` -#### Template Parameters +#### Properties -| Name | Description | -| -------- | ------------------------- | -| Resource | The type of the resource. | +| Name | Type | Description | +| ------- | -------- | ----------------------------------------------------- | +| ifMatch | `string` | The If-Match header that makes a request conditional. | + +### `IfNoneMatchHeader` {#Azure.ResourceManager.CommonTypes.IfNoneMatchHeader} + +The default ARM If-Match header type. + +```typespec +model Azure.ResourceManager.CommonTypes.IfNoneMatchHeader +``` #### Properties -| Name | Type | Description | -| ----------- | -------------------------------- | ---------------------------------------------------------------------- | -| apiVersion | `string` | The API version to use for this operation. | -| resourceUri | `string` | The fully qualified Azure Resource manager identifier of the resource. | -| provider | `"Microsoft.ThisWillBeReplaced"` | | +| Name | Type | Description | +| ----------- | -------- | ---------------------------------------------------------- | +| ifNoneMatch | `string` | The If-None-Match header that makes a request conditional. | -### `LocationBaseParameters` {#Azure.ResourceManager.Foundations.LocationBaseParameters} +### `KeyEncryptionKeyIdentity` {#Azure.ResourceManager.CommonTypes.KeyEncryptionKeyIdentity} -The static parameters for a location-based resource +All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault. ```typespec -model Azure.ResourceManager.Foundations.LocationBaseParameters +model Azure.ResourceManager.CommonTypes.KeyEncryptionKeyIdentity ``` #### Properties -| Name | Type | Description | -| -------------- | -------- | ------------------------------------------ | -| apiVersion | `string` | The API version to use for this operation. | -| subscriptionId | `string` | The ID of the target subscription. | -| location | `string` | The location name. | +| Name | Type | Description | +| ------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| identityType? | [`KeyEncryptionKeyIdentityType`](./data-types.md#Azure.ResourceManager.CommonTypes.KeyEncryptionKeyIdentityType) | The type of identity to use. Values can be systemAssignedIdentity, userAssignedIdentity, or delegatedResourceIdentity. | +| userAssignedIdentityResourceId? | `Core.armResourceIdentifier` | User assigned identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity. | +| federatedClientId? | `Core.uuid` | application client identity to use for accessing key encryption key Url in a different tenant. Ex: f83c6b1b-4d34-47e4-bb34-9d83df58b540 | +| delegatedIdentityClientId? | `Core.uuid` | delegated identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity and userAssignedIdentity - internal use only. | -### `LocationScope` {#Azure.ResourceManager.Foundations.LocationScope} +### `KeyVaultProperties` {#Azure.ResourceManager.CommonTypes.KeyVaultProperties} -Parameter model for listing a resource at the location scope +```typespec +model Azure.ResourceManager.CommonTypes.KeyVaultProperties +``` + +#### Properties + +| Name | Type | Description | +| -------------- | -------- | --------------------------------------------------------------------- | +| keyIdentifier? | `string` | Key vault uri to access the encryption key. | +| identity? | `string` | The client ID of the identity which will be used to access key vault. | + +### `LocationData` {#Azure.ResourceManager.CommonTypes.LocationData} + +Metadata pertaining to the geographic location of the resource. ```typespec -model Azure.ResourceManager.Foundations.LocationScope +model Azure.ResourceManager.CommonTypes.LocationData ``` -#### Template Parameters +#### Properties -| Name | Description | -| -------- | ------------------------- | -| Resource | The type of the resource. | +| Name | Type | Description | +| ---------------- | -------- | --------------------------------------------------------------- | +| name | `string` | A canonical name for the geographic or physical location. | +| city? | `string` | The city or locality where the resource is located. | +| district? | `string` | The district, state, or province where the resource is located. | +| countryOrRegion? | `string` | The country or region where the resource is located | + +### `LocationParameter` {#Azure.ResourceManager.CommonTypes.LocationParameter} + +The default location parameter type. + +```typespec +model Azure.ResourceManager.CommonTypes.LocationParameter +``` + +#### Properties + +| Name | Type | Description | +| -------- | -------- | ------------------------- | +| location | `string` | The name of Azure region. | + +### `LocationResourceParameter` {#Azure.ResourceManager.CommonTypes.LocationResourceParameter} + +The default location parameter type. + +```typespec +model Azure.ResourceManager.CommonTypes.LocationResourceParameter +``` + +#### Properties + +| Name | Type | Description | +| -------- | -------- | ----------------------------- | +| location | `string` | The name of the Azure region. | + +### `ManagedServiceIdentity` {#Azure.ResourceManager.CommonTypes.ManagedServiceIdentity} + +Managed service identity (system assigned and/or user assigned identities) + +```typespec +model Azure.ResourceManager.CommonTypes.ManagedServiceIdentity +``` #### Properties -| Name | Type | Description | -| -------------- | -------------------------------- | ------------------------------------------ | -| apiVersion | `string` | The API version to use for this operation. | -| subscriptionId | `string` | The ID of the target subscription. | -| location | `string` | The location name. | -| provider | `"Microsoft.ThisWillBeReplaced"` | | +| Name | Type | Description | +| ----------------------- | ------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------- | +| principalId? | `Core.uuid` | The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity. | +| tenantId? | `Core.uuid` | The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity. | +| type | [`ManagedServiceIdentityType`](./data-types.md#Azure.ResourceManager.CommonTypes.ManagedServiceIdentityType) | The type of managed identity assigned to this resource. | +| userAssignedIdentities? | `Record \| null` | The identities assigned to this resource by the user. | -### `ManagedServiceIdentity` {#Azure.ResourceManager.Foundations.ManagedServiceIdentity} +### `ManagementGroupNameParameter` {#Azure.ResourceManager.CommonTypes.ManagementGroupNameParameter} -The properties of the managed service identities assigned to this resource. +The default ManagementGroupName parameter type. ```typespec -model Azure.ResourceManager.Foundations.ManagedServiceIdentity +model Azure.ResourceManager.CommonTypes.ManagementGroupNameParameter ``` #### Properties -| Name | Type | Description | -| ----------------------- | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------- | -| tenantId? | `string` | The Active Directory tenant id of the principal. | -| principalId? | `string` | The active directory identifier of this principal. | -| type | [`ManagedServiceIdentityType`](./data-types.md#Azure.ResourceManager.Foundations.ManagedServiceIdentityType) | The type of managed identity assigned to this resource. | -| userAssignedIdentities? | `Record` | The identities assigned to this resource by the user. | +| Name | Type | Description | +| ------------------- | -------- | --------------------------------------------------------------- | +| managementGroupName | `string` | The name of the management group. The name is case insensitive. | -### `Operation` {#Azure.ResourceManager.Foundations.Operation} +### `Operation` {#Azure.ResourceManager.CommonTypes.Operation} Details of a REST API operation, returned from the Resource Provider Operations API ```typespec -model Azure.ResourceManager.Foundations.Operation +model Azure.ResourceManager.CommonTypes.Operation ``` #### Properties @@ -1476,16 +1265,16 @@ model Azure.ResourceManager.Foundations.Operation | ------------- | ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | name? | `string` | The name of the operation, as per Resource-Based Access Control (RBAC). Examples: "Microsoft.Compute/virtualMachines/write", "Microsoft.Compute/virtualMachines/capture/action" | | isDataAction? | `boolean` | Whether the operation applies to data-plane. This is "true" for data-plane operations and "false" for Azure Resource Manager/control-plane operations. | -| display? | [`OperationDisplay`](./data-types.md#Azure.ResourceManager.Foundations.OperationDisplay) | Localized display information for this particular operation. | -| origin? | [`Origin`](./data-types.md#Azure.ResourceManager.Foundations.Origin) | The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system" | -| actionType? | [`ActionType`](./data-types.md#Azure.ResourceManager.Foundations.ActionType) | Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. | +| display? | [`OperationDisplay`](./data-types.md#Azure.ResourceManager.CommonTypes.OperationDisplay) | Localized display information for this particular operation. | +| origin? | [`Origin`](./data-types.md#Azure.ResourceManager.CommonTypes.Origin) | The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system" | +| actionType? | [`ActionType`](./data-types.md#Azure.ResourceManager.CommonTypes.ActionType) | Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. | -### `OperationDisplay` {#Azure.ResourceManager.Foundations.OperationDisplay} +### `OperationDisplay` {#Azure.ResourceManager.CommonTypes.OperationDisplay} Localized display information for and operation. ```typespec -model Azure.ResourceManager.Foundations.OperationDisplay +model Azure.ResourceManager.CommonTypes.OperationDisplay ``` #### Properties @@ -1497,12 +1286,12 @@ model Azure.ResourceManager.Foundations.OperationDisplay | operation? | `string` | The concise, localized friendly name for the operation; suitable for dropdowns. E.g. "Create or Update Virtual Machine", "Restart Virtual Machine". | | description? | `string` | The short, localized friendly description of the operation; suitable for tool tips and detailed views. | -### `OperationIdParameter` {#Azure.ResourceManager.Foundations.OperationIdParameter} +### `OperationIdParameter` {#Azure.ResourceManager.CommonTypes.OperationIdParameter} The default operationId parameter type. ```typespec -model Azure.ResourceManager.Foundations.OperationIdParameter +model Azure.ResourceManager.CommonTypes.OperationIdParameter ``` #### Properties @@ -1511,27 +1300,27 @@ model Azure.ResourceManager.Foundations.OperationIdParameter | ----------- | -------- | ------------------------------------- | | operationId | `string` | The ID of an ongoing async operation. | -### `OperationListResult` {#Azure.ResourceManager.Foundations.OperationListResult} +### `OperationListResult` {#Azure.ResourceManager.CommonTypes.OperationListResult} A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to get the next set of results. ```typespec -model Azure.ResourceManager.Foundations.OperationListResult +model Azure.ResourceManager.CommonTypes.OperationListResult ``` #### Properties | Name | Type | Description | | --------- | ----------------------------------------- | ---------------------------------- | -| value | `ResourceManager.Foundations.Operation[]` | The Operation items on this page | +| value | `ResourceManager.CommonTypes.Operation[]` | The Operation items on this page | | nextLink? | `TypeSpec.Rest.ResourceLocation` | The link to the next page of items | -### `OperationStatusResult` {#Azure.ResourceManager.Foundations.OperationStatusResult} +### `OperationStatusResult` {#Azure.ResourceManager.CommonTypes.OperationStatusResult} The current status of an async operation. ```typespec -model Azure.ResourceManager.Foundations.OperationStatusResult +model Azure.ResourceManager.CommonTypes.OperationStatusResult ``` #### Properties @@ -1544,15 +1333,15 @@ model Azure.ResourceManager.Foundations.OperationStatusResult | percentComplete? | `float64` | Percent of the operation that is complete. | | startTime? | `utcDateTime` | The start time of the operation. | | endTime? | `utcDateTime` | The end time of the operation. | -| operations | `ResourceManager.Foundations.OperationStatusResult[]` | The operations list. | -| error? | [`ErrorDetail`](./data-types.md#Azure.ResourceManager.Foundations.ErrorDetail) | If present, details of the operation error. | +| operations? | `ResourceManager.CommonTypes.OperationStatusResult[]` | The operations list. | +| error? | [`ErrorDetail`](./data-types.md#Azure.ResourceManager.CommonTypes.ErrorDetail) | If present, details of the operation error. | -### `Plan` {#Azure.ResourceManager.Foundations.Plan} +### `Plan` {#Azure.ResourceManager.CommonTypes.Plan} -Details of the resource plan. +Plan for the resource. ```typespec -model Azure.ResourceManager.Foundations.Plan +model Azure.ResourceManager.CommonTypes.Plan ``` #### Properties @@ -1565,396 +1354,803 @@ model Azure.ResourceManager.Foundations.Plan | promotionCode? | `string` | A publisher provided promotion code as provisioned in Data Market for the said product/artifact. | | version? | `string` | The version of the desired product/artifact. | -### `ProxyResource` {#Azure.ResourceManager.Foundations.ProxyResource} +### `PrivateEndpoint` {#Azure.ResourceManager.CommonTypes.PrivateEndpoint} -The base proxy resource. +The Private Endpoint resource. ```typespec -model Azure.ResourceManager.Foundations.ProxyResource +model Azure.ResourceManager.CommonTypes.PrivateEndpoint ``` #### Properties -None +| Name | Type | Description | +| ---- | ---------------------------- | -------------------------------------------- | +| id? | `Core.armResourceIdentifier` | The resource identifier for private endpoint | -### `ProxyResourceUpdateModel` {#Azure.ResourceManager.Foundations.ProxyResourceUpdateModel} +### `PrivateEndpointConnection` {#Azure.ResourceManager.CommonTypes.PrivateEndpointConnection} -The type used for update operations of the resource. +The private endpoint connection resource ```typespec -model Azure.ResourceManager.Foundations.ProxyResourceUpdateModel +model Azure.ResourceManager.CommonTypes.PrivateEndpointConnection ``` -#### Template Parameters - -| Name | Description | -| ---------- | --------------------------- | -| Resource | The type of the resource. | -| Properties | The type of the properties. | - #### Properties -| Name | Type | Description | -| ----------- | --------------------------------------------------------------------------------- | ----------- | -| properties? | `ResourceManager.Foundations.ResourceUpdateModelProperties` | | +| Name | Type | Description | +| ----------- | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------ | +| properties? | [`PrivateEndpointConnectionProperties`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProperties) | The private endpoint connection properties | -### `Resource` {#Azure.ResourceManager.Foundations.Resource} +### `PrivateEndpointConnectionListResult` {#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionListResult} -Base model that defines common properties for all Azure Resource Manager resources. +List of private endpoint connections associated with the specified resource. ```typespec -model Azure.ResourceManager.Foundations.Resource +model Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionListResult ``` #### Properties -| Name | Type | Description | -| ----------- | ---------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| id? | `string` | Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} | -| name? | `string` | The name of the resource | -| type? | `string` | The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" | -| systemData? | [`SystemData`](./data-types.md#Azure.ResourceManager.Foundations.SystemData) | Azure Resource Manager metadata containing createdBy and modifiedBy information. | +| Name | Type | Description | +| ------ | --------------------------------------------------------- | -------------------------------------- | +| value? | `ResourceManager.CommonTypes.PrivateEndpointConnection[]` | Array of private endpoint connections. | -### `ResourceGroupBaseParameters` {#Azure.ResourceManager.Foundations.ResourceGroupBaseParameters} +### `PrivateEndpointConnectionParameter` {#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionParameter} -The static parameters for a resource-group based resource +The name of the private endpoint connection associated with the Azure resource. ```typespec -model Azure.ResourceManager.Foundations.ResourceGroupBaseParameters +model Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionParameter ``` +#### Template Parameters + +| Name | Description | +| ------- | ----------------------------------------------------------------------------------------------- | +| Segment | The resource type name for private endpoint connections (default is privateEndpointConnections) | + #### Properties -| Name | Type | Description | -| ----------------- | -------- | ------------------------------------------------------------- | -| apiVersion | `string` | The API version to use for this operation. | -| subscriptionId | `string` | The ID of the target subscription. | -| resourceGroupName | `string` | The name of the resource group. The name is case insensitive. | +| Name | Type | Description | +| ---- | -------- | ------------------------------------------------------------------------------- | +| name | `string` | The name of the private endpoint connection associated with the Azure resource. | -### `ResourceGroupScope` {#Azure.ResourceManager.Foundations.ResourceGroupScope} +### `PrivateEndpointConnectionProperties` {#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProperties} -Parameter model for listing a resource at the resource group scope +Properties of the private endpoint connection. ```typespec -model Azure.ResourceManager.Foundations.ResourceGroupScope +model Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProperties ``` -#### Template Parameters - -| Name | Description | -| -------- | ------------------------- | -| Resource | The type of the resource. | - #### Properties -| Name | Type | Description | -| ----------------- | -------------------------------- | ---------------------------------------------------------------------- | -| apiVersion | `string` | The API version to use for this operation. | -| subscriptionId | `string` | The ID of the target subscription. | -| location | `string` | The location name. | -| resourceGroupName | `string` | The name of the resource group. The name is case insensitive. | -| resourceUri | `string` | The fully qualified Azure Resource manager identifier of the resource. | -| provider | `"Microsoft.ThisWillBeReplaced"` | | +| Name | Type | Description | +| --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| groupIds? | `string[]` | The group ids for the private endpoint resource. | +| privateEndpoint? | [`PrivateEndpoint`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateEndpoint) | The private endpoint resource. | +| privateLinkServiceConnectionState | [`PrivateLinkServiceConnectionState`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateLinkServiceConnectionState) | A collection of information about the state of the connection between service consumer and provider. | +| provisioningState? | [`PrivateEndpointConnectionProvisioningState`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProvisioningState) | The provisioning state of the private endpoint connection resource. | -### `ResourceUpdateModel` {#Azure.ResourceManager.Foundations.ResourceUpdateModel} +### `PrivateLinkResource` {#Azure.ResourceManager.CommonTypes.PrivateLinkResource} -Defines a model type used to create named resource update models -e.g. `model MyResourceUpdate is ResourceUpdate {}` +A private link resource. ```typespec -model Azure.ResourceManager.Foundations.ResourceUpdateModel +model Azure.ResourceManager.CommonTypes.PrivateLinkResource ``` -#### Template Parameters +#### Properties -| Name | Description | -| ---------- | --------------------------- | -| Resource | The type of the resource. | -| Properties | The type of the properties. | +| Name | Type | Description | +| ----------- | ------------------------------------------------------------------------------------------------------------------ | -------------------- | +| properties? | [`PrivateLinkResourceProperties`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateLinkResourceProperties) | Resource properties. | + +### `PrivateLinkResourceListResult` {#Azure.ResourceManager.CommonTypes.PrivateLinkResourceListResult} + +A list of private link resources. + +```typespec +model Azure.ResourceManager.CommonTypes.PrivateLinkResourceListResult +``` #### Properties -| Name | Type | Description | -| ----------- | --------------------------------------------------------------------------------- | ----------- | -| properties? | `ResourceManager.Foundations.ResourceUpdateModelProperties` | | +| Name | Type | Description | +| ------ | --------------------------------------------------- | ------------------------------- | +| value? | `ResourceManager.CommonTypes.PrivateLinkResource[]` | Array of private link resources | -### `ResourceUpdateModelProperties` {#Azure.ResourceManager.Foundations.ResourceUpdateModelProperties} +### `PrivateLinkResourceParameter` {#Azure.ResourceManager.CommonTypes.PrivateLinkResourceParameter} -Defines a properties type used to create named resource update models. -This type is not used directly, it is referenced by ResourceUpdateModel. +The name of the private link associated with the Azure resource. ```typespec -model Azure.ResourceManager.Foundations.ResourceUpdateModelProperties +model Azure.ResourceManager.CommonTypes.PrivateLinkResourceParameter ``` #### Template Parameters -| Name | Description | -| ---------- | --------------------------- | -| Resource | The type of the resource. | -| Properties | The type of the properties. | +| Name | Description | +| ------- | -------------------------------------------------------------------------- | +| Segment | The resource type name for private links (default is privateLinkResources) | #### Properties -None +| Name | Type | Description | +| ---- | -------- | ---------------------------------------------------------------- | +| name | `string` | The name of the private link associated with the Azure resource. | -### `Sku` {#Azure.ResourceManager.Foundations.Sku} +### `PrivateLinkResourceProperties` {#Azure.ResourceManager.CommonTypes.PrivateLinkResourceProperties} -The SKU (Stock Keeping Unit) assigned to this resource. +Properties of a private link resource. ```typespec -model Azure.ResourceManager.Foundations.Sku +model Azure.ResourceManager.CommonTypes.PrivateLinkResourceProperties ``` #### Properties -| Name | Type | Description | -| --------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -| name | `string` | The name of the SKU, usually a combination of letters and numbers, for example, 'P3' | -| tier? | [`SkuTier`](./data-types.md#Azure.ResourceManager.Foundations.SkuTier) | This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT. | -| size? | `string` | The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. | -| family? | `string` | If the service has different generations of hardware, for the same SKU, then that can be captured here. | -| capacity? | `int32` | If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted. | +| Name | Type | Description | +| ------------------ | ---------- | ----------------------------------------------------- | +| groupId? | `string` | The private link resource group id. | +| requiredMembers? | `string[]` | The private link resource required member names. | +| requiredZoneNames? | `string[]` | The private link resource private link DNS zone name. | -### `SubscriptionBaseParameters` {#Azure.ResourceManager.Foundations.SubscriptionBaseParameters} +### `PrivateLinkServiceConnectionState` {#Azure.ResourceManager.CommonTypes.PrivateLinkServiceConnectionState} -The static parameters for a subscription based resource +A collection of information about the state of the connection between service consumer and provider. ```typespec -model Azure.ResourceManager.Foundations.SubscriptionBaseParameters +model Azure.ResourceManager.CommonTypes.PrivateLinkServiceConnectionState ``` #### Properties -| Name | Type | Description | -| -------------- | -------- | ------------------------------------------ | -| apiVersion | `string` | The API version to use for this operation. | -| subscriptionId | `string` | The ID of the target subscription. | +| Name | Type | Description | +| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| status? | [`PrivateEndpointServiceConnectionStatus`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateEndpointServiceConnectionStatus) | Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. | +| description? | `string` | The reason for approval/rejection of the connection. | +| actionsRequired? | `string` | A message indicating if changes on the service provider require any updates on the consumer. | -### `SubscriptionScope` {#Azure.ResourceManager.Foundations.SubscriptionScope} +### `ProxyResource` {#Azure.ResourceManager.CommonTypes.ProxyResource} -Parameter model for listing a resource at the subscription scope +The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location ```typespec -model Azure.ResourceManager.Foundations.SubscriptionScope +model Azure.ResourceManager.CommonTypes.ProxyResource ``` -#### Template Parameters - -| Name | Description | -| -------- | ------------------------- | -| Resource | The type of the resource. | - #### Properties -| Name | Type | Description | -| -------------- | -------------------------------- | ------------------------------------------ | -| apiVersion | `string` | The API version to use for this operation. | -| subscriptionId | `string` | The ID of the target subscription. | -| provider | `"Microsoft.ThisWillBeReplaced"` | | +None -### `SystemAssignedServiceIdentity` {#Azure.ResourceManager.Foundations.SystemAssignedServiceIdentity} +### `Resource` {#Azure.ResourceManager.CommonTypes.Resource} -The properties of the service-assigned identity associated with this resource. +Common fields that are returned in the response for all Azure Resource Manager resources ```typespec -model Azure.ResourceManager.Foundations.SystemAssignedServiceIdentity +model Azure.ResourceManager.CommonTypes.Resource ``` #### Properties -| Name | Type | Description | -| ------------ | -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | -| tenantId? | `string` | The Active Directory tenant id of the principal. | -| principalId? | `string` | The active directory identifier of this principal. | -| type | [`SystemAssignedServiceIdentityType`](./data-types.md#Azure.ResourceManager.Foundations.SystemAssignedServiceIdentityType) | The type of managed identity assigned to this resource. | +| Name | Type | Description | +| ----------- | ---------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id? | `Core.armResourceIdentifier` | Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} | +| name? | `string` | The name of the resource | +| type? | `string` | The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" | +| systemData? | [`SystemData`](./data-types.md#Azure.ResourceManager.CommonTypes.SystemData) | Azure Resource Manager metadata containing createdBy and modifiedBy information. | -### `SystemData` {#Azure.ResourceManager.Foundations.SystemData} +### `ResourceGroupNameParameter` {#Azure.ResourceManager.CommonTypes.ResourceGroupNameParameter} -Metadata pertaining to creation and last modification of the resource. +The default resource group parameter type. ```typespec -model Azure.ResourceManager.Foundations.SystemData +model Azure.ResourceManager.CommonTypes.ResourceGroupNameParameter ``` #### Properties -| Name | Type | Description | -| ------------------- | ---------------------------------------------------------------------------------- | ----------------------------------------------------- | -| createdBy? | `string` | The identity that created the resource. | -| createdByType? | [`createdByType`](./data-types.md#Azure.ResourceManager.Foundations.createdByType) | The type of identity that created the resource. | -| createdAt? | `plainDate` | The type of identity that created the resource. | -| lastModifiedBy? | `string` | The identity that last modified the resource. | -| lastModifiedByType? | [`createdByType`](./data-types.md#Azure.ResourceManager.Foundations.createdByType) | The type of identity that last modified the resource. | -| lastModifiedAt? | `plainDate` | The timestamp of resource last modification (UTC) | +| Name | Type | Description | +| ----------------- | -------- | ------------------------------------------------------------- | +| resourceGroupName | `string` | The name of the resource group. The name is case insensitive. | -### `TagsUpdateModel` {#Azure.ResourceManager.Foundations.TagsUpdateModel} +### `ResourceModelWithAllowedPropertySet` {#Azure.ResourceManager.CommonTypes.ResourceModelWithAllowedPropertySet} -The type used for updating tags in resources. +The resource model definition containing the full set of allowed properties for a resource. Except properties bag, there cannot be a top level property outside of this set. ```typespec -model Azure.ResourceManager.Foundations.TagsUpdateModel +model Azure.ResourceManager.CommonTypes.ResourceModelWithAllowedPropertySet ``` -#### Template Parameters - -| Name | Description | -| -------- | ------------------------- | -| Resource | The type of the resource. | - #### Properties -| Name | Type | Description | -| ----- | ---------------- | -------------- | -| tags? | `Record` | Resource tags. | +| Name | Type | Description | +| ---------- | ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| managedBy? | `string` | The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource.
If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource. | +| kind? | `string` | Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type.
If supported, the resource provider must validate and persist this value. | +| eTag? | `string` | The etag field is _not_ required. If it is provided in the response body, it must also be provided as a header per the normal etag convention.
Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19),
If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields. | +| identity? | [`Identity`](./data-types.md#Azure.ResourceManager.CommonTypes.Identity) | | +| sku? | [`Sku`](./data-types.md#Azure.ResourceManager.CommonTypes.Sku) | | +| plan? | [`Plan`](./data-types.md#Azure.ResourceManager.CommonTypes.Plan) | | -### `TenantBaseParameters` {#Azure.ResourceManager.Foundations.TenantBaseParameters} +### `ScopeParameter` {#Azure.ResourceManager.CommonTypes.ScopeParameter} -The static parameters for a tenant-based resource +The default Scope parameter type. ```typespec -model Azure.ResourceManager.Foundations.TenantBaseParameters +model Azure.ResourceManager.CommonTypes.ScopeParameter ``` #### Properties -| Name | Type | Description | -| ---------- | -------- | ------------------------------------------ | -| apiVersion | `string` | The API version to use for this operation. | +| Name | Type | Description | +| ----- | -------- | ---------------------------------------------- | +| scope | `string` | The scope at which the operation is performed. | -### `TenantScope` {#Azure.ResourceManager.Foundations.TenantScope} +### `Sku` {#Azure.ResourceManager.CommonTypes.Sku} -Parameter model for listing a resource at the tenant scope +The resource model definition representing SKU ```typespec -model Azure.ResourceManager.Foundations.TenantScope +model Azure.ResourceManager.CommonTypes.Sku ``` -#### Template Parameters - -| Name | Description | -| -------- | ------------------------- | -| Resource | The type of the resource. | - #### Properties -| Name | Type | Description | -| ---------- | -------------------------------- | ------------------------------------------ | -| apiVersion | `string` | The API version to use for this operation. | -| provider | `"Microsoft.ThisWillBeReplaced"` | | +| Name | Type | Description | +| --------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| name | `string` | The name of the SKU. Ex - P3. It is typically a letter+number code | +| tier? | [`SkuTier`](./data-types.md#Azure.ResourceManager.CommonTypes.SkuTier) | This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT. | +| size? | `string` | The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. | +| family? | `string` | If the service has different generations of hardware, for the same SKU, then that can be captured here. | +| capacity? | `int32` | If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted. | + +### `SubscriptionIdParameter` {#Azure.ResourceManager.CommonTypes.SubscriptionIdParameter} + +The default subscriptionId parameter type. + +```typespec +model Azure.ResourceManager.CommonTypes.SubscriptionIdParameter +``` + +#### Properties + +| Name | Type | Description | +| -------------- | ----------- | ------------------------------------------------------------- | +| subscriptionId | `Core.uuid` | The ID of the target subscription. The value must be an UUID. | + +### `SystemAssignedServiceIdentity` {#Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentity} + +Managed service identity (either system assigned, or none) + +```typespec +model Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentity +``` + +#### Properties -### `TrackedResource` {#Azure.ResourceManager.Foundations.TrackedResource} +| Name | Type | Description | +| ------------ | -------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| principalId? | `Core.uuid` | The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity. | +| tenantId? | `Core.uuid` | The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity. | +| type | [`SystemAssignedServiceIdentityType`](./data-types.md#Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentityType) | The type of managed identity assigned to this resource. | -The base tracked resource. +### `SystemData` {#Azure.ResourceManager.CommonTypes.SystemData} + +Metadata pertaining to creation and last modification of the resource. ```typespec -model Azure.ResourceManager.Foundations.TrackedResource +model Azure.ResourceManager.CommonTypes.SystemData +``` + +#### Properties + +| Name | Type | Description | +| ------------------- | ---------------------------------------------------------------------------------- | ----------------------------------------------------- | +| createdBy? | `string` | The identity that created the resource. | +| createdByType? | [`createdByType`](./data-types.md#Azure.ResourceManager.CommonTypes.createdByType) | The type of identity that created the resource. | +| createdAt? | `utcDateTime` | The timestamp of resource creation (UTC). | +| lastModifiedBy? | `string` | The identity that last modified the resource. | +| lastModifiedByType? | [`createdByType`](./data-types.md#Azure.ResourceManager.CommonTypes.createdByType) | The type of identity that last modified the resource. | +| lastModifiedAt? | `utcDateTime` | The timestamp of resource last modification (UTC) | + +### `TenantIdParameter` {#Azure.ResourceManager.CommonTypes.TenantIdParameter} + +The default ManagementGroupName parameter type. + +```typespec +model Azure.ResourceManager.CommonTypes.TenantIdParameter +``` + +#### Properties + +| Name | Type | Description | +| -------- | ----------- | ------------------------------------------------------------------------------------------------ | +| tenantId | `Core.uuid` | The Azure tenant ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000) | + +### `TrackedResource` {#Azure.ResourceManager.CommonTypes.TrackedResource} + +The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location' + +```typespec +model Azure.ResourceManager.CommonTypes.TrackedResource ``` #### Properties | Name | Type | Description | | -------- | ---------------- | ----------------------------------------- | -| location | `string` | The geo-location where the resource lives | | tags? | `Record` | Resource tags. | +| location | `string` | The geo-location where the resource lives | -### `UserAssignedIdentities` {#Azure.ResourceManager.Foundations.UserAssignedIdentities} +### `UserAssignedIdentities` {#Azure.ResourceManager.CommonTypes.UserAssignedIdentities} -The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.", +The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests. ```typespec -model Azure.ResourceManager.Foundations.UserAssignedIdentities +model Azure.ResourceManager.CommonTypes.UserAssignedIdentities ``` #### Properties | Name | Type | Description | | ---- | ------------------------------------------------------------------------------------------------ | --------------------- | -| | [`UserAssignedIdentity`](./data-types.md#Azure.ResourceManager.Foundations.UserAssignedIdentity) | Additional properties | +| | [`UserAssignedIdentity`](./data-types.md#Azure.ResourceManager.CommonTypes.UserAssignedIdentity) | Additional properties | -### `UserAssignedIdentity` {#Azure.ResourceManager.Foundations.UserAssignedIdentity} +### `UserAssignedIdentity` {#Azure.ResourceManager.CommonTypes.UserAssignedIdentity} -A managed identity assigned by the user. +User assigned identity properties ```typespec -model Azure.ResourceManager.Foundations.UserAssignedIdentity +model Azure.ResourceManager.CommonTypes.UserAssignedIdentity ``` #### Properties -| Name | Type | Description | -| ------------ | -------- | ---------------------------------------------------------- | -| clientId? | `string` | The active directory client identifier for this principal. | -| principalId? | `string` | The active directory identifier for this principal. | +| Name | Type | Description | +| ------------ | ----------- | ------------------------------------------ | +| principalId? | `Core.uuid` | The principal ID of the assigned identity. | +| clientId? | `Core.uuid` | The client ID of the assigned identity. | -### `ResourceHome` {#Azure.ResourceManager.Foundations.ResourceHome} +### `ResourceHome` {#Azure.ResourceManager.CommonTypes.ResourceHome} An internal enum to indicate the resource support for various path types ```typespec -enum Azure.ResourceManager.Foundations.ResourceHome +enum Azure.ResourceManager.CommonTypes.ResourceHome ``` -### `SkuTier` {#Azure.ResourceManager.Foundations.SkuTier} +### `Versions` {#Azure.ResourceManager.CommonTypes.Versions} -Available service tiers for the SKU. +The Azure Resource Manager common-types versions. ```typespec -enum Azure.ResourceManager.Foundations.SkuTier +enum Azure.ResourceManager.CommonTypes.Versions ``` -### `ActionType` {#Azure.ResourceManager.Foundations.ActionType} +### `ActionType` {#Azure.ResourceManager.CommonTypes.ActionType} Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. ```typespec -union Azure.ResourceManager.Foundations.ActionType +union Azure.ResourceManager.CommonTypes.ActionType ``` -### `CheckNameAvailabilityReason` {#Azure.ResourceManager.Foundations.CheckNameAvailabilityReason} +### `CheckNameAvailabilityReason` {#Azure.ResourceManager.CommonTypes.CheckNameAvailabilityReason} Possible reasons for a name not being available. ```typespec -union Azure.ResourceManager.Foundations.CheckNameAvailabilityReason +union Azure.ResourceManager.CommonTypes.CheckNameAvailabilityReason ``` -### `createdByType` {#Azure.ResourceManager.Foundations.createdByType} +### `createdByType` {#Azure.ResourceManager.CommonTypes.createdByType} The kind of entity that created the resource. ```typespec -union Azure.ResourceManager.Foundations.createdByType +union Azure.ResourceManager.CommonTypes.createdByType +``` + +### `EncryptionStatus` {#Azure.ResourceManager.CommonTypes.EncryptionStatus} + +Indicates whether or not the encryption is enabled for container registry. + +```typespec +union Azure.ResourceManager.CommonTypes.EncryptionStatus ``` -### `ExtendedLocationType` {#Azure.ResourceManager.Foundations.ExtendedLocationType} +### `ExtendedLocationType` {#Azure.ResourceManager.CommonTypes.ExtendedLocationType} The supported ExtendedLocation types. ```typespec -union Azure.ResourceManager.Foundations.ExtendedLocationType +union Azure.ResourceManager.CommonTypes.ExtendedLocationType ``` -### `ManagedServiceIdentityType` {#Azure.ResourceManager.Foundations.ManagedServiceIdentityType} +### `InfrastructureEncryption` {#Azure.ResourceManager.CommonTypes.InfrastructureEncryption} -The kind of managed identity assigned to this resource. +(Optional) Discouraged to include in resource definition. Only needed where it is possible to disable platform (AKA infrastructure) encryption. Azure SQL TDE is an example of this. Values are enabled and disabled. ```typespec -union Azure.ResourceManager.Foundations.ManagedServiceIdentityType +union Azure.ResourceManager.CommonTypes.InfrastructureEncryption ``` -### `Origin` {#Azure.ResourceManager.Foundations.Origin} +### `KeyEncryptionKeyIdentityType` {#Azure.ResourceManager.CommonTypes.KeyEncryptionKeyIdentityType} + +The type of identity to use. + +```typespec +union Azure.ResourceManager.CommonTypes.KeyEncryptionKeyIdentityType +``` + +### `ManagedServiceIdentityType` {#Azure.ResourceManager.CommonTypes.ManagedServiceIdentityType} + +Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). + +```typespec +union Azure.ResourceManager.CommonTypes.ManagedServiceIdentityType +``` + +### `Origin` {#Azure.ResourceManager.CommonTypes.Origin} The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system" ```typespec -union Azure.ResourceManager.Foundations.Origin +union Azure.ResourceManager.CommonTypes.Origin +``` + +### `PrivateEndpointConnectionProvisioningState` {#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProvisioningState} + +The current provisioning state. + +```typespec +union Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProvisioningState +``` + +### `PrivateEndpointServiceConnectionStatus` {#Azure.ResourceManager.CommonTypes.PrivateEndpointServiceConnectionStatus} + +The private endpoint connection status. + +```typespec +union Azure.ResourceManager.CommonTypes.PrivateEndpointServiceConnectionStatus +``` + +### `ResourceIdentityType` {#Azure.ResourceManager.CommonTypes.ResourceIdentityType} + +```typespec +union Azure.ResourceManager.CommonTypes.ResourceIdentityType +``` + +### `SkuTier` {#Azure.ResourceManager.CommonTypes.SkuTier} + +This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT. + +```typespec +union Azure.ResourceManager.CommonTypes.SkuTier +``` + +### `SystemAssignedServiceIdentityType` {#Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentityType} + +Type of managed service identity (either system assigned, or none). + +```typespec +union Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentityType +``` + +## Azure.ResourceManager.Foundations + +### `ArmTagsProperty` {#Azure.ResourceManager.Foundations.ArmTagsProperty} + +Standard type definition for Azure Resource Manager Tags property. + +It is included in the TrackedResource template definition. +The Azure Resource Manager Resource tags. + +```typespec +model Azure.ResourceManager.Foundations.ArmTagsProperty +``` + +#### Properties + +| Name | Type | Description | +| ----- | ---------------- | -------------- | +| tags? | `Record` | Resource tags. | + +### `DefaultBaseParameters` {#Azure.ResourceManager.Foundations.DefaultBaseParameters} + +Base parameters for a resource. + +```typespec +model Azure.ResourceManager.Foundations.DefaultBaseParameters +``` + +#### Template Parameters + +| Name | Description | +| -------- | ------------------------- | +| Resource | The type of the resource. | + +#### Properties + +| Name | Type | Description | +| ----------------- | ----------- | ---------------------------------------------------------------------- | +| apiVersion | `string` | The API version to use for this operation. | +| subscriptionId | `Core.uuid` | The ID of the target subscription. The value must be an UUID. | +| location | `string` | The location name. | +| resourceGroupName | `string` | The name of the resource group. The name is case insensitive. | +| resourceUri | `string` | The fully qualified Azure Resource manager identifier of the resource. | + +### `ExtensionBaseParameters` {#Azure.ResourceManager.Foundations.ExtensionBaseParameters} + +The static parameters for an extension resource + +```typespec +model Azure.ResourceManager.Foundations.ExtensionBaseParameters +``` + +#### Properties + +| Name | Type | Description | +| ----------- | -------- | ---------------------------------------------------------------------- | +| apiVersion | `string` | The API version to use for this operation. | +| resourceUri | `string` | The fully qualified Azure Resource manager identifier of the resource. | + +### `ExtensionScope` {#Azure.ResourceManager.Foundations.ExtensionScope} + +Parameter model for listing an extension resource + +```typespec +model Azure.ResourceManager.Foundations.ExtensionScope +``` + +#### Template Parameters + +| Name | Description | +| -------- | ------------------------- | +| Resource | The type of the resource. | + +#### Properties + +| Name | Type | Description | +| ----------- | -------------------------------- | ---------------------------------------------------------------------- | +| apiVersion | `string` | The API version to use for this operation. | +| resourceUri | `string` | The fully qualified Azure Resource manager identifier of the resource. | +| provider | `"Microsoft.ThisWillBeReplaced"` | | + +### `LocationBaseParameters` {#Azure.ResourceManager.Foundations.LocationBaseParameters} + +The static parameters for a location-based resource + +```typespec +model Azure.ResourceManager.Foundations.LocationBaseParameters ``` -### `SystemAssignedServiceIdentityType` {#Azure.ResourceManager.Foundations.SystemAssignedServiceIdentityType} +#### Properties -The kind of managemed identity assigned to this resource. +| Name | Type | Description | +| -------------- | ----------- | ------------------------------------------------------------- | +| apiVersion | `string` | The API version to use for this operation. | +| subscriptionId | `Core.uuid` | The ID of the target subscription. The value must be an UUID. | +| location | `string` | The location name. | + +### `LocationScope` {#Azure.ResourceManager.Foundations.LocationScope} + +Parameter model for listing a resource at the location scope ```typespec -union Azure.ResourceManager.Foundations.SystemAssignedServiceIdentityType +model Azure.ResourceManager.Foundations.LocationScope ``` + +#### Template Parameters + +| Name | Description | +| -------- | ------------------------- | +| Resource | The type of the resource. | + +#### Properties + +| Name | Type | Description | +| -------------- | -------------------------------- | ------------------------------------------------------------- | +| apiVersion | `string` | The API version to use for this operation. | +| subscriptionId | `Core.uuid` | The ID of the target subscription. The value must be an UUID. | +| location | `string` | The location name. | +| provider | `"Microsoft.ThisWillBeReplaced"` | | + +### `ProxyResourceUpdateModel` {#Azure.ResourceManager.Foundations.ProxyResourceUpdateModel} + +The type used for update operations of the resource. + +```typespec +model Azure.ResourceManager.Foundations.ProxyResourceUpdateModel +``` + +#### Template Parameters + +| Name | Description | +| ---------- | --------------------------- | +| Resource | The type of the resource. | +| Properties | The type of the properties. | + +#### Properties + +| Name | Type | Description | +| ----------- | --------------------------------------------------------------------------------- | ----------- | +| properties? | `ResourceManager.Foundations.ResourceUpdateModelProperties` | | + +### `ResourceGroupBaseParameters` {#Azure.ResourceManager.Foundations.ResourceGroupBaseParameters} + +The static parameters for a resource-group based resource + +```typespec +model Azure.ResourceManager.Foundations.ResourceGroupBaseParameters +``` + +#### Properties + +| Name | Type | Description | +| ----------------- | ----------- | ------------------------------------------------------------- | +| apiVersion | `string` | The API version to use for this operation. | +| subscriptionId | `Core.uuid` | The ID of the target subscription. The value must be an UUID. | +| resourceGroupName | `string` | The name of the resource group. The name is case insensitive. | + +### `ResourceGroupScope` {#Azure.ResourceManager.Foundations.ResourceGroupScope} + +Parameter model for listing a resource at the resource group scope + +```typespec +model Azure.ResourceManager.Foundations.ResourceGroupScope +``` + +#### Template Parameters + +| Name | Description | +| -------- | ------------------------- | +| Resource | The type of the resource. | + +#### Properties + +| Name | Type | Description | +| ----------------- | -------------------------------- | ---------------------------------------------------------------------- | +| apiVersion | `string` | The API version to use for this operation. | +| subscriptionId | `Core.uuid` | The ID of the target subscription. The value must be an UUID. | +| location | `string` | The location name. | +| resourceGroupName | `string` | The name of the resource group. The name is case insensitive. | +| resourceUri | `string` | The fully qualified Azure Resource manager identifier of the resource. | +| provider | `"Microsoft.ThisWillBeReplaced"` | | + +### `ResourceUpdateModel` {#Azure.ResourceManager.Foundations.ResourceUpdateModel} + +Defines a model type used to create named resource update models +e.g. `model MyResourceUpdate is ResourceUpdate {}` + +```typespec +model Azure.ResourceManager.Foundations.ResourceUpdateModel +``` + +#### Template Parameters + +| Name | Description | +| ---------- | --------------------------- | +| Resource | The type of the resource. | +| Properties | The type of the properties. | + +#### Properties + +| Name | Type | Description | +| ----------- | --------------------------------------------------------------------------------- | ----------- | +| properties? | `ResourceManager.Foundations.ResourceUpdateModelProperties` | | + +### `ResourceUpdateModelProperties` {#Azure.ResourceManager.Foundations.ResourceUpdateModelProperties} + +Defines a properties type used to create named resource update models. +This type is not used directly, it is referenced by ResourceUpdateModel. + +```typespec +model Azure.ResourceManager.Foundations.ResourceUpdateModelProperties +``` + +#### Template Parameters + +| Name | Description | +| ---------- | --------------------------- | +| Resource | The type of the resource. | +| Properties | The type of the properties. | + +#### Properties + +None + +### `SubscriptionBaseParameters` {#Azure.ResourceManager.Foundations.SubscriptionBaseParameters} + +The static parameters for a subscription based resource + +```typespec +model Azure.ResourceManager.Foundations.SubscriptionBaseParameters +``` + +#### Properties + +| Name | Type | Description | +| -------------- | ----------- | ------------------------------------------------------------- | +| apiVersion | `string` | The API version to use for this operation. | +| subscriptionId | `Core.uuid` | The ID of the target subscription. The value must be an UUID. | + +### `SubscriptionScope` {#Azure.ResourceManager.Foundations.SubscriptionScope} + +Parameter model for listing a resource at the subscription scope + +```typespec +model Azure.ResourceManager.Foundations.SubscriptionScope +``` + +#### Template Parameters + +| Name | Description | +| -------- | ------------------------- | +| Resource | The type of the resource. | + +#### Properties + +| Name | Type | Description | +| -------------- | -------------------------------- | ------------------------------------------------------------- | +| apiVersion | `string` | The API version to use for this operation. | +| subscriptionId | `Core.uuid` | The ID of the target subscription. The value must be an UUID. | +| provider | `"Microsoft.ThisWillBeReplaced"` | | + +### `TagsUpdateModel` {#Azure.ResourceManager.Foundations.TagsUpdateModel} + +The type used for updating tags in resources. + +```typespec +model Azure.ResourceManager.Foundations.TagsUpdateModel +``` + +#### Template Parameters + +| Name | Description | +| -------- | ------------------------- | +| Resource | The type of the resource. | + +#### Properties + +| Name | Type | Description | +| ----- | ---------------- | -------------- | +| tags? | `Record` | Resource tags. | + +### `TenantBaseParameters` {#Azure.ResourceManager.Foundations.TenantBaseParameters} + +The static parameters for a tenant-based resource + +```typespec +model Azure.ResourceManager.Foundations.TenantBaseParameters +``` + +#### Properties + +| Name | Type | Description | +| ---------- | -------- | ------------------------------------------ | +| apiVersion | `string` | The API version to use for this operation. | + +### `TenantScope` {#Azure.ResourceManager.Foundations.TenantScope} + +Parameter model for listing a resource at the tenant scope + +```typespec +model Azure.ResourceManager.Foundations.TenantScope +``` + +#### Template Parameters + +| Name | Description | +| -------- | ------------------------- | +| Resource | The type of the resource. | + +#### Properties + +| Name | Type | Description | +| ---------- | -------------------------------- | ------------------------------------------ | +| apiVersion | `string` | The API version to use for this operation. | +| provider | `"Microsoft.ThisWillBeReplaced"` | | diff --git a/docs/libraries/azure-resource-manager/reference/decorators.md b/docs/libraries/azure-resource-manager/reference/decorators.md index 7f8fbcdc0b..9983be00ac 100644 --- a/docs/libraries/azure-resource-manager/reference/decorators.md +++ b/docs/libraries/azure-resource-manager/reference/decorators.md @@ -23,9 +23,9 @@ the version of the Azure Resource Manager common-types to use for refs in emitte #### Parameters -| Name | Type | Description | -| ------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------ | -| version | `valueof string \| EnumMember` | The Azure.ResourceManager.CommonTypes.Versions for the desired common-types version or an equivalent string value. | +| Name | Type | Description | +| ------- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------- | +| version | `valueof string \| EnumMember` | The Azure.ResourceManager.CommonTypes.Versions for the desired common-types version or an equivalent string value like "v5". | ### `@armLibraryNamespace` {#@Azure.ResourceManager.armLibraryNamespace} diff --git a/docs/libraries/azure-resource-manager/reference/index.mdx b/docs/libraries/azure-resource-manager/reference/index.mdx index 51360a7a56..ef473192d6 100644 --- a/docs/libraries/azure-resource-manager/reference/index.mdx +++ b/docs/libraries/azure-resource-manager/reference/index.mdx @@ -115,7 +115,6 @@ npm install --save-peer @azure-tools/typespec-azure-resource-manager ### Models -- [`ApiVersionParameter`](./data-types.md#Azure.ResourceManager.ApiVersionParameter) - [`ArmAcceptedLroResponse`](./data-types.md#Azure.ResourceManager.ArmAcceptedLroResponse) - [`ArmAcceptedResponse`](./data-types.md#Azure.ResourceManager.ArmAcceptedResponse) - [`ArmAsyncOperationHeader`](./data-types.md#Azure.ResourceManager.ArmAsyncOperationHeader) @@ -135,35 +134,20 @@ npm install --save-peer @azure-tools/typespec-azure-resource-manager - [`ArmResourceNotFoundResponse`](./data-types.md#Azure.ResourceManager.ArmResourceNotFoundResponse) - [`ArmResourceUpdatedResponse`](./data-types.md#Azure.ResourceManager.ArmResourceUpdatedResponse) - [`ArmResponse`](./data-types.md#Azure.ResourceManager.ArmResponse) -- [`CustomerManagedKeyEncryption`](./data-types.md#Azure.ResourceManager.CustomerManagedKeyEncryption) - [`DefaultProvisioningStateProperty`](./data-types.md#Azure.ResourceManager.DefaultProvisioningStateProperty) -- [`Encryption`](./data-types.md#Azure.ResourceManager.Encryption) -- [`EncryptionConfiguration`](./data-types.md#Azure.ResourceManager.EncryptionConfiguration) +- [`EncryptionProperty`](./data-types.md#Azure.ResourceManager.EncryptionProperty) - [`EntityTagProperty`](./data-types.md#Azure.ResourceManager.EntityTagProperty) -- [`ErrorResponse`](./data-types.md#Azure.ResourceManager.ErrorResponse) - [`ExtendedLocationProperty`](./data-types.md#Azure.ResourceManager.ExtendedLocationProperty) - [`ExtensionResource`](./data-types.md#Azure.ResourceManager.ExtensionResource) - [`KeysOf`](./data-types.md#Azure.ResourceManager.KeysOf) - [`LocationParameter`](./data-types.md#Azure.ResourceManager.LocationParameter) -- [`LocationResourceParameter`](./data-types.md#Azure.ResourceManager.LocationResourceParameter) - [`ManagedByProperty`](./data-types.md#Azure.ResourceManager.ManagedByProperty) - [`ManagedServiceIdentityProperty`](./data-types.md#Azure.ResourceManager.ManagedServiceIdentityProperty) - [`ManagedSystemAssignedIdentityProperty`](./data-types.md#Azure.ResourceManager.ManagedSystemAssignedIdentityProperty) - [`ParentKeysOf`](./data-types.md#Azure.ResourceManager.ParentKeysOf) -- [`PrivateEndpoint`](./data-types.md#Azure.ResourceManager.PrivateEndpoint) -- [`PrivateEndpointConnection`](./data-types.md#Azure.ResourceManager.PrivateEndpointConnection) -- [`PrivateEndpointConnectionParameter`](./data-types.md#Azure.ResourceManager.PrivateEndpointConnectionParameter) -- [`PrivateEndpointConnectionProperties`](./data-types.md#Azure.ResourceManager.PrivateEndpointConnectionProperties) -- [`PrivateEndpointConnectionResourceListResult`](./data-types.md#Azure.ResourceManager.PrivateEndpointConnectionResourceListResult) -- [`PrivateLinkResource`](./data-types.md#Azure.ResourceManager.PrivateLinkResource) -- [`PrivateLinkResourceListResult`](./data-types.md#Azure.ResourceManager.PrivateLinkResourceListResult) -- [`PrivateLinkResourceParameter`](./data-types.md#Azure.ResourceManager.PrivateLinkResourceParameter) -- [`PrivateLinkResourceProperties`](./data-types.md#Azure.ResourceManager.PrivateLinkResourceProperties) -- [`PrivateLinkServiceConnectionState`](./data-types.md#Azure.ResourceManager.PrivateLinkServiceConnectionState) - [`ProviderNamespace`](./data-types.md#Azure.ResourceManager.ProviderNamespace) - [`ProxyResource`](./data-types.md#Azure.ResourceManager.ProxyResource) - [`ResourceGroupLocationResource`](./data-types.md#Azure.ResourceManager.ResourceGroupLocationResource) -- [`ResourceGroupParameter`](./data-types.md#Azure.ResourceManager.ResourceGroupParameter) - [`ResourceInstanceParameters`](./data-types.md#Azure.ResourceManager.ResourceInstanceParameters) - [`ResourceKindProperty`](./data-types.md#Azure.ResourceManager.ResourceKindProperty) - [`ResourceListResult`](./data-types.md#Azure.ResourceManager.ResourceListResult) @@ -172,13 +156,66 @@ npm install --save-peer @azure-tools/typespec-azure-resource-manager - [`ResourcePlanProperty`](./data-types.md#Azure.ResourceManager.ResourcePlanProperty) - [`ResourceSkuProperty`](./data-types.md#Azure.ResourceManager.ResourceSkuProperty) - [`ResourceUriParameter`](./data-types.md#Azure.ResourceManager.ResourceUriParameter) -- [`SubscriptionIdParameter`](./data-types.md#Azure.ResourceManager.SubscriptionIdParameter) - [`SubscriptionLocationResource`](./data-types.md#Azure.ResourceManager.SubscriptionLocationResource) - [`TenantLocationResource`](./data-types.md#Azure.ResourceManager.TenantLocationResource) - [`TrackedResource`](./data-types.md#Azure.ResourceManager.TrackedResource) ## Azure.ResourceManager.CommonTypes +### Models + +- [`ApiVersionParameter`](./data-types.md#Azure.ResourceManager.CommonTypes.ApiVersionParameter) +- [`AzureEntityResource`](./data-types.md#Azure.ResourceManager.CommonTypes.AzureEntityResource) +- [`CheckNameAvailabilityRequest`](./data-types.md#Azure.ResourceManager.CommonTypes.CheckNameAvailabilityRequest) +- [`CheckNameAvailabilityResponse`](./data-types.md#Azure.ResourceManager.CommonTypes.CheckNameAvailabilityResponse) +- [`CustomerManagedKeyEncryption`](./data-types.md#Azure.ResourceManager.CommonTypes.CustomerManagedKeyEncryption) +- [`Encryption`](./data-types.md#Azure.ResourceManager.CommonTypes.Encryption) +- [`EncryptionProperties`](./data-types.md#Azure.ResourceManager.CommonTypes.EncryptionProperties) +- [`ErrorAdditionalInfo`](./data-types.md#Azure.ResourceManager.CommonTypes.ErrorAdditionalInfo) +- [`ErrorDetail`](./data-types.md#Azure.ResourceManager.CommonTypes.ErrorDetail) +- [`ErrorResponse`](./data-types.md#Azure.ResourceManager.CommonTypes.ErrorResponse) +- [`ExtendedLocation`](./data-types.md#Azure.ResourceManager.CommonTypes.ExtendedLocation) +- [`ExtensionResource`](./data-types.md#Azure.ResourceManager.CommonTypes.ExtensionResource) +- [`Identity`](./data-types.md#Azure.ResourceManager.CommonTypes.Identity) +- [`IfMatchHeader`](./data-types.md#Azure.ResourceManager.CommonTypes.IfMatchHeader) +- [`IfNoneMatchHeader`](./data-types.md#Azure.ResourceManager.CommonTypes.IfNoneMatchHeader) +- [`KeyEncryptionKeyIdentity`](./data-types.md#Azure.ResourceManager.CommonTypes.KeyEncryptionKeyIdentity) +- [`KeyVaultProperties`](./data-types.md#Azure.ResourceManager.CommonTypes.KeyVaultProperties) +- [`LocationData`](./data-types.md#Azure.ResourceManager.CommonTypes.LocationData) +- [`LocationParameter`](./data-types.md#Azure.ResourceManager.CommonTypes.LocationParameter) +- [`LocationResourceParameter`](./data-types.md#Azure.ResourceManager.CommonTypes.LocationResourceParameter) +- [`ManagedServiceIdentity`](./data-types.md#Azure.ResourceManager.CommonTypes.ManagedServiceIdentity) +- [`ManagementGroupNameParameter`](./data-types.md#Azure.ResourceManager.CommonTypes.ManagementGroupNameParameter) +- [`Operation`](./data-types.md#Azure.ResourceManager.CommonTypes.Operation) +- [`OperationDisplay`](./data-types.md#Azure.ResourceManager.CommonTypes.OperationDisplay) +- [`OperationIdParameter`](./data-types.md#Azure.ResourceManager.CommonTypes.OperationIdParameter) +- [`OperationListResult`](./data-types.md#Azure.ResourceManager.CommonTypes.OperationListResult) +- [`OperationStatusResult`](./data-types.md#Azure.ResourceManager.CommonTypes.OperationStatusResult) +- [`Plan`](./data-types.md#Azure.ResourceManager.CommonTypes.Plan) +- [`PrivateEndpoint`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateEndpoint) +- [`PrivateEndpointConnection`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateEndpointConnection) +- [`PrivateEndpointConnectionListResult`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionListResult) +- [`PrivateEndpointConnectionParameter`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionParameter) +- [`PrivateEndpointConnectionProperties`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProperties) +- [`PrivateLinkResource`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateLinkResource) +- [`PrivateLinkResourceListResult`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateLinkResourceListResult) +- [`PrivateLinkResourceParameter`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateLinkResourceParameter) +- [`PrivateLinkResourceProperties`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateLinkResourceProperties) +- [`PrivateLinkServiceConnectionState`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateLinkServiceConnectionState) +- [`ProxyResource`](./data-types.md#Azure.ResourceManager.CommonTypes.ProxyResource) +- [`Resource`](./data-types.md#Azure.ResourceManager.CommonTypes.Resource) +- [`ResourceGroupNameParameter`](./data-types.md#Azure.ResourceManager.CommonTypes.ResourceGroupNameParameter) +- [`ResourceModelWithAllowedPropertySet`](./data-types.md#Azure.ResourceManager.CommonTypes.ResourceModelWithAllowedPropertySet) +- [`ScopeParameter`](./data-types.md#Azure.ResourceManager.CommonTypes.ScopeParameter) +- [`Sku`](./data-types.md#Azure.ResourceManager.CommonTypes.Sku) +- [`SubscriptionIdParameter`](./data-types.md#Azure.ResourceManager.CommonTypes.SubscriptionIdParameter) +- [`SystemAssignedServiceIdentity`](./data-types.md#Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentity) +- [`SystemData`](./data-types.md#Azure.ResourceManager.CommonTypes.SystemData) +- [`TenantIdParameter`](./data-types.md#Azure.ResourceManager.CommonTypes.TenantIdParameter) +- [`TrackedResource`](./data-types.md#Azure.ResourceManager.CommonTypes.TrackedResource) +- [`UserAssignedIdentities`](./data-types.md#Azure.ResourceManager.CommonTypes.UserAssignedIdentities) +- [`UserAssignedIdentity`](./data-types.md#Azure.ResourceManager.CommonTypes.UserAssignedIdentity) + ## Azure.ResourceManager.Foundations ### Operations @@ -191,40 +228,18 @@ npm install --save-peer @azure-tools/typespec-azure-resource-manager ### Models - [`ArmTagsProperty`](./data-types.md#Azure.ResourceManager.Foundations.ArmTagsProperty) -- [`AzureEntityResource`](./data-types.md#Azure.ResourceManager.Foundations.AzureEntityResource) -- [`CheckNameAvailabilityRequest`](./data-types.md#Azure.ResourceManager.Foundations.CheckNameAvailabilityRequest) -- [`CheckNameAvailabilityResponse`](./data-types.md#Azure.ResourceManager.Foundations.CheckNameAvailabilityResponse) - [`DefaultBaseParameters`](./data-types.md#Azure.ResourceManager.Foundations.DefaultBaseParameters) -- [`ErrorAdditionalInfo`](./data-types.md#Azure.ResourceManager.Foundations.ErrorAdditionalInfo) -- [`ErrorDetail`](./data-types.md#Azure.ResourceManager.Foundations.ErrorDetail) -- [`ExtendedLocation`](./data-types.md#Azure.ResourceManager.Foundations.ExtendedLocation) - [`ExtensionBaseParameters`](./data-types.md#Azure.ResourceManager.Foundations.ExtensionBaseParameters) -- [`ExtensionResource`](./data-types.md#Azure.ResourceManager.Foundations.ExtensionResource) - [`ExtensionScope`](./data-types.md#Azure.ResourceManager.Foundations.ExtensionScope) - [`LocationBaseParameters`](./data-types.md#Azure.ResourceManager.Foundations.LocationBaseParameters) - [`LocationScope`](./data-types.md#Azure.ResourceManager.Foundations.LocationScope) -- [`ManagedServiceIdentity`](./data-types.md#Azure.ResourceManager.Foundations.ManagedServiceIdentity) -- [`Operation`](./data-types.md#Azure.ResourceManager.Foundations.Operation) -- [`OperationDisplay`](./data-types.md#Azure.ResourceManager.Foundations.OperationDisplay) -- [`OperationIdParameter`](./data-types.md#Azure.ResourceManager.Foundations.OperationIdParameter) -- [`OperationListResult`](./data-types.md#Azure.ResourceManager.Foundations.OperationListResult) -- [`OperationStatusResult`](./data-types.md#Azure.ResourceManager.Foundations.OperationStatusResult) -- [`Plan`](./data-types.md#Azure.ResourceManager.Foundations.Plan) -- [`ProxyResource`](./data-types.md#Azure.ResourceManager.Foundations.ProxyResource) - [`ProxyResourceUpdateModel`](./data-types.md#Azure.ResourceManager.Foundations.ProxyResourceUpdateModel) -- [`Resource`](./data-types.md#Azure.ResourceManager.Foundations.Resource) - [`ResourceGroupBaseParameters`](./data-types.md#Azure.ResourceManager.Foundations.ResourceGroupBaseParameters) - [`ResourceGroupScope`](./data-types.md#Azure.ResourceManager.Foundations.ResourceGroupScope) - [`ResourceUpdateModel`](./data-types.md#Azure.ResourceManager.Foundations.ResourceUpdateModel) - [`ResourceUpdateModelProperties`](./data-types.md#Azure.ResourceManager.Foundations.ResourceUpdateModelProperties) -- [`Sku`](./data-types.md#Azure.ResourceManager.Foundations.Sku) - [`SubscriptionBaseParameters`](./data-types.md#Azure.ResourceManager.Foundations.SubscriptionBaseParameters) - [`SubscriptionScope`](./data-types.md#Azure.ResourceManager.Foundations.SubscriptionScope) -- [`SystemAssignedServiceIdentity`](./data-types.md#Azure.ResourceManager.Foundations.SystemAssignedServiceIdentity) -- [`SystemData`](./data-types.md#Azure.ResourceManager.Foundations.SystemData) - [`TagsUpdateModel`](./data-types.md#Azure.ResourceManager.Foundations.TagsUpdateModel) - [`TenantBaseParameters`](./data-types.md#Azure.ResourceManager.Foundations.TenantBaseParameters) - [`TenantScope`](./data-types.md#Azure.ResourceManager.Foundations.TenantScope) -- [`TrackedResource`](./data-types.md#Azure.ResourceManager.Foundations.TrackedResource) -- [`UserAssignedIdentities`](./data-types.md#Azure.ResourceManager.Foundations.UserAssignedIdentities) -- [`UserAssignedIdentity`](./data-types.md#Azure.ResourceManager.Foundations.UserAssignedIdentity) diff --git a/docs/libraries/azure-resource-manager/reference/interfaces.md b/docs/libraries/azure-resource-manager/reference/interfaces.md index e9faafed8d..bee0fa9964 100644 --- a/docs/libraries/azure-resource-manager/reference/interfaces.md +++ b/docs/libraries/azure-resource-manager/reference/interfaces.md @@ -25,7 +25,7 @@ interface Azure.ResourceManager.ExtensionResourceCollectionOperations #### `ExtensionResourceCollectionOperations.listByParent` {#Azure.ResourceManager.ExtensionResourceCollectionOperations.listByParent} ```typespec -op Azure.ResourceManager.ExtensionResourceCollectionOperations.listByParent(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ExtensionResourceCollectionOperations.listByParent(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ExtensionResourceInstanceOperations` {#Azure.ResourceManager.ExtensionResourceInstanceOperations} @@ -46,25 +46,25 @@ interface Azure.ResourceManager.ExtensionResourceInstanceOperations | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ExtensionResourceInstanceOperations.get(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ExtensionResourceInstanceOperations.createOrUpdate` {#Azure.ResourceManager.ExtensionResourceInstanceOperations.createOrUpdate} ```typespec -op Azure.ResourceManager.ExtensionResourceInstanceOperations.createOrUpdate(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ExtensionResourceInstanceOperations.createOrUpdate(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ExtensionResourceInstanceOperations.update` {#Azure.ResourceManager.ExtensionResourceInstanceOperations.update} ```typespec -op Azure.ResourceManager.ExtensionResourceInstanceOperations.update(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ExtensionResourceInstanceOperations.update(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ExtensionResourceInstanceOperations.delete` {#Azure.ResourceManager.ExtensionResourceInstanceOperations.delete} ```typespec -op Azure.ResourceManager.ExtensionResourceInstanceOperations.delete(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ExtensionResourceInstanceOperations.delete(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ExtensionResourceOperations` {#Azure.ResourceManager.ExtensionResourceOperations} @@ -85,31 +85,31 @@ interface Azure.ResourceManager.ExtensionResourceOperations | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ExtensionResourceOperations.get(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ExtensionResourceOperations.createOrUpdate` {#Azure.ResourceManager.ExtensionResourceOperations.createOrUpdate} ```typespec -op Azure.ResourceManager.ExtensionResourceOperations.createOrUpdate(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ExtensionResourceOperations.createOrUpdate(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ExtensionResourceOperations.update` {#Azure.ResourceManager.ExtensionResourceOperations.update} ```typespec -op Azure.ResourceManager.ExtensionResourceOperations.update(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ExtensionResourceOperations.update(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ExtensionResourceOperations.delete` {#Azure.ResourceManager.ExtensionResourceOperations.delete} ```typespec -op Azure.ResourceManager.ExtensionResourceOperations.delete(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ExtensionResourceOperations.delete(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ExtensionResourceOperations.listByParent` {#Azure.ResourceManager.ExtensionResourceOperations.listByParent} ```typespec -op Azure.ResourceManager.ExtensionResourceOperations.listByParent(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ExtensionResourceOperations.listByParent(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `Operations` {#Azure.ResourceManager.Operations} @@ -128,7 +128,7 @@ interface Azure.ResourceManager.Operations<> List the operations for the provider ```typespec -op Azure.ResourceManager.Operations.list(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.Operations.list(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ProxyResourceOperations` {#Azure.ResourceManager.ProxyResourceOperations} @@ -155,25 +155,25 @@ interface Azure.ResourceManager.ProxyResourceOperations | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ProxyResourceOperations.get(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ProxyResourceOperations.createOrUpdate` {#Azure.ResourceManager.ProxyResourceOperations.createOrUpdate} ```typespec -op Azure.ResourceManager.ProxyResourceOperations.createOrUpdate(provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ProxyResourceOperations.createOrUpdate(provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ProxyResourceOperations.delete` {#Azure.ResourceManager.ProxyResourceOperations.delete} ```typespec -op Azure.ResourceManager.ProxyResourceOperations.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ProxyResourceOperations.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ProxyResourceOperations.listByParent` {#Azure.ResourceManager.ProxyResourceOperations.listByParent} ```typespec -op Azure.ResourceManager.ProxyResourceOperations.listByParent(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ProxyResourceOperations.listByParent(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceCollectionOperations` {#Azure.ResourceManager.ResourceCollectionOperations} @@ -194,13 +194,13 @@ interface Azure.ResourceManager.ResourceCollectionOperations> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceCollectionOperations.listByParent(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ResourceCollectionOperations.listBySubscription` {#Azure.ResourceManager.ResourceCollectionOperations.listBySubscription} ```typespec -op Azure.ResourceManager.ResourceCollectionOperations.listBySubscription(apiVersion: string, subscriptionId: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceCollectionOperations.listBySubscription(apiVersion: string, subscriptionId: Azure.Core.uuid, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceCreateAsync` {#Azure.ResourceManager.ResourceCreateAsync} @@ -221,7 +221,7 @@ interface Azure.ResourceManager.ResourceCreateAsync #### `ResourceCreateAsync.createOrUpdate` {#Azure.ResourceManager.ResourceCreateAsync.createOrUpdate} ```typespec -op Azure.ResourceManager.ResourceCreateAsync.createOrUpdate(provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceCreateAsync.createOrUpdate(provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceCreateSync` {#Azure.ResourceManager.ResourceCreateSync} @@ -242,7 +242,7 @@ interface Azure.ResourceManager.ResourceCreateSync #### `ResourceCreateSync.createOrUpdate` {#Azure.ResourceManager.ResourceCreateSync.createOrUpdate} ```typespec -op Azure.ResourceManager.ResourceCreateSync.createOrUpdate(provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedSyncResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceCreateSync.createOrUpdate(provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedSyncResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceDeleteAsync` {#Azure.ResourceManager.ResourceDeleteAsync} @@ -261,7 +261,7 @@ interface Azure.ResourceManager.ResourceDeleteAsync #### `ResourceDeleteAsync.delete` {#Azure.ResourceManager.ResourceDeleteAsync.delete} ```typespec -op Azure.ResourceManager.ResourceDeleteAsync.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceDeleteAsync.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceDeleteSync` {#Azure.ResourceManager.ResourceDeleteSync} @@ -282,7 +282,7 @@ interface Azure.ResourceManager.ResourceDeleteSync #### `ResourceDeleteSync.delete` {#Azure.ResourceManager.ResourceDeleteSync.delete} ```typespec -op Azure.ResourceManager.ResourceDeleteSync.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceDeleteSync.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceDeleteWithoutOkAsync` {#Azure.ResourceManager.ResourceDeleteWithoutOkAsync} @@ -301,7 +301,7 @@ interface Azure.ResourceManager.ResourceDeleteWithoutOkAsync | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceDeleteWithoutOkAsync.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceInstanceOperations` {#Azure.ResourceManager.ResourceInstanceOperations} @@ -324,25 +324,25 @@ interface Azure.ResourceManager.ResourceInstanceOperations | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceInstanceOperations.get(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ResourceInstanceOperations.createOrUpdate` {#Azure.ResourceManager.ResourceInstanceOperations.createOrUpdate} ```typespec -op Azure.ResourceManager.ResourceInstanceOperations.createOrUpdate(provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceInstanceOperations.createOrUpdate(provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ResourceInstanceOperations.update` {#Azure.ResourceManager.ResourceInstanceOperations.update} ```typespec -op Azure.ResourceManager.ResourceInstanceOperations.update(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceInstanceOperations.update(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ResourceInstanceOperations.delete` {#Azure.ResourceManager.ResourceInstanceOperations.delete} ```typespec -op Azure.ResourceManager.ResourceInstanceOperations.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceInstanceOperations.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceListByParent` {#Azure.ResourceManager.ResourceListByParent} @@ -365,7 +365,7 @@ interface Azure.ResourceManager.ResourceListByParent> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceListByParent.listByParent(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceListBySubscription` {#Azure.ResourceManager.ResourceListBySubscription} @@ -385,7 +385,7 @@ interface Azure.ResourceManager.ResourceListBySubscription #### `ResourceListBySubscription.listBySubscription` {#Azure.ResourceManager.ResourceListBySubscription.listBySubscription} ```typespec -op Azure.ResourceManager.ResourceListBySubscription.listBySubscription(apiVersion: string, subscriptionId: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceListBySubscription.listBySubscription(apiVersion: string, subscriptionId: Azure.Core.uuid, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceOperations` {#Azure.ResourceManager.ResourceOperations} @@ -405,37 +405,37 @@ interface Azure.ResourceManager.ResourceOperations | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceOperations.get(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ResourceOperations.createOrUpdate` {#Azure.ResourceManager.ResourceOperations.createOrUpdate} ```typespec -op Azure.ResourceManager.ResourceOperations.createOrUpdate(provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceOperations.createOrUpdate(provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ResourceOperations.update` {#Azure.ResourceManager.ResourceOperations.update} ```typespec -op Azure.ResourceManager.ResourceOperations.update(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceOperations.update(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ResourceOperations.delete` {#Azure.ResourceManager.ResourceOperations.delete} ```typespec -op Azure.ResourceManager.ResourceOperations.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceOperations.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ResourceOperations.listByParent` {#Azure.ResourceManager.ResourceOperations.listByParent} ```typespec -op Azure.ResourceManager.ResourceOperations.listByParent(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceOperations.listByParent(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ResourceOperations.listBySubscription` {#Azure.ResourceManager.ResourceOperations.listBySubscription} ```typespec -op Azure.ResourceManager.ResourceOperations.listBySubscription(apiVersion: string, subscriptionId: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceOperations.listBySubscription(apiVersion: string, subscriptionId: Azure.Core.uuid, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceRead` {#Azure.ResourceManager.ResourceRead} @@ -456,7 +456,7 @@ interface Azure.ResourceManager.ResourceRead #### `ResourceRead.get` {#Azure.ResourceManager.ResourceRead.get} ```typespec -op Azure.ResourceManager.ResourceRead.get(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceRead.get(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceUpdateAsync` {#Azure.ResourceManager.ResourceUpdateAsync} @@ -476,7 +476,7 @@ interface Azure.ResourceManager.ResourceUpdateAsync): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ArmAcceptedLroResponse<"Resource update request accepted.", Azure.ResourceManager.{ location: string, retryAfter: int32 }> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceUpdateAsync.update(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ArmAcceptedLroResponse<"Resource update request accepted.", Azure.ResourceManager.{ location: string, retryAfter: int32 }> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceUpdateSync` {#Azure.ResourceManager.ResourceUpdateSync} @@ -498,7 +498,7 @@ interface Azure.ResourceManager.ResourceUpdateSync): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceUpdateSync.update(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `TenantResourceOperations` {#Azure.ResourceManager.TenantResourceOperations} @@ -525,31 +525,31 @@ interface Azure.ResourceManager.TenantResourceOperations #### `TenantResourceOperations.get` {#Azure.ResourceManager.TenantResourceOperations.get} ```typespec -op Azure.ResourceManager.TenantResourceOperations.get(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.TenantResourceOperations.get(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `TenantResourceOperations.createOrUpdate` {#Azure.ResourceManager.TenantResourceOperations.createOrUpdate} ```typespec -op Azure.ResourceManager.TenantResourceOperations.createOrUpdate(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.TenantResourceOperations.createOrUpdate(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `TenantResourceOperations.update` {#Azure.ResourceManager.TenantResourceOperations.update} ```typespec -op Azure.ResourceManager.TenantResourceOperations.update(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.TenantResourceOperations.update(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `TenantResourceOperations.delete` {#Azure.ResourceManager.TenantResourceOperations.delete} ```typespec -op Azure.ResourceManager.TenantResourceOperations.delete(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.TenantResourceOperations.delete(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `TenantResourceOperations.listByParent` {#Azure.ResourceManager.TenantResourceOperations.listByParent} ```typespec -op Azure.ResourceManager.TenantResourceOperations.listByParent(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.TenantResourceOperations.listByParent(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `TrackedResourceOperations` {#Azure.ResourceManager.TrackedResourceOperations} @@ -574,37 +574,37 @@ interface Azure.ResourceManager.TrackedResourceOperations | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.TrackedResourceOperations.get(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `TrackedResourceOperations.createOrUpdate` {#Azure.ResourceManager.TrackedResourceOperations.createOrUpdate} ```typespec -op Azure.ResourceManager.TrackedResourceOperations.createOrUpdate(provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.TrackedResourceOperations.createOrUpdate(provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `TrackedResourceOperations.update` {#Azure.ResourceManager.TrackedResourceOperations.update} ```typespec -op Azure.ResourceManager.TrackedResourceOperations.update(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.TrackedResourceOperations.update(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `TrackedResourceOperations.delete` {#Azure.ResourceManager.TrackedResourceOperations.delete} ```typespec -op Azure.ResourceManager.TrackedResourceOperations.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.TrackedResourceOperations.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `TrackedResourceOperations.listByParent` {#Azure.ResourceManager.TrackedResourceOperations.listByParent} ```typespec -op Azure.ResourceManager.TrackedResourceOperations.listByParent(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.TrackedResourceOperations.listByParent(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `TrackedResourceOperations.listBySubscription` {#Azure.ResourceManager.TrackedResourceOperations.listBySubscription} ```typespec -op Azure.ResourceManager.TrackedResourceOperations.listBySubscription(apiVersion: string, subscriptionId: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.TrackedResourceOperations.listBySubscription(apiVersion: string, subscriptionId: Azure.Core.uuid, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ArmCustomPatchAsync` {#Azure.ResourceManager.ArmCustomPatchAsync} @@ -651,7 +651,7 @@ op Azure.ResourceManager.ArmCustomPatchSync(provider: "Microsoft.ThisWillBeRepla A resource list operation, at the subscription scope ```typespec -op Azure.ResourceManager.ArmListBySubscription(apiVersion: string, subscriptionId: string, provider: "Microsoft.ThisWillBeReplaced"): Response | Error +op Azure.ResourceManager.ArmListBySubscription(apiVersion: string, subscriptionId: Azure.Core.uuid, provider: "Microsoft.ThisWillBeReplaced"): Response | Error ``` #### Template Parameters @@ -970,7 +970,7 @@ op Azure.ResourceManager.ArmResourceListByParent(provider: "Microsoft.ThisWillBe ### `ArmResourcePatchAsync` {#Azure.ResourceManager.ArmResourcePatchAsync} ```typespec -op Azure.ResourceManager.ArmResourcePatchAsync(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ArmAcceptedLroResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ArmResourcePatchAsync(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ArmAcceptedLroResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### Template Parameters @@ -986,7 +986,7 @@ op Azure.ResourceManager.ArmResourcePatchAsync(provider: "Microsoft.ThisWillBeRe ### `ArmResourcePatchSync` {#Azure.ResourceManager.ArmResourcePatchSync} ```typespec -op Azure.ResourceManager.ArmResourcePatchSync(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ArmResourcePatchSync(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### Template Parameters @@ -1019,7 +1019,7 @@ op Azure.ResourceManager.ArmResourceRead(provider: "Microsoft.ThisWillBeReplaced ### `ArmTagsPatchAsync` {#Azure.ResourceManager.ArmTagsPatchAsync} ```typespec -op Azure.ResourceManager.ArmTagsPatchAsync(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.TagsUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ArmAcceptedLroResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ArmTagsPatchAsync(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.TagsUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ArmAcceptedLroResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### Template Parameters @@ -1035,7 +1035,7 @@ op Azure.ResourceManager.ArmTagsPatchAsync(provider: "Microsoft.ThisWillBeReplac ### `ArmTagsPatchSync` {#Azure.ResourceManager.ArmTagsPatchSync} ```typespec -op Azure.ResourceManager.ArmTagsPatchSync(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.TagsUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ArmTagsPatchSync(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.TagsUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### Template Parameters @@ -1049,7 +1049,7 @@ op Azure.ResourceManager.ArmTagsPatchSync(provider: "Microsoft.ThisWillBeReplace ### `checkGlobalNameAvailability` {#Azure.ResourceManager.checkGlobalNameAvailability} ```typespec -op Azure.ResourceManager.checkGlobalNameAvailability(apiVersion: string, subscriptionId: string, provider: "Microsoft.ThisWillBeReplaced", body: Request): Response | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.checkGlobalNameAvailability(apiVersion: string, subscriptionId: Azure.Core.uuid, provider: "Microsoft.ThisWillBeReplaced", body: Request): Response | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### Template Parameters @@ -1063,7 +1063,7 @@ op Azure.ResourceManager.checkGlobalNameAvailability(apiVersion: string, subscri ### `checkLocalNameAvailability` {#Azure.ResourceManager.checkLocalNameAvailability} ```typespec -op Azure.ResourceManager.checkLocalNameAvailability(apiVersion: string, subscriptionId: string, provider: "Microsoft.ThisWillBeReplaced", location: string, body: Request): Response | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.checkLocalNameAvailability(apiVersion: string, subscriptionId: Azure.Core.uuid, provider: "Microsoft.ThisWillBeReplaced", location: string, body: Request): Response | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### Template Parameters @@ -1127,7 +1127,7 @@ a resource name must be globally unique (for example, if the resource exposes an endpoint that uses the resource name in the url) ```typespec -op Azure.ResourceManager.Foundations.checkNameAvailability(apiVersion: string, body: Request): Response | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.Foundations.checkNameAvailability(apiVersion: string, body: Request): Response | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### Template Parameters diff --git a/packages/samples/specs/resource-manager/arm-library/ref-library/int-templates.tsp b/packages/samples/specs/resource-manager/arm-library/ref-library/int-templates.tsp index 8e59e40e18..48b7755e1a 100644 --- a/packages/samples/specs/resource-manager/arm-library/ref-library/int-templates.tsp +++ b/packages/samples/specs/resource-manager/arm-library/ref-library/int-templates.tsp @@ -11,6 +11,7 @@ using Azure.ResourceManager; #suppress "@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint" "cuz" @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) +@useDependency(Azure.ResourceManager.CommonTypes.Versions.v3) @armLibraryNamespace namespace Microsoft.InterfacesTest; diff --git a/packages/samples/specs/resource-manager/arm-library/ref-library/op-templates.tsp b/packages/samples/specs/resource-manager/arm-library/ref-library/op-templates.tsp index 4106ef2383..63c4ce47eb 100644 --- a/packages/samples/specs/resource-manager/arm-library/ref-library/op-templates.tsp +++ b/packages/samples/specs/resource-manager/arm-library/ref-library/op-templates.tsp @@ -11,6 +11,7 @@ using Azure.ResourceManager; #suppress "@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint" "cuz" @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) +@useDependency(Azure.ResourceManager.CommonTypes.Versions.v3) @armLibraryNamespace namespace Microsoft.OperationsTest; diff --git a/packages/samples/specs/resource-manager/operations/operation-status/main.tsp b/packages/samples/specs/resource-manager/operations/operation-status/main.tsp index 62e829a52c..25a7b0d1b9 100644 --- a/packages/samples/specs/resource-manager/operations/operation-status/main.tsp +++ b/packages/samples/specs/resource-manager/operations/operation-status/main.tsp @@ -19,7 +19,7 @@ namespace Microsoft.OperationStatusSample; enum Versions { @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) @useDependency(Azure.Core.Versions.v1_0_Preview_2) - @armCommonTypesVersion("v5") + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) `2022-11-01-preview`, } diff --git a/packages/samples/specs/resource-manager/resource-common-properties/common-properties/main.tsp b/packages/samples/specs/resource-manager/resource-common-properties/common-properties/main.tsp new file mode 100644 index 0000000000..0b9bfdeb33 --- /dev/null +++ b/packages/samples/specs/resource-manager/resource-common-properties/common-properties/main.tsp @@ -0,0 +1,68 @@ +import "@typespec/http"; +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.ResourceManager; +using Azure.Core; + +@armProviderNamespace("Contoso.CommonEnvelopePropertiesExample") +@service({ + title: "Contoso.CommonEnvelopePropertiesExample", +}) +@versioned(Versions) +@doc("An example of using some of common envelope and property bag properties in a resource type. Their names are all end with 'Property'.") +namespace Microsoft.UpdateTests; + +/** UpdateTests API versions */ +enum Versions { + /** 2023-03-01-preview version */ + @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + `2023-03-01-preview`, +} + +interface Operations extends Azure.ResourceManager.Operations {} + +@doc("Widget Resource") +model WidgetResource is TrackedResource { + @pattern("^[a-zA-Z0-9-]{3,24}$") + @doc("The name of the widget.") + @key("widgetName") + @segment("widgets") + @path + name: string; + + ...ExtendedLocationProperty; + ...ManagedByProperty; +} + +@doc("Widget Resource Properties.") +model WidgetResourceProperties { + @doc("The widget color.") + @visibility("create", "read") + color: string; + + /** Provisioning state */ + @visibility("read") + provisioningState?: ResourceProvisioningState; + + ...EntityTagProperty; + ...ResourceKindProperty; + ...ResourcePlanProperty; + ...ResourceSkuProperty; +} + +@armResourceOperations +interface Widgets { + get is ArmResourceRead; + create is ArmResourceCreateOrReplaceAsync; + update is ArmTagsPatchSync; + delete is ArmResourceDeleteWithoutOkAsync; + listByResourceGroup is ArmResourceListByParent; + listBySubscription is ArmListBySubscription; +} diff --git a/packages/samples/specs/resource-manager/resource-common-properties/encryption/main.tsp b/packages/samples/specs/resource-manager/resource-common-properties/encryption/main.tsp index a1cc373bd2..812435d79b 100644 --- a/packages/samples/specs/resource-manager/resource-common-properties/encryption/main.tsp +++ b/packages/samples/specs/resource-manager/resource-common-properties/encryption/main.tsp @@ -14,14 +14,18 @@ using Azure.Core; @service({ title: "Contoso.CustomerManagedKeyExample", }) -@OpenAPI.info({ - version: "2023-03-01-preview", -}) +@versioned(Versions) @doc("An example of using the Customer Managed Key Encryption properties in a resource type.") -@useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) -@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) namespace Microsoft.UpdateTests; +/** UpdateTests API versions */ +enum Versions { + /** 2023-03-01-preview version */ + @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + `2023-03-01-preview`, +} + interface Operations extends Azure.ResourceManager.Operations {} @doc("Widget Resource") @@ -44,7 +48,7 @@ model WidgetResourceProperties { @visibility("read") provisioningState?: ResourceProvisioningState; - ...Encryption; + ...EncryptionProperty; } @armResourceOperations diff --git a/packages/samples/specs/resource-manager/resource-common-properties/managed-identity/main.tsp b/packages/samples/specs/resource-manager/resource-common-properties/managed-identity/main.tsp new file mode 100644 index 0000000000..33af6987c1 --- /dev/null +++ b/packages/samples/specs/resource-manager/resource-common-properties/managed-identity/main.tsp @@ -0,0 +1,62 @@ +import "@typespec/http"; +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.ResourceManager; +using Azure.Core; + +@armProviderNamespace("Contoso.ManagedIdentityExample") +@service({ + title: "Contoso.ManagedIdentityExample", +}) +@versioned(Versions) +@doc("An example of using the ManagedIdentity properties in a resource type.") +namespace Microsoft.UpdateTests; + +/** UpdateTests API versions */ +enum Versions { + /** 2023-03-01-preview version */ + @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + `2023-03-01-preview`, +} + +interface Operations extends Azure.ResourceManager.Operations {} + +@doc("Widget Resource") +model WidgetResource is TrackedResource { + @pattern("^[a-zA-Z0-9-]{3,24}$") + @doc("The name of the widget.") + @key("widgetName") + @segment("widgets") + @path + name: string; + + ...ManagedServiceIdentityProperty; // Or ...ManagedSystemAssignedIdentityProperty; +} + +@doc("Widget Resource Properties.") +model WidgetResourceProperties { + @doc("The widget color.") + @visibility("create", "read") + color: string; + + /** Provisioning state */ + @visibility("read") + provisioningState?: ResourceProvisioningState; +} + +@armResourceOperations +interface Widgets { + get is ArmResourceRead; + create is ArmResourceCreateOrUpdateAsync; + update is ArmTagsPatchSync; + delete is ArmResourceDeleteWithoutOkAsync; + listByResourceGroup is ArmResourceListByParent; + listBySubscription is ArmListBySubscription; +} diff --git a/packages/samples/test/output/azure/resource-manager/resource-common-properties/common-properties/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-common-properties/common-properties/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json new file mode 100644 index 0000000000..55c9e6e16d --- /dev/null +++ b/packages/samples/test/output/azure/resource-manager/resource-common-properties/common-properties/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json @@ -0,0 +1,554 @@ +{ + "swagger": "2.0", + "info": { + "title": "Contoso.CommonEnvelopePropertiesExample", + "version": "2023-03-01-preview", + "description": "An example of using some of common envelope and property bag properties in a resource type. Their names are all end with 'Property'.", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] + }, + "schemes": [ + "https" + ], + "host": "management.azure.com", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow.", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "tags": [ + { + "name": "Operations" + }, + { + "name": "Widgets" + } + ], + "paths": { + "/providers/Contoso.CommonEnvelopePropertiesExample/operations": { + "get": { + "operationId": "Operations_List", + "tags": [ + "Operations" + ], + "description": "List the operations for the provider", + "parameters": [ + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/OperationListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Contoso.CommonEnvelopePropertiesExample/widgets": { + "get": { + "operationId": "Widgets_ListBySubscription", + "tags": [ + "Widgets" + ], + "description": "List WidgetResource resources by subscription ID", + "parameters": [ + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/WidgetResourceListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.CommonEnvelopePropertiesExample/widgets": { + "get": { + "operationId": "Widgets_ListByResourceGroup", + "tags": [ + "Widgets" + ], + "description": "List WidgetResource resources by resource group", + "parameters": [ + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/WidgetResourceListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.CommonEnvelopePropertiesExample/widgets/{widgetName}": { + "get": { + "operationId": "Widgets_Get", + "tags": [ + "Widgets" + ], + "description": "Get a WidgetResource", + "parameters": [ + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "widgetName", + "in": "path", + "description": "The name of the widget.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/WidgetResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + } + } + } + }, + "put": { + "operationId": "Widgets_Create", + "tags": [ + "Widgets" + ], + "description": "Create a WidgetResource", + "parameters": [ + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "widgetName", + "in": "path", + "description": "The name of the widget.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/WidgetResource" + } + } + ], + "responses": { + "200": { + "description": "Resource 'WidgetResource' update operation succeeded", + "schema": { + "$ref": "#/definitions/WidgetResource" + } + }, + "201": { + "description": "Resource 'WidgetResource' create operation succeeded", + "schema": { + "$ref": "#/definitions/WidgetResource" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "Widgets_Update", + "tags": [ + "Widgets" + ], + "description": "Update a WidgetResource", + "parameters": [ + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "widgetName", + "in": "path", + "description": "The name of the widget.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + }, + { + "name": "properties", + "in": "body", + "description": "The resource properties to be updated.", + "required": true, + "schema": { + "$ref": "#/definitions/WidgetResourceTagsUpdate" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/WidgetResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "operationId": "Widgets_Delete", + "tags": [ + "Widgets" + ], + "description": "Delete a WidgetResource", + "parameters": [ + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "widgetName", + "in": "path", + "description": "The name of the widget.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + } + }, + "definitions": { + "Azure.ResourceManager.CommonTypes.ExtendedLocation": { + "type": "object", + "description": "The complex type of the extended location.", + "properties": { + "name": { + "type": "string", + "description": "The name of the extended location." + }, + "type": { + "$ref": "#/definitions/Azure.ResourceManager.CommonTypes.ExtendedLocationType", + "description": "The type of the extended location." + } + }, + "required": [ + "name", + "type" + ] + }, + "Azure.ResourceManager.CommonTypes.ExtendedLocationType": { + "type": "string", + "description": "The supported ExtendedLocation types.", + "enum": [ + "EdgeZone", + "CustomLocation" + ], + "x-ms-enum": { + "name": "ExtendedLocationType", + "modelAsString": true, + "values": [ + { + "name": "EdgeZone", + "value": "EdgeZone", + "description": "Azure Edge Zones location type" + }, + { + "name": "CustomLocation", + "value": "CustomLocation", + "description": "Azure Custom Locations type" + } + ] + } + }, + "Azure.ResourceManager.ResourceProvisioningState": { + "type": "string", + "description": "The provisioning state of a resource type.", + "enum": [ + "Succeeded", + "Failed", + "Canceled" + ], + "x-ms-enum": { + "name": "ResourceProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Resource has been created." + }, + { + "name": "Failed", + "value": "Failed", + "description": "Resource creation failed." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "Resource creation was canceled." + } + ] + }, + "readOnly": true + }, + "WidgetResource": { + "type": "object", + "description": "Widget Resource", + "properties": { + "properties": { + "$ref": "#/definitions/WidgetResourceProperties", + "description": "The resource-specific properties for this resource.", + "x-ms-client-flatten": true, + "x-ms-mutability": [ + "read", + "create" + ] + }, + "extendedLocation": { + "$ref": "#/definitions/Azure.ResourceManager.CommonTypes.ExtendedLocation", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "managedBy": { + "type": "string", + "description": "The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource." + } + }, + "allOf": [ + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/TrackedResource" + } + ] + }, + "WidgetResourceListResult": { + "type": "object", + "description": "The response of a WidgetResource list operation.", + "properties": { + "value": { + "type": "array", + "description": "The WidgetResource items on this page", + "items": { + "$ref": "#/definitions/WidgetResource" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "WidgetResourceProperties": { + "type": "object", + "description": "Widget Resource Properties.", + "properties": { + "color": { + "type": "string", + "description": "The widget color.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "provisioningState": { + "$ref": "#/definitions/Azure.ResourceManager.ResourceProvisioningState", + "description": "Provisioning state", + "readOnly": true + }, + "eTag": { + "type": "string", + "description": "If eTag is provided in the response body, it may also be provided as a header per the normal etag convention. Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.", + "readOnly": true + }, + "kind": { + "type": "string", + "description": "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.", + "pattern": "^[-\\w\\._,\\(\\\\\\)]+$", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "plan": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/Plan", + "description": "Details of the resource plan." + }, + "sku": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/Sku", + "description": "The SKU (Stock Keeping Unit) assigned to this resource." + } + }, + "required": [ + "color" + ] + }, + "WidgetResourceTagsUpdate": { + "type": "object", + "description": "The type used for updating tags in WidgetResource resources.", + "properties": { + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } + } + } + } + }, + "parameters": {} +} diff --git a/packages/samples/test/output/azure/resource-manager/resource-common-properties/encryption/@azure-tools/typespec-autorest/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-common-properties/encryption/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json similarity index 76% rename from packages/samples/test/output/azure/resource-manager/resource-common-properties/encryption/@azure-tools/typespec-autorest/openapi.json rename to packages/samples/test/output/azure/resource-manager/resource-common-properties/encryption/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json index 55d9acba80..49b6327cae 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-common-properties/encryption/@azure-tools/typespec-autorest/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-common-properties/encryption/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json @@ -56,20 +56,20 @@ "description": "List the operations for the provider", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/OperationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" } } }, @@ -87,10 +87,10 @@ "description": "List WidgetResource resources by subscription ID", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -103,7 +103,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" } } }, @@ -121,13 +121,13 @@ "description": "List WidgetResource resources by resource group", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { @@ -140,7 +140,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" } } }, @@ -158,13 +158,13 @@ "description": "Get a WidgetResource", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "widgetName", @@ -185,7 +185,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" } } } @@ -198,13 +198,13 @@ "description": "Create a WidgetResource", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "widgetName", @@ -251,7 +251,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" } } }, @@ -268,13 +268,13 @@ "description": "Update a WidgetResource", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "widgetName", @@ -304,7 +304,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" } } } @@ -317,13 +317,13 @@ "description": "Delete a WidgetResource", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "widgetName", @@ -355,7 +355,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" } } }, @@ -414,7 +414,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/TrackedResource" } ] }, @@ -457,7 +457,7 @@ "readOnly": true }, "encryption": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/customermanagedkeys.json#/definitions/encryption", + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/customermanagedkeys.json#/definitions/encryption", "description": "All encryption configuration for a resource." } }, diff --git a/packages/samples/test/output/azure/resource-manager/resource-common-properties/managed-identity/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-common-properties/managed-identity/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json new file mode 100644 index 0000000000..f90ff76fb9 --- /dev/null +++ b/packages/samples/test/output/azure/resource-manager/resource-common-properties/managed-identity/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json @@ -0,0 +1,483 @@ +{ + "swagger": "2.0", + "info": { + "title": "Contoso.ManagedIdentityExample", + "version": "2023-03-01-preview", + "description": "An example of using the ManagedIdentity properties in a resource type.", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] + }, + "schemes": [ + "https" + ], + "host": "management.azure.com", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow.", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "tags": [ + { + "name": "Operations" + }, + { + "name": "Widgets" + } + ], + "paths": { + "/providers/Contoso.ManagedIdentityExample/operations": { + "get": { + "operationId": "Operations_List", + "tags": [ + "Operations" + ], + "description": "List the operations for the provider", + "parameters": [ + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/OperationListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Contoso.ManagedIdentityExample/widgets": { + "get": { + "operationId": "Widgets_ListBySubscription", + "tags": [ + "Widgets" + ], + "description": "List WidgetResource resources by subscription ID", + "parameters": [ + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/WidgetResourceListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.ManagedIdentityExample/widgets": { + "get": { + "operationId": "Widgets_ListByResourceGroup", + "tags": [ + "Widgets" + ], + "description": "List WidgetResource resources by resource group", + "parameters": [ + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/WidgetResourceListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.ManagedIdentityExample/widgets/{widgetName}": { + "get": { + "operationId": "Widgets_Get", + "tags": [ + "Widgets" + ], + "description": "Get a WidgetResource", + "parameters": [ + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "widgetName", + "in": "path", + "description": "The name of the widget.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/WidgetResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + } + } + } + }, + "put": { + "operationId": "Widgets_Create", + "tags": [ + "Widgets" + ], + "description": "Create a WidgetResource", + "parameters": [ + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "widgetName", + "in": "path", + "description": "The name of the widget.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/WidgetResource" + } + } + ], + "responses": { + "200": { + "description": "Resource 'WidgetResource' update operation succeeded", + "schema": { + "$ref": "#/definitions/WidgetResource" + } + }, + "201": { + "description": "Resource 'WidgetResource' create operation succeeded", + "schema": { + "$ref": "#/definitions/WidgetResource" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "Widgets_Update", + "tags": [ + "Widgets" + ], + "description": "Update a WidgetResource", + "parameters": [ + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "widgetName", + "in": "path", + "description": "The name of the widget.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + }, + { + "name": "properties", + "in": "body", + "description": "The resource properties to be updated.", + "required": true, + "schema": { + "$ref": "#/definitions/WidgetResourceTagsUpdate" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/WidgetResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "operationId": "Widgets_Delete", + "tags": [ + "Widgets" + ], + "description": "Delete a WidgetResource", + "parameters": [ + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "widgetName", + "in": "path", + "description": "The name of the widget.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + } + }, + "definitions": { + "Azure.ResourceManager.ResourceProvisioningState": { + "type": "string", + "description": "The provisioning state of a resource type.", + "enum": [ + "Succeeded", + "Failed", + "Canceled" + ], + "x-ms-enum": { + "name": "ResourceProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Resource has been created." + }, + { + "name": "Failed", + "value": "Failed", + "description": "Resource creation failed." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "Resource creation was canceled." + } + ] + }, + "readOnly": true + }, + "WidgetResource": { + "type": "object", + "description": "Widget Resource", + "properties": { + "properties": { + "$ref": "#/definitions/WidgetResourceProperties", + "description": "The resource-specific properties for this resource.", + "x-ms-client-flatten": true, + "x-ms-mutability": [ + "read", + "create" + ] + }, + "identity": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/managedidentity.json#/definitions/ManagedServiceIdentity", + "description": "The managed service identities assigned to this resource." + } + }, + "allOf": [ + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/TrackedResource" + } + ] + }, + "WidgetResourceListResult": { + "type": "object", + "description": "The response of a WidgetResource list operation.", + "properties": { + "value": { + "type": "array", + "description": "The WidgetResource items on this page", + "items": { + "$ref": "#/definitions/WidgetResource" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "WidgetResourceProperties": { + "type": "object", + "description": "Widget Resource Properties.", + "properties": { + "color": { + "type": "string", + "description": "The widget color.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "provisioningState": { + "$ref": "#/definitions/Azure.ResourceManager.ResourceProvisioningState", + "description": "Provisioning state", + "readOnly": true + } + }, + "required": [ + "color" + ] + }, + "WidgetResourceTagsUpdate": { + "type": "object", + "description": "The type used for updating tags in WidgetResource resources.", + "properties": { + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } + } + } + } + }, + "parameters": {} +} diff --git a/packages/typespec-autorest/test/arm/arm.test.ts b/packages/typespec-autorest/test/arm/arm.test.ts index 39513d75f0..35d3b5cfb5 100644 --- a/packages/typespec-autorest/test/arm/arm.test.ts +++ b/packages/typespec-autorest/test/arm/arm.test.ts @@ -69,6 +69,7 @@ it("can share types with a library namespace", async () => { it("can use private links with common-types references", async () => { const openapi = await openApiFor( `@useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v4) @armProviderNamespace namespace Microsoft.PrivateLinkTest; @@ -120,6 +121,7 @@ it("can use private endpoints with common-types references", async () => { const openapi = await openApiFor( `@useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) @armProviderNamespace + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) namespace Microsoft.PrivateLinkTest; interface Operations extends Azure.ResourceManager.Operations {} @@ -160,6 +162,7 @@ it("can use ResourceNameParameter for custom name parameter definition", async ( const openapi = await openApiFor( `@useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) @armProviderNamespace + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) namespace Microsoft.PrivateLinkTest; interface Operations extends Azure.ResourceManager.Operations {} @@ -199,6 +202,7 @@ it("can use ResourceNameParameter for default name parameter definition", async const openapi = await openApiFor( `@useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) @armProviderNamespace + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) namespace Microsoft.PrivateLinkTest; interface Operations extends Azure.ResourceManager.Operations {} diff --git a/packages/typespec-azure-portal-core/test/decorators.test.ts b/packages/typespec-azure-portal-core/test/decorators.test.ts index 91cd9a37d3..41390cfe3f 100644 --- a/packages/typespec-azure-portal-core/test/decorators.test.ts +++ b/packages/typespec-azure-portal-core/test/decorators.test.ts @@ -296,10 +296,12 @@ export function createTestSpec( enum Versions { @useDependency(Azure.Core.Versions.v1_0_Preview_2) @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v4) v2022_09_02_preview: "2022-09-02-preview", @useDependency(Azure.Core.Versions.v1_0_Preview_2) @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) v2024_02_20_preview: "2024-02-20-preview", } diff --git a/packages/typespec-azure-resource-manager/README.md b/packages/typespec-azure-resource-manager/README.md index a539c76ec9..703b9022a6 100644 --- a/packages/typespec-azure-resource-manager/README.md +++ b/packages/typespec-azure-resource-manager/README.md @@ -103,9 +103,9 @@ the version of the Azure Resource Manager common-types to use for refs in emitte ##### Parameters -| Name | Type | Description | -| ------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------ | -| version | `valueof string \| EnumMember` | The Azure.ResourceManager.CommonTypes.Versions for the desired common-types version or an equivalent string value. | +| Name | Type | Description | +| ------- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------- | +| version | `valueof string \| EnumMember` | The Azure.ResourceManager.CommonTypes.Versions for the desired common-types version or an equivalent string value like "v5". | #### `@armLibraryNamespace` diff --git a/packages/typespec-azure-resource-manager/lib/arm.tsp b/packages/typespec-azure-resource-manager/lib/arm.tsp index dec73193f1..0a471f32bc 100644 --- a/packages/typespec-azure-resource-manager/lib/arm.tsp +++ b/packages/typespec-azure-resource-manager/lib/arm.tsp @@ -5,14 +5,9 @@ import "@typespec/rest"; import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; -import "./arm.foundations.tsp"; +import "./foundations/arm.foundations.tsp"; import "./common-types/common-types.tsp"; -import "./common-types/backcompat.tsp"; -import "./common-types/types.tsp"; -import "./common-types/managed-identity.tsp"; -import "./common-types/private-links.tsp"; -import "./common-types/customer-managed-keys.tsp"; -import "./common-types/extended-location.tsp"; +import "./backcompat.tsp"; import "./private.decorators.tsp"; import "./models.tsp"; import "./operations.tsp"; diff --git a/packages/typespec-azure-resource-manager/lib/backcompat.tsp b/packages/typespec-azure-resource-manager/lib/backcompat.tsp new file mode 100644 index 0000000000..57a60f2ac1 --- /dev/null +++ b/packages/typespec-azure-resource-manager/lib/backcompat.tsp @@ -0,0 +1,27 @@ +using Azure.ResourceManager.CommonTypes; + +namespace Azure.ResourceManager; + +// customer-managed-keys +alias InfrastructureEncryption = CommonTypes.InfrastructureEncryption; +alias KeyEncryptionIdentity = CommonTypes.KeyEncryptionKeyIdentity; +alias KeyEncryptionKeyIdentity = CommonTypes.KeyEncryptionKeyIdentity; +alias CustomerManagedKeyEncryption = CommonTypes.CustomerManagedKeyEncryption; +alias EncryptionConfiguration = CommonTypes.Encryption; + +// private-links +alias PrivateEndpoint = CommonTypes.PrivateEndpoint; +alias PrivateEndpointConnection = CommonTypes.PrivateEndpointConnection; +alias PrivateEndpointConnectionProperties = CommonTypes.PrivateEndpointConnectionProperties; +alias PrivateLinkServiceConnectionState = CommonTypes.PrivateLinkServiceConnectionState; +alias PrivateEndpointConnectionProvisioningState = CommonTypes.PrivateEndpointConnectionProvisioningState; +alias PrivateEndpointServiceConnectionStatus = CommonTypes.PrivateEndpointServiceConnectionStatus; +alias PrivateEndpointConnectionParameter = CommonTypes.PrivateEndpointConnectionParameter; +alias PrivateLinkResource = CommonTypes.PrivateLinkResource; +alias PrivateLinkResourceProperties = CommonTypes.PrivateLinkResourceProperties; +alias PrivateLinkResourceParameter = CommonTypes.PrivateLinkResourceParameter; +alias PrivateEndpointConnectionResourceListResult = CommonTypes.PrivateEndpointConnectionListResult; +alias PrivateLinkResourceListResult = CommonTypes.PrivateLinkResourceListResult; + +// types +alias ErrorResponse = CommonTypes.ErrorResponse; diff --git a/packages/typespec-azure-resource-manager/lib/common-types/common-types.tsp b/packages/typespec-azure-resource-manager/lib/common-types/common-types.tsp index 187403ac1a..211ef3d5e5 100644 --- a/packages/typespec-azure-resource-manager/lib/common-types/common-types.tsp +++ b/packages/typespec-azure-resource-manager/lib/common-types/common-types.tsp @@ -1,10 +1,20 @@ import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "./common-types.tsp"; +import "./types-ref.tsp"; +import "./managed-identity-ref.tsp"; +import "./private-links-ref.tsp"; +import "./customer-managed-keys-ref.tsp"; +import "./extended-location-ref.tsp"; +import "./internal.tsp"; +import "./commontypes.private.decorators.tsp"; using TypeSpec.Versioning; +@versioned(Versions) namespace Azure.ResourceManager.CommonTypes; -@Private.armCommonTypesVersions +@CommonTypes.Private.armCommonTypesVersions @doc("The Azure Resource Manager common-types versions.") enum Versions { @doc("The Azure Resource Manager v3 common types.") diff --git a/packages/typespec-azure-resource-manager/lib/common-types/commontypes.private.decorators.tsp b/packages/typespec-azure-resource-manager/lib/common-types/commontypes.private.decorators.tsp new file mode 100644 index 0000000000..889a7ec8e1 --- /dev/null +++ b/packages/typespec-azure-resource-manager/lib/common-types/commontypes.private.decorators.tsp @@ -0,0 +1,43 @@ +import "../../dist/src/commontypes.private.decorators.js"; + +namespace Azure.ResourceManager.CommonTypes.Private; + +using TypeSpec.Reflection; + +/** + * Describes the shape of model literals accepted by the `version` parameter of + * the `armCommonDefinition` and `armCommonParameter` decorators. + */ +alias ArmCommonTypeVersionSpec = { + version: string | EnumMember; + isDefault: boolean; +}; + +/** + * @param definitionName Definition name + * @param version Azure Resource Manager Version + * @param referenceFile Reference file + */ +extern dec armCommonDefinition( + target: Model, + definitionName?: valueof string, + version?: valueof EnumMember | ArmCommonTypeVersionSpec | string, + referenceFile?: valueof string +); + +/** + * @param definitionName Definition name + * @param version Azure Resource Manager Version + * @param referenceFile Reference file + */ +extern dec armCommonParameter( + target: ModelProperty, + definitionName?: valueof string, + version?: valueof EnumMember | ArmCommonTypeVersionSpec | string, + referenceFile?: valueof string +); + +/** + * Marks an enum as representing the valid `common-types` versions. + */ +extern dec armCommonTypesVersions(target: Enum); diff --git a/packages/typespec-azure-resource-manager/lib/common-types/customer-managed-keys-ref.tsp b/packages/typespec-azure-resource-manager/lib/common-types/customer-managed-keys-ref.tsp new file mode 100644 index 0000000000..3df1e5168a --- /dev/null +++ b/packages/typespec-azure-resource-manager/lib/common-types/customer-managed-keys-ref.tsp @@ -0,0 +1,27 @@ +import "./customer-managed-keys.tsp"; + +using Azure.ResourceManager.CommonTypes.Private; + +namespace Azure.ResourceManager.CommonTypes; + +@@armCommonDefinition(Encryption, + "encryption", + #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true }, + "customermanagedkeys.json" +); +@@armCommonDefinition(Encryption, + "encryption", + Azure.ResourceManager.CommonTypes.Versions.v5, + "customermanagedkeys.json" +); + +@@armCommonDefinition(CustomerManagedKeyEncryption, + "customerManagedKeyEncryption", + #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true }, + "customermanagedkeys.json" +); +@@armCommonDefinition(CustomerManagedKeyEncryption, + "customerManagedKeyEncryption", + Azure.ResourceManager.CommonTypes.Versions.v5, + "customermanagedkeys.json" +); diff --git a/packages/typespec-azure-resource-manager/lib/common-types/customer-managed-keys.tsp b/packages/typespec-azure-resource-manager/lib/common-types/customer-managed-keys.tsp index eefe408a05..577098f95b 100644 --- a/packages/typespec-azure-resource-manager/lib/common-types/customer-managed-keys.tsp +++ b/packages/typespec-azure-resource-manager/lib/common-types/customer-managed-keys.tsp @@ -1,84 +1,75 @@ using Azure.Core; -using Azure.ResourceManager.Private; +using TypeSpec.Versioning; -namespace Azure.ResourceManager; +namespace Azure.ResourceManager.CommonTypes; -@doc("(Optional) Discouraged to include in resource definition. Only needed where it is possible to disable platform (AKA infrastructure) encryption. Azure SQL TDE is an example of this. Values are enabled and disabled.") +/** (Optional) Discouraged to include in resource definition. Only needed where it is possible to disable platform (AKA infrastructure) encryption. Azure SQL TDE is an example of this. Values are enabled and disabled. */ +@added(Versions.v4) union InfrastructureEncryption { - @doc("Encryption is enabled") + /** Encryption is enabled */ Enabled: "enabled", - @doc("Encryption is disabled") + /** Encryption is disabled */ Disabled: "disabled", string, } -/** Alias of keyEncryptionKeyIdentity for back compatibility. Please change to keyEncryptionKeyIdentity. */ -alias KeyEncryptionIdentity = KeyEncryptionKeyIdentity; - -@doc("The type of identity to use.") -union KeyEncryptionKeyIdentity { - @doc("System assigned identity") +/** The type of identity to use. */ +@added(Versions.v4) +union KeyEncryptionKeyIdentityType { + /** System assigned identity */ SystemAssignedIdentity: "systemAssignedIdentity", - @doc("User assigned identity") + /** User assigned identity */ UserAssignedIdentity: "userAssignedIdentity", - @doc("Delegated identity") + /** Delegated identity */ DelegatedResourceIdentity: "delegatedResourceIdentity", string, } -@doc("Customer-managed key encryption properties for the resource.") -model CustomerManagedKeyEncryption { - @doc("The type of identity to use. Values can be systemAssignedIdentity, userAssignedIdentity, or delegatedResourceIdentity.") - keyEncryptionKeyIdentity?: KeyEncryptionKeyIdentity; +/** All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault. */ +@added(Versions.v4) +model KeyEncryptionKeyIdentity { + /** The type of identity to use. Values can be systemAssignedIdentity, userAssignedIdentity, or delegatedResourceIdentity. */ + identityType?: KeyEncryptionKeyIdentityType; - @doc("User assigned identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity.") + /** User assigned identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity. */ userAssignedIdentityResourceId?: Azure.Core.armResourceIdentifier<[ { type: "Microsoft.ManagedIdentity/userAssignedIdentities"; } ]>; - @doc("application client identity to use for accessing key encryption key Url in a different tenant. Ex: f83c6b1b-4d34-47e4-bb34-9d83df58b540") + /** application client identity to use for accessing key encryption key Url in a different tenant. Ex: f83c6b1b-4d34-47e4-bb34-9d83df58b540 */ + @added(Versions.v5) federatedClientId?: uuid; - @doc("delegated identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity and userAssignedIdentity - internal use only.") + /** delegated identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity and userAssignedIdentity - internal use only. */ delegatedIdentityClientId?: uuid; } -@doc("All encryption configuration for a resource.") -@armCommonDefinition( - "encryption", - Azure.ResourceManager.CommonTypes.Versions.v5, - "customermanagedkeys.json" -) -model EncryptionConfiguration { - @doc("Indicates if infrastructure encryption is enabled or disabled.") - infrastructureEncryption?: InfrastructureEncryption; - - @doc("All customer-managed key encryption properties for the resource.") - customerManagedKeyEncryption?: CustomerManagedKeyEncryption; +/** Customer-managed key encryption properties for the resource. */ +@added(Versions.v4) +model CustomerManagedKeyEncryption { + /** All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault. */ + keyEncryptionKeyIdentity?: KeyEncryptionKeyIdentity; - @doc("key encryption key Url, versioned or unversioned. Ex: https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 or https://contosovault.vault.azure.net/keys/contosokek.") + /** key encryption key Url, versioned or non-versioned. Ex: https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 or https://contosovault.vault.azure.net/keys/contosokek. */ keyEncryptionKeyUrl?: string; } -/** - * Model used only to spread in the `encryption` envelope property for a resource. - * @example - * - * ```typespec - * model Foo is TrackedResource { - * ...Encryption; - * } - * ``` - */ -@doc("All encryption configuration for a resource.") +/** (Optional) Discouraged to include in resource definition. Only needed where it is possible to disable platform (AKA infrastructure) encryption. Azure SQL TDE is an example of this. Values are enabled and disabled. */ +@added(Versions.v4) +@encodedName("application/json", "encryption") model Encryption { - @doc("All encryption configuration for a resource.") - encryption: EncryptionConfiguration; + /** Values are enabled and disabled. */ + infrastructureEncryption?: InfrastructureEncryption; + + /** All Customer-managed key encryption properties for the resource. */ + @added(Versions.v4) + @removed(Versions.v5) + customerManagedKeyEncryption?: CustomerManagedKeyEncryption; } diff --git a/packages/typespec-azure-resource-manager/lib/common-types/extended-location-ref.tsp b/packages/typespec-azure-resource-manager/lib/common-types/extended-location-ref.tsp new file mode 100644 index 0000000000..5feca7a65a --- /dev/null +++ b/packages/typespec-azure-resource-manager/lib/common-types/extended-location-ref.tsp @@ -0,0 +1 @@ +import "./extended-location.tsp"; diff --git a/packages/typespec-azure-resource-manager/lib/common-types/extended-location.tsp b/packages/typespec-azure-resource-manager/lib/common-types/extended-location.tsp index c9a7a398d8..3ff52b38aa 100644 --- a/packages/typespec-azure-resource-manager/lib/common-types/extended-location.tsp +++ b/packages/typespec-azure-resource-manager/lib/common-types/extended-location.tsp @@ -1,21 +1,20 @@ -namespace Azure.ResourceManager.Foundations { - /** The complex type of the extended location. */ - model ExtendedLocation { - /** The name of the extended location. */ - name: string; +namespace Azure.ResourceManager.CommonTypes; +/** The complex type of the extended location. */ +model ExtendedLocation { + /** The name of the extended location. */ + name: string; - /** The type of the extended location. */ - type: ExtendedLocationType; - } + /** The type of the extended location. */ + type: ExtendedLocationType; +} - /** The supported ExtendedLocation types. */ - union ExtendedLocationType { - /** Azure Edge Zones location type */ - EdgeZone: "EdgeZone", +/** The supported ExtendedLocation types. */ +union ExtendedLocationType { + /** Azure Edge Zones location type */ + EdgeZone: "EdgeZone", - /** Azure Custom Locations type */ - CustomLocation: "CustomLocation", + /** Azure Custom Locations type */ + CustomLocation: "CustomLocation", - string, - } + string, } diff --git a/packages/typespec-azure-resource-manager/lib/common-types/internal.tsp b/packages/typespec-azure-resource-manager/lib/common-types/internal.tsp new file mode 100644 index 0000000000..c1334a48a3 --- /dev/null +++ b/packages/typespec-azure-resource-manager/lib/common-types/internal.tsp @@ -0,0 +1,24 @@ +namespace Azure.ResourceManager.CommonTypes; + +/** + * An internal enum to indicate the resource support for various path types + */ +enum ResourceHome { + @doc("The resource is bound to a tenant") + Tenant, + + @doc("The resource is bound to a subscription") + Subscription, + + @doc("The resource is bound to a location") + Location, + + @doc("The resource is bound to a resource group") + ResourceGroup, + + @doc("The resource is bound to an extension") + Extension, +} + +/** Alias of keyEncryptionKeyIdentity for back compatibility. Please change to keyEncryptionKeyIdentity. */ +alias KeyEncryptionIdentity = KeyEncryptionKeyIdentity; diff --git a/packages/typespec-azure-resource-manager/lib/common-types/managed-identity-ref.tsp b/packages/typespec-azure-resource-manager/lib/common-types/managed-identity-ref.tsp new file mode 100644 index 0000000000..c839d489ed --- /dev/null +++ b/packages/typespec-azure-resource-manager/lib/common-types/managed-identity-ref.tsp @@ -0,0 +1,79 @@ +import "./managed-identity.tsp"; + +using Azure.ResourceManager.CommonTypes.Private; + +namespace Azure.ResourceManager.CommonTypes; + +/** + * The properties of the managed service identities assigned to this resource. + */ +@@armCommonDefinition(ManagedServiceIdentity, + "ManagedServiceIdentity", + #{ version: Azure.ResourceManager.CommonTypes.Versions.v3, isDefault: true }, + "managedidentity.json" +); +@@armCommonDefinition(ManagedServiceIdentity, + "ManagedServiceIdentity", + Azure.ResourceManager.CommonTypes.Versions.v4, + "managedidentity.json" +); +@@armCommonDefinition(ManagedServiceIdentity, + "ManagedServiceIdentity", + Azure.ResourceManager.CommonTypes.Versions.v5, + "managedidentity.json" +); + +/** The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.", */ +@@armCommonDefinition(UserAssignedIdentities, + "UserAssignedIdentities", + #{ version: Azure.ResourceManager.CommonTypes.Versions.v3, isDefault: true }, + "managedidentity.json" +); +@@armCommonDefinition(UserAssignedIdentities, + "UserAssignedIdentities", + Azure.ResourceManager.CommonTypes.Versions.v4, + "managedidentity.json" +); +@@armCommonDefinition(UserAssignedIdentities, + "UserAssignedIdentities", + Azure.ResourceManager.CommonTypes.Versions.v5, + "managedidentity.json" +); + +/** + * The properties of the service-assigned identity associated with this resource. + */ +@@armCommonDefinition(SystemAssignedServiceIdentity, + "SystemAssignedServiceIdentity", + #{ version: Azure.ResourceManager.CommonTypes.Versions.v3, isDefault: true }, + "managedidentity.json" +); +@@armCommonDefinition(SystemAssignedServiceIdentity, + "SystemAssignedServiceIdentity", + Azure.ResourceManager.CommonTypes.Versions.v4, + "managedidentity.json" +); +@@armCommonDefinition(SystemAssignedServiceIdentity, + "SystemAssignedServiceIdentity", + Azure.ResourceManager.CommonTypes.Versions.v5, + "managedidentity.json" +); + +/** + * A managed identity assigned by the user. + */ +@@armCommonDefinition(UserAssignedIdentity, + "UserAssignedIdentity", + #{ version: Azure.ResourceManager.CommonTypes.Versions.v3, isDefault: true }, + "managedidentity.json" +); +@@armCommonDefinition(UserAssignedIdentity, + "UserAssignedIdentity", + Azure.ResourceManager.CommonTypes.Versions.v4, + "managedidentity.json" +); +@@armCommonDefinition(UserAssignedIdentity, + "UserAssignedIdentity", + Azure.ResourceManager.CommonTypes.Versions.v5, + "managedidentity.json" +); diff --git a/packages/typespec-azure-resource-manager/lib/common-types/managed-identity.tsp b/packages/typespec-azure-resource-manager/lib/common-types/managed-identity.tsp index f44b698300..f42f111d84 100644 --- a/packages/typespec-azure-resource-manager/lib/common-types/managed-identity.tsp +++ b/packages/typespec-azure-resource-manager/lib/common-types/managed-identity.tsp @@ -1,137 +1,100 @@ -using Azure.ResourceManager.Private; +using Azure.Core; +using TypeSpec.Versioning; -namespace Azure.ResourceManager.Foundations; +namespace Azure.ResourceManager.CommonTypes; + +/** The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests. */ +#deprecated "Do not use this model. Instead, use Record directly. Using this model will result in a different client SDK when generated from TypeSpec compared to the Swagger." +model UserAssignedIdentities is Record; -#deprecated "Please change ManagedIdentityProperties to ManagedServiceIdentity." -alias ManagedIdentityProperties = ManagedServiceIdentity; /** - * The properties of the managed service identities assigned to this resource. + * Managed service identity (system assigned and/or user assigned identities) */ -@armCommonDefinition( - "ManagedServiceIdentity", - #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true }, - "managedidentity.json" -) -@armCommonDefinition( - "ManagedServiceIdentity", - Azure.ResourceManager.CommonTypes.Versions.v5, - "managedidentity.json" -) model ManagedServiceIdentity { - @doc("The Active Directory tenant id of the principal.") + /** The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity. */ @visibility("read") - tenantId?: string; + principalId?: uuid; - @doc("The active directory identifier of this principal.") + /** The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity. */ @visibility("read") - principalId?: string; + tenantId?: uuid; - @doc("The type of managed identity assigned to this resource.") + /** The type of managed identity assigned to this resource. */ type: ManagedServiceIdentityType; - @doc("The identities assigned to this resource by the user.") - userAssignedIdentities?: Record; + /** The identities assigned to this resource by the user. */ + @typeChangedFrom(Versions.v5, Record) + userAssignedIdentities?: Record | null; } -/** The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.", */ -#deprecated "Do not use this model. Instead, use Record directly. Using this model will result in a different client SDK when generated from TypeSpec compared to the Swagger." -@armCommonDefinition( - "UserAssignedIdentities", - #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true }, - "managedidentity.json" -) -@armCommonDefinition( - "UserAssignedIdentities", - Azure.ResourceManager.CommonTypes.Versions.v5, - "managedidentity.json" -) -model UserAssignedIdentities is Record; - -#deprecated "Please change ManagedSystemIdentityProperties to SystemAssignedServiceIdentity." -alias ManagedSystemIdentityProperties = SystemAssignedServiceIdentity; /** - * The properties of the service-assigned identity associated with this resource. + * Managed service identity (either system assigned, or none) */ -@armCommonDefinition( - "SystemAssignedServiceIdentity", - #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true }, - "managedidentity.json" -) -@armCommonDefinition( - "SystemAssignedServiceIdentity", - Azure.ResourceManager.CommonTypes.Versions.v5, - "managedidentity.json" -) model SystemAssignedServiceIdentity { - @doc("The Active Directory tenant id of the principal.") + /** The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity. */ @visibility("read") - tenantId?: string; + principalId?: uuid; - @doc("The active directory identifier of this principal.") + /** The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity. */ @visibility("read") - principalId?: string; + tenantId?: uuid; - @doc("The type of managed identity assigned to this resource.") + /** The type of managed identity assigned to this resource. */ type: SystemAssignedServiceIdentityType; } -/** Alias of ManagedServiceIdentityType for back compatability. Please change to ManagedServiceIdentityType. */ -#deprecated "Please change to ManagedServiceIdentityType." -alias ManagedIdentityType = ManagedServiceIdentityType; /** - * A managed identity assigned by the user. + * User assigned identity properties */ -@armCommonDefinition( - "UserAssignedIdentity", - #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true }, - "managedidentity.json" -) -@armCommonDefinition( - "UserAssignedIdentity", - Azure.ResourceManager.CommonTypes.Versions.v5, - "managedidentity.json" -) -@doc("A managed identity assigned by the user.") model UserAssignedIdentity { - @doc("The active directory client identifier for this principal.") - clientId?: string; + /** The principal ID of the assigned identity. */ + @visibility("read") + principalId?: uuid; - @doc("The active directory identifier for this principal.") - principalId?: string; + /** The client ID of the assigned identity. */ + @visibility("read") + clientId?: uuid; } /** - * The kind of managed identity assigned to this resource. + * Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). */ -@doc("The kind of managed identity assigned to this resource.") union ManagedServiceIdentityType { - @doc("No managed identity.") + /** No managed identity. */ None: "None", - @doc("System assigned managed identity.") + /** System assigned managed identity. */ SystemAssigned: "SystemAssigned", - @doc("User assigned managed identity.") + /** User assigned managed identity. */ UserAssigned: "UserAssigned", - @doc("System and user assigned managed identity.") - SystemAndUserAssigned: "SystemAssigned, UserAssigned", + /** System and user assigned managed identity. */ + @renamedFrom(Versions.v3, "SystemAndUserAssigned") + @removed(Versions.v4) + SystemAndUserAssignedV3: "SystemAssigned,UserAssigned", + + /** System and user assigned managed identity. */ + @added(Versions.v4) + @renamedFrom(Versions.v4, "SystemAndUserAssigned") + @removed(Versions.v5) + SystemAndUserAssignedV4: "SystemAssigned, UserAssigned", + + /** System and user assigned managed identity. */ + @added(Versions.v5) + SystemAndUserAssigned: "SystemAssigned,UserAssigned", string, } -/** Alias of SystemAssignedServiceIdentityType for back compatability. Please change to SystemAssignedServiceIdentityType. */ -alias ManagedSystemIdentityType = SystemAssignedServiceIdentityType; - /** - * The kind of managemed identity assigned to this resource. + * Type of managed service identity (either system assigned, or none). */ -@doc("The kind of managemed identity assigned to this resource.") union SystemAssignedServiceIdentityType { - @doc("No managed system identity.") + /** No managed system identity. */ None: "None", - @doc("System assigned managed system identity.") + /** System assigned managed system identity. */ SystemAssigned: "SystemAssigned", string, diff --git a/packages/typespec-azure-resource-manager/lib/common-types/private-links-ref.tsp b/packages/typespec-azure-resource-manager/lib/common-types/private-links-ref.tsp new file mode 100644 index 0000000000..2fca19e18d --- /dev/null +++ b/packages/typespec-azure-resource-manager/lib/common-types/private-links-ref.tsp @@ -0,0 +1,159 @@ +import "./private-links.tsp"; + +using Azure.ResourceManager.CommonTypes.Private; + +namespace Azure.ResourceManager.CommonTypes; + +/** The private endpoint */ +@@armCommonDefinition(PrivateEndpoint, + "PrivateEndpoint", + #{ version: Azure.ResourceManager.CommonTypes.Versions.v3, isDefault: true }, + "privatelinks.json" +); +@@armCommonDefinition(PrivateEndpoint, + "PrivateEndpoint", + Azure.ResourceManager.CommonTypes.Versions.v4, + "privatelinks.json" +); +@@armCommonDefinition(PrivateEndpoint, + "PrivateEndpoint", + Azure.ResourceManager.CommonTypes.Versions.v5, + "privatelinks.json" +); + +/** The private endpoint resource */ +@@armCommonDefinition(PrivateLinkResource, + "PrivateLinkResource", + #{ version: Azure.ResourceManager.CommonTypes.Versions.v3, isDefault: true }, + "privatelinks.json" +); +@@armCommonDefinition(PrivateLinkResource, + "PrivateLinkResource", + Azure.ResourceManager.CommonTypes.Versions.v4, + "privatelinks.json" +); +@@armCommonDefinition(PrivateLinkResource, + "PrivateLinkResource", + Azure.ResourceManager.CommonTypes.Versions.v5, + "privatelinks.json" +); + +/** PrivateEndpointConnection */ +@@armCommonDefinition(PrivateEndpointConnection, + "PrivateEndpointConnection", + #{ version: Azure.ResourceManager.CommonTypes.Versions.v3, isDefault: true }, + "privatelinks.json" +); +@@armCommonDefinition(PrivateEndpointConnection, + "PrivateEndpointConnection", + Azure.ResourceManager.CommonTypes.Versions.v4, + "privatelinks.json" +); +@@armCommonDefinition(PrivateEndpointConnection, + "PrivateEndpointConnection", + Azure.ResourceManager.CommonTypes.Versions.v5, + "privatelinks.json" +); + +/** Properties of he private endpoint connection resource */ +@@armCommonDefinition(PrivateEndpointConnectionProperties, + "PrivateEndpointConnectionProperties", + #{ version: Azure.ResourceManager.CommonTypes.Versions.v3, isDefault: true }, + "privatelinks.json" +); +@@armCommonDefinition(PrivateEndpointConnectionProperties, + "PrivateEndpointConnectionProperties", + Azure.ResourceManager.CommonTypes.Versions.v4, + "privatelinks.json" +); +@@armCommonDefinition(PrivateEndpointConnectionProperties, + "PrivateEndpointConnectionProperties", + Azure.ResourceManager.CommonTypes.Versions.v5, + "privatelinks.json" +); + +/** A collection of information about the state of the connection between service consumer and provider. */ +@@armCommonDefinition(PrivateLinkServiceConnectionState, + "PrivateLinkServiceConnectionState", + #{ version: Azure.ResourceManager.CommonTypes.Versions.v3, isDefault: true }, + "privatelinks.json" +); +@@armCommonDefinition(PrivateLinkServiceConnectionState, + "PrivateLinkServiceConnectionState", + Azure.ResourceManager.CommonTypes.Versions.v4, + "privatelinks.json" +); +@@armCommonDefinition(PrivateLinkServiceConnectionState, + "PrivateLinkServiceConnectionState", + Azure.ResourceManager.CommonTypes.Versions.v5, + "privatelinks.json" +); + +/** Properties of a private link resource. */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "Matches current common code" +@@armCommonDefinition(PrivateLinkResourceProperties, + "PrivateLinkResourceProperties", + #{ version: Azure.ResourceManager.CommonTypes.Versions.v3, isDefault: true }, + "privatelinks.json" +); +@@armCommonDefinition(PrivateLinkResourceProperties, + "PrivateLinkResourceProperties", + Azure.ResourceManager.CommonTypes.Versions.v4, + "privatelinks.json" +); +@@armCommonDefinition(PrivateLinkResourceProperties, + "PrivateLinkResourceProperties", + Azure.ResourceManager.CommonTypes.Versions.v5, + "privatelinks.json" +); + +/** PrivateEndpointConnectionListResult */ +@@armCommonDefinition(PrivateEndpointConnectionListResult, + "PrivateEndpointConnectionListResult", + #{ version: Azure.ResourceManager.CommonTypes.Versions.v3, isDefault: true }, + "privatelinks.json" +); +@@armCommonDefinition(PrivateEndpointConnectionListResult, + "PrivateEndpointConnectionListResult", + Azure.ResourceManager.CommonTypes.Versions.v4, + "privatelinks.json" +); +@@armCommonDefinition(PrivateEndpointConnectionListResult, + "PrivateEndpointConnectionListResult", + Azure.ResourceManager.CommonTypes.Versions.v5, + "privatelinks.json" +); + +/** PrivateLinkResourceListResult */ +@@armCommonDefinition(PrivateLinkResourceListResult, + "PrivateLinkResourceListResult", + #{ version: Azure.ResourceManager.CommonTypes.Versions.v3, isDefault: true }, + "privatelinks.json" +); +@@armCommonDefinition(PrivateLinkResourceListResult, + "PrivateLinkResourceListResult", + Azure.ResourceManager.CommonTypes.Versions.v4, + "privatelinks.json" +); +@@armCommonDefinition(PrivateLinkResourceListResult, + "PrivateLinkResourceListResult", + Azure.ResourceManager.CommonTypes.Versions.v5, + "privatelinks.json" +); + +/** PrivateEndpointConnectionParameter */ +@@CommonTypes.Private.armCommonParameter(PrivateEndpointConnectionParameter.name, + "PrivateEndpointConnectionName", + #{ version: Azure.ResourceManager.CommonTypes.Versions.v3, isDefault: true }, + "privatelinks.json" +); +@@CommonTypes.Private.armCommonParameter(PrivateEndpointConnectionParameter.name, + "PrivateEndpointConnectionName", + Azure.ResourceManager.CommonTypes.Versions.v4, + "privatelinks.json" +); +@@CommonTypes.Private.armCommonParameter(PrivateEndpointConnectionParameter.name, + "PrivateEndpointConnectionName", + Azure.ResourceManager.CommonTypes.Versions.v5, + "privatelinks.json" +); diff --git a/packages/typespec-azure-resource-manager/lib/common-types/private-links.tsp b/packages/typespec-azure-resource-manager/lib/common-types/private-links.tsp index 1936211379..694bb96022 100644 --- a/packages/typespec-azure-resource-manager/lib/common-types/private-links.tsp +++ b/packages/typespec-azure-resource-manager/lib/common-types/private-links.tsp @@ -1,29 +1,13 @@ -import "@typespec/openapi"; -import "@typespec/http"; -import "@typespec/rest"; -import "@typespec/versioning"; -import "@azure-tools/typespec-azure-core"; - using TypeSpec.Http; -using TypeSpec.OpenAPI; using TypeSpec.Versioning; -using Azure.ResourceManager.Private; - -namespace Azure.ResourceManager; - -/** The private endpoint resource */ -@armCommonDefinition( - "PrivateEndpoint", - #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true }, - "privatelinks.json" -) -@armCommonDefinition( - "PrivateEndpoint", - Azure.ResourceManager.CommonTypes.Versions.v5, - "privatelinks.json" -) +using OpenAPI; + +namespace Azure.ResourceManager.CommonTypes; + +/** The Private Endpoint resource. */ model PrivateEndpoint { /** The resource identifier for private endpoint */ + @visibility("read") id?: Azure.Core.armResourceIdentifier<[ { type: "Microsoft.Network/privateEndpoints"; @@ -31,49 +15,65 @@ model PrivateEndpoint { ]>; } +/** A private link resource. */ +model PrivateLinkResource extends Resource { + /** Resource properties. */ + @extension("x-ms-client-flatten", true) + properties?: PrivateLinkResourceProperties; +} + +/** Properties of a private link resource. */ +model PrivateLinkResourceProperties { + /** The private link resource group id. */ + @visibility("read") + groupId?: string; + + /** The private link resource required member names. */ + @visibility("read") + requiredMembers?: string[]; + + /** The private link resource private link DNS zone name. */ + requiredZoneNames?: string[]; +} + +/** A list of private link resources. */ +model PrivateLinkResourceListResult { + /** Array of private link resources */ + value?: PrivateLinkResource[]; +} +//#region /** The private endpoint connection resource */ -model PrivateEndpointConnection extends Azure.ResourceManager.Foundations.ProxyResource { +model PrivateEndpointConnection extends Resource { /** The private endpoint connection properties */ + @extension("x-ms-client-flatten", true) properties?: PrivateEndpointConnectionProperties; } -/** Properties of he private endpoint connection resource */ -@armCommonDefinition( - "PrivateEndpointConnectionProperties", - #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true }, - "privatelinks.json" -) -@armCommonDefinition( - "PrivateEndpointConnectionProperties", - Azure.ResourceManager.CommonTypes.Versions.v5, - "privatelinks.json" -) +/** List of private endpoint connections associated with the specified resource. */ +model PrivateEndpointConnectionListResult { + /** Array of private endpoint connections. */ + value?: PrivateEndpointConnection[]; +} + +/** Properties of the private endpoint connection. */ model PrivateEndpointConnectionProperties { - /** The group identifiers for the private endpoint resource */ + /** The group ids for the private endpoint resource. */ @visibility("read") + @added(Versions.v4) groupIds?: string[]; - /** The private endpoint resource */ + /** The private endpoint resource. */ privateEndpoint?: PrivateEndpoint; /** A collection of information about the state of the connection between service consumer and provider. */ privateLinkServiceConnectionState: PrivateLinkServiceConnectionState; /** The provisioning state of the private endpoint connection resource. */ + @visibility("read") provisioningState?: PrivateEndpointConnectionProvisioningState; } /** A collection of information about the state of the connection between service consumer and provider. */ -@armCommonDefinition( - "PrivateLinkServiceConnectionState", - #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true }, - "privatelinks.json" -) -@armCommonDefinition( - "PrivateLinkServiceConnectionState", - Azure.ResourceManager.CommonTypes.Versions.v5, - "privatelinks.json" -) model PrivateLinkServiceConnectionState { /** Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. */ status?: PrivateEndpointServiceConnectionStatus; @@ -85,18 +85,24 @@ model PrivateLinkServiceConnectionState { actionsRequired?: string; } -/** The provisioning state of the connection */ +/** The current provisioning state. */ union PrivateEndpointConnectionProvisioningState { - ResourceProvisioningState, + string, + + /** Connection has been provisioned */ + Succeeded: "Succeeded", /** Connection is being created */ Creating: "Creating", /** Connection is being deleted */ Deleting: "Deleting", + + /** Connection provisioning has failed */ + Failed: "Failed", } -/** The private endpoint connection status */ +/** The private endpoint connection status. */ union PrivateEndpointServiceConnectionStatus { /** Connectionaiting for approval or rejection */ Pending: "Pending", @@ -110,48 +116,6 @@ union PrivateEndpointServiceConnectionStatus { string, } -model PrivateLinkResource extends Azure.ResourceManager.Foundations.ProxyResource { - /** Properties of the private link resource. */ - properties?: PrivateLinkResourceProperties; -} - -/** Properties of a private link resource. */ -#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "Matches current common code" -@armCommonDefinition( - "PrivateLinkResourceProperties", - #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true }, - "privatelinks.json" -) -@armCommonDefinition( - "PrivateLinkResourceProperties", - Azure.ResourceManager.CommonTypes.Versions.v5, - "privatelinks.json" -) -model PrivateLinkResourceProperties { - /** The private link resource group id. */ - @visibility("read") - groupId?: string; - - /** The private link resource required member names. */ - @visibility("read") - requiredMembers?: string[]; - - /** The private link resource private link DNS zone name. */ - requiredZoneNames?: string[]; -} - -/** List of private endpoint connections associated with the specified resource. */ -model PrivateEndpointConnectionResourceListResult { - /** Array of private endpoint connections */ - value?: PrivateEndpointConnection[]; -} - -/** A list of private link resources. */ -model PrivateLinkResourceListResult { - /** Array of private link resources */ - value?: PrivateLinkResource[]; -} - /** * The name of the private endpoint connection associated with the Azure resource. * @template Segment The resource type name for private endpoint connections (default is privateEndpointConnections) @@ -159,16 +123,6 @@ model PrivateLinkResourceListResult { model PrivateEndpointConnectionParameter { /** The name of the private endpoint connection associated with the Azure resource. */ @path - @armCommonParameter( - "PrivateEndpointConnectionName", - #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true }, - "privatelinks.json" - ) - @armCommonParameter( - "PrivateEndpointConnectionName", - Azure.ResourceManager.CommonTypes.Versions.v5, - "privatelinks.json" - ) @TypeSpec.Rest.segment(Segment) @key("privateEndpointConnectionName") name: string; diff --git a/packages/typespec-azure-resource-manager/lib/common-types/types-ref.tsp b/packages/typespec-azure-resource-manager/lib/common-types/types-ref.tsp new file mode 100644 index 0000000000..09cadfb7ba --- /dev/null +++ b/packages/typespec-azure-resource-manager/lib/common-types/types-ref.tsp @@ -0,0 +1,414 @@ +import "../private.decorators.tsp"; +import "./common-types.tsp"; +import "./types.tsp"; + +using Azure.ResourceManager.Private; +using Azure.ResourceManager.CommonTypes.Private; + +namespace Azure.ResourceManager.CommonTypes; + +/** Common resource fields that are returned in the response for all Azure Resource Manager resources. */ +@@armCommonDefinition(Resource, "Resource", Azure.ResourceManager.CommonTypes.Versions.v3); +@@armCommonDefinition(Resource, "Resource", Azure.ResourceManager.CommonTypes.Versions.v4); +@@armCommonDefinition(Resource, "Resource", Azure.ResourceManager.CommonTypes.Versions.v5); + +/** The resource model definition for an Azure Resource Manager resource with an etag. */ +@@armCommonDefinition(AzureEntityResource, + "TrackedResource", + Azure.ResourceManager.CommonTypes.Versions.v3 +); +@@armCommonDefinition(AzureEntityResource, + "TrackedResource", + Azure.ResourceManager.CommonTypes.Versions.v4 +); +@@armCommonDefinition(AzureEntityResource, + "TrackedResource", + Azure.ResourceManager.CommonTypes.Versions.v5 +); + +/** + * The base tracked resource. + */ +@@armCommonDefinition(TrackedResource, + "TrackedResource", + Azure.ResourceManager.CommonTypes.Versions.v3 +); +@@armCommonDefinition(TrackedResource, + "TrackedResource", + Azure.ResourceManager.CommonTypes.Versions.v4 +); +@@armCommonDefinition(TrackedResource, + "TrackedResource", + Azure.ResourceManager.CommonTypes.Versions.v5 +); + +/** + * The base proxy resource. + */ +@@armCommonDefinition(ProxyResource, + "ProxyResource", + Azure.ResourceManager.CommonTypes.Versions.v3 +); +@@armCommonDefinition(ProxyResource, + "ProxyResource", + Azure.ResourceManager.CommonTypes.Versions.v4 +); +@@armCommonDefinition(ProxyResource, + "ProxyResource", + Azure.ResourceManager.CommonTypes.Versions.v5 +); + +/** + * The base extension resource. + */ +@@armCommonDefinition(ExtensionResource, + "ProxyResource", + Azure.ResourceManager.CommonTypes.Versions.v3 +); +@@armCommonDefinition(ExtensionResource, + "ProxyResource", + Azure.ResourceManager.CommonTypes.Versions.v4 +); +@@armCommonDefinition(ExtensionResource, + "ProxyResource", + Azure.ResourceManager.CommonTypes.Versions.v5 +); + +/** + * The SKU (Stock Keeping Unit) assigned to this resource. + */ +@@armCommonDefinition(Sku, "Sku", Azure.ResourceManager.CommonTypes.Versions.v3); +@@armCommonDefinition(Sku, "Sku", Azure.ResourceManager.CommonTypes.Versions.v4); +@@armCommonDefinition(Sku, "Sku", Azure.ResourceManager.CommonTypes.Versions.v5); + +/** + * A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to get the next set of results. + */ +@@armCommonDefinition(OperationListResult, + "OperationListResult", + Azure.ResourceManager.CommonTypes.Versions.v3 +); +@@armCommonDefinition(OperationListResult, + "OperationListResult", + Azure.ResourceManager.CommonTypes.Versions.v4 +); +@@armCommonDefinition(OperationListResult, + "OperationListResult", + Azure.ResourceManager.CommonTypes.Versions.v5 +); + +/** + * Details of a REST API operation, returned from the Resource Provider Operations API + */ +@@armCommonDefinition(Operation, "Operation", Azure.ResourceManager.CommonTypes.Versions.v3); +@@armCommonDefinition(Operation, "Operation", Azure.ResourceManager.CommonTypes.Versions.v4); +@@armCommonDefinition(Operation, "Operation", Azure.ResourceManager.CommonTypes.Versions.v5); + +/** + * Localized display information for and operation. + */ +@@armCommonDefinition(OperationDisplay, + "OperationDisplay", + Azure.ResourceManager.CommonTypes.Versions.v3 +); +@@armCommonDefinition(OperationDisplay, + "OperationDisplay", + Azure.ResourceManager.CommonTypes.Versions.v4 +); +@@armCommonDefinition(OperationDisplay, + "OperationDisplay", + Azure.ResourceManager.CommonTypes.Versions.v5 +); + +/** + * The current status of an async operation. + */ +@@armCommonDefinition(OperationStatusResult, + "OperationStatusResult", + Azure.ResourceManager.CommonTypes.Versions.v3 +); +@@armCommonDefinition(OperationStatusResult, + "OperationStatusResult", + Azure.ResourceManager.CommonTypes.Versions.v4 +); +@@armCommonDefinition(OperationStatusResult, + "OperationStatusResult", + Azure.ResourceManager.CommonTypes.Versions.v5 +); + +/** + * locationData + */ +@@armCommonDefinition(LocationData, "locationData", Azure.ResourceManager.CommonTypes.Versions.v3); +@@armCommonDefinition(LocationData, "locationData", Azure.ResourceManager.CommonTypes.Versions.v4); +@@armCommonDefinition(LocationData, "locationData", Azure.ResourceManager.CommonTypes.Versions.v5); + +/** + * The error detail. + */ +@@armCommonDefinition(ErrorDetail, "ErrorDetail", Azure.ResourceManager.CommonTypes.Versions.v3); +@@armCommonDefinition(ErrorDetail, "ErrorDetail", Azure.ResourceManager.CommonTypes.Versions.v4); +@@armCommonDefinition(ErrorDetail, "ErrorDetail", Azure.ResourceManager.CommonTypes.Versions.v5); + +/** + * The resource management error additional info. + */ +@@armCommonDefinition(ErrorAdditionalInfo, + "ErrorAdditionalInfo", + Azure.ResourceManager.CommonTypes.Versions.v3 +); +@@armCommonDefinition(ErrorAdditionalInfo, + "ErrorAdditionalInfo", + Azure.ResourceManager.CommonTypes.Versions.v4 +); +@@armCommonDefinition(ErrorAdditionalInfo, + "ErrorAdditionalInfo", + Azure.ResourceManager.CommonTypes.Versions.v5 +); + +/** + * Identity + */ +@@armCommonDefinition(Identity, "Identity", Azure.ResourceManager.CommonTypes.Versions.v3); +@@armCommonDefinition(Identity, "Identity", Azure.ResourceManager.CommonTypes.Versions.v4); +@@armCommonDefinition(Identity, "Identity", Azure.ResourceManager.CommonTypes.Versions.v5); + +/** + * Metadata pertaining to creation and last modification of the resource. + */ +@@armCommonDefinition(SystemData, "systemData", Azure.ResourceManager.CommonTypes.Versions.v3); +@@armCommonDefinition(SystemData, "systemData", Azure.ResourceManager.CommonTypes.Versions.v4); +@@armCommonDefinition(SystemData, "systemData", Azure.ResourceManager.CommonTypes.Versions.v5); + +/** + * Details of the resource plan. + */ +@@armCommonDefinition(Plan, "Plan", Azure.ResourceManager.CommonTypes.Versions.v3); +@@armCommonDefinition(Plan, "Plan", Azure.ResourceManager.CommonTypes.Versions.v4); +@@armCommonDefinition(Plan, "Plan", Azure.ResourceManager.CommonTypes.Versions.v5); + +/** + * encryptionProperties + */ +@@armCommonDefinition(EncryptionProperties, + "encryptionProperties", + Azure.ResourceManager.CommonTypes.Versions.v3 +); +@@armCommonDefinition(EncryptionProperties, + "encryptionProperties", + Azure.ResourceManager.CommonTypes.Versions.v4 +); +@@armCommonDefinition(EncryptionProperties, + "encryptionProperties", + Azure.ResourceManager.CommonTypes.Versions.v5 +); + +/** + * KeyVaultProperties + */ +@@armCommonDefinition(KeyVaultProperties, + "KeyVaultProperties", + Azure.ResourceManager.CommonTypes.Versions.v3 +); +@@armCommonDefinition(KeyVaultProperties, + "KeyVaultProperties", + Azure.ResourceManager.CommonTypes.Versions.v4 +); +@@armCommonDefinition(KeyVaultProperties, + "KeyVaultProperties", + Azure.ResourceManager.CommonTypes.Versions.v5 +); + +/** + * ResourceModelWithAllowedPropertySet + */ +@@armCommonDefinition(ResourceModelWithAllowedPropertySet, + "ResourceModelWithAllowedPropertySet", + Azure.ResourceManager.CommonTypes.Versions.v3 +); +@@armCommonDefinition(ResourceModelWithAllowedPropertySet, + "ResourceModelWithAllowedPropertySet", + Azure.ResourceManager.CommonTypes.Versions.v4 +); +@@armCommonDefinition(ResourceModelWithAllowedPropertySet, + "ResourceModelWithAllowedPropertySet", + Azure.ResourceManager.CommonTypes.Versions.v5 +); + +/** + * The check availability request body. + */ +@@armCommonDefinition(CheckNameAvailabilityRequest, + "CheckNameAvailabilityRequest", + Azure.ResourceManager.CommonTypes.Versions.v3 +); +@@armCommonDefinition(CheckNameAvailabilityRequest, + "CheckNameAvailabilityRequest", + Azure.ResourceManager.CommonTypes.Versions.v4 +); +@@armCommonDefinition(CheckNameAvailabilityRequest, + "CheckNameAvailabilityRequest", + Azure.ResourceManager.CommonTypes.Versions.v5 +); + +/** + * The check availability result. + */ +@@armCommonDefinition(CheckNameAvailabilityResponse, + "CheckNameAvailabilityResponse", + Azure.ResourceManager.CommonTypes.Versions.v3 +); +@@armCommonDefinition(CheckNameAvailabilityResponse, + "CheckNameAvailabilityResponse", + Azure.ResourceManager.CommonTypes.Versions.v4 +); +@@armCommonDefinition(CheckNameAvailabilityResponse, + "CheckNameAvailabilityResponse", + Azure.ResourceManager.CommonTypes.Versions.v5 +); + +@@armCommonDefinition(ErrorResponse, + "ErrorResponse", + Azure.ResourceManager.CommonTypes.Versions.v3 +); +@@armCommonDefinition(ErrorResponse, + "ErrorResponse", + Azure.ResourceManager.CommonTypes.Versions.v4 +); +@@armCommonDefinition(ErrorResponse, + "ErrorResponse", + Azure.ResourceManager.CommonTypes.Versions.v5 +); + +// -- Parameters +/** ApiVersionParameter */ +@@armCommonParameter(ApiVersionParameter.apiVersion, + "ApiVersionParameter", + Azure.ResourceManager.CommonTypes.Versions.v3 +); +@@armCommonParameter(ApiVersionParameter.apiVersion, + "ApiVersionParameter", + Azure.ResourceManager.CommonTypes.Versions.v4 +); +@@armCommonParameter(ApiVersionParameter.apiVersion, + "ApiVersionParameter", + Azure.ResourceManager.CommonTypes.Versions.v5 +); + +@@resourceParameterBaseFor(ApiVersionParameter.apiVersion, + [ + ResourceHome.ResourceGroup, + ResourceHome.Subscription, + ResourceHome.Location, + ResourceHome.Tenant, + ResourceHome.Extension + ] +); + +/** SubscriptionIdParameter */ +@@armCommonParameter(SubscriptionIdParameter.subscriptionId, + "SubscriptionIdParameter", + Azure.ResourceManager.CommonTypes.Versions.v3 +); +@@armCommonParameter(SubscriptionIdParameter.subscriptionId, + "SubscriptionIdParameter", + Azure.ResourceManager.CommonTypes.Versions.v4 +); +@@armCommonParameter(SubscriptionIdParameter.subscriptionId, + "SubscriptionIdParameter", + Azure.ResourceManager.CommonTypes.Versions.v5 +); +@@resourceParameterBaseFor(SubscriptionIdParameter.subscriptionId, + [ResourceHome.ResourceGroup, ResourceHome.Subscription, ResourceHome.Location] +); + +/** ResourceGroupNameParameter */ +@@armCommonParameter(ResourceGroupNameParameter.resourceGroupName, + "ResourceGroupNameParameter", + Azure.ResourceManager.CommonTypes.Versions.v3 +); +@@armCommonParameter(ResourceGroupNameParameter.resourceGroupName, + "ResourceGroupNameParameter", + Azure.ResourceManager.CommonTypes.Versions.v4 +); +@@armCommonParameter(ResourceGroupNameParameter.resourceGroupName, + "ResourceGroupNameParameter", + Azure.ResourceManager.CommonTypes.Versions.v5 +); +@@resourceParameterBaseFor(ResourceGroupNameParameter.resourceGroupName, + [ResourceHome.ResourceGroup] +); + +/** ManagementGroupNameParameter */ +@@armCommonParameter(ManagementGroupNameParameter.managementGroupName, + "ManagementGroupNameParameter", + Azure.ResourceManager.CommonTypes.Versions.v3 +); +@@armCommonParameter(ManagementGroupNameParameter.managementGroupName, + "ManagementGroupNameParameter", + Azure.ResourceManager.CommonTypes.Versions.v4 +); +@@armCommonParameter(ManagementGroupNameParameter.managementGroupName, + "ManagementGroupNameParameter", + Azure.ResourceManager.CommonTypes.Versions.v5 +); + +/** ScopeParameter */ +@@armCommonParameter(ScopeParameter.scope, + "ScopeParameter", + Azure.ResourceManager.CommonTypes.Versions.v3 +); +@@armCommonParameter(ScopeParameter.scope, + "ScopeParameter", + Azure.ResourceManager.CommonTypes.Versions.v4 +); +@@armCommonParameter(ScopeParameter.scope, + "ScopeParameter", + Azure.ResourceManager.CommonTypes.Versions.v5 +); + +/** LocationResourceParameter */ +@@armCommonParameter(LocationResourceParameter.location, + "LocationParameter", + Azure.ResourceManager.CommonTypes.Versions.v3 +); +@@armCommonParameter(LocationResourceParameter.location, + "LocationParameter", + Azure.ResourceManager.CommonTypes.Versions.v4 +); +@@armCommonParameter(LocationResourceParameter.location, + "LocationParameter", + Azure.ResourceManager.CommonTypes.Versions.v5 +); + +/** + * The default operationId parameter type. + */ +@@armCommonParameter(OperationIdParameter.operationId, + "OperationIdParameter", + Azure.ResourceManager.CommonTypes.Versions.v3 +); +@@armCommonParameter(OperationIdParameter.operationId, + "OperationIdParameter", + Azure.ResourceManager.CommonTypes.Versions.v4 +); +@@armCommonParameter(OperationIdParameter.operationId, + "OperationIdParameter", + Azure.ResourceManager.CommonTypes.Versions.v5 +); + +/** + * TenantIdParameter + */ +@@armCommonParameter(TenantIdParameter.tenantId, + "TenantIdParameter", + Azure.ResourceManager.CommonTypes.Versions.v3 +); +@@armCommonParameter(TenantIdParameter.tenantId, + "TenantIdParameter", + Azure.ResourceManager.CommonTypes.Versions.v4 +); +@@armCommonParameter(TenantIdParameter.tenantId, + "TenantIdParameter", + Azure.ResourceManager.CommonTypes.Versions.v5 +); diff --git a/packages/typespec-azure-resource-manager/lib/common-types/types.tsp b/packages/typespec-azure-resource-manager/lib/common-types/types.tsp index cc1815421c..b2d5c8b19a 100644 --- a/packages/typespec-azure-resource-manager/lib/common-types/types.tsp +++ b/packages/typespec-azure-resource-manager/lib/common-types/types.tsp @@ -1,259 +1,220 @@ using TypeSpec.Http; +using TypeSpec.Rest; using TypeSpec.OpenAPI; +using TypeSpec.Versioning; using Azure.Core; -using Azure.ResourceManager.Private; -namespace Azure.ResourceManager.Foundations; +namespace Azure.ResourceManager.CommonTypes; -/** - * Base model that defines common properties for all Azure Resource Manager resources. - */ -@doc("Common properties for all Azure Resource Manager resources.") +/** Common fields that are returned in the response for all Azure Resource Manager resources */ +@extension("x-ms-azure-resource", true) model Resource { - @doc("Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}") + /** Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} */ + @typeChangedFrom(Versions.v4, string) @visibility("read") - id?: string; + id?: armResourceIdentifier; - @doc("The name of the resource") + /** The name of the resource */ @visibility("read") name?: string; - @doc("The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or \"Microsoft.Storage/storageAccounts\"") + /** The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" */ @visibility("read") type?: string; - @doc("Azure Resource Manager metadata containing createdBy and modifiedBy information.") + /** Azure Resource Manager metadata containing createdBy and modifiedBy information. */ @visibility("read") systemData?: SystemData; } /** The resource model definition for an Azure Resource Manager resource with an etag. */ -@armCommonDefinition("TrackedResource", Azure.ResourceManager.CommonTypes.Versions.v3) -@armCommonDefinition("TrackedResource", Azure.ResourceManager.CommonTypes.Versions.v4) -@armCommonDefinition("TrackedResource", Azure.ResourceManager.CommonTypes.Versions.v5) model AzureEntityResource extends Resource { /** Resource Etag. */ @visibility("read") - etag: string; + etag?: string; } /** - * Standard type definition for Azure Resource Manager Tags property. - * - * It is included in the TrackedResource template definition. + * The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location' */ -@doc("The Azure Resource Manager Resource tags.") -model ArmTagsProperty { - @doc("Resource tags.") +model TrackedResource extends Resource { + /** Resource tags. */ tags?: Record; -} -/** - * The base tracked resource. - */ -@armCommonDefinition("TrackedResource", Azure.ResourceManager.CommonTypes.Versions.v3) -@armCommonDefinition("TrackedResource", Azure.ResourceManager.CommonTypes.Versions.v4) -@armCommonDefinition("TrackedResource", Azure.ResourceManager.CommonTypes.Versions.v5) -@doc("The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'") -model TrackedResource extends Resource { - @doc("The geo-location where the resource lives") + /** The geo-location where the resource lives */ @visibility("read", "create") location: string; - - ...ArmTagsProperty; } /** - * The base proxy resource. + * The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location */ -@doc("The base proxy resource.") -@armCommonDefinition("ProxyResource", Azure.ResourceManager.CommonTypes.Versions.v3) -@armCommonDefinition("ProxyResource", Azure.ResourceManager.CommonTypes.Versions.v4) -@armCommonDefinition("ProxyResource", Azure.ResourceManager.CommonTypes.Versions.v5) model ProxyResource extends Resource {} /** * The base extension resource. */ // Note that ProxyResource is the base definition for both kinds of resources -@doc("The base extension resource.") -@armCommonDefinition("ProxyResource", Azure.ResourceManager.CommonTypes.Versions.v3) -@armCommonDefinition("ProxyResource", Azure.ResourceManager.CommonTypes.Versions.v4) -@armCommonDefinition("ProxyResource", Azure.ResourceManager.CommonTypes.Versions.v5) model ExtensionResource extends Resource {} /** - * The SKU (Stock Keeping Unit) assigned to this resource. + * The resource model definition containing the full set of allowed properties for a resource. Except properties bag, there cannot be a top level property outside of this set. + */ +@extension("x-ms-azure-resource", true) +model ResourceModelWithAllowedPropertySet extends TrackedResource { + /** The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. + * If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource. */ + managedBy?: string; + + /** Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. + * If supported, the resource provider must validate and persist this value. */ + @pattern("^[-\\w\\._,\\(\\)]+$") + @visibility("read", "create") + kind?: string; + + /** The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the normal etag convention. + * Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), + * If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields. */ + eTag?: string; + + identity?: Identity; + sku?: Sku; + plan?: Plan; +} + +/** + * The resource model definition representing SKU */ -@doc("The SKU (Stock Keeping Unit) assigned to this resource.") -@armCommonDefinition("Sku", Azure.ResourceManager.CommonTypes.Versions.v3) -@armCommonDefinition("Sku", Azure.ResourceManager.CommonTypes.Versions.v4) -@armCommonDefinition("Sku", Azure.ResourceManager.CommonTypes.Versions.v5) model Sku { - @doc("The name of the SKU, usually a combination of letters and numbers, for example, 'P3'") + /** The name of the SKU. Ex - P3. It is typically a letter+number code */ name: string; - @doc("This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.") + /** This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT. */ tier?: SkuTier; - @doc("The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code.") + /** The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. */ size?: string; - @doc("If the service has different generations of hardware, for the same SKU, then that can be captured here.") + /** If the service has different generations of hardware, for the same SKU, then that can be captured here. */ family?: string; - @doc("If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.") + /** If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted. */ capacity?: int32; } /** - * Available service tiers for the SKU. + * This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT. */ -@doc("Available service tiers for the SKU.") -enum SkuTier { - @doc("The Free service tier.") - Free, +union SkuTier { + /** The Free service tier. */ + Free: "Free", - @doc("The Basic service tier.") - Basic, + /** The Basic service tier. */ + Basic: "Basic", - @doc("The Standard service tier.") - Standard, + /** The Standard service tier. */ + Standard: "Standard", - @doc("The Premium service tier.") - Premium, + /** The Premium service tier. */ + Premium: "Premium", } /** * A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to get the next set of results. */ -@armCommonDefinition("OperationListResult", Azure.ResourceManager.CommonTypes.Versions.v3) -@armCommonDefinition("OperationListResult", Azure.ResourceManager.CommonTypes.Versions.v4) -@armCommonDefinition("OperationListResult", Azure.ResourceManager.CommonTypes.Versions.v5) -@doc(""" - A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to get the next set of results. - """) +@friendlyName("OperationListResult") model OperationListResult is Azure.Core.Page; /** * Details of a REST API operation, returned from the Resource Provider Operations API */ -@armCommonDefinition("Operation", Azure.ResourceManager.CommonTypes.Versions.v3) -@armCommonDefinition("Operation", Azure.ResourceManager.CommonTypes.Versions.v4) -@armCommonDefinition("Operation", Azure.ResourceManager.CommonTypes.Versions.v5) -@doc("Details of a REST API operation, returned from the Resource Provider Operations API") model Operation { - @doc(""" + /** The name of the operation, as per Resource-Based Access Control (RBAC). Examples: "Microsoft.Compute/virtualMachines/write", "Microsoft.Compute/virtualMachines/capture/action" - """) + */ @visibility("read") name?: string; - @doc(""" + /** Whether the operation applies to data-plane. This is "true" for data-plane operations and "false" for Azure Resource Manager/control-plane operations. - """) + */ @visibility("read") isDataAction?: boolean; - @doc("Localized display information for this particular operation.") + /** Localized display information for this particular operation. */ display?: OperationDisplay; - @doc(""" + /** The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system" - """) + */ @visibility("read") origin?: Origin; - @doc(""" + /** Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. - """) + */ actionType?: ActionType; } /** * Localized display information for and operation. */ -@armCommonDefinition("OperationDisplay", Azure.ResourceManager.CommonTypes.Versions.v3) -@armCommonDefinition("OperationDisplay", Azure.ResourceManager.CommonTypes.Versions.v4) -@armCommonDefinition("OperationDisplay", Azure.ResourceManager.CommonTypes.Versions.v5) -@doc("Localized display information for and operation.") model OperationDisplay { - @doc(""" - The localized friendly form of the resource provider name, e.g. "Microsoft Monitoring Insights" or "Microsoft Compute". - """) + /** + The localized friendly form of the resource provider name, e.g. "Microsoft Monitoring Insights" or "Microsoft Compute". + */ provider?: string; - @doc(""" + /** The localized friendly name of the resource type related to this operation. E.g. "Virtual Machines" or "Job Schedule Collections". - """) + */ resource?: string; - @doc(""" + /** The concise, localized friendly name for the operation; suitable for dropdowns. E.g. "Create or Update Virtual Machine", "Restart Virtual Machine". - """) + */ operation?: string; - @doc("The short, localized friendly description of the operation; suitable for tool tips and detailed views.") + /** The short, localized friendly description of the operation; suitable for tool tips and detailed views. */ description?: string; } /** * The current status of an async operation. */ -@armCommonDefinition("OperationStatusResult", Azure.ResourceManager.CommonTypes.Versions.v3) -@armCommonDefinition("OperationStatusResult", Azure.ResourceManager.CommonTypes.Versions.v4) -@armCommonDefinition("OperationStatusResult", Azure.ResourceManager.CommonTypes.Versions.v5) -@doc("The current status of an async operation.") model OperationStatusResult { - @doc("Fully qualified ID for the async operation.") + /** Fully qualified ID for the async operation. */ id?: string; - @doc("Name of the async operation.") + /** Name of the async operation. */ name?: string; - @doc("Operation status.") + /** Operation status. */ status: string; - @doc("Percent of the operation that is complete.") + /** Percent of the operation that is complete. */ @minValue(0) @maxValue(100) percentComplete?: float64; - @doc("The start time of the operation.") + /** The start time of the operation. */ startTime?: utcDateTime; - @doc("The end time of the operation.") + /** The end time of the operation. */ endTime?: utcDateTime; - @doc("The operations list.") - operations: OperationStatusResult[]; + /** The operations list. */ + operations?: OperationStatusResult[]; - @doc("If present, details of the operation error.") + /** If present, details of the operation error. */ error?: ErrorDetail; } -/** - * The default operationId parameter type. - */ -@doc("The default operationId parameter type.") -model OperationIdParameter { - @path - @minLength(1) - @doc("The ID of an ongoing async operation.") - @armCommonParameter("OperationIdParameter", Azure.ResourceManager.CommonTypes.Versions.v3) - @armCommonParameter("OperationIdParameter", Azure.ResourceManager.CommonTypes.Versions.v4) - @armCommonParameter("OperationIdParameter", Azure.ResourceManager.CommonTypes.Versions.v5) - operationId: string; -} - /** * Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. */ -@doc(""" - Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. - """) union ActionType { - @doc("Actions are for internal-only APIs.") + /** Actions are for internal-only APIs. */ Internal: "Internal", string, @@ -262,17 +223,14 @@ union ActionType { /** * The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system" */ -@doc(""" - The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system" - """) union Origin { - @doc("Indicates the operation is initiated by a user.") + /** Indicates the operation is initiated by a user. */ user: "user", - @doc("Indicates the operation is initiated by a system.") + /** Indicates the operation is initiated by a system. */ system: "system", - @doc("Indicates the operation is initiated by a user or system.") + /** Indicates the operation is initiated by a user or system. */ `user,system`: "user,system", string, @@ -281,47 +239,47 @@ union Origin { /** * The error detail. */ -@armCommonDefinition("ErrorDetail", Azure.ResourceManager.CommonTypes.Versions.v3) -@armCommonDefinition("ErrorDetail", Azure.ResourceManager.CommonTypes.Versions.v4) -@armCommonDefinition("ErrorDetail", Azure.ResourceManager.CommonTypes.Versions.v5) -@doc("The error detail.") model ErrorDetail { - @doc("The error code.") + /** The error code. */ @visibility("read") code?: string; - @doc("The error message.") + /** The error message. */ @visibility("read") message?: string; - @doc("The error target.") + /** The error target. */ @visibility("read") target?: string; + /** The error details. */ @extension("x-ms-identifiers", ["message", "target"]) - @doc("The error details.") @visibility("read") details?: ErrorDetail[]; - @extension("x-ms-identifiers", ["message", "target"]) - @doc("The error additional info.") + /** The error additional info. */ @visibility("read") additionalInfo?: ErrorAdditionalInfo[]; } +/** + * Common error response for all Azure Resource Manager APIs to return error details for failed operations. + */ +@error +model ErrorResponse { + /** The error object. */ + error?: ErrorDetail; +} + /** * The resource management error additional info. */ -@armCommonDefinition("ErrorAdditionalInfo", Azure.ResourceManager.CommonTypes.Versions.v3) -@armCommonDefinition("ErrorAdditionalInfo", Azure.ResourceManager.CommonTypes.Versions.v4) -@armCommonDefinition("ErrorAdditionalInfo", Azure.ResourceManager.CommonTypes.Versions.v5) -@doc("The resource management error additional info.") model ErrorAdditionalInfo { - @doc("The additional info type.") + /** The additional info type. */ @visibility("read") type?: string; - @doc("The additional info.") + /** The additional info. */ @visibility("read") info?: {}; } @@ -329,124 +287,288 @@ model ErrorAdditionalInfo { /** * Metadata pertaining to creation and last modification of the resource. */ -@armCommonDefinition("systemData", Azure.ResourceManager.CommonTypes.Versions.v3) -@armCommonDefinition("systemData", Azure.ResourceManager.CommonTypes.Versions.v4) -@armCommonDefinition("systemData", Azure.ResourceManager.CommonTypes.Versions.v5) -@doc("Metadata pertaining to creation and last modification of the resource.") model SystemData { - @visibility("read") - @doc("The identity that created the resource.") + /** The identity that created the resource. */ createdBy?: string; - @visibility("read") - @doc("The type of identity that created the resource.") + /** The type of identity that created the resource. */ createdByType?: createdByType; - @visibility("read") - @doc("The type of identity that created the resource.") - createdAt?: plainDate; + /** The timestamp of resource creation (UTC). */ + createdAt?: utcDateTime; - @visibility("read") - @doc("The identity that last modified the resource.") + /** The identity that last modified the resource. */ lastModifiedBy?: string; - @visibility("read") - @doc("The type of identity that last modified the resource.") + /** The type of identity that last modified the resource. */ lastModifiedByType?: createdByType; - @visibility("read") - @doc("The timestamp of resource last modification (UTC)") - lastModifiedAt?: plainDate; + /** The timestamp of resource last modification (UTC) */ + lastModifiedAt?: utcDateTime; } /** * The kind of entity that created the resource. */ // NOTE: This is how the extensible enum is named in types.json -@doc("The kind of entity that created the resource.") union createdByType { - @doc("The entity was created by a user.") + /** The entity was created by a user. */ User: "User", - @doc("The entity was created by an application.") + /** The entity was created by an application. */ Application: "Application", - @doc("The entity was created by a managed identity.") + /** The entity was created by a managed identity. */ ManagedIdentity: "ManagedIdentity", - @doc("The entity was created by a key.") + /** The entity was created by a key. */ Key: "Key", string, } +union ResourceIdentityType { + SystemAssigned: "SystemAssigned", +} + +/** Identity for the resource. */ +model Identity { + /** The principal ID of resource identity. The value must be an UUID. */ + @typeChangedFrom(Versions.v4, string) + @visibility("read") + principalId?: uuid; + + /** The tenant ID of resource. The value must be an UUID. */ + @typeChangedFrom(Versions.v4, string) + @visibility("read") + tenantId?: uuid; + + /** The identity type. */ + type?: ResourceIdentityType; +} + +model KeyVaultProperties { + /** Key vault uri to access the encryption key. */ + keyIdentifier?: string; + + /** The client ID of the identity which will be used to access key vault. */ + identity?: string; +} /** - * Details of the resource plan. + * Plan for the resource. */ -@doc("Details of the resource plan.") -@armCommonDefinition("Plan", Azure.ResourceManager.CommonTypes.Versions.v3) -@armCommonDefinition("Plan", Azure.ResourceManager.CommonTypes.Versions.v4) -@armCommonDefinition("Plan", Azure.ResourceManager.CommonTypes.Versions.v5) model Plan { - @doc("A user defined name of the 3rd Party Artifact that is being procured.") + /** A user defined name of the 3rd Party Artifact that is being procured. */ name: string; - @doc("The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic") + /** The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic */ publisher: string; - @doc("The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. ") + /** The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. */ product: string; - @doc("A publisher provided promotion code as provisioned in Data Market for the said product/artifact.") + /** A publisher provided promotion code as provisioned in Data Market for the said product/artifact. */ promotionCode?: string; - @doc("The version of the desired product/artifact.") + /** The version of the desired product/artifact. */ version?: string; } /** * The check availability request body. */ -@armCommonDefinition("CheckNameAvailabilityRequest", Azure.ResourceManager.CommonTypes.Versions.v3) -@armCommonDefinition("CheckNameAvailabilityRequest", Azure.ResourceManager.CommonTypes.Versions.v4) -@armCommonDefinition("CheckNameAvailabilityRequest", Azure.ResourceManager.CommonTypes.Versions.v5) -@doc("The check availability request body.") model CheckNameAvailabilityRequest { - @doc("The name of the resource for which availability needs to be checked.") + /** The name of the resource for which availability needs to be checked. */ name?: string; - @doc("The resource type.") + /** The resource type. */ type?: string; } /** * The check availability result. */ -@armCommonDefinition("CheckNameAvailabilityResponse", Azure.ResourceManager.CommonTypes.Versions.v3) -@armCommonDefinition("CheckNameAvailabilityResponse", Azure.ResourceManager.CommonTypes.Versions.v4) -@armCommonDefinition("CheckNameAvailabilityResponse", Azure.ResourceManager.CommonTypes.Versions.v5) -@doc("The check availability result.") model CheckNameAvailabilityResponse { - @doc("Indicates if the resource name is available.") + /** Indicates if the resource name is available. */ nameAvailable?: boolean; - @doc("The reason why the given name is not available.") + /** The reason why the given name is not available. */ reason?: CheckNameAvailabilityReason; - @doc("Detailed reason why the given name is not available.") + /** Detailed reason why the given name is not available. */ message?: string; } /** * Possible reasons for a name not being available. */ -@doc("Possible reasons for a name not being available.") union CheckNameAvailabilityReason { - @doc("Name is invalid.") + /** Name is invalid. */ Invalid: "Invalid", - @doc("Name already exists.") + /** Name already exists. */ AlreadyExists: "AlreadyExists", string, } + +/** Indicates whether or not the encryption is enabled for container registry. */ +union EncryptionStatus { + /** Encryption is enabled. */ + enabled: "enabled", + + /** Encryption is disabled. */ + disabled: "disabled", + + string, +} +/** + * Configuration of key for data encryption + */ +model EncryptionProperties { + /** Indicates whether or not the encryption is enabled for container registry. */ + status?: EncryptionStatus; + + /** Key vault properties. */ + keyVaultProperties?: KeyVaultProperties; +} + +/** + * Metadata pertaining to the geographic location of the resource. + */ +model LocationData { + /** A canonical name for the geographic or physical location. */ + @maxLength(256) + name: string; + + /** The city or locality where the resource is located. */ + city?: string; + + /** The district, state, or province where the resource is located. */ + district?: string; + + /** The country or region where the resource is located */ + countryOrRegion?: string; +} + +/** + * The default api-version parameter type. + */ +model ApiVersionParameter { + /** The API version to use for this operation. */ + @query("api-version") + @minLength(1) + apiVersion: string; +} + +/** + * The default operationId parameter type. + */ +model OperationIdParameter { + /** The ID of an ongoing async operation. */ + @path + @minLength(1) + operationId: string; +} + +/** + * The default location parameter type. + */ +model LocationParameter { + /** The name of Azure region. */ + @path + @minLength(1) + @segment("locations") + location: string; +} + +/** + * The default resource group parameter type. + */ +model ResourceGroupNameParameter { + /** The name of the resource group. The name is case insensitive. */ + @path + @minLength(1) + @maxLength(90) + @segment("resourceGroups") + @pattern("^[-\\w\\._\\(\\)]+$") + resourceGroupName: string; +} + +/** + * The default subscriptionId parameter type. + */ +model SubscriptionIdParameter { + /** The ID of the target subscription. The value must be an UUID. */ + @typeChangedFrom(Versions.v4, string) + @path + @segment("subscriptions") + subscriptionId: uuid; +} + +/** The default location parameter type. */ +model LocationResourceParameter { + /** The name of the Azure region. */ + @path + @minLength(1) + @segment("locations") + @key + location: string; +} + +/** + * The default ManagementGroupName parameter type. + */ +@added(Versions.v4) +model ManagementGroupNameParameter { + /** The name of the management group. The name is case insensitive. */ + @path + @minLength(1) + @maxLength(90) + @segment("managementGroups") + managementGroupName: string; +} + +/** + * The default Scope parameter type. + */ +@added(Versions.v4) +model ScopeParameter { + /** The scope at which the operation is performed. */ + @path + @segment("scope") + @minLength(1) + @extension("x-ms-skip-url-encoding", true) + scope: string; +} + +/** + * The default ManagementGroupName parameter type. + */ +@added(Versions.v4) +model TenantIdParameter { + /** The Azure tenant ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000) */ + @path + @segment("tenant") + tenantId: uuid; +} + +/** + * The default ARM If-Match header type. + */ +@added(Versions.v4) +model IfMatchHeader { + /** The If-Match header that makes a request conditional. */ + @header("If-Match") + ifMatch: string; +} + +/** + * The default ARM If-Match header type. + */ +@added(Versions.v4) +model IfNoneMatchHeader { + /** The If-None-Match header that makes a request conditional. */ + @header("If-None-Match") + ifNoneMatch: string; +} diff --git a/packages/typespec-azure-resource-manager/lib/decorators.tsp b/packages/typespec-azure-resource-manager/lib/decorators.tsp index 027cd9c75d..6923f09652 100644 --- a/packages/typespec-azure-resource-manager/lib/decorators.tsp +++ b/packages/typespec-azure-resource-manager/lib/decorators.tsp @@ -180,7 +180,7 @@ extern dec armResourceOperations(target: Interface, _?: unknown); * This decorator is used either on a namespace or a version enum value to indicate * the version of the Azure Resource Manager common-types to use for refs in emitted Swagger files. * - * @param version The Azure.ResourceManager.CommonTypes.Versions for the desired common-types version or an equivalent string value. + * @param version The Azure.ResourceManager.CommonTypes.Versions for the desired common-types version or an equivalent string value like "v5". */ extern dec armCommonTypesVersion( target: Namespace | EnumMember, diff --git a/packages/typespec-azure-resource-manager/lib/arm.foundations.tsp b/packages/typespec-azure-resource-manager/lib/foundations/arm.foundations.tsp similarity index 93% rename from packages/typespec-azure-resource-manager/lib/arm.foundations.tsp rename to packages/typespec-azure-resource-manager/lib/foundations/arm.foundations.tsp index 47fdbf802f..644bc0437f 100644 --- a/packages/typespec-azure-resource-manager/lib/arm.foundations.tsp +++ b/packages/typespec-azure-resource-manager/lib/foundations/arm.foundations.tsp @@ -1,30 +1,21 @@ +import "@typespec/openapi"; +import "@typespec/http"; +import "@typespec/rest"; + +import "./backcompat.tsp"; +import "./deprecation.tsp"; +import "../common-types/common-types.tsp"; +import "../decorators.tsp"; +import "../responses.tsp"; +import "../private.decorators.tsp"; +import "../parameters.tsp"; + using TypeSpec.Http; using TypeSpec.OpenAPI; -using TypeSpec.Versioning; using Azure.ResourceManager.Private; namespace Azure.ResourceManager.Foundations; -/** - * An internal enum to indicate the resource support for various path types - */ -enum ResourceHome { - @doc("The resource is bound to a tenant") - Tenant, - - @doc("The resource is bound to a subscription") - Subscription, - - @doc("The resource is bound to a location") - Location, - - @doc("The resource is bound to a resource group") - ResourceGroup, - - @doc("The resource is bound to an extension") - Extension, -} - /** * Base parameters for a resource. * @@ -53,6 +44,17 @@ model DefaultBaseParameters { ...ResourceUriParameter; } +/** + * Standard type definition for Azure Resource Manager Tags property. + * + * It is included in the TrackedResource template definition. + */ +/** The Azure Resource Manager Resource tags. */ +model ArmTagsProperty { + /** Resource tags. */ + tags?: Record; +} + /** * The static parameters for a tenant-based resource */ diff --git a/packages/typespec-azure-resource-manager/lib/foundations/backcompat.tsp b/packages/typespec-azure-resource-manager/lib/foundations/backcompat.tsp new file mode 100644 index 0000000000..e8b0595352 --- /dev/null +++ b/packages/typespec-azure-resource-manager/lib/foundations/backcompat.tsp @@ -0,0 +1,39 @@ +namespace Azure.ResourceManager.Foundations { + // extended-location + alias ExtendedLocation = CommonTypes.ExtendedLocation; + alias ExtendedLocationType = CommonTypes.ExtendedLocationType; + + // managed-identities + alias ManagedServiceIdentity = CommonTypes.ManagedServiceIdentity; + #suppress "deprecated" "Need for back compatibility in common-types" + alias UserAssignedIdentities = CommonTypes.UserAssignedIdentities; + alias SystemAssignedServiceIdentity = CommonTypes.SystemAssignedServiceIdentity; + alias UserAssignedIdentity = CommonTypes.UserAssignedIdentity; + alias ManagedServiceIdentityType = CommonTypes.ManagedServiceIdentityType; + alias SystemAssignedServiceIdentityType = CommonTypes.SystemAssignedServiceIdentityType; + alias ManagedSystemIdentityType = SystemAssignedServiceIdentityType; + + // types + alias Resource = CommonTypes.Resource; + alias AzureEntityResource = CommonTypes.AzureEntityResource; + alias TrackedResource = CommonTypes.TrackedResource; + alias ProxyResource = CommonTypes.ProxyResource; + alias ExtensionResource = CommonTypes.ExtensionResource; + alias Sku = CommonTypes.Sku; + alias SkuTier = CommonTypes.SkuTier; + alias OperationListResult = CommonTypes.OperationListResult; + alias Operation = CommonTypes.Operation; + alias OperationDisplay = CommonTypes.OperationDisplay; + alias OperationStatusResult = CommonTypes.OperationStatusResult; + alias OperationIdParameter = CommonTypes.OperationIdParameter; + alias ActionType = CommonTypes.ActionType; + alias Origin = CommonTypes.Origin; + alias ErrorDetail = CommonTypes.ErrorDetail; + alias ErrorAdditionalInfo = CommonTypes.ErrorAdditionalInfo; + alias SystemData = CommonTypes.SystemData; + alias createdByType = CommonTypes.createdByType; + alias Plan = CommonTypes.Plan; + alias CheckNameAvailabilityRequest = CommonTypes.CheckNameAvailabilityRequest; + alias CheckNameAvailabilityResponse = CommonTypes.CheckNameAvailabilityResponse; + alias CheckNameAvailabilityReason = CommonTypes.CheckNameAvailabilityReason; +} diff --git a/packages/typespec-azure-resource-manager/lib/common-types/backcompat.tsp b/packages/typespec-azure-resource-manager/lib/foundations/deprecation.tsp similarity index 59% rename from packages/typespec-azure-resource-manager/lib/common-types/backcompat.tsp rename to packages/typespec-azure-resource-manager/lib/foundations/deprecation.tsp index bca365485f..e9f0d74cec 100644 --- a/packages/typespec-azure-resource-manager/lib/common-types/backcompat.tsp +++ b/packages/typespec-azure-resource-manager/lib/foundations/deprecation.tsp @@ -17,3 +17,14 @@ alias ResourceSkuType = Sku; #deprecated "Please use Foundations.Plan instead of Foundations.ResourcePlanType" alias ResourcePlanType = Plan; + +// managed-identity +#deprecated "Please change ManagedIdentityProperties to ManagedServiceIdentity." +alias ManagedIdentityProperties = ManagedServiceIdentity; + +#deprecated "Please change ManagedSystemIdentityProperties to SystemAssignedServiceIdentity." +alias ManagedSystemIdentityProperties = SystemAssignedServiceIdentity; + +/** Alias of ManagedServiceIdentityType for back compatability. Please change to ManagedServiceIdentityType. */ +#deprecated "Please change to ManagedServiceIdentityType." +alias ManagedIdentityType = ManagedServiceIdentityType; diff --git a/packages/typespec-azure-resource-manager/lib/models.tsp b/packages/typespec-azure-resource-manager/lib/models.tsp index a5bb6d4e5e..e5eb45bf68 100644 --- a/packages/typespec-azure-resource-manager/lib/models.tsp +++ b/packages/typespec-azure-resource-manager/lib/models.tsp @@ -352,4 +352,22 @@ model ManagedByProperty { managedBy?: string; } +/** Please use the spread model EncryptionProperty */ +alias Encryption = EncryptionProperty; +/** + * Model used only to spread in the `encryption` envelope property for a resource. + * @example + * + * ```typespec + * model Foo is TrackedResource { + * ...Encryption; + * } + * ``` + */ +/** All encryption configuration for a resource. */ +model EncryptionProperty { + /** All encryption configuration for a resource. */ + encryption: EncryptionConfiguration; +} + //#endregion diff --git a/packages/typespec-azure-resource-manager/lib/parameters.tsp b/packages/typespec-azure-resource-manager/lib/parameters.tsp index 79788ad073..43a17c652e 100644 --- a/packages/typespec-azure-resource-manager/lib/parameters.tsp +++ b/packages/typespec-azure-resource-manager/lib/parameters.tsp @@ -3,80 +3,45 @@ using TypeSpec.Rest; using TypeSpec.OpenAPI; using Azure.ResourceManager.Foundations; using Azure.ResourceManager.Private; +using Azure.ResourceManager.CommonTypes; +using Azure.ResourceManager.CommonTypes.Private; namespace Azure.ResourceManager; /** * The default api-version parameter type. */ -@doc("The default api-version parameter type.") -model ApiVersionParameter { - @query("api-version") - @minLength(1) - @doc("The API version to use for this operation.") - @armCommonParameter("ApiVersionParameter", Azure.ResourceManager.CommonTypes.Versions.v3) - @armCommonParameter("ApiVersionParameter", Azure.ResourceManager.CommonTypes.Versions.v4) - @armCommonParameter("ApiVersionParameter", Azure.ResourceManager.CommonTypes.Versions.v5) - @resourceParameterBaseFor( - [ - ResourceHome.ResourceGroup, - ResourceHome.Subscription, - ResourceHome.Location, - ResourceHome.Tenant, - ResourceHome.Extension - ] - ) - apiVersion: string; -} +alias ApiVersionParameter = CommonTypes.ApiVersionParameter; /** * The default subscriptionId parameter type. */ -@doc("The default subscriptionId parameter type.") -model SubscriptionIdParameter { - @path - @minLength(1) - @segment("subscriptions") - @doc("The ID of the target subscription.") - @armCommonParameter("SubscriptionIdParameter", Azure.ResourceManager.CommonTypes.Versions.v3) - @armCommonParameter("SubscriptionIdParameter", Azure.ResourceManager.CommonTypes.Versions.v4) - @armCommonParameter("SubscriptionIdParameter", Azure.ResourceManager.CommonTypes.Versions.v5) - @resourceParameterBaseFor( - [ResourceHome.ResourceGroup, ResourceHome.Subscription, ResourceHome.Location] - ) - subscriptionId: string; -} +alias SubscriptionIdParameter = CommonTypes.SubscriptionIdParameter; /** - * DEPRECATED - DO NOT USE - * The default location parameter type. + * The default ResourceGroup parameter type. */ -@doc("The default location parameter type.") -model LocationParameter { - @path - @minLength(1) - @segment("locations") - @doc("The location name.") - @armCommonParameter("LocationParameter", Azure.ResourceManager.CommonTypes.Versions.v3) - @armCommonParameter("LocationParameter", Azure.ResourceManager.CommonTypes.Versions.v4) - @armCommonParameter("LocationParameter", Azure.ResourceManager.CommonTypes.Versions.v5) - @resourceParameterBaseFor([ResourceHome.Location]) - location: string; -} +alias ResourceGroupParameter = CommonTypes.ResourceGroupNameParameter; + +/** + * The default LocationResource parameter type. + */ +alias LocationResourceParameter = CommonTypes.LocationResourceParameter; /** + * DEPRECATED - DO NOT USE * The default location parameter type. */ @doc("The default location parameter type.") -model LocationResourceParameter { +model LocationParameter { @path @minLength(1) @segment("locations") @doc("The location name.") - @key @armCommonParameter("LocationParameter", Azure.ResourceManager.CommonTypes.Versions.v3) @armCommonParameter("LocationParameter", Azure.ResourceManager.CommonTypes.Versions.v4) @armCommonParameter("LocationParameter", Azure.ResourceManager.CommonTypes.Versions.v5) + @resourceParameterBaseFor([ResourceHome.Location]) location: string; } @@ -113,24 +78,6 @@ model ArmLocationResource = program.stateMap(ArmStateKeys.armCommonTypesVersions); return map?.values().next().value as any; } +export function getArmCommonTypesVersionFromString( + program: Program, + entity: Namespace | EnumMember, + versionStr: string +): [EnumMember | undefined, readonly Diagnostic[]] { + const commonTypeVersionEnum = program.resolveTypeReference( + `Azure.ResourceManager.CommonTypes.Versions.${versionStr}` + )[0] as EnumMember; + if (commonTypeVersionEnum === undefined) { + return [ + undefined, + [ + createDiagnostic({ + code: "arm-common-types-invalid-version", + target: entity, + format: { + versionString: versionStr, + supportedVersions: [...getArmCommonTypesVersions(program).type.members.keys()].join( + ", " + ), + }, + }), + ], + ]; + } else { + return [commonTypeVersionEnum, []]; + } +} + /** * Check if a given model or model property is an ARM common type. * @param {Type} entity - The entity to be checked. @@ -58,9 +87,34 @@ export function $armCommonTypesVersion( entity: Namespace | EnumMember, version: string | EnumValue ) { - context.program - .stateMap(ArmStateKeys.armCommonTypesVersion) - .set(entity, typeof version === "string" ? version : version.value.name); + // try convert string to EnumMember + let versionEnum: EnumMember; + if (typeof version === "string") { + const [foundEnumMember, diagnostics] = getArmCommonTypesVersionFromString( + context.program, + entity, + version + ); + if (!foundEnumMember) { + context.program.reportDiagnostics(diagnostics); + return; + } + versionEnum = foundEnumMember as EnumMember; + } else { + versionEnum = version.value; + } + + context.program.stateMap(ArmStateKeys.armCommonTypesVersion).set(entity, versionEnum.name); + + if (entity.kind === "Namespace") { + const versioned = entity.decorators.find((x) => x.definition?.name === "@versioned"); + // If it is versioned namespace, we will skip adding @useDependency to namespace + if (versioned) { + return; + } + } + // Add @useDependency on version enum members or on unversioned namespace + context.call($useDependency, entity, versionEnum); } /** diff --git a/packages/typespec-azure-resource-manager/src/commontypes.private.decorators.ts b/packages/typespec-azure-resource-manager/src/commontypes.private.decorators.ts new file mode 100644 index 0000000000..326a380203 --- /dev/null +++ b/packages/typespec-azure-resource-manager/src/commontypes.private.decorators.ts @@ -0,0 +1,135 @@ +import { + DecoratorContext, + Enum, + EnumValue, + Model, + ModelProperty, + Program, +} from "@typespec/compiler"; +import { ArmStateKeys } from "./state.js"; + +export const namespace = "Azure.ResourceManager.CommonTypes.Private"; + +export const ArmCommonTypesDefaultVersion = "v3"; + +function getArmTypesPath(program: Program): string { + return program.getOption("arm-types-path") || "{arm-types-dir}"; +} + +function storeCommonTypeRecord( + context: DecoratorContext, + entity: Model | ModelProperty, + kind: "definitions" | "parameters", + name: string, + version?: string | EnumValue | ArmCommonTypeVersionSpec, + referenceFile?: string +): void { + const basePath: string = getArmTypesPath(context.program).trim(); + + // NOTE: Right now we don't try to prevent multiple versions from declaring that they are the default + let isDefault = false; + if (version && typeof version !== "string" && !("valueKind" in version)) { + isDefault = !!version.isDefault; + version = version.version; + } + + // for backward compatibility, skip if we are trying to access a non-default file and emit the type + if ((version || referenceFile) && basePath.endsWith(".json")) return; + if (!version) version = ArmCommonTypesDefaultVersion; + if (!referenceFile) referenceFile = "types.json"; + + const versionStr = typeof version === "string" ? version : version.value.name; + const records = getCommonTypeRecords(context.program, entity); + + records.records[versionStr] = { + name, + kind, + version: versionStr, + basePath, + referenceFile, + }; + if (isDefault) { + records.defaultKey = versionStr; + } + context.program.stateMap(ArmStateKeys.armCommonDefinitions).set(entity, records); +} + +export interface ArmCommonTypeRecord { + name: string; + kind: "definitions" | "parameters"; + version: string; + basePath: string; + referenceFile?: string; +} + +export interface ArmCommonTypeRecords { + records: { [key: string]: ArmCommonTypeRecord }; + defaultKey?: string; +} + +export function getCommonTypeRecords( + program: Program, + entity: Model | ModelProperty +): ArmCommonTypeRecords { + return program.stateMap(ArmStateKeys.armCommonDefinitions).get(entity) ?? { records: {} }; +} + +interface ArmCommonTypeVersionSpec { + version: string | EnumValue; + isDefault: boolean; +} + +/** + * Refer an model property to be a common ARM parameter + * @param {DecoratorContext} context DecoratorContext object + * @param {Type} entity Decorator target type. Must be `Model` + * @param {string?} definitionName Optional definition name + * @param {string?} version Optional version + * @param {string?} referenceFile Optional common file path + * @returns void + */ +export function $armCommonParameter( + context: DecoratorContext, + entity: ModelProperty, + parameterName?: string, + version?: string | EnumValue | ArmCommonTypeVersionSpec, + referenceFile?: string +): void { + // Use the name of the model type if not specified + if (!parameterName) { + parameterName = entity.name; + } + + storeCommonTypeRecord(context, entity, "parameters", parameterName, version, referenceFile); +} + +/** + * Using ARM common definition for a Model + * @param {DecoratorContext} context DecoratorContext object + * @param {Type} entity Decorator target type. Must be `Model` + * @param {string?} definitionName Optional definition name + * @param {string?} version Optional version + * @param {string?} referenceFile Optional common file path + * @returns {void} + */ +export function $armCommonDefinition( + context: DecoratorContext, + entity: Model, + definitionName?: string, + version?: string | EnumValue | ArmCommonTypeVersionSpec, + referenceFile?: string +): void { + // Use the name of the model type if not specified + if (!definitionName) { + definitionName = entity.name; + } + + storeCommonTypeRecord(context, entity, "definitions", definitionName, version, referenceFile); +} + +export function $armCommonTypesVersions(context: DecoratorContext, enumType: Enum) { + context.program.stateMap(ArmStateKeys.armCommonTypesVersions).set(enumType, { + type: enumType, + allVersions: Array.from(enumType.members.values()).reverse(), + }); +} diff --git a/packages/typespec-azure-resource-manager/src/lib.ts b/packages/typespec-azure-resource-manager/src/lib.ts index 4ba733df3b..11dd6eca9c 100644 --- a/packages/typespec-azure-resource-manager/src/lib.ts +++ b/packages/typespec-azure-resource-manager/src/lib.ts @@ -76,6 +76,12 @@ export const $lib = createTypeSpecLibrary({ default: paramMessage`No ARM common-types version for this type satisfies the expected version ${"selectedVersion"}. This type only supports the following version(s): ${"supportedVersions"}`, }, }, + "arm-common-types-invalid-version": { + severity: "error", + messages: { + default: paramMessage`No ARM common-types version matches the version string ${"versionString"}. The following versions are supported: ${"supportedVersions"}`, + }, + }, "decorator-in-namespace": { severity: "error", messages: { diff --git a/packages/typespec-azure-resource-manager/src/namespace.ts b/packages/typespec-azure-resource-manager/src/namespace.ts index f8a44002d7..4ea6b15449 100644 --- a/packages/typespec-azure-resource-manager/src/namespace.ts +++ b/packages/typespec-azure-resource-manager/src/namespace.ts @@ -1,6 +1,9 @@ import { __unsupported_enable_checkStandardOperations } from "@azure-tools/typespec-azure-core"; import { DecoratorContext, + Enum, + EnumMember, + EnumValue, Model, ModelProperty, Namespace, @@ -12,10 +15,35 @@ import { import * as http from "@typespec/http"; import { getAuthentication, setAuthentication, setRouteOptionsForNamespace } from "@typespec/http"; import { getResourceTypeForKeyParam } from "@typespec/rest"; +import { $armCommonTypesVersion } from "./common-types.js"; import { reportDiagnostic } from "./lib.js"; import { getSingletonResourceKey } from "./resource.js"; import { ArmStateKeys } from "./state.js"; +function getArmCommonTypesVersion( + context: DecoratorContext, + entity: Namespace | EnumMember +): EnumValue | undefined { + return entity.decorators.find((x) => x.definition?.name === "@armCommonTypesVersion")?.args[0] + .jsValue as EnumValue | undefined; +} + +function setArmCommonTypesVersionIfDoesnotExist( + context: DecoratorContext, + entity: Namespace | EnumMember, + commonTypeVersion: string +) { + // Determine whether to set a default ARM CommonTypes.Version + const armCommonTypesVersion = entity.decorators.find( + (x) => x.definition?.name === "@armCommonTypesVersion" + ); + // if no existing @armCommonTypesVersion decorator, add default. + // This will NOT cause error if overrode on version enum. + if (!armCommonTypesVersion) { + context.call($armCommonTypesVersion, entity, commonTypeVersion); + } +} + /** * Mark the target namespace as containign only ARM library types. This is used to create libraries to share among RPs * @param context The doecorator context, automatically supplied by the compiler @@ -29,6 +57,8 @@ export function $armLibraryNamespace(context: DecoratorContext, entity: Namespac __unsupported_enable_checkStandardOperations(false); program.stateMap(ArmStateKeys.armLibraryNamespaces).set(entity, true); + + setArmCommonTypesVersionIfDoesnotExist(context, entity, "v3"); } /** @@ -128,6 +158,27 @@ export function $armProviderNamespace( } } + const armCommonTypesVersion = getArmCommonTypesVersion(context, entity); + + // If it is versioned namespace, we will check each Version enum member. If no + // @armCommonTypeVersion decorator, add the one + const versioned = entity.decorators.find((x) => x.definition?.name === "@versioned"); + if (versioned) { + const versionEnum = versioned.args[0].value as Enum; + versionEnum.members.forEach((v) => { + if (!getArmCommonTypesVersion(context, v)) { + context.call($armCommonTypesVersion, v, armCommonTypesVersion ?? "v3"); + } + }); + } else { + // if it is unversioned namespace, set @armCommonTypesVersion and + // no existing @armCommonTypesVersion decorator, add default. + // This will NOT cause error if overrode on version enum. + if (!armCommonTypesVersion) { + context.call($armCommonTypesVersion, entity, "v3"); + } + } + // 'namespace' is optional, use the actual namespace string if omitted const typespecNamespace = getNamespaceFullName(entity); if (!armProviderNamespace) { diff --git a/packages/typespec-azure-resource-manager/src/private.decorators.ts b/packages/typespec-azure-resource-manager/src/private.decorators.ts index 4aa53d8548..39afe7bc27 100644 --- a/packages/typespec-azure-resource-manager/src/private.decorators.ts +++ b/packages/typespec-azure-resource-manager/src/private.decorators.ts @@ -2,8 +2,6 @@ import { $key, $visibility, DecoratorContext, - Enum, - EnumValue, Interface, Model, ModelProperty, @@ -31,8 +29,6 @@ import { ArmStateKeys } from "./state.js"; export const namespace = "Azure.ResourceManager.Private"; -export const ArmCommonTypesDefaultVersion = "v3"; - export function $omitIfEmpty(context: DecoratorContext, entity: Model, propertyName: string) { const modelProp = getProperty(entity, propertyName); @@ -160,121 +156,6 @@ function isResourceParameterBaseForInternal( return false; } -function getArmTypesPath(program: Program): string { - return program.getOption("arm-types-path") || "{arm-types-dir}"; -} - -function storeCommonTypeRecord( - context: DecoratorContext, - entity: Model | ModelProperty, - kind: "definitions" | "parameters", - name: string, - version?: string | EnumValue | ArmCommonTypeVersionSpec, - referenceFile?: string -): void { - const basePath: string = getArmTypesPath(context.program).trim(); - - // NOTE: Right now we don't try to prevent multiple versions from declaring that they are the default - let isDefault = false; - if (version && typeof version !== "string" && !("valueKind" in version)) { - isDefault = !!version.isDefault; - version = version.version; - } - - // for backward compatibility, skip if we are trying to access a non-default file and emit the type - if ((version || referenceFile) && basePath.endsWith(".json")) return; - if (!version) version = ArmCommonTypesDefaultVersion; - if (!referenceFile) referenceFile = "types.json"; - - const versionStr = typeof version === "string" ? version : version.value.name; - const records = getCommonTypeRecords(context.program, entity); - - records.records[versionStr] = { - name, - kind, - version: versionStr, - basePath, - referenceFile, - }; - if (isDefault) { - records.defaultKey = versionStr; - } - context.program.stateMap(ArmStateKeys.armCommonDefinitions).set(entity, records); -} - -export interface ArmCommonTypeRecord { - name: string; - kind: "definitions" | "parameters"; - version: string; - basePath: string; - referenceFile?: string; -} - -export interface ArmCommonTypeRecords { - records: { [key: string]: ArmCommonTypeRecord }; - defaultKey?: string; -} - -export function getCommonTypeRecords( - program: Program, - entity: Model | ModelProperty -): ArmCommonTypeRecords { - return program.stateMap(ArmStateKeys.armCommonDefinitions).get(entity) ?? { records: {} }; -} - -interface ArmCommonTypeVersionSpec { - version: string | EnumValue; - isDefault: boolean; -} - -/** - * Refer an model property to be a common ARM parameter - * @param {DecoratorContext} context DecoratorContext object - * @param {Type} entity Decorator target type. Must be `Model` - * @param {string?} definitionName Optional definition name - * @param {string?} version Optional version - * @param {string?} referenceFile Optional common file path - * @returns void - */ -export function $armCommonParameter( - context: DecoratorContext, - entity: ModelProperty, - parameterName?: string, - version?: string | EnumValue | ArmCommonTypeVersionSpec, - referenceFile?: string -): void { - // Use the name of the model type if not specified - if (!parameterName) { - parameterName = entity.name; - } - - storeCommonTypeRecord(context, entity, "parameters", parameterName, version, referenceFile); -} - -/** - * Using ARM common definition for a Model - * @param {DecoratorContext} context DecoratorContext object - * @param {Type} entity Decorator target type. Must be `Model` - * @param {string?} definitionName Optional definition name - * @param {string?} version Optional version - * @param {string?} referenceFile Optional common file path - * @returns {void} - */ -export function $armCommonDefinition( - context: DecoratorContext, - entity: Model, - definitionName?: string, - version?: string | EnumValue | ArmCommonTypeVersionSpec, - referenceFile?: string -): void { - // Use the name of the model type if not specified - if (!definitionName) { - definitionName = entity.name; - } - - storeCommonTypeRecord(context, entity, "definitions", definitionName, version, referenceFile); -} - /** * This decorator dynamically assigns the serviceNamespace from the containing * namespace to the string literal value of the path parameter to which this @@ -469,10 +350,3 @@ function hasProperty(program: Program, model: Model): boolean { if (model.baseModel) return hasProperty(program, model.baseModel); return false; } - -export function $armCommonTypesVersions(context: DecoratorContext, enumType: Enum) { - context.program.stateMap(ArmStateKeys.armCommonTypesVersions).set(enumType, { - type: enumType, - allVersions: Array.from(enumType.members.values()).reverse(), - }); -} diff --git a/packages/typespec-azure-resource-manager/src/rules/arm-common-types-version.ts b/packages/typespec-azure-resource-manager/src/rules/arm-common-types-version.ts index dc3b262185..0da4458e1c 100644 --- a/packages/typespec-azure-resource-manager/src/rules/arm-common-types-version.ts +++ b/packages/typespec-azure-resource-manager/src/rules/arm-common-types-version.ts @@ -1,7 +1,6 @@ import { Program, SemanticNodeListener, createRule } from "@typespec/compiler"; import { getAllHttpServices } from "@typespec/http"; import { getVersion } from "@typespec/versioning"; -import { getArmCommonTypesVersion } from "../common-types.js"; import { getArmProviderNamespace } from "../namespace.js"; /** @@ -34,9 +33,16 @@ export const armCommonTypesVersionRule = createRule({ versionMap && versionMap .getVersions() - .every((version) => !!getArmCommonTypesVersion(program, version.enumMember)) + .every( + (version) => + !!version.enumMember.decorators.find( + (x) => x.definition?.name === "@armCommonTypesVersion" + ) + ) ) && - !getArmCommonTypesVersion(program, service.namespace) + !service.namespace.decorators.find( + (x) => x.definition?.name === "@armCommonTypesVersion" + ) ) { context.reportDiagnostic({ target: service.namespace, diff --git a/packages/typespec-azure-resource-manager/src/rules/core-operations.ts b/packages/typespec-azure-resource-manager/src/rules/core-operations.ts index 8d5da0574b..7bde58f7f0 100644 --- a/packages/typespec-azure-resource-manager/src/rules/core-operations.ts +++ b/packages/typespec-azure-resource-manager/src/rules/core-operations.ts @@ -90,7 +90,7 @@ function isApiParameter(program: Program, property: ModelProperty): boolean { if (sourceModel === undefined) return false; return ( sourceModel.name === "ApiVersionParameter" && - getNamespaceName(program, sourceModel) === "Azure.ResourceManager" + getNamespaceName(program, sourceModel) === "Azure.ResourceManager.CommonTypes" ); } diff --git a/packages/typespec-azure-resource-manager/test/arm-common-types-registration.test.ts b/packages/typespec-azure-resource-manager/test/arm-common-types-registration.test.ts index f5b3adb969..bb365e7367 100644 --- a/packages/typespec-azure-resource-manager/test/arm-common-types-registration.test.ts +++ b/packages/typespec-azure-resource-manager/test/arm-common-types-registration.test.ts @@ -3,7 +3,7 @@ import { getService } from "@typespec/compiler"; import { expectDiagnosticEmpty, expectDiagnostics } from "@typespec/compiler/testing"; import { describe, expect, it } from "vitest"; import { findArmCommonTypeRecord } from "../src/common-types.js"; -import type { ArmCommonTypeRecord } from "../src/private.decorators.js"; +import type { ArmCommonTypeRecord } from "../src/commontypes.private.decorators.js"; import { createAzureResourceManagerTestRunner } from "./test-host.js"; function boilerplate(version: string | undefined) { @@ -44,9 +44,9 @@ describe("common definition", () => { it.each(["v3", "v4", "v5"])("link to %s", async (version) => { const [ref, diagnostics] = await compute( ` - @Azure.ResourceManager.Private.armCommonDefinition("Foo", Azure.ResourceManager.CommonTypes.Versions.v3, "foo.json") - @Azure.ResourceManager.Private.armCommonDefinition("Foo", Azure.ResourceManager.CommonTypes.Versions.v4, "foo.json") - @Azure.ResourceManager.Private.armCommonDefinition("Foo", Azure.ResourceManager.CommonTypes.Versions.v5, "foo.json") + @Azure.ResourceManager.CommonTypes.Private.armCommonDefinition("Foo", Azure.ResourceManager.CommonTypes.Versions.v3, "foo.json") + @Azure.ResourceManager.CommonTypes.Private.armCommonDefinition("Foo", Azure.ResourceManager.CommonTypes.Versions.v4, "foo.json") + @Azure.ResourceManager.CommonTypes.Private.armCommonDefinition("Foo", Azure.ResourceManager.CommonTypes.Versions.v5, "foo.json") `, version ); @@ -63,8 +63,8 @@ describe("common definition", () => { describe("type added in v4", () => { const decorators = ` - @Azure.ResourceManager.Private.armCommonDefinition("Foo", Azure.ResourceManager.CommonTypes.Versions.v4, "foo.json") - @Azure.ResourceManager.Private.armCommonDefinition("Foo", Azure.ResourceManager.CommonTypes.Versions.v5, "foo.json") + @Azure.ResourceManager.CommonTypes.Private.armCommonDefinition("Foo", Azure.ResourceManager.CommonTypes.Versions.v4, "foo.json") + @Azure.ResourceManager.CommonTypes.Private.armCommonDefinition("Foo", Azure.ResourceManager.CommonTypes.Versions.v5, "foo.json") `; it.each(["v3"])("using in %s emits diagnostics", async () => { const [_, diagnostics] = await compute(decorators, "v3"); @@ -89,7 +89,7 @@ describe("common definition", () => { describe("type added in v5", () => { const decorators = ` - @Azure.ResourceManager.Private.armCommonDefinition("Foo", Azure.ResourceManager.CommonTypes.Versions.v5, "foo.json") + @Azure.ResourceManager.CommonTypes.Private.armCommonDefinition("Foo", Azure.ResourceManager.CommonTypes.Versions.v5, "foo.json") `; it.each(["v3", "v4"])("using in %s emits diagnostics", async () => { const [_, diagnostics] = await compute(decorators, "v3"); @@ -137,9 +137,9 @@ describe("common parameters", () => { it.each(["v3", "v4", "v5"])("using %s link to version", async (version) => { const [ref, diagnostics] = await compute( ` - @Azure.ResourceManager.Private.armCommonParameter("Foo", Azure.ResourceManager.CommonTypes.Versions.v3, "foo.json") - @Azure.ResourceManager.Private.armCommonParameter("Foo", Azure.ResourceManager.CommonTypes.Versions.v4, "foo.json") - @Azure.ResourceManager.Private.armCommonParameter("Foo", Azure.ResourceManager.CommonTypes.Versions.v5, "foo.json") + @Azure.ResourceManager.CommonTypes.Private.armCommonParameter("Foo", Azure.ResourceManager.CommonTypes.Versions.v3, "foo.json") + @Azure.ResourceManager.CommonTypes.Private.armCommonParameter("Foo", Azure.ResourceManager.CommonTypes.Versions.v4, "foo.json") + @Azure.ResourceManager.CommonTypes.Private.armCommonParameter("Foo", Azure.ResourceManager.CommonTypes.Versions.v5, "foo.json") `, version ); @@ -156,8 +156,8 @@ describe("common parameters", () => { describe("type added in v4", () => { const decorators = ` - @Azure.ResourceManager.Private.armCommonParameter("Foo", Azure.ResourceManager.CommonTypes.Versions.v4, "foo.json") - @Azure.ResourceManager.Private.armCommonParameter("Foo", Azure.ResourceManager.CommonTypes.Versions.v5, "foo.json") + @Azure.ResourceManager.CommonTypes.Private.armCommonParameter("Foo", Azure.ResourceManager.CommonTypes.Versions.v4, "foo.json") + @Azure.ResourceManager.CommonTypes.Private.armCommonParameter("Foo", Azure.ResourceManager.CommonTypes.Versions.v5, "foo.json") `; it.each(["v3"])("using in %s emits diagnostics", async () => { const [_, diagnostics] = await compute(decorators, "v3"); @@ -182,7 +182,7 @@ describe("common parameters", () => { describe("type added in v5", () => { const decorators = ` - @Azure.ResourceManager.Private.armCommonParameter("Foo", Azure.ResourceManager.CommonTypes.Versions.v5, "foo.json") + @Azure.ResourceManager.CommonTypes.Private.armCommonParameter("Foo", Azure.ResourceManager.CommonTypes.Versions.v5, "foo.json") `; it.each(["v3", "v4"])("using in %s emits diagnostics", async () => { const [_, diagnostics] = await compute(decorators, "v3"); diff --git a/packages/typespec-azure-resource-manager/test/enforce-constraint.test.ts b/packages/typespec-azure-resource-manager/test/enforce-constraint.test.ts index b89efdebab..a7267c1af1 100644 --- a/packages/typespec-azure-resource-manager/test/enforce-constraint.test.ts +++ b/packages/typespec-azure-resource-manager/test/enforce-constraint.test.ts @@ -73,20 +73,18 @@ describe("typespec-azure-resource-manager: @enforceConstraint", () => { `); expectDiagnostics(diagnostics, [ { - code: "@azure-tools/typespec-azure-resource-manager/template-type-constraint-no-met", - message: `The template parameter "Widget" for "ArmResourceCreateOrReplaceSync" does not extend the constraint type "Resource". Please use the "TrackedResource", "ProxyResource", or "ExtensionResource" template to define the resource.`, - }, - { - code: "@azure-tools/typespec-azure-resource-manager/template-type-constraint-no-met", - message: `The template parameter "Widget" for "create" does not extend the constraint type "Resource". Please use the "TrackedResource", "ProxyResource", or "ExtensionResource" template to define the resource.`, + code: "invalid-argument", + message: `Argument of type 'Microsoft.Contoso.Widget' is not assignable to parameter of type 'Azure.ResourceManager.CommonTypes.Resource'`, }, { code: "@azure-tools/typespec-azure-resource-manager/template-type-constraint-no-met", - message: `The template parameter "CustomResource" for "ArmResourceCreateOrReplaceSync" does not extend the constraint type "Resource". Please use the "TrackedResource", "ProxyResource", or "ExtensionResource" template to define the resource.`, + message: + 'The template parameter "CustomResource" for "ArmResourceCreateOrReplaceSync" does not extend the constraint type "Resource". Please use the "TrackedResource", "ProxyResource", or "ExtensionResource" template to define the resource.', }, { code: "@azure-tools/typespec-azure-resource-manager/template-type-constraint-no-met", - message: `The template parameter "CustomResource" for "delete" does not extend the constraint type "Resource". Please use the "TrackedResource", "ProxyResource", or "ExtensionResource" template to define the resource.`, + message: + 'The template parameter "CustomResource" for "delete" does not extend the constraint type "Resource". Please use the "TrackedResource", "ProxyResource", or "ExtensionResource" template to define the resource.', }, ]); }); diff --git a/packages/typespec-azure-resource-manager/test/rules/arm-resource-interface.test.ts b/packages/typespec-azure-resource-manager/test/rules/arm-resource-interface.test.ts index 93bdd46d2f..b6e31b5842 100644 --- a/packages/typespec-azure-resource-manager/test/rules/arm-resource-interface.test.ts +++ b/packages/typespec-azure-resource-manager/test/rules/arm-resource-interface.test.ts @@ -32,9 +32,11 @@ describe("typespec-azure-resource-manager: detect non-post actions", () => { enum Versions { @doc(".") @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) v2021_09_21: "2022-09-21-preview", @doc(".") @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v4) v2022_01_10: "2022-01-10-alpha.1" } diff --git a/packages/typespec-azure-resource-manager/test/rules/core-operations.test.ts b/packages/typespec-azure-resource-manager/test/rules/core-operations.test.ts index c76fa3904a..6242e29c55 100644 --- a/packages/typespec-azure-resource-manager/test/rules/core-operations.test.ts +++ b/packages/typespec-azure-resource-manager/test/rules/core-operations.test.ts @@ -83,9 +83,11 @@ describe("typespec-azure-resource-manager: core operations rule", () => { enum Versions { @doc(".") @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) v2021_09_21: "2022-09-21-preview", @doc(".") @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v4) v2022_01_10: "2022-01-10-alpha.1" } @@ -147,9 +149,13 @@ describe("typespec-azure-resource-manager: core operations rule", () => { enum Versions { @doc(".") @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @useDependency(Azure.Core.Versions.v1_0_Preview_1) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) v2021_09_21: "2022-09-21-preview", @doc(".") @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @useDependency(Azure.Core.Versions.v1_0_Preview_1) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v4) v2022_01_10: "2022-01-10-alpha.1" } diff --git a/packages/typespec-azure-resource-manager/test/rules/operation-usage.test.ts b/packages/typespec-azure-resource-manager/test/rules/operation-usage.test.ts index b15b677562..94e2b592ec 100644 --- a/packages/typespec-azure-resource-manager/test/rules/operation-usage.test.ts +++ b/packages/typespec-azure-resource-manager/test/rules/operation-usage.test.ts @@ -36,9 +36,11 @@ describe("typespec-azure-resource-manager: detect non-post actions", () => { enum Versions { @doc(".") @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) v2021_09_21: "2022-09-21-preview", @doc(".") @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v4) v2022_01_10: "2022-01-10-alpha.1" } diff --git a/packages/typespec-azure-resource-manager/test/rules/patch-operations.test.ts b/packages/typespec-azure-resource-manager/test/rules/patch-operations.test.ts index 72bf418487..c8fbf35197 100644 --- a/packages/typespec-azure-resource-manager/test/rules/patch-operations.test.ts +++ b/packages/typespec-azure-resource-manager/test/rules/patch-operations.test.ts @@ -33,9 +33,11 @@ describe("typespec-azure-resource-manager: core operations rule", () => { enum Versions { @doc(".") @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) v2021_09_21: "2022-09-21-preview", @doc(".") @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v4) v2022_01_10: "2022-01-10-alpha.1" } @@ -106,9 +108,11 @@ describe("typespec-azure-resource-manager: core operations rule", () => { enum Versions { @doc(".") @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) v2021_09_21: "2022-09-21-preview", @doc(".") @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v4) v2022_01_10: "2022-01-10-alpha.1" } diff --git a/packages/typespec-azure-resource-manager/test/rules/retry-after.test.ts b/packages/typespec-azure-resource-manager/test/rules/retry-after.test.ts index 0220cfe8b9..36fb856064 100644 --- a/packages/typespec-azure-resource-manager/test/rules/retry-after.test.ts +++ b/packages/typespec-azure-resource-manager/test/rules/retry-after.test.ts @@ -24,27 +24,38 @@ describe("typespec-azure-resource-manager: retry-after rule", () => { await tester .expect( ` - @useDependency(Azure.Core.Versions.v1_0_Preview_2) - @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @service @armProviderNamespace + @versioned(Versions) namespace Microsoft.Foo; - + + /** Contoso API versions */ + enum Versions { + /** 2021-10-01-preview version */ + @useDependency(Azure.Core.Versions.v1_0_Preview_2) + @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v4) + "2021-10-01-preview", + } + model FooResource is TrackedResource<{}> { - @key("foo") @segment("foo") @path + @key("foo") + @segment("foo") + @path name: string; } - + model UpdateFooResponse { @header("Retry-After") retryAfter: utcDateTime; ...FooResource; } - + @armResourceOperations interface FooResources { @armResourceUpdate(FooResource) @OpenAPI.extension("x-ms-long-running-operation", true) - @patch - op update(): UpdateFooResponse; + @patch + update(): UpdateFooResponse; } ` ) From d30db5bd8bf78c5eb237ea8cdbc0e98755a86be1 Mon Sep 17 00:00:00 2001 From: Mark Cowlishaw Date: Tue, 11 Jun 2024 23:06:35 -0700 Subject: [PATCH 02/42] Make Resource Properties Bag Updatable (#979) --- .chronus/changes/res-vis-2024-5-12-4-34-46.md | 8 +++++ .../typespec-autorest/openapi.json | 36 ++++--------------- .../typespec-autorest/openapi.json | 6 +--- .../2021-10-01-preview/openapi.json | 6 +--- .../2023-03-01-preview/openapi.json | 6 +--- .../2023-03-01-preview/openapi.json | 6 +--- .../2023-03-01-preview/openapi.json | 6 +--- .../2023-08-01-preview/openapi.json | 18 ++-------- .../2023-11-01-preview/openapi.json | 18 ++-------- .../2021-10-01-preview/openapi.json | 6 +--- .../2021-10-01-preview/openapi.json | 6 +--- .../2021-10-01-preview/openapi.json | 12 ++----- .../2021-10-01-preview/openapi.json | 6 +--- .../2021-10-01-preview/openapi.json | 6 +--- .../2021-10-01-preview/openapi.json | 6 +--- .../2021-10-01-preview/openapi.json | 6 +--- .../lib/foundations/arm.foundations.tsp | 6 +++- .../lib/models.tsp | 3 -- 18 files changed, 38 insertions(+), 129 deletions(-) create mode 100644 .chronus/changes/res-vis-2024-5-12-4-34-46.md diff --git a/.chronus/changes/res-vis-2024-5-12-4-34-46.md b/.chronus/changes/res-vis-2024-5-12-4-34-46.md new file mode 100644 index 0000000000..a5b220fe19 --- /dev/null +++ b/.chronus/changes/res-vis-2024-5-12-4-34-46.md @@ -0,0 +1,8 @@ +--- +# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking +changeKind: fix +packages: + - "@azure-tools/typespec-azure-resource-manager" +--- + +Make Resource Properties Bag Updatable diff --git a/packages/samples/test/output/azure/resource-manager/arm-library/@azure-tools/typespec-autorest/openapi.json b/packages/samples/test/output/azure/resource-manager/arm-library/@azure-tools/typespec-autorest/openapi.json index c51ac0ef33..bc2f3ddd5f 100644 --- a/packages/samples/test/output/azure/resource-manager/arm-library/@azure-tools/typespec-autorest/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/arm-library/@azure-tools/typespec-autorest/openapi.json @@ -1660,11 +1660,7 @@ "properties": { "$ref": "#/definitions/AllPropertiesProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "eTag": { "type": "string", @@ -1822,11 +1818,7 @@ "properties": { "$ref": "#/definitions/Microsoft.InterfacesTest.TestExtensionProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1858,11 +1850,7 @@ "properties": { "$ref": "#/definitions/Microsoft.InterfacesTest.TestTenantProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1878,11 +1866,7 @@ "properties": { "$ref": "#/definitions/Microsoft.InterfacesTest.TrackedChildProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1918,11 +1902,7 @@ "properties": { "$ref": "#/definitions/Microsoft.InterfacesTest.TestTrackedProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1972,11 +1952,7 @@ "properties": { "$ref": "#/definitions/Microsoft.OperationsTest.TestTrackedProperties2", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/packages/samples/test/output/azure/resource-manager/contoso/@azure-tools/typespec-autorest/openapi.json b/packages/samples/test/output/azure/resource-manager/contoso/@azure-tools/typespec-autorest/openapi.json index 26f450a967..31b260c10d 100644 --- a/packages/samples/test/output/azure/resource-manager/contoso/@azure-tools/typespec-autorest/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/contoso/@azure-tools/typespec-autorest/openapi.json @@ -377,11 +377,7 @@ "properties": { "$ref": "#/definitions/EmployeeProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/packages/samples/test/output/azure/resource-manager/operations/nobody-action/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/operations/nobody-action/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json index 8f2c907e51..daecccb955 100644 --- a/packages/samples/test/output/azure/resource-manager/operations/nobody-action/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/operations/nobody-action/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json @@ -588,11 +588,7 @@ "properties": { "$ref": "#/definitions/EmployeeProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/packages/samples/test/output/azure/resource-manager/resource-common-properties/common-properties/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-common-properties/common-properties/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json index 55c9e6e16d..22d4543ac4 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-common-properties/common-properties/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-common-properties/common-properties/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json @@ -447,11 +447,7 @@ "properties": { "$ref": "#/definitions/WidgetResourceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/Azure.ResourceManager.CommonTypes.ExtendedLocation", diff --git a/packages/samples/test/output/azure/resource-manager/resource-common-properties/encryption/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-common-properties/encryption/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json index 49b6327cae..c31a6041a9 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-common-properties/encryption/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-common-properties/encryption/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json @@ -405,11 +405,7 @@ "properties": { "$ref": "#/definitions/WidgetResourceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/packages/samples/test/output/azure/resource-manager/resource-common-properties/managed-identity/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-common-properties/managed-identity/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json index f90ff76fb9..a476b4b43c 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-common-properties/managed-identity/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-common-properties/managed-identity/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json @@ -405,11 +405,7 @@ "properties": { "$ref": "#/definitions/WidgetResourceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "identity": { "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/managedidentity.json#/definitions/ManagedServiceIdentity", diff --git a/packages/samples/test/output/azure/resource-manager/resource-common-properties/private-links/@azure-tools/typespec-autorest/2023-08-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-common-properties/private-links/@azure-tools/typespec-autorest/2023-08-01-preview/openapi.json index 260e62648b..410346aa0f 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-common-properties/private-links/@azure-tools/typespec-autorest/2023-08-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-common-properties/private-links/@azure-tools/typespec-autorest/2023-08-01-preview/openapi.json @@ -649,11 +649,7 @@ "properties": { "$ref": "../../../../../../../../../specs/resource-manager/common-types/v4/privatelinks.json#/definitions/PrivateEndpointConnectionProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -690,11 +686,7 @@ "properties": { "$ref": "../../../../../../../../../specs/resource-manager/common-types/v4/privatelinks.json#/definitions/PrivateLinkResourceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -759,11 +751,7 @@ "properties": { "$ref": "#/definitions/TestTrackedProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/packages/samples/test/output/azure/resource-manager/resource-common-properties/private-links/@azure-tools/typespec-autorest/2023-11-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-common-properties/private-links/@azure-tools/typespec-autorest/2023-11-01-preview/openapi.json index dd52faa934..4645f79a80 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-common-properties/private-links/@azure-tools/typespec-autorest/2023-11-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-common-properties/private-links/@azure-tools/typespec-autorest/2023-11-01-preview/openapi.json @@ -649,11 +649,7 @@ "properties": { "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/definitions/PrivateEndpointConnectionProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -690,11 +686,7 @@ "properties": { "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/definitions/PrivateLinkResourceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -759,11 +751,7 @@ "properties": { "$ref": "#/definitions/TestTrackedProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/packages/samples/test/output/azure/resource-manager/resource-types/extension/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-types/extension/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json index b1a17b9ae5..b9c7ea9a6d 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-types/extension/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-types/extension/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json @@ -402,11 +402,7 @@ "properties": { "$ref": "#/definitions/RoleAssignmentProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/packages/samples/test/output/azure/resource-manager/resource-types/location/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-types/location/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json index 5b1ee9e4c1..08ccc875f8 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-types/location/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-types/location/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json @@ -437,11 +437,7 @@ "properties": { "$ref": "#/definitions/EmployeeProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/packages/samples/test/output/azure/resource-manager/resource-types/proxy/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-types/proxy/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json index 3d4924b7bf..05ff8d16da 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-types/proxy/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-types/proxy/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json @@ -731,11 +731,7 @@ "properties": { "$ref": "#/definitions/DependentProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -821,11 +817,7 @@ "properties": { "$ref": "#/definitions/EmployeeProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/packages/samples/test/output/azure/resource-manager/resource-types/singleton/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-types/singleton/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json index 7615e63f83..c432ec176d 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-types/singleton/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-types/singleton/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json @@ -336,11 +336,7 @@ "properties": { "$ref": "#/definitions/EmployeeProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/packages/samples/test/output/azure/resource-manager/resource-types/tenant/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-types/tenant/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json index a882b24dea..0e3dd4ae27 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-types/tenant/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-types/tenant/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json @@ -374,11 +374,7 @@ "properties": { "$ref": "#/definitions/EmployeeProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/packages/samples/test/output/azure/resource-manager/resource-types/tracked/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-types/tracked/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json index eae05cf8bc..409703629a 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-types/tracked/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-types/tracked/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json @@ -450,11 +450,7 @@ "properties": { "$ref": "#/definitions/EmployeeProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/packages/samples/test/output/azure/resource-manager/resource-types/virtual-resource/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-types/virtual-resource/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json index 2a67c3d2b7..8fead9ff27 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-types/virtual-resource/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-types/virtual-resource/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json @@ -542,11 +542,7 @@ "properties": { "$ref": "#/definitions/EmployeeProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/packages/typespec-azure-resource-manager/lib/foundations/arm.foundations.tsp b/packages/typespec-azure-resource-manager/lib/foundations/arm.foundations.tsp index 644bc0437f..454caec07a 100644 --- a/packages/typespec-azure-resource-manager/lib/foundations/arm.foundations.tsp +++ b/packages/typespec-azure-resource-manager/lib/foundations/arm.foundations.tsp @@ -115,7 +115,11 @@ model ResourceUpdateModelProperties< model ResourceUpdateModel< Resource extends Foundations.Resource, Properties extends TypeSpec.Reflection.Model -> is OptionalProperties>> { +> + is OptionalProperties>> { @extension("x-ms-client-flatten", true) properties?: ResourceUpdateModelProperties; } diff --git a/packages/typespec-azure-resource-manager/lib/models.tsp b/packages/typespec-azure-resource-manager/lib/models.tsp index e5eb45bf68..fb0bfca16e 100644 --- a/packages/typespec-azure-resource-manager/lib/models.tsp +++ b/packages/typespec-azure-resource-manager/lib/models.tsp @@ -46,7 +46,6 @@ model ResourceNameParameter< @includeInapplicableMetadataInPayload(false) model TrackedResource extends Foundations.TrackedResource { @doc("The resource-specific properties for this resource.") - @visibility("read", "create") @extension("x-ms-client-flatten", true) properties?: Properties; } @@ -62,7 +61,6 @@ model TrackedResource extends Foundations.TrackedResource @includeInapplicableMetadataInPayload(false) model ProxyResource extends Foundations.ProxyResource { @doc("The resource-specific properties for this resource.") - @visibility("read", "create") @extension("x-ms-client-flatten", true) properties?: Properties; } @@ -79,7 +77,6 @@ model ProxyResource extends Foundations.ProxyResource { @includeInapplicableMetadataInPayload(false) model ExtensionResource extends Foundations.ExtensionResource { @doc("The resource-specific properties for this resource.") - @visibility("read", "create") @extension("x-ms-client-flatten", true) properties?: Properties; } From 6fc46453b0ecf7c7246f09980f7b2bfc93c2a6ba Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 07:50:54 -0700 Subject: [PATCH 03/42] Bump core from `ac93dfa` to `913aa03` (#994) Bumps [core](https://github.com/microsoft/typespec) from `ac93dfa` to `913aa03`.
Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core b/core index ac93dfa318..913aa03f78 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit ac93dfa318bb02217b99d0aa3b0898c725d88c0a +Subproject commit 913aa03f78cf5b85b03c5efc5a8666b45f48d514 From 17238644e6ec27695831f44eceedde54bec7ffb3 Mon Sep 17 00:00:00 2001 From: Allen Zhang Date: Wed, 12 Jun 2024 18:55:28 -0700 Subject: [PATCH 04/42] Adding Legacy V4 ManagedIdentity to avoid breaking change in spec with mixed v3 and v4 types (#998) --- ...egacyManagedIdentity-2024-5-12-18-14-55.md | 7 + .../reference/data-types.md | 55 ++ .../reference/index.mdx | 7 + .../legacy/managed-identity/main.tsp | 62 +++ .../2023-03-01-preview/openapi.json | 479 ++++++++++++++++++ .../lib/Legacy/arm.legacy.tsp | 1 + .../lib/Legacy/managed-identity.tsp | 74 +++ .../lib/arm.tsp | 1 + .../src/common-types.ts | 4 +- 9 files changed, 689 insertions(+), 1 deletion(-) create mode 100644 .chronus/changes/addV4LegacyManagedIdentity-2024-5-12-18-14-55.md create mode 100644 packages/samples/specs/resource-manager/legacy/managed-identity/main.tsp create mode 100644 packages/samples/test/output/azure/resource-manager/legacy/managed-identity/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json create mode 100644 packages/typespec-azure-resource-manager/lib/Legacy/arm.legacy.tsp create mode 100644 packages/typespec-azure-resource-manager/lib/Legacy/managed-identity.tsp diff --git a/.chronus/changes/addV4LegacyManagedIdentity-2024-5-12-18-14-55.md b/.chronus/changes/addV4LegacyManagedIdentity-2024-5-12-18-14-55.md new file mode 100644 index 0000000000..137c8af66e --- /dev/null +++ b/.chronus/changes/addV4LegacyManagedIdentity-2024-5-12-18-14-55.md @@ -0,0 +1,7 @@ +--- +changeKind: fix +packages: + - "@azure-tools/typespec-azure-resource-manager" +--- + +Adding legacy v4 ManagedServiceIdentity model to avoid breaking changes in specs with mixed v3 and v4 common type reference \ No newline at end of file diff --git a/docs/libraries/azure-resource-manager/reference/data-types.md b/docs/libraries/azure-resource-manager/reference/data-types.md index 178430fad5..a3d412af29 100644 --- a/docs/libraries/azure-resource-manager/reference/data-types.md +++ b/docs/libraries/azure-resource-manager/reference/data-types.md @@ -2154,3 +2154,58 @@ model Azure.ResourceManager.Foundations.TenantScope | ---------- | -------------------------------- | ------------------------------------------ | | apiVersion | `string` | The API version to use for this operation. | | provider | `"Microsoft.ThisWillBeReplaced"` | | + +## Azure.ResourceManager.Legacy + +### `ManagedServiceIdentityV4` {#Azure.ResourceManager.Legacy.ManagedServiceIdentityV4} + +Managed service identity (system assigned and/or user assigned identities) + +```typespec +model Azure.ResourceManager.Legacy.ManagedServiceIdentityV4 +``` + +#### Properties + +| Name | Type | Description | +| ----------------------- | ------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| principalId? | `Core.uuid` | The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity. | +| tenantId? | `Core.uuid` | The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity. | +| type | [`ManagedServiceIdentityType`](./data-types.md#Azure.ResourceManager.Legacy.ManagedServiceIdentityType) | The type of managed identity assigned to this resource. | +| userAssignedIdentities? | `Record` | The identities assigned to this resource by the user. | + +### `ManagedServiceIdentityV4Property` {#Azure.ResourceManager.Legacy.ManagedServiceIdentityV4Property} + +Model representing the standard `ManagedServiceIdentity` envelope property from V4 of common type. + +Please note that this is only included for legacy specs with mixed v3 and v4 types, which would cause +breaking changes due to the ManagedServiceIdentityType.SystemAndUserAssigned value changes. + +Do not use this if you are already on CommonTypes.Version.v4 or beyond. + +```typespec +model Azure.ResourceManager.Legacy.ManagedServiceIdentityV4Property +``` + +#### Examples + +```typespec +model Foo is TrackedResource { + ...ResourceNameParameter; + ...Legacy.ManagedServiceIdentityV4Property; +} +``` + +#### Properties + +| Name | Type | Description | +| --------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | +| identity? | [`ManagedServiceIdentityV4`](./data-types.md#Azure.ResourceManager.Legacy.ManagedServiceIdentityV4) | The managed service identities assigned to this resource. | + +### `ManagedServiceIdentityType` {#Azure.ResourceManager.Legacy.ManagedServiceIdentityType} + +Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). + +```typespec +union Azure.ResourceManager.Legacy.ManagedServiceIdentityType +``` diff --git a/docs/libraries/azure-resource-manager/reference/index.mdx b/docs/libraries/azure-resource-manager/reference/index.mdx index ef473192d6..5ecf4cb7ca 100644 --- a/docs/libraries/azure-resource-manager/reference/index.mdx +++ b/docs/libraries/azure-resource-manager/reference/index.mdx @@ -243,3 +243,10 @@ npm install --save-peer @azure-tools/typespec-azure-resource-manager - [`TagsUpdateModel`](./data-types.md#Azure.ResourceManager.Foundations.TagsUpdateModel) - [`TenantBaseParameters`](./data-types.md#Azure.ResourceManager.Foundations.TenantBaseParameters) - [`TenantScope`](./data-types.md#Azure.ResourceManager.Foundations.TenantScope) + +## Azure.ResourceManager.Legacy + +### Models + +- [`ManagedServiceIdentityV4`](./data-types.md#Azure.ResourceManager.Legacy.ManagedServiceIdentityV4) +- [`ManagedServiceIdentityV4Property`](./data-types.md#Azure.ResourceManager.Legacy.ManagedServiceIdentityV4Property) diff --git a/packages/samples/specs/resource-manager/legacy/managed-identity/main.tsp b/packages/samples/specs/resource-manager/legacy/managed-identity/main.tsp new file mode 100644 index 0000000000..add7878931 --- /dev/null +++ b/packages/samples/specs/resource-manager/legacy/managed-identity/main.tsp @@ -0,0 +1,62 @@ +import "@typespec/http"; +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.ResourceManager; +using Azure.Core; + +@armProviderNamespace("Contoso.ManagedIdentityExample") +@service({ + title: "Contoso.ManagedIdentityExample", +}) +@versioned(Versions) +@doc("An example of using the ManagedIdentity properties in a resource type.") +namespace Microsoft.UpdateTests; + +/** UpdateTests API versions */ +enum Versions { + /** 2023-03-01-preview version */ + @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) + `2023-03-01-preview`, +} + +interface Operations extends Azure.ResourceManager.Operations {} + +@doc("Widget Resource") +model WidgetResource is TrackedResource { + @pattern("^[a-zA-Z0-9-]{3,24}$") + @doc("The name of the widget.") + @key("widgetName") + @segment("widgets") + @path + name: string; + + ...Legacy.ManagedServiceIdentityV4Property; // Or ...ManagedSystemAssignedIdentityProperty; +} + +@doc("Widget Resource Properties.") +model WidgetResourceProperties { + @doc("The widget color.") + @visibility("create", "read") + color: string; + + /** Provisioning state */ + @visibility("read") + provisioningState?: ResourceProvisioningState; +} + +@armResourceOperations +interface Widgets { + get is ArmResourceRead; + create is ArmResourceCreateOrUpdateAsync; + update is ArmTagsPatchSync; + delete is ArmResourceDeleteWithoutOkAsync; + listByResourceGroup is ArmResourceListByParent; + listBySubscription is ArmListBySubscription; +} diff --git a/packages/samples/test/output/azure/resource-manager/legacy/managed-identity/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/legacy/managed-identity/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json new file mode 100644 index 0000000000..dc8b04501c --- /dev/null +++ b/packages/samples/test/output/azure/resource-manager/legacy/managed-identity/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json @@ -0,0 +1,479 @@ +{ + "swagger": "2.0", + "info": { + "title": "Contoso.ManagedIdentityExample", + "version": "2023-03-01-preview", + "description": "An example of using the ManagedIdentity properties in a resource type.", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] + }, + "schemes": [ + "https" + ], + "host": "management.azure.com", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow.", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "tags": [ + { + "name": "Operations" + }, + { + "name": "Widgets" + } + ], + "paths": { + "/providers/Contoso.ManagedIdentityExample/operations": { + "get": { + "operationId": "Operations_List", + "tags": [ + "Operations" + ], + "description": "List the operations for the provider", + "parameters": [ + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/definitions/OperationListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Contoso.ManagedIdentityExample/widgets": { + "get": { + "operationId": "Widgets_ListBySubscription", + "tags": [ + "Widgets" + ], + "description": "List WidgetResource resources by subscription ID", + "parameters": [ + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/WidgetResourceListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.ManagedIdentityExample/widgets": { + "get": { + "operationId": "Widgets_ListByResourceGroup", + "tags": [ + "Widgets" + ], + "description": "List WidgetResource resources by resource group", + "parameters": [ + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/parameters/ResourceGroupNameParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/WidgetResourceListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.ManagedIdentityExample/widgets/{widgetName}": { + "get": { + "operationId": "Widgets_Get", + "tags": [ + "Widgets" + ], + "description": "Get a WidgetResource", + "parameters": [ + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "widgetName", + "in": "path", + "description": "The name of the widget.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/WidgetResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/definitions/ErrorResponse" + } + } + } + }, + "put": { + "operationId": "Widgets_Create", + "tags": [ + "Widgets" + ], + "description": "Create a WidgetResource", + "parameters": [ + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "widgetName", + "in": "path", + "description": "The name of the widget.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/WidgetResource" + } + } + ], + "responses": { + "200": { + "description": "Resource 'WidgetResource' update operation succeeded", + "schema": { + "$ref": "#/definitions/WidgetResource" + } + }, + "201": { + "description": "Resource 'WidgetResource' create operation succeeded", + "schema": { + "$ref": "#/definitions/WidgetResource" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "Widgets_Update", + "tags": [ + "Widgets" + ], + "description": "Update a WidgetResource", + "parameters": [ + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "widgetName", + "in": "path", + "description": "The name of the widget.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + }, + { + "name": "properties", + "in": "body", + "description": "The resource properties to be updated.", + "required": true, + "schema": { + "$ref": "#/definitions/WidgetResourceTagsUpdate" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/WidgetResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "operationId": "Widgets_Delete", + "tags": [ + "Widgets" + ], + "description": "Delete a WidgetResource", + "parameters": [ + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "widgetName", + "in": "path", + "description": "The name of the widget.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + } + }, + "definitions": { + "Azure.ResourceManager.ResourceProvisioningState": { + "type": "string", + "description": "The provisioning state of a resource type.", + "enum": [ + "Succeeded", + "Failed", + "Canceled" + ], + "x-ms-enum": { + "name": "ResourceProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Resource has been created." + }, + { + "name": "Failed", + "value": "Failed", + "description": "Resource creation failed." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "Resource creation was canceled." + } + ] + }, + "readOnly": true + }, + "WidgetResource": { + "type": "object", + "description": "Widget Resource", + "properties": { + "properties": { + "$ref": "#/definitions/WidgetResourceProperties", + "description": "The resource-specific properties for this resource.", + "x-ms-client-flatten": true + }, + "identity": { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v4/managedidentity.json#/definitions/ManagedServiceIdentity", + "description": "The managed service identities assigned to this resource." + } + }, + "allOf": [ + { + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v3/types.json#/definitions/TrackedResource" + } + ] + }, + "WidgetResourceListResult": { + "type": "object", + "description": "The response of a WidgetResource list operation.", + "properties": { + "value": { + "type": "array", + "description": "The WidgetResource items on this page", + "items": { + "$ref": "#/definitions/WidgetResource" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "WidgetResourceProperties": { + "type": "object", + "description": "Widget Resource Properties.", + "properties": { + "color": { + "type": "string", + "description": "The widget color.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "provisioningState": { + "$ref": "#/definitions/Azure.ResourceManager.ResourceProvisioningState", + "description": "Provisioning state", + "readOnly": true + } + }, + "required": [ + "color" + ] + }, + "WidgetResourceTagsUpdate": { + "type": "object", + "description": "The type used for updating tags in WidgetResource resources.", + "properties": { + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } + } + } + } + }, + "parameters": {} +} diff --git a/packages/typespec-azure-resource-manager/lib/Legacy/arm.legacy.tsp b/packages/typespec-azure-resource-manager/lib/Legacy/arm.legacy.tsp new file mode 100644 index 0000000000..65fe4b9ae1 --- /dev/null +++ b/packages/typespec-azure-resource-manager/lib/Legacy/arm.legacy.tsp @@ -0,0 +1 @@ +import "./managed-identity.tsp"; diff --git a/packages/typespec-azure-resource-manager/lib/Legacy/managed-identity.tsp b/packages/typespec-azure-resource-manager/lib/Legacy/managed-identity.tsp new file mode 100644 index 0000000000..5983443382 --- /dev/null +++ b/packages/typespec-azure-resource-manager/lib/Legacy/managed-identity.tsp @@ -0,0 +1,74 @@ +import "@azure-tools/typespec-azure-core"; +import "../common-types/common-types.tsp"; + +using Azure.Core; +using Azure.ResourceManager.CommonTypes.Private; + +namespace Azure.ResourceManager.Legacy; + +/** + * Model representing the standard `ManagedServiceIdentity` envelope property from V4 of common type. + * + * Please note that this is only included for legacy specs with mixed v3 and v4 types, which would cause + * breaking changes due to the ManagedServiceIdentityType.SystemAndUserAssigned value changes. + * + * Do not use this if you are already on CommonTypes.Version.v4 or beyond. + * + * @example + * + * ```typespec + * model Foo is TrackedResource { + * ...ResourceNameParameter; + * ...Legacy.ManagedServiceIdentityV4Property; + * } + * ``` + */ +@doc("The managed service identities envelope.") +model ManagedServiceIdentityV4Property { + @doc("The managed service identities assigned to this resource.") + identity?: ManagedServiceIdentityV4; +} + +/** + * Managed service identity (system assigned and/or user assigned identities) + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-common-types-incompatible-version" "intended only for v3/v4 mix backcompat cases" +@armCommonDefinition( + "ManagedServiceIdentity", + #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true }, + "managedidentity.json" +) +model ManagedServiceIdentityV4 { + /** The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity. */ + @visibility("read") + principalId?: uuid; + + /** The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity. */ + @visibility("read") + tenantId?: uuid; + + /** The type of managed identity assigned to this resource. */ + type: ManagedServiceIdentityType; + + /** The identities assigned to this resource by the user. */ + userAssignedIdentities?: Record; +} + +/** + * Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). + */ +union ManagedServiceIdentityType { + /** No managed identity. */ + None: "None", + + /** System assigned managed identity. */ + SystemAssigned: "SystemAssigned", + + /** User assigned managed identity. */ + UserAssigned: "UserAssigned", + + /** System and user assigned managed identity. */ + SystemAndUserAssigned: "SystemAssigned, UserAssigned", + + string, +} diff --git a/packages/typespec-azure-resource-manager/lib/arm.tsp b/packages/typespec-azure-resource-manager/lib/arm.tsp index 0a471f32bc..f80479cab0 100644 --- a/packages/typespec-azure-resource-manager/lib/arm.tsp +++ b/packages/typespec-azure-resource-manager/lib/arm.tsp @@ -6,6 +6,7 @@ import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; import "./foundations/arm.foundations.tsp"; +import "./Legacy/arm.legacy.tsp"; import "./common-types/common-types.tsp"; import "./backcompat.tsp"; import "./private.decorators.tsp"; diff --git a/packages/typespec-azure-resource-manager/src/common-types.ts b/packages/typespec-azure-resource-manager/src/common-types.ts index 8b69d3bf93..f0cb277c79 100644 --- a/packages/typespec-azure-resource-manager/src/common-types.ts +++ b/packages/typespec-azure-resource-manager/src/common-types.ts @@ -187,11 +187,13 @@ export function findArmCommonTypeRecord( break; } } - } else { + } + if (record === undefined) { // If no version was found, use the default version record = records[defaultKey ?? ArmCommonTypesDefaultVersion]; } + // If after resolve version AND unable to load default version, report diagnostic if (record === undefined) { return [ undefined, From 70ffbbcd18ca48a570d6855437f9549394448425 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Jun 2024 16:01:49 +0000 Subject: [PATCH 05/42] Bump core from `913aa03` to `4ed71bf` (#1012) Bumps [core](https://github.com/microsoft/typespec) from `913aa03` to `4ed71bf`.
Commits
  • 4ed71bf Add release notes for 0.57.0 (#3560)
  • 147335d fix error when model property is invalid (#3574)
  • e4c4d2b Add support for completion of extends and is (#3443)
  • 5bc98d9 Fix: Using a scalar constructor defined in a parent scalar doesn't reference ...
  • 35e8625 support loglevel filter in playground (#3569)
  • See full diff in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core b/core index 913aa03f78..4ed71bf73f 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 913aa03f78cf5b85b03c5efc5a8666b45f48d514 +Subproject commit 4ed71bf73fe51292c52676849b8462ced86005fb From a6bd067a652390312c710d9f381c418b5f5e09b9 Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Thu, 13 Jun 2024 11:34:49 -0700 Subject: [PATCH 06/42] Generate common types swagger --- core | 2 +- .../existing/v3/managedidentity.json | 113 +++ .../existing/v3/privatelinks.json | 182 ++++ .../common-types/existing/v3/types.json | 667 +++++++++++++++ .../existing/v4/customermanagedkeys.json | 71 ++ .../existing/v4/managedidentity.json | 113 +++ .../v4/managedidentitywithdelegation.json | 54 ++ .../existing/v4/privatelinks.json | 190 ++++ .../common-types/existing/v4/types.json | 716 ++++++++++++++++ .../existing/v5/customermanagedkeys.json | 68 ++ .../existing/v5/managedidentity.json | 114 +++ .../v5/managedidentitywithdelegation.json | 54 ++ .../common-types/existing/v5/mobo.json | 38 + .../existing/v5/networksecurityperimeter.json | 433 ++++++++++ .../existing/v5/privatelinks.json | 190 ++++ .../common-types/existing/v5/types.json | 722 ++++++++++++++++ packages/samples/common-types/gen.ts | 103 +++ .../openapi/v3/managedidentity.json | 152 ++++ .../common-types/openapi/v3/privatelinks.json | 221 +++++ .../common-types/openapi/v3/types.json | 767 +++++++++++++++++ .../openapi/v4/customermanagedkeys.json | 119 +++ .../openapi/v4/managedidentity.json | 152 ++++ .../common-types/openapi/v4/privatelinks.json | 229 +++++ .../common-types/openapi/v4/types.json | 808 ++++++++++++++++++ .../openapi/v5/customermanagedkeys.json | 120 +++ .../openapi/v5/managedidentity.json | 153 ++++ .../common-types/openapi/v5/privatelinks.json | 229 +++++ .../common-types/openapi/v5/types.json | 808 ++++++++++++++++++ packages/samples/common-types/sort-openapi.ts | 37 + packages/samples/common-types/src/base.tsp | 28 + .../src/customer-managed-keys.tsp | 10 + .../common-types/src/managed-identity.tsp | 3 + .../common-types/src/private-links.tsp | 11 + packages/samples/common-types/src/types.tsp | 20 + packages/samples/package.json | 1 + packages/samples/tsconfig.json | 2 +- .../lib/common-types/common-types.tsp | 14 +- .../lib/common-types/versions.tsp | 16 + 38 files changed, 7715 insertions(+), 15 deletions(-) create mode 100644 packages/samples/common-types/existing/v3/managedidentity.json create mode 100644 packages/samples/common-types/existing/v3/privatelinks.json create mode 100644 packages/samples/common-types/existing/v3/types.json create mode 100644 packages/samples/common-types/existing/v4/customermanagedkeys.json create mode 100644 packages/samples/common-types/existing/v4/managedidentity.json create mode 100644 packages/samples/common-types/existing/v4/managedidentitywithdelegation.json create mode 100644 packages/samples/common-types/existing/v4/privatelinks.json create mode 100644 packages/samples/common-types/existing/v4/types.json create mode 100644 packages/samples/common-types/existing/v5/customermanagedkeys.json create mode 100644 packages/samples/common-types/existing/v5/managedidentity.json create mode 100644 packages/samples/common-types/existing/v5/managedidentitywithdelegation.json create mode 100644 packages/samples/common-types/existing/v5/mobo.json create mode 100644 packages/samples/common-types/existing/v5/networksecurityperimeter.json create mode 100644 packages/samples/common-types/existing/v5/privatelinks.json create mode 100644 packages/samples/common-types/existing/v5/types.json create mode 100644 packages/samples/common-types/gen.ts create mode 100644 packages/samples/common-types/openapi/v3/managedidentity.json create mode 100644 packages/samples/common-types/openapi/v3/privatelinks.json create mode 100644 packages/samples/common-types/openapi/v3/types.json create mode 100644 packages/samples/common-types/openapi/v4/customermanagedkeys.json create mode 100644 packages/samples/common-types/openapi/v4/managedidentity.json create mode 100644 packages/samples/common-types/openapi/v4/privatelinks.json create mode 100644 packages/samples/common-types/openapi/v4/types.json create mode 100644 packages/samples/common-types/openapi/v5/customermanagedkeys.json create mode 100644 packages/samples/common-types/openapi/v5/managedidentity.json create mode 100644 packages/samples/common-types/openapi/v5/privatelinks.json create mode 100644 packages/samples/common-types/openapi/v5/types.json create mode 100644 packages/samples/common-types/sort-openapi.ts create mode 100644 packages/samples/common-types/src/base.tsp create mode 100644 packages/samples/common-types/src/customer-managed-keys.tsp create mode 100644 packages/samples/common-types/src/managed-identity.tsp create mode 100644 packages/samples/common-types/src/private-links.tsp create mode 100644 packages/samples/common-types/src/types.tsp create mode 100644 packages/typespec-azure-resource-manager/lib/common-types/versions.tsp diff --git a/core b/core index 4ed71bf73f..0a7869f84f 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 4ed71bf73fe51292c52676849b8462ced86005fb +Subproject commit 0a7869f84f21af8a7b41ac16474161e03cc27a0b diff --git a/packages/samples/common-types/existing/v3/managedidentity.json b/packages/samples/common-types/existing/v3/managedidentity.json new file mode 100644 index 0000000000..53bcddff81 --- /dev/null +++ b/packages/samples/common-types/existing/v3/managedidentity.json @@ -0,0 +1,113 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "3.0" + }, + "paths": {}, + "definitions": { + "ManagedServiceIdentity": { + "type": "object", + "description": "Managed service identity (system assigned and/or user assigned identities)", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/ManagedServiceIdentityType" + }, + "userAssignedIdentities": { + "$ref": "#/definitions/UserAssignedIdentities" + } + }, + "required": [ + "type" + ] + }, + "ManagedServiceIdentityType": { + "type": "string", + "description": "Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).", + "enum": [ + "None", + "SystemAssigned", + "UserAssigned", + "SystemAssigned,UserAssigned" + ], + "x-ms-enum": { + "name": "ManagedServiceIdentityType", + "modelAsString": true + } + }, + "SystemAssignedServiceIdentity": { + "type": "object", + "description": "Managed service identity (either system assigned, or none)", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/SystemAssignedServiceIdentityType" + } + }, + "required": [ + "type" + ] + }, + "SystemAssignedServiceIdentityType": { + "type": "string", + "description": "Type of managed service identity (either system assigned, or none).", + "enum": [ + "None", + "SystemAssigned" + ], + "x-ms-enum": { + "name": "SystemAssignedServiceIdentityType", + "modelAsString": true + } + }, + "UserAssignedIdentities": { + "type": "object", + "title": "User-Assigned Identities", + "description": "The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.", + "additionalProperties": { + "$ref": "#/definitions/UserAssignedIdentity" + } + }, + "UserAssignedIdentity": { + "type": "object", + "description": "User assigned identity properties", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The principal ID of the assigned identity.", + "readOnly": true + }, + "clientId": { + "type": "string", + "format": "uuid", + "description": "The client ID of the assigned identity.", + "readOnly": true + } + } + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/existing/v3/privatelinks.json b/packages/samples/common-types/existing/v3/privatelinks.json new file mode 100644 index 0000000000..deb6847d32 --- /dev/null +++ b/packages/samples/common-types/existing/v3/privatelinks.json @@ -0,0 +1,182 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "3.0" + }, + "paths": {}, + "definitions": { + "PrivateEndpoint": { + "type": "object", + "description": "The Private Endpoint resource.", + "properties": { + "id": { + "type": "string", + "description": "The ARM identifier for Private Endpoint", + "readOnly": true + } + } + }, + "PrivateEndpointConnection": { + "type": "object", + "description": "The Private Endpoint Connection resource.", + "properties": { + "properties": { + "$ref": "#/definitions/PrivateEndpointConnectionProperties", + "description": "Resource properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "./types.json#/definitions/Resource" + } + ] + }, + "PrivateEndpointConnectionListResult": { + "type": "object", + "description": "List of private endpoint connection associated with the specified storage account", + "properties": { + "value": { + "type": "array", + "description": "Array of private endpoint connections", + "items": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + } + } + }, + "PrivateEndpointConnectionProperties": { + "type": "object", + "description": "Properties of the PrivateEndpointConnectProperties.", + "properties": { + "privateEndpoint": { + "$ref": "#/definitions/PrivateEndpoint", + "description": "The resource of private end point." + }, + "privateLinkServiceConnectionState": { + "$ref": "#/definitions/PrivateLinkServiceConnectionState", + "description": "A collection of information about the state of the connection between service consumer and provider." + }, + "provisioningState": { + "$ref": "#/definitions/PrivateEndpointConnectionProvisioningState", + "description": "The provisioning state of the private endpoint connection resource." + } + }, + "required": [ + "privateLinkServiceConnectionState" + ] + }, + "PrivateEndpointConnectionProvisioningState": { + "type": "string", + "description": "The current provisioning state.", + "enum": [ + "Succeeded", + "Creating", + "Deleting", + "Failed" + ], + "x-ms-enum": { + "name": "PrivateEndpointConnectionProvisioningState", + "modelAsString": true + }, + "readOnly": true + }, + "PrivateEndpointServiceConnectionStatus": { + "type": "string", + "description": "The private endpoint connection status.", + "enum": [ + "Pending", + "Approved", + "Rejected" + ], + "x-ms-enum": { + "name": "PrivateEndpointServiceConnectionStatus", + "modelAsString": true + } + }, + "PrivateLinkResource": { + "type": "object", + "description": "A private link resource", + "properties": { + "properties": { + "$ref": "#/definitions/PrivateLinkResourceProperties", + "description": "Resource properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "./types.json#/definitions/Resource" + } + ] + }, + "PrivateLinkResourceListResult": { + "type": "object", + "description": "A list of private link resources", + "properties": { + "value": { + "type": "array", + "description": "Array of private link resources", + "items": { + "$ref": "#/definitions/PrivateLinkResource" + } + } + } + }, + "PrivateLinkResourceProperties": { + "type": "object", + "description": "Properties of a private link resource.", + "properties": { + "groupId": { + "type": "string", + "description": "The private link resource group id.", + "readOnly": true + }, + "requiredMembers": { + "type": "array", + "description": "The private link resource required member names.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "requiredZoneNames": { + "type": "array", + "description": "The private link resource Private link DNS zone name.", + "items": { + "type": "string" + } + } + } + }, + "PrivateLinkServiceConnectionState": { + "type": "object", + "description": "A collection of information about the state of the connection between service consumer and provider.", + "properties": { + "status": { + "$ref": "#/definitions/PrivateEndpointServiceConnectionStatus", + "description": "Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service." + }, + "description": { + "type": "string", + "description": "The reason for approval/rejection of the connection." + }, + "actionsRequired": { + "type": "string", + "description": "A message indicating if changes on the service provider require any updates on the consumer." + } + } + } + }, + "parameters": { + "PrivateEndpointConnectionName": { + "name": "privateEndpointConnectionName", + "in": "path", + "description": "The name of the private endpoint connection associated with the Azure resource", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/existing/v3/types.json b/packages/samples/common-types/existing/v3/types.json new file mode 100644 index 0000000000..fcbccc1150 --- /dev/null +++ b/packages/samples/common-types/existing/v3/types.json @@ -0,0 +1,667 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "3.0" + }, + "paths": {}, + "definitions": { + "AzureEntityResource": { + "type": "object", + "title": "Entity Resource", + "description": "The resource model definition for an Azure Resource Manager resource with an etag.", + "properties": { + "etag": { + "type": "string", + "description": "Resource Etag.", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "x-ms-client-name": "AzureEntityResource" + }, + "CheckNameAvailabilityRequest": { + "type": "object", + "description": "The check availability request body.", + "properties": { + "name": { + "type": "string", + "description": "The name of the resource for which availability needs to be checked." + }, + "type": { + "type": "string", + "description": "The resource type." + } + } + }, + "CheckNameAvailabilityResponse": { + "type": "object", + "description": "The check availability result.", + "properties": { + "nameAvailable": { + "type": "boolean", + "description": "Indicates if the resource name is available." + }, + "reason": { + "type": "string", + "description": "The reason why the given name is not available.", + "enum": [ + "Invalid", + "AlreadyExists" + ], + "x-ms-enum": { + "name": "CheckNameAvailabilityReason", + "modelAsString": true + } + }, + "message": { + "type": "string", + "description": "Detailed reason why the given name is available." + } + } + }, + "ErrorAdditionalInfo": { + "type": "object", + "description": "The resource management error additional info.", + "properties": { + "type": { + "type": "string", + "description": "The additional info type.", + "readOnly": true + }, + "info": { + "type": "object", + "description": "The additional info.", + "readOnly": true + } + } + }, + "ErrorDetail": { + "type": "object", + "description": "The error detail.", + "properties": { + "code": { + "type": "string", + "description": "The error code.", + "readOnly": true + }, + "message": { + "type": "string", + "description": "The error message.", + "readOnly": true + }, + "target": { + "type": "string", + "description": "The error target.", + "readOnly": true + }, + "details": { + "type": "array", + "description": "The error details.", + "items": { + "$ref": "#/definitions/ErrorDetail" + }, + "readOnly": true, + "x-ms-identifiers": [ + "message", + "target" + ] + }, + "additionalInfo": { + "type": "array", + "description": "The error additional info.", + "items": { + "$ref": "#/definitions/ErrorAdditionalInfo" + }, + "readOnly": true, + "x-ms-identifiers": [] + } + } + }, + "ErrorResponse": { + "type": "object", + "title": "Error response", + "description": "Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.).", + "properties": { + "error": { + "$ref": "#/definitions/ErrorDetail", + "description": "The error object." + } + } + }, + "Identity": { + "type": "object", + "description": "Identity for the resource.", + "properties": { + "principalId": { + "type": "string", + "description": "The principal ID of resource identity.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "description": "The tenant ID of resource.", + "readOnly": true + }, + "type": { + "type": "string", + "description": "The identity type.", + "enum": [ + "SystemAssigned" + ], + "x-ms-enum": { + "name": "ResourceIdentityType", + "modelAsString": false + } + } + } + }, + "KeyVaultProperties": { + "type": "object", + "properties": { + "keyIdentifier": { + "type": "string", + "description": "Key vault uri to access the encryption key." + }, + "identity": { + "type": "string", + "description": "The client ID of the identity which will be used to access key vault." + } + } + }, + "Operation": { + "type": "object", + "title": "REST API Operation", + "description": "Details of a REST API operation, returned from the Resource Provider Operations API", + "properties": { + "name": { + "type": "string", + "description": "The name of the operation, as per Resource-Based Access Control (RBAC). Examples: \"Microsoft.Compute/virtualMachines/write\", \"Microsoft.Compute/virtualMachines/capture/action\"", + "readOnly": true + }, + "isDataAction": { + "type": "boolean", + "description": "Whether the operation applies to data-plane. This is \"true\" for data-plane operations and \"false\" for ARM/control-plane operations.", + "readOnly": true + }, + "display": { + "type": "object", + "description": "Localized display information for this particular operation.", + "properties": { + "provider": { + "type": "string", + "description": "The localized friendly form of the resource provider name, e.g. \"Microsoft Monitoring Insights\" or \"Microsoft Compute\".", + "readOnly": true + }, + "resource": { + "type": "string", + "description": "The localized friendly name of the resource type related to this operation. E.g. \"Virtual Machines\" or \"Job Schedule Collections\".", + "readOnly": true + }, + "operation": { + "type": "string", + "description": "The concise, localized friendly name for the operation; suitable for dropdowns. E.g. \"Create or Update Virtual Machine\", \"Restart Virtual Machine\".", + "readOnly": true + }, + "description": { + "type": "string", + "description": "The short, localized friendly description of the operation; suitable for tool tips and detailed views.", + "readOnly": true + } + } + }, + "origin": { + "type": "string", + "description": "The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is \"user,system\"", + "enum": [ + "user", + "system", + "user,system" + ], + "x-ms-enum": { + "name": "Origin", + "modelAsString": true + }, + "readOnly": true + }, + "actionType": { + "type": "string", + "description": "Enum. Indicates the action type. \"Internal\" refers to actions that are for internal only APIs.", + "enum": [ + "Internal" + ], + "x-ms-enum": { + "name": "ActionType", + "modelAsString": true + }, + "readOnly": true + } + } + }, + "OperationListResult": { + "type": "object", + "description": "A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to get the next set of results.", + "properties": { + "value": { + "type": "array", + "description": "List of operations supported by the resource provider", + "items": { + "$ref": "#/definitions/Operation" + }, + "readOnly": true, + "x-ms-identifiers": [ + "name" + ] + }, + "nextLink": { + "type": "string", + "description": "URL to get the next set of operation list results (if there are any).", + "readOnly": true + } + } + }, + "OperationStatusResult": { + "type": "object", + "description": "The current status of an async operation.", + "properties": { + "id": { + "type": "string", + "description": "Fully qualified ID for the async operation." + }, + "name": { + "type": "string", + "description": "Name of the async operation." + }, + "status": { + "type": "string", + "description": "Operation status." + }, + "percentComplete": { + "type": "number", + "description": "Percent of the operation that is complete.", + "minimum": 0, + "maximum": 100 + }, + "startTime": { + "type": "string", + "format": "date-time", + "description": "The start time of the operation." + }, + "endTime": { + "type": "string", + "format": "date-time", + "description": "The end time of the operation." + }, + "operations": { + "type": "array", + "description": "The operations list.", + "items": { + "$ref": "#/definitions/OperationStatusResult" + } + }, + "error": { + "$ref": "#/definitions/ErrorDetail", + "description": "If present, details of the operation error." + } + }, + "required": [ + "status" + ] + }, + "Plan": { + "type": "object", + "description": "Plan for the resource.", + "properties": { + "name": { + "type": "string", + "description": "A user defined name of the 3rd Party Artifact that is being procured." + }, + "publisher": { + "type": "string", + "description": "The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic" + }, + "product": { + "type": "string", + "description": "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. " + }, + "promotionCode": { + "type": "string", + "description": "A publisher provided promotion code as provisioned in Data Market for the said product/artifact." + }, + "version": { + "type": "string", + "description": "The version of the desired product/artifact." + } + }, + "required": [ + "name", + "publisher", + "product" + ] + }, + "ProxyResource": { + "type": "object", + "title": "Proxy Resource", + "description": "The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ] + }, + "Resource": { + "type": "object", + "title": "Resource", + "description": "Common fields that are returned in the response for all Azure Resource Manager resources", + "properties": { + "id": { + "type": "string", + "description": "Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of the resource", + "readOnly": true + }, + "type": { + "type": "string", + "description": "The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or \"Microsoft.Storage/storageAccounts\"", + "readOnly": true + }, + "systemData": { + "$ref": "#/definitions/systemData", + "type": "object", + "description": "Azure Resource Manager metadata containing createdBy and modifiedBy information.", + "readOnly": true + } + }, + "x-ms-azure-resource": true + }, + "ResourceModelWithAllowedPropertySet": { + "type": "object", + "description": "The resource model definition containing the full set of allowed properties for a resource. Except properties bag, there cannot be a top level property outside of this set.", + "properties": { + "managedBy": { + "type": "string", + "description": "The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.", + "x-ms-mutability": [ + "read", + "create", + "update" + ] + }, + "kind": { + "type": "string", + "description": "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.", + "pattern": "^[-\\w\\._,\\(\\)]+$", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "etag": { + "type": "string", + "description": "The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the normal etag convention. Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields. ", + "readOnly": true + }, + "identity": { + "allOf": [ + { + "$ref": "#/definitions/Identity" + } + ] + }, + "sku": { + "allOf": [ + { + "$ref": "#/definitions/Sku" + } + ] + }, + "plan": { + "allOf": [ + { + "$ref": "#/definitions/Plan" + } + ] + } + }, + "allOf": [ + { + "$ref": "#/definitions/TrackedResource" + } + ], + "x-ms-azure-resource": true + }, + "Sku": { + "type": "object", + "description": "The resource model definition representing SKU", + "properties": { + "name": { + "type": "string", + "description": "The name of the SKU. Ex - P3. It is typically a letter+number code" + }, + "tier": { + "$ref": "#/definitions/SkuTier" + }, + "size": { + "type": "string", + "description": "The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. " + }, + "family": { + "type": "string", + "description": "If the service has different generations of hardware, for the same SKU, then that can be captured here." + }, + "capacity": { + "type": "integer", + "format": "int32", + "description": "If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted." + } + }, + "required": [ + "name" + ] + }, + "SkuTier": { + "type": "string", + "description": "This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.", + "enum": [ + "Free", + "Basic", + "Standard", + "Premium" + ], + "x-ms-enum": { + "name": "SkuTier", + "modelAsString": false + } + }, + "TrackedResource": { + "type": "object", + "title": "Tracked Resource", + "description": "The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'", + "properties": { + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + }, + "x-ms-mutability": [ + "read", + "create", + "update" + ] + }, + "location": { + "type": "string", + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] + } + }, + "required": [ + "location" + ], + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ] + }, + "encryptionProperties": { + "type": "object", + "description": "Configuration of key for data encryption", + "properties": { + "status": { + "type": "string", + "description": "Indicates whether or not the encryption is enabled for container registry.", + "enum": [ + "enabled", + "disabled" + ], + "x-ms-enum": { + "name": "EncryptionStatus", + "modelAsString": true + } + }, + "keyVaultProperties": { + "$ref": "#/definitions/KeyVaultProperties", + "description": "Key vault properties." + } + } + }, + "locationData": { + "type": "object", + "description": "Metadata pertaining to the geographic location of the resource.", + "properties": { + "name": { + "type": "string", + "description": "A canonical name for the geographic or physical location.", + "maxLength": 256 + }, + "city": { + "type": "string", + "description": "The city or locality where the resource is located." + }, + "district": { + "type": "string", + "description": "The district, state, or province where the resource is located." + }, + "countryOrRegion": { + "type": "string", + "description": "The country or region where the resource is located" + } + }, + "required": [ + "name" + ] + }, + "systemData": { + "type": "object", + "description": "Metadata pertaining to creation and last modification of the resource.", + "properties": { + "createdBy": { + "type": "string", + "description": "The identity that created the resource." + }, + "createdByType": { + "type": "string", + "description": "The type of identity that created the resource.", + "enum": [ + "User", + "Application", + "ManagedIdentity", + "Key" + ], + "x-ms-enum": { + "name": "createdByType", + "modelAsString": true + } + }, + "createdAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp of resource creation (UTC)." + }, + "lastModifiedBy": { + "type": "string", + "description": "The identity that last modified the resource." + }, + "lastModifiedByType": { + "type": "string", + "description": "The type of identity that last modified the resource.", + "enum": [ + "User", + "Application", + "ManagedIdentity", + "Key" + ], + "x-ms-enum": { + "name": "createdByType", + "modelAsString": true + } + }, + "lastModifiedAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp of resource last modification (UTC)" + } + }, + "readOnly": true + } + }, + "parameters": { + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "The API version to use for this operation.", + "required": true, + "type": "string", + "minLength": 1 + }, + "LocationParameter": { + "name": "location", + "in": "path", + "description": "The name of Azure region.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method" + }, + "OperationIdParameter": { + "name": "operationId", + "in": "path", + "description": "The ID of an ongoing async operation.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method" + }, + "ResourceGroupNameParameter": { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group. The name is case insensitive.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 90, + "x-ms-parameter-location": "method" + }, + "SubscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "description": "The ID of the target subscription.", + "required": true, + "type": "string", + "minLength": 1 + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/existing/v4/customermanagedkeys.json b/packages/samples/common-types/existing/v4/customermanagedkeys.json new file mode 100644 index 0000000000..3416eaae4a --- /dev/null +++ b/packages/samples/common-types/existing/v4/customermanagedkeys.json @@ -0,0 +1,71 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "4.0" + }, + "paths": {}, + "definitions": { + "customerManagedKeyEncryption": { + "type": "object", + "description": "All Customer-managed key encryption properties for the resource.", + "properties": { + "keyEncryptionKeyIdentity": { + "type": "object", + "description": "All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault.", + "properties": { + "identityType": { + "type": "string", + "description": "Values can be systemAssignedIdentity or userAssignedIdentity", + "enum": [ + "systemAssignedIdentity", + "userAssignedIdentity", + "delegatedResourceIdentity" + ], + "x-ms-enum": { + "name": "IdentityType", + "modelAsString": true + } + }, + "userAssignedIdentityResourceId": { + "type": "string", + "format": "arm-id", + "description": "user assigned identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity and delegatedResourceIdentity." + }, + "delegatedIdentityClientId": { + "type": "string", + "format": "uuid", + "description": "delegated identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity and userAssignedIdentity - internal use only." + } + } + }, + "keyEncryptionKeyUrl": { + "type": "string", + "description": "key encryption key Url, versioned or non-versioned. Ex: https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 or https://contosovault.vault.azure.net/keys/contosokek." + } + } + }, + "encryption": { + "type": "object", + "description": "(Optional) Discouraged to include in resource definition. Only needed where it is possible to disable platform (AKA infrastructure) encryption. Azure SQL TDE is an example of this. Values are enabled and disabled.", + "properties": { + "infrastructureEncryption": { + "type": "string", + "description": "Values are enabled and disabled.", + "enum": [ + "enabled", + "disabled" + ], + "x-ms-enum": { + "name": "InfrastructureEncryption", + "modelAsString": true + } + }, + "customerManagedKeyEncryption": { + "$ref": "#/definitions/customerManagedKeyEncryption", + "description": "All Customer-managed key encryption properties for the resource." + } + } + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/existing/v4/managedidentity.json b/packages/samples/common-types/existing/v4/managedidentity.json new file mode 100644 index 0000000000..b2a79a0227 --- /dev/null +++ b/packages/samples/common-types/existing/v4/managedidentity.json @@ -0,0 +1,113 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "4.0" + }, + "paths": {}, + "definitions": { + "ManagedServiceIdentity": { + "type": "object", + "description": "Managed service identity (system assigned and/or user assigned identities)", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/ManagedServiceIdentityType" + }, + "userAssignedIdentities": { + "$ref": "#/definitions/UserAssignedIdentities" + } + }, + "required": [ + "type" + ] + }, + "ManagedServiceIdentityType": { + "type": "string", + "description": "Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).", + "enum": [ + "None", + "SystemAssigned", + "UserAssigned", + "SystemAssigned, UserAssigned" + ], + "x-ms-enum": { + "name": "ManagedServiceIdentityType", + "modelAsString": true + } + }, + "SystemAssignedServiceIdentity": { + "type": "object", + "description": "Managed service identity (either system assigned, or none)", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/SystemAssignedServiceIdentityType" + } + }, + "required": [ + "type" + ] + }, + "SystemAssignedServiceIdentityType": { + "type": "string", + "description": "Type of managed service identity (either system assigned, or none).", + "enum": [ + "None", + "SystemAssigned" + ], + "x-ms-enum": { + "name": "SystemAssignedServiceIdentityType", + "modelAsString": true + } + }, + "UserAssignedIdentities": { + "type": "object", + "title": "User-Assigned Identities", + "description": "The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.", + "additionalProperties": { + "$ref": "#/definitions/UserAssignedIdentity" + } + }, + "UserAssignedIdentity": { + "type": "object", + "description": "User assigned identity properties", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The principal ID of the assigned identity.", + "readOnly": true + }, + "clientId": { + "type": "string", + "format": "uuid", + "description": "The client ID of the assigned identity.", + "readOnly": true + } + } + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/existing/v4/managedidentitywithdelegation.json b/packages/samples/common-types/existing/v4/managedidentitywithdelegation.json new file mode 100644 index 0000000000..80df018be8 --- /dev/null +++ b/packages/samples/common-types/existing/v4/managedidentitywithdelegation.json @@ -0,0 +1,54 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "4.0" + }, + "paths": {}, + "definitions": { + "DelegatedResource": { + "type": "object", + "description": "Delegated resource properties - internal use only.", + "properties": { + "resourceId": { + "type": "string", + "description": "The ARM resource id of the delegated resource - internal use only." + }, + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The tenant id of the delegated resource - internal use only." + }, + "referralResource": { + "type": "string", + "description": "The delegation id of the referral delegation (optional) - internal use only." + }, + "location": { + "type": "string", + "description": "The source resource location - internal use only." + } + } + }, + "DelegatedResources": { + "type": "object", + "description": "The set of delegated resources. The delegated resources dictionary keys will be source resource internal ids - internal use only.", + "additionalProperties": { + "$ref": "#/definitions/DelegatedResource" + } + }, + "ManagedServiceIdentityWithDelegation": { + "type": "object", + "description": "Managed service identity (system assigned and/or user assigned identities and/or delegated identities) - internal use only.", + "properties": { + "delegatedResources": { + "$ref": "#/definitions/DelegatedResources" + } + }, + "allOf": [ + { + "$ref": "managedidentity.json#/definitions/ManagedServiceIdentity" + } + ] + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/existing/v4/privatelinks.json b/packages/samples/common-types/existing/v4/privatelinks.json new file mode 100644 index 0000000000..bb5da265a3 --- /dev/null +++ b/packages/samples/common-types/existing/v4/privatelinks.json @@ -0,0 +1,190 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "4.0" + }, + "paths": {}, + "definitions": { + "PrivateEndpoint": { + "type": "object", + "description": "The private endpoint resource.", + "properties": { + "id": { + "type": "string", + "description": "The ARM identifier for private endpoint.", + "readOnly": true + } + } + }, + "PrivateEndpointConnection": { + "type": "object", + "description": "The private endpoint connection resource.", + "properties": { + "properties": { + "$ref": "#/definitions/PrivateEndpointConnectionProperties", + "description": "Resource properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../v4/types.json#/definitions/Resource" + } + ] + }, + "PrivateEndpointConnectionListResult": { + "type": "object", + "description": "List of private endpoint connections associated with the specified resource.", + "properties": { + "value": { + "type": "array", + "description": "Array of private endpoint connections.", + "items": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + } + } + }, + "PrivateEndpointConnectionProperties": { + "type": "object", + "description": "Properties of the private endpoint connection.", + "properties": { + "groupIds": { + "type": "array", + "description": "The group ids for the private endpoint resource.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "privateEndpoint": { + "$ref": "#/definitions/PrivateEndpoint", + "description": "The private endpoint resource." + }, + "privateLinkServiceConnectionState": { + "$ref": "#/definitions/PrivateLinkServiceConnectionState", + "description": "A collection of information about the state of the connection between service consumer and provider." + }, + "provisioningState": { + "$ref": "#/definitions/PrivateEndpointConnectionProvisioningState", + "description": "The provisioning state of the private endpoint connection resource." + } + }, + "required": [ + "privateLinkServiceConnectionState" + ] + }, + "PrivateEndpointConnectionProvisioningState": { + "type": "string", + "description": "The current provisioning state.", + "enum": [ + "Succeeded", + "Creating", + "Deleting", + "Failed" + ], + "x-ms-enum": { + "name": "PrivateEndpointConnectionProvisioningState", + "modelAsString": true + }, + "readOnly": true + }, + "PrivateEndpointServiceConnectionStatus": { + "type": "string", + "description": "The private endpoint connection status.", + "enum": [ + "Pending", + "Approved", + "Rejected" + ], + "x-ms-enum": { + "name": "PrivateEndpointServiceConnectionStatus", + "modelAsString": true + } + }, + "PrivateLinkResource": { + "type": "object", + "description": "A private link resource.", + "properties": { + "properties": { + "$ref": "#/definitions/PrivateLinkResourceProperties", + "description": "Resource properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../v4/types.json#/definitions/Resource" + } + ] + }, + "PrivateLinkResourceListResult": { + "type": "object", + "description": "A list of private link resources.", + "properties": { + "value": { + "type": "array", + "description": "Array of private link resources", + "items": { + "$ref": "#/definitions/PrivateLinkResource" + } + } + } + }, + "PrivateLinkResourceProperties": { + "type": "object", + "description": "Properties of a private link resource.", + "properties": { + "groupId": { + "type": "string", + "description": "The private link resource group id.", + "readOnly": true + }, + "requiredMembers": { + "type": "array", + "description": "The private link resource required member names.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "requiredZoneNames": { + "type": "array", + "description": "The private link resource private link DNS zone name.", + "items": { + "type": "string" + } + } + } + }, + "PrivateLinkServiceConnectionState": { + "type": "object", + "description": "A collection of information about the state of the connection between service consumer and provider.", + "properties": { + "status": { + "$ref": "#/definitions/PrivateEndpointServiceConnectionStatus", + "description": "Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service." + }, + "description": { + "type": "string", + "description": "The reason for approval/rejection of the connection." + }, + "actionsRequired": { + "type": "string", + "description": "A message indicating if changes on the service provider require any updates on the consumer." + } + } + } + }, + "parameters": { + "PrivateEndpointConnectionName": { + "name": "privateEndpointConnectionName", + "in": "path", + "description": "The name of the private endpoint connection associated with the Azure resource.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/existing/v4/types.json b/packages/samples/common-types/existing/v4/types.json new file mode 100644 index 0000000000..c79dcd23d6 --- /dev/null +++ b/packages/samples/common-types/existing/v4/types.json @@ -0,0 +1,716 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "4.0" + }, + "paths": {}, + "definitions": { + "AzureEntityResource": { + "type": "object", + "title": "Entity Resource", + "description": "The resource model definition for an Azure Resource Manager resource with an etag.", + "properties": { + "etag": { + "type": "string", + "description": "Resource Etag.", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "x-ms-client-name": "AzureEntityResource" + }, + "CheckNameAvailabilityRequest": { + "type": "object", + "description": "The check availability request body.", + "properties": { + "name": { + "type": "string", + "description": "The name of the resource for which availability needs to be checked." + }, + "type": { + "type": "string", + "description": "The resource type." + } + } + }, + "CheckNameAvailabilityResponse": { + "type": "object", + "description": "The check availability result.", + "properties": { + "nameAvailable": { + "type": "boolean", + "description": "Indicates if the resource name is available." + }, + "reason": { + "type": "string", + "description": "The reason why the given name is not available.", + "enum": [ + "Invalid", + "AlreadyExists" + ], + "x-ms-enum": { + "name": "CheckNameAvailabilityReason", + "modelAsString": true + } + }, + "message": { + "type": "string", + "description": "Detailed reason why the given name is available." + } + } + }, + "ErrorAdditionalInfo": { + "type": "object", + "description": "The resource management error additional info.", + "properties": { + "type": { + "type": "string", + "description": "The additional info type.", + "readOnly": true + }, + "info": { + "type": "object", + "description": "The additional info.", + "readOnly": true + } + } + }, + "ErrorDetail": { + "type": "object", + "description": "The error detail.", + "properties": { + "code": { + "type": "string", + "description": "The error code.", + "readOnly": true + }, + "message": { + "type": "string", + "description": "The error message.", + "readOnly": true + }, + "target": { + "type": "string", + "description": "The error target.", + "readOnly": true + }, + "details": { + "type": "array", + "description": "The error details.", + "items": { + "$ref": "#/definitions/ErrorDetail" + }, + "readOnly": true, + "x-ms-identifiers": [ + "message", + "target" + ] + }, + "additionalInfo": { + "type": "array", + "description": "The error additional info.", + "items": { + "$ref": "#/definitions/ErrorAdditionalInfo" + }, + "readOnly": true, + "x-ms-identifiers": [] + } + } + }, + "ErrorResponse": { + "type": "object", + "title": "Error response", + "description": "Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.).", + "properties": { + "error": { + "$ref": "#/definitions/ErrorDetail", + "description": "The error object." + } + } + }, + "Identity": { + "type": "object", + "description": "Identity for the resource.", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The principal ID of resource identity. The value must be an UUID.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The tenant ID of resource. The value must be an UUID.", + "readOnly": true + }, + "type": { + "type": "string", + "description": "The identity type.", + "enum": [ + "SystemAssigned" + ], + "x-ms-enum": { + "name": "ResourceIdentityType", + "modelAsString": false + } + } + } + }, + "KeyVaultProperties": { + "type": "object", + "properties": { + "keyIdentifier": { + "type": "string", + "description": "Key vault uri to access the encryption key." + }, + "identity": { + "type": "string", + "description": "The client ID of the identity which will be used to access key vault." + } + } + }, + "Operation": { + "type": "object", + "title": "REST API Operation", + "description": "Details of a REST API operation, returned from the Resource Provider Operations API", + "properties": { + "name": { + "type": "string", + "description": "The name of the operation, as per Resource-Based Access Control (RBAC). Examples: \"Microsoft.Compute/virtualMachines/write\", \"Microsoft.Compute/virtualMachines/capture/action\"", + "readOnly": true + }, + "isDataAction": { + "type": "boolean", + "description": "Whether the operation applies to data-plane. This is \"true\" for data-plane operations and \"false\" for ARM/control-plane operations.", + "readOnly": true + }, + "display": { + "type": "object", + "description": "Localized display information for this particular operation.", + "properties": { + "provider": { + "type": "string", + "description": "The localized friendly form of the resource provider name, e.g. \"Microsoft Monitoring Insights\" or \"Microsoft Compute\".", + "readOnly": true + }, + "resource": { + "type": "string", + "description": "The localized friendly name of the resource type related to this operation. E.g. \"Virtual Machines\" or \"Job Schedule Collections\".", + "readOnly": true + }, + "operation": { + "type": "string", + "description": "The concise, localized friendly name for the operation; suitable for dropdowns. E.g. \"Create or Update Virtual Machine\", \"Restart Virtual Machine\".", + "readOnly": true + }, + "description": { + "type": "string", + "description": "The short, localized friendly description of the operation; suitable for tool tips and detailed views.", + "readOnly": true + } + } + }, + "origin": { + "type": "string", + "description": "The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is \"user,system\"", + "enum": [ + "user", + "system", + "user,system" + ], + "x-ms-enum": { + "name": "Origin", + "modelAsString": true + }, + "readOnly": true + }, + "actionType": { + "type": "string", + "description": "Enum. Indicates the action type. \"Internal\" refers to actions that are for internal only APIs.", + "enum": [ + "Internal" + ], + "x-ms-enum": { + "name": "ActionType", + "modelAsString": true + }, + "readOnly": true + } + } + }, + "OperationListResult": { + "type": "object", + "description": "A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to get the next set of results.", + "properties": { + "value": { + "type": "array", + "description": "List of operations supported by the resource provider", + "items": { + "$ref": "#/definitions/Operation" + }, + "readOnly": true, + "x-ms-identifiers": [ + "name" + ] + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "URL to get the next set of operation list results (if there are any).", + "readOnly": true + } + } + }, + "OperationStatusResult": { + "type": "object", + "description": "The current status of an async operation.", + "properties": { + "id": { + "type": "string", + "description": "Fully qualified ID for the async operation." + }, + "name": { + "type": "string", + "description": "Name of the async operation." + }, + "status": { + "type": "string", + "description": "Operation status." + }, + "percentComplete": { + "type": "number", + "description": "Percent of the operation that is complete.", + "minimum": 0, + "maximum": 100 + }, + "startTime": { + "type": "string", + "format": "date-time", + "description": "The start time of the operation." + }, + "endTime": { + "type": "string", + "format": "date-time", + "description": "The end time of the operation." + }, + "operations": { + "type": "array", + "description": "The operations list.", + "items": { + "$ref": "#/definitions/OperationStatusResult" + } + }, + "error": { + "$ref": "#/definitions/ErrorDetail", + "description": "If present, details of the operation error." + } + }, + "required": [ + "status" + ] + }, + "Plan": { + "type": "object", + "description": "Plan for the resource.", + "properties": { + "name": { + "type": "string", + "description": "A user defined name of the 3rd Party Artifact that is being procured." + }, + "publisher": { + "type": "string", + "description": "The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic" + }, + "product": { + "type": "string", + "description": "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. " + }, + "promotionCode": { + "type": "string", + "description": "A publisher provided promotion code as provisioned in Data Market for the said product/artifact." + }, + "version": { + "type": "string", + "description": "The version of the desired product/artifact." + } + }, + "required": [ + "name", + "publisher", + "product" + ] + }, + "ProxyResource": { + "type": "object", + "title": "Proxy Resource", + "description": "The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ] + }, + "Resource": { + "type": "object", + "title": "Resource", + "description": "Common fields that are returned in the response for all Azure Resource Manager resources", + "properties": { + "id": { + "type": "string", + "format": "arm-id", + "description": "Fully qualified resource ID for the resource. E.g. \"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}\"", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of the resource", + "readOnly": true + }, + "type": { + "type": "string", + "description": "The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or \"Microsoft.Storage/storageAccounts\"", + "readOnly": true + }, + "systemData": { + "$ref": "#/definitions/systemData", + "type": "object", + "description": "Azure Resource Manager metadata containing createdBy and modifiedBy information.", + "readOnly": true + } + }, + "x-ms-azure-resource": true + }, + "ResourceModelWithAllowedPropertySet": { + "type": "object", + "description": "The resource model definition containing the full set of allowed properties for a resource. Except properties bag, there cannot be a top level property outside of this set.", + "properties": { + "managedBy": { + "type": "string", + "description": "The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.", + "x-ms-mutability": [ + "read", + "create", + "update" + ] + }, + "kind": { + "type": "string", + "description": "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type. E.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.", + "pattern": "^[-\\w\\._,\\(\\)]+$", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "etag": { + "type": "string", + "description": "The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the normal etag convention. Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields. ", + "readOnly": true + }, + "identity": { + "allOf": [ + { + "$ref": "#/definitions/Identity" + } + ] + }, + "sku": { + "allOf": [ + { + "$ref": "#/definitions/Sku" + } + ] + }, + "plan": { + "allOf": [ + { + "$ref": "#/definitions/Plan" + } + ] + } + }, + "allOf": [ + { + "$ref": "#/definitions/TrackedResource" + } + ], + "x-ms-azure-resource": true + }, + "Sku": { + "type": "object", + "description": "The resource model definition representing SKU", + "properties": { + "name": { + "type": "string", + "description": "The name of the SKU. E.g. P3. It is typically a letter+number code" + }, + "tier": { + "$ref": "#/definitions/SkuTier" + }, + "size": { + "type": "string", + "description": "The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. " + }, + "family": { + "type": "string", + "description": "If the service has different generations of hardware, for the same SKU, then that can be captured here." + }, + "capacity": { + "type": "integer", + "format": "int32", + "description": "If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted." + } + }, + "required": [ + "name" + ] + }, + "SkuTier": { + "type": "string", + "description": "This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.", + "enum": [ + "Free", + "Basic", + "Standard", + "Premium" + ], + "x-ms-enum": { + "name": "SkuTier", + "modelAsString": false + } + }, + "TrackedResource": { + "type": "object", + "title": "Tracked Resource", + "description": "The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'", + "properties": { + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + }, + "x-ms-mutability": [ + "read", + "create", + "update" + ] + }, + "location": { + "type": "string", + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] + } + }, + "required": [ + "location" + ], + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ] + }, + "encryptionProperties": { + "type": "object", + "description": "Configuration of key for data encryption", + "properties": { + "status": { + "type": "string", + "description": "Indicates whether or not the encryption is enabled for container registry.", + "enum": [ + "enabled", + "disabled" + ], + "x-ms-enum": { + "name": "EncryptionStatus", + "modelAsString": true + } + }, + "keyVaultProperties": { + "$ref": "#/definitions/KeyVaultProperties", + "description": "Key vault properties." + } + } + }, + "locationData": { + "type": "object", + "description": "Metadata pertaining to the geographic location of the resource.", + "properties": { + "name": { + "type": "string", + "description": "A canonical name for the geographic or physical location.", + "maxLength": 256 + }, + "city": { + "type": "string", + "description": "The city or locality where the resource is located." + }, + "district": { + "type": "string", + "description": "The district, state, or province where the resource is located." + }, + "countryOrRegion": { + "type": "string", + "description": "The country or region where the resource is located" + } + }, + "required": [ + "name" + ] + }, + "systemData": { + "type": "object", + "description": "Metadata pertaining to creation and last modification of the resource.", + "properties": { + "createdBy": { + "type": "string", + "description": "The identity that created the resource." + }, + "createdByType": { + "type": "string", + "description": "The type of identity that created the resource.", + "enum": [ + "User", + "Application", + "ManagedIdentity", + "Key" + ], + "x-ms-enum": { + "name": "createdByType", + "modelAsString": true + } + }, + "createdAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp of resource creation (UTC)." + }, + "lastModifiedBy": { + "type": "string", + "description": "The identity that last modified the resource." + }, + "lastModifiedByType": { + "type": "string", + "description": "The type of identity that last modified the resource.", + "enum": [ + "User", + "Application", + "ManagedIdentity", + "Key" + ], + "x-ms-enum": { + "name": "createdByType", + "modelAsString": true + } + }, + "lastModifiedAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp of resource last modification (UTC)" + } + }, + "readOnly": true + } + }, + "parameters": { + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "The API version to use for this operation.", + "required": true, + "type": "string", + "minLength": 1 + }, + "If-Match": { + "name": "ifMatch", + "in": "header", + "description": "The If-Match header that makes a request conditional.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "If-None-Match": { + "name": "ifNoneMatch", + "in": "header", + "description": "The If-None-Match header that makes a request conditional.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "LocationParameter": { + "name": "location", + "in": "path", + "description": "The name of the Azure region.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method" + }, + "ManagementGroupNameParameter": { + "name": "managementGroupName", + "in": "path", + "description": "The name of the management group. The name is case insensitive.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 90, + "x-ms-parameter-location": "method" + }, + "OperationIdParameter": { + "name": "operationId", + "in": "path", + "description": "The ID of an ongoing async operation.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method" + }, + "ResourceGroupNameParameter": { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group. The name is case insensitive.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 90, + "x-ms-parameter-location": "method" + }, + "ScopeParameter": { + "name": "scope", + "in": "path", + "description": "The scope at which the operation is performed.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method", + "x-ms-skip-url-encoding": true + }, + "SubscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "description": "The ID of the target subscription. The value must be an UUID.", + "required": true, + "type": "string", + "format": "uuid" + }, + "TenantIdParameter": { + "name": "tenantId", + "in": "path", + "description": "The Azure tenant ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000)", + "required": true, + "type": "string", + "format": "uuid", + "x-ms-parameter-location": "method" + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/existing/v5/customermanagedkeys.json b/packages/samples/common-types/existing/v5/customermanagedkeys.json new file mode 100644 index 0000000000..a09359d5a4 --- /dev/null +++ b/packages/samples/common-types/existing/v5/customermanagedkeys.json @@ -0,0 +1,68 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "5.0" + }, + "paths": {}, + "definitions": { + "encryption": { + "type": "object", + "description": "All encryption configuration for a resource.", + "properties": { + "infrastructureEncryption": { + "type": "string", + "description": "(Optional) Discouraged to include in resource definition. Only needed where it is possible to disable platform (AKA infrastructure) encryption. Azure SQL TDE is an example of this. Values are enabled and disabled.", + "enum": [ + "enabled", + "disabled" + ], + "x-ms-enum": { + "name": "InfrastructureEncryption", + "modelAsString": true + } + }, + "customerManagedKeyEncryption": { + "type": "object", + "description": "All Customer-managed key encryption properties for the resource.", + "properties": { + "keyEncryptionKeyIdentity": { + "type": "object", + "description": "All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault.", + "properties": { + "identityType": { + "type": "string", + "description": "The type of identity to use. Values can be systemAssignedIdentity, userAssignedIdentity, or delegatedResourceIdentity.", + "enum": [ + "systemAssignedIdentity", + "userAssignedIdentity", + "delegatedResourceIdentity" + ] + }, + "userAssignedIdentityResourceId": { + "type": "string", + "format": "arm-id", + "description": "User assigned identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity." + }, + "federatedClientId": { + "type": "string", + "format": "uuid", + "description": "application client identity to use for accessing key encryption key Url in a different tenant. Ex: f83c6b1b-4d34-47e4-bb34-9d83df58b540" + }, + "delegatedIdentityClientId": { + "type": "string", + "format": "uuid", + "description": "delegated identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity and userAssignedIdentity - internal use only." + } + } + }, + "keyEncryptionKeyUrl": { + "type": "string", + "description": "key encryption key Url, versioned or unversioned. Ex: https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 or https://contosovault.vault.azure.net/keys/contosokek." + } + } + } + } + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/existing/v5/managedidentity.json b/packages/samples/common-types/existing/v5/managedidentity.json new file mode 100644 index 0000000000..5ced64fa07 --- /dev/null +++ b/packages/samples/common-types/existing/v5/managedidentity.json @@ -0,0 +1,114 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "5.0" + }, + "paths": {}, + "definitions": { + "ManagedServiceIdentity": { + "type": "object", + "description": "Managed service identity (system assigned and/or user assigned identities)", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/ManagedServiceIdentityType" + }, + "userAssignedIdentities": { + "$ref": "#/definitions/UserAssignedIdentities" + } + }, + "required": [ + "type" + ] + }, + "ManagedServiceIdentityType": { + "type": "string", + "description": "Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).", + "enum": [ + "None", + "SystemAssigned", + "UserAssigned", + "SystemAssigned,UserAssigned" + ], + "x-ms-enum": { + "name": "ManagedServiceIdentityType", + "modelAsString": true + } + }, + "SystemAssignedServiceIdentity": { + "type": "object", + "description": "Managed service identity (either system assigned, or none)", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/SystemAssignedServiceIdentityType" + } + }, + "required": [ + "type" + ] + }, + "SystemAssignedServiceIdentityType": { + "type": "string", + "description": "Type of managed service identity (either system assigned, or none).", + "enum": [ + "None", + "SystemAssigned" + ], + "x-ms-enum": { + "name": "SystemAssignedServiceIdentityType", + "modelAsString": true + } + }, + "UserAssignedIdentities": { + "type": "object", + "title": "User-Assigned Identities", + "description": "The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.", + "additionalProperties": { + "$ref": "#/definitions/UserAssignedIdentity", + "x-nullable": true + } + }, + "UserAssignedIdentity": { + "type": "object", + "description": "User assigned identity properties", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The principal ID of the assigned identity.", + "readOnly": true + }, + "clientId": { + "type": "string", + "format": "uuid", + "description": "The client ID of the assigned identity.", + "readOnly": true + } + } + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/existing/v5/managedidentitywithdelegation.json b/packages/samples/common-types/existing/v5/managedidentitywithdelegation.json new file mode 100644 index 0000000000..a00f030029 --- /dev/null +++ b/packages/samples/common-types/existing/v5/managedidentitywithdelegation.json @@ -0,0 +1,54 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "5.0" + }, + "paths": {}, + "definitions": { + "DelegatedResource": { + "type": "object", + "description": "Delegated resource properties - internal use only.", + "properties": { + "resourceId": { + "type": "string", + "description": "The ARM resource id of the delegated resource - internal use only." + }, + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The tenant id of the delegated resource - internal use only." + }, + "referralResource": { + "type": "string", + "description": "The delegation id of the referral delegation (optional) - internal use only." + }, + "location": { + "type": "string", + "description": "The source resource location - internal use only." + } + } + }, + "DelegatedResources": { + "type": "object", + "description": "The set of delegated resources. The delegated resources dictionary keys will be source resource internal ids - internal use only.", + "additionalProperties": { + "$ref": "#/definitions/DelegatedResource" + } + }, + "ManagedServiceIdentityWithDelegation": { + "type": "object", + "description": "Managed service identity (system assigned and/or user assigned identities and/or delegated identities) - internal use only.", + "properties": { + "delegatedResources": { + "$ref": "#/definitions/DelegatedResources" + } + }, + "allOf": [ + { + "$ref": "managedidentity.json#/definitions/ManagedServiceIdentity" + } + ] + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/existing/v5/mobo.json b/packages/samples/common-types/existing/v5/mobo.json new file mode 100644 index 0000000000..0c3652c3b1 --- /dev/null +++ b/packages/samples/common-types/existing/v5/mobo.json @@ -0,0 +1,38 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "5.0" + }, + "paths": {}, + "definitions": { + "ManagedOnBehalfOfConfiguration": { + "type": "object", + "description": "Managed-On-Behalf-Of configuration properties. This configuration exists for the resources where a resource provider manages those resources on behalf of the resource owner.", + "properties": { + "moboBrokerResources": { + "type": "array", + "description": "Managed-On-Behalf-Of broker resources", + "items": { + "$ref": "#/definitions/MoboBrokerResource" + }, + "x-ms-identifiers": [ + "id" + ] + } + }, + "readOnly": true + }, + "MoboBrokerResource": { + "type": "object", + "description": "Managed-On-Behalf-Of broker resource. This resource is created by the Resource Provider to manage some resources on behalf of the user.", + "properties": { + "id": { + "type": "string", + "format": "arm-id", + "description": "Resource identifier of a Managed-On-Behalf-Of broker resource" + } + } + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/existing/v5/networksecurityperimeter.json b/packages/samples/common-types/existing/v5/networksecurityperimeter.json new file mode 100644 index 0000000000..86afb365ef --- /dev/null +++ b/packages/samples/common-types/existing/v5/networksecurityperimeter.json @@ -0,0 +1,433 @@ +{ + "swagger": "2.0", + "info": { + "title": "Network security perimeter common type definitions", + "version": "0000-00-00", + "description": "Common types for network security perimeters based on a shared API specification. These common, versioned type definitions are intended for resource providers (RPs, except Network RP) to use, and reuse, for defining their own API versions that share a set of type definitions that is consistent across providers.", + "contact": {} + }, + "schemes": [ + "https" + ], + "host": "management.azure.com", + "paths": {}, + "definitions": { + "AccessRule": { + "type": "object", + "description": "Access rule in a network security perimeter configuration profile", + "properties": { + "name": { + "type": "string", + "description": "Name of the access rule" + }, + "properties": { + "$ref": "#/definitions/AccessRuleProperties" + } + } + }, + "AccessRuleDirection": { + "type": "string", + "description": "Direction of Access Rule", + "enum": [ + "Inbound", + "Outbound" + ], + "x-ms-enum": { + "name": "AccessRuleDirection", + "modelAsString": true, + "values": [ + { + "value": "Inbound", + "description": "Applies to inbound network traffic to the secured resources." + }, + { + "value": "Outbound", + "description": "Applies to outbound network traffic from the secured resources" + } + ] + } + }, + "AccessRuleProperties": { + "type": "object", + "description": "Properties of Access Rule", + "properties": { + "direction": { + "$ref": "#/definitions/AccessRuleDirection" + }, + "addressPrefixes": { + "type": "array", + "description": "Address prefixes in the CIDR format for inbound rules", + "items": { + "type": "string", + "description": "An IP address prefix (CIDR) for inbound rules" + } + }, + "subscriptions": { + "type": "array", + "description": "Subscriptions for inbound rules", + "items": { + "type": "object", + "description": "Subscription identifiers", + "properties": { + "id": { + "type": "string", + "format": "arm-id", + "description": "The fully qualified Azure resource ID of the subscription e.g. ('/subscriptions/00000000-0000-0000-0000-000000000000') " + } + } + } + }, + "networkSecurityPerimeters": { + "type": "array", + "description": "Network security perimeters for inbound rules", + "items": { + "$ref": "#/definitions/NetworkSecurityPerimeter" + } + }, + "fullyQualifiedDomainNames": { + "type": "array", + "description": "Fully qualified domain names (FQDN) for outbound rules", + "items": { + "type": "string", + "description": "A fully qualified domain name (FQDN)" + } + }, + "emailAddresses": { + "type": "array", + "description": "Email addresses for outbound rules", + "items": { + "type": "string", + "description": "An email address" + } + }, + "phoneNumbers": { + "type": "array", + "description": "Phone numbers for outbound rules", + "items": { + "type": "string", + "description": "A phone number" + } + } + } + }, + "NetworkSecurityPerimeter": { + "type": "object", + "description": "Information about a network security perimeter (NSP)", + "properties": { + "id": { + "type": "string", + "format": "arm-id", + "description": "Fully qualified Azure resource ID of the NSP resource", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "resourceType": "Microsoft.Network/networkSecurityPerimeters" + } + ] + } + }, + "perimeterGuid": { + "type": "string", + "format": "uuid", + "description": "Universal unique ID (UUID) of the network security perimeter" + }, + "location": { + "type": "string", + "description": "Location of the network security perimeter", + "x-ms-mutability": [ + "create", + "read" + ] + } + } + }, + "NetworkSecurityPerimeterConfiguration": { + "type": "object", + "description": "Network security perimeter (NSP) configuration resource", + "properties": { + "properties": { + "$ref": "#/definitions/NetworkSecurityPerimeterConfigurationProperties" + } + }, + "allOf": [ + { + "$ref": "./types.json#/definitions/ProxyResource" + } + ] + }, + "NetworkSecurityPerimeterConfigurationListResult": { + "type": "object", + "description": "Result of a list NSP (network security perimeter) configurations request.", + "properties": { + "value": { + "type": "array", + "description": "Array of network security perimeter results.", + "items": { + "$ref": "#/definitions/NetworkSecurityPerimeterConfiguration" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link used to get the next page of results." + } + } + }, + "NetworkSecurityPerimeterConfigurationProperties": { + "type": "object", + "description": "Network security configuration properties.", + "properties": { + "provisioningState": { + "$ref": "#/definitions/NetworkSecurityPerimeterConfigurationProvisioningState", + "readOnly": true + }, + "provisioningIssues": { + "type": "array", + "description": "List of provisioning issues, if any", + "items": { + "$ref": "#/definitions/ProvisioningIssue" + }, + "readOnly": true, + "x-ms-identifiers": [] + }, + "networkSecurityPerimeter": { + "$ref": "#/definitions/NetworkSecurityPerimeter" + }, + "resourceAssociation": { + "$ref": "#/definitions/ResourceAssociation" + }, + "profile": { + "$ref": "#/definitions/NetworkSecurityProfile" + } + } + }, + "NetworkSecurityPerimeterConfigurationProvisioningState": { + "type": "string", + "description": "Provisioning state of a network security perimeter configuration that is being created or updated.", + "enum": [ + "Succeeded", + "Creating", + "Updating", + "Deleting", + "Accepted", + "Failed", + "Canceled" + ], + "x-ms-enum": { + "name": "NetworkSecurityPerimeterConfigurationProvisioningState", + "modelAsString": true + }, + "readOnly": true + }, + "NetworkSecurityProfile": { + "type": "object", + "description": "Network security perimeter configuration profile", + "properties": { + "name": { + "type": "string", + "description": "Name of the profile" + }, + "accessRulesVersion": { + "type": "integer", + "format": "int32", + "description": "Current access rules version" + }, + "accessRules": { + "type": "array", + "description": "List of Access Rules", + "items": { + "$ref": "#/definitions/AccessRule" + }, + "x-ms-identifiers": [ + "name" + ] + }, + "diagnosticSettingsVersion": { + "type": "integer", + "format": "int32", + "description": "Current diagnostic settings version" + }, + "enabledLogCategories": { + "type": "array", + "description": "List of log categories that are enabled", + "items": { + "type": "string", + "description": "Log category" + } + } + } + }, + "ProvisioningIssue": { + "type": "object", + "description": "Describes a provisioning issue for a network security perimeter configuration", + "properties": { + "name": { + "type": "string", + "description": "Name of the issue", + "readOnly": true + }, + "properties": { + "$ref": "#/definitions/ProvisioningIssueProperties" + } + }, + "readOnly": true + }, + "ProvisioningIssueProperties": { + "type": "object", + "description": "Details of a provisioning issue for a network security perimeter (NSP) configuration. Resource providers should generate separate provisioning issue elements for each separate issue detected, and include a meaningful and distinctive description, as well as any appropriate suggestedResourceIds and suggestedAccessRules", + "properties": { + "issueType": { + "type": "string", + "description": "Type of issue", + "enum": [ + "Unknown", + "ConfigurationPropagationFailure", + "MissingPerimeterConfiguration", + "MissingIdentityConfiguration" + ], + "x-ms-enum": { + "name": "IssueType", + "modelAsString": true, + "values": [ + { + "value": "Unknown", + "description": "Unknown issue type" + }, + { + "value": "ConfigurationPropagationFailure", + "description": "An error occurred while applying the network security perimeter (NSP) configuration." + }, + { + "value": "MissingPerimeterConfiguration", + "description": "A network connectivity issue is happening on the resource which could be addressed either by adding new resources to the network security perimeter (NSP) or by modifying access rules." + }, + { + "value": "MissingIdentityConfiguration", + "description": "An managed identity hasn't been associated with the resource. The resource will still be able to validate inbound traffic from the network security perimeter (NSP) or matching inbound access rules, but it won't be able to perform outbound access as a member of the NSP." + } + ] + }, + "readOnly": true + }, + "severity": { + "type": "string", + "description": "Severity of the issue.", + "enum": [ + "Warning", + "Error" + ], + "x-ms-enum": { + "name": "Severity", + "modelAsString": true + }, + "readOnly": true + }, + "description": { + "type": "string", + "description": "Description of the issue", + "readOnly": true + }, + "suggestedResourceIds": { + "type": "array", + "description": "Fully qualified resource IDs of suggested resources that can be associated to the network security perimeter (NSP) to remediate the issue.", + "items": { + "type": "string", + "format": "arm-id", + "description": "Fully qualified resource ID of the suggested resource", + "readOnly": true + }, + "readOnly": true + }, + "suggestedAccessRules": { + "type": "array", + "description": "Access rules that can be added to the network security profile (NSP) to remediate the issue.", + "items": { + "$ref": "#/definitions/AccessRule" + }, + "readOnly": true, + "x-ms-identifiers": [] + } + }, + "readOnly": true + }, + "PublicNetworkAccess": { + "type": "string", + "description": "Allow, disallow, or let network security perimeter configuration control public network access to the protected resource. Value is optional but if passed in, it must be 'Enabled', 'Disabled' or 'SecuredByPerimeter'.", + "enum": [ + "Enabled", + "Disabled", + "SecuredByPerimeter" + ], + "x-ms-enum": { + "name": "PublicNetworkAccess", + "modelAsString": true, + "values": [ + { + "value": "Enabled", + "description": "Allows public network access to the resource" + }, + { + "value": "Disabled", + "description": "Disallows public network access to the resource" + }, + { + "value": "SecuredByPerimeter", + "description": "The network security perimeter configuration rules allow or disallow public network access to the resource. Requires an associated network security perimeter." + } + ] + } + }, + "ResourceAssociation": { + "type": "object", + "description": "Information about resource association", + "properties": { + "name": { + "type": "string", + "description": "Name of the resource association" + }, + "accessMode": { + "$ref": "#/definitions/ResourceAssociationAccessMode" + } + } + }, + "ResourceAssociationAccessMode": { + "type": "string", + "description": "Access mode of the resource association", + "enum": [ + "Enforced", + "Learning", + "Audit" + ], + "x-ms-enum": { + "name": "ResourceAssociationAccessMode", + "modelAsString": true, + "values": [ + { + "value": "Enforced", + "description": "Enforced access mode - traffic to the resource that failed access checks is blocked" + }, + { + "value": "Learning", + "description": "Learning access mode - traffic to the resource is enabled for analysis but not blocked" + }, + { + "value": "Audit", + "description": "Audit access mode - traffic to the resource that fails access checks is logged but not blocked" + } + ] + } + } + }, + "parameters": { + "NetworkSecurityPerimeterConfigurationNameParameter": { + "name": "networkSecurityPerimeterConfigurationName", + "in": "path", + "description": "The name for a network security perimeter configuration", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 512, + "x-ms-parameter-location": "method" + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/existing/v5/privatelinks.json b/packages/samples/common-types/existing/v5/privatelinks.json new file mode 100644 index 0000000000..bbe245ff9c --- /dev/null +++ b/packages/samples/common-types/existing/v5/privatelinks.json @@ -0,0 +1,190 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "5.0" + }, + "paths": {}, + "definitions": { + "PrivateEndpoint": { + "type": "object", + "description": "The private endpoint resource.", + "properties": { + "id": { + "type": "string", + "description": "The ARM identifier for private endpoint.", + "readOnly": true + } + } + }, + "PrivateEndpointConnection": { + "type": "object", + "description": "The private endpoint connection resource.", + "properties": { + "properties": { + "$ref": "#/definitions/PrivateEndpointConnectionProperties", + "description": "Resource properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../v5/types.json#/definitions/Resource" + } + ] + }, + "PrivateEndpointConnectionListResult": { + "type": "object", + "description": "List of private endpoint connections associated with the specified resource.", + "properties": { + "value": { + "type": "array", + "description": "Array of private endpoint connections.", + "items": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + } + } + }, + "PrivateEndpointConnectionProperties": { + "type": "object", + "description": "Properties of the private endpoint connection.", + "properties": { + "groupIds": { + "type": "array", + "description": "The group ids for the private endpoint resource.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "privateEndpoint": { + "$ref": "#/definitions/PrivateEndpoint", + "description": "The private endpoint resource." + }, + "privateLinkServiceConnectionState": { + "$ref": "#/definitions/PrivateLinkServiceConnectionState", + "description": "A collection of information about the state of the connection between service consumer and provider." + }, + "provisioningState": { + "$ref": "#/definitions/PrivateEndpointConnectionProvisioningState", + "description": "The provisioning state of the private endpoint connection resource." + } + }, + "required": [ + "privateLinkServiceConnectionState" + ] + }, + "PrivateEndpointConnectionProvisioningState": { + "type": "string", + "description": "The current provisioning state.", + "enum": [ + "Succeeded", + "Creating", + "Deleting", + "Failed" + ], + "x-ms-enum": { + "name": "PrivateEndpointConnectionProvisioningState", + "modelAsString": true + }, + "readOnly": true + }, + "PrivateEndpointServiceConnectionStatus": { + "type": "string", + "description": "The private endpoint connection status.", + "enum": [ + "Pending", + "Approved", + "Rejected" + ], + "x-ms-enum": { + "name": "PrivateEndpointServiceConnectionStatus", + "modelAsString": true + } + }, + "PrivateLinkResource": { + "type": "object", + "description": "A private link resource.", + "properties": { + "properties": { + "$ref": "#/definitions/PrivateLinkResourceProperties", + "description": "Resource properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../v5/types.json#/definitions/Resource" + } + ] + }, + "PrivateLinkResourceListResult": { + "type": "object", + "description": "A list of private link resources.", + "properties": { + "value": { + "type": "array", + "description": "Array of private link resources", + "items": { + "$ref": "#/definitions/PrivateLinkResource" + } + } + } + }, + "PrivateLinkResourceProperties": { + "type": "object", + "description": "Properties of a private link resource.", + "properties": { + "groupId": { + "type": "string", + "description": "The private link resource group id.", + "readOnly": true + }, + "requiredMembers": { + "type": "array", + "description": "The private link resource required member names.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "requiredZoneNames": { + "type": "array", + "description": "The private link resource private link DNS zone name.", + "items": { + "type": "string" + } + } + } + }, + "PrivateLinkServiceConnectionState": { + "type": "object", + "description": "A collection of information about the state of the connection between service consumer and provider.", + "properties": { + "status": { + "$ref": "#/definitions/PrivateEndpointServiceConnectionStatus", + "description": "Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service." + }, + "description": { + "type": "string", + "description": "The reason for approval/rejection of the connection." + }, + "actionsRequired": { + "type": "string", + "description": "A message indicating if changes on the service provider require any updates on the consumer." + } + } + } + }, + "parameters": { + "PrivateEndpointConnectionName": { + "name": "privateEndpointConnectionName", + "in": "path", + "description": "The name of the private endpoint connection associated with the Azure resource.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/existing/v5/types.json b/packages/samples/common-types/existing/v5/types.json new file mode 100644 index 0000000000..ecb27802fc --- /dev/null +++ b/packages/samples/common-types/existing/v5/types.json @@ -0,0 +1,722 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "5.0" + }, + "paths": {}, + "definitions": { + "AzureEntityResource": { + "type": "object", + "title": "Entity Resource", + "description": "The resource model definition for an Azure Resource Manager resource with an etag.", + "properties": { + "etag": { + "type": "string", + "description": "Resource Etag.", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "x-ms-client-name": "AzureEntityResource" + }, + "CheckNameAvailabilityRequest": { + "type": "object", + "description": "The check availability request body.", + "properties": { + "name": { + "type": "string", + "description": "The name of the resource for which availability needs to be checked." + }, + "type": { + "type": "string", + "description": "The resource type." + } + } + }, + "CheckNameAvailabilityResponse": { + "type": "object", + "description": "The check availability result.", + "properties": { + "nameAvailable": { + "type": "boolean", + "description": "Indicates if the resource name is available." + }, + "reason": { + "type": "string", + "description": "The reason why the given name is not available.", + "enum": [ + "Invalid", + "AlreadyExists" + ], + "x-ms-enum": { + "name": "CheckNameAvailabilityReason", + "modelAsString": true + } + }, + "message": { + "type": "string", + "description": "Detailed reason why the given name is available." + } + } + }, + "ErrorAdditionalInfo": { + "type": "object", + "description": "The resource management error additional info.", + "properties": { + "type": { + "type": "string", + "description": "The additional info type.", + "readOnly": true + }, + "info": { + "type": "object", + "description": "The additional info.", + "readOnly": true + } + } + }, + "ErrorDetail": { + "type": "object", + "description": "The error detail.", + "properties": { + "code": { + "type": "string", + "description": "The error code.", + "readOnly": true + }, + "message": { + "type": "string", + "description": "The error message.", + "readOnly": true + }, + "target": { + "type": "string", + "description": "The error target.", + "readOnly": true + }, + "details": { + "type": "array", + "description": "The error details.", + "items": { + "$ref": "#/definitions/ErrorDetail" + }, + "readOnly": true, + "x-ms-identifiers": [ + "message", + "target" + ] + }, + "additionalInfo": { + "type": "array", + "description": "The error additional info.", + "items": { + "$ref": "#/definitions/ErrorAdditionalInfo" + }, + "readOnly": true, + "x-ms-identifiers": [] + } + } + }, + "ErrorResponse": { + "type": "object", + "title": "Error response", + "description": "Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.).", + "properties": { + "error": { + "$ref": "#/definitions/ErrorDetail", + "description": "The error object." + } + } + }, + "Identity": { + "type": "object", + "description": "Identity for the resource.", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The principal ID of resource identity. The value must be an UUID.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The tenant ID of resource. The value must be an UUID.", + "readOnly": true + }, + "type": { + "type": "string", + "description": "The identity type.", + "enum": [ + "SystemAssigned" + ], + "x-ms-enum": { + "name": "ResourceIdentityType", + "modelAsString": false + } + } + } + }, + "KeyVaultProperties": { + "type": "object", + "properties": { + "keyIdentifier": { + "type": "string", + "description": "Key vault uri to access the encryption key." + }, + "identity": { + "type": "string", + "description": "The client ID of the identity which will be used to access key vault." + } + } + }, + "Operation": { + "type": "object", + "title": "REST API Operation", + "description": "Details of a REST API operation, returned from the Resource Provider Operations API", + "properties": { + "name": { + "type": "string", + "description": "The name of the operation, as per Resource-Based Access Control (RBAC). Examples: \"Microsoft.Compute/virtualMachines/write\", \"Microsoft.Compute/virtualMachines/capture/action\"", + "readOnly": true + }, + "isDataAction": { + "type": "boolean", + "description": "Whether the operation applies to data-plane. This is \"true\" for data-plane operations and \"false\" for ARM/control-plane operations.", + "readOnly": true + }, + "display": { + "type": "object", + "description": "Localized display information for this particular operation.", + "properties": { + "provider": { + "type": "string", + "description": "The localized friendly form of the resource provider name, e.g. \"Microsoft Monitoring Insights\" or \"Microsoft Compute\".", + "readOnly": true + }, + "resource": { + "type": "string", + "description": "The localized friendly name of the resource type related to this operation. E.g. \"Virtual Machines\" or \"Job Schedule Collections\".", + "readOnly": true + }, + "operation": { + "type": "string", + "description": "The concise, localized friendly name for the operation; suitable for dropdowns. E.g. \"Create or Update Virtual Machine\", \"Restart Virtual Machine\".", + "readOnly": true + }, + "description": { + "type": "string", + "description": "The short, localized friendly description of the operation; suitable for tool tips and detailed views.", + "readOnly": true + } + } + }, + "origin": { + "type": "string", + "description": "The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is \"user,system\"", + "enum": [ + "user", + "system", + "user,system" + ], + "x-ms-enum": { + "name": "Origin", + "modelAsString": true + }, + "readOnly": true + }, + "actionType": { + "type": "string", + "description": "Enum. Indicates the action type. \"Internal\" refers to actions that are for internal only APIs.", + "enum": [ + "Internal" + ], + "x-ms-enum": { + "name": "ActionType", + "modelAsString": true + }, + "readOnly": true + } + } + }, + "OperationListResult": { + "type": "object", + "description": "A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to get the next set of results.", + "properties": { + "value": { + "type": "array", + "description": "List of operations supported by the resource provider", + "items": { + "$ref": "#/definitions/Operation" + }, + "readOnly": true, + "x-ms-identifiers": [ + "name" + ] + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "URL to get the next set of operation list results (if there are any).", + "readOnly": true + } + } + }, + "OperationStatusResult": { + "type": "object", + "description": "The current status of an async operation.", + "properties": { + "id": { + "type": "string", + "format": "arm-id", + "description": "Fully qualified ID for the async operation." + }, + "resourceId": { + "type": "string", + "format": "arm-id", + "description": "Fully qualified ID of the resource against which the original async operation was started.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "Name of the async operation." + }, + "status": { + "type": "string", + "description": "Operation status." + }, + "percentComplete": { + "type": "number", + "description": "Percent of the operation that is complete.", + "minimum": 0, + "maximum": 100 + }, + "startTime": { + "type": "string", + "format": "date-time", + "description": "The start time of the operation." + }, + "endTime": { + "type": "string", + "format": "date-time", + "description": "The end time of the operation." + }, + "operations": { + "type": "array", + "description": "The operations list.", + "items": { + "$ref": "#/definitions/OperationStatusResult" + } + }, + "error": { + "$ref": "#/definitions/ErrorDetail", + "description": "If present, details of the operation error." + } + }, + "required": [ + "status" + ] + }, + "Plan": { + "type": "object", + "description": "Plan for the resource.", + "properties": { + "name": { + "type": "string", + "description": "A user defined name of the 3rd Party Artifact that is being procured." + }, + "publisher": { + "type": "string", + "description": "The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic" + }, + "product": { + "type": "string", + "description": "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. " + }, + "promotionCode": { + "type": "string", + "description": "A publisher provided promotion code as provisioned in Data Market for the said product/artifact." + }, + "version": { + "type": "string", + "description": "The version of the desired product/artifact." + } + }, + "required": [ + "name", + "publisher", + "product" + ] + }, + "ProxyResource": { + "type": "object", + "title": "Proxy Resource", + "description": "The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ] + }, + "Resource": { + "type": "object", + "title": "Resource", + "description": "Common fields that are returned in the response for all Azure Resource Manager resources", + "properties": { + "id": { + "type": "string", + "format": "arm-id", + "description": "Fully qualified resource ID for the resource. E.g. \"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}\"", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of the resource", + "readOnly": true + }, + "type": { + "type": "string", + "description": "The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or \"Microsoft.Storage/storageAccounts\"", + "readOnly": true + }, + "systemData": { + "$ref": "#/definitions/systemData", + "description": "Azure Resource Manager metadata containing createdBy and modifiedBy information.", + "readOnly": true + } + }, + "x-ms-azure-resource": true + }, + "ResourceModelWithAllowedPropertySet": { + "type": "object", + "description": "The resource model definition containing the full set of allowed properties for a resource. Except properties bag, there cannot be a top level property outside of this set.", + "properties": { + "managedBy": { + "type": "string", + "description": "The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.", + "x-ms-mutability": [ + "read", + "create", + "update" + ] + }, + "kind": { + "type": "string", + "description": "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type. E.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.", + "pattern": "^[-\\w\\._,\\(\\)]+$", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "etag": { + "type": "string", + "description": "The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the normal etag convention. Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields. ", + "readOnly": true + }, + "identity": { + "allOf": [ + { + "$ref": "#/definitions/Identity" + } + ] + }, + "sku": { + "allOf": [ + { + "$ref": "#/definitions/Sku" + } + ] + }, + "plan": { + "allOf": [ + { + "$ref": "#/definitions/Plan" + } + ] + } + }, + "allOf": [ + { + "$ref": "#/definitions/TrackedResource" + } + ], + "x-ms-azure-resource": true + }, + "Sku": { + "type": "object", + "description": "The resource model definition representing SKU", + "properties": { + "name": { + "type": "string", + "description": "The name of the SKU. E.g. P3. It is typically a letter+number code" + }, + "tier": { + "$ref": "#/definitions/SkuTier" + }, + "size": { + "type": "string", + "description": "The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. " + }, + "family": { + "type": "string", + "description": "If the service has different generations of hardware, for the same SKU, then that can be captured here." + }, + "capacity": { + "type": "integer", + "format": "int32", + "description": "If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted." + } + }, + "required": [ + "name" + ] + }, + "SkuTier": { + "type": "string", + "description": "This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.", + "enum": [ + "Free", + "Basic", + "Standard", + "Premium" + ], + "x-ms-enum": { + "name": "SkuTier", + "modelAsString": false + } + }, + "TrackedResource": { + "type": "object", + "title": "Tracked Resource", + "description": "The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'", + "properties": { + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + }, + "x-ms-mutability": [ + "read", + "create", + "update" + ] + }, + "location": { + "type": "string", + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] + } + }, + "required": [ + "location" + ], + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ] + }, + "encryptionProperties": { + "type": "object", + "description": "Configuration of key for data encryption", + "properties": { + "status": { + "type": "string", + "description": "Indicates whether or not the encryption is enabled for container registry.", + "enum": [ + "enabled", + "disabled" + ], + "x-ms-enum": { + "name": "EncryptionStatus", + "modelAsString": true + } + }, + "keyVaultProperties": { + "$ref": "#/definitions/KeyVaultProperties", + "description": "Key vault properties." + } + } + }, + "locationData": { + "type": "object", + "description": "Metadata pertaining to the geographic location of the resource.", + "properties": { + "name": { + "type": "string", + "description": "A canonical name for the geographic or physical location.", + "maxLength": 256 + }, + "city": { + "type": "string", + "description": "The city or locality where the resource is located." + }, + "district": { + "type": "string", + "description": "The district, state, or province where the resource is located." + }, + "countryOrRegion": { + "type": "string", + "description": "The country or region where the resource is located" + } + }, + "required": [ + "name" + ] + }, + "systemData": { + "type": "object", + "description": "Metadata pertaining to creation and last modification of the resource.", + "properties": { + "createdBy": { + "type": "string", + "description": "The identity that created the resource." + }, + "createdByType": { + "type": "string", + "description": "The type of identity that created the resource.", + "enum": [ + "User", + "Application", + "ManagedIdentity", + "Key" + ], + "x-ms-enum": { + "name": "createdByType", + "modelAsString": true + } + }, + "createdAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp of resource creation (UTC)." + }, + "lastModifiedBy": { + "type": "string", + "description": "The identity that last modified the resource." + }, + "lastModifiedByType": { + "type": "string", + "description": "The type of identity that last modified the resource.", + "enum": [ + "User", + "Application", + "ManagedIdentity", + "Key" + ], + "x-ms-enum": { + "name": "createdByType", + "modelAsString": true + } + }, + "lastModifiedAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp of resource last modification (UTC)" + } + }, + "readOnly": true + } + }, + "parameters": { + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "The API version to use for this operation.", + "required": true, + "type": "string", + "minLength": 1 + }, + "If-Match": { + "name": "ifMatch", + "in": "header", + "description": "The If-Match header that makes a request conditional.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "If-None-Match": { + "name": "ifNoneMatch", + "in": "header", + "description": "The If-None-Match header that makes a request conditional.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "LocationParameter": { + "name": "location", + "in": "path", + "description": "The name of the Azure region.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method" + }, + "ManagementGroupNameParameter": { + "name": "managementGroupName", + "in": "path", + "description": "The name of the management group. The name is case insensitive.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 90, + "x-ms-parameter-location": "method" + }, + "OperationIdParameter": { + "name": "operationId", + "in": "path", + "description": "The ID of an ongoing async operation.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method" + }, + "ResourceGroupNameParameter": { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group. The name is case insensitive.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 90, + "x-ms-parameter-location": "method" + }, + "ScopeParameter": { + "name": "scope", + "in": "path", + "description": "The scope at which the operation is performed.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method", + "x-ms-skip-url-encoding": true + }, + "SubscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "description": "The ID of the target subscription. The value must be an UUID.", + "required": true, + "type": "string", + "format": "uuid" + }, + "TenantIdParameter": { + "name": "tenantId", + "in": "path", + "description": "The Azure tenant ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000)", + "required": true, + "type": "string", + "format": "uuid", + "x-ms-parameter-location": "method" + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/gen.ts b/packages/samples/common-types/gen.ts new file mode 100644 index 0000000000..84f120d859 --- /dev/null +++ b/packages/samples/common-types/gen.ts @@ -0,0 +1,103 @@ +import { + OpenAPI2Document, + getAllServicesAtAllVersions, + resolveAutorestOptions, + sortOpenAPIDocument, +} from "@azure-tools/typespec-autorest"; +import { NodeHost, compile, logDiagnostics } from "@typespec/compiler"; +import { mkdir, rm, writeFile } from "fs/promises"; +import { dirname, resolve } from "path"; +import { fileURLToPath } from "url"; + +const dir = dirname(fileURLToPath(import.meta.url)); +const outDir = resolve(dir, "openapi"); + +await rm(outDir, { recursive: true, force: true }); +await emitCommonTypesSwagger("customer-managed-keys"); +await emitCommonTypesSwagger("managed-identity"); +await emitCommonTypesSwagger("private-links"); +await emitCommonTypesSwagger("types"); + +function log(...args: any[]) { + // eslint-disable-next-line no-console + console.log(...args); +} + +async function emitCommonTypesSwagger(name: string) { + log("Generating common types for ", name); + const program = await compile(NodeHost, resolve(dir, `src/${name}.tsp`)); + + if (program.diagnostics.length > 0) { + logDiagnostics(program.diagnostics, NodeHost.logSink); + process.exit(1); + } + + const output = await getAllServicesAtAllVersions( + program, + resolveAutorestOptions(program, dir, {}) + ); + if (program.diagnostics.length > 0) { + logDiagnostics(program.diagnostics, NodeHost.logSink); + process.exit(1); + } + + if (output.length !== 1) { + throw new Error("Expected exactly one service"); + } + const service = output[0]; + + if (!service.versioned) { + throw new Error("Expected exactly one service"); + } + + for (const version of service.versions) { + const document = version.document; + if (document.definitions === undefined || Object.keys(document.definitions).length === 0) { + continue; // we don't save this file + } + + const cleanedDocument = cleanupDocument(document); + const sortedDocument = sortOpenAPIDocument(cleanedDocument); + + const versionDir = resolve(outDir, version.version); + await mkdir(versionDir, { recursive: true }); + const outputFile = resolve(versionDir, `${name.replaceAll("-", "")}.json`); + await writeFile(outputFile, JSON.stringify(sortedDocument, null, 2), { encoding: "utf-8" }); + } + + log(" ✅ Generated common types for ", name); +} + +function cleanupDocument(original: OpenAPI2Document): OpenAPI2Document { + const document: OpenAPI2Document = JSON.parse(JSON.stringify(original)); + + delete document.schemes; + delete document.produces; + delete document.consumes; + delete document.tags; + delete document.info["x-typespec-generated"]; + if (document.parameters && Object.keys(document.parameters).length === 0) { + delete document.parameters; + } + document.paths = {}; + + replaceUuidRefs(document); + + return document; +} + +function replaceUuidRefs(document: OpenAPI2Document) { + if (document.definitions?.["Azure.Core.uuid"]) { + const uuidDef = document.definitions["Azure.Core.uuid"]; + delete document.definitions["Azure.Core.uuid"]; + + for (const definition of Object.values(document.definitions)) { + for (const property of Object.values(definition.properties || {})) { + if ("$ref" in property && property.$ref === "#/definitions/Azure.Core.uuid") { + delete (property as any).$ref; + Object.assign(property, { ...uuidDef, ...property }); + } + } + } + } +} diff --git a/packages/samples/common-types/openapi/v3/managedidentity.json b/packages/samples/common-types/openapi/v3/managedidentity.json new file mode 100644 index 0000000000..74969b8867 --- /dev/null +++ b/packages/samples/common-types/openapi/v3/managedidentity.json @@ -0,0 +1,152 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "v3" + }, + "paths": {}, + "definitions": { + "ManagedServiceIdentity": { + "type": "object", + "description": "Managed service identity (system assigned and/or user assigned identities)", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/ManagedServiceIdentityType", + "description": "The type of managed identity assigned to this resource." + }, + "userAssignedIdentities": { + "type": "object", + "description": "The identities assigned to this resource by the user.", + "additionalProperties": { + "$ref": "#/definitions/UserAssignedIdentity" + } + } + }, + "required": [ + "type" + ] + }, + "ManagedServiceIdentityType": { + "type": "string", + "description": "Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).", + "enum": [ + "None", + "SystemAssigned", + "UserAssigned", + "SystemAssigned,UserAssigned" + ], + "x-ms-enum": { + "name": "ManagedServiceIdentityType", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "None", + "description": "No managed identity." + }, + { + "name": "SystemAssigned", + "value": "SystemAssigned", + "description": "System assigned managed identity." + }, + { + "name": "UserAssigned", + "value": "UserAssigned", + "description": "User assigned managed identity." + }, + { + "name": "SystemAndUserAssignedV3", + "value": "SystemAssigned,UserAssigned", + "description": "System and user assigned managed identity." + } + ] + } + }, + "SystemAssignedServiceIdentity": { + "type": "object", + "description": "Managed service identity (either system assigned, or none)", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/SystemAssignedServiceIdentityType", + "description": "The type of managed identity assigned to this resource." + } + }, + "required": [ + "type" + ] + }, + "SystemAssignedServiceIdentityType": { + "type": "string", + "description": "Type of managed service identity (either system assigned, or none).", + "enum": [ + "None", + "SystemAssigned" + ], + "x-ms-enum": { + "name": "SystemAssignedServiceIdentityType", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "None", + "description": "No managed system identity." + }, + { + "name": "SystemAssigned", + "value": "SystemAssigned", + "description": "System assigned managed system identity." + } + ] + } + }, + "UserAssignedIdentities": { + "type": "object", + "description": "The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.", + "additionalProperties": { + "$ref": "#/definitions/UserAssignedIdentity" + } + }, + "UserAssignedIdentity": { + "type": "object", + "description": "User assigned identity properties", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The principal ID of the assigned identity.", + "readOnly": true + }, + "clientId": { + "type": "string", + "format": "uuid", + "description": "The client ID of the assigned identity.", + "readOnly": true + } + } + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/openapi/v3/privatelinks.json b/packages/samples/common-types/openapi/v3/privatelinks.json new file mode 100644 index 0000000000..b26d80be33 --- /dev/null +++ b/packages/samples/common-types/openapi/v3/privatelinks.json @@ -0,0 +1,221 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "v3" + }, + "paths": {}, + "definitions": { + "PrivateEndpoint": { + "type": "object", + "description": "The Private Endpoint resource.", + "properties": { + "id": { + "type": "string", + "format": "arm-id", + "description": "The resource identifier for private endpoint", + "readOnly": true, + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Network/privateEndpoints" + } + ] + } + } + } + }, + "PrivateEndpointConnection": { + "type": "object", + "description": "The private endpoint connection resource", + "properties": { + "properties": { + "$ref": "#/definitions/PrivateEndpointConnectionProperties", + "description": "The private endpoint connection properties", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "./types.json#/definitions/Resource" + } + ] + }, + "PrivateEndpointConnectionListResult": { + "type": "object", + "description": "List of private endpoint connections associated with the specified resource.", + "properties": { + "value": { + "type": "array", + "description": "Array of private endpoint connections.", + "items": { + "$ref": "#/definitions/PrivateEndpointConnection" + }, + "x-ms-identifiers": [] + } + } + }, + "PrivateEndpointConnectionProperties": { + "type": "object", + "description": "Properties of the private endpoint connection.", + "properties": { + "privateEndpoint": { + "$ref": "#/definitions/PrivateEndpoint", + "description": "The private endpoint resource." + }, + "privateLinkServiceConnectionState": { + "$ref": "#/definitions/PrivateLinkServiceConnectionState", + "description": "A collection of information about the state of the connection between service consumer and provider." + }, + "provisioningState": { + "$ref": "#/definitions/PrivateEndpointConnectionProvisioningState", + "description": "The provisioning state of the private endpoint connection resource.", + "readOnly": true + } + }, + "required": [ + "privateLinkServiceConnectionState" + ] + }, + "PrivateEndpointConnectionProvisioningState": { + "type": "string", + "description": "The current provisioning state.", + "enum": [ + "Succeeded", + "Creating", + "Deleting", + "Failed" + ], + "x-ms-enum": { + "name": "PrivateEndpointConnectionProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Connection has been provisioned" + }, + { + "name": "Creating", + "value": "Creating", + "description": "Connection is being created" + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "Connection is being deleted" + }, + { + "name": "Failed", + "value": "Failed", + "description": "Connection provisioning has failed" + } + ] + } + }, + "PrivateEndpointServiceConnectionStatus": { + "type": "string", + "description": "The private endpoint connection status.", + "enum": [ + "Pending", + "Approved", + "Rejected" + ], + "x-ms-enum": { + "name": "PrivateEndpointServiceConnectionStatus", + "modelAsString": true, + "values": [ + { + "name": "Pending", + "value": "Pending", + "description": "Connectionaiting for approval or rejection" + }, + { + "name": "Approved", + "value": "Approved", + "description": "Connection approved" + }, + { + "name": "Rejected", + "value": "Rejected", + "description": "Connection Rejected" + } + ] + } + }, + "PrivateLinkResource": { + "type": "object", + "description": "A private link resource.", + "properties": { + "properties": { + "$ref": "#/definitions/PrivateLinkResourceProperties", + "description": "Resource properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "./types.json#/definitions/Resource" + } + ] + }, + "PrivateLinkResourceListResult": { + "type": "object", + "description": "A list of private link resources.", + "properties": { + "value": { + "type": "array", + "description": "Array of private link resources", + "items": { + "$ref": "#/definitions/PrivateLinkResource" + }, + "x-ms-identifiers": [] + } + } + }, + "PrivateLinkResourceProperties": { + "type": "object", + "description": "Properties of a private link resource.", + "properties": { + "groupId": { + "type": "string", + "description": "The private link resource group id.", + "readOnly": true + }, + "requiredMembers": { + "type": "array", + "description": "The private link resource required member names.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "requiredZoneNames": { + "type": "array", + "description": "The private link resource private link DNS zone name.", + "items": { + "type": "string" + } + } + } + }, + "PrivateLinkServiceConnectionState": { + "type": "object", + "description": "A collection of information about the state of the connection between service consumer and provider.", + "properties": { + "status": { + "$ref": "#/definitions/PrivateEndpointServiceConnectionStatus", + "description": "Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service." + }, + "description": { + "type": "string", + "description": "The reason for approval/rejection of the connection." + }, + "actionsRequired": { + "type": "string", + "description": "A message indicating if changes on the service provider require any updates on the consumer." + } + } + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/openapi/v3/types.json b/packages/samples/common-types/openapi/v3/types.json new file mode 100644 index 0000000000..59ebc73c23 --- /dev/null +++ b/packages/samples/common-types/openapi/v3/types.json @@ -0,0 +1,767 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "v3" + }, + "paths": {}, + "definitions": { + "ActionType": { + "type": "string", + "description": "Extensible enum. Indicates the action type. \"Internal\" refers to actions that are for internal only APIs.", + "enum": [ + "Internal" + ], + "x-ms-enum": { + "name": "ActionType", + "modelAsString": true, + "values": [ + { + "name": "Internal", + "value": "Internal", + "description": "Actions are for internal-only APIs." + } + ] + } + }, + "AzureEntityResource": { + "type": "object", + "description": "The resource model definition for an Azure Resource Manager resource with an etag.", + "properties": { + "etag": { + "type": "string", + "description": "Resource Etag.", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ] + }, + "CheckNameAvailabilityReason": { + "type": "string", + "description": "Possible reasons for a name not being available.", + "enum": [ + "Invalid", + "AlreadyExists" + ], + "x-ms-enum": { + "name": "CheckNameAvailabilityReason", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid", + "description": "Name is invalid." + }, + { + "name": "AlreadyExists", + "value": "AlreadyExists", + "description": "Name already exists." + } + ] + } + }, + "CheckNameAvailabilityRequest": { + "type": "object", + "description": "The check availability request body.", + "properties": { + "name": { + "type": "string", + "description": "The name of the resource for which availability needs to be checked." + }, + "type": { + "type": "string", + "description": "The resource type." + } + } + }, + "CheckNameAvailabilityResponse": { + "type": "object", + "description": "The check availability result.", + "properties": { + "nameAvailable": { + "type": "boolean", + "description": "Indicates if the resource name is available." + }, + "reason": { + "$ref": "#/definitions/CheckNameAvailabilityReason", + "description": "The reason why the given name is not available." + }, + "message": { + "type": "string", + "description": "Detailed reason why the given name is not available." + } + } + }, + "EncryptionProperties": { + "type": "object", + "description": "Configuration of key for data encryption", + "properties": { + "status": { + "$ref": "#/definitions/EncryptionStatus", + "description": "Indicates whether or not the encryption is enabled for container registry." + }, + "keyVaultProperties": { + "$ref": "#/definitions/KeyVaultProperties", + "description": "Key vault properties." + } + } + }, + "EncryptionStatus": { + "type": "string", + "description": "Indicates whether or not the encryption is enabled for container registry.", + "enum": [ + "enabled", + "disabled" + ], + "x-ms-enum": { + "name": "EncryptionStatus", + "modelAsString": true, + "values": [ + { + "name": "enabled", + "value": "enabled", + "description": "Encryption is enabled." + }, + { + "name": "disabled", + "value": "disabled", + "description": "Encryption is disabled." + } + ] + } + }, + "ErrorAdditionalInfo": { + "type": "object", + "description": "The resource management error additional info.", + "properties": { + "type": { + "type": "string", + "description": "The additional info type.", + "readOnly": true + }, + "info": { + "type": "object", + "description": "The additional info.", + "readOnly": true + } + } + }, + "ErrorDetail": { + "type": "object", + "description": "The error detail.", + "properties": { + "code": { + "type": "string", + "description": "The error code.", + "readOnly": true + }, + "message": { + "type": "string", + "description": "The error message.", + "readOnly": true + }, + "target": { + "type": "string", + "description": "The error target.", + "readOnly": true + }, + "details": { + "type": "array", + "description": "The error details.", + "items": { + "$ref": "#/definitions/ErrorDetail" + }, + "readOnly": true, + "x-ms-identifiers": [ + "message", + "target" + ] + }, + "additionalInfo": { + "type": "array", + "description": "The error additional info.", + "items": { + "$ref": "#/definitions/ErrorAdditionalInfo" + }, + "readOnly": true, + "x-ms-identifiers": [] + } + } + }, + "ErrorResponse": { + "type": "object", + "description": "Common error response for all Azure Resource Manager APIs to return error details for failed operations.", + "properties": { + "error": { + "$ref": "#/definitions/ErrorDetail", + "description": "The error object." + } + } + }, + "ExtensionResource": { + "type": "object", + "description": "The base extension resource.", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ] + }, + "Identity": { + "type": "object", + "description": "Identity for the resource.", + "properties": { + "principalId": { + "type": "string", + "description": "The principal ID of resource identity. The value must be an UUID.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "description": "The tenant ID of resource. The value must be an UUID.", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/ResourceIdentityType", + "description": "The identity type." + } + } + }, + "KeyVaultProperties": { + "type": "object", + "properties": { + "keyIdentifier": { + "type": "string", + "description": "Key vault uri to access the encryption key." + }, + "identity": { + "type": "string", + "description": "The client ID of the identity which will be used to access key vault." + } + } + }, + "LocationData": { + "type": "object", + "description": "Metadata pertaining to the geographic location of the resource.", + "properties": { + "name": { + "type": "string", + "description": "A canonical name for the geographic or physical location.", + "maxLength": 256 + }, + "city": { + "type": "string", + "description": "The city or locality where the resource is located." + }, + "district": { + "type": "string", + "description": "The district, state, or province where the resource is located." + }, + "countryOrRegion": { + "type": "string", + "description": "The country or region where the resource is located" + } + }, + "required": [ + "name" + ] + }, + "LocationResourceParameter": { + "type": "object", + "description": "The default location parameter type.", + "properties": { + "location": { + "type": "string", + "description": "The name of the Azure region.", + "minLength": 1 + } + }, + "required": [ + "location" + ] + }, + "Operation": { + "type": "object", + "description": "Details of a REST API operation, returned from the Resource Provider Operations API", + "properties": { + "name": { + "type": "string", + "description": "The name of the operation, as per Resource-Based Access Control (RBAC). Examples: \"Microsoft.Compute/virtualMachines/write\", \"Microsoft.Compute/virtualMachines/capture/action\"", + "readOnly": true + }, + "isDataAction": { + "type": "boolean", + "description": "Whether the operation applies to data-plane. This is \"true\" for data-plane operations and \"false\" for Azure Resource Manager/control-plane operations.", + "readOnly": true + }, + "display": { + "$ref": "#/definitions/OperationDisplay", + "description": "Localized display information for this particular operation." + }, + "origin": { + "$ref": "#/definitions/Origin", + "description": "The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is \"user,system\"", + "readOnly": true + }, + "actionType": { + "$ref": "#/definitions/ActionType", + "description": "Extensible enum. Indicates the action type. \"Internal\" refers to actions that are for internal only APIs." + } + } + }, + "OperationDisplay": { + "type": "object", + "description": "Localized display information for and operation.", + "properties": { + "provider": { + "type": "string", + "description": "The localized friendly form of the resource provider name, e.g. \"Microsoft Monitoring Insights\" or \"Microsoft Compute\"." + }, + "resource": { + "type": "string", + "description": "The localized friendly name of the resource type related to this operation. E.g. \"Virtual Machines\" or \"Job Schedule Collections\"." + }, + "operation": { + "type": "string", + "description": "The concise, localized friendly name for the operation; suitable for dropdowns. E.g. \"Create or Update Virtual Machine\", \"Restart Virtual Machine\"." + }, + "description": { + "type": "string", + "description": "The short, localized friendly description of the operation; suitable for tool tips and detailed views." + } + } + }, + "OperationListResult": { + "type": "object", + "description": "A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to get the next set of results.", + "properties": { + "value": { + "type": "array", + "description": "The Operation items on this page", + "items": { + "$ref": "#/definitions/Operation" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "OperationStatusResult": { + "type": "object", + "description": "The current status of an async operation.", + "properties": { + "id": { + "type": "string", + "description": "Fully qualified ID for the async operation." + }, + "name": { + "type": "string", + "description": "Name of the async operation." + }, + "status": { + "type": "string", + "description": "Operation status." + }, + "percentComplete": { + "type": "number", + "format": "double", + "description": "Percent of the operation that is complete.", + "minimum": 0, + "maximum": 100 + }, + "startTime": { + "type": "string", + "format": "date-time", + "description": "The start time of the operation." + }, + "endTime": { + "type": "string", + "format": "date-time", + "description": "The end time of the operation." + }, + "operations": { + "type": "array", + "description": "The operations list.", + "items": { + "$ref": "#/definitions/OperationStatusResult" + } + }, + "error": { + "$ref": "#/definitions/ErrorDetail", + "description": "If present, details of the operation error." + } + }, + "required": [ + "status" + ] + }, + "Origin": { + "type": "string", + "description": "The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is \"user,system\"", + "enum": [ + "user", + "system", + "user,system" + ], + "x-ms-enum": { + "name": "Origin", + "modelAsString": true, + "values": [ + { + "name": "user", + "value": "user", + "description": "Indicates the operation is initiated by a user." + }, + { + "name": "system", + "value": "system", + "description": "Indicates the operation is initiated by a system." + }, + { + "name": "user,system", + "value": "user,system", + "description": "Indicates the operation is initiated by a user or system." + } + ] + } + }, + "Plan": { + "type": "object", + "description": "Plan for the resource.", + "properties": { + "name": { + "type": "string", + "description": "A user defined name of the 3rd Party Artifact that is being procured." + }, + "publisher": { + "type": "string", + "description": "The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic" + }, + "product": { + "type": "string", + "description": "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding." + }, + "promotionCode": { + "type": "string", + "description": "A publisher provided promotion code as provisioned in Data Market for the said product/artifact." + }, + "version": { + "type": "string", + "description": "The version of the desired product/artifact." + } + }, + "required": [ + "name", + "publisher", + "product" + ] + }, + "ProxyResource": { + "type": "object", + "description": "The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ] + }, + "Resource": { + "type": "object", + "description": "Common fields that are returned in the response for all Azure Resource Manager resources", + "properties": { + "id": { + "type": "string", + "description": "Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of the resource", + "readOnly": true + }, + "type": { + "type": "string", + "description": "The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or \"Microsoft.Storage/storageAccounts\"", + "readOnly": true + }, + "systemData": { + "$ref": "#/definitions/SystemData", + "description": "Azure Resource Manager metadata containing createdBy and modifiedBy information.", + "readOnly": true + } + }, + "x-ms-azure-resource": true + }, + "ResourceIdentityType": { + "type": "string", + "enum": [ + "SystemAssigned" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-nullable": false + }, + "ResourceModelWithAllowedPropertySet": { + "type": "object", + "description": "The resource model definition containing the full set of allowed properties for a resource. Except properties bag, there cannot be a top level property outside of this set.", + "properties": { + "managedBy": { + "type": "string", + "description": "The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource.\nIf this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource." + }, + "kind": { + "type": "string", + "description": "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type.\nIf supported, the resource provider must validate and persist this value.", + "pattern": "^[-\\w\\._,\\(\\)]+$", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "eTag": { + "type": "string", + "description": "The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the normal etag convention.\nEntity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19),\nIf-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields." + }, + "identity": { + "$ref": "#/definitions/Identity" + }, + "sku": { + "$ref": "#/definitions/Sku" + }, + "plan": { + "$ref": "#/definitions/Plan" + } + }, + "allOf": [ + { + "$ref": "#/definitions/TrackedResource" + } + ], + "x-ms-azure-resource": true + }, + "Sku": { + "type": "object", + "description": "The resource model definition representing SKU", + "properties": { + "name": { + "type": "string", + "description": "The name of the SKU. Ex - P3. It is typically a letter+number code" + }, + "tier": { + "$ref": "#/definitions/SkuTier", + "description": "This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT." + }, + "size": { + "type": "string", + "description": "The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code." + }, + "family": { + "type": "string", + "description": "If the service has different generations of hardware, for the same SKU, then that can be captured here." + }, + "capacity": { + "type": "integer", + "format": "int32", + "description": "If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted." + } + }, + "required": [ + "name" + ] + }, + "SkuTier": { + "type": "string", + "description": "This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.", + "enum": [ + "Free", + "Basic", + "Standard", + "Premium" + ], + "x-ms-enum": { + "name": "SkuTier", + "modelAsString": false, + "values": [ + { + "name": "Free", + "value": "Free", + "description": "The Free service tier." + }, + { + "name": "Basic", + "value": "Basic", + "description": "The Basic service tier." + }, + { + "name": "Standard", + "value": "Standard", + "description": "The Standard service tier." + }, + { + "name": "Premium", + "value": "Premium", + "description": "The Premium service tier." + } + ] + } + }, + "SystemData": { + "type": "object", + "description": "Metadata pertaining to creation and last modification of the resource.", + "properties": { + "createdBy": { + "type": "string", + "description": "The identity that created the resource." + }, + "createdByType": { + "$ref": "#/definitions/createdByType", + "description": "The type of identity that created the resource." + }, + "createdAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp of resource creation (UTC)." + }, + "lastModifiedBy": { + "type": "string", + "description": "The identity that last modified the resource." + }, + "lastModifiedByType": { + "$ref": "#/definitions/createdByType", + "description": "The type of identity that last modified the resource." + }, + "lastModifiedAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp of resource last modification (UTC)" + } + } + }, + "TrackedResource": { + "type": "object", + "description": "The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'", + "properties": { + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } + }, + "location": { + "type": "string", + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] + } + }, + "required": [ + "location" + ], + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ] + }, + "createdByType": { + "type": "string", + "description": "The kind of entity that created the resource.", + "enum": [ + "User", + "Application", + "ManagedIdentity", + "Key" + ], + "x-ms-enum": { + "name": "createdByType", + "modelAsString": true, + "values": [ + { + "name": "User", + "value": "User", + "description": "The entity was created by a user." + }, + { + "name": "Application", + "value": "Application", + "description": "The entity was created by an application." + }, + { + "name": "ManagedIdentity", + "value": "ManagedIdentity", + "description": "The entity was created by a managed identity." + }, + { + "name": "Key", + "value": "Key", + "description": "The entity was created by a key." + } + ] + } + } + }, + "parameters": { + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "The API version to use for this operation.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "client", + "x-ms-client-name": "apiVersion" + }, + "LocationParameter": { + "name": "location", + "in": "path", + "description": "The name of Azure region.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method" + }, + "OperationIdParameter": { + "name": "operationId", + "in": "path", + "description": "The ID of an ongoing async operation.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method" + }, + "ResourceGroupNameParameter": { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group. The name is case insensitive.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 90, + "pattern": "^[-\\w\\._\\(\\)]+$", + "x-ms-parameter-location": "method" + }, + "SubscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "description": "The ID of the target subscription. The value must be an UUID.", + "required": true, + "type": "string", + "x-ms-parameter-location": "client" + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/openapi/v4/customermanagedkeys.json b/packages/samples/common-types/openapi/v4/customermanagedkeys.json new file mode 100644 index 0000000000..4ed65ed0e2 --- /dev/null +++ b/packages/samples/common-types/openapi/v4/customermanagedkeys.json @@ -0,0 +1,119 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "v4" + }, + "paths": {}, + "definitions": { + "CustomerManagedKeyEncryption": { + "type": "object", + "description": "Customer-managed key encryption properties for the resource.", + "properties": { + "keyEncryptionKeyIdentity": { + "$ref": "#/definitions/KeyEncryptionKeyIdentity", + "description": "All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault." + }, + "keyEncryptionKeyUrl": { + "type": "string", + "description": "key encryption key Url, versioned or non-versioned. Ex: https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 or https://contosovault.vault.azure.net/keys/contosokek." + } + } + }, + "Encryption": { + "type": "object", + "description": "(Optional) Discouraged to include in resource definition. Only needed where it is possible to disable platform (AKA infrastructure) encryption. Azure SQL TDE is an example of this. Values are enabled and disabled.", + "properties": { + "infrastructureEncryption": { + "$ref": "#/definitions/InfrastructureEncryption", + "description": "Values are enabled and disabled." + }, + "customerManagedKeyEncryption": { + "$ref": "#/definitions/CustomerManagedKeyEncryption", + "description": "All Customer-managed key encryption properties for the resource." + } + } + }, + "InfrastructureEncryption": { + "type": "string", + "description": "(Optional) Discouraged to include in resource definition. Only needed where it is possible to disable platform (AKA infrastructure) encryption. Azure SQL TDE is an example of this. Values are enabled and disabled.", + "enum": [ + "enabled", + "disabled" + ], + "x-ms-enum": { + "name": "InfrastructureEncryption", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "enabled", + "description": "Encryption is enabled" + }, + { + "name": "Disabled", + "value": "disabled", + "description": "Encryption is disabled" + } + ] + } + }, + "KeyEncryptionKeyIdentity": { + "type": "object", + "description": "All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault.", + "properties": { + "identityType": { + "$ref": "#/definitions/KeyEncryptionKeyIdentityType", + "description": "The type of identity to use. Values can be systemAssignedIdentity, userAssignedIdentity, or delegatedResourceIdentity." + }, + "userAssignedIdentityResourceId": { + "type": "string", + "format": "arm-id", + "description": "User assigned identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity.", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.ManagedIdentity/userAssignedIdentities" + } + ] + } + }, + "delegatedIdentityClientId": { + "type": "string", + "format": "uuid", + "description": "delegated identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity and userAssignedIdentity - internal use only." + } + } + }, + "KeyEncryptionKeyIdentityType": { + "type": "string", + "description": "The type of identity to use.", + "enum": [ + "systemAssignedIdentity", + "userAssignedIdentity", + "delegatedResourceIdentity" + ], + "x-ms-enum": { + "name": "KeyEncryptionKeyIdentityType", + "modelAsString": true, + "values": [ + { + "name": "SystemAssignedIdentity", + "value": "systemAssignedIdentity", + "description": "System assigned identity" + }, + { + "name": "UserAssignedIdentity", + "value": "userAssignedIdentity", + "description": "User assigned identity" + }, + { + "name": "DelegatedResourceIdentity", + "value": "delegatedResourceIdentity", + "description": "Delegated identity" + } + ] + } + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/openapi/v4/managedidentity.json b/packages/samples/common-types/openapi/v4/managedidentity.json new file mode 100644 index 0000000000..cbc9024f65 --- /dev/null +++ b/packages/samples/common-types/openapi/v4/managedidentity.json @@ -0,0 +1,152 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "v4" + }, + "paths": {}, + "definitions": { + "ManagedServiceIdentity": { + "type": "object", + "description": "Managed service identity (system assigned and/or user assigned identities)", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/ManagedServiceIdentityType", + "description": "The type of managed identity assigned to this resource." + }, + "userAssignedIdentities": { + "type": "object", + "description": "The identities assigned to this resource by the user.", + "additionalProperties": { + "$ref": "#/definitions/UserAssignedIdentity" + } + } + }, + "required": [ + "type" + ] + }, + "ManagedServiceIdentityType": { + "type": "string", + "description": "Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).", + "enum": [ + "None", + "SystemAssigned", + "UserAssigned", + "SystemAssigned, UserAssigned" + ], + "x-ms-enum": { + "name": "ManagedServiceIdentityType", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "None", + "description": "No managed identity." + }, + { + "name": "SystemAssigned", + "value": "SystemAssigned", + "description": "System assigned managed identity." + }, + { + "name": "UserAssigned", + "value": "UserAssigned", + "description": "User assigned managed identity." + }, + { + "name": "SystemAndUserAssignedV4", + "value": "SystemAssigned, UserAssigned", + "description": "System and user assigned managed identity." + } + ] + } + }, + "SystemAssignedServiceIdentity": { + "type": "object", + "description": "Managed service identity (either system assigned, or none)", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/SystemAssignedServiceIdentityType", + "description": "The type of managed identity assigned to this resource." + } + }, + "required": [ + "type" + ] + }, + "SystemAssignedServiceIdentityType": { + "type": "string", + "description": "Type of managed service identity (either system assigned, or none).", + "enum": [ + "None", + "SystemAssigned" + ], + "x-ms-enum": { + "name": "SystemAssignedServiceIdentityType", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "None", + "description": "No managed system identity." + }, + { + "name": "SystemAssigned", + "value": "SystemAssigned", + "description": "System assigned managed system identity." + } + ] + } + }, + "UserAssignedIdentities": { + "type": "object", + "description": "The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.", + "additionalProperties": { + "$ref": "#/definitions/UserAssignedIdentity" + } + }, + "UserAssignedIdentity": { + "type": "object", + "description": "User assigned identity properties", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The principal ID of the assigned identity.", + "readOnly": true + }, + "clientId": { + "type": "string", + "format": "uuid", + "description": "The client ID of the assigned identity.", + "readOnly": true + } + } + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/openapi/v4/privatelinks.json b/packages/samples/common-types/openapi/v4/privatelinks.json new file mode 100644 index 0000000000..7eb1d3666d --- /dev/null +++ b/packages/samples/common-types/openapi/v4/privatelinks.json @@ -0,0 +1,229 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "v4" + }, + "paths": {}, + "definitions": { + "PrivateEndpoint": { + "type": "object", + "description": "The Private Endpoint resource.", + "properties": { + "id": { + "type": "string", + "format": "arm-id", + "description": "The resource identifier for private endpoint", + "readOnly": true, + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Network/privateEndpoints" + } + ] + } + } + } + }, + "PrivateEndpointConnection": { + "type": "object", + "description": "The private endpoint connection resource", + "properties": { + "properties": { + "$ref": "#/definitions/PrivateEndpointConnectionProperties", + "description": "The private endpoint connection properties", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "./types.json#/definitions/Resource" + } + ] + }, + "PrivateEndpointConnectionListResult": { + "type": "object", + "description": "List of private endpoint connections associated with the specified resource.", + "properties": { + "value": { + "type": "array", + "description": "Array of private endpoint connections.", + "items": { + "$ref": "#/definitions/PrivateEndpointConnection" + }, + "x-ms-identifiers": [] + } + } + }, + "PrivateEndpointConnectionProperties": { + "type": "object", + "description": "Properties of the private endpoint connection.", + "properties": { + "groupIds": { + "type": "array", + "description": "The group ids for the private endpoint resource.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "privateEndpoint": { + "$ref": "#/definitions/PrivateEndpoint", + "description": "The private endpoint resource." + }, + "privateLinkServiceConnectionState": { + "$ref": "#/definitions/PrivateLinkServiceConnectionState", + "description": "A collection of information about the state of the connection between service consumer and provider." + }, + "provisioningState": { + "$ref": "#/definitions/PrivateEndpointConnectionProvisioningState", + "description": "The provisioning state of the private endpoint connection resource.", + "readOnly": true + } + }, + "required": [ + "privateLinkServiceConnectionState" + ] + }, + "PrivateEndpointConnectionProvisioningState": { + "type": "string", + "description": "The current provisioning state.", + "enum": [ + "Succeeded", + "Creating", + "Deleting", + "Failed" + ], + "x-ms-enum": { + "name": "PrivateEndpointConnectionProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Connection has been provisioned" + }, + { + "name": "Creating", + "value": "Creating", + "description": "Connection is being created" + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "Connection is being deleted" + }, + { + "name": "Failed", + "value": "Failed", + "description": "Connection provisioning has failed" + } + ] + } + }, + "PrivateEndpointServiceConnectionStatus": { + "type": "string", + "description": "The private endpoint connection status.", + "enum": [ + "Pending", + "Approved", + "Rejected" + ], + "x-ms-enum": { + "name": "PrivateEndpointServiceConnectionStatus", + "modelAsString": true, + "values": [ + { + "name": "Pending", + "value": "Pending", + "description": "Connectionaiting for approval or rejection" + }, + { + "name": "Approved", + "value": "Approved", + "description": "Connection approved" + }, + { + "name": "Rejected", + "value": "Rejected", + "description": "Connection Rejected" + } + ] + } + }, + "PrivateLinkResource": { + "type": "object", + "description": "A private link resource.", + "properties": { + "properties": { + "$ref": "#/definitions/PrivateLinkResourceProperties", + "description": "Resource properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "./types.json#/definitions/Resource" + } + ] + }, + "PrivateLinkResourceListResult": { + "type": "object", + "description": "A list of private link resources.", + "properties": { + "value": { + "type": "array", + "description": "Array of private link resources", + "items": { + "$ref": "#/definitions/PrivateLinkResource" + }, + "x-ms-identifiers": [] + } + } + }, + "PrivateLinkResourceProperties": { + "type": "object", + "description": "Properties of a private link resource.", + "properties": { + "groupId": { + "type": "string", + "description": "The private link resource group id.", + "readOnly": true + }, + "requiredMembers": { + "type": "array", + "description": "The private link resource required member names.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "requiredZoneNames": { + "type": "array", + "description": "The private link resource private link DNS zone name.", + "items": { + "type": "string" + } + } + } + }, + "PrivateLinkServiceConnectionState": { + "type": "object", + "description": "A collection of information about the state of the connection between service consumer and provider.", + "properties": { + "status": { + "$ref": "#/definitions/PrivateEndpointServiceConnectionStatus", + "description": "Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service." + }, + "description": { + "type": "string", + "description": "The reason for approval/rejection of the connection." + }, + "actionsRequired": { + "type": "string", + "description": "A message indicating if changes on the service provider require any updates on the consumer." + } + } + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/openapi/v4/types.json b/packages/samples/common-types/openapi/v4/types.json new file mode 100644 index 0000000000..4fe6503fb0 --- /dev/null +++ b/packages/samples/common-types/openapi/v4/types.json @@ -0,0 +1,808 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "v4" + }, + "paths": {}, + "definitions": { + "ActionType": { + "type": "string", + "description": "Extensible enum. Indicates the action type. \"Internal\" refers to actions that are for internal only APIs.", + "enum": [ + "Internal" + ], + "x-ms-enum": { + "name": "ActionType", + "modelAsString": true, + "values": [ + { + "name": "Internal", + "value": "Internal", + "description": "Actions are for internal-only APIs." + } + ] + } + }, + "AzureEntityResource": { + "type": "object", + "description": "The resource model definition for an Azure Resource Manager resource with an etag.", + "properties": { + "etag": { + "type": "string", + "description": "Resource Etag.", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ] + }, + "CheckNameAvailabilityReason": { + "type": "string", + "description": "Possible reasons for a name not being available.", + "enum": [ + "Invalid", + "AlreadyExists" + ], + "x-ms-enum": { + "name": "CheckNameAvailabilityReason", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid", + "description": "Name is invalid." + }, + { + "name": "AlreadyExists", + "value": "AlreadyExists", + "description": "Name already exists." + } + ] + } + }, + "CheckNameAvailabilityRequest": { + "type": "object", + "description": "The check availability request body.", + "properties": { + "name": { + "type": "string", + "description": "The name of the resource for which availability needs to be checked." + }, + "type": { + "type": "string", + "description": "The resource type." + } + } + }, + "CheckNameAvailabilityResponse": { + "type": "object", + "description": "The check availability result.", + "properties": { + "nameAvailable": { + "type": "boolean", + "description": "Indicates if the resource name is available." + }, + "reason": { + "$ref": "#/definitions/CheckNameAvailabilityReason", + "description": "The reason why the given name is not available." + }, + "message": { + "type": "string", + "description": "Detailed reason why the given name is not available." + } + } + }, + "EncryptionProperties": { + "type": "object", + "description": "Configuration of key for data encryption", + "properties": { + "status": { + "$ref": "#/definitions/EncryptionStatus", + "description": "Indicates whether or not the encryption is enabled for container registry." + }, + "keyVaultProperties": { + "$ref": "#/definitions/KeyVaultProperties", + "description": "Key vault properties." + } + } + }, + "EncryptionStatus": { + "type": "string", + "description": "Indicates whether or not the encryption is enabled for container registry.", + "enum": [ + "enabled", + "disabled" + ], + "x-ms-enum": { + "name": "EncryptionStatus", + "modelAsString": true, + "values": [ + { + "name": "enabled", + "value": "enabled", + "description": "Encryption is enabled." + }, + { + "name": "disabled", + "value": "disabled", + "description": "Encryption is disabled." + } + ] + } + }, + "ErrorAdditionalInfo": { + "type": "object", + "description": "The resource management error additional info.", + "properties": { + "type": { + "type": "string", + "description": "The additional info type.", + "readOnly": true + }, + "info": { + "type": "object", + "description": "The additional info.", + "readOnly": true + } + } + }, + "ErrorDetail": { + "type": "object", + "description": "The error detail.", + "properties": { + "code": { + "type": "string", + "description": "The error code.", + "readOnly": true + }, + "message": { + "type": "string", + "description": "The error message.", + "readOnly": true + }, + "target": { + "type": "string", + "description": "The error target.", + "readOnly": true + }, + "details": { + "type": "array", + "description": "The error details.", + "items": { + "$ref": "#/definitions/ErrorDetail" + }, + "readOnly": true, + "x-ms-identifiers": [ + "message", + "target" + ] + }, + "additionalInfo": { + "type": "array", + "description": "The error additional info.", + "items": { + "$ref": "#/definitions/ErrorAdditionalInfo" + }, + "readOnly": true, + "x-ms-identifiers": [] + } + } + }, + "ErrorResponse": { + "type": "object", + "description": "Common error response for all Azure Resource Manager APIs to return error details for failed operations.", + "properties": { + "error": { + "$ref": "#/definitions/ErrorDetail", + "description": "The error object." + } + } + }, + "ExtensionResource": { + "type": "object", + "description": "The base extension resource.", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ] + }, + "Identity": { + "type": "object", + "description": "Identity for the resource.", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The principal ID of resource identity. The value must be an UUID.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The tenant ID of resource. The value must be an UUID.", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/ResourceIdentityType", + "description": "The identity type." + } + } + }, + "IfMatchHeader": { + "type": "object", + "description": "The default ARM If-Match header type." + }, + "IfNoneMatchHeader": { + "type": "object", + "description": "The default ARM If-Match header type." + }, + "KeyVaultProperties": { + "type": "object", + "properties": { + "keyIdentifier": { + "type": "string", + "description": "Key vault uri to access the encryption key." + }, + "identity": { + "type": "string", + "description": "The client ID of the identity which will be used to access key vault." + } + } + }, + "LocationData": { + "type": "object", + "description": "Metadata pertaining to the geographic location of the resource.", + "properties": { + "name": { + "type": "string", + "description": "A canonical name for the geographic or physical location.", + "maxLength": 256 + }, + "city": { + "type": "string", + "description": "The city or locality where the resource is located." + }, + "district": { + "type": "string", + "description": "The district, state, or province where the resource is located." + }, + "countryOrRegion": { + "type": "string", + "description": "The country or region where the resource is located" + } + }, + "required": [ + "name" + ] + }, + "LocationResourceParameter": { + "type": "object", + "description": "The default location parameter type.", + "properties": { + "location": { + "type": "string", + "description": "The name of the Azure region.", + "minLength": 1 + } + }, + "required": [ + "location" + ] + }, + "Operation": { + "type": "object", + "description": "Details of a REST API operation, returned from the Resource Provider Operations API", + "properties": { + "name": { + "type": "string", + "description": "The name of the operation, as per Resource-Based Access Control (RBAC). Examples: \"Microsoft.Compute/virtualMachines/write\", \"Microsoft.Compute/virtualMachines/capture/action\"", + "readOnly": true + }, + "isDataAction": { + "type": "boolean", + "description": "Whether the operation applies to data-plane. This is \"true\" for data-plane operations and \"false\" for Azure Resource Manager/control-plane operations.", + "readOnly": true + }, + "display": { + "$ref": "#/definitions/OperationDisplay", + "description": "Localized display information for this particular operation." + }, + "origin": { + "$ref": "#/definitions/Origin", + "description": "The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is \"user,system\"", + "readOnly": true + }, + "actionType": { + "$ref": "#/definitions/ActionType", + "description": "Extensible enum. Indicates the action type. \"Internal\" refers to actions that are for internal only APIs." + } + } + }, + "OperationDisplay": { + "type": "object", + "description": "Localized display information for and operation.", + "properties": { + "provider": { + "type": "string", + "description": "The localized friendly form of the resource provider name, e.g. \"Microsoft Monitoring Insights\" or \"Microsoft Compute\"." + }, + "resource": { + "type": "string", + "description": "The localized friendly name of the resource type related to this operation. E.g. \"Virtual Machines\" or \"Job Schedule Collections\"." + }, + "operation": { + "type": "string", + "description": "The concise, localized friendly name for the operation; suitable for dropdowns. E.g. \"Create or Update Virtual Machine\", \"Restart Virtual Machine\"." + }, + "description": { + "type": "string", + "description": "The short, localized friendly description of the operation; suitable for tool tips and detailed views." + } + } + }, + "OperationListResult": { + "type": "object", + "description": "A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to get the next set of results.", + "properties": { + "value": { + "type": "array", + "description": "The Operation items on this page", + "items": { + "$ref": "#/definitions/Operation" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "OperationStatusResult": { + "type": "object", + "description": "The current status of an async operation.", + "properties": { + "id": { + "type": "string", + "description": "Fully qualified ID for the async operation." + }, + "name": { + "type": "string", + "description": "Name of the async operation." + }, + "status": { + "type": "string", + "description": "Operation status." + }, + "percentComplete": { + "type": "number", + "format": "double", + "description": "Percent of the operation that is complete.", + "minimum": 0, + "maximum": 100 + }, + "startTime": { + "type": "string", + "format": "date-time", + "description": "The start time of the operation." + }, + "endTime": { + "type": "string", + "format": "date-time", + "description": "The end time of the operation." + }, + "operations": { + "type": "array", + "description": "The operations list.", + "items": { + "$ref": "#/definitions/OperationStatusResult" + } + }, + "error": { + "$ref": "#/definitions/ErrorDetail", + "description": "If present, details of the operation error." + } + }, + "required": [ + "status" + ] + }, + "Origin": { + "type": "string", + "description": "The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is \"user,system\"", + "enum": [ + "user", + "system", + "user,system" + ], + "x-ms-enum": { + "name": "Origin", + "modelAsString": true, + "values": [ + { + "name": "user", + "value": "user", + "description": "Indicates the operation is initiated by a user." + }, + { + "name": "system", + "value": "system", + "description": "Indicates the operation is initiated by a system." + }, + { + "name": "user,system", + "value": "user,system", + "description": "Indicates the operation is initiated by a user or system." + } + ] + } + }, + "Plan": { + "type": "object", + "description": "Plan for the resource.", + "properties": { + "name": { + "type": "string", + "description": "A user defined name of the 3rd Party Artifact that is being procured." + }, + "publisher": { + "type": "string", + "description": "The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic" + }, + "product": { + "type": "string", + "description": "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding." + }, + "promotionCode": { + "type": "string", + "description": "A publisher provided promotion code as provisioned in Data Market for the said product/artifact." + }, + "version": { + "type": "string", + "description": "The version of the desired product/artifact." + } + }, + "required": [ + "name", + "publisher", + "product" + ] + }, + "ProxyResource": { + "type": "object", + "description": "The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ] + }, + "Resource": { + "type": "object", + "description": "Common fields that are returned in the response for all Azure Resource Manager resources", + "properties": { + "id": { + "type": "string", + "format": "arm-id", + "description": "Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of the resource", + "readOnly": true + }, + "type": { + "type": "string", + "description": "The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or \"Microsoft.Storage/storageAccounts\"", + "readOnly": true + }, + "systemData": { + "$ref": "#/definitions/SystemData", + "description": "Azure Resource Manager metadata containing createdBy and modifiedBy information.", + "readOnly": true + } + }, + "x-ms-azure-resource": true + }, + "ResourceIdentityType": { + "type": "string", + "enum": [ + "SystemAssigned" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-nullable": false + }, + "ResourceModelWithAllowedPropertySet": { + "type": "object", + "description": "The resource model definition containing the full set of allowed properties for a resource. Except properties bag, there cannot be a top level property outside of this set.", + "properties": { + "managedBy": { + "type": "string", + "description": "The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource.\nIf this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource." + }, + "kind": { + "type": "string", + "description": "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type.\nIf supported, the resource provider must validate and persist this value.", + "pattern": "^[-\\w\\._,\\(\\)]+$", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "eTag": { + "type": "string", + "description": "The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the normal etag convention.\nEntity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19),\nIf-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields." + }, + "identity": { + "$ref": "#/definitions/Identity" + }, + "sku": { + "$ref": "#/definitions/Sku" + }, + "plan": { + "$ref": "#/definitions/Plan" + } + }, + "allOf": [ + { + "$ref": "#/definitions/TrackedResource" + } + ], + "x-ms-azure-resource": true + }, + "Sku": { + "type": "object", + "description": "The resource model definition representing SKU", + "properties": { + "name": { + "type": "string", + "description": "The name of the SKU. Ex - P3. It is typically a letter+number code" + }, + "tier": { + "$ref": "#/definitions/SkuTier", + "description": "This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT." + }, + "size": { + "type": "string", + "description": "The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code." + }, + "family": { + "type": "string", + "description": "If the service has different generations of hardware, for the same SKU, then that can be captured here." + }, + "capacity": { + "type": "integer", + "format": "int32", + "description": "If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted." + } + }, + "required": [ + "name" + ] + }, + "SkuTier": { + "type": "string", + "description": "This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.", + "enum": [ + "Free", + "Basic", + "Standard", + "Premium" + ], + "x-ms-enum": { + "name": "SkuTier", + "modelAsString": false, + "values": [ + { + "name": "Free", + "value": "Free", + "description": "The Free service tier." + }, + { + "name": "Basic", + "value": "Basic", + "description": "The Basic service tier." + }, + { + "name": "Standard", + "value": "Standard", + "description": "The Standard service tier." + }, + { + "name": "Premium", + "value": "Premium", + "description": "The Premium service tier." + } + ] + } + }, + "SystemData": { + "type": "object", + "description": "Metadata pertaining to creation and last modification of the resource.", + "properties": { + "createdBy": { + "type": "string", + "description": "The identity that created the resource." + }, + "createdByType": { + "$ref": "#/definitions/createdByType", + "description": "The type of identity that created the resource." + }, + "createdAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp of resource creation (UTC)." + }, + "lastModifiedBy": { + "type": "string", + "description": "The identity that last modified the resource." + }, + "lastModifiedByType": { + "$ref": "#/definitions/createdByType", + "description": "The type of identity that last modified the resource." + }, + "lastModifiedAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp of resource last modification (UTC)" + } + } + }, + "TrackedResource": { + "type": "object", + "description": "The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'", + "properties": { + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } + }, + "location": { + "type": "string", + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] + } + }, + "required": [ + "location" + ], + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ] + }, + "createdByType": { + "type": "string", + "description": "The kind of entity that created the resource.", + "enum": [ + "User", + "Application", + "ManagedIdentity", + "Key" + ], + "x-ms-enum": { + "name": "createdByType", + "modelAsString": true, + "values": [ + { + "name": "User", + "value": "User", + "description": "The entity was created by a user." + }, + { + "name": "Application", + "value": "Application", + "description": "The entity was created by an application." + }, + { + "name": "ManagedIdentity", + "value": "ManagedIdentity", + "description": "The entity was created by a managed identity." + }, + { + "name": "Key", + "value": "Key", + "description": "The entity was created by a key." + } + ] + } + } + }, + "parameters": { + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "The API version to use for this operation.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "client", + "x-ms-client-name": "apiVersion" + }, + "LocationParameter": { + "name": "location", + "in": "path", + "description": "The name of Azure region.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method" + }, + "ManagementGroupNameParameter": { + "name": "managementGroupName", + "in": "path", + "description": "The name of the management group. The name is case insensitive.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 90, + "x-ms-parameter-location": "method" + }, + "OperationIdParameter": { + "name": "operationId", + "in": "path", + "description": "The ID of an ongoing async operation.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method" + }, + "ResourceGroupNameParameter": { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group. The name is case insensitive.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 90, + "pattern": "^[-\\w\\._\\(\\)]+$", + "x-ms-parameter-location": "method" + }, + "ScopeParameter": { + "name": "scope", + "in": "path", + "description": "The scope at which the operation is performed.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method", + "x-ms-skip-url-encoding": true + }, + "SubscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "description": "The ID of the target subscription. The value must be an UUID.", + "required": true, + "type": "string", + "format": "uuid", + "x-ms-parameter-location": "client" + }, + "TenantIdParameter": { + "name": "tenantId", + "in": "path", + "description": "The Azure tenant ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000)", + "required": true, + "type": "string", + "format": "uuid", + "x-ms-parameter-location": "method" + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/openapi/v5/customermanagedkeys.json b/packages/samples/common-types/openapi/v5/customermanagedkeys.json new file mode 100644 index 0000000000..51e8ea38b0 --- /dev/null +++ b/packages/samples/common-types/openapi/v5/customermanagedkeys.json @@ -0,0 +1,120 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "v5" + }, + "paths": {}, + "definitions": { + "CustomerManagedKeyEncryption": { + "type": "object", + "description": "Customer-managed key encryption properties for the resource.", + "properties": { + "keyEncryptionKeyIdentity": { + "$ref": "#/definitions/KeyEncryptionKeyIdentity", + "description": "All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault." + }, + "keyEncryptionKeyUrl": { + "type": "string", + "description": "key encryption key Url, versioned or non-versioned. Ex: https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 or https://contosovault.vault.azure.net/keys/contosokek." + } + } + }, + "Encryption": { + "type": "object", + "description": "(Optional) Discouraged to include in resource definition. Only needed where it is possible to disable platform (AKA infrastructure) encryption. Azure SQL TDE is an example of this. Values are enabled and disabled.", + "properties": { + "infrastructureEncryption": { + "$ref": "#/definitions/InfrastructureEncryption", + "description": "Values are enabled and disabled." + } + } + }, + "InfrastructureEncryption": { + "type": "string", + "description": "(Optional) Discouraged to include in resource definition. Only needed where it is possible to disable platform (AKA infrastructure) encryption. Azure SQL TDE is an example of this. Values are enabled and disabled.", + "enum": [ + "enabled", + "disabled" + ], + "x-ms-enum": { + "name": "InfrastructureEncryption", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "enabled", + "description": "Encryption is enabled" + }, + { + "name": "Disabled", + "value": "disabled", + "description": "Encryption is disabled" + } + ] + } + }, + "KeyEncryptionKeyIdentity": { + "type": "object", + "description": "All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault.", + "properties": { + "identityType": { + "$ref": "#/definitions/KeyEncryptionKeyIdentityType", + "description": "The type of identity to use. Values can be systemAssignedIdentity, userAssignedIdentity, or delegatedResourceIdentity." + }, + "userAssignedIdentityResourceId": { + "type": "string", + "format": "arm-id", + "description": "User assigned identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity.", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.ManagedIdentity/userAssignedIdentities" + } + ] + } + }, + "federatedClientId": { + "type": "string", + "format": "uuid", + "description": "application client identity to use for accessing key encryption key Url in a different tenant. Ex: f83c6b1b-4d34-47e4-bb34-9d83df58b540" + }, + "delegatedIdentityClientId": { + "type": "string", + "format": "uuid", + "description": "delegated identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity and userAssignedIdentity - internal use only." + } + } + }, + "KeyEncryptionKeyIdentityType": { + "type": "string", + "description": "The type of identity to use.", + "enum": [ + "systemAssignedIdentity", + "userAssignedIdentity", + "delegatedResourceIdentity" + ], + "x-ms-enum": { + "name": "KeyEncryptionKeyIdentityType", + "modelAsString": true, + "values": [ + { + "name": "SystemAssignedIdentity", + "value": "systemAssignedIdentity", + "description": "System assigned identity" + }, + { + "name": "UserAssignedIdentity", + "value": "userAssignedIdentity", + "description": "User assigned identity" + }, + { + "name": "DelegatedResourceIdentity", + "value": "delegatedResourceIdentity", + "description": "Delegated identity" + } + ] + } + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/openapi/v5/managedidentity.json b/packages/samples/common-types/openapi/v5/managedidentity.json new file mode 100644 index 0000000000..0f29bfa9fb --- /dev/null +++ b/packages/samples/common-types/openapi/v5/managedidentity.json @@ -0,0 +1,153 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "v5" + }, + "paths": {}, + "definitions": { + "ManagedServiceIdentity": { + "type": "object", + "description": "Managed service identity (system assigned and/or user assigned identities)", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/ManagedServiceIdentityType", + "description": "The type of managed identity assigned to this resource." + }, + "userAssignedIdentities": { + "type": "object", + "description": "The identities assigned to this resource by the user.", + "x-nullable": true, + "additionalProperties": { + "$ref": "#/definitions/UserAssignedIdentity" + } + } + }, + "required": [ + "type" + ] + }, + "ManagedServiceIdentityType": { + "type": "string", + "description": "Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).", + "enum": [ + "None", + "SystemAssigned", + "UserAssigned", + "SystemAssigned,UserAssigned" + ], + "x-ms-enum": { + "name": "ManagedServiceIdentityType", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "None", + "description": "No managed identity." + }, + { + "name": "SystemAssigned", + "value": "SystemAssigned", + "description": "System assigned managed identity." + }, + { + "name": "UserAssigned", + "value": "UserAssigned", + "description": "User assigned managed identity." + }, + { + "name": "SystemAndUserAssigned", + "value": "SystemAssigned,UserAssigned", + "description": "System and user assigned managed identity." + } + ] + } + }, + "SystemAssignedServiceIdentity": { + "type": "object", + "description": "Managed service identity (either system assigned, or none)", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/SystemAssignedServiceIdentityType", + "description": "The type of managed identity assigned to this resource." + } + }, + "required": [ + "type" + ] + }, + "SystemAssignedServiceIdentityType": { + "type": "string", + "description": "Type of managed service identity (either system assigned, or none).", + "enum": [ + "None", + "SystemAssigned" + ], + "x-ms-enum": { + "name": "SystemAssignedServiceIdentityType", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "None", + "description": "No managed system identity." + }, + { + "name": "SystemAssigned", + "value": "SystemAssigned", + "description": "System assigned managed system identity." + } + ] + } + }, + "UserAssignedIdentities": { + "type": "object", + "description": "The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.", + "additionalProperties": { + "$ref": "#/definitions/UserAssignedIdentity" + } + }, + "UserAssignedIdentity": { + "type": "object", + "description": "User assigned identity properties", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The principal ID of the assigned identity.", + "readOnly": true + }, + "clientId": { + "type": "string", + "format": "uuid", + "description": "The client ID of the assigned identity.", + "readOnly": true + } + } + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/openapi/v5/privatelinks.json b/packages/samples/common-types/openapi/v5/privatelinks.json new file mode 100644 index 0000000000..2d57eb1e11 --- /dev/null +++ b/packages/samples/common-types/openapi/v5/privatelinks.json @@ -0,0 +1,229 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "v5" + }, + "paths": {}, + "definitions": { + "PrivateEndpoint": { + "type": "object", + "description": "The Private Endpoint resource.", + "properties": { + "id": { + "type": "string", + "format": "arm-id", + "description": "The resource identifier for private endpoint", + "readOnly": true, + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Network/privateEndpoints" + } + ] + } + } + } + }, + "PrivateEndpointConnection": { + "type": "object", + "description": "The private endpoint connection resource", + "properties": { + "properties": { + "$ref": "#/definitions/PrivateEndpointConnectionProperties", + "description": "The private endpoint connection properties", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "./types.json#/definitions/Resource" + } + ] + }, + "PrivateEndpointConnectionListResult": { + "type": "object", + "description": "List of private endpoint connections associated with the specified resource.", + "properties": { + "value": { + "type": "array", + "description": "Array of private endpoint connections.", + "items": { + "$ref": "#/definitions/PrivateEndpointConnection" + }, + "x-ms-identifiers": [] + } + } + }, + "PrivateEndpointConnectionProperties": { + "type": "object", + "description": "Properties of the private endpoint connection.", + "properties": { + "groupIds": { + "type": "array", + "description": "The group ids for the private endpoint resource.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "privateEndpoint": { + "$ref": "#/definitions/PrivateEndpoint", + "description": "The private endpoint resource." + }, + "privateLinkServiceConnectionState": { + "$ref": "#/definitions/PrivateLinkServiceConnectionState", + "description": "A collection of information about the state of the connection between service consumer and provider." + }, + "provisioningState": { + "$ref": "#/definitions/PrivateEndpointConnectionProvisioningState", + "description": "The provisioning state of the private endpoint connection resource.", + "readOnly": true + } + }, + "required": [ + "privateLinkServiceConnectionState" + ] + }, + "PrivateEndpointConnectionProvisioningState": { + "type": "string", + "description": "The current provisioning state.", + "enum": [ + "Succeeded", + "Creating", + "Deleting", + "Failed" + ], + "x-ms-enum": { + "name": "PrivateEndpointConnectionProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Connection has been provisioned" + }, + { + "name": "Creating", + "value": "Creating", + "description": "Connection is being created" + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "Connection is being deleted" + }, + { + "name": "Failed", + "value": "Failed", + "description": "Connection provisioning has failed" + } + ] + } + }, + "PrivateEndpointServiceConnectionStatus": { + "type": "string", + "description": "The private endpoint connection status.", + "enum": [ + "Pending", + "Approved", + "Rejected" + ], + "x-ms-enum": { + "name": "PrivateEndpointServiceConnectionStatus", + "modelAsString": true, + "values": [ + { + "name": "Pending", + "value": "Pending", + "description": "Connectionaiting for approval or rejection" + }, + { + "name": "Approved", + "value": "Approved", + "description": "Connection approved" + }, + { + "name": "Rejected", + "value": "Rejected", + "description": "Connection Rejected" + } + ] + } + }, + "PrivateLinkResource": { + "type": "object", + "description": "A private link resource.", + "properties": { + "properties": { + "$ref": "#/definitions/PrivateLinkResourceProperties", + "description": "Resource properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "./types.json#/definitions/Resource" + } + ] + }, + "PrivateLinkResourceListResult": { + "type": "object", + "description": "A list of private link resources.", + "properties": { + "value": { + "type": "array", + "description": "Array of private link resources", + "items": { + "$ref": "#/definitions/PrivateLinkResource" + }, + "x-ms-identifiers": [] + } + } + }, + "PrivateLinkResourceProperties": { + "type": "object", + "description": "Properties of a private link resource.", + "properties": { + "groupId": { + "type": "string", + "description": "The private link resource group id.", + "readOnly": true + }, + "requiredMembers": { + "type": "array", + "description": "The private link resource required member names.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "requiredZoneNames": { + "type": "array", + "description": "The private link resource private link DNS zone name.", + "items": { + "type": "string" + } + } + } + }, + "PrivateLinkServiceConnectionState": { + "type": "object", + "description": "A collection of information about the state of the connection between service consumer and provider.", + "properties": { + "status": { + "$ref": "#/definitions/PrivateEndpointServiceConnectionStatus", + "description": "Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service." + }, + "description": { + "type": "string", + "description": "The reason for approval/rejection of the connection." + }, + "actionsRequired": { + "type": "string", + "description": "A message indicating if changes on the service provider require any updates on the consumer." + } + } + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/openapi/v5/types.json b/packages/samples/common-types/openapi/v5/types.json new file mode 100644 index 0000000000..9107b311f5 --- /dev/null +++ b/packages/samples/common-types/openapi/v5/types.json @@ -0,0 +1,808 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "v5" + }, + "paths": {}, + "definitions": { + "ActionType": { + "type": "string", + "description": "Extensible enum. Indicates the action type. \"Internal\" refers to actions that are for internal only APIs.", + "enum": [ + "Internal" + ], + "x-ms-enum": { + "name": "ActionType", + "modelAsString": true, + "values": [ + { + "name": "Internal", + "value": "Internal", + "description": "Actions are for internal-only APIs." + } + ] + } + }, + "AzureEntityResource": { + "type": "object", + "description": "The resource model definition for an Azure Resource Manager resource with an etag.", + "properties": { + "etag": { + "type": "string", + "description": "Resource Etag.", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ] + }, + "CheckNameAvailabilityReason": { + "type": "string", + "description": "Possible reasons for a name not being available.", + "enum": [ + "Invalid", + "AlreadyExists" + ], + "x-ms-enum": { + "name": "CheckNameAvailabilityReason", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid", + "description": "Name is invalid." + }, + { + "name": "AlreadyExists", + "value": "AlreadyExists", + "description": "Name already exists." + } + ] + } + }, + "CheckNameAvailabilityRequest": { + "type": "object", + "description": "The check availability request body.", + "properties": { + "name": { + "type": "string", + "description": "The name of the resource for which availability needs to be checked." + }, + "type": { + "type": "string", + "description": "The resource type." + } + } + }, + "CheckNameAvailabilityResponse": { + "type": "object", + "description": "The check availability result.", + "properties": { + "nameAvailable": { + "type": "boolean", + "description": "Indicates if the resource name is available." + }, + "reason": { + "$ref": "#/definitions/CheckNameAvailabilityReason", + "description": "The reason why the given name is not available." + }, + "message": { + "type": "string", + "description": "Detailed reason why the given name is not available." + } + } + }, + "EncryptionProperties": { + "type": "object", + "description": "Configuration of key for data encryption", + "properties": { + "status": { + "$ref": "#/definitions/EncryptionStatus", + "description": "Indicates whether or not the encryption is enabled for container registry." + }, + "keyVaultProperties": { + "$ref": "#/definitions/KeyVaultProperties", + "description": "Key vault properties." + } + } + }, + "EncryptionStatus": { + "type": "string", + "description": "Indicates whether or not the encryption is enabled for container registry.", + "enum": [ + "enabled", + "disabled" + ], + "x-ms-enum": { + "name": "EncryptionStatus", + "modelAsString": true, + "values": [ + { + "name": "enabled", + "value": "enabled", + "description": "Encryption is enabled." + }, + { + "name": "disabled", + "value": "disabled", + "description": "Encryption is disabled." + } + ] + } + }, + "ErrorAdditionalInfo": { + "type": "object", + "description": "The resource management error additional info.", + "properties": { + "type": { + "type": "string", + "description": "The additional info type.", + "readOnly": true + }, + "info": { + "type": "object", + "description": "The additional info.", + "readOnly": true + } + } + }, + "ErrorDetail": { + "type": "object", + "description": "The error detail.", + "properties": { + "code": { + "type": "string", + "description": "The error code.", + "readOnly": true + }, + "message": { + "type": "string", + "description": "The error message.", + "readOnly": true + }, + "target": { + "type": "string", + "description": "The error target.", + "readOnly": true + }, + "details": { + "type": "array", + "description": "The error details.", + "items": { + "$ref": "#/definitions/ErrorDetail" + }, + "readOnly": true, + "x-ms-identifiers": [ + "message", + "target" + ] + }, + "additionalInfo": { + "type": "array", + "description": "The error additional info.", + "items": { + "$ref": "#/definitions/ErrorAdditionalInfo" + }, + "readOnly": true, + "x-ms-identifiers": [] + } + } + }, + "ErrorResponse": { + "type": "object", + "description": "Common error response for all Azure Resource Manager APIs to return error details for failed operations.", + "properties": { + "error": { + "$ref": "#/definitions/ErrorDetail", + "description": "The error object." + } + } + }, + "ExtensionResource": { + "type": "object", + "description": "The base extension resource.", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ] + }, + "Identity": { + "type": "object", + "description": "Identity for the resource.", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The principal ID of resource identity. The value must be an UUID.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The tenant ID of resource. The value must be an UUID.", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/ResourceIdentityType", + "description": "The identity type." + } + } + }, + "IfMatchHeader": { + "type": "object", + "description": "The default ARM If-Match header type." + }, + "IfNoneMatchHeader": { + "type": "object", + "description": "The default ARM If-Match header type." + }, + "KeyVaultProperties": { + "type": "object", + "properties": { + "keyIdentifier": { + "type": "string", + "description": "Key vault uri to access the encryption key." + }, + "identity": { + "type": "string", + "description": "The client ID of the identity which will be used to access key vault." + } + } + }, + "LocationData": { + "type": "object", + "description": "Metadata pertaining to the geographic location of the resource.", + "properties": { + "name": { + "type": "string", + "description": "A canonical name for the geographic or physical location.", + "maxLength": 256 + }, + "city": { + "type": "string", + "description": "The city or locality where the resource is located." + }, + "district": { + "type": "string", + "description": "The district, state, or province where the resource is located." + }, + "countryOrRegion": { + "type": "string", + "description": "The country or region where the resource is located" + } + }, + "required": [ + "name" + ] + }, + "LocationResourceParameter": { + "type": "object", + "description": "The default location parameter type.", + "properties": { + "location": { + "type": "string", + "description": "The name of the Azure region.", + "minLength": 1 + } + }, + "required": [ + "location" + ] + }, + "Operation": { + "type": "object", + "description": "Details of a REST API operation, returned from the Resource Provider Operations API", + "properties": { + "name": { + "type": "string", + "description": "The name of the operation, as per Resource-Based Access Control (RBAC). Examples: \"Microsoft.Compute/virtualMachines/write\", \"Microsoft.Compute/virtualMachines/capture/action\"", + "readOnly": true + }, + "isDataAction": { + "type": "boolean", + "description": "Whether the operation applies to data-plane. This is \"true\" for data-plane operations and \"false\" for Azure Resource Manager/control-plane operations.", + "readOnly": true + }, + "display": { + "$ref": "#/definitions/OperationDisplay", + "description": "Localized display information for this particular operation." + }, + "origin": { + "$ref": "#/definitions/Origin", + "description": "The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is \"user,system\"", + "readOnly": true + }, + "actionType": { + "$ref": "#/definitions/ActionType", + "description": "Extensible enum. Indicates the action type. \"Internal\" refers to actions that are for internal only APIs." + } + } + }, + "OperationDisplay": { + "type": "object", + "description": "Localized display information for and operation.", + "properties": { + "provider": { + "type": "string", + "description": "The localized friendly form of the resource provider name, e.g. \"Microsoft Monitoring Insights\" or \"Microsoft Compute\"." + }, + "resource": { + "type": "string", + "description": "The localized friendly name of the resource type related to this operation. E.g. \"Virtual Machines\" or \"Job Schedule Collections\"." + }, + "operation": { + "type": "string", + "description": "The concise, localized friendly name for the operation; suitable for dropdowns. E.g. \"Create or Update Virtual Machine\", \"Restart Virtual Machine\"." + }, + "description": { + "type": "string", + "description": "The short, localized friendly description of the operation; suitable for tool tips and detailed views." + } + } + }, + "OperationListResult": { + "type": "object", + "description": "A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to get the next set of results.", + "properties": { + "value": { + "type": "array", + "description": "The Operation items on this page", + "items": { + "$ref": "#/definitions/Operation" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "OperationStatusResult": { + "type": "object", + "description": "The current status of an async operation.", + "properties": { + "id": { + "type": "string", + "description": "Fully qualified ID for the async operation." + }, + "name": { + "type": "string", + "description": "Name of the async operation." + }, + "status": { + "type": "string", + "description": "Operation status." + }, + "percentComplete": { + "type": "number", + "format": "double", + "description": "Percent of the operation that is complete.", + "minimum": 0, + "maximum": 100 + }, + "startTime": { + "type": "string", + "format": "date-time", + "description": "The start time of the operation." + }, + "endTime": { + "type": "string", + "format": "date-time", + "description": "The end time of the operation." + }, + "operations": { + "type": "array", + "description": "The operations list.", + "items": { + "$ref": "#/definitions/OperationStatusResult" + } + }, + "error": { + "$ref": "#/definitions/ErrorDetail", + "description": "If present, details of the operation error." + } + }, + "required": [ + "status" + ] + }, + "Origin": { + "type": "string", + "description": "The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is \"user,system\"", + "enum": [ + "user", + "system", + "user,system" + ], + "x-ms-enum": { + "name": "Origin", + "modelAsString": true, + "values": [ + { + "name": "user", + "value": "user", + "description": "Indicates the operation is initiated by a user." + }, + { + "name": "system", + "value": "system", + "description": "Indicates the operation is initiated by a system." + }, + { + "name": "user,system", + "value": "user,system", + "description": "Indicates the operation is initiated by a user or system." + } + ] + } + }, + "Plan": { + "type": "object", + "description": "Plan for the resource.", + "properties": { + "name": { + "type": "string", + "description": "A user defined name of the 3rd Party Artifact that is being procured." + }, + "publisher": { + "type": "string", + "description": "The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic" + }, + "product": { + "type": "string", + "description": "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding." + }, + "promotionCode": { + "type": "string", + "description": "A publisher provided promotion code as provisioned in Data Market for the said product/artifact." + }, + "version": { + "type": "string", + "description": "The version of the desired product/artifact." + } + }, + "required": [ + "name", + "publisher", + "product" + ] + }, + "ProxyResource": { + "type": "object", + "description": "The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ] + }, + "Resource": { + "type": "object", + "description": "Common fields that are returned in the response for all Azure Resource Manager resources", + "properties": { + "id": { + "type": "string", + "format": "arm-id", + "description": "Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of the resource", + "readOnly": true + }, + "type": { + "type": "string", + "description": "The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or \"Microsoft.Storage/storageAccounts\"", + "readOnly": true + }, + "systemData": { + "$ref": "#/definitions/SystemData", + "description": "Azure Resource Manager metadata containing createdBy and modifiedBy information.", + "readOnly": true + } + }, + "x-ms-azure-resource": true + }, + "ResourceIdentityType": { + "type": "string", + "enum": [ + "SystemAssigned" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-nullable": false + }, + "ResourceModelWithAllowedPropertySet": { + "type": "object", + "description": "The resource model definition containing the full set of allowed properties for a resource. Except properties bag, there cannot be a top level property outside of this set.", + "properties": { + "managedBy": { + "type": "string", + "description": "The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource.\nIf this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource." + }, + "kind": { + "type": "string", + "description": "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type.\nIf supported, the resource provider must validate and persist this value.", + "pattern": "^[-\\w\\._,\\(\\)]+$", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "eTag": { + "type": "string", + "description": "The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the normal etag convention.\nEntity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19),\nIf-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields." + }, + "identity": { + "$ref": "#/definitions/Identity" + }, + "sku": { + "$ref": "#/definitions/Sku" + }, + "plan": { + "$ref": "#/definitions/Plan" + } + }, + "allOf": [ + { + "$ref": "#/definitions/TrackedResource" + } + ], + "x-ms-azure-resource": true + }, + "Sku": { + "type": "object", + "description": "The resource model definition representing SKU", + "properties": { + "name": { + "type": "string", + "description": "The name of the SKU. Ex - P3. It is typically a letter+number code" + }, + "tier": { + "$ref": "#/definitions/SkuTier", + "description": "This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT." + }, + "size": { + "type": "string", + "description": "The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code." + }, + "family": { + "type": "string", + "description": "If the service has different generations of hardware, for the same SKU, then that can be captured here." + }, + "capacity": { + "type": "integer", + "format": "int32", + "description": "If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted." + } + }, + "required": [ + "name" + ] + }, + "SkuTier": { + "type": "string", + "description": "This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.", + "enum": [ + "Free", + "Basic", + "Standard", + "Premium" + ], + "x-ms-enum": { + "name": "SkuTier", + "modelAsString": false, + "values": [ + { + "name": "Free", + "value": "Free", + "description": "The Free service tier." + }, + { + "name": "Basic", + "value": "Basic", + "description": "The Basic service tier." + }, + { + "name": "Standard", + "value": "Standard", + "description": "The Standard service tier." + }, + { + "name": "Premium", + "value": "Premium", + "description": "The Premium service tier." + } + ] + } + }, + "SystemData": { + "type": "object", + "description": "Metadata pertaining to creation and last modification of the resource.", + "properties": { + "createdBy": { + "type": "string", + "description": "The identity that created the resource." + }, + "createdByType": { + "$ref": "#/definitions/createdByType", + "description": "The type of identity that created the resource." + }, + "createdAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp of resource creation (UTC)." + }, + "lastModifiedBy": { + "type": "string", + "description": "The identity that last modified the resource." + }, + "lastModifiedByType": { + "$ref": "#/definitions/createdByType", + "description": "The type of identity that last modified the resource." + }, + "lastModifiedAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp of resource last modification (UTC)" + } + } + }, + "TrackedResource": { + "type": "object", + "description": "The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'", + "properties": { + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } + }, + "location": { + "type": "string", + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] + } + }, + "required": [ + "location" + ], + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ] + }, + "createdByType": { + "type": "string", + "description": "The kind of entity that created the resource.", + "enum": [ + "User", + "Application", + "ManagedIdentity", + "Key" + ], + "x-ms-enum": { + "name": "createdByType", + "modelAsString": true, + "values": [ + { + "name": "User", + "value": "User", + "description": "The entity was created by a user." + }, + { + "name": "Application", + "value": "Application", + "description": "The entity was created by an application." + }, + { + "name": "ManagedIdentity", + "value": "ManagedIdentity", + "description": "The entity was created by a managed identity." + }, + { + "name": "Key", + "value": "Key", + "description": "The entity was created by a key." + } + ] + } + } + }, + "parameters": { + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "The API version to use for this operation.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "client", + "x-ms-client-name": "apiVersion" + }, + "LocationParameter": { + "name": "location", + "in": "path", + "description": "The name of Azure region.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method" + }, + "ManagementGroupNameParameter": { + "name": "managementGroupName", + "in": "path", + "description": "The name of the management group. The name is case insensitive.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 90, + "x-ms-parameter-location": "method" + }, + "OperationIdParameter": { + "name": "operationId", + "in": "path", + "description": "The ID of an ongoing async operation.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method" + }, + "ResourceGroupNameParameter": { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group. The name is case insensitive.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 90, + "pattern": "^[-\\w\\._\\(\\)]+$", + "x-ms-parameter-location": "method" + }, + "ScopeParameter": { + "name": "scope", + "in": "path", + "description": "The scope at which the operation is performed.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method", + "x-ms-skip-url-encoding": true + }, + "SubscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "description": "The ID of the target subscription. The value must be an UUID.", + "required": true, + "type": "string", + "format": "uuid", + "x-ms-parameter-location": "client" + }, + "TenantIdParameter": { + "name": "tenantId", + "in": "path", + "description": "The Azure tenant ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000)", + "required": true, + "type": "string", + "format": "uuid", + "x-ms-parameter-location": "method" + } + } +} \ No newline at end of file diff --git a/packages/samples/common-types/sort-openapi.ts b/packages/samples/common-types/sort-openapi.ts new file mode 100644 index 0000000000..8addfd5bce --- /dev/null +++ b/packages/samples/common-types/sort-openapi.ts @@ -0,0 +1,37 @@ +import { sortOpenAPIDocument } from "@azure-tools/typespec-autorest"; +import { readFile, readdir, writeFile } from "fs/promises"; +import { dirname, resolve } from "path"; +import { fileURLToPath } from "url"; + +const dir = dirname(fileURLToPath(import.meta.url)); + +async function findJsonFiles(folder: string): Promise { + const items = await readdir(folder, { withFileTypes: true }); + + return ( + await Promise.all( + items.map(async (item) => { + if (item.isDirectory()) { + const files = await findJsonFiles(resolve(folder, item.name)); + return files.map((x) => resolve(folder, x)); + } + + if (item.name.endsWith(".json")) { + return [resolve(folder, item.name)]; + } else { + return []; + } + }) + ) + ).flat(); +} + +const files = await findJsonFiles(resolve(dir, "existing")); +console.log("Files", files); + +for (const file of files) { + const content = await readFile(file); + const document = JSON.parse(content.toString()); + const sorted = sortOpenAPIDocument(document); + await writeFile(file, JSON.stringify(sorted, null, 2)); +} diff --git a/packages/samples/common-types/src/base.tsp b/packages/samples/common-types/src/base.tsp new file mode 100644 index 0000000000..1292571779 --- /dev/null +++ b/packages/samples/common-types/src/base.tsp @@ -0,0 +1,28 @@ +import "@azure-tools/typespec-azure-core"; +import "@typespec/openapi"; + +// Load the current versions of Azure.ResourceManager.CommonTypes. +import "../../node_modules/@azure-tools/typespec-azure-resource-manager/lib/common-types/versions.tsp"; + +using Versioning; +using Http; + +@service({ + title: "Common types", +}) +namespace Azure.ResourceManager.CommonTypes { + @route("dummy") op dummy(): void; +} + +@versioned(Azure.ResourceManager.Versions) +namespace Azure.ResourceManager { + /** + * Supported versions of Azure.ResourceManager building blocks. + */ + @doc("Supported versions of Azure.ResourceManager building blocks.") + enum Versions { + @doc("Version 1.0-preview.1") + @useDependency(Azure.Core.Versions.v1_0_Preview_2) + v1_0_Preview_1: "1.0-preview.1", + } +} diff --git a/packages/samples/common-types/src/customer-managed-keys.tsp b/packages/samples/common-types/src/customer-managed-keys.tsp new file mode 100644 index 0000000000..4284e442c9 --- /dev/null +++ b/packages/samples/common-types/src/customer-managed-keys.tsp @@ -0,0 +1,10 @@ +import "@azure-tools/typespec-client-generator-core"; + +import "./base.tsp"; +import "../../node_modules/@azure-tools/typespec-azure-resource-manager/lib/common-types/customer-managed-keys.tsp"; + +using ClientGenerator.Core; + +namespace Azure.ResourceManager.CommonTypes; + +@@clientName(Encryption, "encryption", "@azure-tools/typespec-autorest"); diff --git a/packages/samples/common-types/src/managed-identity.tsp b/packages/samples/common-types/src/managed-identity.tsp new file mode 100644 index 0000000000..9c6773daaa --- /dev/null +++ b/packages/samples/common-types/src/managed-identity.tsp @@ -0,0 +1,3 @@ +import "./base.tsp"; + +import "../../node_modules/@azure-tools/typespec-azure-resource-manager/lib/common-types/managed-identity.tsp"; diff --git a/packages/samples/common-types/src/private-links.tsp b/packages/samples/common-types/src/private-links.tsp new file mode 100644 index 0000000000..a5e3a7ca46 --- /dev/null +++ b/packages/samples/common-types/src/private-links.tsp @@ -0,0 +1,11 @@ +import "@azure-tools/typespec-autorest"; + +import "./base.tsp"; +import "../../node_modules/@azure-tools/typespec-azure-resource-manager/lib/common-types/private-links.tsp"; + +using Autorest; + +namespace Azure.ResourceManager.CommonTypes; + +@useRef("./types.json#/definitions/Resource") +model Resource {} diff --git a/packages/samples/common-types/src/types.tsp b/packages/samples/common-types/src/types.tsp new file mode 100644 index 0000000000..4aebb339f2 --- /dev/null +++ b/packages/samples/common-types/src/types.tsp @@ -0,0 +1,20 @@ +import "./base.tsp"; +import "../../node_modules/@azure-tools/typespec-azure-resource-manager/lib/common-types/types.tsp"; + +using OpenAPI; + +namespace Azure.ResourceManager.CommonTypes; + +@@extension(ApiVersionParameter.apiVersion, "x-ms-parameter-location", "client"); +@@extension(SubscriptionIdParameter.subscriptionId, "x-ms-parameter-location", "client"); + +op registerParams( + ...ApiVersionParameter, + ...LocationParameter, + ...ManagementGroupNameParameter, + ...OperationIdParameter, + ...ResourceGroupNameParameter, + ...ScopeParameter, + ...SubscriptionIdParameter, + ...TenantIdParameter, +): void; diff --git a/packages/samples/package.json b/packages/samples/package.json index fb85676366..a863b647ad 100644 --- a/packages/samples/package.json +++ b/packages/samples/package.json @@ -30,6 +30,7 @@ "test:watch": "vitest -w", "test:ci": "vitest run --coverage --reporter=junit --reporter=default", "test:regen": "cross-env RECORD=true vitest run", + "regen-common-types": "tsx ./common-types/gen.ts", "regen-samples": "cross-env RECORD=true vitest run" }, "files": [ diff --git a/packages/samples/tsconfig.json b/packages/samples/tsconfig.json index 0c2138ae14..9b267acbe9 100644 --- a/packages/samples/tsconfig.json +++ b/packages/samples/tsconfig.json @@ -6,5 +6,5 @@ "rootDir": ".", "tsBuildInfoFile": "temp/tsconfig.tsbuildinfo" }, - "include": ["rest-metadata-emitter/**/*.ts", "test/**/*.ts"] + "include": ["**/*.ts"] } diff --git a/packages/typespec-azure-resource-manager/lib/common-types/common-types.tsp b/packages/typespec-azure-resource-manager/lib/common-types/common-types.tsp index 211ef3d5e5..98693199d6 100644 --- a/packages/typespec-azure-resource-manager/lib/common-types/common-types.tsp +++ b/packages/typespec-azure-resource-manager/lib/common-types/common-types.tsp @@ -8,21 +8,9 @@ import "./customer-managed-keys-ref.tsp"; import "./extended-location-ref.tsp"; import "./internal.tsp"; import "./commontypes.private.decorators.tsp"; +import "./versions.tsp"; using TypeSpec.Versioning; @versioned(Versions) namespace Azure.ResourceManager.CommonTypes; - -@CommonTypes.Private.armCommonTypesVersions -@doc("The Azure Resource Manager common-types versions.") -enum Versions { - @doc("The Azure Resource Manager v3 common types.") - v3, - - @doc("The Azure Resource Manager v4 common types.") - v4, - - @doc("The Azure Resource Manager v5 common types.") - v5, -} diff --git a/packages/typespec-azure-resource-manager/lib/common-types/versions.tsp b/packages/typespec-azure-resource-manager/lib/common-types/versions.tsp new file mode 100644 index 0000000000..46bf12cdba --- /dev/null +++ b/packages/typespec-azure-resource-manager/lib/common-types/versions.tsp @@ -0,0 +1,16 @@ +using TypeSpec.Versioning; + +@versioned(Versions) +namespace Azure.ResourceManager.CommonTypes; + +@doc("The Azure Resource Manager common-types versions.") +enum Versions { + @doc("The Azure Resource Manager v3 common types.") + v3, + + @doc("The Azure Resource Manager v4 common types.") + v4, + + @doc("The Azure Resource Manager v5 common types.") + v5, +} From d93621457f71eeb30e19a1f56d429ba0cd838428 Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Thu, 13 Jun 2024 11:35:26 -0700 Subject: [PATCH 07/42] Revert main: --- core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core b/core index 0a7869f84f..4ed71bf73f 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 0a7869f84f21af8a7b41ac16474161e03cc27a0b +Subproject commit 4ed71bf73fe51292c52676849b8462ced86005fb From 54839cc251d3f141942d8179365abe17e08b763b Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Thu, 13 Jun 2024 12:39:19 -0700 Subject: [PATCH 08/42] Add release notes for 0.57 - 0.43 (#996) --- .../changes/arm-lro-opt-2024-5-5-19-32-9.md | 2 +- .../changes/arm-lro-opt-2024-5-5-2-57-50.md | 2 +- .../discriminator_doc-2024-4-21-11-13-50.md | 2 +- .../changes/emitter_name-2024-5-3-22-57-49.md | 2 +- docs/release-notes/release-2024-06-11.md | 75 +++++++++++++++++++ 5 files changed, 79 insertions(+), 4 deletions(-) create mode 100644 docs/release-notes/release-2024-06-11.md diff --git a/.chronus/changes/arm-lro-opt-2024-5-5-19-32-9.md b/.chronus/changes/arm-lro-opt-2024-5-5-19-32-9.md index 5a9d225023..3a29fc5b9a 100644 --- a/.chronus/changes/arm-lro-opt-2024-5-5-19-32-9.md +++ b/.chronus/changes/arm-lro-opt-2024-5-5-19-32-9.md @@ -4,4 +4,4 @@ packages: - "@azure-tools/typespec-autorest" --- -Add suppress-lro-options emitter option to control emission of x-ms-long-running-operation-options \ No newline at end of file +Use emit-lro--options emitter option to control emission of x-ms-long-running-operation-options diff --git a/.chronus/changes/arm-lro-opt-2024-5-5-2-57-50.md b/.chronus/changes/arm-lro-opt-2024-5-5-2-57-50.md index 16b8e22136..19442f2127 100644 --- a/.chronus/changes/arm-lro-opt-2024-5-5-2-57-50.md +++ b/.chronus/changes/arm-lro-opt-2024-5-5-2-57-50.md @@ -6,4 +6,4 @@ packages: --- -- Add support for displaying lro options in typespec-autorest based on lro metadata +Add support for displaying lro options in typespec-autorest based on lro metadata diff --git a/.chronus/changes/discriminator_doc-2024-4-21-11-13-50.md b/.chronus/changes/discriminator_doc-2024-4-21-11-13-50.md index bda2efe7eb..37399d588e 100644 --- a/.chronus/changes/discriminator_doc-2024-4-21-11-13-50.md +++ b/.chronus/changes/discriminator_doc-2024-4-21-11-13-50.md @@ -4,4 +4,4 @@ packages: - "@azure-tools/typespec-client-generator-core" --- -add description for created discriminator property \ No newline at end of file +add description for created discriminator property diff --git a/.chronus/changes/emitter_name-2024-5-3-22-57-49.md b/.chronus/changes/emitter_name-2024-5-3-22-57-49.md index 4ff152d8fe..c654f7b175 100644 --- a/.chronus/changes/emitter_name-2024-5-3-22-57-49.md +++ b/.chronus/changes/emitter_name-2024-5-3-22-57-49.md @@ -4,4 +4,4 @@ packages: - "@azure-tools/typespec-client-generator-core" --- -support new typespec emitter naming rule \ No newline at end of file +support new typespec emitter naming rule diff --git a/docs/release-notes/release-2024-06-11.md b/docs/release-notes/release-2024-06-11.md new file mode 100644 index 0000000000..d5e1817b4f --- /dev/null +++ b/docs/release-notes/release-2024-06-11.md @@ -0,0 +1,75 @@ +--- +title: 0.43.0 June 2024 +--- + +# Release Notes Version 0.43.0 - June 2024 + +See TypeSpec Core 0.57 [release notes](https://typespec.io/docs/release-notes/release-2024-06-11) + +:::warning +This release contains breaking changes and deprecation +::: + +## Breaking Changes + +### @azure-tools/typespec-autorest + +- [#473](https://github.com/Azure/typespec-azure/pull/473) Enums are not extensible by default anymore. Update to an extensible union `union Foo {a: "a", b: "b", string}` + +### @azure-tools/typespec-client-generator-core + +- [#925](https://github.com/Azure/typespec-azure/pull/925) change default of `.access` on a model or enum to `"public"` instead of `undefined` +- [#870](https://github.com/Azure/typespec-azure/pull/870) return nullable types as a new type called `SdkNullableType` + +## Features + +### @azure-tools/typespec-autorest + +- [#955](https://github.com/Azure/typespec-azure/pull/955) Use emit-lro-options emitter option to control emission of x-ms-long-running-operation-options +- [#955](https://github.com/Azure/typespec-azure/pull/955) Add support for displaying lro options in typespec-autorest based on lro metadata +- [#972](https://github.com/Azure/typespec-azure/pull/972) Add API to programmatically get all the OpenAPI2 documents for all services at all versions in a spec +- [#811](https://github.com/Azure/typespec-azure/pull/811) Add dependency on typespec-azure-resource-manager to resolve the spec repo common types paths +- [#813](https://github.com/Azure/typespec-azure/pull/813) `@summary` sets the title of definitions + +### @azure-tools/typespec-azure-core + +- [#955](https://github.com/Azure/typespec-azure/pull/955) Add override decorator @useFinalStateVia for lro resolution when multiple resolution pathways exist +- [#707](https://github.com/Azure/typespec-azure/pull/707) Remove linter rules that are not relevant anymore: `use-extensible-enum` and `no-fixed-enum-discriminator` +- [#432](https://github.com/Azure/typespec-azure/pull/432) Add support for values + +### @azure-tools/typespec-azure-resource-manager + +- [#811](https://github.com/Azure/typespec-azure/pull/811) Remove dependency on `typespec-autorest` emitter +- [#432](https://github.com/Azure/typespec-azure/pull/432) Add support for values + +## Bug Fixes + +### @azure-tools/typespec-autorest + +- [#923](https://github.com/Azure/typespec-azure/pull/923) When emitting version enum only include current version and mark with `modelAsString: true` +- [#902](https://github.com/Azure/typespec-azure/pull/902) Add support for new multipart constructs in http library +- [#432](https://github.com/Azure/typespec-azure/pull/432) Add support for tuple literals as default values + +### @azure-tools/typespec-azure-core + +- [#693](https://github.com/Azure/typespec-azure/pull/693) Add new `no-string-discriminator` linter rule suggesting using an explicit extensible union as the discriminator kind. +- [#851](https://github.com/Azure/typespec-azure/pull/851) Convert `OperationState` enum to an open union + +### @azure-tools/typespec-azure-resource-manager + +- [#955](https://github.com/Azure/typespec-azure/pull/955) Remove OpenAPI dependencies from ARM LRO templates and test LRO overrides +- [#929](https://github.com/Azure/typespec-azure/pull/929) Adding an overload parameter to ResourceNameParameter that allows `name` type to be set to string union type. +- [#860](https://github.com/Azure/typespec-azure/pull/860) Fix `percentComplete` property on `OperationStatus` should be a float not an int +- [#979](https://github.com/Azure/typespec-azure/pull/979) Make Resource Properties Bag Updatable +- [#998](https://github.com/Azure/typespec-azure/pull/998) Adding legacy v4 ManagedServiceIdentity model to avoid breaking changes in specs with mixed v3 and v4 common type reference + +### @azure-tools/typespec-client-generator-core + +- [#904](https://github.com/Azure/typespec-azure/pull/904) don't add constant value to generated name +- [#873](https://github.com/Azure/typespec-azure/pull/873) add description for created discriminator property +- [#947](https://github.com/Azure/typespec-azure/pull/947) support new typespec emitter naming rule +- [#930](https://github.com/Azure/typespec-azure/pull/930) expose enums on response headers +- [#962](https://github.com/Azure/typespec-azure/pull/962) refine logic of core model filtering +- [#950](https://github.com/Azure/typespec-azure/pull/950) remove duplicated types in TCGC +- [#936](https://github.com/Azure/typespec-azure/pull/936) enhance cross language definition id logic +- [#935](https://github.com/Azure/typespec-azure/pull/935) add read only logic to usage propagation From 5b9bef3a0466e12ee3a96a1336ccbb4a91f14169 Mon Sep 17 00:00:00 2001 From: Allen Zhang Date: Thu, 13 Jun 2024 16:55:48 -0700 Subject: [PATCH 09/42] TypeSpec Azure 0.43 - June 2024 Release (#1013) Co-authored-by: Timothee Guerin Co-authored-by: Timothee Guerin Co-authored-by: Mark Cowlishaw --- ...egacyManagedIdentity-2024-5-12-18-14-55.md | 7 - .../changes/arm-lro-opt-2024-5-5-15-31-47.md | 7 - .../changes/arm-lro-opt-2024-5-5-15-33-29.md | 7 - ...t-all-programmatically-2024-5-7-9-28-38.md | 7 - .../azhang_ArmReorg-2024-4-31-18-40-39.md | 7 - ...eToResourceNameParam-2024-4-28-12-18-25.md | 7 - ...nstant_generated_name-2024-4-22-16-8-23.md | 7 - ...default_access_public-2024-4-28-12-23-9.md | 7 - ...odel-as-string-false-2024-2-21-19-56-37.md | 8 - ...enum_response_header-2024-4-28-16-46-48.md | 7 - .../fix-emit-api-version-2024-4-25-9-53-10.md | 7 - .../fix-percentcomplete-2024-4-17-22-11-46.md | 8 - .../fix_core_model_filter-2024-5-6-15-47-3.md | 7 - ...string-discriminator-2024-3-18-15-54-43.md | 8 - ...move_nullable_to_type-2024-4-21-18-6-54.md | 7 - ...emove-autorest-arm-dep-2024-4-9-17-15-8.md | 8 - ...move-autorest-arm-dep-2024-4-9-17-15-82.md | 8 - ...tdated-li3nter-rules-2024-3-19-19-40-26.md | 7 - ...utdated-linter-rules-2024-3-19-19-40-26.md | 8 - .chronus/changes/res-vis-2024-5-12-4-34-46.md | 8 - ...esolve-duplicate-types-2024-5-4-7-33-26.md | 8 - .../summary-is-title-2024-4-9-20-35-33.md | 8 - .../changes/tsp_clid-2024-5-3-18-13-18.md | 7 - ...e_union-for-open-enum-2024-4-17-1-56-35.md | 8 - ...ulesets-in-templates-2024-4-23-17-47-34.md | 8 - ...al_swagger_folder_name-2024-6-6-11-44-3.md | 7 - ...pgrade-deps-may-2024-2024-4-20-15-35-27.md | 13 - .../uptake-multipartv2-2024-4-22-16-3-12.2.md | 8 - .../uptake-multipartv2-2024-4-22-16-3-12.md | 8 - ...uptake-object-literals-2024-2-19-2-42-4.md | 8 - ...ptake-object-literals-2024-2-19-2-47-33.md | 9 - .../usage_refine-2024-4-29-22-20-25.md | 7 - core | 2 +- docs/release-notes/release-2024-06-11.md | 2 +- eng/pipelines/jobs/e2e-job.yml | 2 + .../typespec-autorest-canonical/CHANGELOG.md | 11 + .../typespec-autorest-canonical/package.json | 2 +- packages/typespec-autorest/CHANGELOG.md | 25 + packages/typespec-autorest/package.json | 2 +- packages/typespec-azure-core/CHANGELOG.md | 18 + packages/typespec-azure-core/package.json | 2 +- .../typespec-azure-portal-core/CHANGELOG.md | 7 + .../typespec-azure-portal-core/package.json | 2 +- .../CHANGELOG.md | 20 + .../package.json | 2 +- packages/typespec-azure-rulesets/CHANGELOG.md | 7 + packages/typespec-azure-rulesets/package.json | 2 +- .../CHANGELOG.md | 23 + .../package.json | 2 +- packages/website/playground-versions.json | 1 + .../reference/emitter.md | 2 +- .../reference/js-api/functions/$onEmit.md | 2 +- .../AutorestCanonicalEmitterOptions.md | 10 +- .../reference/js-api/variables/$lib.md | 6 +- .../typespec-autorest/reference/emitter.md | 6 + .../reference/js-api/functions/$example.md | 2 +- .../reference/js-api/functions/$onEmit.md | 2 +- .../reference/js-api/functions/$useRef.md | 4 +- .../functions/getAllServicesAtAllVersions.md | 19 + .../reference/js-api/functions/getExamples.md | 2 +- .../js-api/functions/getOpenAPIForService.md | 2 +- .../reference/js-api/functions/getRef.md | 6 +- .../functions/resolveAutorestOptions.md | 23 + .../js-api/functions/setRefProducer.md | 27 - .../js-api/functions/sortOpenAPIDocument.md | 2 +- .../reference/js-api/index.md | 8 +- .../AutorestDocumentEmitterOptions.md | 5 +- .../interfaces/AutorestEmitterOptions.md | 19 +- .../js-api/interfaces/OpenAPI2Document.md | 6 +- .../interfaces/OpenAPI2OAuthSecurityBase.md | 7 + .../interfaces/OpenAPI2ParameterBase.md | 9 + .../js-api/interfaces/OpenAPI2Response.md | 2 +- .../interfaces/OpenAPI2SecuritySchemeBase.md | 6 + .../js-api/interfaces/RefProducerParams.md | 14 - .../js-api/interfaces/XMSParameterizedHost.md | 4 +- .../js-api/type-aliases/OpenAPI2FileSchema.md | 22 + .../js-api/type-aliases/OpenAPI2Operation.md | 9 +- .../js-api/type-aliases/OpenAPI2PathItem.md | 2 +- .../js-api/type-aliases/OpenAPI2Responses.md | 4 +- .../js-api/type-aliases/OpenAPI2Schema.md | 20 +- .../type-aliases/OpenAPI2SchemaRefProperty.md | 7 +- .../js-api/type-aliases/RefProducer.md | 22 - .../type-aliases/XMSLongRunningFinalState.md | 13 + .../XMSLongRunningOperationOptions.md | 15 + .../reference/js-api/variables/$lib.md | 68 +- .../reference/index.mdx | 32 + .../reference/js-api/_category_.json | 1 + .../reference/js-api/index.md | 9 + .../reference/js-api/variables/$lib.md | 8 + .../reference/js-api/variables/$linter.md | 8 + .../reference/linter.md | 29 + .../reference/js-api/functions/$onEmit.md | 2 +- .../reference/js-api/functions/getTracer.md | 2 +- .../js-api/functions/reportDiagnostic.md | 8 +- .../reference/js-api/variables/$lib.md | 18 +- .../azure-resource-manager/step02.md | 70 +- .../azure-resource-manager/step03.md | 4 +- .../azure-resource-manager/step04.md | 8 +- .../azure-resource-manager/step05.md | 52 +- .../DataPlane Generation - DPG/00howtogen.mdx | 2 + .../03convenient.mdx | 2 +- .../DataPlane Generation - DPG/06types.mdx | 302 ++- .../07tcgcTypes.mdx | 8 +- .../09versioning.mdx | 544 ++++++ .../Generating with tsp-client/tsp_client.md | 194 ++ .../azure-core/reference/data-types.md | 22 +- .../azure-core/reference/decorators.md | 18 + .../libraries/azure-core/reference/index.mdx | 1 + .../azure-core/reference/interfaces.md | 56 +- .../js-api/functions/$addTraitProperties.md | 2 +- .../js-api/functions/$applyTraitOverride.md | 2 +- .../js-api/functions/$defaultFinalStateVia.md | 23 + .../functions/$ensureAllHeaderParams.md | 2 +- .../js-api/functions/$ensureAllQueryParams.md | 2 +- .../js-api/functions/$ensureResourceType.md | 2 +- .../js-api/functions/$ensureTraitsPresent.md | 2 +- .../reference/js-api/functions/$ensureVerb.md | 2 +- .../js-api/functions/$finalLocation.md | 4 +- .../js-api/functions/$finalOperation.md | 2 +- .../reference/js-api/functions/$fixed.md | 2 +- .../reference/js-api/functions/$items.md | 2 +- .../js-api/functions/$lroCanceled.md | 2 +- .../js-api/functions/$lroErrorResult.md | 2 +- .../reference/js-api/functions/$lroFailed.md | 2 +- .../reference/js-api/functions/$lroResult.md | 2 +- .../reference/js-api/functions/$lroStatus.md | 4 +- .../js-api/functions/$lroSucceeded.md | 2 +- .../reference/js-api/functions/$needsRoute.md | 2 +- .../reference/js-api/functions/$nextLink.md | 2 +- .../js-api/functions/$nextPageOperation.md | 2 +- .../js-api/functions/$omitKeyProperties.md | 2 +- .../reference/js-api/functions/$onValidate.md | 2 +- .../js-api/functions/$operationLink.md | 2 +- .../js-api/functions/$pagedResult.md | 2 +- .../js-api/functions/$pollingLocation.md | 2 +- .../js-api/functions/$pollingOperation.md | 2 +- .../functions/$pollingOperationParameter.md | 2 +- .../js-api/functions/$requestParameter.md | 2 +- .../js-api/functions/$responseProperty.md | 2 +- .../functions/$spreadCustomParameters.md | 2 +- .../$spreadCustomResponseProperties.md | 2 +- .../reference/js-api/functions/$trait.md | 2 +- .../reference/js-api/functions/$traitAdded.md | 4 +- .../js-api/functions/$traitContext.md | 2 +- .../js-api/functions/$traitLocation.md | 2 +- .../js-api/functions/$traitSource.md | 2 +- .../js-api/functions/$useFinalStateVia.md | 25 + .../js-api/functions/checkEnsureVerb.md | 2 +- .../js-api/functions/checkRpcRoutes.md | 2 +- .../js-api/functions/extractLroStates.md | 2 +- .../js-api/functions/filterModelProperties.md | 2 +- .../js-api/functions/filterResponseModels.md | 2 +- .../js-api/functions/getAllProperties.md | 2 +- .../getArmResourceIdentifierConfig.md | 2 +- .../js-api/functions/getAsEmbeddingVector.md | 2 +- .../js-api/functions/getFinalLocationValue.md | 2 +- .../js-api/functions/getFinalStateOverride.md | 23 + .../js-api/functions/getHttpMetadata.md | 2 +- .../reference/js-api/functions/getItems.md | 2 +- .../js-api/functions/getLongRunningStates.md | 4 +- .../js-api/functions/getLroErrorResult.md | 4 +- .../js-api/functions/getLroMetadata.md | 2 +- .../js-api/functions/getLroResult.md | 4 +- .../js-api/functions/getLroStatusProperty.md | 2 +- .../reference/js-api/functions/getNextLink.md | 2 +- .../js-api/functions/getOperationLink.md | 2 +- .../js-api/functions/getOperationLinks.md | 2 +- .../js-api/functions/getOperationResponse.md | 2 +- .../js-api/functions/getPagedResult.md | 2 +- .../functions/getPollingLocationInfo.md | 2 +- .../functions/getPollingOperationParameter.md | 2 +- .../js-api/functions/getRequestParameter.md | 2 +- .../js-api/functions/getResponseProperty.md | 2 +- .../functions/getResultModelWithProperty.md | 2 +- .../js-api/functions/getSourceTraitName.md | 2 +- .../js-api/functions/getSuccessResponse.md | 2 +- .../js-api/functions/getTraitContexts.md | 2 +- .../js-api/functions/getTraitLocation.md | 2 +- .../js-api/functions/getTraitName.md | 2 +- .../js-api/functions/getUnionAsEnum.md | 2 +- .../js-api/functions/isFinalLocation.md | 2 +- .../reference/js-api/functions/isFixed.md | 2 +- .../js-api/functions/isLroCanceledState.md | 2 +- .../js-api/functions/isLroFailedState.md | 2 +- .../js-api/functions/isLroSucceededState.md | 2 +- .../js-api/functions/isPollingLocation.md | 2 +- .../js-api/functions/isResourceOperation.md | 2 +- .../js-api/functions/isTraitModel.md | 2 +- ...upported_enable_checkStandardOperations.md | 2 +- .../azure-core/reference/js-api/index.md | 3 + .../ArmResourceIdentifierAllowedResource.md | 2 +- .../js-api/interfaces/FinalOperationLink.md | 2 +- .../interfaces/FinalOperationReference.md | 2 +- .../js-api/interfaces/LogicalOperationStep.md | 2 +- .../js-api/interfaces/LroMetadata.md | 4 +- .../js-api/interfaces/PagedResultMetadata.md | 4 +- .../js-api/interfaces/PollingLocationBase.md | 4 +- .../interfaces/PollingSuccessNoResult.md | 2 +- .../StatusMonitorPollingLocationInfo.md | 4 +- .../reference/js-api/variables/$lib.md | 120 +- .../variables/preventRestLibraryInterfaces.md | 2 +- .../js-api/variables/useStandardOperations.md | 2 +- .../libraries/azure-core/reference/linter.md | 3 +- .../rules/no-string-discriminator.md | 61 + .../reference/js-api/functions/$about.md | 2 +- .../reference/js-api/functions/$browse.md | 2 +- .../js-api/functions/$displayName.md | 2 +- .../js-api/functions/$marketplaceOffer.md | 2 +- .../reference/js-api/functions/$onValidate.md | 2 +- .../reference/js-api/functions/$promotion.md | 2 +- .../js-api/functions/checkIsArmResource.md | 2 +- .../functions/checkIsArmTrackedResource.md | 2 +- .../functions/checkIsValidApiVersion.md | 2 +- .../reference/js-api/functions/getAbout.md | 2 +- .../js-api/functions/getAboutDisplayNames.md | 2 +- .../js-api/functions/getAboutKeywords.md | 2 +- .../js-api/functions/getAboutLearnMoreDocs.md | 2 +- .../reference/js-api/functions/getBrowse.md | 2 +- .../js-api/functions/getBrowseArgQuery.md | 2 +- .../js-api/functions/getDisplayName.md | 2 +- .../js-api/functions/getMarketplaceOfferId.md | 2 +- .../js-api/functions/getPromotion.md | 2 +- .../reference/js-api/functions/isFileExist.md | 2 +- .../reference/js-api/variables/$lib.md | 40 +- .../reference/data-types.md | 1621 ++++++++++------- .../reference/decorators.md | 6 +- .../reference/index.mdx | 102 +- .../reference/interfaces.md | 112 +- .../functions/$armCommonTypesVersion.md | 6 +- .../js-api/functions/$armLibraryNamespace.md | 2 +- .../js-api/functions/$armProviderNameValue.md | 2 +- .../js-api/functions/$armProviderNamespace.md | 2 +- .../functions/$armRenameListByOperation.md | 2 +- .../js-api/functions/$armResourceAction.md | 2 +- .../functions/$armResourceCollectionAction.md | 2 +- .../functions/$armResourceCreateOrUpdate.md | 2 +- .../js-api/functions/$armResourceDelete.md | 2 +- .../js-api/functions/$armResourceList.md | 2 +- .../functions/$armResourceOperations.md | 2 +- .../js-api/functions/$armResourceRead.md | 2 +- .../js-api/functions/$armResourceUpdate.md | 2 +- .../js-api/functions/$armVirtualResource.md | 2 +- .../js-api/functions/$extensionResource.md | 2 +- .../js-api/functions/$locationResource.md | 2 +- .../js-api/functions/$resourceBaseType.md | 2 +- .../functions/$resourceGroupResource.md | 2 +- .../reference/js-api/functions/$singleton.md | 2 +- .../js-api/functions/$subscriptionResource.md | 2 +- .../js-api/functions/$tenantResource.md | 2 +- .../js-api/functions/$useLibraryNamespace.md | 2 +- .../functions/getArmCommonTypeOpenAPIRef.md | 25 + .../functions/getArmCommonTypesVersion.md | 4 +- .../functions/getArmCommonTypesVersions.md | 4 +- .../functions/getArmProviderNamespace.md | 4 +- .../js-api/functions/getArmResource.md | 2 +- .../js-api/functions/getArmResourceInfo.md | 2 +- .../js-api/functions/getArmResourceKind.md | 2 +- .../js-api/functions/getArmResources.md | 2 +- .../js-api/functions/getResourceBaseType.md | 2 +- .../functions/getSingletonResourceKey.md | 2 +- .../functions/getUsedLibraryNamespaces.md | 2 +- .../js-api/functions/isArmCollectionAction.md | 2 +- .../js-api/functions/isArmCommonType.md | 2 +- .../js-api/functions/isArmLibraryNamespace.md | 2 +- .../js-api/functions/isArmVirtualResource.md | 2 +- .../js-api/functions/isSingletonResource.md | 2 +- .../functions/resolveResourceBaseType.md | 2 +- .../functions/resolveResourceOperations.md | 2 +- .../reference/js-api/index.md | 3 + .../ArmCommonTypesResolutionOptions.md | 11 + .../interfaces/ArmResourceOperations.md | 4 +- .../reference/js-api/variables/$flags.md | 8 + .../reference/js-api/variables/$lib.md | 42 +- .../reference/linter.md | 64 +- .../reference/decorators.md | 6 +- .../reference/js-api/functions/$access.md | 4 +- .../reference/js-api/functions/$client.md | 4 +- .../js-api/functions/$clientFormat.md | 2 +- .../reference/js-api/functions/$clientName.md | 2 +- .../js-api/functions/$convenientAPI.md | 2 +- .../reference/js-api/functions/$exclude.md | 2 +- .../js-api/functions/$flattenProperty.md | 2 +- .../reference/js-api/functions/$include.md | 2 +- .../reference/js-api/functions/$internal.md | 2 +- .../js-api/functions/$operationGroup.md | 4 +- .../js-api/functions/$protocolAPI.md | 2 +- .../reference/js-api/functions/$usage.md | 4 +- .../js-api/functions/addEncodeInfo.md | 4 +- .../js-api/functions/addFormatInfo.md | 4 +- .../js-api/functions/createDiagnostic.md | 8 +- .../js-api/functions/createSdkContext.md | 6 +- .../js-api/functions/createStateSymbol.md | 2 +- .../reference/js-api/functions/getAccess.md | 6 +- .../js-api/functions/getAccessOverride.md | 4 +- .../js-api/functions/getAllModels.md | 2 +- .../functions/getAllModelsWithDiagnostics.md | 2 +- .../reference/js-api/functions/getClient.md | 4 +- .../js-api/functions/getClientFormat.md | 2 +- .../js-api/functions/getClientNameOverride.md | 2 +- .../functions/getClientNamespaceString.md | 2 +- .../js-api/functions/getClientType.md | 2 +- .../functions/getClientTypeWithDiagnostics.md | 2 +- .../functions/getCrossLanguageDefinitionId.md | 18 +- .../functions/getCrossLanguagePackageId.md | 2 +- .../js-api/functions/getDefaultApiVersion.md | 2 +- .../functions/getEffectivePayloadType.md | 2 +- .../js-api/functions/getEmitterTargetName.md | 2 +- .../js-api/functions/getGeneratedName.md | 4 +- .../functions/getHttpOperationWithCache.md | 2 +- .../js-api/functions/getKnownScalars.md | 2 +- .../js-api/functions/getLibraryName.md | 4 +- .../js-api/functions/getOperationGroup.md | 4 +- .../js-api/functions/getPropertyNames.md | 2 +- .../js-api/functions/getSdkArrayOrDict.md | 2 +- .../getSdkArrayOrDictWithDiagnostics.md | 2 +- .../js-api/functions/getSdkBuiltInType.md | 4 +- .../js-api/functions/getSdkConstant.md | 8 +- .../functions/getSdkCredentialParameter.md | 2 +- .../js-api/functions/getSdkDurationType.md | 2 +- .../reference/js-api/functions/getSdkEnum.md | 2 +- .../js-api/functions/getSdkEnumValue.md | 2 +- .../reference/js-api/functions/getSdkModel.md | 2 +- .../functions/getSdkModelPropertyType.md | 2 +- .../functions/getSdkModelPropertyTypeBase.md | 2 +- .../functions/getSdkModelWithDiagnostics.md | 2 +- .../reference/js-api/functions/getSdkTuple.md | 2 +- .../functions/getSdkTupleWithDiagnostics.md | 2 +- .../reference/js-api/functions/getSdkUnion.md | 2 +- .../js-api/functions/getSdkUnionEnum.md | 23 + .../functions/getSdkUnionWithDiagnostics.md | 2 +- .../reference/js-api/functions/getUsage.md | 4 +- .../js-api/functions/getUsageOverride.md | 4 +- .../reference/js-api/functions/getWireName.md | 4 +- .../js-api/functions/isApiVersion.md | 4 +- .../js-api/functions/isErrorOrChildOfError.md | 2 +- .../reference/js-api/functions/isExclude.md | 2 +- .../js-api/functions/isInOperationGroup.md | 4 +- .../reference/js-api/functions/isInclude.md | 2 +- .../reference/js-api/functions/isInternal.md | 4 +- .../js-api/functions/isOperationGroup.md | 4 +- .../reference/js-api/functions/isReadOnly.md | 2 +- .../js-api/functions/isSdkBuiltInKind.md | 2 +- .../functions/isSdkDatetimeEncodings.md | 2 +- .../js-api/functions/isSdkFloatKind.md | 4 +- .../js-api/functions/isSdkIntKind.md | 4 +- .../reference/js-api/functions/listClients.md | 2 +- .../js-api/functions/listOperationGroups.md | 2 +- .../listOperationsInOperationGroup.md | 2 +- .../js-api/functions/reportDiagnostic.md | 8 +- .../js-api/functions/shouldFlattenProperty.md | 2 +- .../functions/shouldGenerateConvenient.md | 2 +- .../functions/shouldGenerateProtocol.md | 2 +- .../reference/js-api/index.md | 2 + .../js-api/interfaces/SdkArrayType.md | 18 +- .../interfaces/SdkBasicServiceMethod.md | 8 +- .../interfaces/SdkBodyModelPropertyType.md | 4 +- .../js-api/interfaces/SdkBodyParameter.md | 4 +- .../js-api/interfaces/SdkBuiltInType.md | 17 +- .../reference/js-api/interfaces/SdkClient.md | 4 +- .../js-api/interfaces/SdkClientType.md | 4 +- .../js-api/interfaces/SdkConstantType.md | 21 +- .../reference/js-api/interfaces/SdkContext.md | 12 +- .../interfaces/SdkCredentialParameter.md | 4 +- .../js-api/interfaces/SdkCredentialType.md | 17 +- .../js-api/interfaces/SdkDictionaryType.md | 20 +- .../js-api/interfaces/SdkDurationType.md | 19 +- .../js-api/interfaces/SdkEndpointParameter.md | 4 +- .../js-api/interfaces/SdkEndpointType.md | 19 +- .../js-api/interfaces/SdkEnumType.md | 37 +- .../js-api/interfaces/SdkEnumValueType.md | 23 +- .../js-api/interfaces/SdkHeaderParameter.md | 4 +- .../js-api/interfaces/SdkHttpResponse.md | 1 - .../interfaces/SdkInitializationType.md | 8 +- .../interfaces/SdkLroPagingServiceMethod.md | 8 +- .../js-api/interfaces/SdkLroServiceMethod.md | 8 +- .../js-api/interfaces/SdkMethodParameter.md | 4 +- .../js-api/interfaces/SdkMethodResponse.md | 1 - .../interfaces/SdkModelPropertyTypeBase.md | 4 +- .../js-api/interfaces/SdkModelType.md | 12 +- .../js-api/interfaces/SdkNullableType.md | 19 + .../js-api/interfaces/SdkOperationGroup.md | 2 +- .../reference/js-api/interfaces/SdkPackage.md | 4 +- .../interfaces/SdkPagingServiceMethod.md | 8 +- .../js-api/interfaces/SdkPathParameter.md | 4 +- .../js-api/interfaces/SdkQueryParameter.md | 4 +- .../js-api/interfaces/SdkServiceResponse.md | 1 - .../interfaces/SdkServiceResponseHeader.md | 1 - .../js-api/interfaces/SdkTupleType.md | 17 +- .../js-api/interfaces/SdkUnionType.md | 21 +- .../js-api/type-aliases/SdkMethod.md | 9 +- .../js-api/type-aliases/SdkServiceMethod.md | 9 +- .../reference/js-api/type-aliases/SdkType.md | 1 + .../reference/js-api/variables/$lib.md | 84 +- .../release-notes/release-2024-06-11.md | 75 + .../versioning_operation_template_changes.md | 23 + 395 files changed, 3614 insertions(+), 1993 deletions(-) delete mode 100644 .chronus/changes/addV4LegacyManagedIdentity-2024-5-12-18-14-55.md delete mode 100644 .chronus/changes/arm-lro-opt-2024-5-5-15-31-47.md delete mode 100644 .chronus/changes/arm-lro-opt-2024-5-5-15-33-29.md delete mode 100644 .chronus/changes/autorest-emitt-all-programmatically-2024-5-7-9-28-38.md delete mode 100644 .chronus/changes/azhang_ArmReorg-2024-4-31-18-40-39.md delete mode 100644 .chronus/changes/azhang_addNameTypeToResourceNameParam-2024-4-28-12-18-25.md delete mode 100644 .chronus/changes/constant_generated_name-2024-4-22-16-8-23.md delete mode 100644 .chronus/changes/default_access_public-2024-4-28-12-23-9.md delete mode 100644 .chronus/changes/enum-model-as-string-false-2024-2-21-19-56-37.md delete mode 100644 .chronus/changes/enum_response_header-2024-4-28-16-46-48.md delete mode 100644 .chronus/changes/fix-emit-api-version-2024-4-25-9-53-10.md delete mode 100644 .chronus/changes/fix-percentcomplete-2024-4-17-22-11-46.md delete mode 100644 .chronus/changes/fix_core_model_filter-2024-5-6-15-47-3.md delete mode 100644 .chronus/changes/linter-no-string-discriminator-2024-3-18-15-54-43.md delete mode 100644 .chronus/changes/move_nullable_to_type-2024-4-21-18-6-54.md delete mode 100644 .chronus/changes/remove-autorest-arm-dep-2024-4-9-17-15-8.md delete mode 100644 .chronus/changes/remove-autorest-arm-dep-2024-4-9-17-15-82.md delete mode 100644 .chronus/changes/remove-outdated-li3nter-rules-2024-3-19-19-40-26.md delete mode 100644 .chronus/changes/remove-outdated-linter-rules-2024-3-19-19-40-26.md delete mode 100644 .chronus/changes/res-vis-2024-5-12-4-34-46.md delete mode 100644 .chronus/changes/resolve-duplicate-types-2024-5-4-7-33-26.md delete mode 100644 .chronus/changes/summary-is-title-2024-4-9-20-35-33.md delete mode 100644 .chronus/changes/tsp_clid-2024-5-3-18-13-18.md delete mode 100644 .chronus/changes/typespec-azure-core_union-for-open-enum-2024-4-17-1-56-35.md delete mode 100644 .chronus/changes/update-rulesets-in-templates-2024-4-23-17-47-34.md delete mode 100644 .chronus/changes/update_canonical_swagger_folder_name-2024-6-6-11-44-3.md delete mode 100644 .chronus/changes/upgrade-deps-may-2024-2024-4-20-15-35-27.md delete mode 100644 .chronus/changes/uptake-multipartv2-2024-4-22-16-3-12.2.md delete mode 100644 .chronus/changes/uptake-multipartv2-2024-4-22-16-3-12.md delete mode 100644 .chronus/changes/uptake-object-literals-2024-2-19-2-42-4.md delete mode 100644 .chronus/changes/uptake-object-literals-2024-2-19-2-47-33.md delete mode 100644 .chronus/changes/usage_refine-2024-4-29-22-20-25.md create mode 100644 packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/getAllServicesAtAllVersions.md create mode 100644 packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/resolveAutorestOptions.md delete mode 100644 packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/setRefProducer.md delete mode 100644 packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/RefProducerParams.md create mode 100644 packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/OpenAPI2FileSchema.md delete mode 100644 packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/RefProducer.md create mode 100644 packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/XMSLongRunningFinalState.md create mode 100644 packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/XMSLongRunningOperationOptions.md create mode 100644 packages/website/versioned_docs/version-latest/emitters/typespec-azure-rulesets/reference/index.mdx create mode 100644 packages/website/versioned_docs/version-latest/emitters/typespec-azure-rulesets/reference/js-api/_category_.json create mode 100644 packages/website/versioned_docs/version-latest/emitters/typespec-azure-rulesets/reference/js-api/index.md create mode 100644 packages/website/versioned_docs/version-latest/emitters/typespec-azure-rulesets/reference/js-api/variables/$lib.md create mode 100644 packages/website/versioned_docs/version-latest/emitters/typespec-azure-rulesets/reference/js-api/variables/$linter.md create mode 100644 packages/website/versioned_docs/version-latest/emitters/typespec-azure-rulesets/reference/linter.md create mode 100644 packages/website/versioned_docs/version-latest/howtos/DataPlane Generation - DPG/09versioning.mdx create mode 100644 packages/website/versioned_docs/version-latest/howtos/Generating with tsp-client/tsp_client.md create mode 100644 packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$defaultFinalStateVia.md create mode 100644 packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$useFinalStateVia.md create mode 100644 packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getFinalStateOverride.md create mode 100644 packages/website/versioned_docs/version-latest/libraries/azure-core/rules/no-string-discriminator.md create mode 100644 packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmCommonTypeOpenAPIRef.md create mode 100644 packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/interfaces/ArmCommonTypesResolutionOptions.md create mode 100644 packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/variables/$flags.md create mode 100644 packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkUnionEnum.md create mode 100644 packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkNullableType.md create mode 100644 packages/website/versioned_docs/version-latest/release-notes/release-2024-06-11.md create mode 100644 packages/website/versioned_docs/version-latest/troubleshoot/versioning_operation_template_changes.md diff --git a/.chronus/changes/addV4LegacyManagedIdentity-2024-5-12-18-14-55.md b/.chronus/changes/addV4LegacyManagedIdentity-2024-5-12-18-14-55.md deleted file mode 100644 index 137c8af66e..0000000000 --- a/.chronus/changes/addV4LegacyManagedIdentity-2024-5-12-18-14-55.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: fix -packages: - - "@azure-tools/typespec-azure-resource-manager" ---- - -Adding legacy v4 ManagedServiceIdentity model to avoid breaking changes in specs with mixed v3 and v4 common type reference \ No newline at end of file diff --git a/.chronus/changes/arm-lro-opt-2024-5-5-15-31-47.md b/.chronus/changes/arm-lro-opt-2024-5-5-15-31-47.md deleted file mode 100644 index eebafe6bc1..0000000000 --- a/.chronus/changes/arm-lro-opt-2024-5-5-15-31-47.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: feature -packages: - - "@azure-tools/typespec-azure-core" ---- - -Add override decorator @useFinalStateVia for lro resolution when multiple resolution pathways exist \ No newline at end of file diff --git a/.chronus/changes/arm-lro-opt-2024-5-5-15-33-29.md b/.chronus/changes/arm-lro-opt-2024-5-5-15-33-29.md deleted file mode 100644 index e56a573539..0000000000 --- a/.chronus/changes/arm-lro-opt-2024-5-5-15-33-29.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: fix -packages: - - "@azure-tools/typespec-azure-resource-manager" ---- - -Remove OpenAPI dependencies from ARM LRO templates and test LRO overrides \ No newline at end of file diff --git a/.chronus/changes/autorest-emitt-all-programmatically-2024-5-7-9-28-38.md b/.chronus/changes/autorest-emitt-all-programmatically-2024-5-7-9-28-38.md deleted file mode 100644 index 9f73b1e8f7..0000000000 --- a/.chronus/changes/autorest-emitt-all-programmatically-2024-5-7-9-28-38.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: feature -packages: - - "@azure-tools/typespec-autorest" ---- - -Add API to programmatically get all the OpenAPI2 documents for all services at all versions in a spec \ No newline at end of file diff --git a/.chronus/changes/azhang_ArmReorg-2024-4-31-18-40-39.md b/.chronus/changes/azhang_ArmReorg-2024-4-31-18-40-39.md deleted file mode 100644 index 958652c9f0..0000000000 --- a/.chronus/changes/azhang_ArmReorg-2024-4-31-18-40-39.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: internal -packages: - - "@azure-tools/typespec-azure-resource-manager" ---- - -Reorganize ARM library internal models into fully version controlled `Azure.ResourceManager.CommontTypes` namespace. \ No newline at end of file diff --git a/.chronus/changes/azhang_addNameTypeToResourceNameParam-2024-4-28-12-18-25.md b/.chronus/changes/azhang_addNameTypeToResourceNameParam-2024-4-28-12-18-25.md deleted file mode 100644 index ecca809aaf..0000000000 --- a/.chronus/changes/azhang_addNameTypeToResourceNameParam-2024-4-28-12-18-25.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: fix -packages: - - "@azure-tools/typespec-azure-resource-manager" ---- - -Adding an overload parameter to ResourceNameParameter that allows `name` type to be set to string union type. diff --git a/.chronus/changes/constant_generated_name-2024-4-22-16-8-23.md b/.chronus/changes/constant_generated_name-2024-4-22-16-8-23.md deleted file mode 100644 index 436f868832..0000000000 --- a/.chronus/changes/constant_generated_name-2024-4-22-16-8-23.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: fix -packages: - - "@azure-tools/typespec-client-generator-core" ---- - -don't add constant value to generated name \ No newline at end of file diff --git a/.chronus/changes/default_access_public-2024-4-28-12-23-9.md b/.chronus/changes/default_access_public-2024-4-28-12-23-9.md deleted file mode 100644 index baea596af0..0000000000 --- a/.chronus/changes/default_access_public-2024-4-28-12-23-9.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: breaking -packages: - - "@azure-tools/typespec-client-generator-core" ---- - -change default of `.access` on a model or enum to `"public"` instead of `undefined` \ No newline at end of file diff --git a/.chronus/changes/enum-model-as-string-false-2024-2-21-19-56-37.md b/.chronus/changes/enum-model-as-string-false-2024-2-21-19-56-37.md deleted file mode 100644 index dc6b658a4a..0000000000 --- a/.chronus/changes/enum-model-as-string-false-2024-2-21-19-56-37.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking -changeKind: breaking -packages: - - "@azure-tools/typespec-autorest" ---- - -Enums are not extensible by default anymore. Update to an extensible union `union Foo {a: "a", b: "b", string}` diff --git a/.chronus/changes/enum_response_header-2024-4-28-16-46-48.md b/.chronus/changes/enum_response_header-2024-4-28-16-46-48.md deleted file mode 100644 index 188c50d6bd..0000000000 --- a/.chronus/changes/enum_response_header-2024-4-28-16-46-48.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: fix -packages: - - "@azure-tools/typespec-client-generator-core" ---- - -expose enums on response headers \ No newline at end of file diff --git a/.chronus/changes/fix-emit-api-version-2024-4-25-9-53-10.md b/.chronus/changes/fix-emit-api-version-2024-4-25-9-53-10.md deleted file mode 100644 index 39c8145821..0000000000 --- a/.chronus/changes/fix-emit-api-version-2024-4-25-9-53-10.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: fix -packages: - - "@azure-tools/typespec-autorest" ---- - -When emitting version enum only include current version and mark with `modelAsString: true` \ No newline at end of file diff --git a/.chronus/changes/fix-percentcomplete-2024-4-17-22-11-46.md b/.chronus/changes/fix-percentcomplete-2024-4-17-22-11-46.md deleted file mode 100644 index 48be104264..0000000000 --- a/.chronus/changes/fix-percentcomplete-2024-4-17-22-11-46.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking -changeKind: fix -packages: - - "@azure-tools/typespec-azure-resource-manager" ---- - -Fix `percentComplete` property on `OperationStatus` should be a float not an int diff --git a/.chronus/changes/fix_core_model_filter-2024-5-6-15-47-3.md b/.chronus/changes/fix_core_model_filter-2024-5-6-15-47-3.md deleted file mode 100644 index ed5b034d63..0000000000 --- a/.chronus/changes/fix_core_model_filter-2024-5-6-15-47-3.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: fix -packages: - - "@azure-tools/typespec-client-generator-core" ---- - -refine logic of core model filtering \ No newline at end of file diff --git a/.chronus/changes/linter-no-string-discriminator-2024-3-18-15-54-43.md b/.chronus/changes/linter-no-string-discriminator-2024-3-18-15-54-43.md deleted file mode 100644 index ce3a51b6ff..0000000000 --- a/.chronus/changes/linter-no-string-discriminator-2024-3-18-15-54-43.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking -changeKind: fix -packages: - - "@azure-tools/typespec-azure-core" ---- - -Add new `no-string-discriminator` linter rule suggesting using an explicit extensible union as the discriminator kind. diff --git a/.chronus/changes/move_nullable_to_type-2024-4-21-18-6-54.md b/.chronus/changes/move_nullable_to_type-2024-4-21-18-6-54.md deleted file mode 100644 index 449735721e..0000000000 --- a/.chronus/changes/move_nullable_to_type-2024-4-21-18-6-54.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: breaking -packages: - - "@azure-tools/typespec-client-generator-core" ---- - -return nullable types as a new type called `SdkNullableType` diff --git a/.chronus/changes/remove-autorest-arm-dep-2024-4-9-17-15-8.md b/.chronus/changes/remove-autorest-arm-dep-2024-4-9-17-15-8.md deleted file mode 100644 index ee0a5ace20..0000000000 --- a/.chronus/changes/remove-autorest-arm-dep-2024-4-9-17-15-8.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking -changeKind: feature -packages: - - "@azure-tools/typespec-azure-resource-manager" ---- - -Remove dependency on `typespec-autorest` emitter diff --git a/.chronus/changes/remove-autorest-arm-dep-2024-4-9-17-15-82.md b/.chronus/changes/remove-autorest-arm-dep-2024-4-9-17-15-82.md deleted file mode 100644 index 97108bfe45..0000000000 --- a/.chronus/changes/remove-autorest-arm-dep-2024-4-9-17-15-82.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking -changeKind: feature -packages: - - "@azure-tools/typespec-autorest" ---- - -Add dependency on typespec-azure-resource-manager to resolve the spec repo common types paths diff --git a/.chronus/changes/remove-outdated-li3nter-rules-2024-3-19-19-40-26.md b/.chronus/changes/remove-outdated-li3nter-rules-2024-3-19-19-40-26.md deleted file mode 100644 index caf5049bf7..0000000000 --- a/.chronus/changes/remove-outdated-li3nter-rules-2024-3-19-19-40-26.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking -changeKind: internal -packages: - - "@azure-tools/typespec-azure-resource-manager" ---- -Doc change diff --git a/.chronus/changes/remove-outdated-linter-rules-2024-3-19-19-40-26.md b/.chronus/changes/remove-outdated-linter-rules-2024-3-19-19-40-26.md deleted file mode 100644 index 0cbca137ad..0000000000 --- a/.chronus/changes/remove-outdated-linter-rules-2024-3-19-19-40-26.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking -changeKind: feature -packages: - - "@azure-tools/typespec-azure-core" ---- - -Remove linter rules that are not relevant anymore: `use-extensible-enum` and `no-fixed-enum-discriminator` diff --git a/.chronus/changes/res-vis-2024-5-12-4-34-46.md b/.chronus/changes/res-vis-2024-5-12-4-34-46.md deleted file mode 100644 index a5b220fe19..0000000000 --- a/.chronus/changes/res-vis-2024-5-12-4-34-46.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking -changeKind: fix -packages: - - "@azure-tools/typespec-azure-resource-manager" ---- - -Make Resource Properties Bag Updatable diff --git a/.chronus/changes/resolve-duplicate-types-2024-5-4-7-33-26.md b/.chronus/changes/resolve-duplicate-types-2024-5-4-7-33-26.md deleted file mode 100644 index 63441759fb..0000000000 --- a/.chronus/changes/resolve-duplicate-types-2024-5-4-7-33-26.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking -changeKind: fix -packages: - - "@azure-tools/typespec-client-generator-core" ---- - -remove duplicated types in TCGC diff --git a/.chronus/changes/summary-is-title-2024-4-9-20-35-33.md b/.chronus/changes/summary-is-title-2024-4-9-20-35-33.md deleted file mode 100644 index 73a41a6c3e..0000000000 --- a/.chronus/changes/summary-is-title-2024-4-9-20-35-33.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking -changeKind: feature -packages: - - "@azure-tools/typespec-autorest" ---- - -`@summary` sets the title of definitions diff --git a/.chronus/changes/tsp_clid-2024-5-3-18-13-18.md b/.chronus/changes/tsp_clid-2024-5-3-18-13-18.md deleted file mode 100644 index 0e0327c25f..0000000000 --- a/.chronus/changes/tsp_clid-2024-5-3-18-13-18.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: fix -packages: - - "@azure-tools/typespec-client-generator-core" ---- - -enhance cross language definition id logic diff --git a/.chronus/changes/typespec-azure-core_union-for-open-enum-2024-4-17-1-56-35.md b/.chronus/changes/typespec-azure-core_union-for-open-enum-2024-4-17-1-56-35.md deleted file mode 100644 index 65168be262..0000000000 --- a/.chronus/changes/typespec-azure-core_union-for-open-enum-2024-4-17-1-56-35.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking -changeKind: fix -packages: - - "@azure-tools/typespec-azure-core" ---- - -Convert `OperationState` enum to an open union diff --git a/.chronus/changes/update-rulesets-in-templates-2024-4-23-17-47-34.md b/.chronus/changes/update-rulesets-in-templates-2024-4-23-17-47-34.md deleted file mode 100644 index 1289dc58ef..0000000000 --- a/.chronus/changes/update-rulesets-in-templates-2024-4-23-17-47-34.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking -changeKind: fix -packages: - - "@azure-tools/typespec-azure-rulesets" ---- - -Add `tspMain` for playground bundling diff --git a/.chronus/changes/update_canonical_swagger_folder_name-2024-6-6-11-44-3.md b/.chronus/changes/update_canonical_swagger_folder_name-2024-6-6-11-44-3.md deleted file mode 100644 index 14101dc92c..0000000000 --- a/.chronus/changes/update_canonical_swagger_folder_name-2024-6-6-11-44-3.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: fix -packages: - - "@azure-tools/typespec-autorest-canonical" ---- - -update the canonical swagger file folder name diff --git a/.chronus/changes/upgrade-deps-may-2024-2024-4-20-15-35-27.md b/.chronus/changes/upgrade-deps-may-2024-2024-4-20-15-35-27.md deleted file mode 100644 index 7b5fe28555..0000000000 --- a/.chronus/changes/upgrade-deps-may-2024-2024-4-20-15-35-27.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking -changeKind: dependencies -packages: - - "@azure-tools/typespec-autorest-canonical" - - "@azure-tools/typespec-autorest" - - "@azure-tools/typespec-azure-core" - - "@azure-tools/typespec-azure-portal-core" - - "@azure-tools/typespec-azure-resource-manager" - - "@azure-tools/typespec-client-generator-core" ---- - -Update dependencies - May 2024 diff --git a/.chronus/changes/uptake-multipartv2-2024-4-22-16-3-12.2.md b/.chronus/changes/uptake-multipartv2-2024-4-22-16-3-12.2.md deleted file mode 100644 index 84b508ab18..0000000000 --- a/.chronus/changes/uptake-multipartv2-2024-4-22-16-3-12.2.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking -changeKind: internal -packages: - - "@azure-tools/typespec-azure-resource-manager" - - "@azure-tools/typespec-client-generator-core" - - "@azure-tools/typespec-azure-core" ---- diff --git a/.chronus/changes/uptake-multipartv2-2024-4-22-16-3-12.md b/.chronus/changes/uptake-multipartv2-2024-4-22-16-3-12.md deleted file mode 100644 index 74d948dfd6..0000000000 --- a/.chronus/changes/uptake-multipartv2-2024-4-22-16-3-12.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking -changeKind: fix -packages: - - "@azure-tools/typespec-autorest" ---- - -Add support for new multipart constructs in http library diff --git a/.chronus/changes/uptake-object-literals-2024-2-19-2-42-4.md b/.chronus/changes/uptake-object-literals-2024-2-19-2-42-4.md deleted file mode 100644 index 7cdba67a7d..0000000000 --- a/.chronus/changes/uptake-object-literals-2024-2-19-2-42-4.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking -changeKind: fix -packages: - - "@azure-tools/typespec-autorest" ---- - -Add support for tuple literals as default values diff --git a/.chronus/changes/uptake-object-literals-2024-2-19-2-47-33.md b/.chronus/changes/uptake-object-literals-2024-2-19-2-47-33.md deleted file mode 100644 index fbd98bdd8e..0000000000 --- a/.chronus/changes/uptake-object-literals-2024-2-19-2-47-33.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking -changeKind: feature -packages: - - "@azure-tools/typespec-azure-core" - - "@azure-tools/typespec-azure-resource-manager" ---- - -Add support for values diff --git a/.chronus/changes/usage_refine-2024-4-29-22-20-25.md b/.chronus/changes/usage_refine-2024-4-29-22-20-25.md deleted file mode 100644 index 1b65166673..0000000000 --- a/.chronus/changes/usage_refine-2024-4-29-22-20-25.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: fix -packages: - - "@azure-tools/typespec-client-generator-core" ---- - -add read only logic to usage propagation \ No newline at end of file diff --git a/core b/core index 4ed71bf73f..9c701cc272 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 4ed71bf73fe51292c52676849b8462ced86005fb +Subproject commit 9c701cc27264e0d635e622e823270d0c054f64a9 diff --git a/docs/release-notes/release-2024-06-11.md b/docs/release-notes/release-2024-06-11.md index d5e1817b4f..e3d72a440f 100644 --- a/docs/release-notes/release-2024-06-11.md +++ b/docs/release-notes/release-2024-06-11.md @@ -4,7 +4,7 @@ title: 0.43.0 June 2024 # Release Notes Version 0.43.0 - June 2024 -See TypeSpec Core 0.57 [release notes](https://typespec.io/docs/release-notes/release-2024-06-11) +See TypeSpec Core 0.57 [release notes](https://typespec.io/docs/release-notes/release-2024-06-10) :::warning This release contains breaking changes and deprecation diff --git a/eng/pipelines/jobs/e2e-job.yml b/eng/pipelines/jobs/e2e-job.yml index cafeb94bf8..6e1de58d52 100644 --- a/eng/pipelines/jobs/e2e-job.yml +++ b/eng/pipelines/jobs/e2e-job.yml @@ -25,3 +25,5 @@ jobs: - script: pnpm test:e2e displayName: E2E Tests + # E2E test have issue in publish branch due to version being bumped but package not published yet. + condition: and(succeeded(), eq(startsWith(variables['System.PullRequest.SourceBranch'], 'publish/'), false)) diff --git a/packages/typespec-autorest-canonical/CHANGELOG.md b/packages/typespec-autorest-canonical/CHANGELOG.md index ef0c9fcb96..f8349303aa 100644 --- a/packages/typespec-autorest-canonical/CHANGELOG.md +++ b/packages/typespec-autorest-canonical/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog - @azure-tools/typespec-autorest-canonical +## 0.4.0 + +### Bug Fixes + +- [#968](https://github.com/Azure/typespec-azure/pull/968) update the canonical swagger file folder name + +### Bump dependencies + +- [#867](https://github.com/Azure/typespec-azure/pull/867) Update dependencies - May 2024 + + ## 0.3.0 ### Bug Fixes diff --git a/packages/typespec-autorest-canonical/package.json b/packages/typespec-autorest-canonical/package.json index 94bc3e7a17..bc4cb420f2 100644 --- a/packages/typespec-autorest-canonical/package.json +++ b/packages/typespec-autorest-canonical/package.json @@ -1,6 +1,6 @@ { "name": "@azure-tools/typespec-autorest-canonical", - "version": "0.3.0", + "version": "0.4.0", "author": "Microsoft Corporation", "description": "TypeSpec library for emitting canonical swagger", "homepage": "https://azure.github.io/typespec-azure", diff --git a/packages/typespec-autorest/CHANGELOG.md b/packages/typespec-autorest/CHANGELOG.md index 4bcd7a2f7a..bc31ddc137 100644 --- a/packages/typespec-autorest/CHANGELOG.md +++ b/packages/typespec-autorest/CHANGELOG.md @@ -1,5 +1,30 @@ # Change Log - @azure-tools/typespec-autorest +## 0.43.0 + +### Bug Fixes + +- [#923](https://github.com/Azure/typespec-azure/pull/923) When emitting version enum only include current version and mark with `modelAsString: true` +- [#902](https://github.com/Azure/typespec-azure/pull/902) Add support for new multipart constructs in http library +- [#432](https://github.com/Azure/typespec-azure/pull/432) Add support for tuple literals as default values + +### Bump dependencies + +- [#867](https://github.com/Azure/typespec-azure/pull/867) Update dependencies - May 2024 + +### Features + +- [#955](https://github.com/Azure/typespec-azure/pull/955) Use emit-lro--options emitter option to control emission of x-ms-long-running-operation-options +- [#955](https://github.com/Azure/typespec-azure/pull/955) Add support for displaying lro options in typespec-autorest based on lro metadata +- [#972](https://github.com/Azure/typespec-azure/pull/972) Add API to programmatically get all the OpenAPI2 documents for all services at all versions in a spec +- [#811](https://github.com/Azure/typespec-azure/pull/811) Add dependency on typespec-azure-resource-manager to resolve the spec repo common types paths +- [#813](https://github.com/Azure/typespec-azure/pull/813) `@summary` sets the title of definitions + +### Breaking Changes + +- [#473](https://github.com/Azure/typespec-azure/pull/473) Enums are not extensible by default anymore. Update to an extensible union `union Foo {a: "a", b: "b", string}` + + ## 0.42.1 ### Bug Fixes diff --git a/packages/typespec-autorest/package.json b/packages/typespec-autorest/package.json index ed000d9ff4..7c8417c850 100644 --- a/packages/typespec-autorest/package.json +++ b/packages/typespec-autorest/package.json @@ -1,6 +1,6 @@ { "name": "@azure-tools/typespec-autorest", - "version": "0.42.1", + "version": "0.43.0", "author": "Microsoft Corporation", "description": "TypeSpec library for emitting openapi from the TypeSpec REST protocol binding", "homepage": "https://azure.github.io/typespec-azure", diff --git a/packages/typespec-azure-core/CHANGELOG.md b/packages/typespec-azure-core/CHANGELOG.md index 16279fa286..ce46f8fda0 100644 --- a/packages/typespec-azure-core/CHANGELOG.md +++ b/packages/typespec-azure-core/CHANGELOG.md @@ -1,5 +1,23 @@ # Change Log - @azure-tools/typespec-azure-core +## 0.43.0 + +### Bug Fixes + +- [#693](https://github.com/Azure/typespec-azure/pull/693) Add new `no-string-discriminator` linter rule suggesting using an explicit extensible union as the discriminator kind. +- [#851](https://github.com/Azure/typespec-azure/pull/851) Convert `OperationState` enum to an open union + +### Bump dependencies + +- [#867](https://github.com/Azure/typespec-azure/pull/867) Update dependencies - May 2024 + +### Features + +- [#955](https://github.com/Azure/typespec-azure/pull/955) Add override decorator @useFinalStateVia for lro resolution when multiple resolution pathways exist +- [#707](https://github.com/Azure/typespec-azure/pull/707) Remove linter rules that are not relevant anymore: `use-extensible-enum` and `no-fixed-enum-discriminator` +- [#432](https://github.com/Azure/typespec-azure/pull/432) Add support for values + + ## 0.42.0 ### Bug Fixes diff --git a/packages/typespec-azure-core/package.json b/packages/typespec-azure-core/package.json index 7c9fe5dc1d..ec1a866320 100644 --- a/packages/typespec-azure-core/package.json +++ b/packages/typespec-azure-core/package.json @@ -1,6 +1,6 @@ { "name": "@azure-tools/typespec-azure-core", - "version": "0.42.0", + "version": "0.43.0", "author": "Microsoft Corporation", "description": "TypeSpec Azure Core library", "homepage": "https://azure.github.io/typespec-azure", diff --git a/packages/typespec-azure-portal-core/CHANGELOG.md b/packages/typespec-azure-portal-core/CHANGELOG.md index 231a746e44..ba32288026 100644 --- a/packages/typespec-azure-portal-core/CHANGELOG.md +++ b/packages/typespec-azure-portal-core/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog - @azure-tools/typespec-azure-portal-core +## 0.43.0 + +### Bump dependencies + +- [#867](https://github.com/Azure/typespec-azure/pull/867) Update dependencies - May 2024 + + ## 0.42.0 ### Bump dependencies diff --git a/packages/typespec-azure-portal-core/package.json b/packages/typespec-azure-portal-core/package.json index 83bd30bbff..68fb118359 100644 --- a/packages/typespec-azure-portal-core/package.json +++ b/packages/typespec-azure-portal-core/package.json @@ -1,6 +1,6 @@ { "name": "@azure-tools/typespec-azure-portal-core", - "version": "0.42.0", + "version": "0.43.0", "author": "Microsoft Corporation", "description": "TypeSpec Azure Portal Core library", "license": "MIT", diff --git a/packages/typespec-azure-resource-manager/CHANGELOG.md b/packages/typespec-azure-resource-manager/CHANGELOG.md index 14efbb8f96..fa32d04822 100644 --- a/packages/typespec-azure-resource-manager/CHANGELOG.md +++ b/packages/typespec-azure-resource-manager/CHANGELOG.md @@ -1,5 +1,25 @@ # Change Log - @azure-tools/typespec-azure-resource-manager +## 0.43.0 + +### Bug Fixes + +- [#998](https://github.com/Azure/typespec-azure/pull/998) Adding legacy v4 ManagedServiceIdentity model to avoid breaking changes in specs with mixed v3 and v4 common type reference +- [#955](https://github.com/Azure/typespec-azure/pull/955) Remove OpenAPI dependencies from ARM LRO templates and test LRO overrides +- [#929](https://github.com/Azure/typespec-azure/pull/929) Adding an overload parameter to ResourceNameParameter that allows `name` type to be set to string union type. +- [#860](https://github.com/Azure/typespec-azure/pull/860) Fix `percentComplete` property on `OperationStatus` should be a float not an int +- [#979](https://github.com/Azure/typespec-azure/pull/979) Make Resource Properties Bag Updatable + +### Bump dependencies + +- [#867](https://github.com/Azure/typespec-azure/pull/867) Update dependencies - May 2024 + +### Features + +- [#811](https://github.com/Azure/typespec-azure/pull/811) Remove dependency on `typespec-autorest` emitter +- [#432](https://github.com/Azure/typespec-azure/pull/432) Add support for values + + ## 0.42.1 ### Bug Fixes diff --git a/packages/typespec-azure-resource-manager/package.json b/packages/typespec-azure-resource-manager/package.json index 86fe058c94..c2a69d542f 100644 --- a/packages/typespec-azure-resource-manager/package.json +++ b/packages/typespec-azure-resource-manager/package.json @@ -1,6 +1,6 @@ { "name": "@azure-tools/typespec-azure-resource-manager", - "version": "0.42.1", + "version": "0.43.0", "author": "Microsoft Corporation", "description": "TypeSpec Azure Resource Manager library", "homepage": "https://azure.github.io/typespec-azure", diff --git a/packages/typespec-azure-rulesets/CHANGELOG.md b/packages/typespec-azure-rulesets/CHANGELOG.md index 8cc7fe4b40..1e085469ec 100644 --- a/packages/typespec-azure-rulesets/CHANGELOG.md +++ b/packages/typespec-azure-rulesets/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog - @azure-tools/typespec-azure-rulesets +## 0.43.0 + +### Bug Fixes + +- [#905](https://github.com/Azure/typespec-azure/pull/905) Add `tspMain` for playground bundling + + ## 0.42.1 diff --git a/packages/typespec-azure-rulesets/package.json b/packages/typespec-azure-rulesets/package.json index 9fc3c65c6f..269961c4b8 100644 --- a/packages/typespec-azure-rulesets/package.json +++ b/packages/typespec-azure-rulesets/package.json @@ -1,6 +1,6 @@ { "name": "@azure-tools/typespec-azure-rulesets", - "version": "0.42.1", + "version": "0.43.0", "author": "Microsoft Corporation", "description": "TypeSpec ruleset for Azure specs", "homepage": "https://azure.github.io/typespec-azure", diff --git a/packages/typespec-client-generator-core/CHANGELOG.md b/packages/typespec-client-generator-core/CHANGELOG.md index 955c922dea..d4aa2efb47 100644 --- a/packages/typespec-client-generator-core/CHANGELOG.md +++ b/packages/typespec-client-generator-core/CHANGELOG.md @@ -1,5 +1,28 @@ # Change Log - @azure-tools/typespec-client-generator-core +## 0.43.0 + +### Bug Fixes + +- [#904](https://github.com/Azure/typespec-azure/pull/904) don't add constant value to generated name +- [#873](https://github.com/Azure/typespec-azure/pull/873) add description for created discriminator property +- [#947](https://github.com/Azure/typespec-azure/pull/947) support new typespec emitter naming rule +- [#930](https://github.com/Azure/typespec-azure/pull/930) expose enums on response headers +- [#962](https://github.com/Azure/typespec-azure/pull/962) refine logic of core model filtering +- [#950](https://github.com/Azure/typespec-azure/pull/950) remove duplicated types in TCGC +- [#936](https://github.com/Azure/typespec-azure/pull/936) enhance cross language definition id logic +- [#935](https://github.com/Azure/typespec-azure/pull/935) add read only logic to usage propagation + +### Bump dependencies + +- [#867](https://github.com/Azure/typespec-azure/pull/867) Update dependencies - May 2024 + +### Breaking Changes + +- [#925](https://github.com/Azure/typespec-azure/pull/925) change default of `.access` on a model or enum to `"public"` instead of `undefined` +- [#870](https://github.com/Azure/typespec-azure/pull/870) return nullable types as a new type called `SdkNullableType` + + ## 0.42.3 ### Bug Fixes diff --git a/packages/typespec-client-generator-core/package.json b/packages/typespec-client-generator-core/package.json index 75e7293376..d60ac13981 100644 --- a/packages/typespec-client-generator-core/package.json +++ b/packages/typespec-client-generator-core/package.json @@ -1,6 +1,6 @@ { "name": "@azure-tools/typespec-client-generator-core", - "version": "0.42.3", + "version": "0.43.0", "author": "Microsoft Corporation", "description": "TypeSpec Data Plane Generation library", "homepage": "https://azure.github.io/typespec-azure", diff --git a/packages/website/playground-versions.json b/packages/website/playground-versions.json index 8e6c545af5..8e7dac4cdf 100644 --- a/packages/website/playground-versions.json +++ b/packages/website/playground-versions.json @@ -1,4 +1,5 @@ [ + "0.43.x", "0.42.x", "0.41.x", "0.40.x", diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest-canonical/reference/emitter.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest-canonical/reference/emitter.md index 4613b5348f..820c8a8995 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest-canonical/reference/emitter.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest-canonical/reference/emitter.md @@ -33,7 +33,7 @@ Output file will interpolate the following values: - service-name: Name of the service if multiple - azure-resource-provider-folder: Value of the azure-resource-provider-folder option -Default: `{azure-resource-provider-folder}/{service-name}/{version}/openapi.json` +Default: `{azure-resource-provider-folder}/{service-name}/canonical/openapi.json` Example: Single service diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest-canonical/reference/js-api/functions/$onEmit.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest-canonical/reference/js-api/functions/$onEmit.md index ebd553ae56..aa97127935 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest-canonical/reference/js-api/functions/$onEmit.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest-canonical/reference/js-api/functions/$onEmit.md @@ -4,7 +4,7 @@ title: "[F] $onEmit" --- ```ts -$onEmit(context): Promise +function $onEmit(context): Promise ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest-canonical/reference/js-api/interfaces/AutorestCanonicalEmitterOptions.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest-canonical/reference/js-api/interfaces/AutorestCanonicalEmitterOptions.md index a47d01a129..2ba69f89d2 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest-canonical/reference/js-api/interfaces/AutorestCanonicalEmitterOptions.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest-canonical/reference/js-api/interfaces/AutorestCanonicalEmitterOptions.md @@ -7,9 +7,9 @@ title: "[I] AutorestCanonicalEmitterOptions" | Property | Type | Description | | :------ | :------ | :------ | -| `arm-types-dir?` | `string` | Path to the common-types.json file folder.

**Default**
` "${project-root}/../../common-types/resource-management" ` | +| `arm-types-dir?` | `string` |

Path to the common-types.json file folder.

**Default**

"${project-root}/../../common-types/resource-management" | | `azure-resource-provider-folder?` | `string` | - | -| `include-x-typespec-name?` | `"never"` \| `"inline-only"` | If the generated openapi types should have the `x-typespec-name` extension set with the name of the TypeSpec type that created it.
This extension is meant for debugging and should not be depended on.

**Default**
` "never" ` | -| `new-line?` | `"lf"` \| `"crlf"` | Set the newline character for emitting files.

**Default**
` lf ` | -| `omit-unreachable-types?` | `boolean` | Omit unreachable types.
By default all types declared under the service namespace will be included. With this flag on only types references in an operation will be emitted. | -| `output-file?` | `string` | Name of the output file.
Output file will interpolate the following values:
- service-name: Name of the service if multiple
- version: Version of the service if multiple
- azure-resource-provider-folder: Value of the azure-resource-provider-folder option

**Default**
`{azure-resource-provider-folder}/{service-name}/{version}/openapi.json`

**Example**
` Single service no versioning - `canonical.openapi.json` `

**Example**
` Multiple services no versioning - `Service1.canonical.openapi.json` - `Service2.canonical.openapi.json` `

**Example**
` Single service with versioning - `canonical.openapi.json` `

**Example**
` Multiple service with versioning - `Service1.canonical.openapi.json` - `Service2.canonical.openapi.json` ` | +| `include-x-typespec-name?` | `"never"` \| `"inline-only"` |

If the generated openapi types should have the `x-typespec-name` extension set with the name of the TypeSpec type that created it. This extension is meant for debugging and should not be depended on.

**Default**

"never" | +| `new-line?` | `"lf"` \| `"crlf"` |

Set the newline character for emitting files.

**Default**

lf | +| `omit-unreachable-types?` | `boolean` | Omit unreachable types. By default all types declared under the service namespace will be included. With this flag on only types references in an operation will be emitted. | +| `output-file?` | `string` |

Name of the output file. Output file will interpolate the following values:

  • service-name: Name of the service if multiple
  • version: Version of the service if multiple
  • azure-resource-provider-folder: Value of the azure-resource-provider-folder option

**Default**

`{azure-resource-provider-folder}/{service-name}/canonical/openapi.json`

**Examples**

Single service no versioning
  • `canonical.openapi.json`
Multiple services no versioning
  • `Service1.canonical.openapi.json`
  • `Service2.canonical.openapi.json`
Single service with versioning
  • `canonical.openapi.json`
Multiple service with versioning
  • `Service1.canonical.openapi.json`
  • `Service2.canonical.openapi.json`
| diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest-canonical/reference/js-api/variables/$lib.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest-canonical/reference/js-api/variables/$lib.md index eff3d049b1..bf5e435a24 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest-canonical/reference/js-api/variables/$lib.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest-canonical/reference/js-api/variables/$lib.md @@ -4,12 +4,12 @@ title: "[V] $lib" --- ```ts -const $lib: TypeSpecLibrary; +const $lib: TypeSpecLibrary; ``` ## Type declaration | Member | Type | Value | | :------ | :------ | :------ | -| `unsupported-versioning-decorator` | `Object` | - | -| `unsupported-versioning-decorator.default` | `CallableMessage`<[`"decorator"`]\> | - | +| `unsupported-versioning-decorator` | `object` | ... | +| `unsupported-versioning-decorator.default` | `CallableMessage`<[`"decorator"`]\> | ... | diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/emitter.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/emitter.md index 13979134cd..4bc24450c4 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/emitter.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/emitter.md @@ -119,3 +119,9 @@ This extension is meant for debugging and should not be depended on. **Type:** `boolean` Create read-only property schema for lro status + +### `emit-lro-options` + +**Type:** `"none" | "final-state-only" | "all"` + +Determine whether and how to emit x-ms-long-running-operation-options for lro resolution diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/$example.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/$example.md index d2538b2457..ba41618db2 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/$example.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/$example.md @@ -4,7 +4,7 @@ title: "[F] $example" --- ```ts -$example( +function $example( context, entity, pathOrUri, diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/$onEmit.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/$onEmit.md index 3c7b2bb4ff..5feabb51a4 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/$onEmit.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/$onEmit.md @@ -4,7 +4,7 @@ title: "[F] $onEmit" --- ```ts -$onEmit(context): Promise +function $onEmit(context): Promise ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/$useRef.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/$useRef.md index 4a42b6f706..d66a1a1e16 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/$useRef.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/$useRef.md @@ -4,7 +4,7 @@ title: "[F] $useRef" --- ```ts -$useRef( +function $useRef( context, entity, jsonRef): void @@ -17,7 +17,7 @@ $useRef( | Parameter | Type | | :------ | :------ | | `context` | `DecoratorContext` | -| `entity` | `ModelProperty` \| `Model` | +| `entity` | `Model` \| `ModelProperty` | | `jsonRef` | `string` | ## Returns diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/getAllServicesAtAllVersions.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/getAllServicesAtAllVersions.md new file mode 100644 index 0000000000..f41bb7980a --- /dev/null +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/getAllServicesAtAllVersions.md @@ -0,0 +1,19 @@ +--- +jsApi: true +title: "[F] getAllServicesAtAllVersions" + +--- +```ts +function getAllServicesAtAllVersions(program, options): Promise +``` + +## Parameters + +| Parameter | Type | +| :------ | :------ | +| `program` | `Program` | +| `options` | `ResolvedAutorestEmitterOptions` | + +## Returns + +`Promise`<`AutorestServiceRecord`[]\> diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/getExamples.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/getExamples.md index 4d76a9bdcd..dabbc92b5c 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/getExamples.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/getExamples.md @@ -4,7 +4,7 @@ title: "[F] getExamples" --- ```ts -getExamples(program, entity): Example[] | undefined +function getExamples(program, entity): Example[] | undefined ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/getOpenAPIForService.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/getOpenAPIForService.md index 559216a459..dd0eeb2bdf 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/getOpenAPIForService.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/getOpenAPIForService.md @@ -4,7 +4,7 @@ title: "[F] getOpenAPIForService" --- ```ts -getOpenAPIForService(context, options): Promise +function getOpenAPIForService(context, options): Promise ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/getRef.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/getRef.md index dbb9556a44..a8d8f611d3 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/getRef.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/getRef.md @@ -4,10 +4,7 @@ title: "[F] getRef" --- ```ts -getRef( - program, - entity, - params?): string | undefined +function getRef(program, entity): string | undefined ``` ## Parameters @@ -16,7 +13,6 @@ getRef( | :------ | :------ | | `program` | `Program` | | `entity` | `Type` | -| `params`? | [`RefProducerParams`](../interfaces/RefProducerParams.md) | ## Returns diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/resolveAutorestOptions.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/resolveAutorestOptions.md new file mode 100644 index 0000000000..690f7ecdb7 --- /dev/null +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/resolveAutorestOptions.md @@ -0,0 +1,23 @@ +--- +jsApi: true +title: "[F] resolveAutorestOptions" + +--- +```ts +function resolveAutorestOptions( + program, + emitterOutputDir, + options): ResolvedAutorestEmitterOptions +``` + +## Parameters + +| Parameter | Type | +| :------ | :------ | +| `program` | `Program` | +| `emitterOutputDir` | `string` | +| `options` | [`AutorestEmitterOptions`](../interfaces/AutorestEmitterOptions.md) | + +## Returns + +`ResolvedAutorestEmitterOptions` diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/setRefProducer.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/setRefProducer.md deleted file mode 100644 index 79ce4d1d8f..0000000000 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/setRefProducer.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -jsApi: true -title: "[F] setRefProducer" - ---- -```ts -setRefProducer( - program, - entity, - refProducer): void -``` - -Configures a "ref producer" for the given entity. A ref producer is a -function that returns a ref path for the given entity, possibly altered by -the options provided to the function (like the service and version). - -## Parameters - -| Parameter | Type | -| :------ | :------ | -| `program` | `Program` | -| `entity` | `ModelProperty` \| `Model` | -| `refProducer` | [`RefProducer`](../type-aliases/RefProducer.md) | - -## Returns - -`void` diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/sortOpenAPIDocument.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/sortOpenAPIDocument.md index ce6b41932c..d9b7e319ce 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/sortOpenAPIDocument.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/functions/sortOpenAPIDocument.md @@ -4,7 +4,7 @@ title: "[F] sortOpenAPIDocument" --- ```ts -sortOpenAPIDocument(doc): OpenAPI2Document +function sortOpenAPIDocument(doc): OpenAPI2Document ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/index.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/index.md index b4dcd34dea..b351d17c72 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/index.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/index.md @@ -32,7 +32,6 @@ title: "[P] JS API" - [OpenAPI2Tag](interfaces/OpenAPI2Tag.md) - [PrimitiveItems](interfaces/PrimitiveItems.md) - [Ref](interfaces/Ref.md) -- [RefProducerParams](interfaces/RefProducerParams.md) - [XMSParameterizedHost](interfaces/XMSParameterizedHost.md) ## Type Aliases @@ -40,6 +39,7 @@ title: "[P] JS API" - [Extensions](type-aliases/Extensions.md) - [HttpMethod](type-aliases/HttpMethod.md) - [JsonType](type-aliases/JsonType.md) +- [OpenAPI2FileSchema](type-aliases/OpenAPI2FileSchema.md) - [OpenAPI2OAuth2FlowType](type-aliases/OpenAPI2OAuth2FlowType.md) - [OpenAPI2Operation](type-aliases/OpenAPI2Operation.md) - [OpenAPI2Parameter](type-aliases/OpenAPI2Parameter.md) @@ -52,8 +52,9 @@ title: "[P] JS API" - [OpenAPI2SecurityRequirement](type-aliases/OpenAPI2SecurityRequirement.md) - [OpenAPI2SecurityScheme](type-aliases/OpenAPI2SecurityScheme.md) - [OpenAPI2StatusCode](type-aliases/OpenAPI2StatusCode.md) -- [RefProducer](type-aliases/RefProducer.md) - [Refable](type-aliases/Refable.md) +- [XMSLongRunningFinalState](type-aliases/XMSLongRunningFinalState.md) +- [XMSLongRunningOperationOptions](type-aliases/XMSLongRunningOperationOptions.md) ## Variables @@ -65,8 +66,9 @@ title: "[P] JS API" - [$example](functions/$example.md) - [$onEmit](functions/$onEmit.md) - [$useRef](functions/$useRef.md) +- [getAllServicesAtAllVersions](functions/getAllServicesAtAllVersions.md) - [getExamples](functions/getExamples.md) - [getOpenAPIForService](functions/getOpenAPIForService.md) - [getRef](functions/getRef.md) -- [setRefProducer](functions/setRefProducer.md) +- [resolveAutorestOptions](functions/resolveAutorestOptions.md) - [sortOpenAPIDocument](functions/sortOpenAPIDocument.md) diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/AutorestDocumentEmitterOptions.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/AutorestDocumentEmitterOptions.md index 4f8b8037f1..3be2e68d42 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/AutorestDocumentEmitterOptions.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/AutorestDocumentEmitterOptions.md @@ -10,8 +10,9 @@ Options to configure the behavior of the Autorest document emitter. | Property | Modifier | Type | Description | | :------ | :------ | :------ | :------ | | `armTypesDir` | `readonly` | `string` | Arm types dir | +| `emitLroOptions?` | `readonly` | `"all"` \| `"none"` \| `"final-state-only"` |

Determines whether and how to emit x-ms-long-running-operation-options to describe resolution of asynchronous operations

**Default**

"final-state-only" | | `examplesDirectory?` | `readonly` | `string` | - | | `includeXTypeSpecName` | `readonly` | `"never"` \| `"inline-only"` | If the x-typespec-name extension should be included | -| `omitUnreachableTypes?` | `readonly` | `boolean` | Omit unreachable types.
By default all types declared under the service namespace will be included. With this flag on only types references in an operation will be emitted. | +| `omitUnreachableTypes?` | `readonly` | `boolean` | Omit unreachable types. By default all types declared under the service namespace will be included. With this flag on only types references in an operation will be emitted. | | `useReadOnlyStatusSchema?` | `readonly` | `boolean` | readOnly property schema behavior | -| `versionEnumStrategy?` | `readonly` | `"include"` \| `"omit"` | Decide how to deal with the version enum when `omitUnreachableTypes` is not set.

**Default**
` "omit" ` | +| `versionEnumStrategy?` | `readonly` | `"include"` \| `"omit"` |

Decide how to deal with the version enum when `omitUnreachableTypes` is not set.

**Default**

"omit" | diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/AutorestEmitterOptions.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/AutorestEmitterOptions.md index 56a8484184..e9bf107107 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/AutorestEmitterOptions.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/AutorestEmitterOptions.md @@ -7,14 +7,15 @@ title: "[I] AutorestEmitterOptions" | Property | Type | Description | | :------ | :------ | :------ | -| `arm-types-dir?` | `string` | Path to the common-types.json file folder.

**Default**
` "${project-root}/../../common-types/resource-management" ` | +| `arm-types-dir?` | `string` |

Path to the common-types.json file folder.

**Default**

"${project-root}/../../common-types/resource-management" | | `azure-resource-provider-folder?` | `string` | - | -| `examples-directory?` | `string` | Directory where the examples are located.

**Default**
`{cwd}/examples` | -| `include-x-typespec-name?` | `"never"` \| `"inline-only"` | If the generated openapi types should have the `x-typespec-name` extension set with the name of the TypeSpec type that created it.
This extension is meant for debugging and should not be depended on.

**Default**
` "never" ` | -| `new-line?` | `"lf"` \| `"crlf"` | Set the newline character for emitting files.

**Default**
` lf ` | -| `omit-unreachable-types?` | `boolean` | Omit unreachable types.
By default all types declared under the service namespace will be included. With this flag on only types references in an operation will be emitted. | -| ~~`output-dir?`~~ | `string` | **Deprecated**
DO NOT USE. Use built-in emitter-output-dir instead | -| `output-file?` | `string` | Name of the output file.
Output file will interpolate the following values:
- service-name: Name of the service if multiple
- version: Version of the service if multiple
- azure-resource-provider-folder: Value of the azure-resource-provider-folder option
- version-status: Only enabled if azure-resource-provider-folder is set. `preview` if version contains preview, stable otherwise.

**Default**
`{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/openapi.json`

**Example**
` Single service no versioning - `openapi.yaml` `

**Example**
` Multiple services no versioning - `openapi.Org1.Service1.yaml` - `openapi.Org1.Service2.yaml` `

**Example**
` Single service with versioning - `openapi.v1.yaml` - `openapi.v2.yaml` `

**Example**
` Multiple service with versioning - `openapi.Org1.Service1.v1.yaml` - `openapi.Org1.Service1.v2.yaml` - `openapi.Org1.Service2.v1.0.yaml` - `openapi.Org1.Service2.v1.1.yaml` `

**Example**
` azureResourceProviderFolder is provided - `arm-folder/AzureService/preview/2020-01-01.yaml` - `arm-folder/AzureService/preview/2020-01-01.yaml` ` | -| `use-read-only-status-schema?` | `boolean` | Determines whether to transmit the 'readOnly' property to lro status schemas.

**Default**
` false ` | +| `emit-lro-options?` | `"all"` \| `"none"` \| `"final-state-only"` |

Determines whether and how to emit the x-ms-long-running-operation-options

**Default**

"final-state-only" | +| `examples-directory?` | `string` |

Directory where the examples are located.

**Default**

`{cwd}/examples`

| +| `include-x-typespec-name?` | `"never"` \| `"inline-only"` |

If the generated openapi types should have the `x-typespec-name` extension set with the name of the TypeSpec type that created it. This extension is meant for debugging and should not be depended on.

**Default**

"never" | +| `new-line?` | `"lf"` \| `"crlf"` |

Set the newline character for emitting files.

**Default**

lf | +| `omit-unreachable-types?` | `boolean` | Omit unreachable types. By default all types declared under the service namespace will be included. With this flag on only types references in an operation will be emitted. | +| ~~`output-dir?`~~ | `string` |

**Deprecated**

DO NOT USE. Use built-in emitter-output-dir instead

| +| `output-file?` | `string` |

Name of the output file. Output file will interpolate the following values:

  • service-name: Name of the service if multiple
  • version: Version of the service if multiple
  • azure-resource-provider-folder: Value of the azure-resource-provider-folder option
  • version-status: Only enabled if azure-resource-provider-folder is set. `preview` if version contains preview, stable otherwise.

**Default**

`{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/openapi.json`

**Examples**

Single service no versioning
  • `openapi.yaml`
Multiple services no versioning
  • `openapi.Org1.Service1.yaml`
  • `openapi.Org1.Service2.yaml`
Single service with versioning
  • `openapi.v1.yaml`
  • `openapi.v2.yaml`
Multiple service with versioning
  • `openapi.Org1.Service1.v1.yaml`
  • `openapi.Org1.Service1.v2.yaml`
  • `openapi.Org1.Service2.v1.0.yaml`
  • `openapi.Org1.Service2.v1.1.yaml`
azureResourceProviderFolder is provided
  • `arm-folder/AzureService/preview/2020-01-01.yaml`
  • `arm-folder/AzureService/preview/2020-01-01.yaml`
| +| `use-read-only-status-schema?` | `boolean` |

Determines whether to transmit the 'readOnly' property to lro status schemas.

**Default**

false | | `version?` | `string` | - | -| `version-enum-strategy?` | `"include"` \| `"omit"` | Decide how to deal with the Version enum when when `omit-unreachable-types` is not set.

**Default**
` "omit" ` | +| `version-enum-strategy?` | `"include"` \| `"omit"` |

Decide how to deal with the Version enum when when `omit-unreachable-types` is not set.

**Default**

"omit" | diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/OpenAPI2Document.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/OpenAPI2Document.md index dd1fdbe6bd..21718195f0 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/OpenAPI2Document.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/OpenAPI2Document.md @@ -14,7 +14,7 @@ title: "[I] OpenAPI2Document" | `consumes?` | `string`[] | A list of MIME types the APIs can consume. This is global to all APIs but can be overridden on specific API calls | | `definitions?` | `Record`<`string`, [`OpenAPI2Schema`](../type-aliases/OpenAPI2Schema.md)\> | Data types that can be consumed and produced by operations | | `externalDocs?` | [`OpenAPI2ExternalDocs`](OpenAPI2ExternalDocs.md) | Additional external documentation. | -| `host?` | `string` | The host (name or ip) serving the API. This MUST be the host only and does not include the scheme nor sub-paths. It MAY include a port.
If the host is not included, the host serving the documentation is to be used (including the port). The host does not support path templating. | +| `host?` | `string` | The host (name or ip) serving the API. This MUST be the host only and does not include the scheme nor sub-paths. It MAY include a port. If the host is not included, the host serving the documentation is to be used (including the port). The host does not support path templating. | | `info` | [`OpenAPI2Info`](OpenAPI2Info.md) | Provides metadata about the API. The metadata can be used by the clients if needed. | | `parameters?` | `Record`<`string`, [`OpenAPI2Parameter`](../type-aliases/OpenAPI2Parameter.md)\> | parameters that can be used across operations | | `paths` | `Record`<`string`, [`OpenAPI2PathItem`](../type-aliases/OpenAPI2PathItem.md)\> | The available paths and operations for the API | @@ -23,6 +23,6 @@ title: "[I] OpenAPI2Document" | `security?` | [`OpenAPI2SecurityRequirement`](../type-aliases/OpenAPI2SecurityRequirement.md)[] | A declaration of which security schemes are applied for the API as a whole. The list of values describes alternative security schemes that can be used (that is, there is a logical OR between the security requirements). Individual operations can override this definition | | `securityDefinitions?` | `Record`<`string`, [`OpenAPI2SecurityScheme`](../type-aliases/OpenAPI2SecurityScheme.md)\> | Security scheme definitions that can be used across the specification | | `swagger` | `"2.0"` | - | -| `tags?` | [`OpenAPI2Tag`](OpenAPI2Tag.md)[] | A list of tags used by the specification with additional metadata.
The order of the tags can be used to reflect on their order by the parsing tools.
Not all tags that are used by the Operation Object must be declared.
The tags that are not declared may be organized randomly or based on the tools' logic. Each tag name in the list MUST be unique. | +| `tags?` | [`OpenAPI2Tag`](OpenAPI2Tag.md)[] | A list of tags used by the specification with additional metadata. The order of the tags can be used to reflect on their order by the parsing tools. Not all tags that are used by the Operation Object must be declared. The tags that are not declared may be organized randomly or based on the tools' logic. Each tag name in the list MUST be unique. | | `x-ms-parameterized-host?` | [`XMSParameterizedHost`](XMSParameterizedHost.md) | When used, replaces the standard OpenAPI "host" attribute with a host that contains variables to be replaced as part of method execution or client construction, very similar to how path parameters work. | -| `x-ms-paths?` | `Record`<`string`, [`OpenAPI2PathItem`](../type-aliases/OpenAPI2PathItem.md)\> | Additional paths and operations that cannot be used in `paths` as the url is not unique.
This can be used to provide operation overload using a query param.

**Example**
` "/foo?type=abc" returning FooA and "/foo?type=xyz" returning FooB are not allowed in `paths` as there is query params. ` | +| `x-ms-paths?` | `Record`<`string`, [`OpenAPI2PathItem`](../type-aliases/OpenAPI2PathItem.md)\> |

Additional paths and operations that cannot be used in `paths` as the url is not unique. This can be used to provide operation overload using a query param.

**Example**

"/foo?type=abc" returning FooA and "/foo?type=xyz" returning FooB are not allowed in `paths` as there is query params. | diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/OpenAPI2OAuthSecurityBase.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/OpenAPI2OAuthSecurityBase.md index 6059bee3d3..b0f1de6ee8 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/OpenAPI2OAuthSecurityBase.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/OpenAPI2OAuthSecurityBase.md @@ -13,6 +13,13 @@ https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#securit - [`OpenAPI2SecuritySchemeBase`](OpenAPI2SecuritySchemeBase.md) +## Extended by + +- [`OpenAPI2OAuth2ImplicitSecurityScheme`](OpenAPI2OAuth2ImplicitSecurityScheme.md) +- [`OpenAPI2OAuth2PasswordSecurityScheme`](OpenAPI2OAuth2PasswordSecurityScheme.md) +- [`OpenAPI2OAuth2ApplicationSecurityScheme`](OpenAPI2OAuth2ApplicationSecurityScheme.md) +- [`OpenAPI2OAuth2AccessCodeSecurityScheme`](OpenAPI2OAuth2AccessCodeSecurityScheme.md) + ## Properties | Property | Type | Description | Overrides | Inherited from | diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/OpenAPI2ParameterBase.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/OpenAPI2ParameterBase.md index bdfcd9a1aa..74a1a875bb 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/OpenAPI2ParameterBase.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/OpenAPI2ParameterBase.md @@ -7,6 +7,15 @@ title: "[I] OpenAPI2ParameterBase" - [`Extensions`](../type-aliases/Extensions.md) +## Extended by + +- [`OpenAPI2BodyParameter`](OpenAPI2BodyParameter.md) +- [`OpenAPI2HeaderParameter`](OpenAPI2HeaderParameter.md) +- [`OpenAPI2FormDataParameter`](OpenAPI2FormDataParameter.md) +- [`PrimitiveItems`](PrimitiveItems.md) +- [`OpenAPI2PathParameter`](OpenAPI2PathParameter.md) +- [`OpenAPI2QueryParameter`](OpenAPI2QueryParameter.md) + ## Properties | Property | Type | Description | diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/OpenAPI2Response.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/OpenAPI2Response.md index 69e2af1bac..ed8fe31ec8 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/OpenAPI2Response.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/OpenAPI2Response.md @@ -16,5 +16,5 @@ https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#respons | `description` | `string` | A short description of the response. Commonmark syntax can be used for rich text representation | | `examples?` | `Record`<`string`, [`OpenAPI2Example`](OpenAPI2Example.md)\> | An example of the response message. | | `headers?` | `Record`<`string`, [`OpenAPI2HeaderDefinition`](OpenAPI2HeaderDefinition.md)\> | A list of headers that are sent with the response. | -| `schema?` | [`OpenAPI2Schema`](../type-aliases/OpenAPI2Schema.md) | A definition of the response structure. It can be a primitive, an array or an object. If this field does not exist, it means no content is returned as part of the response. As an extension to the Schema Object, its root type value may also be "file". This SHOULD be accompanied by a relevant produces mime-type. | +| `schema?` | [`OpenAPI2Schema`](../type-aliases/OpenAPI2Schema.md) \| [`OpenAPI2FileSchema`](../type-aliases/OpenAPI2FileSchema.md) | A definition of the response structure. It can be a primitive, an array or an object. If this field does not exist, it means no content is returned as part of the response. As an extension to the Schema Object, its root type value may also be "file". This SHOULD be accompanied by a relevant produces mime-type. | | `x-ms-error-response?` | `boolean` | Indicates whether the response status code should be treated as an error response. | diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/OpenAPI2SecuritySchemeBase.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/OpenAPI2SecuritySchemeBase.md index 2e5c38765a..9a03c93303 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/OpenAPI2SecuritySchemeBase.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/OpenAPI2SecuritySchemeBase.md @@ -13,6 +13,12 @@ https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#securit - [`Extensions`](../type-aliases/Extensions.md) +## Extended by + +- [`OpenAPI2BasicAuthenticationSecurityScheme`](OpenAPI2BasicAuthenticationSecurityScheme.md) +- [`OpenAPI2ApiKeySecurityScheme`](OpenAPI2ApiKeySecurityScheme.md) +- [`OpenAPI2OAuthSecurityBase`](OpenAPI2OAuthSecurityBase.md) + ## Properties | Property | Type | Description | diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/RefProducerParams.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/RefProducerParams.md deleted file mode 100644 index e720006241..0000000000 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/RefProducerParams.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -jsApi: true -title: "[I] RefProducerParams" - ---- -Parameters that may be passed to a RefProducer function. Specific RefProducer -functions may define additional parameters. - -## Properties - -| Property | Type | -| :------ | :------ | -| `service?` | `Service` | -| `version?` | `string` | diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/XMSParameterizedHost.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/XMSParameterizedHost.md index ea2c9a2d02..c96a62e0f1 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/XMSParameterizedHost.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/interfaces/XMSParameterizedHost.md @@ -8,5 +8,5 @@ title: "[I] XMSParameterizedHost" | Property | Type | Description | | :------ | :------ | :------ | | `hostTemplate` | `string` | Specifies the parameterized template for the host. | -| `parameters?` | [`OpenAPI2Parameter`](../type-aliases/OpenAPI2Parameter.md)[] | The list of parameters that are used within the hostTemplate.
This can include both reference parameters as well as explicit parameters. Note that "in" is required and must be set to "path".
The reference parameters will be treated as global parameters and will end up as property of the client. | -| `useSchemePrefix?` | `boolean` | Specifies whether to prepend the default scheme a.k.a protocol to the base uri of client.

**Default**
` true ` | +| `parameters?` | [`OpenAPI2Parameter`](../type-aliases/OpenAPI2Parameter.md)[] | The list of parameters that are used within the hostTemplate. This can include both reference parameters as well as explicit parameters. Note that "in" is required and must be set to "path". The reference parameters will be treated as global parameters and will end up as property of the client. | +| `useSchemePrefix?` | `boolean` |

Specifies whether to prepend the default scheme a.k.a protocol to the base uri of client.

**Default**

true | diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/OpenAPI2FileSchema.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/OpenAPI2FileSchema.md new file mode 100644 index 0000000000..1b4e7ca049 --- /dev/null +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/OpenAPI2FileSchema.md @@ -0,0 +1,22 @@ +--- +jsApi: true +title: "[T] OpenAPI2FileSchema" + +--- +```ts +type OpenAPI2FileSchema: object; +``` + +## Type declaration + +| Member | Type | +| :------ | :------ | +| `default` | `unknown` | +| `description` | `string` | +| `example` | `unknown` | +| `externalDocs` | [`OpenAPI2ExternalDocs`](../interfaces/OpenAPI2ExternalDocs.md) | +| `format` | `string` | +| `readonly` | `boolean` | +| `required` | `string`[] | +| `title` | `string` | +| `type` | `"file"` | diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/OpenAPI2Operation.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/OpenAPI2Operation.md index a2ab01782e..e7af99b934 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/OpenAPI2Operation.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/OpenAPI2Operation.md @@ -4,20 +4,20 @@ title: "[T] OpenAPI2Operation" --- ```ts -type OpenAPI2Operation: Extensions & Object; +type OpenAPI2Operation: Extensions & object; ``` ## Type declaration | Member | Type | Description | | :------ | :------ | :------ | -| `consumes` | `string`[] | A list of MIME types the operation can consume. This overrides the consumes definition at the Swagger Object.
An empty value MAY be used to clear the global definition. Value MUST be as described under Mime Types. | +| `consumes` | `string`[] | A list of MIME types the operation can consume. This overrides the consumes definition at the Swagger Object. An empty value MAY be used to clear the global definition. Value MUST be as described under Mime Types. | | `deprecated` | `boolean` | Declares this operation to be deprecated. Usage of the declared operation should be refrained. Default value is false. | | `description` | `string` | A verbose explanation of the operation behavior. Commonmark syntax can be used for rich text representation. | | `externalDocs` | [`OpenAPI2ExternalDocs`](../interfaces/OpenAPI2ExternalDocs.md) | Additional external documentation. | | `operationId` | `string` | Unique string used to identify the operation. The id MUST be unique among all operations described in the API. Tools and libraries MAY use the operationId to uniquely identify an operation, therefore, it is recommended to follow common programming naming conventions. | -| `parameters` | [`Refable`](Refable.md)<[`OpenAPI2Parameter`](OpenAPI2Parameter.md)\>[] | A list of parameters that are applicable for this operation.
If a parameter is already defined at the Path Item, the new definition will override it, but can never remove it.
The list MUST NOT include duplicated parameters. A unique parameter is defined by a combination of a name and location. | -| `produces` | `string`[] | A list of MIME types the operation can produce. This overrides the produces definition at the Swagger Object.
An empty value MAY be used to clear the global definition. Value MUST be as described under Mime Types. | +| `parameters` | [`Refable`](Refable.md)<[`OpenAPI2Parameter`](OpenAPI2Parameter.md)\>[] | A list of parameters that are applicable for this operation. If a parameter is already defined at the Path Item, the new definition will override it, but can never remove it. The list MUST NOT include duplicated parameters. A unique parameter is defined by a combination of a name and location. | +| `produces` | `string`[] | A list of MIME types the operation can produce. This overrides the produces definition at the Swagger Object. An empty value MAY be used to clear the global definition. Value MUST be as described under Mime Types. | | `responses` | [`OpenAPI2Responses`](OpenAPI2Responses.md) | - | | `schemes` | `string`[] | The transfer protocol for the operation. Values MUST be from the list: "http", "https", "ws", "wss". The value overrides the Swagger Object schemes definition. | | `security` | [`OpenAPI2SecurityScheme`](OpenAPI2SecurityScheme.md)[] | declaration of which security schemes are applied for this operation. The list of values describes alternative security schemes that can be used (that is, there is a logical OR between the security requirements). This definition overrides any declared top-level security. To remove a top-level security declaration, an empty array can be used. | @@ -25,3 +25,4 @@ type OpenAPI2Operation: Extensions & Object; | `tags` | `string`[] | A list of tags for API documentation control. Tags can be used for logical grouping of operations by resources or any other qualifier. | | `x-ms-examples` | `Record`<`string`, [`Ref`](../interfaces/Ref.md)<`unknown`\>\> | - | | `x-ms-long-running-operation` | `boolean` | - | +| `x-ms-long-running-operation-options` | [`XMSLongRunningOperationOptions`](XMSLongRunningOperationOptions.md) | - | diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/OpenAPI2PathItem.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/OpenAPI2PathItem.md index 39bf1e43ff..0ef87cb92a 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/OpenAPI2PathItem.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/OpenAPI2PathItem.md @@ -4,7 +4,7 @@ title: "[T] OpenAPI2PathItem" --- ```ts -type OpenAPI2PathItem: { [method in HttpMethod]?: OpenAPI2Operation } & Object & Extensions; +type OpenAPI2PathItem: { [method in HttpMethod]?: OpenAPI2Operation } & object & Extensions; ``` Describes the operations available on a single path. A Path Item may be empty, due to ACL constraints. The path itself is still exposed to the documentation viewer but they will not know which operations and parameters are available. diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/OpenAPI2Responses.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/OpenAPI2Responses.md index e71ca5e6c9..ebd1ff685b 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/OpenAPI2Responses.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/OpenAPI2Responses.md @@ -4,7 +4,7 @@ title: "[T] OpenAPI2Responses" --- ```ts -type OpenAPI2Responses: Object & Extensions; +type OpenAPI2Responses: object & Extensions; ``` An object to hold responses to be reused across operations. Response definitions can be referenced to the ones defined here. @@ -15,5 +15,3 @@ Keys are the name for the response that it defines. ## See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#responses-definitions-object - -## Type declaration diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/OpenAPI2Schema.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/OpenAPI2Schema.md index 81bbea2d55..62866b7d86 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/OpenAPI2Schema.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/OpenAPI2Schema.md @@ -4,7 +4,7 @@ title: "[T] OpenAPI2Schema" --- ```ts -type OpenAPI2Schema: Extensions & Object; +type OpenAPI2Schema: Extensions & object; ``` ## Type declaration @@ -12,10 +12,10 @@ type OpenAPI2Schema: Extensions & Object; | Member | Type | Description | | :------ | :------ | :------ | | `additionalProperties` | `boolean` \| [`Refable`](Refable.md)<[`OpenAPI2Schema`](OpenAPI2Schema.md)\> | indicates that additional unlisted properties can exist in this schema | -| `allOf` | [`Refable`](Refable.md)<[`OpenAPI2Schema`](OpenAPI2Schema.md)\>[] | Swagger allows combining and extending model definitions using the allOf property of JSON Schema, in effect offering model composition.
allOf takes in an array of object definitions that are validated independently but together compose a single object.
While composition offers model extensibility, it does not imply a hierarchy between the models.
To support polymorphism, Swagger adds the support of the discriminator field.
When used, the discriminator will be the name of the property used to decide which schema definition is used to validate the structure of the model.
As such, the discriminator field MUST be a required field. The value of the chosen property has to be the friendly name given to the model under the
definitions property. As such, inline schema definitions, which do not have a given id, cannot be used in polymorphism. | -| `default` | `string` \| `boolean` \| `number` \| `Record`<`string`, `unknown`\> | Declares the value of the property that the server will use if none is provided,
for example a "count" to control the number of results per page might default to 100 if not supplied by the client in the request.

**Note**
"default" has no meaning for required parameters.) See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-6.2. Unlike JSON Schema this value MUST conform to the defined type for this parameter. | +| `allOf` | [`Refable`](Refable.md)<[`OpenAPI2Schema`](OpenAPI2Schema.md)\>[] | Swagger allows combining and extending model definitions using the allOf property of JSON Schema, in effect offering model composition. allOf takes in an array of object definitions that are validated independently but together compose a single object. While composition offers model extensibility, it does not imply a hierarchy between the models. To support polymorphism, Swagger adds the support of the discriminator field. When used, the discriminator will be the name of the property used to decide which schema definition is used to validate the structure of the model. As such, the discriminator field MUST be a required field. The value of the chosen property has to be the friendly name given to the model under the definitions property. As such, inline schema definitions, which do not have a given id, cannot be used in polymorphism. | +| `default` | `string` \| `boolean` \| `number` \| `Record`<`string`, `unknown`\> |

Declares the value of the property that the server will use if none is provided, for example a "count" to control the number of results per page might default to 100 if not supplied by the client in the request.

**Note**

"default" has no meaning for required parameters.) See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-6.2. Unlike JSON Schema this value MUST conform to the defined type for this parameter.

| | `description` | `string` | This attribute is a string that provides a full description of the schema | -| `discriminator` | `string` | Adds support for polymorphism. The discriminator is the schema property name that is used to differentiate between other schema that inherit this schema.
The property name used MUST be defined at this schema and it MUST be in the required property list. When used, the value MUST be the name of this schema
or any schema that inherits it. | +| `discriminator` | `string` | Adds support for polymorphism. The discriminator is the schema property name that is used to differentiate between other schema that inherit this schema. The property name used MUST be defined at this schema and it MUST be in the required property list. When used, the value MUST be the name of this schema or any schema that inherits it. | | `enum` | (`string` \| `number` \| `boolean`)[] | Restrict a value to a fixed set of values. It must be an array with at least one element, where each element is unique. | | `exclusiveMaximum` | `boolean` | indicates that the maximum is exclusive of the number given | | `exclusiveMinimum` | `boolean` | indicates that the minimum is exclusive of the number given | @@ -24,20 +24,20 @@ type OpenAPI2Schema: Extensions & Object; | `maxItems` | `number` | An array instance is valid against "maxItems" if its size is less than, or equal to, the value of this keyword. | | `maxLength` | `number` | A string instance is valid against this keyword if its length is less than, or equal to, the value of this keyword. | | `maxProperties` | `number` | An object instance is valid against "maxProperties" if its number of properties is less than, or equal to, the value of this keyword. | -| `maximum` | `number` | the maximum value for the property

if "exclusiveMaximum" is not present, or has boolean value false, then the instance is valid if it is lower than, or equal to, the value of "maximum";

if "exclusiveMaximum" has boolean value true, the instance is valid if it is strictly lower than the value of "maximum". | +| `maximum` | `number` |

the maximum value for the property

if "exclusiveMaximum" is not present, or has boolean value false, then the instance is valid if it is lower than, or equal to, the value of "maximum";

if "exclusiveMaximum" has boolean value true, the instance is valid if it is strictly lower than the value of "maximum".

| | `minItems` | `number` | An array instance is valid against "minItems" if its size is greater than, or equal to, the value of this keyword. | | `minLength` | `number` | A string instance is valid against this keyword if its length is greater than, or equal to, the value of this keyword. | | `minProperties` | `number` | An object instance is valid against "minProperties" if its number of properties is greater than, or equal to, the value of this keyword. | -| `minimum` | `number` | the minimum value for the property

if "exclusiveMinimum" is not present, or has boolean value false, then the instance is valid if it is greater than, or equal to, the value of "minimum";

if "exclusiveMinimum" has boolean value true, the instance is valid if it is strictly greater than the value of "minimum". | +| `minimum` | `number` |

the minimum value for the property

if "exclusiveMinimum" is not present, or has boolean value false, then the instance is valid if it is greater than, or equal to, the value of "minimum";

if "exclusiveMinimum" has boolean value true, the instance is valid if it is strictly greater than the value of "minimum".

| | `pattern` | `string` | A string instance is considered valid if the regular expression matches the instance successfully. | -| `properties` | `Record`<`string`, [`OpenAPI2SchemaProperty`](OpenAPI2SchemaProperty.md)\> | This attribute is an object with property definitions that define the
valid values of instance object property values. When the instance
value is an object, the property values of the instance object MUST
conform to the property definitions in this object. In this object,
each property definition's value MUST be a schema, and the property's
name MUST be the name of the instance property that it defines. The
instance property value MUST be valid according to the schema from
the property definition. Properties are considered unordered, the
order of the instance properties MAY be in any order. | -| `readOnly` | `boolean` | Relevant only for Schema "properties" definitions. Declares the property as "read only". This means that it MAY be sent as part of a response but MUST NOT
be sent as part of the request. Properties marked as readOnly being true SHOULD NOT be in the required list of the defined schema. Default value is false. | +| `properties` | `Record`<`string`, [`OpenAPI2SchemaProperty`](OpenAPI2SchemaProperty.md)\> | This attribute is an object with property definitions that define the valid values of instance object property values. When the instance value is an object, the property values of the instance object MUST conform to the property definitions in this object. In this object, each property definition's value MUST be a schema, and the property's name MUST be the name of the instance property that it defines. The instance property value MUST be valid according to the schema from the property definition. Properties are considered unordered, the order of the instance properties MAY be in any order. | +| `readOnly` | `boolean` | Relevant only for Schema "properties" definitions. Declares the property as "read only". This means that it MAY be sent as part of a response but MUST NOT be sent as part of the request. Properties marked as readOnly being true SHOULD NOT be in the required list of the defined schema. Default value is false. | | `required` | `string`[] | A list of property names that are required to be sent from the client to the server. | | `title` | `string` | This attribute is a string that provides a short description of the schema. | | `type` | [`JsonType`](JsonType.md) | The JSON type for the schema | | `uniqueItems` | `boolean` | if this keyword has boolean value false, the instance validates successfully. If it has boolean value true, the instance validates successfully if all of its elements are unique. | -| `x-ms-enum` | `Object` | - | +| `x-ms-enum` | `object` | - | | `x-ms-enum.modelAsString` | `boolean` | If the enum should be extensible. | | `x-ms-enum.name` | `string` | Name of the enum. | -| `x-ms-enum.values` | `Object`[] | Provide alternative name and description for enum values. | +| `x-ms-enum.values` | `object`[] | Provide alternative name and description for enum values. | | `x-ms-mutability` | `string`[] | - | diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/OpenAPI2SchemaRefProperty.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/OpenAPI2SchemaRefProperty.md index 01dd1eb8ea..5901b5b670 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/OpenAPI2SchemaRefProperty.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/OpenAPI2SchemaRefProperty.md @@ -4,7 +4,12 @@ title: "[T] OpenAPI2SchemaRefProperty" --- ```ts -type OpenAPI2SchemaRefProperty: Ref & Pick & Object; +type OpenAPI2SchemaRefProperty: Ref & Pick & object; ``` Autorest allows a few properties to be next to $ref of a property. diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/RefProducer.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/RefProducer.md deleted file mode 100644 index 62bb333254..0000000000 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/RefProducer.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -jsApi: true -title: "[T] RefProducer" - ---- -```ts -type RefProducer: (program, entity, params) => string | undefined; -``` - -A function that can produce a ref path at the time it is requested. - -## Parameters - -| Parameter | Type | -| :------ | :------ | -| `program` | `Program` | -| `entity` | `Model` \| `ModelProperty` | -| `params` | [`RefProducerParams`](../interfaces/RefProducerParams.md) | - -## Returns - -`string` \| `undefined` diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/XMSLongRunningFinalState.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/XMSLongRunningFinalState.md new file mode 100644 index 0000000000..7f50b5ec66 --- /dev/null +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/XMSLongRunningFinalState.md @@ -0,0 +1,13 @@ +--- +jsApi: true +title: "[T] XMSLongRunningFinalState" + +--- +```ts +type XMSLongRunningFinalState: + | "azure-async-operation" + | "location" + | "original-uri" + | "operation-location" + | "final-state-schema"; +``` diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/XMSLongRunningOperationOptions.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/XMSLongRunningOperationOptions.md new file mode 100644 index 0000000000..13d214d210 --- /dev/null +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/type-aliases/XMSLongRunningOperationOptions.md @@ -0,0 +1,15 @@ +--- +jsApi: true +title: "[T] XMSLongRunningOperationOptions" + +--- +```ts +type XMSLongRunningOperationOptions: object; +``` + +## Type declaration + +| Member | Type | +| :------ | :------ | +| `final-state-schema` | `string` | +| `final-state-via` | [`XMSLongRunningFinalState`](XMSLongRunningFinalState.md) | diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/variables/$lib.md b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/variables/$lib.md index 86d7deb895..bdaaf49661 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/variables/$lib.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-autorest/reference/js-api/variables/$lib.md @@ -4,49 +4,49 @@ title: "[V] $lib" --- ```ts -const $lib: TypeSpecLibrary; +const $lib: TypeSpecLibrary; ``` ## Type declaration | Member | Type | Value | | :------ | :------ | :------ | -| `duplicate-body-types` | `Object` | - | +| `duplicate-body-types` | `object` | ... | | `duplicate-body-types.default` | `"Request has multiple body types"` | "Request has multiple body types" | -| `duplicate-example` | `Object` | - | +| `duplicate-example` | `object` | ... | | `duplicate-example.default` | `"Duplicate @example declarations on operation"` | "Duplicate @example declarations on operation" | -| `duplicate-example-file` | `Object` | - | -| `duplicate-example-file.default` | `CallableMessage`<[`"filename"`, `"title"`, `"operationId"`]\> | - | -| `duplicate-header` | `Object` | - | -| `duplicate-header.default` | `CallableMessage`<[`"header"`]\> | - | -| `example-loading` | `Object` | - | -| `example-loading.default` | `CallableMessage`<[`"filename"`, `"error"`]\> | - | -| `example-loading.noDirectory` | `CallableMessage`<[`"directory"`]\> | - | -| `example-loading.noOperationId` | `CallableMessage`<[`"filename"`]\> | - | -| `inline-cycle` | `Object` | - | -| `inline-cycle.default` | `CallableMessage`<[`"type"`]\> | - | -| `invalid-default` | `Object` | - | -| `invalid-default.default` | `CallableMessage`<[`"type"`]\> | - | -| `invalid-format` | `Object` | - | -| `invalid-format.default` | `CallableMessage`<[`"schema"`, `"format"`]\> | - | -| `invalid-multi-collection-format` | `Object` | - | +| `duplicate-example-file` | `object` | ... | +| `duplicate-example-file.default` | `CallableMessage`<[`"filename"`, `"title"`, `"operationId"`]\> | ... | +| `duplicate-header` | `object` | ... | +| `duplicate-header.default` | `CallableMessage`<[`"header"`]\> | ... | +| `example-loading` | `object` | ... | +| `example-loading.default` | `CallableMessage`<[`"filename"`, `"error"`]\> | ... | +| `example-loading.noDirectory` | `CallableMessage`<[`"directory"`]\> | ... | +| `example-loading.noOperationId` | `CallableMessage`<[`"filename"`]\> | ... | +| `inline-cycle` | `object` | ... | +| `inline-cycle.default` | `CallableMessage`<[`"type"`]\> | ... | +| `invalid-default` | `object` | ... | +| `invalid-default.default` | `CallableMessage`<[`"type"`]\> | ... | +| `invalid-format` | `object` | ... | +| `invalid-format.default` | `CallableMessage`<[`"schema"`, `"format"`]\> | ... | +| `invalid-multi-collection-format` | `object` | ... | | `invalid-multi-collection-format.default` | `"The 'multi' should be applied to parameter in 'query', 'header' or 'formData'."` | "The 'multi' should be applied to parameter in 'query', 'header' or 'formData'." | -| `invalid-schema` | `Object` | - | -| `invalid-schema.default` | `CallableMessage`<[`"type"`]\> | - | -| `nonspecific-scalar` | `Object` | - | -| `nonspecific-scalar.default` | `CallableMessage`<[`"type"`, `"chosenType"`]\> | - | -| `union-null` | `Object` | - | +| `invalid-schema` | `object` | ... | +| `invalid-schema.default` | `CallableMessage`<[`"type"`]\> | ... | +| `nonspecific-scalar` | `object` | ... | +| `nonspecific-scalar.default` | `CallableMessage`<[`"type"`, `"chosenType"`]\> | ... | +| `union-null` | `object` | ... | | `union-null.default` | `"Cannot have a union containing only null types."` | "Cannot have a union containing only null types." | -| `union-unsupported` | `Object` | - | +| `union-unsupported` | `object` | ... | | `union-unsupported.default` | `"Unions cannot be emitted to OpenAPI v2 unless all options are literals of the same type."` | "Unions cannot be emitted to OpenAPI v2 unless all options are literals of the same type." | | `union-unsupported.empty` | `"Empty unions are not supported for OpenAPI v2 - enums must have at least one value."` | "Empty unions are not supported for OpenAPI v2 - enums must have at least one value." | -| `unsupported-auth` | `Object` | - | -| `unsupported-auth.default` | `CallableMessage`<[`"authType"`]\> | - | -| `unsupported-http-auth-scheme` | `Object` | - | -| `unsupported-http-auth-scheme.default` | `CallableMessage`<[`"scheme"`]\> | - | -| `unsupported-multipart-type` | `Object` | - | -| `unsupported-multipart-type.default` | `CallableMessage`<[`"part"`]\> | - | -| `unsupported-param-type` | `Object` | - | -| `unsupported-param-type.default` | `CallableMessage`<[`"part"`]\> | - | -| `unsupported-status-code-range` | `Object` | - | -| `unsupported-status-code-range.default` | `CallableMessage`<[`"start"`, `"end"`]\> | - | +| `unsupported-auth` | `object` | ... | +| `unsupported-auth.default` | `CallableMessage`<[`"authType"`]\> | ... | +| `unsupported-http-auth-scheme` | `object` | ... | +| `unsupported-http-auth-scheme.default` | `CallableMessage`<[`"scheme"`]\> | ... | +| `unsupported-multipart-type` | `object` | ... | +| `unsupported-multipart-type.default` | `CallableMessage`<[`"part"`]\> | ... | +| `unsupported-param-type` | `object` | ... | +| `unsupported-param-type.default` | `CallableMessage`<[`"part"`]\> | ... | +| `unsupported-status-code-range` | `object` | ... | +| `unsupported-status-code-range.default` | `CallableMessage`<[`"start"`, `"end"`]\> | ... | diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-azure-rulesets/reference/index.mdx b/packages/website/versioned_docs/version-latest/emitters/typespec-azure-rulesets/reference/index.mdx new file mode 100644 index 0000000000..29cfa77086 --- /dev/null +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-azure-rulesets/reference/index.mdx @@ -0,0 +1,32 @@ +--- +title: Overview +sidebar_position: 0 +toc_min_heading_level: 2 +toc_max_heading_level: 3 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Overview + +TypeSpec ruleset for Azure specs + +## Install + + + + +```bash +npm install @azure-tools/typespec-azure-rulesets +``` + + + + +```bash +npm install --save-peer @azure-tools/typespec-azure-rulesets +``` + + + diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-azure-rulesets/reference/js-api/_category_.json b/packages/website/versioned_docs/version-latest/emitters/typespec-azure-rulesets/reference/js-api/_category_.json new file mode 100644 index 0000000000..bc91d15cee --- /dev/null +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-azure-rulesets/reference/js-api/_category_.json @@ -0,0 +1 @@ +{"label":"JS API","link":{"type":"doc","id":"index"}} \ No newline at end of file diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-azure-rulesets/reference/js-api/index.md b/packages/website/versioned_docs/version-latest/emitters/typespec-azure-rulesets/reference/js-api/index.md new file mode 100644 index 0000000000..8a2030f63b --- /dev/null +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-azure-rulesets/reference/js-api/index.md @@ -0,0 +1,9 @@ +--- +jsApi: true +title: "[P] JS API" + +--- +## Variables + +- [$lib](variables/$lib.md) +- [$linter](variables/$linter.md) diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-azure-rulesets/reference/js-api/variables/$lib.md b/packages/website/versioned_docs/version-latest/emitters/typespec-azure-rulesets/reference/js-api/variables/$lib.md new file mode 100644 index 0000000000..705af7ba84 --- /dev/null +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-azure-rulesets/reference/js-api/variables/$lib.md @@ -0,0 +1,8 @@ +--- +jsApi: true +title: "[V] $lib" + +--- +```ts +const $lib: TypeSpecLibrary, never>; +``` diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-azure-rulesets/reference/js-api/variables/$linter.md b/packages/website/versioned_docs/version-latest/emitters/typespec-azure-rulesets/reference/js-api/variables/$linter.md new file mode 100644 index 0000000000..f8b4fc46f3 --- /dev/null +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-azure-rulesets/reference/js-api/variables/$linter.md @@ -0,0 +1,8 @@ +--- +jsApi: true +title: "[V] $linter" + +--- +```ts +const $linter: LinterDefinition; +``` diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-azure-rulesets/reference/linter.md b/packages/website/versioned_docs/version-latest/emitters/typespec-azure-rulesets/reference/linter.md new file mode 100644 index 0000000000..840cb50456 --- /dev/null +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-azure-rulesets/reference/linter.md @@ -0,0 +1,29 @@ +--- +title: "Linter usage" +toc_min_heading_level: 2 +toc_max_heading_level: 3 +--- + +# Linter + +## Usage + +Add the following in `tspconfig.yaml`: + +```yaml +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/data-plane" +``` + +## RuleSets + +Available ruleSets: + +- `@azure-tools/typespec-azure-rulesets/data-plane` +- `@azure-tools/typespec-azure-rulesets/resource-manager` + +## Rules + +| Name | Description | +| ---- | ----------- | diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-service-csharp/reference/js-api/functions/$onEmit.md b/packages/website/versioned_docs/version-latest/emitters/typespec-service-csharp/reference/js-api/functions/$onEmit.md index b14eea94f4..3a90078744 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-service-csharp/reference/js-api/functions/$onEmit.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-service-csharp/reference/js-api/functions/$onEmit.md @@ -4,7 +4,7 @@ title: "[F] $onEmit" --- ```ts -$onEmit(context): Promise +function $onEmit(context): Promise ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-service-csharp/reference/js-api/functions/getTracer.md b/packages/website/versioned_docs/version-latest/emitters/typespec-service-csharp/reference/js-api/functions/getTracer.md index 11ca56f1d4..6f28b58f13 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-service-csharp/reference/js-api/functions/getTracer.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-service-csharp/reference/js-api/functions/getTracer.md @@ -4,7 +4,7 @@ title: "[F] getTracer" --- ```ts -getTracer(program): Tracer +function getTracer(program): Tracer ``` Returns a tracer scopped to the current library. diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-service-csharp/reference/js-api/functions/reportDiagnostic.md b/packages/website/versioned_docs/version-latest/emitters/typespec-service-csharp/reference/js-api/functions/reportDiagnostic.md index 59570aa48d..29e80def0b 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-service-csharp/reference/js-api/functions/reportDiagnostic.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-service-csharp/reference/js-api/functions/reportDiagnostic.md @@ -4,22 +4,22 @@ title: "[F] reportDiagnostic" --- ```ts -reportDiagnostic(program, diag): void +function reportDiagnostic(program, diag): void ``` ## Type parameters | Type parameter | | :------ | -| `C` extends `"invalid-identifier"` \| `"missing-type-parent"` \| `"no-numeric"` \| `"unrecognized-scalar"` | -| `M` extends `string` \| `number` \| `symbol` | +| `C` *extends* `"invalid-identifier"` \| `"missing-type-parent"` \| `"no-numeric"` \| `"unrecognized-scalar"` | +| `M` *extends* `string` \| `number` \| `symbol` | ## Parameters | Parameter | Type | | :------ | :------ | | `program` | `Program` | -| `diag` | `DiagnosticReport`<`Object`, `C`, `M`\> | +| `diag` | `DiagnosticReport`<`object`, `C`, `M`\> | ## Returns diff --git a/packages/website/versioned_docs/version-latest/emitters/typespec-service-csharp/reference/js-api/variables/$lib.md b/packages/website/versioned_docs/version-latest/emitters/typespec-service-csharp/reference/js-api/variables/$lib.md index f8e0c5e56d..52abc6dc67 100644 --- a/packages/website/versioned_docs/version-latest/emitters/typespec-service-csharp/reference/js-api/variables/$lib.md +++ b/packages/website/versioned_docs/version-latest/emitters/typespec-service-csharp/reference/js-api/variables/$lib.md @@ -4,18 +4,18 @@ title: "[V] $lib" --- ```ts -const $lib: TypeSpecLibrary; +const $lib: TypeSpecLibrary; ``` ## Type declaration | Member | Type | Value | | :------ | :------ | :------ | -| `invalid-identifier` | `Object` | - | -| `invalid-identifier.default` | `CallableMessage`<[`string`, `string`]\> | - | -| `missing-type-parent` | `Object` | - | -| `missing-type-parent.default` | `CallableMessage`<[`string`, `string`]\> | - | -| `no-numeric` | `Object` | - | -| `no-numeric.default` | `CallableMessage`<[`string`, `string`]\> | - | -| `unrecognized-scalar` | `Object` | - | -| `unrecognized-scalar.default` | `CallableMessage`<[`string`]\> | - | +| `invalid-identifier` | `object` | ... | +| `invalid-identifier.default` | `CallableMessage`<[`string`, `string`]\> | ... | +| `missing-type-parent` | `object` | ... | +| `missing-type-parent.default` | `CallableMessage`<[`string`, `string`]\> | ... | +| `no-numeric` | `object` | ... | +| `no-numeric.default` | `CallableMessage`<[`string`, `string`]\> | ... | +| `unrecognized-scalar` | `object` | ... | +| `unrecognized-scalar.default` | `CallableMessage`<[`string`]\> | ... | diff --git a/packages/website/versioned_docs/version-latest/getstarted/azure-resource-manager/step02.md b/packages/website/versioned_docs/version-latest/getstarted/azure-resource-manager/step02.md index 6429f7dcf6..2ca7802339 100644 --- a/packages/website/versioned_docs/version-latest/getstarted/azure-resource-manager/step02.md +++ b/packages/website/versioned_docs/version-latest/getstarted/azure-resource-manager/step02.md @@ -15,8 +15,8 @@ There are three essential components of a resource defined with TypeSpec: Each resource type must have a properties type which defines its custom properties. This type will be exposed as the `properties` property of the resource type. ```typespec -@doc("The properties of UserResource") -model UserResourceProperties { +@doc("The properties of User") +model UserProperties { @doc("The user's full name") fullName: string; @@ -31,19 +31,17 @@ Resource types are defined as plain models which pull in a standard resource typ You define a resource type, you need the following: -- A `name` property which is marked with the following decorators +- A property model type which defines the resource type's custom properties as we described in step 1 +- A `name` parameter definition. You should use `ResourceNameParameter` model which automatically populate the following decorators with camel cased name for `@key` and pluralized name for `@segment` as values. You can override these values via `ResourceNameParameter`'s optional template parameter. - `@key`: Specifies the parameter name for this resource type in the service URI hierarchy - `@segment`: Specifies the name of the resource "collection", the URI segment that comes just before the parameter name which identifies the resource type -- A second model type which defines the resource type's custom properties as we described in step 1 -Here we define a tracked resource called `UserResource`: +Here we define a tracked resource called `User`: ```typespec -@doc("A UserResource") -model UserResource is TrackedResource { - @key("userName") - @segment("users") - name: string; +@doc("A User Resource") +model User is TrackedResource { + ...ResourceNameParameter; } ``` @@ -52,12 +50,12 @@ model UserResource is TrackedResource { ```typespec @armResourceOperations interface Users { - get is ArmResourceRead; - create is ArmResourceCreateOrUpdateAsync; - update is ArmResourcePatchSync; - delete is ArmResourceDeleteSync; - listByResourceGroup is ArmResourceListByParent; - listBySubscription is ArmListBySubscription; + get is ArmResourceRead; + create is ArmResourceCreateOrReplaceAsync; + update is ArmResourcePatchSync; + delete is ArmResourceDeleteSync; + listByResourceGroup is ArmResourceListByParent; + listBySubscription is ArmListBySubscription; } ``` @@ -65,14 +63,14 @@ This uses operation templates defined in the `Azure.ResourceManager` namespace t The interface above creates the following operations for your service: -| Method & Path | Description | -| -------------------------------------------------------------------------------------------------------------------- | --------------------------------------- | -| `GET /subscriptions/{subscriptionId}/providers/Contoso.Users/users` | list all UserResource by subscription | -| `GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.Users/users` | list all UserResource by resource group | -| `GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.Users/users/{userName}` | get item | -| `PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.Users/users/{userName}` | create item | -| `PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.Users/users/{userName}` | patch item | -| `DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.Users/users/{userName}` | delete item | +| Method & Path | Description | +| -------------------------------------------------------------------------------------------------------------------- | ------------------------------- | +| `GET /subscriptions/{subscriptionId}/providers/Contoso.Users/users` | list all User by subscription | +| `GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.Users/users` | list all User by resource group | +| `GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.Users/users/{userName}` | get item | +| `PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.Users/users/{userName}` | create item | +| `PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.Users/users/{userName}` | patch item | +| `DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.Users/users/{userName}` | delete item | ### Alternate (Legacy) Syntax for Operations @@ -83,20 +81,20 @@ To specify the standard set of TrackedResource operations for your resource, you ```typespec @armResourceOperations -interface Users extends TrackedResourceOperations {} +interface Users extends TrackedResourceOperations {} ``` -This will now produce all the endpoints(`get`, `post`, `put`, `patch` and `delete`, listByResourceGroup, listBySubscription) for a resource called `UserResources` and the `operations` endpoint for the service: - -| Method & Path | Description | -| -------------------------------------------------------------------------------------------------------------------- | --------------------------------------- | -| `GET /providers/Contoso.Users/operations` | List all operations for your service | -| `GET /subscriptions/{subscriptionId}/providers/Contoso.Users/users` | list all UserResource by subscription | -| `GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.Users/users` | list all UserResource by resource group | -| `GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.Users/users/{userName}` | get item | -| `PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.Users/users/{userName}` | insert item | -| `PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.Users/users/{userName}` | patch item | -| `DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.Users/users/{userName}` | delete item | +This will now produce all the endpoints(`get`, `post`, `put`, `patch` and `delete`, listByResourceGroup, listBySubscription) for a resource called `Users` and the `operations` endpoint for the service: + +| Method & Path | Description | +| -------------------------------------------------------------------------------------------------------------------- | ------------------------------------ | +| `GET /providers/Contoso.Users/operations` | List all operations for your service | +| `GET /subscriptions/{subscriptionId}/providers/Contoso.Users/users` | list all User by subscription | +| `GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.Users/users` | list all User by resource group | +| `GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.Users/users/{userName}` | get item | +| `PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.Users/users/{userName}` | insert item | +| `PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.Users/users/{userName}` | patch item | +| `DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Contoso.Users/users/{userName}` | delete item | #### Base Resource Types diff --git a/packages/website/versioned_docs/version-latest/getstarted/azure-resource-manager/step03.md b/packages/website/versioned_docs/version-latest/getstarted/azure-resource-manager/step03.md index 65a0ba38f8..126cacf0fb 100644 --- a/packages/website/versioned_docs/version-latest/getstarted/azure-resource-manager/step03.md +++ b/packages/website/versioned_docs/version-latest/getstarted/azure-resource-manager/step03.md @@ -2,11 +2,11 @@ You can create parent/child relationships between resource types by using the `@parentResource` decorator when defining a resource type. -For example, here's how you could create a new `AddressResource` resource under the `UserResource` defined above: +For example, here's how you could create a new `AddressResource` resource under the `User` defined above: ```typespec @doc("An address resource belonging to a user resource.") -@parentResource(UserResource) +@parentResource(User) model AddressResource is ProxyResource { @key("addressName") @segment("addresses") diff --git a/packages/website/versioned_docs/version-latest/getstarted/azure-resource-manager/step04.md b/packages/website/versioned_docs/version-latest/getstarted/azure-resource-manager/step04.md index 609755d053..a44b4c0cb2 100644 --- a/packages/website/versioned_docs/version-latest/getstarted/azure-resource-manager/step04.md +++ b/packages/website/versioned_docs/version-latest/getstarted/azure-resource-manager/step04.md @@ -2,7 +2,7 @@ Some resources will provide more than the standard CRUD operations and will need to define a custom action endpoint. Additional resource operations can be added to the `interface` where you defined standard resource operations, using the `ArmResourceAction` templates. -For example, to add an additional `POST` action called `/notify` to the standard operations of `UserResource`: +For example, to add an additional `POST` action called `/notify` to the standard operations of `User`: ```typespec @doc("The details of a user notification.") @@ -15,10 +15,10 @@ model NotificationDetails { } @armResourceOperations -interface Users extends TrackedResourceOperations { +interface Users extends TrackedResourceOperations { @doc("Send a notification to the user") @segment("notify") - NotifyUser is ArmResourceActionNoContentSync; + NotifyUser is ArmResourceActionNoContentSync; } ``` @@ -43,7 +43,7 @@ In a custom operation, you define the operation parameters, responses, http verb @doc("Send a notification to the user") @segment("notify") op NotifyUser( - ...ResourceInstanceParameters, + ...ResourceInstanceParameters, @body notification: NotificationDetails, ): ArmResponse | ErrorResponse; ``` diff --git a/packages/website/versioned_docs/version-latest/getstarted/azure-resource-manager/step05.md b/packages/website/versioned_docs/version-latest/getstarted/azure-resource-manager/step05.md index e15746921b..3a79fd1205 100644 --- a/packages/website/versioned_docs/version-latest/getstarted/azure-resource-manager/step05.md +++ b/packages/website/versioned_docs/version-latest/getstarted/azure-resource-manager/step05.md @@ -39,16 +39,26 @@ namespace Microsoft.ContosoProviderHub; interface Operations extends Azure.ResourceManager.Operations {} @lroStatus -enum ProvisioningState { - ...ResourceProvisioningState, - Provisioning, - Updating, - Deleting, - Accepted, +union ProvisioningState { + ResourceProvisioningState, + + /** The resource is being provisioned. */ + Provisioning: "Provisioning", + + /** The resource is being updated. */ + Updating: "Updating", + + /** The resource is being deleted. */ + Deleting: "Deleting", + + /** The resource provisioning request has been accepted. */ + Accepted: "Accepted", + + string, } -@doc("The properties of UserResource") -model UserResourceProperties { +@doc("The properties of User Resource") +model UserProperties { @doc("The user's full name") fullName: string; @@ -59,8 +69,8 @@ model UserResourceProperties { provisioningState?: ProvisioningState; } -@doc("A UserResource") -model UserResource is TrackedResource { +@doc("A User Resource") +model User is TrackedResource { @key("userName") @segment("users") @doc("Address name") @@ -79,25 +89,21 @@ model NotificationDetails { @armResourceOperations interface Users { - get is ArmResourceRead; - create is ArmResourceCreateOrUpdateAsync; - update is ArmResourcePatchSync; - delete is ArmResourceDeleteSync; - listByResourceGroup is ArmResourceListByParent; - listBySubscription is ArmListBySubscription; + get is ArmResourceRead; + create is ArmResourceCreateOrReplaceAsync; + update is ArmResourcePatchSync; + delete is ArmResourceDeleteSync; + listByResourceGroup is ArmResourceListByParent; + listBySubscription is ArmListBySubscription; @doc("Send a notification to the user") @segment("notify") - NotifyUser is ArmResourceActionNoContentSync; + NotifyUser is ArmResourceActionNoContentSync; } @doc("An address resource belonging to a user resource.") -@parentResource(UserResource) +@parentResource(User) model AddressResource is ProxyResource { - @doc("Address name") - @key("addressName") - @segment("addresses") - @path - name: string; + ...ResourceNameParameter; } @doc("The properties of AddressResource") diff --git a/packages/website/versioned_docs/version-latest/howtos/DataPlane Generation - DPG/00howtogen.mdx b/packages/website/versioned_docs/version-latest/howtos/DataPlane Generation - DPG/00howtogen.mdx index b5763c64b3..9871d15309 100644 --- a/packages/website/versioned_docs/version-latest/howtos/DataPlane Generation - DPG/00howtogen.mdx +++ b/packages/website/versioned_docs/version-latest/howtos/DataPlane Generation - DPG/00howtogen.mdx @@ -53,3 +53,5 @@ options: "@azure-tools/typespec-python": package-name: azure-service-template ``` + +Several language repositories support the `tsp-client` tool to facilitate generating client libraries. For more information on the tool, see [Getting started with `tsp-client`](<./../Generating with tsp-client/tsp_client.md>). diff --git a/packages/website/versioned_docs/version-latest/howtos/DataPlane Generation - DPG/03convenient.mdx b/packages/website/versioned_docs/version-latest/howtos/DataPlane Generation - DPG/03convenient.mdx index 80c29249ab..0b377a8de7 100644 --- a/packages/website/versioned_docs/version-latest/howtos/DataPlane Generation - DPG/03convenient.mdx +++ b/packages/website/versioned_docs/version-latest/howtos/DataPlane Generation - DPG/03convenient.mdx @@ -189,7 +189,7 @@ import "@azure-tools/typespec-client-generator-core"; using Azure.ClientGenerator.Core; -@@access(PetStoreNamespace.GetModel, Access.internal); +@@access(PetStoreNamespace.GetModel, "internal"); ``` The two possible value for the `Access` enum are `internal` and `public`. diff --git a/packages/website/versioned_docs/version-latest/howtos/DataPlane Generation - DPG/06types.mdx b/packages/website/versioned_docs/version-latest/howtos/DataPlane Generation - DPG/06types.mdx index dfeb622952..9fdced5ecd 100644 --- a/packages/website/versioned_docs/version-latest/howtos/DataPlane Generation - DPG/06types.mdx +++ b/packages/website/versioned_docs/version-latest/howtos/DataPlane Generation - DPG/06types.mdx @@ -39,7 +39,6 @@ model Foo { "serializedName": "prop", "flatten": true, "optional": false, - "nullable": false, "type": { "kind": "model", "name": "Properties", @@ -50,7 +49,6 @@ model Foo { "serializedName": "name", "flatten": false, "optional": false, - "nullable": false, "type": { "kind": "string", "encode": "string" @@ -87,9 +85,70 @@ print(f.name) # Flattened access is dynamically supported, but not documented +CSharp will generate the model with properties being flattened. During serialization/deserialization, the model will be serialized/deserialized as a non-flattened model. + ```csharp -// Please note that this feature is not supported right now, and the model will be generated un-flattened. -// Please comment and follow work status on: https://github.com/Azure/autorest.csharp/issues/4040 +public partial class Foo +{ + public Foo(string name) + { + Argument.AssertNotNull(name, nameof(name)); + + Name = name; + } + + public string Name { get; set; } +} + +public partial class Foo : IUtf8JsonSerializable, IJsonModel +{ + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(Foo)} does not support writing '{format}' format."); + } + + writer.WriteStartObject(); + writer.WritePropertyName("properties"u8); + writer.WriteStartObject(); + writer.WritePropertyName("name"u8); + writer.WriteStringValue(Name); + writer.WriteEndObject(); + writer.WriteEndObject(); + } + + internal static Foo DeserializeFoo(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string name = default; + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("properties"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + property.ThrowNonNullablePropertyIsNull(); + continue; + } + foreach (var property0 in property.Value.EnumerateObject()) + { + if (property0.NameEquals("name"u8)) + { + name = property0.Value.GetString(); + } + } + } + } + return new Foo(name); + } +} ``` @@ -163,7 +222,6 @@ model Animal is Record { "name": "name", "serializedName": "name", "optional": false, - "nullable": false, "type": { "kind": "string", "encode": "string" @@ -174,7 +232,6 @@ model Animal is Record { "name": "kind", "serializedName": "kind", "optional": false, - "nullable": false, "type": { "kind": "string", "encode": "string" @@ -183,8 +240,7 @@ model Animal is Record { ], "additionalProperties": { "kind": "any" - }, - "additionalPropertiesNullable": false + } } ``` @@ -292,7 +348,6 @@ model Animal { "name": "name", "serializedName": "name", "optional": false, - "nullable": false, "type": { "kind": "string", "encode": "string" @@ -303,7 +358,6 @@ model Animal { "name": "kind", "serializedName": "kind", "optional": false, - "nullable": false, "type": { "kind": "string", "encode": "string" @@ -319,7 +373,6 @@ model Animal { "name": "category", "serializedName": "category", "optional": false, - "nullable": false, "type": { "kind": "string", "encode": "string" @@ -330,16 +383,13 @@ model Animal { "name": "value", "serializedName": "value", "optional": false, - "nullable": false, "type": { "kind": "any" } } ], - "additionalProperties": undefined, - "additionalPropertiesNullable": undefined - }, - "additionalPropertiesNullable": false + "additionalProperties": undefined + } } ``` @@ -520,7 +570,6 @@ model Animal { "name": "name", "serializedName": "name", "optional": false, - "nullable": false, "type": { "kind": "string", "encode": "string" @@ -531,7 +580,6 @@ model Animal { "name": "kind", "serializedName": "kind", "optional": false, - "nullable": false, "type": { "kind": "string", "encode": "string" @@ -551,8 +599,7 @@ model Animal { "kind": "int32" } ] - }, - "additionalPropertiesNullable": false + } } ``` @@ -650,7 +697,6 @@ model Animal { "name": "name", "serializedName": "name", "optional": false, - "nullable": false, "type": { "kind": "string", "encode": "string" @@ -661,7 +707,6 @@ model Animal { "name": "kind", "serializedName": "kind", "optional": false, - "nullable": false, "type": { "kind": "string", "encode": "string" @@ -669,9 +714,12 @@ model Animal { } ], "additionalProperties": { - "kind": "string" - }, - "additionalPropertiesNullable": true + "kind": "nullable", + "valueType": { + "kind": "string", + "encode": "string" + } + } } ``` @@ -745,6 +793,210 @@ public final class Animal implements JsonSerializable { +### Nullable + +TypeSpec uses `| null` to represent nullable types. Nullability is handled differently in languages, but emitter authors will find information +about nullability by inspecting the type of a property. + + + + +```typespec +model Foo { + basicNullableProperty: string | null; + modelNullableProperty: Bar | null; + unionNullableProperty: Bar | Baz | null; + enumNullableProperty: LR | null; +} + +model Bar { + prop: string; +} + +model Baz { + prop: int32; +} + +enum LR { + left, + right, +} +``` + + + + +A nullable type has kind `nullable` and property `valueType`. The kind of the type tells you the property is nullable, while the `valueType` tells you the underlying type you want to generate. + +```json +{ + "kind": "model", + "name": "Foo", + "properties": [ + { + "kind": "property", + "name": "basicNullableProperty", + "serializedName": "basicNullableProperty", + "optional": false, + "type": { + "kind": "nullable", + "valueType": { + "kind": "string", + "encode": "string" + } + } + }, + { + "kind": "property", + "name": "modelNullableProperty", + "serializedName": "modelNullableProperty", + "optional": false, + "type": { + "kind": "nullable", + "valueType": { + "kind": "model", + "name": "Bar", + "properties": [ + { + "kind": "property", + "name": "prop", + "serializedName": "prop", + "optional": false, + "type": { + "kind": "string", + "encode": "string" + } + } + ] + } + } + }, + { + "kind": "property", + "name": "unionNullableProperty", + "serializedName": "unionNullableProperty", + "optional": false, + "type": { + "kind": "nullable", + "valueType": { + "kind": "union", + "values": [ + { + "kind": "model", + "name": "Bar", + "properties": [ + { + "kind": "property", + "name": "prop", + "serializedName": "prop", + "optional": false, + "type": { + "kind": "string", + "encode": "string" + } + } + ] + }, + { + "kind": "model", + "name": "Baz", + "properties": [ + { + "kind": "property", + "name": "prop", + "serializedName": "prop", + "optional": false, + "type": { + "kind": "int32", + "encode": "int32" + } + } + ] + } + ] + } + } + }, + { + "kind": "property", + "name": "enumNullableProperty", + "serializedName": "enumNullableProperty", + "optional": false, + "type": { + "kind": "nullable", + "valueType": { + "kind": "enum", + "name": "LR", + "generatedName": false, + "valueType": { + "kind": "string" + }, + "values": [ + { + "kind": "enumvalue", + "name": "left", + "value": "left" + }, + { + "kind": "enumvalue", + "name": "right", + "value": "right" + } + ], + "isFixed": true, + "isUnionAsEnum": false + } + } + } + ] +} +``` + + + + +Python treat nullable as optional. If you actually want to send the value `null` to the service without the property being ignored, you can send in `corehttp.serialization.NULL`. Python does not restrict you from setting any property to this value. + +```python +from enum import Enum +from corehttp.utils import CaseInsensitiveEnumMeta + +class Bar(_model_base.Model): + prop: Optional[str] = rest_field() + +class Baz(_model_base.Model): + prop: Optional[str] = rest_field() + +class LR(str, Enum, metaclass=CaseInsensitiveEnumMeta): + LEFT = "left" + RIGHT = "right" + +class Foo(_model_base.Model): + basicNullableProperty: Optional[str] = rest_field() + modelNullableProperty: Optional["_models.Bar"] = rest_field() + unionNullableProperty: Optional[Union["_models.Bar", "_models.Baz"]] = rest_field() + enumNullableProperty: Optional["LR"] = rest_field() + +``` + + + + +TODO + + + + +TODO + + + + +TODO + + + + ## Unions ### Union of literals with same type diff --git a/packages/website/versioned_docs/version-latest/howtos/DataPlane Generation - DPG/07tcgcTypes.mdx b/packages/website/versioned_docs/version-latest/howtos/DataPlane Generation - DPG/07tcgcTypes.mdx index 5f1d855b58..1f383e22c3 100644 --- a/packages/website/versioned_docs/version-latest/howtos/DataPlane Generation - DPG/07tcgcTypes.mdx +++ b/packages/website/versioned_docs/version-latest/howtos/DataPlane Generation - DPG/07tcgcTypes.mdx @@ -488,7 +488,7 @@ They each extend from the shared `SdkMethodBase` interface SdkMethodBase { __raw?: Operation; name: string; - access: AccessFlags | undefined; + access: AccessFlags; parameters: SdkParameter[]; apiVersions: string[]; description?: string; @@ -1360,7 +1360,7 @@ export interface SdkModelType extends SdkTypeBase { generatedName: string; description?: string; details?: string; - access?: AccessFlags; + access: AccessFlags; usage: UsageFlags; additionalProperties?: SdkType; discriminatorValue?: string; @@ -1387,7 +1387,9 @@ export enum UsageFlags { ### AccessFlags -We have the `.access` property on a model etc. as optional, so emitters can choose what to default to. +We default the value of `.access` property on model, enum, and method types to be `"public"`. So if the `@access` decorator isn't explicitly applied to one of these definitions, its value will be `"public"`. + +If you want to know if a tsp author explicitly set the value with an `@access` decorator, you can call `getAccessOverride` ```ts export type AccessFlags = "internal" | "public"; diff --git a/packages/website/versioned_docs/version-latest/howtos/DataPlane Generation - DPG/09versioning.mdx b/packages/website/versioned_docs/version-latest/howtos/DataPlane Generation - DPG/09versioning.mdx new file mode 100644 index 0000000000..4587cf876d --- /dev/null +++ b/packages/website/versioned_docs/version-latest/howtos/DataPlane Generation - DPG/09versioning.mdx @@ -0,0 +1,544 @@ +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +# Versioning + +This doc details what emitters will generate for versioned specs + +## Single api Version + +If there is just one api version in the spec, we will generate the api surface area for that one version. + + + + +```typespec +import "@typespec/versioning"; +import "@typespec/http"; + +using TypeSpec.Versioning; +using TypeSpec.Http; + +@versioned(My.Service.Versions) +@service +namespace My.Service; + +enum Versions { + v2023_11_01: "2023-11-01", +} + +model StableModel { + stableFeature: string; +} + +op stableFunctionality(@body stableModel: StableModel): void; +``` + + + + + +```python +import pytest +from my.service import MyServiceClient, models + +client = MyServiceClient(endpoint=..., credential=...) +# client's api_version will be "2023-11-01" + +stable_model = models.StableModel(stable_feature="present") +print(stable_model) +client.stable_functionality(stable_model) # call goes through + +preview_client = MyServiceClient(endpoint=..., credential=..., api_version="2023-11-01") +# python allows you to override the api version, even if only one version is defined in the spec +``` + + + + +```csharp +//ServiceVersion enum +public enum ServiceVersion +{ + /// Service version "2023-11-01". + V2023_11_01 = 1, +} + +Uri endpoint = new Uri(""); +ServiceClient client = new ServiceClient(endpoint); +//client's api_version will be "2023-11-01" + +StableModel stableModel = new StableModel(""); +Response response = client.StableFunctionality(stableModel); + +Uri endpoint = new Uri(""); +ServiceClientOptions options = new ServiceClientOptions(ServiceVersion.V2023_11_01); +ServiceClient client = new ServiceClient(endpoint, options); +//You can specify the service api-version when create client instance. Now client's api_version will be "2023-11-01" +``` + + + + +```typescript +// there's no apiVersion defined in the all the operations, TypeScript emitter will ignore it. +``` + + + + +```java +// ServiceVersion enum +public enum ServiceServiceVersion implements ServiceVersion { + V2023_11_01("2023-11-01"); + + public static ServiceServiceVersion getLatest() {} // V2023_11_01 +} + +// Client API +ServiceClientClient serviceClientClient = new ServiceClientClientBuilder() + // override the api version, even if only one version is defined in the spec + .serviceVersion(ServiceServiceVersion.V2023_11_01) + // other configurations + .buildClient(); +// client's api-version will be 2023-11-01 + +StableModel stableModel = new StableModel("present"); + +// call goes through +serviceClientClient.stableFunctionality(stableModel); +``` + + + + +```go + +``` + + + + +## Multiple api versions + +The configuration flag `api-version` allows you to toggle the behavior that our emitters will generate. + +We will get the versioning information from the `Versions` enum that you pass to the `@versioned` decorator from the `@typespec/versioning` library. + +> NOTE: The ordering of the values in the `Versions` enum is very important. We use this information to determine the order of versions. Our default value will be the **last entry** in the `Versions` list + +### Default + +By default our emitters will only generate the surface used by the latest api version if there are multiple defined. This includes generating only the models used in the surface area of the latest api version. + +Documentation and enums showing the available api versions will still include all of the known api versions, meaning there will be documentation for both the preview and stable releases. + +For the below example, all languages will generate the api surface of default version `v2023_11_01`. There will be no generation of the operation `previewFunctionality`, and we will also not generate the `PreviewModel` because it's only used in `previewFunctionality`, and therefore is not used in the api surface of `v2023_11_01`. + + + + +```typespec +import "@typespec/versioning"; +import "@typespec/http"; + +using TypeSpec.Versioning; +using TypeSpec.Http; + +@versioned(My.Service.Versions) +@service +namespace My.Service; + +enum Versions { + v2023_11_01_preview: "2023-11-01-preview", + v2023_11_01: "2023-11-01", +} + +model PreviewModel { + betaFeature: string; +} + +model StableModel { + stableFeature: string; +} + +@added(Versions.v2023_11_01_preview) +@removed(Versions.v2023_11_01) +op previewFunctionality(@body previewModel: PreviewModel): void; + +op stableFunctionality(@body stableModel: StableModel): void; +``` + + + + + +```python +import pytest +from my.service import MyServiceClient, models + +client = MyServiceClient(endpoint=..., credential=...) +# client's api_version will be "2023-11-01" + +stable_model = models.StableModel(stable_feature="present") +print(stable_model) +client.stable_functionality(stable_model) # call goes through + +with pytest.expect(ImportError): + preview_model = models.PreviewModel(preview_functionality="not present") + +with pytest.expect(AttributeError): + client.preview_functionality({"previewFunctionality": "not present"}) +``` + + + + +```csharp +//ServiceVersion enum +public enum ServiceVersion +{ + /// Service version "2023-11-01-preview". + V2023_11_01_Preview = 1, + /// Service version "2023-11-01". + V2023_11_01 = 2, +} + +Uri endpoint = new Uri(""); +ServiceClient client = new ServiceClient(endpoint); +//client's api-version will be "2023-11-01" + +StableModel stableModel = new StableModel(""); +Response response = client.StableFunctionality(stableModel); + +//neither PreviewModel nor PreviewFunctionality will be generated +``` + + + + +```typescript +// there is no apiVersion parameters defined in all operations, TypeScript emitter will ignore it. +``` + + + + +```java +// ServiceVersion enum +public enum ServiceServiceVersion implements ServiceVersion { + V2023_11_01("2023-11-01"); + + public static ServiceServiceVersion getLatest() {} // V2023_11_01 +} + +// Client API +ServiceClientClient serviceClientClient = new ServiceClientClientBuilder() + // other configurations + .buildClient(); +// client's api-version will be 2023-11-01 + +StableModel stableModel = new StableModel("present"); + +// call goes through +serviceClientClient.stableFunctionality(stableModel); + +// neither PreviewModel nor previewFunctionality will be generated +``` + + + + +```go + +``` + + + + +### Override to a specific version + +You can override the signature to return the api surface area for a specific api version. + +In this example, we are going to override to return the preview api surface area for our spec. The preview api surface area contains all of the functionality. + + + + +```typespec +import "@typespec/versioning"; +import "@typespec/http"; + +using TypeSpec.Versioning; +using TypeSpec.Http; + +@versioned(My.Service.Versions) +@service +namespace My.Service; + +enum Versions { + v2023_11_01_preview: "2023-11-01-preview", + v2023_11_01: "2023-11-01", +} + +model PreviewModel { + betaFeature: string; +} + +model StableModel { + stableFeature: string; +} + +@added(Versions.v2023_11_01_preview) +@removed(Versions.v2023_11_01) +op previewFunctionality(@body previewModel: PreviewModel): void; + +op stableFunctionality(@body stableModel: StableModel): void; +``` + + + + + +```yaml +--- +options: + "@azure-tools/typespec-python": + api-version: "2023-11-01-preview" + "@azure-tools/typespec-csharp": + api-version: "2023-11-01-preview" + "@azure-tools/typespec-ts": + api-version: "2023-11-01-preview" + "@azure-tools/typespec-java": + api-version: "2023-11-01-preview" + "@azure-tools/typespec-go": + api-version: "2023-11-01-preview" +``` + + + + + +```python +import pytest +from my.service import MyServiceClient, models + +preview_client = MyServiceClient(endpoint=..., credential=...) +# client's api_version will be "2023-11-01-preview" + +stable_model = models.StableModel(stable_feature="present") +print(stable_model) +preview_client.stable_functionality(stable_model) # call goes through + +preview_model = models.PreviewModel(preview_functionality="present") +# the model is generated as part of the api surface + +preview_client.preview_functionality(preview_model) # call goes through +``` + + + + +```csharp +// ServiceVersion enum +public enum ServiceVersion +{ + /// Service version "2023-11-01-preview". + V2023_11_01_Preview = 1 +} + +Uri endpoint = new Uri(""); +ServiceClient client = new ServiceClient(endpoint); +// client's api-version will be "2023-11-01-preview" + +//call PreviewFunctionality +PreviewModel previewModel = new PreviewModel(""); +Response response = client.PreviewFunctionality(previewModel); + +//call StableFunctionality +StableModel stableModel = new StableModel(""); +Response response = client.StableFunctionality(stableModel); +``` + + + + +```typescript +// there is no apiVersion parameters defined in all operations, TypeScript emitter will ignore it. +``` + + + + +```java +// ServiceVersion enum +public enum ServiceServiceVersion implements ServiceVersion { + V2023_11_01_PREVIEW("2023-11-01-preview"); + + public static ServiceServiceVersion getLatest() {} // V2023_11_01_PREVIEW +} + +// Client API +ServiceClientClient serviceClientClient = new ServiceClientClientBuilder() + // other configurations + .buildClient(); +// client's api-version will be 2023-11-01-preview + +StableModel stableModel = new StableModel("present"); + +// call goes through +serviceClientClient.stableFunctionality(stableModel); + +PreviewModel previewModel = new PreviewModel("present"); +// call goes through +serviceClientClient.previewFunctionality(previewModel); +``` + + + + +```go + +``` + + + + +### Override to return all + +You can also override the signature to return the combined api surface area of all of the separate api versions. Different languages have different support for versioning validation + + + + +```typespec +import "@typespec/versioning"; +import "@typespec/http"; + +using TypeSpec.Versioning; +using TypeSpec.Http; + +@versioned(My.Service.Versions) +@service +namespace My.Service; + +enum Versions { + v2023_11_01_preview: "2023-11-01-preview", + v2023_11_01: "2023-11-01", +} + +model PreviewModel { + betaFeature: string; +} + +model StableModel { + stableFeature: string; +} + +@added(Versions.v2023_11_01_preview) +@removed(Versions.v2023_11_01) +op previewFunctionality(@body previewModel: PreviewModel): void; + +op stableFunctionality(@body stableModel: StableModel): void; +``` + + + + + +```yaml +--- +options: + "@azure-tools/typespec-python": + api-version: "all" + "@azure-tools/typespec-csharp": + api-version: "all" + "@azure-tools/typespec-ts": + api-version: "all" + "@azure-tools/typespec-java": + api-version: "all" + "@azure-tools/typespec-go": + api-version: "all" +``` + + + + + +```python +import pytest +from my.service import MyServiceClient, models + +client = MyServiceClient(endpoint=..., credential=...) +# client's api_version will be "2023-11-01" + +stable_model = models.StableModel(stable_feature="present") +print(stable_model) +client.stable_functionality(stable_model) # call goes through + +preview_model = models.PreviewModel(preview_functionality="present") +# the model is generated as part of the api surface + +with pytest.expect(ValueError) as ex: + client.preview_functionality(preview_model) +assert "preview_functionality is not available in api version 2023-11-01" in str(ex) + +preview_client = MyServiceClient(endpoint=..., credential=..., api_version="2023-11-01-preview") + +preview_client.preview_functionality(preview_model) # call goes through +``` + + + + +```csharp +//ServiceVersion enum +public enum ServiceVersion +{ + /// Service version "2023-11-01-preview". + V2023_11_01_Preview = 1, + /// Service version "2023-11-01". + V2023_11_01 = 2, +} + +Uri endpoint = new Uri(""); +ServiceClient client = new ServiceClient(endpoint); +//client's api_version will be "2023-11-01" + +//call PreviewFunctionality +PreviewModel previewModel = new PreviewModel(""); +Response response = client.PreviewFunctionality(previewModel); + +//call StableFunctionality +StableModel stableModel = new StableModel(""); +Response response = client.StableFunctionality(stableModel); + +Uri endpoint = new Uri(""); +ServiceClientOptions options = new ServiceClientOptions(ServiceVersion.V2023_11_01_Preview); +ServiceClient client = new ServiceClient(endpoint, options); +//You can specify the service api-version when create client instance. Now client's api_version will be "2023-11-01-preview" +``` + + + + +```typescript +// there is no apiVersion parameters defined in all operations, TypeScript emitter will ignore it. +``` + + + + +```java + +``` + + + + +```go + +``` + + + diff --git a/packages/website/versioned_docs/version-latest/howtos/Generating with tsp-client/tsp_client.md b/packages/website/versioned_docs/version-latest/howtos/Generating with tsp-client/tsp_client.md new file mode 100644 index 0000000000..574a6a20bf --- /dev/null +++ b/packages/website/versioned_docs/version-latest/howtos/Generating with tsp-client/tsp_client.md @@ -0,0 +1,194 @@ +# Getting started with `tsp-client` + +:::info +**Short link:** [aka.ms/azsdk/tsp-client](https://aka.ms/azsdk/tsp-client) +::: + +`tsp-client` is a simple command line tool to facilitate generating client libraries from TypeSpec. + +## Installation + +``` +npm install -g @azure-tools/typespec-client-generator-cli +``` + +## Usage + +``` +tsp-client [options] +``` + +## Commands + +Use one of the supported commands to get started generating clients from a TypeSpec project. +This tool will default to using your current working directory to generate clients in and will +use it to look for relevant configuration files. To specify a different output directory, use +the `-o` or `--output-dir` option. + +### init + +Initialize the client library directory using a tspconfig.yaml. When running this command pass in a path to a local or remote tspconfig.yaml with the `-c` or `--tsp-config` flag. + +The `init` command generates a directory structure following the standard pattern used across Azure SDK language repositories, creates a [tsp-location.yaml](#tsp-locationyaml) file to control generation, and performs an initial generation of the client library. If you want to skip client library generation, then pass the `--skip-sync-and-generate` flag. + +:::warning +This command should be run from the root of the repository. Example repository root: `azure-sdk-for-python/` +::: + +Example: + +``` +azure-sdk-for-python> tsp-client init -c https://github.com/Azure/azure-rest-api-specs/blob/431eb865a581da2cd7b9e953ae52cb146f31c2a6/specification/contosowidgetmanager/Contoso.WidgetManager/tspconfig.yaml +``` + +### update + +The `update` command will look for a [tsp-location.yaml](#tsp-locationyaml) file in your current directory to sync a TypeSpec project and generate a client library. The update flow calls the `sync` and `generate` commands internally, so if you need to separate these steps, use the `sync` and `generate` commands separately instead. + +Example: + +``` +azure-sdk-for-python/sdk/contosowidgetmanager/azure-contoso-widgetmanager> tsp-client update +``` + +### sync + +Sync a TypeSpec project with the parameters specified in tsp-location.yaml. + +By default the `sync` command will look for a tsp-location.yaml to get the project details and sync them to a temporary directory called `TempTypeSpecFiles`. Alternately, you can pass in the `--local-spec-repo` flag with the path to your local TypeSpec project to pull those files into your temporary directory. + +Example: + +``` +azure-sdk-for-python/sdk/contosowidgetmanager/azure-contoso-widgetmanager> tsp-client sync +``` + +### generate + +Generate a client library from a TypeSpec project. The `generate` command should be run after the `sync` command. `generate` relies on the existence of the `TempTypeSpecFiles` directory created by the `sync` command and on an `emitter-package.json` file checked into your repository at the following path: `/eng/emitter-package.json`. The `emitter-package.json` file is used to install project dependencies and get the appropriate emitter package. + +Example: + +``` +azure-sdk-for-python/sdk/contosowidgetmanager/azure-contoso-widgetmanager> tsp-client generate +``` + +### convert + +Convert an existing swagger specification to a TypeSpec project. This command should only be run once to get started working on a TypeSpec project. TypeSpec projects will need to be optimized manually and fully reviewed after conversion. When using this command a path or url to a swagger README file is required through the `--swagger-readme` flag. + +Example: + +``` +azure-rest-api-specs/specification/contosowidgetmanager> tsp-client convert --swagger-readme ./data-plane/readme.md -o ./Contoso.WidgetManager +``` + +## Options + +``` + --arm Convert ARM swagger specification to TypeSpec [boolean] + -c, --tsp-config The tspconfig.yaml file to use [string] + --commit Commit to be used for project init or update [string] + -d, --debug Enable debug logging [boolean] + --emitter-options The options to pass to the emitter [string] + --generate-lock-file Generate a lock file under the eng/ directory from + an existing emitter-package.json [boolean] + -h, --help Show help [boolean] + --local-spec-repo Path to local repository with the TypeSpec project [string] + --save-inputs Don't clean up the temp directory after generation [boolean] + --skip-sync-and-generate Skip sync and generate during project init [boolean] + --swagger-readme Path or url to swagger readme file [string] + -o, --output-dir Specify an alternate output directory for the + generated files. Default is your current directory [string] + --repo Repository where the project is defined for init + or update [string] + -v, --version Show version number [boolean] +``` + +## Important concepts + +### Per project setup + +Each project will need to have a configuration file called tsp-location.yaml that will tell the tool where to find the TypeSpec project. + +#### tsp-location.yaml + +This file is created through the `tsp-client init` command or you can manually create it under the project directory to run other commands supported by this tool. + +:::info +This file should live under the project directory for each service. +::: + +The file has the following properties: + +| Property | Description | IsRequired | +| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- | +| directory | The top level directory where the main.tsp for the service lives. This should be relative to the spec repo root such as `specification/cognitiveservices/OpenAI.Inference` | true | +| additionalDirectories | Sometimes a typespec file will use a relative import that might not be under the main directory. In this case a single `directory` will not be enough to pull down all necessary files. To support this you can specify additional directories as a list to sync so that all needed files are synced. | false: default = null | +| commit | The commit sha for the version of the typespec files you want to generate off of. This allows us to have idempotence on generation until we opt into pointing at a later version. | true | +| repo | The repo this spec lives in. This should be either `Azure/azure-rest-api-specs` or `Azure/azure-rest-api-specs-pr`. | true | + +Example: + +```yml +directory: specification/contosowidgetmanager/Contoso.WidgetManager +commit: 431eb865a581da2cd7b9e953ae52cb146f31c2a6 +repo: Azure/azure-rest-api-specs +additionalDirectories: + - specification/contosowidgetmanager/Contoso.WidgetManager.Shared/ +``` + +## Per repository set up + +Each repository that intends to support `tsp-client` for generating and updating client libraries will need to set up an `emitter-package.json` file under the `eng/` directory at the root of the repository. Client libraries generated with this tool will be outputted based on the information in the tspconfig.yaml file of the TypeSpec specification. The service directory is specified through the `parameters.service-dir.default` parameter in tspconfig.yaml, additionally the `package-dir` option for the specific emitter is appended to the end of the path. + +See the following example of a valid tspconfig.yaml file: https://github.com/Azure/azure-rest-api-specs/blob/main/specification/contosowidgetmanager/Contoso.WidgetManager/tspconfig.yaml + +Using the tspconfig.yaml linked above, by default, the client libraries will be generated in the following directory for C#: `/sdk/contosowidgetmanager/Azure.Template.Contoso/`. + +### Required set up + +Please note that these requirements apply on the repository where the client library is going to be generated. Repo owners should make sure to follow these requirements. Users working within a repository that already accepts this tool can refer to the [Usage](#usage) section. + +- Add an emitter-package.json to the repo following this [configuration](#emitter-packagejson). +- Add the [TempTypeSpecFiles](#TempTypeSpecFiles) directory to the .gitignore file for your repository. + +### TempTypeSpecFiles + +This tool creates a `TempTypeSpecFiles` directory when syncing a TypeSpec project to your local repository. This temporary folder will contain a copy of the TypeSpec project specified by the parameters set in the tsp-location.yaml file. If you pass the `--save-inputs` flag to the commandline tool, this directory will not be deleted. Repositories should add an entry in the .gitignore so that none of these files are accidentally checked in if `--save-inputs` flag is passed in. + +```text +# .gitignore file +TempTypeSpecFiles/ +``` + +### emitter-package.json (Required) + +`emitter-package.json` will be used the same as a `package.json` file. If the is no `emitter-package-lock.json` file, the tool will run `npm install` on the contents of `emitter-package.json`. This file allows each repository to pin the version of their emitter and other dependencies to be used when generating client libraries. +The file should be checked into this location `/eng/emitter-package.json` + +Example: + +```json +{ + "main": "dist/src/index.js", + "dependencies": { + "@azure-tools/typespec-python": "0.21.0" + } +} +``` + +:::note +tsp compile currently requires the "main" line to be there. +::: + +This file replaces the package.json checked into the `azure-rest-api-spec` repository. + +### emitter-package-lock.json (Optional) + +`emitter-package-lock.json` will be used the same as a `package-lock.json`. The tool will run a clean npm installation before generating client libraries. This file allows consistent dependency trees and allows each repository to control their dependency installation. +The file should be checked into this location: `/eng/emitter-package-lock.json` + +:::warning +The tool will run `npm ci` to install dependencies, so ensure that the `emitter-package-lock.json` and `emitter-package.json` files both exist and are in sync with each other. +::: diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/data-types.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/data-types.md index ef2bbafe6f..e01fc47e41 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/data-types.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/data-types.md @@ -348,12 +348,12 @@ model Azure.Core.ResourceOperationStatus #### Properties -| Name | Type | Description | -| ------- | ------------------------------------------------------------------------- | -------------------------------------------------------------- | -| id | `string` | The unique ID of the operation. | -| status | [`OperationState`](./data-types.md#Azure.Core.Foundations.OperationState) | The status of the operation | -| error? | `StatusError` | Error object that describes the error when status is "Failed". | -| result? | `StatusResult` | The result of the operation. | +| Name | Type | Description | +| ------- | ------------------------------------------------------------------------- | ----------- | +| id | `string` | | +| status | [`OperationState`](./data-types.md#Azure.Core.Foundations.OperationState) | | +| error? | `StatusError` | | +| result? | `StatusResult` | | ### `ResponseProperty` {#Azure.Core.ResponseProperty} @@ -427,10 +427,10 @@ model Azure.Core.StatusMonitorOptions #### Properties -| Name | Type | Description | -| -------------- | ---------------------------- | --------------------------------------------------------------------------------------- | -| kind | `"statusMonitor"` | The kind of polling options | -| finalProperty? | `ModelProperty \| ErrorType` | A reference to or name of the property of the status monitor that contains the response | +| Name | Type | Description | +| -------------- | ------------------------- | --------------------------------------------------------------------------------------- | +| kind | `"statusMonitor"` | The kind of polling options | +| finalProperty? | `ModelProperty \| string` | A reference to or name of the property of the status monitor that contains the response | ### `StatusMonitorPollingOptions` {#Azure.Core.StatusMonitorPollingOptions} @@ -984,7 +984,7 @@ model Azure.Core.Foundations.RetryAfterHeader Enum describing allowed operation states. ```typespec -enum Azure.Core.Foundations.OperationState +union Azure.Core.Foundations.OperationState ``` ## Azure.Core.Traits diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/decorators.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/decorators.md index fbefed9ebc..3734168336 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/decorators.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/decorators.md @@ -309,6 +309,24 @@ Used to define how to call custom polling operations for long-running operations | --------------- | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | targetParameter | `ModelProperty \| string` | A reference to the polling operation parameter this parameter
provides a value for, or the name of that parameter. The default value is the name of
the decorated parameter or property. | +### `@useFinalStateVia` {#@Azure.Core.useFinalStateVia} + +Overrides the final state value for an operation + +```typespec +@Azure.Core.useFinalStateVia(finalState: valueof "original-uri" | "operation-location" | "location" | "azure-async-operation") +``` + +#### Target + +`Operation` + +#### Parameters + +| Name | Type | Description | +| ---------- | ----------------------------------------------------------------------------------------- | ----------------------------- | +| finalState | `valueof "original-uri" \| "operation-location" \| "location" \| "azure-async-operation"` | The desired final state value | + ## Azure.Core.Foundations ### `@omitKeyProperties` {#@Azure.Core.Foundations.omitKeyProperties} diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/index.mdx b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/index.mdx index d6aeb6abd4..5ea11012a4 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/index.mdx +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/index.mdx @@ -54,6 +54,7 @@ npm install --save-peer @azure-tools/typespec-azure-core - [`@pollingLocation`](./decorators.md#@Azure.Core.pollingLocation) - [`@pollingOperation`](./decorators.md#@Azure.Core.pollingOperation) - [`@pollingOperationParameter`](./decorators.md#@Azure.Core.pollingOperationParameter) +- [`@useFinalStateVia`](./decorators.md#@Azure.Core.useFinalStateVia) ### Interfaces diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/interfaces.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/interfaces.md index 8e615e7167..f3a8f10fb0 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/interfaces.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/interfaces.md @@ -28,7 +28,7 @@ interface Azure.Core.ResourceOperations Create or replace operation template. ```typespec -op Azure.Core.ResourceOperations.ResourceCreateOrReplace(apiVersion: string, resource: Resource): (anonymous model) | (anonymous model) | ErrorResponse +op Azure.Core.ResourceOperations.ResourceCreateOrReplace(apiVersion: string, resource: Resource): { statusCode: 201 } | { statusCode: 200 } | ErrorResponse ``` ##### Template Parameters @@ -43,7 +43,7 @@ op Azure.Core.ResourceOperations.ResourceCreateOrReplace(apiVersion: string, res Long-running resource create or replace operation template. ```typespec -op Azure.Core.ResourceOperations.LongRunningResourceCreateOrReplace(apiVersion: string, resource: Resource): (anonymous model) | (anonymous model) | ErrorResponse +op Azure.Core.ResourceOperations.LongRunningResourceCreateOrReplace(apiVersion: string, resource: Resource): { statusCode: 201, operationLocation: TypeSpec.Rest.ResourceLocation } | { statusCode: 200, operationLocation: TypeSpec.Rest.ResourceLocation } | ErrorResponse ``` ##### Template Parameters @@ -58,7 +58,7 @@ op Azure.Core.ResourceOperations.LongRunningResourceCreateOrReplace(apiVersion: Create or update operation template. ```typespec -op Azure.Core.ResourceOperations.ResourceCreateOrUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): (anonymous model) | (anonymous model) | ErrorResponse +op Azure.Core.ResourceOperations.ResourceCreateOrUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): { statusCode: 201 } | { statusCode: 200 } | ErrorResponse ``` ##### Template Parameters @@ -73,7 +73,7 @@ op Azure.Core.ResourceOperations.ResourceCreateOrUpdate(apiVersion: string, cont Long-running resource create or update operation template. ```typespec -op Azure.Core.ResourceOperations.LongRunningResourceCreateOrUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): (anonymous model) | (anonymous model) | ErrorResponse +op Azure.Core.ResourceOperations.LongRunningResourceCreateOrUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): { statusCode: 201, operationLocation: TypeSpec.Rest.ResourceLocation } | { statusCode: 200, operationLocation: TypeSpec.Rest.ResourceLocation } | ErrorResponse ``` ##### Template Parameters @@ -88,7 +88,7 @@ op Azure.Core.ResourceOperations.LongRunningResourceCreateOrUpdate(apiVersion: s Resource update operation template. ```typespec -op Azure.Core.ResourceOperations.ResourceUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): (anonymous model) | ErrorResponse +op Azure.Core.ResourceOperations.ResourceUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): { statusCode: 200 } | ErrorResponse ``` ##### Template Parameters @@ -103,7 +103,7 @@ op Azure.Core.ResourceOperations.ResourceUpdate(apiVersion: string, contentType: Resource create with service-provided name operation template. ```typespec -op Azure.Core.ResourceOperations.ResourceCreateWithServiceProvidedName(apiVersion: string, resource: Resource): Azure.Core.(anonymous model) | ErrorResponse +op Azure.Core.ResourceOperations.ResourceCreateWithServiceProvidedName(apiVersion: string, resource: Resource): Azure.Core.{ statusCode: 201, location: TypeSpec.Rest.ResourceLocation } | ErrorResponse ``` ##### Template Parameters @@ -118,7 +118,7 @@ op Azure.Core.ResourceOperations.ResourceCreateWithServiceProvidedName(apiVersio Long-running resource create with service-provided name operation template. ```typespec -op Azure.Core.ResourceOperations.LongRunningResourceCreateWithServiceProvidedName(apiVersion: string, resource: Resource): Azure.Core.(anonymous model) | ErrorResponse +op Azure.Core.ResourceOperations.LongRunningResourceCreateWithServiceProvidedName(apiVersion: string, resource: Resource): Azure.Core.{ statusCode: 202, location: TypeSpec.Rest.ResourceLocation } | ErrorResponse ``` ##### Template Parameters @@ -148,7 +148,7 @@ op Azure.Core.ResourceOperations.ResourceRead(apiVersion: string): {} | ErrorRes Resource delete operation template. ```typespec -op Azure.Core.ResourceOperations.ResourceDelete(apiVersion: string): Azure.Core.(anonymous model) | ErrorResponse +op Azure.Core.ResourceOperations.ResourceDelete(apiVersion: string): Azure.Core.{ statusCode: 204 } | ErrorResponse ``` ##### Template Parameters @@ -163,7 +163,7 @@ op Azure.Core.ResourceOperations.ResourceDelete(apiVersion: string): Azure.Core. Long-running resource delete operation template. ```typespec -op Azure.Core.ResourceOperations.LongRunningResourceDelete(apiVersion: string): (anonymous model) | ErrorResponse +op Azure.Core.ResourceOperations.LongRunningResourceDelete(apiVersion: string): { statusCode: 202, id: string, status: Azure.Core.Foundations.OperationState, error: Azure.Core.Foundations.Error, result: never, operationLocation: TypeSpec.Rest.ResourceLocation } | ErrorResponse ``` ##### Template Parameters @@ -227,7 +227,7 @@ op Azure.Core.ResourceOperations.ResourceCollectionAction(apiVersion: string): { Long-running resource action operation template. ```typespec -op Azure.Core.ResourceOperations.LongRunningResourceAction(apiVersion: string): Azure.Core.(anonymous model) | ErrorResponse +op Azure.Core.ResourceOperations.LongRunningResourceAction(apiVersion: string): Azure.Core.{ statusCode: 202, id: string, status: Azure.Core.Foundations.OperationState, error: StatusError, result: StatusResult, operationLocation: TypeSpec.Rest.ResourceLocation } | ErrorResponse ``` ##### Template Parameters @@ -245,7 +245,7 @@ op Azure.Core.ResourceOperations.LongRunningResourceAction(apiVersion: string): Long-running resource collection action operation template. ```typespec -op Azure.Core.ResourceOperations.LongRunningResourceCollectionAction(apiVersion: string): Azure.Core.(anonymous model) | ErrorResponse +op Azure.Core.ResourceOperations.LongRunningResourceCollectionAction(apiVersion: string): Azure.Core.{ statusCode: 202, id: string, status: Azure.Core.Foundations.OperationState, error: StatusError, result: StatusResult, operationLocation: TypeSpec.Rest.ResourceLocation } | ErrorResponse ``` ##### Template Parameters @@ -263,7 +263,7 @@ op Azure.Core.ResourceOperations.LongRunningResourceCollectionAction(apiVersion: Resource operation status operation template. ```typespec -op Azure.Core.ResourceOperations.GetResourceOperationStatus(apiVersion: string, operationId: string): Azure.Core.ResourceOperationStatus | ErrorResponse +op Azure.Core.ResourceOperations.GetResourceOperationStatus(apiVersion: string): Azure.Core.ResourceOperationStatus | ErrorResponse ``` ##### Template Parameters @@ -280,7 +280,7 @@ op Azure.Core.ResourceOperations.GetResourceOperationStatus(apiVersion: string, Operation signature to retrieve a resource operation status. ```typespec -op Azure.Core.GetResourceOperationStatus(apiVersion: string, operationId: string): Azure.Core.ResourceOperationStatus | Azure.Core.Foundations.ErrorResponse +op Azure.Core.GetResourceOperationStatus(apiVersion: string): Azure.Core.ResourceOperationStatus | Azure.Core.Foundations.ErrorResponse ``` #### Template Parameters @@ -301,7 +301,7 @@ See https://azure.github.io/typespec-azure/docs/getstarted/azure-core/step05#def Long-running operation signature for a resource action. ```typespec -op Azure.Core.LongRunningResourceAction(apiVersion: string): Azure.Core.(anonymous model) | Azure.Core.Foundations.ErrorResponse +op Azure.Core.LongRunningResourceAction(apiVersion: string): Azure.Core.{ statusCode: 202, id: string, status: Azure.Core.Foundations.OperationState, error: StatusError, result: StatusResult, operationLocation: TypeSpec.Rest.ResourceLocation } | Azure.Core.Foundations.ErrorResponse ``` #### Template Parameters @@ -323,7 +323,7 @@ See https://azure.github.io/typespec-azure/docs/getstarted/azure-core/step05#def Long-running operation signature for an action that applies to a collection of resources. ```typespec -op Azure.Core.LongRunningResourceCollectionAction(apiVersion: string): Azure.Core.(anonymous model) | Azure.Core.Foundations.ErrorResponse +op Azure.Core.LongRunningResourceCollectionAction(apiVersion: string): Azure.Core.{ statusCode: 202, id: string, status: Azure.Core.Foundations.OperationState, error: StatusError, result: StatusResult, operationLocation: TypeSpec.Rest.ResourceLocation } | Azure.Core.Foundations.ErrorResponse ``` #### Template Parameters @@ -345,7 +345,7 @@ See https://azure.github.io/typespec-azure/docs/getstarted/azure-core/step05#def Long-running operation signature to create or replace a resource. ```typespec -op Azure.Core.LongRunningResourceCreateOrReplace(apiVersion: string, resource: Resource): (anonymous model) | (anonymous model) | Azure.Core.Foundations.ErrorResponse +op Azure.Core.LongRunningResourceCreateOrReplace(apiVersion: string, resource: Resource): { statusCode: 201, operationLocation: TypeSpec.Rest.ResourceLocation } | { statusCode: 200, operationLocation: TypeSpec.Rest.ResourceLocation } | Azure.Core.Foundations.ErrorResponse ``` #### Template Parameters @@ -364,7 +364,7 @@ See https://azure.github.io/typespec-azure/docs/getstarted/azure-core/step05#def Long-running operation signature to create or update a resource. ```typespec -op Azure.Core.LongRunningResourceCreateOrUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): (anonymous model) | (anonymous model) | Azure.Core.Foundations.ErrorResponse +op Azure.Core.LongRunningResourceCreateOrUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): { statusCode: 201, operationLocation: TypeSpec.Rest.ResourceLocation } | { statusCode: 200, operationLocation: TypeSpec.Rest.ResourceLocation } | Azure.Core.Foundations.ErrorResponse ``` #### Template Parameters @@ -383,7 +383,7 @@ See https://azure.github.io/typespec-azure/docs/getstarted/azure-core/step05#def Long-running operation signature to create a resource with a service-provided name. ```typespec -op Azure.Core.LongRunningResourceCreateWithServiceProvidedName(apiVersion: string, resource: Resource): Azure.Core.(anonymous model) | Azure.Core.Foundations.ErrorResponse +op Azure.Core.LongRunningResourceCreateWithServiceProvidedName(apiVersion: string, resource: Resource): Azure.Core.{ statusCode: 202, location: TypeSpec.Rest.ResourceLocation } | Azure.Core.Foundations.ErrorResponse ``` #### Template Parameters @@ -402,7 +402,7 @@ See https://azure.github.io/typespec-azure/docs/getstarted/azure-core/step05#def Long-running operation signature to delete a resource. ```typespec -op Azure.Core.LongRunningResourceDelete(apiVersion: string): (anonymous model) | Azure.Core.Foundations.ErrorResponse +op Azure.Core.LongRunningResourceDelete(apiVersion: string): { statusCode: 202, id: string, status: Azure.Core.Foundations.OperationState, error: Azure.Core.Foundations.Error, result: never, operationLocation: TypeSpec.Rest.ResourceLocation } | Azure.Core.Foundations.ErrorResponse ``` #### Template Parameters @@ -417,7 +417,7 @@ op Azure.Core.LongRunningResourceDelete(apiVersion: string): (anonymous model) | A long-running remote procedure call (RPC) operation. ```typespec -op Azure.Core.LongRunningRpcOperation(apiVersion: string): Azure.Core.(anonymous model) | ErrorResponse +op Azure.Core.LongRunningRpcOperation(apiVersion: string): Azure.Core.{ statusCode: 202, id: string, status: Azure.Core.Foundations.OperationState, error: StatusError, result: StatusResult, operationLocation: TypeSpec.Rest.ResourceLocation } | ErrorResponse ``` #### Template Parameters @@ -483,7 +483,7 @@ See https://azure.github.io/typespec-azure/docs/getstarted/azure-core/step05#def Operation signature to create or replace a resource. ```typespec -op Azure.Core.ResourceCreateOrReplace(apiVersion: string, resource: Resource): (anonymous model) | (anonymous model) | Azure.Core.Foundations.ErrorResponse +op Azure.Core.ResourceCreateOrReplace(apiVersion: string, resource: Resource): { statusCode: 201 } | { statusCode: 200 } | Azure.Core.Foundations.ErrorResponse ``` #### Template Parameters @@ -502,7 +502,7 @@ See https://azure.github.io/typespec-azure/docs/getstarted/azure-core/step05#def Operation signature to create or update a resource. ```typespec -op Azure.Core.ResourceCreateOrUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): (anonymous model) | (anonymous model) | Azure.Core.Foundations.ErrorResponse +op Azure.Core.ResourceCreateOrUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): { statusCode: 201 } | { statusCode: 200 } | Azure.Core.Foundations.ErrorResponse ``` #### Template Parameters @@ -521,7 +521,7 @@ See https://azure.github.io/typespec-azure/docs/getstarted/azure-core/step05#def Operation signature to synchronously create a resource with a service-provided name. ```typespec -op Azure.Core.ResourceCreateWithServiceProvidedName(apiVersion: string, resource: Resource): Azure.Core.(anonymous model) | Azure.Core.Foundations.ErrorResponse +op Azure.Core.ResourceCreateWithServiceProvidedName(apiVersion: string, resource: Resource): Azure.Core.{ statusCode: 201, location: TypeSpec.Rest.ResourceLocation } | Azure.Core.Foundations.ErrorResponse ``` #### Template Parameters @@ -540,7 +540,7 @@ See https://azure.github.io/typespec-azure/docs/getstarted/azure-core/step05#def Operation signature to delete a resource. ```typespec -op Azure.Core.ResourceDelete(apiVersion: string): Azure.Core.(anonymous model) | Azure.Core.Foundations.ErrorResponse +op Azure.Core.ResourceDelete(apiVersion: string): Azure.Core.{ statusCode: 204 } | Azure.Core.Foundations.ErrorResponse ``` #### Template Parameters @@ -596,7 +596,7 @@ See https://azure.github.io/typespec-azure/docs/getstarted/azure-core/step05#def Operation signature to update a resource. ```typespec -op Azure.Core.ResourceUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): (anonymous model) | Azure.Core.Foundations.ErrorResponse +op Azure.Core.ResourceUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): { statusCode: 200 } | Azure.Core.Foundations.ErrorResponse ``` #### Template Parameters @@ -649,7 +649,7 @@ op Azure.Core.Foundations.GetOperationStatus(apiVersion: string, operationId: st Long-running operation. ```typespec -op Azure.Core.Foundations.LongRunningOperation(apiVersion: string): Azure.Core.Foundations.(anonymous model) | ErrorResponse +op Azure.Core.Foundations.LongRunningOperation(apiVersion: string): Azure.Core.Foundations.{ operationLocation: TypeSpec.Rest.ResourceLocation } | ErrorResponse ``` #### Template Parameters @@ -666,7 +666,7 @@ op Azure.Core.Foundations.LongRunningOperation(apiVersion: string): Azure.Core.F Long-running operation that updates a resource. ```typespec -op Azure.Core.Foundations.LongRunningResourceUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): (anonymous model) | ErrorResponse +op Azure.Core.Foundations.LongRunningResourceUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): { statusCode: 200, operationLocation: TypeSpec.Rest.ResourceLocation } | ErrorResponse ``` #### Template Parameters @@ -682,7 +682,7 @@ op Azure.Core.Foundations.LongRunningResourceUpdate(apiVersion: string, contentT Operation that lists resources in a non-paginated way. ```typespec -op Azure.Core.Foundations.NonPagedResourceList(apiVersion: string): Azure.Core.Foundations.(anonymous model) | ErrorResponse +op Azure.Core.Foundations.NonPagedResourceList(apiVersion: string): Azure.Core.Foundations.{ body: Array } | ErrorResponse ``` #### Template Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$addTraitProperties.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$addTraitProperties.md index 7bb2be1933..66d9d1b7df 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$addTraitProperties.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$addTraitProperties.md @@ -4,7 +4,7 @@ title: "[F] $addTraitProperties" --- ```ts -$addTraitProperties( +function $addTraitProperties( context, target, traitModel, diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$applyTraitOverride.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$applyTraitOverride.md index 2b5afd77bc..c28a4d4423 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$applyTraitOverride.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$applyTraitOverride.md @@ -4,7 +4,7 @@ title: "[F] $applyTraitOverride" --- ```ts -$applyTraitOverride( +function $applyTraitOverride( context, target, traitModel): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$defaultFinalStateVia.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$defaultFinalStateVia.md new file mode 100644 index 0000000000..0724d1a391 --- /dev/null +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$defaultFinalStateVia.md @@ -0,0 +1,23 @@ +--- +jsApi: true +title: "[F] $defaultFinalStateVia" + +--- +```ts +function $defaultFinalStateVia( + context, + target, + states): void +``` + +## Parameters + +| Parameter | Type | +| :------ | :------ | +| `context` | `DecoratorContext` | +| `target` | `Operation` | +| `states` | `LroHeader`[] | + +## Returns + +`void` diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$ensureAllHeaderParams.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$ensureAllHeaderParams.md index 79067737ed..ec10457b96 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$ensureAllHeaderParams.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$ensureAllHeaderParams.md @@ -4,7 +4,7 @@ title: "[F] $ensureAllHeaderParams" --- ```ts -$ensureAllHeaderParams( +function $ensureAllHeaderParams( context, target, paramModel): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$ensureAllQueryParams.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$ensureAllQueryParams.md index 9c4b8e951a..65d218776d 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$ensureAllQueryParams.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$ensureAllQueryParams.md @@ -4,7 +4,7 @@ title: "[F] $ensureAllQueryParams" --- ```ts -$ensureAllQueryParams( +function $ensureAllQueryParams( context, target, paramModel): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$ensureResourceType.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$ensureResourceType.md index 3bcf7e54c6..aa6496840f 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$ensureResourceType.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$ensureResourceType.md @@ -4,7 +4,7 @@ title: "[F] $ensureResourceType" --- ```ts -$ensureResourceType( +function $ensureResourceType( context, entity, resourceType): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$ensureTraitsPresent.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$ensureTraitsPresent.md index e539dfa2cc..c6a3859dae 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$ensureTraitsPresent.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$ensureTraitsPresent.md @@ -4,7 +4,7 @@ title: "[F] $ensureTraitsPresent" --- ```ts -$ensureTraitsPresent( +function $ensureTraitsPresent( context, target, traitModel, diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$ensureVerb.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$ensureVerb.md index e048d55dc8..2c3bc26f34 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$ensureVerb.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$ensureVerb.md @@ -4,7 +4,7 @@ title: "[F] $ensureVerb" --- ```ts -$ensureVerb( +function $ensureVerb( context, entity, templateName, diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$finalLocation.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$finalLocation.md index 60307ac013..b3e6aec2ba 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$finalLocation.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$finalLocation.md @@ -4,7 +4,7 @@ title: "[F] $finalLocation" --- ```ts -$finalLocation( +function $finalLocation( context, entity, finalResult?): void @@ -16,7 +16,7 @@ $finalLocation( | :------ | :------ | | `context` | `DecoratorContext` | | `entity` | `ModelProperty` | -| `finalResult`? | `Model` \| `IntrinsicType` | +| `finalResult`? | `IntrinsicType` \| `Model` | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$finalOperation.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$finalOperation.md index 50eace19f0..a73c594f50 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$finalOperation.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$finalOperation.md @@ -4,7 +4,7 @@ title: "[F] $finalOperation" --- ```ts -$finalOperation( +function $finalOperation( context, entity, linkedOperation, diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$fixed.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$fixed.md index 0c4bbe075e..a048dcfe1c 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$fixed.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$fixed.md @@ -4,7 +4,7 @@ title: "[F] $fixed" --- ```ts -$fixed(context, target): void +function $fixed(context, target): void ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$items.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$items.md index 01d02af06e..dec7f67631 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$items.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$items.md @@ -4,7 +4,7 @@ title: "[F] $items" --- ```ts -$items(context, entity): void +function $items(context, entity): void ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$lroCanceled.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$lroCanceled.md index 58962adc4f..cbd1736b9a 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$lroCanceled.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$lroCanceled.md @@ -4,7 +4,7 @@ title: "[F] $lroCanceled" --- ```ts -$lroCanceled(context, entity): void +function $lroCanceled(context, entity): void ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$lroErrorResult.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$lroErrorResult.md index 40f573301f..fcb4fe1ff6 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$lroErrorResult.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$lroErrorResult.md @@ -4,7 +4,7 @@ title: "[F] $lroErrorResult" --- ```ts -$lroErrorResult(context, entity): void +function $lroErrorResult(context, entity): void ``` Marks the property in a StatusMonitor that contains the error result diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$lroFailed.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$lroFailed.md index 99e344b663..edf20f2928 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$lroFailed.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$lroFailed.md @@ -4,7 +4,7 @@ title: "[F] $lroFailed" --- ```ts -$lroFailed(context, entity): void +function $lroFailed(context, entity): void ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$lroResult.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$lroResult.md index f27d941e99..51c9e8fc5a 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$lroResult.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$lroResult.md @@ -4,7 +4,7 @@ title: "[F] $lroResult" --- ```ts -$lroResult(context, entity): void +function $lroResult(context, entity): void ``` Marks the property in a StatusMonitor that contains the logical result diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$lroStatus.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$lroStatus.md index 5c489f65a7..449c56a459 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$lroStatus.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$lroStatus.md @@ -4,7 +4,7 @@ title: "[F] $lroStatus" --- ```ts -$lroStatus(context, entity): void +function $lroStatus(context, entity): void ``` ## Parameters @@ -12,7 +12,7 @@ $lroStatus(context, entity): void | Parameter | Type | | :------ | :------ | | `context` | `DecoratorContext` | -| `entity` | `ModelProperty` \| `Enum` \| `Union` | +| `entity` | `Enum` \| `ModelProperty` \| `Union` | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$lroSucceeded.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$lroSucceeded.md index f5c98ce02a..4eced453c4 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$lroSucceeded.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$lroSucceeded.md @@ -4,7 +4,7 @@ title: "[F] $lroSucceeded" --- ```ts -$lroSucceeded(context, entity): void +function $lroSucceeded(context, entity): void ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$needsRoute.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$needsRoute.md index d91914b346..64fb60a707 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$needsRoute.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$needsRoute.md @@ -4,7 +4,7 @@ title: "[F] $needsRoute" --- ```ts -$needsRoute(context, entity): void +function $needsRoute(context, entity): void ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$nextLink.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$nextLink.md index 0d9db6d518..d162825b17 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$nextLink.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$nextLink.md @@ -4,7 +4,7 @@ title: "[F] $nextLink" --- ```ts -$nextLink(context, entity): void +function $nextLink(context, entity): void ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$nextPageOperation.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$nextPageOperation.md index abe4813fb6..3c4779b6e1 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$nextPageOperation.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$nextPageOperation.md @@ -4,7 +4,7 @@ title: "[F] $nextPageOperation" --- ```ts -$nextPageOperation( +function $nextPageOperation( context, entity, linkedOperation, diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$omitKeyProperties.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$omitKeyProperties.md index b6749d58cb..bef02ece40 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$omitKeyProperties.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$omitKeyProperties.md @@ -4,7 +4,7 @@ title: "[F] $omitKeyProperties" --- ```ts -$omitKeyProperties(context, entity): void +function $omitKeyProperties(context, entity): void ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$onValidate.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$onValidate.md index 212e92eb72..3b2236c14a 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$onValidate.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$onValidate.md @@ -4,7 +4,7 @@ title: "[F] $onValidate" --- ```ts -$onValidate(program): void +function $onValidate(program): void ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$operationLink.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$operationLink.md index f0f907d520..e44358f077 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$operationLink.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$operationLink.md @@ -4,7 +4,7 @@ title: "[F] $operationLink" --- ```ts -$operationLink( +function $operationLink( context, entity, linkedOperation, diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$pagedResult.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$pagedResult.md index 19ff7fa8da..59a7c27cc5 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$pagedResult.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$pagedResult.md @@ -4,7 +4,7 @@ title: "[F] $pagedResult" --- ```ts -$pagedResult(context, entity): void +function $pagedResult(context, entity): void ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$pollingLocation.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$pollingLocation.md index e075df4ec9..f337af9ba5 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$pollingLocation.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$pollingLocation.md @@ -4,7 +4,7 @@ title: "[F] $pollingLocation" --- ```ts -$pollingLocation( +function $pollingLocation( context, entity, options?): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$pollingOperation.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$pollingOperation.md index af77bc093b..81e7ab4c16 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$pollingOperation.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$pollingOperation.md @@ -4,7 +4,7 @@ title: "[F] $pollingOperation" --- ```ts -$pollingOperation( +function $pollingOperation( context, target, linkedOperation, diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$pollingOperationParameter.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$pollingOperationParameter.md index 21b7fd65ab..236c85f941 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$pollingOperationParameter.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$pollingOperationParameter.md @@ -4,7 +4,7 @@ title: "[F] $pollingOperationParameter" --- ```ts -$pollingOperationParameter( +function $pollingOperationParameter( context, entity, target?): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$requestParameter.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$requestParameter.md index 9096eba84b..ba707e4ba5 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$requestParameter.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$requestParameter.md @@ -4,7 +4,7 @@ title: "[F] $requestParameter" --- ```ts -$requestParameter( +function $requestParameter( context, entity, name): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$responseProperty.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$responseProperty.md index e6f81ae85b..912ccd32df 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$responseProperty.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$responseProperty.md @@ -4,7 +4,7 @@ title: "[F] $responseProperty" --- ```ts -$responseProperty( +function $responseProperty( context, entity, name): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$spreadCustomParameters.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$spreadCustomParameters.md index 643bac086f..ca807b536d 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$spreadCustomParameters.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$spreadCustomParameters.md @@ -4,7 +4,7 @@ title: "[F] $spreadCustomParameters" --- ```ts -$spreadCustomParameters( +function $spreadCustomParameters( context, entity, customizations): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$spreadCustomResponseProperties.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$spreadCustomResponseProperties.md index 965a497da9..ccd2a55318 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$spreadCustomResponseProperties.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$spreadCustomResponseProperties.md @@ -4,7 +4,7 @@ title: "[F] $spreadCustomResponseProperties" --- ```ts -$spreadCustomResponseProperties( +function $spreadCustomResponseProperties( context, entity, customizations): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$trait.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$trait.md index a193271ced..d5d21dfd2b 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$trait.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$trait.md @@ -4,7 +4,7 @@ title: "[F] $trait" --- ```ts -$trait( +function $trait( context, target, traitName?): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$traitAdded.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$traitAdded.md index 143e726bfd..98edc2b73d 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$traitAdded.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$traitAdded.md @@ -4,7 +4,7 @@ title: "[F] $traitAdded" --- ```ts -$traitAdded( +function $traitAdded( context, target, addedVersion): void @@ -15,7 +15,7 @@ $traitAdded( | Parameter | Type | | :------ | :------ | | `context` | `DecoratorContext` | -| `target` | `ModelProperty` \| `Model` | +| `target` | `Model` \| `ModelProperty` | | `addedVersion` | `EnumMember` \| `NullType` | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$traitContext.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$traitContext.md index 595ce0934a..1c1d678532 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$traitContext.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$traitContext.md @@ -4,7 +4,7 @@ title: "[F] $traitContext" --- ```ts -$traitContext( +function $traitContext( context, target, traitContext): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$traitLocation.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$traitLocation.md index cf516b92fb..d8697c7b95 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$traitLocation.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$traitLocation.md @@ -4,7 +4,7 @@ title: "[F] $traitLocation" --- ```ts -$traitLocation( +function $traitLocation( context, target, traitLocation): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$traitSource.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$traitSource.md index 4a9212e09e..1f99030554 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$traitSource.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$traitSource.md @@ -4,7 +4,7 @@ title: "[F] $traitSource" --- ```ts -$traitSource( +function $traitSource( context, target, traitName): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$useFinalStateVia.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$useFinalStateVia.md new file mode 100644 index 0000000000..c77759abd6 --- /dev/null +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/$useFinalStateVia.md @@ -0,0 +1,25 @@ +--- +jsApi: true +title: "[F] $useFinalStateVia" + +--- +```ts +function $useFinalStateVia( + context, + entity, + finalState): void +``` + +overrides the final state for an lro + +## Parameters + +| Parameter | Type | Description | +| :------ | :------ | :------ | +| `context` | `DecoratorContext` | The execution context for the decorator | +| `entity` | `Operation` | The decorated operation | +| `finalState` | `string` | The desired value for final-state-via | + +## Returns + +`void` diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/checkEnsureVerb.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/checkEnsureVerb.md index 8b15cc7947..5b1841abd4 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/checkEnsureVerb.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/checkEnsureVerb.md @@ -4,7 +4,7 @@ title: "[F] checkEnsureVerb" --- ```ts -checkEnsureVerb(program): void +function checkEnsureVerb(program): void ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/checkRpcRoutes.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/checkRpcRoutes.md index 4b78b6de63..3373f1daee 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/checkRpcRoutes.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/checkRpcRoutes.md @@ -4,7 +4,7 @@ title: "[F] checkRpcRoutes" --- ```ts -checkRpcRoutes(program): void +function checkRpcRoutes(program): void ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/extractLroStates.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/extractLroStates.md index 3996da0634..d0063d731a 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/extractLroStates.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/extractLroStates.md @@ -4,7 +4,7 @@ title: "[F] extractLroStates" --- ```ts -extractLroStates(program, entity): [LongRunningStates | undefined, readonly Diagnostic[]] +function extractLroStates(program, entity): [LongRunningStates | undefined, readonly Diagnostic[]] ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/filterModelProperties.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/filterModelProperties.md index 47f0f5ef5a..918b958869 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/filterModelProperties.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/filterModelProperties.md @@ -4,7 +4,7 @@ title: "[F] filterModelProperties" --- ```ts -filterModelProperties(model, predicate): ModelProperty[] +function filterModelProperties(model, predicate): ModelProperty[] ``` Filter the model properties of a model, using the given predicate diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/filterResponseModels.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/filterResponseModels.md index 3d65d2f792..70f725fa22 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/filterResponseModels.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/filterResponseModels.md @@ -4,7 +4,7 @@ title: "[F] filterResponseModels" --- ```ts -filterResponseModels(operation, predicate): Model[] | undefined +function filterResponseModels(operation, predicate): Model[] | undefined ``` Filter operation responses using a predicate diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getAllProperties.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getAllProperties.md index b545ca8e48..97e3989b48 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getAllProperties.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getAllProperties.md @@ -4,7 +4,7 @@ title: "[F] getAllProperties" --- ```ts -getAllProperties(model, collection?): Map +function getAllProperties(model, collection?): Map ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getArmResourceIdentifierConfig.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getArmResourceIdentifierConfig.md index 0cb7840600..b84b9f29b4 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getArmResourceIdentifierConfig.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getArmResourceIdentifierConfig.md @@ -4,7 +4,7 @@ title: "[F] getArmResourceIdentifierConfig" --- ```ts -getArmResourceIdentifierConfig(program, entity): ArmResourceIdentifierConfig +function getArmResourceIdentifierConfig(program, entity): ArmResourceIdentifierConfig ``` Returns the config attached to an armResourceIdentifierScalar diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getAsEmbeddingVector.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getAsEmbeddingVector.md index 4b4280778a..5a9d35c4a4 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getAsEmbeddingVector.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getAsEmbeddingVector.md @@ -4,7 +4,7 @@ title: "[F] getAsEmbeddingVector" --- ```ts -getAsEmbeddingVector(program, model): EmbeddingVectorMetadata | undefined +function getAsEmbeddingVector(program, model): EmbeddingVectorMetadata | undefined ``` If the provided model is an embedding vector, returns the appropriate metadata; otherwise, diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getFinalLocationValue.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getFinalLocationValue.md index 1ae86da80b..a0f42aa8c8 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getFinalLocationValue.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getFinalLocationValue.md @@ -4,7 +4,7 @@ title: "[F] getFinalLocationValue" --- ```ts -getFinalLocationValue(program, entity): Model | IntrinsicType | undefined +function getFinalLocationValue(program, entity): Model | IntrinsicType | undefined ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getFinalStateOverride.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getFinalStateOverride.md new file mode 100644 index 0000000000..b909959382 --- /dev/null +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getFinalStateOverride.md @@ -0,0 +1,23 @@ +--- +jsApi: true +title: "[F] getFinalStateOverride" + +--- +```ts +function getFinalStateOverride(program, operation): FinalStateValue | undefined +``` + +Get the overridden final state value for this operation, if any + +## Parameters + +| Parameter | Type | Description | +| :------ | :------ | :------ | +| `program` | `Program` | The program to process | +| `operation` | `Operation` | The operation to check for an override value | + +## Returns + +[`FinalStateValue`](../enumerations/FinalStateValue.md) \| `undefined` + +The FInalStateValue if it exists, otherwise undefined diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getHttpMetadata.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getHttpMetadata.md index 7d5f53ab2a..0a6185f13b 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getHttpMetadata.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getHttpMetadata.md @@ -4,7 +4,7 @@ title: "[F] getHttpMetadata" --- ```ts -getHttpMetadata(program, operation): HttpOperation +function getHttpMetadata(program, operation): HttpOperation ``` Get the Http metadata for this operation diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getItems.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getItems.md index 8fb455902a..e5e4b173f3 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getItems.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getItems.md @@ -4,7 +4,7 @@ title: "[F] getItems" --- ```ts -getItems(program, entity): boolean | undefined +function getItems(program, entity): boolean | undefined ``` Returns `true` if the property is marked with `@items`. diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getLongRunningStates.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getLongRunningStates.md index bdc950410c..1845ff2f05 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getLongRunningStates.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getLongRunningStates.md @@ -4,7 +4,7 @@ title: "[F] getLongRunningStates" --- ```ts -getLongRunningStates(program, entity): LongRunningStates | undefined +function getLongRunningStates(program, entity): LongRunningStates | undefined ``` Returns the `LongRunningStates` associated with `entity`. @@ -14,7 +14,7 @@ Returns the `LongRunningStates` associated with `entity`. | Parameter | Type | | :------ | :------ | | `program` | `Program` | -| `entity` | `Scalar` \| `ModelProperty` \| `Model` \| `Enum` | +| `entity` | `Enum` \| `Model` \| `ModelProperty` \| `Scalar` | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getLroErrorResult.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getLroErrorResult.md index d542a3547c..0a0a1bd30f 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getLroErrorResult.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getLroErrorResult.md @@ -4,7 +4,7 @@ title: "[F] getLroErrorResult" --- ```ts -getLroErrorResult( +function getLroErrorResult( program, entity, useDefault): [ModelProperty | undefined, readonly Diagnostic[]] @@ -18,7 +18,7 @@ Gets the error result property from a StatusMonitor | :------ | :------ | :------ | :------ | | `program` | `Program` | `undefined` | The program to process. | | `entity` | `Model` | `undefined` | The StatusMonitor model to process. | -| `useDefault` | `boolean` | `true` | Use the default error property if no other
property is marked. (defaults to true) | +| `useDefault` | `boolean` | `true` | Use the default error property if no other property is marked. (defaults to true) | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getLroMetadata.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getLroMetadata.md index a8b9147395..965de86d46 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getLroMetadata.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getLroMetadata.md @@ -4,7 +4,7 @@ title: "[F] getLroMetadata" --- ```ts -getLroMetadata(program, operation): LroMetadata | undefined +function getLroMetadata(program, operation): LroMetadata | undefined ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getLroResult.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getLroResult.md index 044bdf59bc..9c9b44960c 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getLroResult.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getLroResult.md @@ -4,7 +4,7 @@ title: "[F] getLroResult" --- ```ts -getLroResult( +function getLroResult( program, entity, useDefault): [ModelProperty | undefined, readonly Diagnostic[]] @@ -18,7 +18,7 @@ Gets the logical result property from a StatusMonitor | :------ | :------ | :------ | :------ | | `program` | `Program` | `undefined` | The program to process. | | `entity` | `Model` | `undefined` | The StatusMonitor model to process. | -| `useDefault` | `boolean` | `true` | Use the default result property if no other
property is marked. (defaults to true) | +| `useDefault` | `boolean` | `true` | Use the default result property if no other property is marked. (defaults to true) | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getLroStatusProperty.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getLroStatusProperty.md index 10ee9773ba..4142b1a100 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getLroStatusProperty.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getLroStatusProperty.md @@ -4,7 +4,7 @@ title: "[F] getLroStatusProperty" --- ```ts -getLroStatusProperty(program, target): ModelProperty | undefined +function getLroStatusProperty(program, target): ModelProperty | undefined ``` Return the property that contains the lro status diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getNextLink.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getNextLink.md index 4251f22159..223397a8cd 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getNextLink.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getNextLink.md @@ -4,7 +4,7 @@ title: "[F] getNextLink" --- ```ts -getNextLink(program, entity): boolean | undefined +function getNextLink(program, entity): boolean | undefined ``` Returns `true` if the property is marked with `@nextLink`. diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getOperationLink.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getOperationLink.md index 18133ec830..c3ffb79def 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getOperationLink.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getOperationLink.md @@ -4,7 +4,7 @@ title: "[F] getOperationLink" --- ```ts -getOperationLink( +function getOperationLink( program, entity, linkType): OperationLinkMetadata | undefined diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getOperationLinks.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getOperationLinks.md index 6939badb37..a8178f3136 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getOperationLinks.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getOperationLinks.md @@ -4,7 +4,7 @@ title: "[F] getOperationLinks" --- ```ts -getOperationLinks(program, entity): Map | undefined +function getOperationLinks(program, entity): Map | undefined ``` Returns the collection of `OperationLinkMetadata` for a given operation, if any, or undefined. diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getOperationResponse.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getOperationResponse.md index 169fb662af..074518d5e9 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getOperationResponse.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getOperationResponse.md @@ -4,7 +4,7 @@ title: "[F] getOperationResponse" --- ```ts -getOperationResponse(program, operation): Model | undefined +function getOperationResponse(program, operation): Model | undefined ``` Get the main success response from an operation diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getPagedResult.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getPagedResult.md index 97ee0e5654..c8e29e4f71 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getPagedResult.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getPagedResult.md @@ -4,7 +4,7 @@ title: "[F] getPagedResult" --- ```ts -getPagedResult(program, entity): PagedResultMetadata | undefined +function getPagedResult(program, entity): PagedResultMetadata | undefined ``` Retrieves PagedResultMetadata for a model, if available. If passed an diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getPollingLocationInfo.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getPollingLocationInfo.md index c4e004ad5c..6469e05d64 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getPollingLocationInfo.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getPollingLocationInfo.md @@ -4,7 +4,7 @@ title: "[F] getPollingLocationInfo" --- ```ts -getPollingLocationInfo(program, target): PollingLocationInfo | undefined +function getPollingLocationInfo(program, target): PollingLocationInfo | undefined ``` Gets polling information stored with a field that contains a link to an Lro polling endpoint diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getPollingOperationParameter.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getPollingOperationParameter.md index a2145332c4..d4533fae4d 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getPollingOperationParameter.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getPollingOperationParameter.md @@ -4,7 +4,7 @@ title: "[F] getPollingOperationParameter" --- ```ts -getPollingOperationParameter(program, entity): string | ModelProperty | undefined +function getPollingOperationParameter(program, entity): string | ModelProperty | undefined ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getRequestParameter.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getRequestParameter.md index d743391b69..10dccb57a8 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getRequestParameter.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getRequestParameter.md @@ -4,7 +4,7 @@ title: "[F] getRequestParameter" --- ```ts -getRequestParameter(program, entity): string | undefined +function getRequestParameter(program, entity): string | undefined ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getResponseProperty.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getResponseProperty.md index 6f41031f90..c49719c85f 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getResponseProperty.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getResponseProperty.md @@ -4,7 +4,7 @@ title: "[F] getResponseProperty" --- ```ts -getResponseProperty(program, entity): string | undefined +function getResponseProperty(program, entity): string | undefined ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getResultModelWithProperty.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getResultModelWithProperty.md index 164ccb3be0..940fa2fb47 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getResultModelWithProperty.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getResultModelWithProperty.md @@ -4,7 +4,7 @@ title: "[F] getResultModelWithProperty" --- ```ts -getResultModelWithProperty( +function getResultModelWithProperty( program, operation, predicate): [Model, ModelProperty] | undefined diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getSourceTraitName.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getSourceTraitName.md index dbd6b0bdd1..d92f7ce9b2 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getSourceTraitName.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getSourceTraitName.md @@ -4,7 +4,7 @@ title: "[F] getSourceTraitName" --- ```ts -getSourceTraitName(program, property): string | undefined +function getSourceTraitName(program, property): string | undefined ``` Retrieves the `traitName` stored for the given `property`, if any. diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getSuccessResponse.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getSuccessResponse.md index 7958366f08..34da5bfad7 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getSuccessResponse.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getSuccessResponse.md @@ -4,7 +4,7 @@ title: "[F] getSuccessResponse" --- ```ts -getSuccessResponse(program, operation): Model | undefined +function getSuccessResponse(program, operation): Model | undefined ``` Get the first success response of an operation diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getTraitContexts.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getTraitContexts.md index 7b231b1737..4bce8c5fee 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getTraitContexts.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getTraitContexts.md @@ -4,7 +4,7 @@ title: "[F] getTraitContexts" --- ```ts -getTraitContexts(program, property): EnumMember[] +function getTraitContexts(program, property): EnumMember[] ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getTraitLocation.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getTraitLocation.md index afb21201b8..07979992ba 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getTraitLocation.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getTraitLocation.md @@ -4,7 +4,7 @@ title: "[F] getTraitLocation" --- ```ts -getTraitLocation(program, property): EnumMember | undefined +function getTraitLocation(program, property): EnumMember | undefined ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getTraitName.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getTraitName.md index 69060edd3b..2d02b0c4ef 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getTraitName.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getTraitName.md @@ -4,7 +4,7 @@ title: "[F] getTraitName" --- ```ts -getTraitName(program, model): string | undefined +function getTraitName(program, model): string | undefined ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getUnionAsEnum.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getUnionAsEnum.md index 36a7e0e3f6..0803067033 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getUnionAsEnum.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/getUnionAsEnum.md @@ -4,7 +4,7 @@ title: "[F] getUnionAsEnum" --- ```ts -getUnionAsEnum(union): [UnionEnum | undefined, readonly Diagnostic[]] +function getUnionAsEnum(union): [UnionEnum | undefined, readonly Diagnostic[]] ``` Tries to convert a union into an enum. diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isFinalLocation.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isFinalLocation.md index f8439b4a9c..1144e28224 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isFinalLocation.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isFinalLocation.md @@ -4,7 +4,7 @@ title: "[F] isFinalLocation" --- ```ts -isFinalLocation(program, entity): boolean +function isFinalLocation(program, entity): boolean ``` Returns `true` if the property is marked with @finalLocation. diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isFixed.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isFixed.md index e52af63cef..8a8c0a2bc5 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isFixed.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isFixed.md @@ -4,7 +4,7 @@ title: "[F] isFixed" --- ```ts -isFixed(program, target): boolean +function isFixed(program, target): boolean ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isLroCanceledState.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isLroCanceledState.md index 74ca9a7db6..a491a8386d 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isLroCanceledState.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isLroCanceledState.md @@ -4,7 +4,7 @@ title: "[F] isLroCanceledState" --- ```ts -isLroCanceledState(program, entity): boolean +function isLroCanceledState(program, entity): boolean ``` Returns `true` if the enum member represents a "canceled" state. diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isLroFailedState.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isLroFailedState.md index 8abd3abee2..ca447e60a1 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isLroFailedState.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isLroFailedState.md @@ -4,7 +4,7 @@ title: "[F] isLroFailedState" --- ```ts -isLroFailedState(program, entity): boolean +function isLroFailedState(program, entity): boolean ``` Returns `true` if the enum member represents a "failed" state. diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isLroSucceededState.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isLroSucceededState.md index 87bb3208b8..3b20a5d7a6 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isLroSucceededState.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isLroSucceededState.md @@ -4,7 +4,7 @@ title: "[F] isLroSucceededState" --- ```ts -isLroSucceededState(program, entity): boolean +function isLroSucceededState(program, entity): boolean ``` Returns `true` if the enum member represents a "succeeded" state. diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isPollingLocation.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isPollingLocation.md index e603e8ec43..09fec19e16 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isPollingLocation.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isPollingLocation.md @@ -4,7 +4,7 @@ title: "[F] isPollingLocation" --- ```ts -isPollingLocation(program, entity): boolean +function isPollingLocation(program, entity): boolean ``` Returns `true` if the property is marked with @pollingLocation. diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isResourceOperation.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isResourceOperation.md index 3bb6616206..d0d384d63f 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isResourceOperation.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isResourceOperation.md @@ -4,7 +4,7 @@ title: "[F] isResourceOperation" --- ```ts -isResourceOperation(program, operation): boolean +function isResourceOperation(program, operation): boolean ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isTraitModel.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isTraitModel.md index fb96b928e6..736fbb8306 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isTraitModel.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/isTraitModel.md @@ -4,7 +4,7 @@ title: "[F] isTraitModel" --- ```ts -isTraitModel(program, model): boolean +function isTraitModel(program, model): boolean ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/unsupported_enable_checkStandardOperations.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/unsupported_enable_checkStandardOperations.md index 971182e253..f769aa8f3a 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/unsupported_enable_checkStandardOperations.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/functions/unsupported_enable_checkStandardOperations.md @@ -4,7 +4,7 @@ title: "[F] __unsupported_enable_checkStandardOperations" --- ```ts -__unsupported_enable_checkStandardOperations(enabled): void +function __unsupported_enable_checkStandardOperations(enabled): void ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/index.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/index.md index d65a328e96..e14d208a3b 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/index.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/index.md @@ -58,6 +58,7 @@ title: "[P] JS API" - [$addTraitProperties](functions/$addTraitProperties.md) - [$applyTraitOverride](functions/$applyTraitOverride.md) +- [$defaultFinalStateVia](functions/$defaultFinalStateVia.md) - [$ensureAllHeaderParams](functions/$ensureAllHeaderParams.md) - [$ensureAllQueryParams](functions/$ensureAllQueryParams.md) - [$ensureResourceType](functions/$ensureResourceType.md) @@ -92,6 +93,7 @@ title: "[P] JS API" - [$traitContext](functions/$traitContext.md) - [$traitLocation](functions/$traitLocation.md) - [$traitSource](functions/$traitSource.md) +- [$useFinalStateVia](functions/$useFinalStateVia.md) - [\_\_unsupported\_enable\_checkStandardOperations](functions/unsupported_enable_checkStandardOperations.md) - [checkEnsureVerb](functions/checkEnsureVerb.md) - [checkRpcRoutes](functions/checkRpcRoutes.md) @@ -102,6 +104,7 @@ title: "[P] JS API" - [getArmResourceIdentifierConfig](functions/getArmResourceIdentifierConfig.md) - [getAsEmbeddingVector](functions/getAsEmbeddingVector.md) - [getFinalLocationValue](functions/getFinalLocationValue.md) +- [getFinalStateOverride](functions/getFinalStateOverride.md) - [getHttpMetadata](functions/getHttpMetadata.md) - [getItems](functions/getItems.md) - [getLongRunningStates](functions/getLongRunningStates.md) diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/ArmResourceIdentifierAllowedResource.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/ArmResourceIdentifierAllowedResource.md index 064d9ba273..b07e15a2da 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/ArmResourceIdentifierAllowedResource.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/ArmResourceIdentifierAllowedResource.md @@ -7,5 +7,5 @@ title: "[I] ArmResourceIdentifierAllowedResource" | Property | Modifier | Type | Description | | :------ | :------ | :------ | :------ | -| `scopes?` | `readonly` | [`ArmResourceDeploymentScope`](../type-aliases/ArmResourceDeploymentScope.md)[] | An array of scopes. If not specified, the default scope is ["ResourceGroup"].
See [Allowed Scopes](https://github.com/Azure/autorest/tree/main/docs/extensions#allowed-scopes). | +| `scopes?` | `readonly` | [`ArmResourceDeploymentScope`](../type-aliases/ArmResourceDeploymentScope.md)[] | An array of scopes. If not specified, the default scope is ["ResourceGroup"]. See [Allowed Scopes](https://github.com/Azure/autorest/tree/main/docs/extensions#allowed-scopes). | | `type` | `readonly` | `string` | The type of resource that is being referred to. For example Microsoft.Network/virtualNetworks or Microsoft.Network/virtualNetworks/subnets. See Example Types for more examples. | diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/FinalOperationLink.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/FinalOperationLink.md index 33fdc46b9f..c58cdc3e4e 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/FinalOperationLink.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/FinalOperationLink.md @@ -14,5 +14,5 @@ For long-running operations, the resource link to the final result | Property | Type | Description | Inherited from | | :------ | :------ | :------ | :------ | | `kind` | `"finalOperationLink"` | - | - | -| `responseModel` | `Model` \| `IntrinsicType` | The TypeSpec type that is returned by following a link or calling a lined operation | [`LogicalOperationStep`](LogicalOperationStep.md).`responseModel` | +| `responseModel` | `IntrinsicType` \| `Model` | The TypeSpec type that is returned by following a link or calling a lined operation | [`LogicalOperationStep`](LogicalOperationStep.md).`responseModel` | | `target` | [`OperationLink`](OperationLink.md) | if a link must be followed to get the result after polling completes, contains information about how to get the uri from the STatusMonitor | - | diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/FinalOperationReference.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/FinalOperationReference.md index 44be548e96..842584e0ec 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/FinalOperationReference.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/FinalOperationReference.md @@ -14,5 +14,5 @@ For long-running operations, the operation link to the final result | Property | Type | Description | Inherited from | | :------ | :------ | :------ | :------ | | `kind` | `"finalOperationReference"` | - | - | -| `responseModel` | `Model` \| `IntrinsicType` | The TypeSpec type that is returned by following a link or calling a lined operation | [`LogicalOperationStep`](LogicalOperationStep.md).`responseModel` | +| `responseModel` | `IntrinsicType` \| `Model` | The TypeSpec type that is returned by following a link or calling a lined operation | [`LogicalOperationStep`](LogicalOperationStep.md).`responseModel` | | `target` | [`OperationReference`](OperationReference.md) | if another operation must be called to get the result after polling completes, contains information about how to call this operation | - | diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/LogicalOperationStep.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/LogicalOperationStep.md index 65267539af..1ff80fa7f7 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/LogicalOperationStep.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/LogicalOperationStep.md @@ -21,4 +21,4 @@ A step in a logical operation that involves multiple calls | Property | Type | Description | | :------ | :------ | :------ | -| `responseModel` | `Model` \| `IntrinsicType` | The TypeSpec type that is returned by following a link or calling a lined operation | +| `responseModel` | `IntrinsicType` \| `Model` | The TypeSpec type that is returned by following a link or calling a lined operation | diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/LroMetadata.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/LroMetadata.md index ed92630b16..95dcc89ed6 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/LroMetadata.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/LroMetadata.md @@ -12,7 +12,7 @@ For standard Lro Patterns, only the 'logicalResult' and 'finalStateVia' will be | :------ | :------ | :------ | | `envelopeResult` | `Model` | The TypeSpec type of the object that contains the final result | | `finalEnvelopeResult?` | `Model` \| `"void"` | The TypeSpec type of the object that contains the 'finalResult'. | -| `finalResult?` | `Model` \| `"void"` | The model representing important data returned on a success - clients will want to return this model. If undefined,
then clients would want to return nothing. | +| `finalResult?` | `Model` \| `"void"` |

The model representing important data returned on a success - clients will want to return this model. If undefined,

then clients would want to return nothing.

| | `finalResultPath?` | `string` | The path to the field in the 'finalEnvelopeResult' that contains the 'finalResult'. | | `finalStateVia` | [`FinalStateValue`](../enumerations/FinalStateValue.md) | An enumeration summarizing how a poller should reach a terminal state | | `finalStep?` | [`FinalOperationStep`](../type-aliases/FinalOperationStep.md) | If another operation call is required after polling ends to get the results of the operation, a link to that 'final' operation | @@ -20,4 +20,4 @@ For standard Lro Patterns, only the 'logicalResult' and 'finalStateVia' will be | `logicalResult` | `Model` | The model representing important data returned on a success - clients will want to return this model | | `operation` | `Operation` | The operation that was processed | | `pollingInfo` | [`PollingOperationStep`](PollingOperationStep.md) | Specific information about how to process the status monitor, including the location of status, success, and error fields, and the terminal states for polling | -| `statusMonitorStep?` | [`NextOperationLink`](NextOperationLink.md) \| [`NextOperationReference`](NextOperationReference.md) | Specific information on how to reach the StatusMonitor, this is either instructions for constructing a call to the status monitor operation \{NextOperationReference\} ,
or the response property containing the url that points to the Statue Monitor \{NextOperationLink\} | +| `statusMonitorStep?` | [`NextOperationLink`](NextOperationLink.md) \| [`NextOperationReference`](NextOperationReference.md) | Specific information on how to reach the StatusMonitor, this is either instructions for constructing a call to the status monitor operation {NextOperationReference} , or the response property containing the url that points to the Statue Monitor {NextOperationLink} | diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/PagedResultMetadata.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/PagedResultMetadata.md index 70581b3b8b..c11d46764a 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/PagedResultMetadata.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/PagedResultMetadata.md @@ -7,11 +7,11 @@ title: "[I] PagedResultMetadata" | Property | Type | Description | | :------ | :------ | :------ | -| ~~`itemsPath?`~~ | `string` | **Deprecated**
use itemsSegments | +| ~~`itemsPath?`~~ | `string` |

**Deprecated**

use itemsSegments

| | `itemsProperty?` | `ModelProperty` | - | | `itemsSegments?` | `string`[] | Path to the items property. | | `modelType` | `Model` | - | | `nextLinkOperation?` | `Operation` | - | -| ~~`nextLinkPath?`~~ | `string` | **Deprecated**
use nextLinkSegments | +| ~~`nextLinkPath?`~~ | `string` |

**Deprecated**

use nextLinkSegments

| | `nextLinkProperty?` | `ModelProperty` | - | | `nextLinkSegments?` | `string`[] | Path to the next link property. | diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/PollingLocationBase.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/PollingLocationBase.md index b11fef2ff3..d75a39c8b9 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/PollingLocationBase.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/PollingLocationBase.md @@ -13,7 +13,7 @@ The abstract type for polling control information | Property | Type | Description | | :------ | :------ | :------ | -| `finalResult?` | `Model` \| `IntrinsicType` | The type of the final result after polling completes | +| `finalResult?` | `IntrinsicType` \| `Model` | The type of the final result after polling completes | | `kind` | `StatusMonitor` | The kind of polling being done | -| `pollingModel?` | `Model` \| `IntrinsicType` | The type of the poller | +| `pollingModel?` | `IntrinsicType` \| `Model` | The type of the poller | | `target` | `ModelProperty` | The model property containing the polling link | diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/PollingSuccessNoResult.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/PollingSuccessNoResult.md index 3b88f78269..e255f88950 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/PollingSuccessNoResult.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/PollingSuccessNoResult.md @@ -15,5 +15,5 @@ the operation has no logical final result when polling completes. | Property | Type | Description | Inherited from | | :------ | :------ | :------ | :------ | | `kind` | `"pollingSuccessNoResult"` | - | - | -| `responseModel` | `Model` \| `IntrinsicType` | The TypeSpec type that is returned by following a link or calling a lined operation | [`LogicalOperationStep`](LogicalOperationStep.md).`responseModel` | +| `responseModel` | `IntrinsicType` \| `Model` | The TypeSpec type that is returned by following a link or calling a lined operation | [`LogicalOperationStep`](LogicalOperationStep.md).`responseModel` | | `target` | `null` | There is no target | - | diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/StatusMonitorPollingLocationInfo.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/StatusMonitorPollingLocationInfo.md index 0410874840..05b3d3a397 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/StatusMonitorPollingLocationInfo.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/interfaces/StatusMonitorPollingLocationInfo.md @@ -13,8 +13,8 @@ Collected data for status monitor polling links | Property | Type | Description | Overrides | Inherited from | | :------ | :------ | :------ | :------ | :------ | -| `finalResult?` | `Model` \| `IntrinsicType` | The type of the final result after polling completes | [`PollingLocationBase`](PollingLocationBase.md).`finalResult` | [`PollingLocationBase`](PollingLocationBase.md).`finalResult` | +| `finalResult?` | `IntrinsicType` \| `Model` | The type of the final result after polling completes | [`PollingLocationBase`](PollingLocationBase.md).`finalResult` | [`PollingLocationBase`](PollingLocationBase.md).`finalResult` | | `info` | `StatusMonitorMetadata` | The status monitor detailed data for control of polling. | - | - | | `kind` | `StatusMonitor` | The kind of status monitor | [`PollingLocationBase`](PollingLocationBase.md).`kind` | [`PollingLocationBase`](PollingLocationBase.md).`kind` | -| `pollingModel?` | `Model` \| `IntrinsicType` | The type of the poller | [`PollingLocationBase`](PollingLocationBase.md).`pollingModel` | [`PollingLocationBase`](PollingLocationBase.md).`pollingModel` | +| `pollingModel?` | `IntrinsicType` \| `Model` | The type of the poller | [`PollingLocationBase`](PollingLocationBase.md).`pollingModel` | [`PollingLocationBase`](PollingLocationBase.md).`pollingModel` | | `target` | `ModelProperty` | The model property containing the polling link | [`PollingLocationBase`](PollingLocationBase.md).`target` | [`PollingLocationBase`](PollingLocationBase.md).`target` | diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/variables/$lib.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/variables/$lib.md index e077b7f255..d06ba9de1e 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/variables/$lib.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/variables/$lib.md @@ -4,80 +4,84 @@ title: "[V] $lib" --- ```ts -const $lib: TypeSpecLibrary, never>; +const $lib: TypeSpecLibrary, never>; ``` ## Type declaration | Member | Type | Value | | :------ | :------ | :------ | -| `bad-record-type` | `Object` | - | -| `bad-record-type.extendUnknown` | `CallableMessage`<[`string`, `string`, `string`, `string`]\> | - | -| `bad-record-type.recordWithProperties` | `CallableMessage`<[`string`, `string`, `string`]\> | - | -| `client-request-id-trait-missing` | `Object` | - | -| `client-request-id-trait-missing.default` | `CallableMessage`<[]\> | - | -| `conditional-requests-trait-missing` | `Object` | - | -| `conditional-requests-trait-missing.default` | `CallableMessage`<[]\> | - | -| `expected-success-response` | `Object` | - | +| `bad-record-type` | `object` | ... | +| `bad-record-type.extendUnknown` | `CallableMessage`<[`string`, `string`, `string`, `string`]\> | ... | +| `bad-record-type.recordWithProperties` | `CallableMessage`<[`string`, `string`, `string`]\> | ... | +| `client-request-id-trait-missing` | `object` | ... | +| `client-request-id-trait-missing.default` | `CallableMessage`<[]\> | ... | +| `conditional-requests-trait-missing` | `object` | ... | +| `conditional-requests-trait-missing.default` | `CallableMessage`<[]\> | ... | +| `expected-success-response` | `object` | ... | | `expected-success-response.default` | `string` | "The operation must have a success response" | -| `expected-trait-diagnostic-missing` | `Object` | - | -| `expected-trait-diagnostic-missing.default` | `string` | - | -| `expected-trait-missing` | `Object` | - | -| `expected-trait-missing.default` | `CallableMessage`<[`string`, `string`]\> | - | -| `invalid-final-operation` | `Object` | - | +| `expected-trait-diagnostic-missing` | `object` | ... | +| `expected-trait-diagnostic-missing.default` | `string` | ... | +| `expected-trait-missing` | `object` | ... | +| `expected-trait-missing.default` | `CallableMessage`<[`string`, `string`]\> | ... | +| `invalid-final-operation` | `object` | ... | | `invalid-final-operation.default` | `string` | "The operation linked in the '@finalOperation' decorator must have a 200 response that includes a model." | -| `invalid-parameter` | `Object` | - | -| `invalid-parameter.default` | `CallableMessage`<[`string`, `string`]\> | - | -| `invalid-resource-type` | `Object` | - | -| `invalid-resource-type.missingKey` | `CallableMessage`<[`string`]\> | - | -| `invalid-resource-type.missingSegment` | `CallableMessage`<[`string`]\> | - | -| `invalid-trait-context` | `Object` | - | +| `invalid-final-state` | `object` | ... | +| `invalid-final-state.badValue` | `CallableMessage`<[`string`]\> | ... | +| `invalid-final-state.noHeader` | `CallableMessage`<[`string`]\> | ... | +| `invalid-final-state.notPut` | `string` | "The final state value 'original-uri' can only be used in http PUT operations" | +| `invalid-parameter` | `object` | ... | +| `invalid-parameter.default` | `CallableMessage`<[`string`, `string`]\> | ... | +| `invalid-resource-type` | `object` | ... | +| `invalid-resource-type.missingKey` | `CallableMessage`<[`string`]\> | ... | +| `invalid-resource-type.missingSegment` | `CallableMessage`<[`string`]\> | ... | +| `invalid-trait-context` | `object` | ... | | `invalid-trait-context.default` | `string` | "The trait context can only be an enum member, union of enum members, or \`unknown\`." | -| `invalid-trait-property-count` | `Object` | - | -| `invalid-trait-property-count.default` | `CallableMessage`<[`string`]\> | - | -| `invalid-trait-property-type` | `Object` | - | -| `invalid-trait-property-type.default` | `CallableMessage`<[`string`, `string`]\> | - | -| `lro-polling-data-missing-from-operation-response` | `Object` | - | +| `invalid-trait-property-count` | `object` | ... | +| `invalid-trait-property-count.default` | `CallableMessage`<[`string`]\> | ... | +| `invalid-trait-property-type` | `object` | ... | +| `invalid-trait-property-type.default` | `CallableMessage`<[`string`, `string`]\> | ... | +| `lro-polling-data-missing-from-operation-response` | `object` | ... | | `lro-polling-data-missing-from-operation-response.default` | `string` | "At least one operation response must contain a field marked with \`@lroStatus\`" | -| `lro-status-missing` | `Object` | - | -| `lro-status-missing.default` | `CallableMessage`<[`string`]\> | - | -| `lro-status-monitor-invalid-result-property` | `Object` | - | -| `lro-status-monitor-invalid-result-property.default` | `CallableMessage`<[`string`, `string`]\> | - | -| `lro-status-property-invalid-type` | `Object` | - | +| `lro-status-missing` | `object` | ... | +| `lro-status-missing.default` | `CallableMessage`<[`string`]\> | ... | +| `lro-status-monitor-invalid-result-property` | `object` | ... | +| `lro-status-monitor-invalid-result-property.default` | `CallableMessage`<[`string`, `string`]\> | ... | +| `lro-status-property-invalid-type` | `object` | ... | | `lro-status-property-invalid-type.default` | `string` | "Property type must be a union of strings or an enum." | -| `lro-status-union-non-string` | `Object` | - | -| `lro-status-union-non-string.default` | `CallableMessage`<[`string`]\> | - | -| `no-object` | `Object` | - | +| `lro-status-union-non-string` | `object` | ... | +| `lro-status-union-non-string.default` | `CallableMessage`<[`string`]\> | ... | +| `no-object` | `object` | ... | | `no-object.default` | `string` | "Don't use 'object'.\n - If you want an object with any properties, use \`Record\`\n - If you meant anything, use \`unknown\`." | -| `operation-link-parameter-invalid` | `Object` | - | +| `operation-link-parameter-invalid` | `object` | ... | | `operation-link-parameter-invalid.default` | `string` | "Parameters must be of template type RequestParameter or ResponseProperty." | -| `operation-link-parameter-invalid-target` | `Object` | - | -| `operation-link-parameter-invalid-target.default` | `CallableMessage`<[`string`]\> | - | -| `polling-operation-no-lro-failure` | `Object` | - | +| `operation-link-parameter-invalid-target` | `object` | ... | +| `operation-link-parameter-invalid-target.default` | `CallableMessage`<[`string`]\> | ... | +| `polling-operation-no-lro-failure` | `object` | ... | | `polling-operation-no-lro-failure.default` | `string` | "The status monitor returned from the polling operation must have a status property, with a known status value the indicates failure. This known value may be named 'Failed' or marked with the '@lroFailed' decorator." | -| `polling-operation-no-lro-success` | `Object` | - | +| `polling-operation-no-lro-success` | `object` | ... | | `polling-operation-no-lro-success.default` | `string` | "The status monitor returned from the polling operation must have a status property, with a known status value the indicates successful completion. This known value may be named 'Succeeded' or marked with the '@lroSucceeded' decorator." | -| `polling-operation-no-ref-or-link` | `Object` | - | +| `polling-operation-no-ref-or-link` | `object` | ... | | `polling-operation-no-ref-or-link.default` | `string` | "An operation decorated with '@pollingOperation' must either return a response with an 'Operation-Location' header that will contain a runtime link to the polling operation, or specify parameters and return type properties to map into the polling operation parameters. A map into polling operation parameters can be created using the '@pollingOperationParameter' decorator" | -| `polling-operation-no-status-monitor` | `Object` | - | +| `polling-operation-no-status-monitor` | `object` | ... | | `polling-operation-no-status-monitor.default` | `string` | "The operation linked in @pollingOperation must return a valid status monitor. The status monitor model must contain a 'status' property, or a property decorated with '@lroStatus'. The status field must be of Enum or Union type and contain terminal status values for success and failure." | -| `polling-operation-return-model` | `Object` | - | +| `polling-operation-return-model` | `object` | ... | | `polling-operation-return-model.default` | `string` | "An operation annotated with @pollingOperation must return a model or union of model." | -| `repeatable-requests-trait-missing` | `Object` | - | -| `repeatable-requests-trait-missing.default` | `CallableMessage`<[]\> | - | -| `request-parameter-invalid` | `Object` | - | -| `request-parameter-invalid.default` | `CallableMessage`<[`string`]\> | - | -| `response-property-invalid` | `Object` | - | -| `response-property-invalid.default` | `CallableMessage`<[`string`]\> | - | -| `rpc-operation-needs-route` | `Object` | - | +| `repeatable-requests-trait-missing` | `object` | ... | +| `repeatable-requests-trait-missing.default` | `CallableMessage`<[]\> | ... | +| `request-parameter-invalid` | `object` | ... | +| `request-parameter-invalid.default` | `CallableMessage`<[`string`]\> | ... | +| `response-property-invalid` | `object` | ... | +| `response-property-invalid.default` | `CallableMessage`<[`string`]\> | ... | +| `rpc-operation-needs-route` | `object` | ... | | `rpc-operation-needs-route.default` | `string` | "The operation needs a @route" | -| `trait-property-without-location` | `Object` | - | -| `trait-property-without-location.default` | `CallableMessage`<[`string`, `string`]\> | - | -| `union-enums-circular` | `Object` | - | -| `union-enums-circular.default` | `string` | - | -| `union-enums-invalid-kind` | `Object` | - | -| `union-enums-invalid-kind.default` | `CallableMessage`<[`string`]\> | - | -| `union-enums-multiple-kind` | `Object` | - | -| `union-enums-multiple-kind.default` | `CallableMessage`<[`string`]\> | - | -| `verb-conflict` | `Object` | - | -| `verb-conflict.default` | `CallableMessage`<[`string`, `string`, `string`]\> | - | +| `trait-property-without-location` | `object` | ... | +| `trait-property-without-location.default` | `CallableMessage`<[`string`, `string`]\> | ... | +| `union-enums-circular` | `object` | ... | +| `union-enums-circular.default` | `string` | ... | +| `union-enums-invalid-kind` | `object` | ... | +| `union-enums-invalid-kind.default` | `CallableMessage`<[`string`]\> | ... | +| `union-enums-multiple-kind` | `object` | ... | +| `union-enums-multiple-kind.default` | `CallableMessage`<[`string`]\> | ... | +| `verb-conflict` | `object` | ... | +| `verb-conflict.default` | `CallableMessage`<[`string`, `string`, `string`]\> | ... | diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/variables/preventRestLibraryInterfaces.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/variables/preventRestLibraryInterfaces.md index 9e03d17f54..e859b0c53d 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/variables/preventRestLibraryInterfaces.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/variables/preventRestLibraryInterfaces.md @@ -4,5 +4,5 @@ title: "[V] preventRestLibraryInterfaces" --- ```ts -const preventRestLibraryInterfaces: LinterRuleDefinition<"no-rest-library-interfaces", Object>; +const preventRestLibraryInterfaces: LinterRuleDefinition<"no-rest-library-interfaces", object>; ``` diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/variables/useStandardOperations.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/variables/useStandardOperations.md index c00185a2af..d7b4d21eb1 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/variables/useStandardOperations.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/js-api/variables/useStandardOperations.md @@ -4,5 +4,5 @@ title: "[V] useStandardOperations" --- ```ts -const useStandardOperations: LinterRuleDefinition<"use-standard-operations", Object>; +const useStandardOperations: LinterRuleDefinition<"use-standard-operations", object>; ``` diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/linter.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/linter.md index 65ab133690..26dcc26d18 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/linter.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/reference/linter.md @@ -33,14 +33,12 @@ Available ruleSets: | `@azure-tools/typespec-azure-core/byos` | Use the BYOS pattern recommended for Azure Services. | | `@azure-tools/typespec-azure-core/casing-style` | Ensure proper casing style. | | `@azure-tools/typespec-azure-core/composition-over-inheritance` | Check that if a model is used in an operation and has derived models that it has a discriminator or recommend to use composition via spread or `is`. | -| `@azure-tools/typespec-azure-core/use-extensible-enum` | Enums should be extensible. | | `@azure-tools/typespec-azure-core/known-encoding` | Check for supported encodings. | | `@azure-tools/typespec-azure-core/long-running-polling-operation-required` | Long-running operations should have a linked polling operation. | | [`@azure-tools/typespec-azure-core/no-closed-literal-union`](/libraries/azure-core/rules/no-closed-literal-union.md) | Unions of literals should include the base scalar type to mark them as open enum. | | [`@azure-tools/typespec-azure-core/no-enum`](/libraries/azure-core/rules/no-enum.md) | Azure services should not use enums. | | `@azure-tools/typespec-azure-core/no-error-status-codes` | Recommend using the error response defined by Azure REST API guidelines. | | `@azure-tools/typespec-azure-core/no-explicit-routes-resource-ops` | The @route decorator should not be used on standard resource operation signatures. | -| `@azure-tools/typespec-azure-core/no-fixed-enum-discriminator` | Discriminator shouldn't be a fixed enum. | | [`@azure-tools/typespec-azure-core/non-breaking-versioning`](/libraries/azure-core/rules/non-breaking-versioning.md) | Check that only backward compatible versioning change are done to a service. | | [`@azure-tools/typespec-azure-core/no-generic-numeric`](/libraries/azure-core/rules/no-generic-numeric.md) | Don't use generic types. Use more specific types instead. | | `@azure-tools/typespec-azure-core/no-nullable` | Use `?` for optional properties. | @@ -62,3 +60,4 @@ Available ruleSets: | `@azure-tools/typespec-azure-core/spread-discriminated-model` | Check a model with a discriminator has not been used in composition. | | `@azure-tools/typespec-azure-core/use-standard-names` | Use recommended names for operations. | | `@azure-tools/typespec-azure-core/use-standard-operations` | Operations should be defined using a signature from the Azure.Core namespace. | +| [`@azure-tools/typespec-azure-core/no-string-discriminator`](/libraries/azure-core/rules/no-string-discriminator.md) | Azure services discriminated models should define the discriminated property as an extensible union. | diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-core/rules/no-string-discriminator.md b/packages/website/versioned_docs/version-latest/libraries/azure-core/rules/no-string-discriminator.md new file mode 100644 index 0000000000..067963df7c --- /dev/null +++ b/packages/website/versioned_docs/version-latest/libraries/azure-core/rules/no-string-discriminator.md @@ -0,0 +1,61 @@ +--- +title: "no-string-discriminator" +--- + +```text title="Full name" +@azure-tools/typespec-azure-core/no-string-discriminator +``` + +Azure services favor using an extensible union to define the discriminator property. This allow the service to add new discriminated models without being breaking. + +#### ❌ Incorrect + +- Missing explicit property + +```tsp +@discriminator("kind") +model Pet { + name: string; +} +``` + +- Property is a string + +```tsp +@discriminator("kind") +model Pet { + kind: string; + name: string; +} +``` + +- Property is a closed enum + +```tsp +@discriminator("kind") +model Pet { + kind: PetKind; + name: string; +} +enum PetKind { + cat, + dog, +} +``` + +#### ✅ Correct + +- Property is a closed enum + +```tsp +@discriminator("kind") +model Pet { + kind: PetKind; + name: string; +} +union PetKind { + cat: "cat", + dog: "dog", + string, +} +``` diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/$about.md b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/$about.md index 308075b720..61bb46e671 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/$about.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/$about.md @@ -4,7 +4,7 @@ title: "[F] $about" --- ```ts -$about( +function $about( context, target, options): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/$browse.md b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/$browse.md index 7f9b07bfe1..b11470238b 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/$browse.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/$browse.md @@ -4,7 +4,7 @@ title: "[F] $browse" --- ```ts -$browse( +function $browse( context, target, options): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/$displayName.md b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/$displayName.md index eadca91a33..27eb7a271c 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/$displayName.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/$displayName.md @@ -4,7 +4,7 @@ title: "[F] $displayName" --- ```ts -$displayName( +function $displayName( context, target, name): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/$marketplaceOffer.md b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/$marketplaceOffer.md index eee09357a0..79c1a45dd0 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/$marketplaceOffer.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/$marketplaceOffer.md @@ -4,7 +4,7 @@ title: "[F] $marketplaceOffer" --- ```ts -$marketplaceOffer( +function $marketplaceOffer( context, target, options): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/$onValidate.md b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/$onValidate.md index ea30d67f83..aec25f6544 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/$onValidate.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/$onValidate.md @@ -4,7 +4,7 @@ title: "[F] $onValidate" --- ```ts -$onValidate(program): Promise +function $onValidate(program): Promise ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/$promotion.md b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/$promotion.md index ee9ad32ee4..7059bf8b8d 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/$promotion.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/$promotion.md @@ -4,7 +4,7 @@ title: "[F] $promotion" --- ```ts -$promotion( +function $promotion( context, target, options): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/checkIsArmResource.md b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/checkIsArmResource.md index ea83a17b83..6a97f132f0 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/checkIsArmResource.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/checkIsArmResource.md @@ -4,7 +4,7 @@ title: "[F] checkIsArmResource" --- ```ts -checkIsArmResource( +function checkIsArmResource( program, target, decoratorName): boolean diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/checkIsArmTrackedResource.md b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/checkIsArmTrackedResource.md index dc19613f62..9c60839155 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/checkIsArmTrackedResource.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/checkIsArmTrackedResource.md @@ -4,7 +4,7 @@ title: "[F] checkIsArmTrackedResource" --- ```ts -checkIsArmTrackedResource( +function checkIsArmTrackedResource( program, target, decoratorName): boolean diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/checkIsValidApiVersion.md b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/checkIsValidApiVersion.md index 75a582bf8b..ed6579dae5 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/checkIsValidApiVersion.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/checkIsValidApiVersion.md @@ -4,7 +4,7 @@ title: "[F] checkIsValidApiVersion" --- ```ts -checkIsValidApiVersion( +function checkIsValidApiVersion( program, target, version): boolean diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getAbout.md b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getAbout.md index 854c8d3b02..d275a89299 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getAbout.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getAbout.md @@ -4,7 +4,7 @@ title: "[F] getAbout" --- ```ts -getAbout(program, target): any +function getAbout(program, target): any ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getAboutDisplayNames.md b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getAboutDisplayNames.md index bfdd5c2478..895f9067aa 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getAboutDisplayNames.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getAboutDisplayNames.md @@ -4,7 +4,7 @@ title: "[F] getAboutDisplayNames" --- ```ts -getAboutDisplayNames(program, target): any +function getAboutDisplayNames(program, target): any ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getAboutKeywords.md b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getAboutKeywords.md index 79c6030b92..1ed0e2568d 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getAboutKeywords.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getAboutKeywords.md @@ -4,7 +4,7 @@ title: "[F] getAboutKeywords" --- ```ts -getAboutKeywords(program, target): any +function getAboutKeywords(program, target): any ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getAboutLearnMoreDocs.md b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getAboutLearnMoreDocs.md index 900445f1b5..569df71c1b 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getAboutLearnMoreDocs.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getAboutLearnMoreDocs.md @@ -4,7 +4,7 @@ title: "[F] getAboutLearnMoreDocs" --- ```ts -getAboutLearnMoreDocs(program, target): any +function getAboutLearnMoreDocs(program, target): any ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getBrowse.md b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getBrowse.md index 45ed514b92..60ee153632 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getBrowse.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getBrowse.md @@ -4,7 +4,7 @@ title: "[F] getBrowse" --- ```ts -getBrowse(program, target): any +function getBrowse(program, target): any ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getBrowseArgQuery.md b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getBrowseArgQuery.md index 0223d64f63..319ca119cd 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getBrowseArgQuery.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getBrowseArgQuery.md @@ -4,7 +4,7 @@ title: "[F] getBrowseArgQuery" --- ```ts -getBrowseArgQuery(program, target): any +function getBrowseArgQuery(program, target): any ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getDisplayName.md b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getDisplayName.md index 08c53568d8..f31d04bcb1 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getDisplayName.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getDisplayName.md @@ -4,7 +4,7 @@ title: "[F] getDisplayName" --- ```ts -getDisplayName(program, target): string | undefined +function getDisplayName(program, target): string | undefined ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getMarketplaceOfferId.md b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getMarketplaceOfferId.md index 43e1a22810..21ad2c4089 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getMarketplaceOfferId.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getMarketplaceOfferId.md @@ -4,7 +4,7 @@ title: "[F] getMarketplaceOfferId" --- ```ts -getMarketplaceOfferId(program, target): any +function getMarketplaceOfferId(program, target): any ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getPromotion.md b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getPromotion.md index 1d1531ca48..0ba37a0097 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getPromotion.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/getPromotion.md @@ -4,7 +4,7 @@ title: "[F] getPromotion" --- ```ts -getPromotion(program, target): any +function getPromotion(program, target): any ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/isFileExist.md b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/isFileExist.md index 6c115dfd03..7195bdb291 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/isFileExist.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/functions/isFileExist.md @@ -4,7 +4,7 @@ title: "[F] isFileExist" --- ```ts -isFileExist(host, filePath): Promise +function isFileExist(host, filePath): Promise ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/variables/$lib.md b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/variables/$lib.md index d2d2e38d66..79712b8654 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/variables/$lib.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-portal-core/reference/js-api/variables/$lib.md @@ -4,7 +4,7 @@ title: "[V] $lib" --- ```ts -const $lib: TypeSpecLibrary, +const $lib: TypeSpecLibrary, | "browse" | "about" | "marketplaceOffer" @@ -16,22 +16,22 @@ const $lib: TypeSpecLibrary, | Member | Type | Value | | :------ | :------ | :------ | -| `file-not-found` | `Object` | - | -| `file-not-found.default` | `CallableMessage`<[`string`, `string`, `string`]\> | - | -| `invalid-apiversion` | `Object` | - | -| `invalid-apiversion.promotionVersion` | `CallableMessage`<[`string`]\> | - | -| `invalid-apiversion.serviceVersion` | `CallableMessage`<[`string`]\> | - | -| `invalid-apiversion.versionsList` | `CallableMessage`<[`string`]\> | - | -| `invalid-link` | `Object` | - | -| `invalid-link.default` | `CallableMessage`<[`string`]\> | - | -| `invalid-offer-id` | `Object` | - | -| `invalid-offer-id.marketplaceOfferId` | `"@marketplaceOffer id cannot have a blank space."` | - | -| `invalid-type` | `Object` | - | -| `invalid-type.argQueryFile` | `CallableMessage`<[`string`]\> | - | -| `invalid-type.argQueryString` | `CallableMessage`<[`string`]\> | - | -| `invalid-type.iconSvg` | `CallableMessage`<[`string`]\> | - | -| `not-a-resource` | `Object` | - | -| `not-a-resource.browse` | `"@browse can only be applied to TrackedResource models"` | - | -| `not-a-resource.default` | `CallableMessage`<[`string`]\> | - | -| `too-many-essentials` | `Object` | - | -| `too-many-essentials.default` | `"essentials can be only used 5 times in ModelProperty."` | - | +| `file-not-found` | `object` | ... | +| `file-not-found.default` | `CallableMessage`<[`string`, `string`, `string`]\> | ... | +| `invalid-apiversion` | `object` | ... | +| `invalid-apiversion.promotionVersion` | `CallableMessage`<[`string`]\> | ... | +| `invalid-apiversion.serviceVersion` | `CallableMessage`<[`string`]\> | ... | +| `invalid-apiversion.versionsList` | `CallableMessage`<[`string`]\> | ... | +| `invalid-link` | `object` | ... | +| `invalid-link.default` | `CallableMessage`<[`string`]\> | ... | +| `invalid-offer-id` | `object` | ... | +| `invalid-offer-id.marketplaceOfferId` | `"@marketplaceOffer id cannot have a blank space."` | ... | +| `invalid-type` | `object` | ... | +| `invalid-type.argQueryFile` | `CallableMessage`<[`string`]\> | ... | +| `invalid-type.argQueryString` | `CallableMessage`<[`string`]\> | ... | +| `invalid-type.iconSvg` | `CallableMessage`<[`string`]\> | ... | +| `not-a-resource` | `object` | ... | +| `not-a-resource.browse` | `"@browse can only be applied to TrackedResource models"` | ... | +| `not-a-resource.default` | `CallableMessage`<[`string`]\> | ... | +| `too-many-essentials` | `object` | ... | +| `too-many-essentials.default` | `"essentials can be only used 5 times in ModelProperty."` | ... | diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/data-types.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/data-types.md index 4ff9d9907b..a3d412af29 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/data-types.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/data-types.md @@ -8,20 +8,6 @@ toc_max_heading_level: 3 ## Azure.ResourceManager -### `ApiVersionParameter` {#Azure.ResourceManager.ApiVersionParameter} - -The default api-version parameter type. - -```typespec -model Azure.ResourceManager.ApiVersionParameter -``` - -#### Properties - -| Name | Type | Description | -| ---------- | -------- | ------------------------------------------ | -| apiVersion | `string` | The API version to use for this operation. | - ### `ArmAcceptedLroResponse` {#Azure.ResourceManager.ArmAcceptedLroResponse} ```typespec @@ -65,7 +51,7 @@ model Azure.ResourceManager.ArmAcceptedResponse The standard header for asynchronous operation polling ```typespec -model Azure.ResourceManager.ArmAsyncOperationHeader +model Azure.ResourceManager.ArmAsyncOperationHeader ``` #### Template Parameters @@ -74,6 +60,7 @@ model Azure.ResourceManager.ArmAsyncOperationHeader | ------------- | ------------------------------------------------- | | StatusMonitor | The status monitor type for lro polling | | UrlValue | The value type of the Azure-AsyncOperation header | +| FinalResult | The logical final result of the operation | #### Properties @@ -200,9 +187,9 @@ model Azure.ResourceManager.ArmLocationResource #### Properties -| Name | Type | Description | -| -------- | -------- | ------------------ | -| location | `string` | The location name. | +| Name | Type | Description | +| -------- | -------- | ----------------------------- | +| location | `string` | The name of the Azure region. | ### `ArmLroLocationHeader` {#Azure.ResourceManager.ArmLroLocationHeader} @@ -272,7 +259,7 @@ model Azure.ResourceManager.ArmOperationStatus | startTime? | `utcDateTime` | Operation start time | | endTime? | `utcDateTime` | Operation complete time | | percentComplete? | `float64` | The progress made toward completing the operation | -| error? | [`ErrorDetail`](./data-types.md#Azure.ResourceManager.Foundations.ErrorDetail) | Errors that occurred if the operation ended with Canceled or Failed status | +| error? | [`ErrorDetail`](./data-types.md#Azure.ResourceManager.CommonTypes.ErrorDetail) | Errors that occurred if the operation ended with Canceled or Failed status | ### `ArmResourceCreatedResponse` {#Azure.ResourceManager.ArmResourceCreatedResponse} @@ -351,10 +338,10 @@ model Azure.ResourceManager.ArmResourceUpdatedResponse #### Properties -| Name | Type | Description | -| ---------- | ---------- | --------------------------------------------------- | -| statusCode | `200` | The status code. | -| body | `Resource` | The body type of the operation request or response. | +| Name | Type | Description | +| ---------- | ---------- | ---------------- | +| statusCode | `200` | The status code. | +| body | `Resource` | | ### `ArmResponse` {#Azure.ResourceManager.ArmResponse} @@ -377,23 +364,6 @@ model Azure.ResourceManager.ArmResponse | statusCode | `200` | The status code. | | body | `ResponseBody` | | -### `CustomerManagedKeyEncryption` {#Azure.ResourceManager.CustomerManagedKeyEncryption} - -Customer-managed key encryption properties for the resource. - -```typespec -model Azure.ResourceManager.CustomerManagedKeyEncryption -``` - -#### Properties - -| Name | Type | Description | -| ------------------------------- | -------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| keyEncryptionKeyIdentity? | [`KeyEncryptionKeyIdentity`](./data-types.md#Azure.ResourceManager.KeyEncryptionKeyIdentity) | The type of identity to use. Values can be systemAssignedIdentity, userAssignedIdentity, or delegatedResourceIdentity. | -| userAssignedIdentityResourceId? | `Core.armResourceIdentifier` | User assigned identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity. | -| federatedClientId? | `Core.uuid` | application client identity to use for accessing key encryption key Url in a different tenant. Ex: f83c6b1b-4d34-47e4-bb34-9d83df58b540 | -| delegatedIdentityClientId? | `Core.uuid` | delegated identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity and userAssignedIdentity - internal use only. | - ### `DefaultProvisioningStateProperty` {#Azure.ResourceManager.DefaultProvisioningStateProperty} Standard resource provisioning state model. If you do not have any custom provisioning state, @@ -418,12 +388,13 @@ model FooProperties { | ------------------ | ---------------------------------------------------------------------------------------------- | --------------------------------------- | | provisioningState? | [`ResourceProvisioningState`](./data-types.md#Azure.ResourceManager.ResourceProvisioningState) | The provisioning state of the resource. | -### `Encryption` {#Azure.ResourceManager.Encryption} +### `EncryptionProperty` {#Azure.ResourceManager.EncryptionProperty} Model used only to spread in the `encryption` envelope property for a resource. +All encryption configuration for a resource. ```typespec -model Azure.ResourceManager.Encryption +model Azure.ResourceManager.EncryptionProperty ``` #### Examples @@ -436,25 +407,9 @@ model Foo is TrackedResource { #### Properties -| Name | Type | Description | -| ---------- | ------------------------------------------------------------------------------------------ | -------------------------------------------- | -| encryption | [`EncryptionConfiguration`](./data-types.md#Azure.ResourceManager.EncryptionConfiguration) | All encryption configuration for a resource. | - -### `EncryptionConfiguration` {#Azure.ResourceManager.EncryptionConfiguration} - -All encryption configuration for a resource. - -```typespec -model Azure.ResourceManager.EncryptionConfiguration -``` - -#### Properties - -| Name | Type | Description | -| ----------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| infrastructureEncryption? | [`InfrastructureEncryption`](./data-types.md#Azure.ResourceManager.InfrastructureEncryption) | Indicates if infrastructure encryption is enabled or disabled. | -| customerManagedKeyEncryption? | [`CustomerManagedKeyEncryption`](./data-types.md#Azure.ResourceManager.CustomerManagedKeyEncryption) | All customer-managed key encryption properties for the resource. | -| keyEncryptionKeyUrl? | `string` | key encryption key Url, versioned or unversioned. Ex: https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 or https://contosovault.vault.azure.net/keys/contosokek. | +| Name | Type | Description | +| ---------- | ---------------------------------------------------------------------------- | -------------------------------------------- | +| encryption | [`Encryption`](./data-types.md#Azure.ResourceManager.CommonTypes.Encryption) | All encryption configuration for a resource. | ### `EntityTagProperty` {#Azure.ResourceManager.EntityTagProperty} @@ -479,20 +434,6 @@ model Foo is TrackedResource { | ----- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | eTag? | `string` | If eTag is provided in the response body, it may also be provided as a header per the normal etag convention. Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields. | -### `ErrorResponse` {#Azure.ResourceManager.ErrorResponse} - -The standard Azure Resource Manager error response - -```typespec -model Azure.ResourceManager.ErrorResponse -``` - -#### Properties - -| Name | Type | Description | -| ------ | ------------------------------------------------------------------------------ | ----------------- | -| error? | [`ErrorDetail`](./data-types.md#Azure.ResourceManager.Foundations.ErrorDetail) | The error object. | - ### `ExtendedLocationProperty` {#Azure.ResourceManager.ExtendedLocationProperty} Model representing the standard `extendedLocation` envelope property for a resource. @@ -515,7 +456,7 @@ model Employee is TrackedResource { | Name | Type | Description | | ----------------- | ---------------------------------------------------------------------------------------- | ----------- | -| extendedLocation? | [`ExtendedLocation`](./data-types.md#Azure.ResourceManager.Foundations.ExtendedLocation) | | +| extendedLocation? | [`ExtendedLocation`](./data-types.md#Azure.ResourceManager.CommonTypes.ExtendedLocation) | | ### `ExtensionResource` {#Azure.ResourceManager.ExtensionResource} @@ -572,20 +513,6 @@ model Azure.ResourceManager.LocationParameter | -------- | -------- | ------------------ | | location | `string` | The location name. | -### `LocationResourceParameter` {#Azure.ResourceManager.LocationResourceParameter} - -The default location parameter type. - -```typespec -model Azure.ResourceManager.LocationResourceParameter -``` - -#### Properties - -| Name | Type | Description | -| -------- | -------- | ------------------ | -| location | `string` | The location name. | - ### `ManagedByProperty` {#Azure.ResourceManager.ManagedByProperty} Model representing the standard `managedBy` envelope property for a resource. @@ -632,7 +559,7 @@ model Foo is TrackedResource { | Name | Type | Description | | --------- | ---------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | -| identity? | [`ManagedServiceIdentity`](./data-types.md#Azure.ResourceManager.Foundations.ManagedServiceIdentity) | The managed service identities assigned to this resource. | +| identity? | [`ManagedServiceIdentity`](./data-types.md#Azure.ResourceManager.CommonTypes.ManagedServiceIdentity) | The managed service identities assigned to this resource. | ### `ManagedSystemAssignedIdentityProperty` {#Azure.ResourceManager.ManagedSystemAssignedIdentityProperty} @@ -657,7 +584,7 @@ model Foo is TrackedResource { | Name | Type | Description | | --------- | ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------- | -| identity? | [`SystemAssignedServiceIdentity`](./data-types.md#Azure.ResourceManager.Foundations.SystemAssignedServiceIdentity) | The managed service identities assigned to this resource. | +| identity? | [`SystemAssignedServiceIdentity`](./data-types.md#Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentity) | The managed service identities assigned to this resource. | ### `ParentKeysOf` {#Azure.ResourceManager.ParentKeysOf} @@ -677,163 +604,6 @@ model Azure.ResourceManager.ParentKeysOf None -### `PrivateEndpoint` {#Azure.ResourceManager.PrivateEndpoint} - -The private endpoint resource - -```typespec -model Azure.ResourceManager.PrivateEndpoint -``` - -#### Properties - -| Name | Type | Description | -| ---- | ---------------------------- | -------------------------------------------- | -| id? | `Core.armResourceIdentifier` | The resource identifier for private endpoint | - -### `PrivateEndpointConnection` {#Azure.ResourceManager.PrivateEndpointConnection} - -The private endpoint connection resource - -```typespec -model Azure.ResourceManager.PrivateEndpointConnection -``` - -#### Properties - -| Name | Type | Description | -| ----------- | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------ | -| properties? | [`PrivateEndpointConnectionProperties`](./data-types.md#Azure.ResourceManager.PrivateEndpointConnectionProperties) | The private endpoint connection properties | - -### `PrivateEndpointConnectionParameter` {#Azure.ResourceManager.PrivateEndpointConnectionParameter} - -The name of the private endpoint connection associated with the Azure resource. - -```typespec -model Azure.ResourceManager.PrivateEndpointConnectionParameter -``` - -#### Template Parameters - -| Name | Description | -| ------- | ----------------------------------------------------------------------------------------------- | -| Segment | The resource type name for private endpoint connections (default is privateEndpointConnections) | - -#### Properties - -| Name | Type | Description | -| ---- | -------- | ------------------------------------------------------------------------------- | -| name | `string` | The name of the private endpoint connection associated with the Azure resource. | - -### `PrivateEndpointConnectionProperties` {#Azure.ResourceManager.PrivateEndpointConnectionProperties} - -Properties of he private endpoint connection resource - -```typespec -model Azure.ResourceManager.PrivateEndpointConnectionProperties -``` - -#### Properties - -| Name | Type | Description | -| --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | -| groupIds? | `string[]` | The group identifiers for the private endpoint resource | -| privateEndpoint? | [`PrivateEndpoint`](./data-types.md#Azure.ResourceManager.PrivateEndpoint) | The private endpoint resource | -| privateLinkServiceConnectionState | [`PrivateLinkServiceConnectionState`](./data-types.md#Azure.ResourceManager.PrivateLinkServiceConnectionState) | A collection of information about the state of the connection between service consumer and provider. | -| provisioningState? | [`PrivateEndpointConnectionProvisioningState`](./data-types.md#Azure.ResourceManager.PrivateEndpointConnectionProvisioningState) | The provisioning state of the private endpoint connection resource. | - -### `PrivateEndpointConnectionResourceListResult` {#Azure.ResourceManager.PrivateEndpointConnectionResourceListResult} - -List of private endpoint connections associated with the specified resource. - -```typespec -model Azure.ResourceManager.PrivateEndpointConnectionResourceListResult -``` - -#### Properties - -| Name | Type | Description | -| ------ | --------------------------------------------- | ------------------------------------- | -| value? | `ResourceManager.PrivateEndpointConnection[]` | Array of private endpoint connections | - -### `PrivateLinkResource` {#Azure.ResourceManager.PrivateLinkResource} - -```typespec -model Azure.ResourceManager.PrivateLinkResource -``` - -#### Properties - -| Name | Type | Description | -| ----------- | ------------------------------------------------------------------------------------------------------ | ---------------------------------------- | -| properties? | [`PrivateLinkResourceProperties`](./data-types.md#Azure.ResourceManager.PrivateLinkResourceProperties) | Properties of the private link resource. | - -### `PrivateLinkResourceListResult` {#Azure.ResourceManager.PrivateLinkResourceListResult} - -A list of private link resources. - -```typespec -model Azure.ResourceManager.PrivateLinkResourceListResult -``` - -#### Properties - -| Name | Type | Description | -| ------ | --------------------------------------- | ------------------------------- | -| value? | `ResourceManager.PrivateLinkResource[]` | Array of private link resources | - -### `PrivateLinkResourceParameter` {#Azure.ResourceManager.PrivateLinkResourceParameter} - -The name of the private link associated with the Azure resource. - -```typespec -model Azure.ResourceManager.PrivateLinkResourceParameter -``` - -#### Template Parameters - -| Name | Description | -| ------- | -------------------------------------------------------------------------- | -| Segment | The resource type name for private links (default is privateLinkResources) | - -#### Properties - -| Name | Type | Description | -| ---- | -------- | ---------------------------------------------------------------- | -| name | `string` | The name of the private link associated with the Azure resource. | - -### `PrivateLinkResourceProperties` {#Azure.ResourceManager.PrivateLinkResourceProperties} - -Properties of a private link resource. - -```typespec -model Azure.ResourceManager.PrivateLinkResourceProperties -``` - -#### Properties - -| Name | Type | Description | -| ------------------ | ---------- | ----------------------------------------------------- | -| groupId? | `string` | The private link resource group id. | -| requiredMembers? | `string[]` | The private link resource required member names. | -| requiredZoneNames? | `string[]` | The private link resource private link DNS zone name. | - -### `PrivateLinkServiceConnectionState` {#Azure.ResourceManager.PrivateLinkServiceConnectionState} - -A collection of information about the state of the connection between service consumer and provider. - -```typespec -model Azure.ResourceManager.PrivateLinkServiceConnectionState -``` - -#### Properties - -| Name | Type | Description | -| ---------------- | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | -| status? | [`PrivateEndpointServiceConnectionStatus`](./data-types.md#Azure.ResourceManager.PrivateEndpointServiceConnectionStatus) | Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. | -| description? | `string` | The reason for approval/rejection of the connection. | -| actionsRequired? | `string` | A message indicating if changes on the service provider require any updates on the consumer. | - ### `ProviderNamespace` {#Azure.ResourceManager.ProviderNamespace} Model describing the provider namespace. @@ -887,23 +657,9 @@ model Azure.ResourceManager.ResourceGroupLocationResource #### Properties -| Name | Type | Description | -| -------- | -------- | ------------------ | -| location | `string` | The location name. | - -### `ResourceGroupParameter` {#Azure.ResourceManager.ResourceGroupParameter} - -The default resource group parameter type. - -```typespec -model Azure.ResourceManager.ResourceGroupParameter -``` - -#### Properties - -| Name | Type | Description | -| ----------------- | -------- | ------------------------------------------------------------- | -| resourceGroupName | `string` | The name of the resource group. The name is case insensitive. | +| Name | Type | Description | +| -------- | -------- | ----------------------------- | +| location | `string` | The name of the Azure region. | ### `ResourceInstanceParameters` {#Azure.ResourceManager.ResourceInstanceParameters} @@ -967,10 +723,10 @@ model Azure.ResourceManager.ResourceListResult #### Properties -| Name | Type | Description | -| --------- | -------------------------------- | ---------------------------------- | -| value | `Array` | The {name} items on this page | -| nextLink? | `TypeSpec.Rest.ResourceLocation` | The link to the next page of items | +| Name | Type | Description | +| --------- | -------------------------------- | ----------- | +| value | `Array` | | +| nextLink? | `TypeSpec.Rest.ResourceLocation` | | ### `ResourceNameParameter` {#Azure.ResourceManager.ResourceNameParameter} @@ -978,24 +734,27 @@ Spread this model into ARM resource models to specify resource name parameter fo is specified, the resource name will be properly camel cased and pluralized for `@key` and `@segment` automatically. You can also apply explicit override with `KeyName` and `SegmentName` template parameters. +For additional decorators such as + ```typespec -model Azure.ResourceManager.ResourceNameParameter +model Azure.ResourceManager.ResourceNameParameter ``` #### Template Parameters -| Name | Description | -| ----------- | ----------------------------------------------------------------- | -| Resource | The ARM resource this name parameter is applying to. | -| KeyName | Override default key name of the resource. | -| SegmentName | Override default segment name of the resource. | -| NamePattern | The RegEx pattern of the name. Default is `^[a-zA-Z0-9-]{3,24}$`. | +| Name | Description | +| ----------- | -------------------------------------------------------------------------------------------------------- | +| Resource | The ARM resource this name parameter is applying to. | +| KeyName | Override default key name of the resource. | +| SegmentName | Override default segment name of the resource. | +| NamePattern | The RegEx pattern of the name. Default is `^[a-zA-Z0-9-]{3,24}$`. | +| Type | The type of the name property. Default type is string. However you can pass an union with string values. | #### Properties -| Name | Type | Description | -| ---- | -------- | ----------- | -| name | `string` | | +| Name | Type | Description | +| ---- | ------ | ----------- | +| name | `Type` | | ### `ResourceParentParameters` {#Azure.ResourceManager.ResourceParentParameters} @@ -1041,7 +800,7 @@ model Foo is TrackedResource { | Name | Type | Description | | ----- | ---------------------------------------------------------------- | ----------------------------- | -| plan? | [`Plan`](./data-types.md#Azure.ResourceManager.Foundations.Plan) | Details of the resource plan. | +| plan? | [`Plan`](./data-types.md#Azure.ResourceManager.CommonTypes.Plan) | Details of the resource plan. | ### `ResourceSkuProperty` {#Azure.ResourceManager.ResourceSkuProperty} @@ -1065,7 +824,7 @@ model Foo is TrackedResource { | Name | Type | Description | | ---- | -------------------------------------------------------------- | ------------------------------------------------------- | -| sku? | [`Sku`](./data-types.md#Azure.ResourceManager.Foundations.Sku) | The SKU (Stock Keeping Unit) assigned to this resource. | +| sku? | [`Sku`](./data-types.md#Azure.ResourceManager.CommonTypes.Sku) | The SKU (Stock Keeping Unit) assigned to this resource. | ### `ResourceUriParameter` {#Azure.ResourceManager.ResourceUriParameter} @@ -1081,20 +840,6 @@ model Azure.ResourceManager.ResourceUriParameter | ----------- | -------- | ---------------------------------------------------------------------- | | resourceUri | `string` | The fully qualified Azure Resource manager identifier of the resource. | -### `SubscriptionIdParameter` {#Azure.ResourceManager.SubscriptionIdParameter} - -The default subscriptionId parameter type. - -```typespec -model Azure.ResourceManager.SubscriptionIdParameter -``` - -#### Properties - -| Name | Type | Description | -| -------------- | -------- | ---------------------------------- | -| subscriptionId | `string` | The ID of the target subscription. | - ### `SubscriptionLocationResource` {#Azure.ResourceManager.SubscriptionLocationResource} The location resource for subscription-based locations. This can be used as a parent @@ -1106,9 +851,9 @@ model Azure.ResourceManager.SubscriptionLocationResource #### Properties -| Name | Type | Description | -| -------- | -------- | ------------------ | -| location | `string` | The location name. | +| Name | Type | Description | +| -------- | -------- | ----------------------------- | +| location | `string` | The name of the Azure region. | ### `TenantLocationResource` {#Azure.ResourceManager.TenantLocationResource} @@ -1121,9 +866,9 @@ model Azure.ResourceManager.TenantLocationResource #### Properties -| Name | Type | Description | -| -------- | -------- | ------------------ | -| location | `string` | The location name. | +| Name | Type | Description | +| -------- | -------- | ----------------------------- | +| location | `string` | The name of the Azure region. | ### `TrackedResource` {#Azure.ResourceManager.TrackedResource} @@ -1155,38 +900,6 @@ Supported versions of Azure.ResourceManager building blocks. enum Azure.ResourceManager.Versions ``` -### `InfrastructureEncryption` {#Azure.ResourceManager.InfrastructureEncryption} - -(Optional) Discouraged to include in resource definition. Only needed where it is possible to disable platform (AKA infrastructure) encryption. Azure SQL TDE is an example of this. Values are enabled and disabled. - -```typespec -union Azure.ResourceManager.InfrastructureEncryption -``` - -### `KeyEncryptionKeyIdentity` {#Azure.ResourceManager.KeyEncryptionKeyIdentity} - -The type of identity to use. - -```typespec -union Azure.ResourceManager.KeyEncryptionKeyIdentity -``` - -### `PrivateEndpointConnectionProvisioningState` {#Azure.ResourceManager.PrivateEndpointConnectionProvisioningState} - -The provisioning state of the connection - -```typespec -union Azure.ResourceManager.PrivateEndpointConnectionProvisioningState -``` - -### `PrivateEndpointServiceConnectionStatus` {#Azure.ResourceManager.PrivateEndpointServiceConnectionStatus} - -The private endpoint connection status - -```typespec -union Azure.ResourceManager.PrivateEndpointServiceConnectionStatus -``` - ### `ResourceProvisioningState` {#Azure.ResourceManager.ResourceProvisioningState} Standard terminal provisioning state of resource type. You can include in your @@ -1210,52 +923,40 @@ union FooProvisioningState { ## Azure.ResourceManager.CommonTypes -### `Versions` {#Azure.ResourceManager.CommonTypes.Versions} - -The Azure Resource Manager common-types versions. - -```typespec -enum Azure.ResourceManager.CommonTypes.Versions -``` - -## Azure.ResourceManager.Foundations - -### `ArmTagsProperty` {#Azure.ResourceManager.Foundations.ArmTagsProperty} - -Standard type definition for Azure Resource Manager Tags property. +### `ApiVersionParameter` {#Azure.ResourceManager.CommonTypes.ApiVersionParameter} -It is included in the TrackedResource template definition. +The default api-version parameter type. ```typespec -model Azure.ResourceManager.Foundations.ArmTagsProperty +model Azure.ResourceManager.CommonTypes.ApiVersionParameter ``` #### Properties -| Name | Type | Description | -| ----- | ---------------- | -------------- | -| tags? | `Record` | Resource tags. | +| Name | Type | Description | +| ---------- | -------- | ------------------------------------------ | +| apiVersion | `string` | The API version to use for this operation. | -### `AzureEntityResource` {#Azure.ResourceManager.Foundations.AzureEntityResource} +### `AzureEntityResource` {#Azure.ResourceManager.CommonTypes.AzureEntityResource} The resource model definition for an Azure Resource Manager resource with an etag. ```typespec -model Azure.ResourceManager.Foundations.AzureEntityResource +model Azure.ResourceManager.CommonTypes.AzureEntityResource ``` #### Properties -| Name | Type | Description | -| ---- | -------- | -------------- | -| etag | `string` | Resource Etag. | +| Name | Type | Description | +| ----- | -------- | -------------- | +| etag? | `string` | Resource Etag. | -### `CheckNameAvailabilityRequest` {#Azure.ResourceManager.Foundations.CheckNameAvailabilityRequest} +### `CheckNameAvailabilityRequest` {#Azure.ResourceManager.CommonTypes.CheckNameAvailabilityRequest} The check availability request body. ```typespec -model Azure.ResourceManager.Foundations.CheckNameAvailabilityRequest +model Azure.ResourceManager.CommonTypes.CheckNameAvailabilityRequest ``` #### Properties @@ -1265,12 +966,12 @@ model Azure.ResourceManager.Foundations.CheckNameAvailabilityRequest | name? | `string` | The name of the resource for which availability needs to be checked. | | type? | `string` | The resource type. | -### `CheckNameAvailabilityResponse` {#Azure.ResourceManager.Foundations.CheckNameAvailabilityResponse} +### `CheckNameAvailabilityResponse` {#Azure.ResourceManager.CommonTypes.CheckNameAvailabilityResponse} The check availability result. ```typespec -model Azure.ResourceManager.Foundations.CheckNameAvailabilityResponse +model Azure.ResourceManager.CommonTypes.CheckNameAvailabilityResponse ``` #### Properties @@ -1278,39 +979,60 @@ model Azure.ResourceManager.Foundations.CheckNameAvailabilityResponse | Name | Type | Description | | -------------- | -------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | | nameAvailable? | `boolean` | Indicates if the resource name is available. | -| reason? | [`CheckNameAvailabilityReason`](./data-types.md#Azure.ResourceManager.Foundations.CheckNameAvailabilityReason) | The reason why the given name is not available. | +| reason? | [`CheckNameAvailabilityReason`](./data-types.md#Azure.ResourceManager.CommonTypes.CheckNameAvailabilityReason) | The reason why the given name is not available. | | message? | `string` | Detailed reason why the given name is not available. | -### `DefaultBaseParameters` {#Azure.ResourceManager.Foundations.DefaultBaseParameters} +### `CustomerManagedKeyEncryption` {#Azure.ResourceManager.CommonTypes.CustomerManagedKeyEncryption} -Base parameters for a resource. +Customer-managed key encryption properties for the resource. ```typespec -model Azure.ResourceManager.Foundations.DefaultBaseParameters +model Azure.ResourceManager.CommonTypes.CustomerManagedKeyEncryption ``` -#### Template Parameters - -| Name | Description | -| -------- | ------------------------- | -| Resource | The type of the resource. | - #### Properties -| Name | Type | Description | -| ----------------- | -------- | ---------------------------------------------------------------------- | -| apiVersion | `string` | The API version to use for this operation. | -| subscriptionId | `string` | The ID of the target subscription. | -| location | `string` | The location name. | -| resourceGroupName | `string` | The name of the resource group. The name is case insensitive. | -| resourceUri | `string` | The fully qualified Azure Resource manager identifier of the resource. | +| Name | Type | Description | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| keyEncryptionKeyIdentity? | [`KeyEncryptionKeyIdentity`](./data-types.md#Azure.ResourceManager.CommonTypes.KeyEncryptionKeyIdentity) | All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault. | +| keyEncryptionKeyUrl? | `string` | key encryption key Url, versioned or non-versioned. Ex: https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 or https://contosovault.vault.azure.net/keys/contosokek. | -### `ErrorAdditionalInfo` {#Azure.ResourceManager.Foundations.ErrorAdditionalInfo} +### `Encryption` {#Azure.ResourceManager.CommonTypes.Encryption} + +(Optional) Discouraged to include in resource definition. Only needed where it is possible to disable platform (AKA infrastructure) encryption. Azure SQL TDE is an example of this. Values are enabled and disabled. + +```typespec +model Azure.ResourceManager.CommonTypes.Encryption +``` + +#### Properties + +| Name | Type | Description | +| ----------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | +| infrastructureEncryption? | [`InfrastructureEncryption`](./data-types.md#Azure.ResourceManager.CommonTypes.InfrastructureEncryption) | Values are enabled and disabled. | +| customerManagedKeyEncryption? | [`CustomerManagedKeyEncryption`](./data-types.md#Azure.ResourceManager.CommonTypes.CustomerManagedKeyEncryption) | All Customer-managed key encryption properties for the resource. | + +### `EncryptionProperties` {#Azure.ResourceManager.CommonTypes.EncryptionProperties} + +Configuration of key for data encryption + +```typespec +model Azure.ResourceManager.CommonTypes.EncryptionProperties +``` + +#### Properties + +| Name | Type | Description | +| ------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| status? | [`EncryptionStatus`](./data-types.md#Azure.ResourceManager.CommonTypes.EncryptionStatus) | Indicates whether or not the encryption is enabled for container registry. | +| keyVaultProperties? | [`KeyVaultProperties`](./data-types.md#Azure.ResourceManager.CommonTypes.KeyVaultProperties) | Key vault properties. | + +### `ErrorAdditionalInfo` {#Azure.ResourceManager.CommonTypes.ErrorAdditionalInfo} The resource management error additional info. ```typespec -model Azure.ResourceManager.Foundations.ErrorAdditionalInfo +model Azure.ResourceManager.CommonTypes.ErrorAdditionalInfo ``` #### Properties @@ -1320,12 +1042,12 @@ model Azure.ResourceManager.Foundations.ErrorAdditionalInfo | type? | `string` | The additional info type. | | info? | `{}` | The additional info. | -### `ErrorDetail` {#Azure.ResourceManager.Foundations.ErrorDetail} +### `ErrorDetail` {#Azure.ResourceManager.CommonTypes.ErrorDetail} The error detail. ```typespec -model Azure.ResourceManager.Foundations.ErrorDetail +model Azure.ResourceManager.CommonTypes.ErrorDetail ``` #### Properties @@ -1335,15 +1057,29 @@ model Azure.ResourceManager.Foundations.ErrorDetail | code? | `string` | The error code. | | message? | `string` | The error message. | | target? | `string` | The error target. | -| details? | `ResourceManager.Foundations.ErrorDetail[]` | The error details. | -| additionalInfo? | `ResourceManager.Foundations.ErrorAdditionalInfo[]` | The error additional info. | +| details? | `ResourceManager.CommonTypes.ErrorDetail[]` | The error details. | +| additionalInfo? | `ResourceManager.CommonTypes.ErrorAdditionalInfo[]` | The error additional info. | + +### `ErrorResponse` {#Azure.ResourceManager.CommonTypes.ErrorResponse} + +Common error response for all Azure Resource Manager APIs to return error details for failed operations. + +```typespec +model Azure.ResourceManager.CommonTypes.ErrorResponse +``` -### `ExtendedLocation` {#Azure.ResourceManager.Foundations.ExtendedLocation} +#### Properties + +| Name | Type | Description | +| ------ | ------------------------------------------------------------------------------ | ----------------- | +| error? | [`ErrorDetail`](./data-types.md#Azure.ResourceManager.CommonTypes.ErrorDetail) | The error object. | + +### `ExtendedLocation` {#Azure.ResourceManager.CommonTypes.ExtendedLocation} The complex type of the extended location. ```typespec -model Azure.ResourceManager.Foundations.ExtendedLocation +model Azure.ResourceManager.CommonTypes.ExtendedLocation ``` #### Properties @@ -1351,227 +1087,877 @@ model Azure.ResourceManager.Foundations.ExtendedLocation | Name | Type | Description | | ---- | ------------------------------------------------------------------------------------------------ | ---------------------------------- | | name | `string` | The name of the extended location. | -| type | [`ExtendedLocationType`](./data-types.md#Azure.ResourceManager.Foundations.ExtendedLocationType) | The type of the extended location. | +| type | [`ExtendedLocationType`](./data-types.md#Azure.ResourceManager.CommonTypes.ExtendedLocationType) | The type of the extended location. | -### `ExtensionBaseParameters` {#Azure.ResourceManager.Foundations.ExtensionBaseParameters} +### `ExtensionResource` {#Azure.ResourceManager.CommonTypes.ExtensionResource} + +The base extension resource. + +```typespec +model Azure.ResourceManager.CommonTypes.ExtensionResource +``` + +#### Properties + +None + +### `Identity` {#Azure.ResourceManager.CommonTypes.Identity} + +Identity for the resource. + +```typespec +model Azure.ResourceManager.CommonTypes.Identity +``` + +#### Properties + +| Name | Type | Description | +| ------------ | ------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------- | +| principalId? | `Core.uuid` | The principal ID of resource identity. The value must be an UUID. | +| tenantId? | `Core.uuid` | The tenant ID of resource. The value must be an UUID. | +| type? | [`ResourceIdentityType`](./data-types.md#Azure.ResourceManager.CommonTypes.ResourceIdentityType) | The identity type. | + +### `IfMatchHeader` {#Azure.ResourceManager.CommonTypes.IfMatchHeader} + +The default ARM If-Match header type. + +```typespec +model Azure.ResourceManager.CommonTypes.IfMatchHeader +``` + +#### Properties + +| Name | Type | Description | +| ------- | -------- | ----------------------------------------------------- | +| ifMatch | `string` | The If-Match header that makes a request conditional. | + +### `IfNoneMatchHeader` {#Azure.ResourceManager.CommonTypes.IfNoneMatchHeader} + +The default ARM If-Match header type. + +```typespec +model Azure.ResourceManager.CommonTypes.IfNoneMatchHeader +``` + +#### Properties + +| Name | Type | Description | +| ----------- | -------- | ---------------------------------------------------------- | +| ifNoneMatch | `string` | The If-None-Match header that makes a request conditional. | + +### `KeyEncryptionKeyIdentity` {#Azure.ResourceManager.CommonTypes.KeyEncryptionKeyIdentity} + +All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault. + +```typespec +model Azure.ResourceManager.CommonTypes.KeyEncryptionKeyIdentity +``` + +#### Properties + +| Name | Type | Description | +| ------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| identityType? | [`KeyEncryptionKeyIdentityType`](./data-types.md#Azure.ResourceManager.CommonTypes.KeyEncryptionKeyIdentityType) | The type of identity to use. Values can be systemAssignedIdentity, userAssignedIdentity, or delegatedResourceIdentity. | +| userAssignedIdentityResourceId? | `Core.armResourceIdentifier` | User assigned identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity. | +| federatedClientId? | `Core.uuid` | application client identity to use for accessing key encryption key Url in a different tenant. Ex: f83c6b1b-4d34-47e4-bb34-9d83df58b540 | +| delegatedIdentityClientId? | `Core.uuid` | delegated identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity and userAssignedIdentity - internal use only. | + +### `KeyVaultProperties` {#Azure.ResourceManager.CommonTypes.KeyVaultProperties} + +```typespec +model Azure.ResourceManager.CommonTypes.KeyVaultProperties +``` + +#### Properties + +| Name | Type | Description | +| -------------- | -------- | --------------------------------------------------------------------- | +| keyIdentifier? | `string` | Key vault uri to access the encryption key. | +| identity? | `string` | The client ID of the identity which will be used to access key vault. | + +### `LocationData` {#Azure.ResourceManager.CommonTypes.LocationData} + +Metadata pertaining to the geographic location of the resource. + +```typespec +model Azure.ResourceManager.CommonTypes.LocationData +``` + +#### Properties + +| Name | Type | Description | +| ---------------- | -------- | --------------------------------------------------------------- | +| name | `string` | A canonical name for the geographic or physical location. | +| city? | `string` | The city or locality where the resource is located. | +| district? | `string` | The district, state, or province where the resource is located. | +| countryOrRegion? | `string` | The country or region where the resource is located | + +### `LocationParameter` {#Azure.ResourceManager.CommonTypes.LocationParameter} + +The default location parameter type. + +```typespec +model Azure.ResourceManager.CommonTypes.LocationParameter +``` + +#### Properties + +| Name | Type | Description | +| -------- | -------- | ------------------------- | +| location | `string` | The name of Azure region. | + +### `LocationResourceParameter` {#Azure.ResourceManager.CommonTypes.LocationResourceParameter} + +The default location parameter type. + +```typespec +model Azure.ResourceManager.CommonTypes.LocationResourceParameter +``` + +#### Properties + +| Name | Type | Description | +| -------- | -------- | ----------------------------- | +| location | `string` | The name of the Azure region. | + +### `ManagedServiceIdentity` {#Azure.ResourceManager.CommonTypes.ManagedServiceIdentity} + +Managed service identity (system assigned and/or user assigned identities) + +```typespec +model Azure.ResourceManager.CommonTypes.ManagedServiceIdentity +``` + +#### Properties + +| Name | Type | Description | +| ----------------------- | ------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------- | +| principalId? | `Core.uuid` | The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity. | +| tenantId? | `Core.uuid` | The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity. | +| type | [`ManagedServiceIdentityType`](./data-types.md#Azure.ResourceManager.CommonTypes.ManagedServiceIdentityType) | The type of managed identity assigned to this resource. | +| userAssignedIdentities? | `Record \| null` | The identities assigned to this resource by the user. | + +### `ManagementGroupNameParameter` {#Azure.ResourceManager.CommonTypes.ManagementGroupNameParameter} + +The default ManagementGroupName parameter type. + +```typespec +model Azure.ResourceManager.CommonTypes.ManagementGroupNameParameter +``` + +#### Properties + +| Name | Type | Description | +| ------------------- | -------- | --------------------------------------------------------------- | +| managementGroupName | `string` | The name of the management group. The name is case insensitive. | + +### `Operation` {#Azure.ResourceManager.CommonTypes.Operation} + +Details of a REST API operation, returned from the Resource Provider Operations API + +```typespec +model Azure.ResourceManager.CommonTypes.Operation +``` + +#### Properties + +| Name | Type | Description | +| ------------- | ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| name? | `string` | The name of the operation, as per Resource-Based Access Control (RBAC). Examples: "Microsoft.Compute/virtualMachines/write", "Microsoft.Compute/virtualMachines/capture/action" | +| isDataAction? | `boolean` | Whether the operation applies to data-plane. This is "true" for data-plane operations and "false" for Azure Resource Manager/control-plane operations. | +| display? | [`OperationDisplay`](./data-types.md#Azure.ResourceManager.CommonTypes.OperationDisplay) | Localized display information for this particular operation. | +| origin? | [`Origin`](./data-types.md#Azure.ResourceManager.CommonTypes.Origin) | The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system" | +| actionType? | [`ActionType`](./data-types.md#Azure.ResourceManager.CommonTypes.ActionType) | Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. | + +### `OperationDisplay` {#Azure.ResourceManager.CommonTypes.OperationDisplay} + +Localized display information for and operation. + +```typespec +model Azure.ResourceManager.CommonTypes.OperationDisplay +``` + +#### Properties + +| Name | Type | Description | +| ------------ | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | +| provider? | `string` | The localized friendly form of the resource provider name, e.g. "Microsoft Monitoring Insights" or "Microsoft Compute". | +| resource? | `string` | The localized friendly name of the resource type related to this operation. E.g. "Virtual Machines" or "Job Schedule Collections". | +| operation? | `string` | The concise, localized friendly name for the operation; suitable for dropdowns. E.g. "Create or Update Virtual Machine", "Restart Virtual Machine". | +| description? | `string` | The short, localized friendly description of the operation; suitable for tool tips and detailed views. | + +### `OperationIdParameter` {#Azure.ResourceManager.CommonTypes.OperationIdParameter} + +The default operationId parameter type. + +```typespec +model Azure.ResourceManager.CommonTypes.OperationIdParameter +``` + +#### Properties + +| Name | Type | Description | +| ----------- | -------- | ------------------------------------- | +| operationId | `string` | The ID of an ongoing async operation. | + +### `OperationListResult` {#Azure.ResourceManager.CommonTypes.OperationListResult} + +A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to get the next set of results. + +```typespec +model Azure.ResourceManager.CommonTypes.OperationListResult +``` + +#### Properties + +| Name | Type | Description | +| --------- | ----------------------------------------- | ---------------------------------- | +| value | `ResourceManager.CommonTypes.Operation[]` | The Operation items on this page | +| nextLink? | `TypeSpec.Rest.ResourceLocation` | The link to the next page of items | + +### `OperationStatusResult` {#Azure.ResourceManager.CommonTypes.OperationStatusResult} + +The current status of an async operation. + +```typespec +model Azure.ResourceManager.CommonTypes.OperationStatusResult +``` + +#### Properties + +| Name | Type | Description | +| ---------------- | ------------------------------------------------------------------------------ | ------------------------------------------- | +| id? | `string` | Fully qualified ID for the async operation. | +| name? | `string` | Name of the async operation. | +| status | `string` | Operation status. | +| percentComplete? | `float64` | Percent of the operation that is complete. | +| startTime? | `utcDateTime` | The start time of the operation. | +| endTime? | `utcDateTime` | The end time of the operation. | +| operations? | `ResourceManager.CommonTypes.OperationStatusResult[]` | The operations list. | +| error? | [`ErrorDetail`](./data-types.md#Azure.ResourceManager.CommonTypes.ErrorDetail) | If present, details of the operation error. | + +### `Plan` {#Azure.ResourceManager.CommonTypes.Plan} + +Plan for the resource. + +```typespec +model Azure.ResourceManager.CommonTypes.Plan +``` + +#### Properties + +| Name | Type | Description | +| -------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| name | `string` | A user defined name of the 3rd Party Artifact that is being procured. | +| publisher | `string` | The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic | +| product | `string` | The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. | +| promotionCode? | `string` | A publisher provided promotion code as provisioned in Data Market for the said product/artifact. | +| version? | `string` | The version of the desired product/artifact. | + +### `PrivateEndpoint` {#Azure.ResourceManager.CommonTypes.PrivateEndpoint} + +The Private Endpoint resource. + +```typespec +model Azure.ResourceManager.CommonTypes.PrivateEndpoint +``` + +#### Properties + +| Name | Type | Description | +| ---- | ---------------------------- | -------------------------------------------- | +| id? | `Core.armResourceIdentifier` | The resource identifier for private endpoint | + +### `PrivateEndpointConnection` {#Azure.ResourceManager.CommonTypes.PrivateEndpointConnection} + +The private endpoint connection resource + +```typespec +model Azure.ResourceManager.CommonTypes.PrivateEndpointConnection +``` + +#### Properties + +| Name | Type | Description | +| ----------- | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------ | +| properties? | [`PrivateEndpointConnectionProperties`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProperties) | The private endpoint connection properties | + +### `PrivateEndpointConnectionListResult` {#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionListResult} + +List of private endpoint connections associated with the specified resource. + +```typespec +model Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionListResult +``` + +#### Properties + +| Name | Type | Description | +| ------ | --------------------------------------------------------- | -------------------------------------- | +| value? | `ResourceManager.CommonTypes.PrivateEndpointConnection[]` | Array of private endpoint connections. | + +### `PrivateEndpointConnectionParameter` {#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionParameter} + +The name of the private endpoint connection associated with the Azure resource. + +```typespec +model Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionParameter +``` + +#### Template Parameters + +| Name | Description | +| ------- | ----------------------------------------------------------------------------------------------- | +| Segment | The resource type name for private endpoint connections (default is privateEndpointConnections) | + +#### Properties + +| Name | Type | Description | +| ---- | -------- | ------------------------------------------------------------------------------- | +| name | `string` | The name of the private endpoint connection associated with the Azure resource. | + +### `PrivateEndpointConnectionProperties` {#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProperties} + +Properties of the private endpoint connection. + +```typespec +model Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProperties +``` + +#### Properties + +| Name | Type | Description | +| --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| groupIds? | `string[]` | The group ids for the private endpoint resource. | +| privateEndpoint? | [`PrivateEndpoint`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateEndpoint) | The private endpoint resource. | +| privateLinkServiceConnectionState | [`PrivateLinkServiceConnectionState`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateLinkServiceConnectionState) | A collection of information about the state of the connection between service consumer and provider. | +| provisioningState? | [`PrivateEndpointConnectionProvisioningState`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProvisioningState) | The provisioning state of the private endpoint connection resource. | + +### `PrivateLinkResource` {#Azure.ResourceManager.CommonTypes.PrivateLinkResource} + +A private link resource. + +```typespec +model Azure.ResourceManager.CommonTypes.PrivateLinkResource +``` + +#### Properties + +| Name | Type | Description | +| ----------- | ------------------------------------------------------------------------------------------------------------------ | -------------------- | +| properties? | [`PrivateLinkResourceProperties`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateLinkResourceProperties) | Resource properties. | + +### `PrivateLinkResourceListResult` {#Azure.ResourceManager.CommonTypes.PrivateLinkResourceListResult} + +A list of private link resources. + +```typespec +model Azure.ResourceManager.CommonTypes.PrivateLinkResourceListResult +``` + +#### Properties + +| Name | Type | Description | +| ------ | --------------------------------------------------- | ------------------------------- | +| value? | `ResourceManager.CommonTypes.PrivateLinkResource[]` | Array of private link resources | + +### `PrivateLinkResourceParameter` {#Azure.ResourceManager.CommonTypes.PrivateLinkResourceParameter} + +The name of the private link associated with the Azure resource. + +```typespec +model Azure.ResourceManager.CommonTypes.PrivateLinkResourceParameter +``` + +#### Template Parameters + +| Name | Description | +| ------- | -------------------------------------------------------------------------- | +| Segment | The resource type name for private links (default is privateLinkResources) | + +#### Properties + +| Name | Type | Description | +| ---- | -------- | ---------------------------------------------------------------- | +| name | `string` | The name of the private link associated with the Azure resource. | + +### `PrivateLinkResourceProperties` {#Azure.ResourceManager.CommonTypes.PrivateLinkResourceProperties} + +Properties of a private link resource. + +```typespec +model Azure.ResourceManager.CommonTypes.PrivateLinkResourceProperties +``` + +#### Properties + +| Name | Type | Description | +| ------------------ | ---------- | ----------------------------------------------------- | +| groupId? | `string` | The private link resource group id. | +| requiredMembers? | `string[]` | The private link resource required member names. | +| requiredZoneNames? | `string[]` | The private link resource private link DNS zone name. | + +### `PrivateLinkServiceConnectionState` {#Azure.ResourceManager.CommonTypes.PrivateLinkServiceConnectionState} + +A collection of information about the state of the connection between service consumer and provider. + +```typespec +model Azure.ResourceManager.CommonTypes.PrivateLinkServiceConnectionState +``` + +#### Properties + +| Name | Type | Description | +| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| status? | [`PrivateEndpointServiceConnectionStatus`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateEndpointServiceConnectionStatus) | Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. | +| description? | `string` | The reason for approval/rejection of the connection. | +| actionsRequired? | `string` | A message indicating if changes on the service provider require any updates on the consumer. | + +### `ProxyResource` {#Azure.ResourceManager.CommonTypes.ProxyResource} + +The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location + +```typespec +model Azure.ResourceManager.CommonTypes.ProxyResource +``` + +#### Properties + +None + +### `Resource` {#Azure.ResourceManager.CommonTypes.Resource} + +Common fields that are returned in the response for all Azure Resource Manager resources + +```typespec +model Azure.ResourceManager.CommonTypes.Resource +``` + +#### Properties + +| Name | Type | Description | +| ----------- | ---------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id? | `Core.armResourceIdentifier` | Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} | +| name? | `string` | The name of the resource | +| type? | `string` | The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" | +| systemData? | [`SystemData`](./data-types.md#Azure.ResourceManager.CommonTypes.SystemData) | Azure Resource Manager metadata containing createdBy and modifiedBy information. | + +### `ResourceGroupNameParameter` {#Azure.ResourceManager.CommonTypes.ResourceGroupNameParameter} + +The default resource group parameter type. + +```typespec +model Azure.ResourceManager.CommonTypes.ResourceGroupNameParameter +``` + +#### Properties + +| Name | Type | Description | +| ----------------- | -------- | ------------------------------------------------------------- | +| resourceGroupName | `string` | The name of the resource group. The name is case insensitive. | + +### `ResourceModelWithAllowedPropertySet` {#Azure.ResourceManager.CommonTypes.ResourceModelWithAllowedPropertySet} + +The resource model definition containing the full set of allowed properties for a resource. Except properties bag, there cannot be a top level property outside of this set. + +```typespec +model Azure.ResourceManager.CommonTypes.ResourceModelWithAllowedPropertySet +``` + +#### Properties + +| Name | Type | Description | +| ---------- | ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| managedBy? | `string` | The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource.
If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource. | +| kind? | `string` | Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type.
If supported, the resource provider must validate and persist this value. | +| eTag? | `string` | The etag field is _not_ required. If it is provided in the response body, it must also be provided as a header per the normal etag convention.
Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19),
If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields. | +| identity? | [`Identity`](./data-types.md#Azure.ResourceManager.CommonTypes.Identity) | | +| sku? | [`Sku`](./data-types.md#Azure.ResourceManager.CommonTypes.Sku) | | +| plan? | [`Plan`](./data-types.md#Azure.ResourceManager.CommonTypes.Plan) | | + +### `ScopeParameter` {#Azure.ResourceManager.CommonTypes.ScopeParameter} + +The default Scope parameter type. + +```typespec +model Azure.ResourceManager.CommonTypes.ScopeParameter +``` + +#### Properties + +| Name | Type | Description | +| ----- | -------- | ---------------------------------------------- | +| scope | `string` | The scope at which the operation is performed. | + +### `Sku` {#Azure.ResourceManager.CommonTypes.Sku} + +The resource model definition representing SKU + +```typespec +model Azure.ResourceManager.CommonTypes.Sku +``` + +#### Properties + +| Name | Type | Description | +| --------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| name | `string` | The name of the SKU. Ex - P3. It is typically a letter+number code | +| tier? | [`SkuTier`](./data-types.md#Azure.ResourceManager.CommonTypes.SkuTier) | This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT. | +| size? | `string` | The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. | +| family? | `string` | If the service has different generations of hardware, for the same SKU, then that can be captured here. | +| capacity? | `int32` | If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted. | + +### `SubscriptionIdParameter` {#Azure.ResourceManager.CommonTypes.SubscriptionIdParameter} + +The default subscriptionId parameter type. + +```typespec +model Azure.ResourceManager.CommonTypes.SubscriptionIdParameter +``` + +#### Properties + +| Name | Type | Description | +| -------------- | ----------- | ------------------------------------------------------------- | +| subscriptionId | `Core.uuid` | The ID of the target subscription. The value must be an UUID. | + +### `SystemAssignedServiceIdentity` {#Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentity} + +Managed service identity (either system assigned, or none) + +```typespec +model Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentity +``` + +#### Properties + +| Name | Type | Description | +| ------------ | -------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| principalId? | `Core.uuid` | The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity. | +| tenantId? | `Core.uuid` | The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity. | +| type | [`SystemAssignedServiceIdentityType`](./data-types.md#Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentityType) | The type of managed identity assigned to this resource. | + +### `SystemData` {#Azure.ResourceManager.CommonTypes.SystemData} + +Metadata pertaining to creation and last modification of the resource. + +```typespec +model Azure.ResourceManager.CommonTypes.SystemData +``` + +#### Properties + +| Name | Type | Description | +| ------------------- | ---------------------------------------------------------------------------------- | ----------------------------------------------------- | +| createdBy? | `string` | The identity that created the resource. | +| createdByType? | [`createdByType`](./data-types.md#Azure.ResourceManager.CommonTypes.createdByType) | The type of identity that created the resource. | +| createdAt? | `utcDateTime` | The timestamp of resource creation (UTC). | +| lastModifiedBy? | `string` | The identity that last modified the resource. | +| lastModifiedByType? | [`createdByType`](./data-types.md#Azure.ResourceManager.CommonTypes.createdByType) | The type of identity that last modified the resource. | +| lastModifiedAt? | `utcDateTime` | The timestamp of resource last modification (UTC) | + +### `TenantIdParameter` {#Azure.ResourceManager.CommonTypes.TenantIdParameter} + +The default ManagementGroupName parameter type. + +```typespec +model Azure.ResourceManager.CommonTypes.TenantIdParameter +``` + +#### Properties + +| Name | Type | Description | +| -------- | ----------- | ------------------------------------------------------------------------------------------------ | +| tenantId | `Core.uuid` | The Azure tenant ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000) | + +### `TrackedResource` {#Azure.ResourceManager.CommonTypes.TrackedResource} + +The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location' + +```typespec +model Azure.ResourceManager.CommonTypes.TrackedResource +``` + +#### Properties + +| Name | Type | Description | +| -------- | ---------------- | ----------------------------------------- | +| tags? | `Record` | Resource tags. | +| location | `string` | The geo-location where the resource lives | + +### `UserAssignedIdentities` {#Azure.ResourceManager.CommonTypes.UserAssignedIdentities} + +The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests. + +```typespec +model Azure.ResourceManager.CommonTypes.UserAssignedIdentities +``` + +#### Properties + +| Name | Type | Description | +| ---- | ------------------------------------------------------------------------------------------------ | --------------------- | +| | [`UserAssignedIdentity`](./data-types.md#Azure.ResourceManager.CommonTypes.UserAssignedIdentity) | Additional properties | + +### `UserAssignedIdentity` {#Azure.ResourceManager.CommonTypes.UserAssignedIdentity} + +User assigned identity properties + +```typespec +model Azure.ResourceManager.CommonTypes.UserAssignedIdentity +``` + +#### Properties + +| Name | Type | Description | +| ------------ | ----------- | ------------------------------------------ | +| principalId? | `Core.uuid` | The principal ID of the assigned identity. | +| clientId? | `Core.uuid` | The client ID of the assigned identity. | + +### `ResourceHome` {#Azure.ResourceManager.CommonTypes.ResourceHome} + +An internal enum to indicate the resource support for various path types + +```typespec +enum Azure.ResourceManager.CommonTypes.ResourceHome +``` + +### `Versions` {#Azure.ResourceManager.CommonTypes.Versions} + +The Azure Resource Manager common-types versions. + +```typespec +enum Azure.ResourceManager.CommonTypes.Versions +``` + +### `ActionType` {#Azure.ResourceManager.CommonTypes.ActionType} -The static parameters for an extension resource +Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. ```typespec -model Azure.ResourceManager.Foundations.ExtensionBaseParameters +union Azure.ResourceManager.CommonTypes.ActionType ``` -#### Properties +### `CheckNameAvailabilityReason` {#Azure.ResourceManager.CommonTypes.CheckNameAvailabilityReason} -| Name | Type | Description | -| ----------- | -------- | ---------------------------------------------------------------------- | -| apiVersion | `string` | The API version to use for this operation. | -| resourceUri | `string` | The fully qualified Azure Resource manager identifier of the resource. | +Possible reasons for a name not being available. -### `ExtensionResource` {#Azure.ResourceManager.Foundations.ExtensionResource} +```typespec +union Azure.ResourceManager.CommonTypes.CheckNameAvailabilityReason +``` -The base extension resource. +### `createdByType` {#Azure.ResourceManager.CommonTypes.createdByType} + +The kind of entity that created the resource. ```typespec -model Azure.ResourceManager.Foundations.ExtensionResource +union Azure.ResourceManager.CommonTypes.createdByType ``` -#### Properties +### `EncryptionStatus` {#Azure.ResourceManager.CommonTypes.EncryptionStatus} -None +Indicates whether or not the encryption is enabled for container registry. -### `ExtensionScope` {#Azure.ResourceManager.Foundations.ExtensionScope} +```typespec +union Azure.ResourceManager.CommonTypes.EncryptionStatus +``` -Parameter model for listing an extension resource +### `ExtendedLocationType` {#Azure.ResourceManager.CommonTypes.ExtendedLocationType} + +The supported ExtendedLocation types. ```typespec -model Azure.ResourceManager.Foundations.ExtensionScope +union Azure.ResourceManager.CommonTypes.ExtendedLocationType ``` -#### Template Parameters - -| Name | Description | -| -------- | ------------------------- | -| Resource | The type of the resource. | +### `InfrastructureEncryption` {#Azure.ResourceManager.CommonTypes.InfrastructureEncryption} -#### Properties +(Optional) Discouraged to include in resource definition. Only needed where it is possible to disable platform (AKA infrastructure) encryption. Azure SQL TDE is an example of this. Values are enabled and disabled. -| Name | Type | Description | -| ----------- | -------------------------------- | ---------------------------------------------------------------------- | -| apiVersion | `string` | The API version to use for this operation. | -| resourceUri | `string` | The fully qualified Azure Resource manager identifier of the resource. | -| provider | `"Microsoft.ThisWillBeReplaced"` | The provider namespace for the resource. | +```typespec +union Azure.ResourceManager.CommonTypes.InfrastructureEncryption +``` -### `LocationBaseParameters` {#Azure.ResourceManager.Foundations.LocationBaseParameters} +### `KeyEncryptionKeyIdentityType` {#Azure.ResourceManager.CommonTypes.KeyEncryptionKeyIdentityType} -The static parameters for a location-based resource +The type of identity to use. ```typespec -model Azure.ResourceManager.Foundations.LocationBaseParameters +union Azure.ResourceManager.CommonTypes.KeyEncryptionKeyIdentityType ``` -#### Properties +### `ManagedServiceIdentityType` {#Azure.ResourceManager.CommonTypes.ManagedServiceIdentityType} -| Name | Type | Description | -| -------------- | -------- | ------------------------------------------ | -| apiVersion | `string` | The API version to use for this operation. | -| subscriptionId | `string` | The ID of the target subscription. | -| location | `string` | The location name. | +Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). -### `LocationScope` {#Azure.ResourceManager.Foundations.LocationScope} +```typespec +union Azure.ResourceManager.CommonTypes.ManagedServiceIdentityType +``` -Parameter model for listing a resource at the location scope +### `Origin` {#Azure.ResourceManager.CommonTypes.Origin} + +The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system" ```typespec -model Azure.ResourceManager.Foundations.LocationScope +union Azure.ResourceManager.CommonTypes.Origin ``` -#### Template Parameters +### `PrivateEndpointConnectionProvisioningState` {#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProvisioningState} -| Name | Description | -| -------- | ------------------------- | -| Resource | The type of the resource. | +The current provisioning state. -#### Properties +```typespec +union Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProvisioningState +``` + +### `PrivateEndpointServiceConnectionStatus` {#Azure.ResourceManager.CommonTypes.PrivateEndpointServiceConnectionStatus} -| Name | Type | Description | -| -------------- | -------------------------------- | ------------------------------------------ | -| apiVersion | `string` | The API version to use for this operation. | -| subscriptionId | `string` | The ID of the target subscription. | -| location | `string` | The location name. | -| provider | `"Microsoft.ThisWillBeReplaced"` | The provider namespace for the resource. | +The private endpoint connection status. -### `ManagedServiceIdentity` {#Azure.ResourceManager.Foundations.ManagedServiceIdentity} +```typespec +union Azure.ResourceManager.CommonTypes.PrivateEndpointServiceConnectionStatus +``` -The properties of the managed service identities assigned to this resource. +### `ResourceIdentityType` {#Azure.ResourceManager.CommonTypes.ResourceIdentityType} ```typespec -model Azure.ResourceManager.Foundations.ManagedServiceIdentity +union Azure.ResourceManager.CommonTypes.ResourceIdentityType ``` -#### Properties +### `SkuTier` {#Azure.ResourceManager.CommonTypes.SkuTier} + +This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT. -| Name | Type | Description | -| ----------------------- | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------- | -| tenantId? | `string` | The Active Directory tenant id of the principal. | -| principalId? | `string` | The active directory identifier of this principal. | -| type | [`ManagedServiceIdentityType`](./data-types.md#Azure.ResourceManager.Foundations.ManagedServiceIdentityType) | The type of managed identity assigned to this resource. | -| userAssignedIdentities? | [`UserAssignedIdentities`](./data-types.md#Azure.ResourceManager.Foundations.UserAssignedIdentities) | The identities assigned to this resource by the user. | +```typespec +union Azure.ResourceManager.CommonTypes.SkuTier +``` -### `Operation` {#Azure.ResourceManager.Foundations.Operation} +### `SystemAssignedServiceIdentityType` {#Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentityType} -Details of a REST API operation, returned from the Resource Provider Operations API +Type of managed service identity (either system assigned, or none). ```typespec -model Azure.ResourceManager.Foundations.Operation +union Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentityType ``` -#### Properties +## Azure.ResourceManager.Foundations -| Name | Type | Description | -| ------------- | ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| name? | `string` | The name of the operation, as per Resource-Based Access Control (RBAC). Examples: "Microsoft.Compute/virtualMachines/write", "Microsoft.Compute/virtualMachines/capture/action" | -| isDataAction? | `boolean` | Whether the operation applies to data-plane. This is "true" for data-plane operations and "false" for Azure Resource Manager/control-plane operations. | -| display? | [`OperationDisplay`](./data-types.md#Azure.ResourceManager.Foundations.OperationDisplay) | Localized display information for this particular operation. | -| origin? | [`Origin`](./data-types.md#Azure.ResourceManager.Foundations.Origin) | The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system" | -| actionType? | [`ActionType`](./data-types.md#Azure.ResourceManager.Foundations.ActionType) | Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. | +### `ArmTagsProperty` {#Azure.ResourceManager.Foundations.ArmTagsProperty} -### `OperationDisplay` {#Azure.ResourceManager.Foundations.OperationDisplay} +Standard type definition for Azure Resource Manager Tags property. -Localized display information for and operation. +It is included in the TrackedResource template definition. +The Azure Resource Manager Resource tags. ```typespec -model Azure.ResourceManager.Foundations.OperationDisplay +model Azure.ResourceManager.Foundations.ArmTagsProperty ``` #### Properties -| Name | Type | Description | -| ------------ | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | -| provider? | `string` | The localized friendly form of the resource provider name, e.g. "Microsoft Monitoring Insights" or "Microsoft Compute". | -| resource? | `string` | The localized friendly name of the resource type related to this operation. E.g. "Virtual Machines" or "Job Schedule Collections". | -| operation? | `string` | The concise, localized friendly name for the operation; suitable for dropdowns. E.g. "Create or Update Virtual Machine", "Restart Virtual Machine". | -| description? | `string` | The short, localized friendly description of the operation; suitable for tool tips and detailed views. | +| Name | Type | Description | +| ----- | ---------------- | -------------- | +| tags? | `Record` | Resource tags. | -### `OperationIdParameter` {#Azure.ResourceManager.Foundations.OperationIdParameter} +### `DefaultBaseParameters` {#Azure.ResourceManager.Foundations.DefaultBaseParameters} -The default operationId parameter type. +Base parameters for a resource. ```typespec -model Azure.ResourceManager.Foundations.OperationIdParameter +model Azure.ResourceManager.Foundations.DefaultBaseParameters ``` +#### Template Parameters + +| Name | Description | +| -------- | ------------------------- | +| Resource | The type of the resource. | + #### Properties -| Name | Type | Description | -| ----------- | -------- | ------------------------------------- | -| operationId | `string` | The ID of an ongoing async operation. | +| Name | Type | Description | +| ----------------- | ----------- | ---------------------------------------------------------------------- | +| apiVersion | `string` | The API version to use for this operation. | +| subscriptionId | `Core.uuid` | The ID of the target subscription. The value must be an UUID. | +| location | `string` | The location name. | +| resourceGroupName | `string` | The name of the resource group. The name is case insensitive. | +| resourceUri | `string` | The fully qualified Azure Resource manager identifier of the resource. | -### `OperationListResult` {#Azure.ResourceManager.Foundations.OperationListResult} +### `ExtensionBaseParameters` {#Azure.ResourceManager.Foundations.ExtensionBaseParameters} -A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to get the next set of results. +The static parameters for an extension resource ```typespec -model Azure.ResourceManager.Foundations.OperationListResult +model Azure.ResourceManager.Foundations.ExtensionBaseParameters ``` #### Properties -| Name | Type | Description | -| --------- | ----------------------------------------- | ---------------------------------- | -| value | `ResourceManager.Foundations.Operation[]` | The Operation items on this page | -| nextLink? | `TypeSpec.Rest.ResourceLocation` | The link to the next page of items | +| Name | Type | Description | +| ----------- | -------- | ---------------------------------------------------------------------- | +| apiVersion | `string` | The API version to use for this operation. | +| resourceUri | `string` | The fully qualified Azure Resource manager identifier of the resource. | -### `OperationStatusResult` {#Azure.ResourceManager.Foundations.OperationStatusResult} +### `ExtensionScope` {#Azure.ResourceManager.Foundations.ExtensionScope} -The current status of an async operation. +Parameter model for listing an extension resource ```typespec -model Azure.ResourceManager.Foundations.OperationStatusResult +model Azure.ResourceManager.Foundations.ExtensionScope ``` +#### Template Parameters + +| Name | Description | +| -------- | ------------------------- | +| Resource | The type of the resource. | + #### Properties -| Name | Type | Description | -| ---------------- | ------------------------------------------------------------------------------ | ------------------------------------------- | -| id? | `string` | Fully qualified ID for the async operation. | -| name? | `string` | Name of the async operation. | -| status | `string` | Operation status. | -| percentComplete? | `int32` | Percent of the operation that is complete. | -| startTime? | `utcDateTime` | The start time of the operation. | -| endTime? | `utcDateTime` | The end time of the operation. | -| operations | `ResourceManager.Foundations.OperationStatusResult[]` | The operations list. | -| error? | [`ErrorDetail`](./data-types.md#Azure.ResourceManager.Foundations.ErrorDetail) | If present, details of the operation error. | +| Name | Type | Description | +| ----------- | -------------------------------- | ---------------------------------------------------------------------- | +| apiVersion | `string` | The API version to use for this operation. | +| resourceUri | `string` | The fully qualified Azure Resource manager identifier of the resource. | +| provider | `"Microsoft.ThisWillBeReplaced"` | | -### `Plan` {#Azure.ResourceManager.Foundations.Plan} +### `LocationBaseParameters` {#Azure.ResourceManager.Foundations.LocationBaseParameters} -Details of the resource plan. +The static parameters for a location-based resource ```typespec -model Azure.ResourceManager.Foundations.Plan +model Azure.ResourceManager.Foundations.LocationBaseParameters ``` #### Properties -| Name | Type | Description | -| -------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -| name | `string` | A user defined name of the 3rd Party Artifact that is being procured. | -| publisher | `string` | The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic | -| product | `string` | The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. | -| promotionCode? | `string` | A publisher provided promotion code as provisioned in Data Market for the said product/artifact. | -| version? | `string` | The version of the desired product/artifact. | +| Name | Type | Description | +| -------------- | ----------- | ------------------------------------------------------------- | +| apiVersion | `string` | The API version to use for this operation. | +| subscriptionId | `Core.uuid` | The ID of the target subscription. The value must be an UUID. | +| location | `string` | The location name. | -### `ProxyResource` {#Azure.ResourceManager.Foundations.ProxyResource} +### `LocationScope` {#Azure.ResourceManager.Foundations.LocationScope} -The base proxy resource. +Parameter model for listing a resource at the location scope ```typespec -model Azure.ResourceManager.Foundations.ProxyResource +model Azure.ResourceManager.Foundations.LocationScope ``` +#### Template Parameters + +| Name | Description | +| -------- | ------------------------- | +| Resource | The type of the resource. | + #### Properties -None +| Name | Type | Description | +| -------------- | -------------------------------- | ------------------------------------------------------------- | +| apiVersion | `string` | The API version to use for this operation. | +| subscriptionId | `Core.uuid` | The ID of the target subscription. The value must be an UUID. | +| location | `string` | The location name. | +| provider | `"Microsoft.ThisWillBeReplaced"` | | ### `ProxyResourceUpdateModel` {#Azure.ResourceManager.Foundations.ProxyResourceUpdateModel} @@ -1594,23 +1980,6 @@ model Azure.ResourceManager.Foundations.ProxyResourceUpdateModel` | | -### `Resource` {#Azure.ResourceManager.Foundations.Resource} - -Base model that defines common properties for all Azure Resource Manager resources. - -```typespec -model Azure.ResourceManager.Foundations.Resource -``` - -#### Properties - -| Name | Type | Description | -| ----------- | ---------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| id? | `string` | Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} | -| name? | `string` | The name of the resource | -| type? | `string` | The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" | -| systemData? | [`SystemData`](./data-types.md#Azure.ResourceManager.Foundations.SystemData) | Azure Resource Manager metadata containing createdBy and modifiedBy information. | - ### `ResourceGroupBaseParameters` {#Azure.ResourceManager.Foundations.ResourceGroupBaseParameters} The static parameters for a resource-group based resource @@ -1621,11 +1990,11 @@ model Azure.ResourceManager.Foundations.ResourceGroupBaseParameters #### Properties -| Name | Type | Description | -| ----------------- | -------- | ------------------------------------------------------------- | -| apiVersion | `string` | The API version to use for this operation. | -| subscriptionId | `string` | The ID of the target subscription. | -| resourceGroupName | `string` | The name of the resource group. The name is case insensitive. | +| Name | Type | Description | +| ----------------- | ----------- | ------------------------------------------------------------- | +| apiVersion | `string` | The API version to use for this operation. | +| subscriptionId | `Core.uuid` | The ID of the target subscription. The value must be an UUID. | +| resourceGroupName | `string` | The name of the resource group. The name is case insensitive. | ### `ResourceGroupScope` {#Azure.ResourceManager.Foundations.ResourceGroupScope} @@ -1646,11 +2015,11 @@ model Azure.ResourceManager.Foundations.ResourceGroupScope | Name | Type | Description | | ----------------- | -------------------------------- | ---------------------------------------------------------------------- | | apiVersion | `string` | The API version to use for this operation. | -| subscriptionId | `string` | The ID of the target subscription. | +| subscriptionId | `Core.uuid` | The ID of the target subscription. The value must be an UUID. | | location | `string` | The location name. | | resourceGroupName | `string` | The name of the resource group. The name is case insensitive. | | resourceUri | `string` | The fully qualified Azure Resource manager identifier of the resource. | -| provider | `"Microsoft.ThisWillBeReplaced"` | The provider namespace for the resource. | +| provider | `"Microsoft.ThisWillBeReplaced"` | | ### `ResourceUpdateModel` {#Azure.ResourceManager.Foundations.ResourceUpdateModel} @@ -1694,24 +2063,6 @@ model Azure.ResourceManager.Foundations.ResourceUpdateModelProperties #### Properties -| Name | Type | Description | -| -------------- | -------------------------------- | ------------------------------------------ | -| apiVersion | `string` | The API version to use for this operation. | -| subscriptionId | `string` | The ID of the target subscription. | -| provider | `"Microsoft.ThisWillBeReplaced"` | The provider namespace for the resource. | - -### `SystemAssignedServiceIdentity` {#Azure.ResourceManager.Foundations.SystemAssignedServiceIdentity} - -The properties of the service-assigned identity associated with this resource. - -```typespec -model Azure.ResourceManager.Foundations.SystemAssignedServiceIdentity -``` - -#### Properties - -| Name | Type | Description | -| ------------ | -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | -| tenantId? | `string` | The Active Directory tenant id of the principal. | -| principalId? | `string` | The active directory identifier of this principal. | -| type | [`SystemAssignedServiceIdentityType`](./data-types.md#Azure.ResourceManager.Foundations.SystemAssignedServiceIdentityType) | The type of managed identity assigned to this resource. | - -### `SystemData` {#Azure.ResourceManager.Foundations.SystemData} - -Metadata pertaining to creation and last modification of the resource. - -```typespec -model Azure.ResourceManager.Foundations.SystemData -``` - -#### Properties - -| Name | Type | Description | -| ------------------- | ---------------------------------------------------------------------------------- | ----------------------------------------------------- | -| createdBy? | `string` | The identity that created the resource. | -| createdByType? | [`createdByType`](./data-types.md#Azure.ResourceManager.Foundations.createdByType) | The type of identity that created the resource. | -| createdAt? | `plainDate` | The type of identity that created the resource. | -| lastModifiedBy? | `string` | The identity that last modified the resource. | -| lastModifiedByType? | [`createdByType`](./data-types.md#Azure.ResourceManager.Foundations.createdByType) | The type of identity that last modified the resource. | -| lastModifiedAt? | `plainDate` | The timestamp of resource last modification (UTC) | +| Name | Type | Description | +| -------------- | -------------------------------- | ------------------------------------------------------------- | +| apiVersion | `string` | The API version to use for this operation. | +| subscriptionId | `Core.uuid` | The ID of the target subscription. The value must be an UUID. | +| provider | `"Microsoft.ThisWillBeReplaced"` | | ### `TagsUpdateModel` {#Azure.ResourceManager.Foundations.TagsUpdateModel} @@ -1837,120 +2153,59 @@ model Azure.ResourceManager.Foundations.TenantScope | Name | Type | Description | | ---------- | -------------------------------- | ------------------------------------------ | | apiVersion | `string` | The API version to use for this operation. | -| provider | `"Microsoft.ThisWillBeReplaced"` | The provider namespace for the resource. | - -### `TrackedResource` {#Azure.ResourceManager.Foundations.TrackedResource} - -The base tracked resource. - -```typespec -model Azure.ResourceManager.Foundations.TrackedResource -``` - -#### Properties - -| Name | Type | Description | -| -------- | ---------------- | ----------------------------------------- | -| location | `string` | The geo-location where the resource lives | -| tags? | `Record` | Resource tags. | - -### `UserAssignedIdentities` {#Azure.ResourceManager.Foundations.UserAssignedIdentities} - -The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.", - -```typespec -model Azure.ResourceManager.Foundations.UserAssignedIdentities -``` - -#### Properties +| provider | `"Microsoft.ThisWillBeReplaced"` | | -| Name | Type | Description | -| ---- | ------------------------------------------------------------------------------------------------ | --------------------- | -| | [`UserAssignedIdentity`](./data-types.md#Azure.ResourceManager.Foundations.UserAssignedIdentity) | Additional properties | +## Azure.ResourceManager.Legacy -### `UserAssignedIdentity` {#Azure.ResourceManager.Foundations.UserAssignedIdentity} +### `ManagedServiceIdentityV4` {#Azure.ResourceManager.Legacy.ManagedServiceIdentityV4} -A managed identity assigned by the user. +Managed service identity (system assigned and/or user assigned identities) ```typespec -model Azure.ResourceManager.Foundations.UserAssignedIdentity +model Azure.ResourceManager.Legacy.ManagedServiceIdentityV4 ``` #### Properties -| Name | Type | Description | -| ------------ | -------- | ---------------------------------------------------------- | -| clientId? | `string` | The active directory client identifier for this principal. | -| principalId? | `string` | The active directory identifier for this principal. | - -### `ResourceHome` {#Azure.ResourceManager.Foundations.ResourceHome} - -An internal enum to indicate the resource support for various path types - -```typespec -enum Azure.ResourceManager.Foundations.ResourceHome -``` - -### `SkuTier` {#Azure.ResourceManager.Foundations.SkuTier} - -Available service tiers for the SKU. - -```typespec -enum Azure.ResourceManager.Foundations.SkuTier -``` - -### `ActionType` {#Azure.ResourceManager.Foundations.ActionType} - -Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. - -```typespec -union Azure.ResourceManager.Foundations.ActionType -``` - -### `CheckNameAvailabilityReason` {#Azure.ResourceManager.Foundations.CheckNameAvailabilityReason} - -Possible reasons for a name not being available. - -```typespec -union Azure.ResourceManager.Foundations.CheckNameAvailabilityReason -``` - -### `createdByType` {#Azure.ResourceManager.Foundations.createdByType} +| Name | Type | Description | +| ----------------------- | ------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| principalId? | `Core.uuid` | The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity. | +| tenantId? | `Core.uuid` | The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity. | +| type | [`ManagedServiceIdentityType`](./data-types.md#Azure.ResourceManager.Legacy.ManagedServiceIdentityType) | The type of managed identity assigned to this resource. | +| userAssignedIdentities? | `Record` | The identities assigned to this resource by the user. | -The kind of entity that created the resource. +### `ManagedServiceIdentityV4Property` {#Azure.ResourceManager.Legacy.ManagedServiceIdentityV4Property} -```typespec -union Azure.ResourceManager.Foundations.createdByType -``` +Model representing the standard `ManagedServiceIdentity` envelope property from V4 of common type. -### `ExtendedLocationType` {#Azure.ResourceManager.Foundations.ExtendedLocationType} +Please note that this is only included for legacy specs with mixed v3 and v4 types, which would cause +breaking changes due to the ManagedServiceIdentityType.SystemAndUserAssigned value changes. -The supported ExtendedLocation types. +Do not use this if you are already on CommonTypes.Version.v4 or beyond. ```typespec -union Azure.ResourceManager.Foundations.ExtendedLocationType +model Azure.ResourceManager.Legacy.ManagedServiceIdentityV4Property ``` -### `ManagedServiceIdentityType` {#Azure.ResourceManager.Foundations.ManagedServiceIdentityType} - -The kind of managed identity assigned to this resource. +#### Examples ```typespec -union Azure.ResourceManager.Foundations.ManagedServiceIdentityType +model Foo is TrackedResource { + ...ResourceNameParameter; + ...Legacy.ManagedServiceIdentityV4Property; +} ``` -### `Origin` {#Azure.ResourceManager.Foundations.Origin} - -The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system" +#### Properties -```typespec -union Azure.ResourceManager.Foundations.Origin -``` +| Name | Type | Description | +| --------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | +| identity? | [`ManagedServiceIdentityV4`](./data-types.md#Azure.ResourceManager.Legacy.ManagedServiceIdentityV4) | The managed service identities assigned to this resource. | -### `SystemAssignedServiceIdentityType` {#Azure.ResourceManager.Foundations.SystemAssignedServiceIdentityType} +### `ManagedServiceIdentityType` {#Azure.ResourceManager.Legacy.ManagedServiceIdentityType} -The kind of managemed identity assigned to this resource. +Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). ```typespec -union Azure.ResourceManager.Foundations.SystemAssignedServiceIdentityType +union Azure.ResourceManager.Legacy.ManagedServiceIdentityType ``` diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/decorators.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/decorators.md index 7f8fbcdc0b..9983be00ac 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/decorators.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/decorators.md @@ -23,9 +23,9 @@ the version of the Azure Resource Manager common-types to use for refs in emitte #### Parameters -| Name | Type | Description | -| ------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------ | -| version | `valueof string \| EnumMember` | The Azure.ResourceManager.CommonTypes.Versions for the desired common-types version or an equivalent string value. | +| Name | Type | Description | +| ------- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------- | +| version | `valueof string \| EnumMember` | The Azure.ResourceManager.CommonTypes.Versions for the desired common-types version or an equivalent string value like "v5". | ### `@armLibraryNamespace` {#@Azure.ResourceManager.armLibraryNamespace} diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/index.mdx b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/index.mdx index 51360a7a56..5ecf4cb7ca 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/index.mdx +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/index.mdx @@ -115,7 +115,6 @@ npm install --save-peer @azure-tools/typespec-azure-resource-manager ### Models -- [`ApiVersionParameter`](./data-types.md#Azure.ResourceManager.ApiVersionParameter) - [`ArmAcceptedLroResponse`](./data-types.md#Azure.ResourceManager.ArmAcceptedLroResponse) - [`ArmAcceptedResponse`](./data-types.md#Azure.ResourceManager.ArmAcceptedResponse) - [`ArmAsyncOperationHeader`](./data-types.md#Azure.ResourceManager.ArmAsyncOperationHeader) @@ -135,35 +134,20 @@ npm install --save-peer @azure-tools/typespec-azure-resource-manager - [`ArmResourceNotFoundResponse`](./data-types.md#Azure.ResourceManager.ArmResourceNotFoundResponse) - [`ArmResourceUpdatedResponse`](./data-types.md#Azure.ResourceManager.ArmResourceUpdatedResponse) - [`ArmResponse`](./data-types.md#Azure.ResourceManager.ArmResponse) -- [`CustomerManagedKeyEncryption`](./data-types.md#Azure.ResourceManager.CustomerManagedKeyEncryption) - [`DefaultProvisioningStateProperty`](./data-types.md#Azure.ResourceManager.DefaultProvisioningStateProperty) -- [`Encryption`](./data-types.md#Azure.ResourceManager.Encryption) -- [`EncryptionConfiguration`](./data-types.md#Azure.ResourceManager.EncryptionConfiguration) +- [`EncryptionProperty`](./data-types.md#Azure.ResourceManager.EncryptionProperty) - [`EntityTagProperty`](./data-types.md#Azure.ResourceManager.EntityTagProperty) -- [`ErrorResponse`](./data-types.md#Azure.ResourceManager.ErrorResponse) - [`ExtendedLocationProperty`](./data-types.md#Azure.ResourceManager.ExtendedLocationProperty) - [`ExtensionResource`](./data-types.md#Azure.ResourceManager.ExtensionResource) - [`KeysOf`](./data-types.md#Azure.ResourceManager.KeysOf) - [`LocationParameter`](./data-types.md#Azure.ResourceManager.LocationParameter) -- [`LocationResourceParameter`](./data-types.md#Azure.ResourceManager.LocationResourceParameter) - [`ManagedByProperty`](./data-types.md#Azure.ResourceManager.ManagedByProperty) - [`ManagedServiceIdentityProperty`](./data-types.md#Azure.ResourceManager.ManagedServiceIdentityProperty) - [`ManagedSystemAssignedIdentityProperty`](./data-types.md#Azure.ResourceManager.ManagedSystemAssignedIdentityProperty) - [`ParentKeysOf`](./data-types.md#Azure.ResourceManager.ParentKeysOf) -- [`PrivateEndpoint`](./data-types.md#Azure.ResourceManager.PrivateEndpoint) -- [`PrivateEndpointConnection`](./data-types.md#Azure.ResourceManager.PrivateEndpointConnection) -- [`PrivateEndpointConnectionParameter`](./data-types.md#Azure.ResourceManager.PrivateEndpointConnectionParameter) -- [`PrivateEndpointConnectionProperties`](./data-types.md#Azure.ResourceManager.PrivateEndpointConnectionProperties) -- [`PrivateEndpointConnectionResourceListResult`](./data-types.md#Azure.ResourceManager.PrivateEndpointConnectionResourceListResult) -- [`PrivateLinkResource`](./data-types.md#Azure.ResourceManager.PrivateLinkResource) -- [`PrivateLinkResourceListResult`](./data-types.md#Azure.ResourceManager.PrivateLinkResourceListResult) -- [`PrivateLinkResourceParameter`](./data-types.md#Azure.ResourceManager.PrivateLinkResourceParameter) -- [`PrivateLinkResourceProperties`](./data-types.md#Azure.ResourceManager.PrivateLinkResourceProperties) -- [`PrivateLinkServiceConnectionState`](./data-types.md#Azure.ResourceManager.PrivateLinkServiceConnectionState) - [`ProviderNamespace`](./data-types.md#Azure.ResourceManager.ProviderNamespace) - [`ProxyResource`](./data-types.md#Azure.ResourceManager.ProxyResource) - [`ResourceGroupLocationResource`](./data-types.md#Azure.ResourceManager.ResourceGroupLocationResource) -- [`ResourceGroupParameter`](./data-types.md#Azure.ResourceManager.ResourceGroupParameter) - [`ResourceInstanceParameters`](./data-types.md#Azure.ResourceManager.ResourceInstanceParameters) - [`ResourceKindProperty`](./data-types.md#Azure.ResourceManager.ResourceKindProperty) - [`ResourceListResult`](./data-types.md#Azure.ResourceManager.ResourceListResult) @@ -172,13 +156,66 @@ npm install --save-peer @azure-tools/typespec-azure-resource-manager - [`ResourcePlanProperty`](./data-types.md#Azure.ResourceManager.ResourcePlanProperty) - [`ResourceSkuProperty`](./data-types.md#Azure.ResourceManager.ResourceSkuProperty) - [`ResourceUriParameter`](./data-types.md#Azure.ResourceManager.ResourceUriParameter) -- [`SubscriptionIdParameter`](./data-types.md#Azure.ResourceManager.SubscriptionIdParameter) - [`SubscriptionLocationResource`](./data-types.md#Azure.ResourceManager.SubscriptionLocationResource) - [`TenantLocationResource`](./data-types.md#Azure.ResourceManager.TenantLocationResource) - [`TrackedResource`](./data-types.md#Azure.ResourceManager.TrackedResource) ## Azure.ResourceManager.CommonTypes +### Models + +- [`ApiVersionParameter`](./data-types.md#Azure.ResourceManager.CommonTypes.ApiVersionParameter) +- [`AzureEntityResource`](./data-types.md#Azure.ResourceManager.CommonTypes.AzureEntityResource) +- [`CheckNameAvailabilityRequest`](./data-types.md#Azure.ResourceManager.CommonTypes.CheckNameAvailabilityRequest) +- [`CheckNameAvailabilityResponse`](./data-types.md#Azure.ResourceManager.CommonTypes.CheckNameAvailabilityResponse) +- [`CustomerManagedKeyEncryption`](./data-types.md#Azure.ResourceManager.CommonTypes.CustomerManagedKeyEncryption) +- [`Encryption`](./data-types.md#Azure.ResourceManager.CommonTypes.Encryption) +- [`EncryptionProperties`](./data-types.md#Azure.ResourceManager.CommonTypes.EncryptionProperties) +- [`ErrorAdditionalInfo`](./data-types.md#Azure.ResourceManager.CommonTypes.ErrorAdditionalInfo) +- [`ErrorDetail`](./data-types.md#Azure.ResourceManager.CommonTypes.ErrorDetail) +- [`ErrorResponse`](./data-types.md#Azure.ResourceManager.CommonTypes.ErrorResponse) +- [`ExtendedLocation`](./data-types.md#Azure.ResourceManager.CommonTypes.ExtendedLocation) +- [`ExtensionResource`](./data-types.md#Azure.ResourceManager.CommonTypes.ExtensionResource) +- [`Identity`](./data-types.md#Azure.ResourceManager.CommonTypes.Identity) +- [`IfMatchHeader`](./data-types.md#Azure.ResourceManager.CommonTypes.IfMatchHeader) +- [`IfNoneMatchHeader`](./data-types.md#Azure.ResourceManager.CommonTypes.IfNoneMatchHeader) +- [`KeyEncryptionKeyIdentity`](./data-types.md#Azure.ResourceManager.CommonTypes.KeyEncryptionKeyIdentity) +- [`KeyVaultProperties`](./data-types.md#Azure.ResourceManager.CommonTypes.KeyVaultProperties) +- [`LocationData`](./data-types.md#Azure.ResourceManager.CommonTypes.LocationData) +- [`LocationParameter`](./data-types.md#Azure.ResourceManager.CommonTypes.LocationParameter) +- [`LocationResourceParameter`](./data-types.md#Azure.ResourceManager.CommonTypes.LocationResourceParameter) +- [`ManagedServiceIdentity`](./data-types.md#Azure.ResourceManager.CommonTypes.ManagedServiceIdentity) +- [`ManagementGroupNameParameter`](./data-types.md#Azure.ResourceManager.CommonTypes.ManagementGroupNameParameter) +- [`Operation`](./data-types.md#Azure.ResourceManager.CommonTypes.Operation) +- [`OperationDisplay`](./data-types.md#Azure.ResourceManager.CommonTypes.OperationDisplay) +- [`OperationIdParameter`](./data-types.md#Azure.ResourceManager.CommonTypes.OperationIdParameter) +- [`OperationListResult`](./data-types.md#Azure.ResourceManager.CommonTypes.OperationListResult) +- [`OperationStatusResult`](./data-types.md#Azure.ResourceManager.CommonTypes.OperationStatusResult) +- [`Plan`](./data-types.md#Azure.ResourceManager.CommonTypes.Plan) +- [`PrivateEndpoint`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateEndpoint) +- [`PrivateEndpointConnection`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateEndpointConnection) +- [`PrivateEndpointConnectionListResult`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionListResult) +- [`PrivateEndpointConnectionParameter`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionParameter) +- [`PrivateEndpointConnectionProperties`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProperties) +- [`PrivateLinkResource`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateLinkResource) +- [`PrivateLinkResourceListResult`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateLinkResourceListResult) +- [`PrivateLinkResourceParameter`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateLinkResourceParameter) +- [`PrivateLinkResourceProperties`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateLinkResourceProperties) +- [`PrivateLinkServiceConnectionState`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateLinkServiceConnectionState) +- [`ProxyResource`](./data-types.md#Azure.ResourceManager.CommonTypes.ProxyResource) +- [`Resource`](./data-types.md#Azure.ResourceManager.CommonTypes.Resource) +- [`ResourceGroupNameParameter`](./data-types.md#Azure.ResourceManager.CommonTypes.ResourceGroupNameParameter) +- [`ResourceModelWithAllowedPropertySet`](./data-types.md#Azure.ResourceManager.CommonTypes.ResourceModelWithAllowedPropertySet) +- [`ScopeParameter`](./data-types.md#Azure.ResourceManager.CommonTypes.ScopeParameter) +- [`Sku`](./data-types.md#Azure.ResourceManager.CommonTypes.Sku) +- [`SubscriptionIdParameter`](./data-types.md#Azure.ResourceManager.CommonTypes.SubscriptionIdParameter) +- [`SystemAssignedServiceIdentity`](./data-types.md#Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentity) +- [`SystemData`](./data-types.md#Azure.ResourceManager.CommonTypes.SystemData) +- [`TenantIdParameter`](./data-types.md#Azure.ResourceManager.CommonTypes.TenantIdParameter) +- [`TrackedResource`](./data-types.md#Azure.ResourceManager.CommonTypes.TrackedResource) +- [`UserAssignedIdentities`](./data-types.md#Azure.ResourceManager.CommonTypes.UserAssignedIdentities) +- [`UserAssignedIdentity`](./data-types.md#Azure.ResourceManager.CommonTypes.UserAssignedIdentity) + ## Azure.ResourceManager.Foundations ### Operations @@ -191,40 +228,25 @@ npm install --save-peer @azure-tools/typespec-azure-resource-manager ### Models - [`ArmTagsProperty`](./data-types.md#Azure.ResourceManager.Foundations.ArmTagsProperty) -- [`AzureEntityResource`](./data-types.md#Azure.ResourceManager.Foundations.AzureEntityResource) -- [`CheckNameAvailabilityRequest`](./data-types.md#Azure.ResourceManager.Foundations.CheckNameAvailabilityRequest) -- [`CheckNameAvailabilityResponse`](./data-types.md#Azure.ResourceManager.Foundations.CheckNameAvailabilityResponse) - [`DefaultBaseParameters`](./data-types.md#Azure.ResourceManager.Foundations.DefaultBaseParameters) -- [`ErrorAdditionalInfo`](./data-types.md#Azure.ResourceManager.Foundations.ErrorAdditionalInfo) -- [`ErrorDetail`](./data-types.md#Azure.ResourceManager.Foundations.ErrorDetail) -- [`ExtendedLocation`](./data-types.md#Azure.ResourceManager.Foundations.ExtendedLocation) - [`ExtensionBaseParameters`](./data-types.md#Azure.ResourceManager.Foundations.ExtensionBaseParameters) -- [`ExtensionResource`](./data-types.md#Azure.ResourceManager.Foundations.ExtensionResource) - [`ExtensionScope`](./data-types.md#Azure.ResourceManager.Foundations.ExtensionScope) - [`LocationBaseParameters`](./data-types.md#Azure.ResourceManager.Foundations.LocationBaseParameters) - [`LocationScope`](./data-types.md#Azure.ResourceManager.Foundations.LocationScope) -- [`ManagedServiceIdentity`](./data-types.md#Azure.ResourceManager.Foundations.ManagedServiceIdentity) -- [`Operation`](./data-types.md#Azure.ResourceManager.Foundations.Operation) -- [`OperationDisplay`](./data-types.md#Azure.ResourceManager.Foundations.OperationDisplay) -- [`OperationIdParameter`](./data-types.md#Azure.ResourceManager.Foundations.OperationIdParameter) -- [`OperationListResult`](./data-types.md#Azure.ResourceManager.Foundations.OperationListResult) -- [`OperationStatusResult`](./data-types.md#Azure.ResourceManager.Foundations.OperationStatusResult) -- [`Plan`](./data-types.md#Azure.ResourceManager.Foundations.Plan) -- [`ProxyResource`](./data-types.md#Azure.ResourceManager.Foundations.ProxyResource) - [`ProxyResourceUpdateModel`](./data-types.md#Azure.ResourceManager.Foundations.ProxyResourceUpdateModel) -- [`Resource`](./data-types.md#Azure.ResourceManager.Foundations.Resource) - [`ResourceGroupBaseParameters`](./data-types.md#Azure.ResourceManager.Foundations.ResourceGroupBaseParameters) - [`ResourceGroupScope`](./data-types.md#Azure.ResourceManager.Foundations.ResourceGroupScope) - [`ResourceUpdateModel`](./data-types.md#Azure.ResourceManager.Foundations.ResourceUpdateModel) - [`ResourceUpdateModelProperties`](./data-types.md#Azure.ResourceManager.Foundations.ResourceUpdateModelProperties) -- [`Sku`](./data-types.md#Azure.ResourceManager.Foundations.Sku) - [`SubscriptionBaseParameters`](./data-types.md#Azure.ResourceManager.Foundations.SubscriptionBaseParameters) - [`SubscriptionScope`](./data-types.md#Azure.ResourceManager.Foundations.SubscriptionScope) -- [`SystemAssignedServiceIdentity`](./data-types.md#Azure.ResourceManager.Foundations.SystemAssignedServiceIdentity) -- [`SystemData`](./data-types.md#Azure.ResourceManager.Foundations.SystemData) - [`TagsUpdateModel`](./data-types.md#Azure.ResourceManager.Foundations.TagsUpdateModel) - [`TenantBaseParameters`](./data-types.md#Azure.ResourceManager.Foundations.TenantBaseParameters) - [`TenantScope`](./data-types.md#Azure.ResourceManager.Foundations.TenantScope) -- [`TrackedResource`](./data-types.md#Azure.ResourceManager.Foundations.TrackedResource) -- [`UserAssignedIdentities`](./data-types.md#Azure.ResourceManager.Foundations.UserAssignedIdentities) -- [`UserAssignedIdentity`](./data-types.md#Azure.ResourceManager.Foundations.UserAssignedIdentity) + +## Azure.ResourceManager.Legacy + +### Models + +- [`ManagedServiceIdentityV4`](./data-types.md#Azure.ResourceManager.Legacy.ManagedServiceIdentityV4) +- [`ManagedServiceIdentityV4Property`](./data-types.md#Azure.ResourceManager.Legacy.ManagedServiceIdentityV4Property) diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/interfaces.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/interfaces.md index 13ef0e088b..bee0fa9964 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/interfaces.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/interfaces.md @@ -25,7 +25,7 @@ interface Azure.ResourceManager.ExtensionResourceCollectionOperations #### `ExtensionResourceCollectionOperations.listByParent` {#Azure.ResourceManager.ExtensionResourceCollectionOperations.listByParent} ```typespec -op Azure.ResourceManager.ExtensionResourceCollectionOperations.listByParent(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ExtensionResourceCollectionOperations.listByParent(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ExtensionResourceInstanceOperations` {#Azure.ResourceManager.ExtensionResourceInstanceOperations} @@ -46,25 +46,25 @@ interface Azure.ResourceManager.ExtensionResourceInstanceOperations | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ExtensionResourceInstanceOperations.get(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ExtensionResourceInstanceOperations.createOrUpdate` {#Azure.ResourceManager.ExtensionResourceInstanceOperations.createOrUpdate} ```typespec -op Azure.ResourceManager.ExtensionResourceInstanceOperations.createOrUpdate(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ExtensionResourceInstanceOperations.createOrUpdate(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ExtensionResourceInstanceOperations.update` {#Azure.ResourceManager.ExtensionResourceInstanceOperations.update} ```typespec -op Azure.ResourceManager.ExtensionResourceInstanceOperations.update(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ExtensionResourceInstanceOperations.update(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ExtensionResourceInstanceOperations.delete` {#Azure.ResourceManager.ExtensionResourceInstanceOperations.delete} ```typespec -op Azure.ResourceManager.ExtensionResourceInstanceOperations.delete(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ExtensionResourceInstanceOperations.delete(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ExtensionResourceOperations` {#Azure.ResourceManager.ExtensionResourceOperations} @@ -85,31 +85,31 @@ interface Azure.ResourceManager.ExtensionResourceOperations | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ExtensionResourceOperations.get(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ExtensionResourceOperations.createOrUpdate` {#Azure.ResourceManager.ExtensionResourceOperations.createOrUpdate} ```typespec -op Azure.ResourceManager.ExtensionResourceOperations.createOrUpdate(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ExtensionResourceOperations.createOrUpdate(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ExtensionResourceOperations.update` {#Azure.ResourceManager.ExtensionResourceOperations.update} ```typespec -op Azure.ResourceManager.ExtensionResourceOperations.update(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ExtensionResourceOperations.update(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ExtensionResourceOperations.delete` {#Azure.ResourceManager.ExtensionResourceOperations.delete} ```typespec -op Azure.ResourceManager.ExtensionResourceOperations.delete(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ExtensionResourceOperations.delete(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ExtensionResourceOperations.listByParent` {#Azure.ResourceManager.ExtensionResourceOperations.listByParent} ```typespec -op Azure.ResourceManager.ExtensionResourceOperations.listByParent(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ExtensionResourceOperations.listByParent(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `Operations` {#Azure.ResourceManager.Operations} @@ -128,7 +128,7 @@ interface Azure.ResourceManager.Operations<> List the operations for the provider ```typespec -op Azure.ResourceManager.Operations.list(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.Operations.list(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ProxyResourceOperations` {#Azure.ResourceManager.ProxyResourceOperations} @@ -155,25 +155,25 @@ interface Azure.ResourceManager.ProxyResourceOperations | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ProxyResourceOperations.get(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ProxyResourceOperations.createOrUpdate` {#Azure.ResourceManager.ProxyResourceOperations.createOrUpdate} ```typespec -op Azure.ResourceManager.ProxyResourceOperations.createOrUpdate(provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ProxyResourceOperations.createOrUpdate(provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ProxyResourceOperations.delete` {#Azure.ResourceManager.ProxyResourceOperations.delete} ```typespec -op Azure.ResourceManager.ProxyResourceOperations.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ProxyResourceOperations.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ProxyResourceOperations.listByParent` {#Azure.ResourceManager.ProxyResourceOperations.listByParent} ```typespec -op Azure.ResourceManager.ProxyResourceOperations.listByParent(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ProxyResourceOperations.listByParent(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceCollectionOperations` {#Azure.ResourceManager.ResourceCollectionOperations} @@ -194,13 +194,13 @@ interface Azure.ResourceManager.ResourceCollectionOperations> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceCollectionOperations.listByParent(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ResourceCollectionOperations.listBySubscription` {#Azure.ResourceManager.ResourceCollectionOperations.listBySubscription} ```typespec -op Azure.ResourceManager.ResourceCollectionOperations.listBySubscription(apiVersion: string, subscriptionId: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceCollectionOperations.listBySubscription(apiVersion: string, subscriptionId: Azure.Core.uuid, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceCreateAsync` {#Azure.ResourceManager.ResourceCreateAsync} @@ -221,7 +221,7 @@ interface Azure.ResourceManager.ResourceCreateAsync #### `ResourceCreateAsync.createOrUpdate` {#Azure.ResourceManager.ResourceCreateAsync.createOrUpdate} ```typespec -op Azure.ResourceManager.ResourceCreateAsync.createOrUpdate(provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceCreateAsync.createOrUpdate(provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceCreateSync` {#Azure.ResourceManager.ResourceCreateSync} @@ -242,7 +242,7 @@ interface Azure.ResourceManager.ResourceCreateSync #### `ResourceCreateSync.createOrUpdate` {#Azure.ResourceManager.ResourceCreateSync.createOrUpdate} ```typespec -op Azure.ResourceManager.ResourceCreateSync.createOrUpdate(provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedSyncResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceCreateSync.createOrUpdate(provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedSyncResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceDeleteAsync` {#Azure.ResourceManager.ResourceDeleteAsync} @@ -261,7 +261,7 @@ interface Azure.ResourceManager.ResourceDeleteAsync #### `ResourceDeleteAsync.delete` {#Azure.ResourceManager.ResourceDeleteAsync.delete} ```typespec -op Azure.ResourceManager.ResourceDeleteAsync.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceDeleteAsync.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceDeleteSync` {#Azure.ResourceManager.ResourceDeleteSync} @@ -282,7 +282,7 @@ interface Azure.ResourceManager.ResourceDeleteSync #### `ResourceDeleteSync.delete` {#Azure.ResourceManager.ResourceDeleteSync.delete} ```typespec -op Azure.ResourceManager.ResourceDeleteSync.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceDeleteSync.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceDeleteWithoutOkAsync` {#Azure.ResourceManager.ResourceDeleteWithoutOkAsync} @@ -301,7 +301,7 @@ interface Azure.ResourceManager.ResourceDeleteWithoutOkAsync | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceDeleteWithoutOkAsync.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceInstanceOperations` {#Azure.ResourceManager.ResourceInstanceOperations} @@ -324,25 +324,25 @@ interface Azure.ResourceManager.ResourceInstanceOperations | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceInstanceOperations.get(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ResourceInstanceOperations.createOrUpdate` {#Azure.ResourceManager.ResourceInstanceOperations.createOrUpdate} ```typespec -op Azure.ResourceManager.ResourceInstanceOperations.createOrUpdate(provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceInstanceOperations.createOrUpdate(provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ResourceInstanceOperations.update` {#Azure.ResourceManager.ResourceInstanceOperations.update} ```typespec -op Azure.ResourceManager.ResourceInstanceOperations.update(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceInstanceOperations.update(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ResourceInstanceOperations.delete` {#Azure.ResourceManager.ResourceInstanceOperations.delete} ```typespec -op Azure.ResourceManager.ResourceInstanceOperations.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceInstanceOperations.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceListByParent` {#Azure.ResourceManager.ResourceListByParent} @@ -365,7 +365,7 @@ interface Azure.ResourceManager.ResourceListByParent> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceListByParent.listByParent(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceListBySubscription` {#Azure.ResourceManager.ResourceListBySubscription} @@ -385,7 +385,7 @@ interface Azure.ResourceManager.ResourceListBySubscription #### `ResourceListBySubscription.listBySubscription` {#Azure.ResourceManager.ResourceListBySubscription.listBySubscription} ```typespec -op Azure.ResourceManager.ResourceListBySubscription.listBySubscription(apiVersion: string, subscriptionId: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceListBySubscription.listBySubscription(apiVersion: string, subscriptionId: Azure.Core.uuid, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceOperations` {#Azure.ResourceManager.ResourceOperations} @@ -405,37 +405,37 @@ interface Azure.ResourceManager.ResourceOperations | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceOperations.get(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ResourceOperations.createOrUpdate` {#Azure.ResourceManager.ResourceOperations.createOrUpdate} ```typespec -op Azure.ResourceManager.ResourceOperations.createOrUpdate(provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceOperations.createOrUpdate(provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ResourceOperations.update` {#Azure.ResourceManager.ResourceOperations.update} ```typespec -op Azure.ResourceManager.ResourceOperations.update(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceOperations.update(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ResourceOperations.delete` {#Azure.ResourceManager.ResourceOperations.delete} ```typespec -op Azure.ResourceManager.ResourceOperations.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceOperations.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ResourceOperations.listByParent` {#Azure.ResourceManager.ResourceOperations.listByParent} ```typespec -op Azure.ResourceManager.ResourceOperations.listByParent(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceOperations.listByParent(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `ResourceOperations.listBySubscription` {#Azure.ResourceManager.ResourceOperations.listBySubscription} ```typespec -op Azure.ResourceManager.ResourceOperations.listBySubscription(apiVersion: string, subscriptionId: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceOperations.listBySubscription(apiVersion: string, subscriptionId: Azure.Core.uuid, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceRead` {#Azure.ResourceManager.ResourceRead} @@ -456,7 +456,7 @@ interface Azure.ResourceManager.ResourceRead #### `ResourceRead.get` {#Azure.ResourceManager.ResourceRead.get} ```typespec -op Azure.ResourceManager.ResourceRead.get(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceRead.get(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceUpdateAsync` {#Azure.ResourceManager.ResourceUpdateAsync} @@ -476,7 +476,7 @@ interface Azure.ResourceManager.ResourceUpdateAsync): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ArmAcceptedLroResponse<"Resource update request accepted.", Azure.ResourceManager.(anonymous model)> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceUpdateAsync.update(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ArmAcceptedLroResponse<"Resource update request accepted.", Azure.ResourceManager.{ location: string, retryAfter: int32 }> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ResourceUpdateSync` {#Azure.ResourceManager.ResourceUpdateSync} @@ -498,7 +498,7 @@ interface Azure.ResourceManager.ResourceUpdateSync): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceUpdateSync.update(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `TenantResourceOperations` {#Azure.ResourceManager.TenantResourceOperations} @@ -525,31 +525,31 @@ interface Azure.ResourceManager.TenantResourceOperations #### `TenantResourceOperations.get` {#Azure.ResourceManager.TenantResourceOperations.get} ```typespec -op Azure.ResourceManager.TenantResourceOperations.get(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.TenantResourceOperations.get(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `TenantResourceOperations.createOrUpdate` {#Azure.ResourceManager.TenantResourceOperations.createOrUpdate} ```typespec -op Azure.ResourceManager.TenantResourceOperations.createOrUpdate(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.TenantResourceOperations.createOrUpdate(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `TenantResourceOperations.update` {#Azure.ResourceManager.TenantResourceOperations.update} ```typespec -op Azure.ResourceManager.TenantResourceOperations.update(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.TenantResourceOperations.update(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `TenantResourceOperations.delete` {#Azure.ResourceManager.TenantResourceOperations.delete} ```typespec -op Azure.ResourceManager.TenantResourceOperations.delete(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.TenantResourceOperations.delete(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `TenantResourceOperations.listByParent` {#Azure.ResourceManager.TenantResourceOperations.listByParent} ```typespec -op Azure.ResourceManager.TenantResourceOperations.listByParent(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.TenantResourceOperations.listByParent(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `TrackedResourceOperations` {#Azure.ResourceManager.TrackedResourceOperations} @@ -574,37 +574,37 @@ interface Azure.ResourceManager.TrackedResourceOperations | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.TrackedResourceOperations.get(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `TrackedResourceOperations.createOrUpdate` {#Azure.ResourceManager.TrackedResourceOperations.createOrUpdate} ```typespec -op Azure.ResourceManager.TrackedResourceOperations.createOrUpdate(provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.TrackedResourceOperations.createOrUpdate(provider: "Microsoft.ThisWillBeReplaced", resource: Resource): Azure.ResourceManager.ArmResourceUpdatedResponse | Azure.ResourceManager.ArmResourceCreatedResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `TrackedResourceOperations.update` {#Azure.ResourceManager.TrackedResourceOperations.update} ```typespec -op Azure.ResourceManager.TrackedResourceOperations.update(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.TrackedResourceOperations.update(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `TrackedResourceOperations.delete` {#Azure.ResourceManager.TrackedResourceOperations.delete} ```typespec -op Azure.ResourceManager.TrackedResourceOperations.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.TrackedResourceOperations.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `TrackedResourceOperations.listByParent` {#Azure.ResourceManager.TrackedResourceOperations.listByParent} ```typespec -op Azure.ResourceManager.TrackedResourceOperations.listByParent(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.TrackedResourceOperations.listByParent(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### `TrackedResourceOperations.listBySubscription` {#Azure.ResourceManager.TrackedResourceOperations.listBySubscription} ```typespec -op Azure.ResourceManager.TrackedResourceOperations.listBySubscription(apiVersion: string, subscriptionId: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.TrackedResourceOperations.listBySubscription(apiVersion: string, subscriptionId: Azure.Core.uuid, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmResponse> | Azure.ResourceManager.CommonTypes.ErrorResponse ``` ### `ArmCustomPatchAsync` {#Azure.ResourceManager.ArmCustomPatchAsync} @@ -651,7 +651,7 @@ op Azure.ResourceManager.ArmCustomPatchSync(provider: "Microsoft.ThisWillBeRepla A resource list operation, at the subscription scope ```typespec -op Azure.ResourceManager.ArmListBySubscription(apiVersion: string, subscriptionId: string, provider: "Microsoft.ThisWillBeReplaced"): Response | Error +op Azure.ResourceManager.ArmListBySubscription(apiVersion: string, subscriptionId: Azure.Core.uuid, provider: "Microsoft.ThisWillBeReplaced"): Response | Error ``` #### Template Parameters @@ -970,7 +970,7 @@ op Azure.ResourceManager.ArmResourceListByParent(provider: "Microsoft.ThisWillBe ### `ArmResourcePatchAsync` {#Azure.ResourceManager.ArmResourcePatchAsync} ```typespec -op Azure.ResourceManager.ArmResourcePatchAsync(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ArmAcceptedLroResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ArmResourcePatchAsync(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ArmAcceptedLroResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### Template Parameters @@ -986,7 +986,7 @@ op Azure.ResourceManager.ArmResourcePatchAsync(provider: "Microsoft.ThisWillBeRe ### `ArmResourcePatchSync` {#Azure.ResourceManager.ArmResourcePatchSync} ```typespec -op Azure.ResourceManager.ArmResourcePatchSync(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ArmResourcePatchSync(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### Template Parameters @@ -1019,7 +1019,7 @@ op Azure.ResourceManager.ArmResourceRead(provider: "Microsoft.ThisWillBeReplaced ### `ArmTagsPatchAsync` {#Azure.ResourceManager.ArmTagsPatchAsync} ```typespec -op Azure.ResourceManager.ArmTagsPatchAsync(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.TagsUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ArmAcceptedLroResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ArmTagsPatchAsync(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.TagsUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ArmAcceptedLroResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### Template Parameters @@ -1035,7 +1035,7 @@ op Azure.ResourceManager.ArmTagsPatchAsync(provider: "Microsoft.ThisWillBeReplac ### `ArmTagsPatchSync` {#Azure.ResourceManager.ArmTagsPatchSync} ```typespec -op Azure.ResourceManager.ArmTagsPatchSync(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.TagsUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ArmTagsPatchSync(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.TagsUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### Template Parameters @@ -1049,7 +1049,7 @@ op Azure.ResourceManager.ArmTagsPatchSync(provider: "Microsoft.ThisWillBeReplace ### `checkGlobalNameAvailability` {#Azure.ResourceManager.checkGlobalNameAvailability} ```typespec -op Azure.ResourceManager.checkGlobalNameAvailability(apiVersion: string, subscriptionId: string, provider: "Microsoft.ThisWillBeReplaced", body: Request): Response | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.checkGlobalNameAvailability(apiVersion: string, subscriptionId: Azure.Core.uuid, provider: "Microsoft.ThisWillBeReplaced", body: Request): Response | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### Template Parameters @@ -1063,7 +1063,7 @@ op Azure.ResourceManager.checkGlobalNameAvailability(apiVersion: string, subscri ### `checkLocalNameAvailability` {#Azure.ResourceManager.checkLocalNameAvailability} ```typespec -op Azure.ResourceManager.checkLocalNameAvailability(apiVersion: string, subscriptionId: string, provider: "Microsoft.ThisWillBeReplaced", location: string, body: Request): Response | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.checkLocalNameAvailability(apiVersion: string, subscriptionId: Azure.Core.uuid, provider: "Microsoft.ThisWillBeReplaced", location: string, body: Request): Response | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### Template Parameters @@ -1127,7 +1127,7 @@ a resource name must be globally unique (for example, if the resource exposes an endpoint that uses the resource name in the url) ```typespec -op Azure.ResourceManager.Foundations.checkNameAvailability(apiVersion: string, body: Request): Response | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.Foundations.checkNameAvailability(apiVersion: string, body: Request): Response | Azure.ResourceManager.CommonTypes.ErrorResponse ``` #### Template Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armCommonTypesVersion.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armCommonTypesVersion.md index 4a632593b4..3d35a66436 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armCommonTypesVersion.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armCommonTypesVersion.md @@ -4,7 +4,7 @@ title: "[F] $armCommonTypesVersion" --- ```ts -$armCommonTypesVersion( +function $armCommonTypesVersion( context, entity, version): void @@ -17,8 +17,8 @@ $armCommonTypesVersion( | Parameter | Type | Description | | :------ | :------ | :------ | | `context` | `DecoratorContext` | DecoratorContext object | -| `entity` | `EnumMember` \| `Namespace` | Target of the decorator. Must be `Namespace` or `EnumMember` type | -| `version` | `string` \| `EnumMember` | - | +| `entity` | `Namespace` \| `EnumMember` | Target of the decorator. Must be `Namespace` or `EnumMember` type | +| `version` | `string` \| `EnumValue` | - | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armLibraryNamespace.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armLibraryNamespace.md index 0ca433f6d6..5c7631524b 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armLibraryNamespace.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armLibraryNamespace.md @@ -4,7 +4,7 @@ title: "[F] $armLibraryNamespace" --- ```ts -$armLibraryNamespace(context, entity): void +function $armLibraryNamespace(context, entity): void ``` Mark the target namespace as containign only ARM library types. This is used to create libraries to share among RPs diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armProviderNameValue.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armProviderNameValue.md index e37e64d7b4..9258a14da2 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armProviderNameValue.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armProviderNameValue.md @@ -4,7 +4,7 @@ title: "[F] $armProviderNameValue" --- ```ts -$armProviderNameValue(context, entity): void +function $armProviderNameValue(context, entity): void ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armProviderNamespace.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armProviderNamespace.md index cd03d7d56a..98e7101306 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armProviderNamespace.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armProviderNamespace.md @@ -4,7 +4,7 @@ title: "[F] $armProviderNamespace" --- ```ts -$armProviderNamespace( +function $armProviderNamespace( context, entity, armProviderNamespace?): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armRenameListByOperation.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armRenameListByOperation.md index b782847ea0..f5ef7494d4 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armRenameListByOperation.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armRenameListByOperation.md @@ -4,7 +4,7 @@ title: "[F] $armRenameListByOperation" --- ```ts -$armRenameListByOperation( +function $armRenameListByOperation( context, entity, resourceType, diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceAction.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceAction.md index ec9176bf0a..0caeb7ea39 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceAction.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceAction.md @@ -4,7 +4,7 @@ title: "[F] $armResourceAction" --- ```ts -$armResourceAction( +function $armResourceAction( context, target, resourceType): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceCollectionAction.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceCollectionAction.md index 5204738dad..38ded7b52b 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceCollectionAction.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceCollectionAction.md @@ -4,7 +4,7 @@ title: "[F] $armResourceCollectionAction" --- ```ts -$armResourceCollectionAction(context, target): void +function $armResourceCollectionAction(context, target): void ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceCreateOrUpdate.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceCreateOrUpdate.md index e0d1e76795..d9ac607f7c 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceCreateOrUpdate.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceCreateOrUpdate.md @@ -4,7 +4,7 @@ title: "[F] $armResourceCreateOrUpdate" --- ```ts -$armResourceCreateOrUpdate( +function $armResourceCreateOrUpdate( context, target, resourceType): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceDelete.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceDelete.md index e53f856fce..a5c8ceb33c 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceDelete.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceDelete.md @@ -4,7 +4,7 @@ title: "[F] $armResourceDelete" --- ```ts -$armResourceDelete( +function $armResourceDelete( context, target, resourceType): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceList.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceList.md index 07a3afdca6..b5d07d68b2 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceList.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceList.md @@ -4,7 +4,7 @@ title: "[F] $armResourceList" --- ```ts -$armResourceList( +function $armResourceList( context, target, resourceType): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceOperations.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceOperations.md index abaa507232..62e371548d 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceOperations.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceOperations.md @@ -4,7 +4,7 @@ title: "[F] $armResourceOperations" --- ```ts -$armResourceOperations(context, interfaceType): void +function $armResourceOperations(context, interfaceType): void ``` This decorator is used to identify interfaces containing resource operations. diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceRead.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceRead.md index 9e6c32cf76..30efe793aa 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceRead.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceRead.md @@ -4,7 +4,7 @@ title: "[F] $armResourceRead" --- ```ts -$armResourceRead( +function $armResourceRead( context, target, resourceType): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceUpdate.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceUpdate.md index 39a3c8e49d..49cf9a7f25 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceUpdate.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armResourceUpdate.md @@ -4,7 +4,7 @@ title: "[F] $armResourceUpdate" --- ```ts -$armResourceUpdate( +function $armResourceUpdate( context, target, resourceType): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armVirtualResource.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armVirtualResource.md index ac7985c826..636b96ad73 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armVirtualResource.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$armVirtualResource.md @@ -4,7 +4,7 @@ title: "[F] $armVirtualResource" --- ```ts -$armVirtualResource(context, entity): void +function $armVirtualResource(context, entity): void ``` Marks the given resource as an external resource diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$extensionResource.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$extensionResource.md index 48c0d874cc..79f3b03adf 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$extensionResource.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$extensionResource.md @@ -4,7 +4,7 @@ title: "[F] $extensionResource" --- ```ts -$extensionResource(context, entity): void +function $extensionResource(context, entity): void ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$locationResource.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$locationResource.md index e157559843..80dea3a1a0 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$locationResource.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$locationResource.md @@ -4,7 +4,7 @@ title: "[F] $locationResource" --- ```ts -$locationResource(context, entity): void +function $locationResource(context, entity): void ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$resourceBaseType.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$resourceBaseType.md index 1a0c0e5eda..0b5103433f 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$resourceBaseType.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$resourceBaseType.md @@ -4,7 +4,7 @@ title: "[F] $resourceBaseType" --- ```ts -$resourceBaseType( +function $resourceBaseType( context, entity, baseType): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$resourceGroupResource.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$resourceGroupResource.md index 3bec41d52e..b9f80d6c1f 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$resourceGroupResource.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$resourceGroupResource.md @@ -4,7 +4,7 @@ title: "[F] $resourceGroupResource" --- ```ts -$resourceGroupResource(context, entity): void +function $resourceGroupResource(context, entity): void ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$singleton.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$singleton.md index 7a7927ac59..f192ccc91a 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$singleton.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$singleton.md @@ -4,7 +4,7 @@ title: "[F] $singleton" --- ```ts -$singleton( +function $singleton( context, resourceType, keyValue): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$subscriptionResource.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$subscriptionResource.md index 41f517d02b..4bb92f1526 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$subscriptionResource.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$subscriptionResource.md @@ -4,7 +4,7 @@ title: "[F] $subscriptionResource" --- ```ts -$subscriptionResource(context, entity): void +function $subscriptionResource(context, entity): void ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$tenantResource.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$tenantResource.md index 34396627c7..e419db3d05 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$tenantResource.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$tenantResource.md @@ -4,7 +4,7 @@ title: "[F] $tenantResource" --- ```ts -$tenantResource(context, entity): void +function $tenantResource(context, entity): void ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$useLibraryNamespace.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$useLibraryNamespace.md index 1f86f1596a..6a698e00ec 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$useLibraryNamespace.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/$useLibraryNamespace.md @@ -4,7 +4,7 @@ title: "[F] $useLibraryNamespace" --- ```ts -$useLibraryNamespace( +function $useLibraryNamespace( context, entity, ... namespaces): void diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmCommonTypeOpenAPIRef.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmCommonTypeOpenAPIRef.md new file mode 100644 index 0000000000..66a7926242 --- /dev/null +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmCommonTypeOpenAPIRef.md @@ -0,0 +1,25 @@ +--- +jsApi: true +title: "[F] getArmCommonTypeOpenAPIRef" + +--- +```ts +function getArmCommonTypeOpenAPIRef( + program, + entity, + params): string | undefined +``` + +Get the common-types.json ref for the given common type. + +## Parameters + +| Parameter | Type | +| :------ | :------ | +| `program` | `Program` | +| `entity` | `Model` \| `ModelProperty` | +| `params` | [`ArmCommonTypesResolutionOptions`](../interfaces/ArmCommonTypesResolutionOptions.md) | + +## Returns + +`string` \| `undefined` diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmCommonTypesVersion.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmCommonTypesVersion.md index ccd9eac512..b34121bbf2 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmCommonTypesVersion.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmCommonTypesVersion.md @@ -4,7 +4,7 @@ title: "[F] getArmCommonTypesVersion" --- ```ts -getArmCommonTypesVersion(program, entity): string | undefined +function getArmCommonTypesVersion(program, entity): string | undefined ``` Returns the ARM common-types version used by the service. @@ -14,7 +14,7 @@ Returns the ARM common-types version used by the service. | Parameter | Type | Description | | :------ | :------ | :------ | | `program` | `Program` | - | -| `entity` | `EnumMember` \| `Namespace` | Target of the decorator. Must be `Namespace` or `EnumMember` type | +| `entity` | `Namespace` \| `EnumMember` | Target of the decorator. Must be `Namespace` or `EnumMember` type | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmCommonTypesVersions.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmCommonTypesVersions.md index 2440a0bd6c..fd1d91e75f 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmCommonTypesVersions.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmCommonTypesVersions.md @@ -4,7 +4,7 @@ title: "[F] getArmCommonTypesVersions" --- ```ts -getArmCommonTypesVersions(program): ArmCommonTypeVersions | undefined +function getArmCommonTypesVersions(program): ArmCommonTypeVersions ``` ## Parameters @@ -15,4 +15,4 @@ getArmCommonTypesVersions(program): ArmCommonTypeVersions | undefined ## Returns -[`ArmCommonTypeVersions`](../interfaces/ArmCommonTypeVersions.md) \| `undefined` +[`ArmCommonTypeVersions`](../interfaces/ArmCommonTypeVersions.md) diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmProviderNamespace.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmProviderNamespace.md index 219774104c..4d85bd5e4b 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmProviderNamespace.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmProviderNamespace.md @@ -4,7 +4,7 @@ title: "[F] getArmProviderNamespace" --- ```ts -getArmProviderNamespace(program, entity): string | undefined +function getArmProviderNamespace(program, entity): string | undefined ``` Get the ARM provider namespace for a given entity @@ -14,7 +14,7 @@ Get the ARM provider namespace for a given entity | Parameter | Type | Description | | :------ | :------ | :------ | | `program` | `Program` | | -| `entity` | `Model` \| `Namespace` | | +| `entity` | `Namespace` \| `Model` | | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmResource.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmResource.md index 5657fa3e2d..ea28ddc9cc 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmResource.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmResource.md @@ -4,7 +4,7 @@ title: "[F] getArmResource" --- ```ts -getArmResource(program, resourceType): ArmResourceDetails | undefined +function getArmResource(program, resourceType): ArmResourceDetails | undefined ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmResourceInfo.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmResourceInfo.md index 8032ed314e..b179c91529 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmResourceInfo.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmResourceInfo.md @@ -4,7 +4,7 @@ title: "[F] getArmResourceInfo" --- ```ts -getArmResourceInfo(program, resourceType): ArmResourceDetails | undefined +function getArmResourceInfo(program, resourceType): ArmResourceDetails | undefined ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmResourceKind.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmResourceKind.md index 10ffab309d..edb2dee75d 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmResourceKind.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmResourceKind.md @@ -4,7 +4,7 @@ title: "[F] getArmResourceKind" --- ```ts -getArmResourceKind(resourceType): ArmResourceKind | undefined +function getArmResourceKind(resourceType): ArmResourceKind | undefined ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmResources.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmResources.md index dcea2c72bd..18f864631c 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmResources.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getArmResources.md @@ -4,7 +4,7 @@ title: "[F] getArmResources" --- ```ts -getArmResources(program): ArmResourceDetails[] +function getArmResources(program): ArmResourceDetails[] ``` This function returns fully-resolved details about all ARM resources diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getResourceBaseType.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getResourceBaseType.md index e8f8b2cf8b..9dccd6bff7 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getResourceBaseType.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getResourceBaseType.md @@ -4,7 +4,7 @@ title: "[F] getResourceBaseType" --- ```ts -getResourceBaseType(program, resource): ResourceBaseType +function getResourceBaseType(program, resource): ResourceBaseType ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getSingletonResourceKey.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getSingletonResourceKey.md index 7f6b8a176e..a79b99bc93 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getSingletonResourceKey.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getSingletonResourceKey.md @@ -4,7 +4,7 @@ title: "[F] getSingletonResourceKey" --- ```ts -getSingletonResourceKey(program, resourceType): string | undefined +function getSingletonResourceKey(program, resourceType): string | undefined ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getUsedLibraryNamespaces.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getUsedLibraryNamespaces.md index 17ae9a895b..c4b3248a98 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getUsedLibraryNamespaces.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/getUsedLibraryNamespaces.md @@ -4,7 +4,7 @@ title: "[F] getUsedLibraryNamespaces" --- ```ts -getUsedLibraryNamespaces(program, namespace): Namespace[] | undefined +function getUsedLibraryNamespaces(program, namespace): Namespace[] | undefined ``` Determine which library namespaces are used in this provider diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/isArmCollectionAction.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/isArmCollectionAction.md index 8192d886bc..b264ec12f9 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/isArmCollectionAction.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/isArmCollectionAction.md @@ -4,7 +4,7 @@ title: "[F] isArmCollectionAction" --- ```ts -isArmCollectionAction(program, target): boolean +function isArmCollectionAction(program, target): boolean ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/isArmCommonType.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/isArmCommonType.md index 4a9e453317..733fb632b4 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/isArmCommonType.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/isArmCommonType.md @@ -4,7 +4,7 @@ title: "[F] isArmCommonType" --- ```ts -isArmCommonType(entity): boolean +function isArmCommonType(entity): boolean ``` Check if a given model or model property is an ARM common type. diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/isArmLibraryNamespace.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/isArmLibraryNamespace.md index ccd7807af0..6730db32ec 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/isArmLibraryNamespace.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/isArmLibraryNamespace.md @@ -4,7 +4,7 @@ title: "[F] isArmLibraryNamespace" --- ```ts -isArmLibraryNamespace(program, namespace): boolean +function isArmLibraryNamespace(program, namespace): boolean ``` Check if the given namespace contains ARM library types diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/isArmVirtualResource.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/isArmVirtualResource.md index 7908488956..a6560ffa89 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/isArmVirtualResource.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/isArmVirtualResource.md @@ -4,7 +4,7 @@ title: "[F] isArmVirtualResource" --- ```ts -isArmVirtualResource(program, target): boolean +function isArmVirtualResource(program, target): boolean ``` Determine if the given model is an external resource. diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/isSingletonResource.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/isSingletonResource.md index 8115a95851..466d67e5ae 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/isSingletonResource.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/isSingletonResource.md @@ -4,7 +4,7 @@ title: "[F] isSingletonResource" --- ```ts -isSingletonResource(program, resourceType): boolean +function isSingletonResource(program, resourceType): boolean ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/resolveResourceBaseType.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/resolveResourceBaseType.md index ff2dd38ea8..d1a29edaec 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/resolveResourceBaseType.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/resolveResourceBaseType.md @@ -4,7 +4,7 @@ title: "[F] resolveResourceBaseType" --- ```ts -resolveResourceBaseType(type?): ResourceBaseType +function resolveResourceBaseType(type?): ResourceBaseType ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/resolveResourceOperations.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/resolveResourceOperations.md index b00c142ca0..7a73e657cb 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/resolveResourceOperations.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/functions/resolveResourceOperations.md @@ -4,7 +4,7 @@ title: "[F] resolveResourceOperations" --- ```ts -resolveResourceOperations(program, resourceType): ArmResourceOperations +function resolveResourceOperations(program, resourceType): ArmResourceOperations ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/index.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/index.md index ae2b999871..35a6703011 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/index.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/index.md @@ -10,6 +10,7 @@ title: "[P] JS API" ## Interfaces - [ArmCommonTypeVersions](interfaces/ArmCommonTypeVersions.md) +- [ArmCommonTypesResolutionOptions](interfaces/ArmCommonTypesResolutionOptions.md) - [ArmLifecycleOperations](interfaces/ArmLifecycleOperations.md) - [ArmResourceDetails](interfaces/ArmResourceDetails.md) - [ArmResourceDetailsBase](interfaces/ArmResourceDetailsBase.md) @@ -24,6 +25,7 @@ title: "[P] JS API" ## Variables +- [$flags](variables/$flags.md) - [$lib](variables/$lib.md) - [$linter](variables/$linter.md) - [namespace](variables/namespace.md) @@ -52,6 +54,7 @@ title: "[P] JS API" - [$subscriptionResource](functions/$subscriptionResource.md) - [$tenantResource](functions/$tenantResource.md) - [$useLibraryNamespace](functions/$useLibraryNamespace.md) +- [getArmCommonTypeOpenAPIRef](functions/getArmCommonTypeOpenAPIRef.md) - [getArmCommonTypesVersion](functions/getArmCommonTypesVersion.md) - [getArmCommonTypesVersions](functions/getArmCommonTypesVersions.md) - [getArmProviderNamespace](functions/getArmProviderNamespace.md) diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/interfaces/ArmCommonTypesResolutionOptions.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/interfaces/ArmCommonTypesResolutionOptions.md new file mode 100644 index 0000000000..fc3f0aafa6 --- /dev/null +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/interfaces/ArmCommonTypesResolutionOptions.md @@ -0,0 +1,11 @@ +--- +jsApi: true +title: "[I] ArmCommonTypesResolutionOptions" + +--- +## Properties + +| Property | Modifier | Type | +| :------ | :------ | :------ | +| `service` | `readonly` | `Service` | +| `version?` | `readonly` | `string` | diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/interfaces/ArmResourceOperations.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/interfaces/ArmResourceOperations.md index e1e38ae927..d5fbdfe047 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/interfaces/ArmResourceOperations.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/interfaces/ArmResourceOperations.md @@ -7,6 +7,6 @@ title: "[I] ArmResourceOperations" | Property | Type | | :------ | :------ | -| `actions` | `Object` | +| `actions` | `object` | | `lifecycle` | [`ArmLifecycleOperations`](ArmLifecycleOperations.md) | -| `lists` | `Object` | +| `lists` | `object` | diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/variables/$flags.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/variables/$flags.md new file mode 100644 index 0000000000..a26ed5d995 --- /dev/null +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/variables/$flags.md @@ -0,0 +1,8 @@ +--- +jsApi: true +title: "[V] $flags" + +--- +```ts +const $flags: PackageFlags; +``` diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/variables/$lib.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/variables/$lib.md index 4f77ad13db..a48c429731 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/variables/$lib.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/js-api/variables/$lib.md @@ -4,38 +4,42 @@ title: "[V] $lib" --- ```ts -const $lib: TypeSpecLibrary, never>; +const $lib: TypeSpecLibrary, never>; ``` ## Type declaration | Member | Type | Value | | :------ | :------ | :------ | -| `arm-common-types-incompatible-version` | `Object` | - | -| `arm-common-types-incompatible-version.default` | `CallableMessage`<[`string`, `string`]\> | - | -| `arm-resource-circular-ancestry` | `Object` | - | +| `arm-common-types-incompatible-version` | `object` | ... | +| `arm-common-types-incompatible-version.default` | `CallableMessage`<[`string`, `string`]\> | ... | +| `arm-common-types-invalid-version` | `object` | ... | +| `arm-common-types-invalid-version.default` | `CallableMessage`<[`string`, `string`]\> | ... | +| `arm-resource-circular-ancestry` | `object` | ... | | `arm-resource-circular-ancestry.default` | `string` | "There is a loop in the ancestry of this resource. Please ensure that the \`@parentResource\` decorator contains the correct parent resource, and that parentage contains no cycles." | -| `arm-resource-duplicate-base-parameter` | `Object` | - | +| `arm-resource-duplicate-base-parameter` | `object` | ... | | `arm-resource-duplicate-base-parameter.default` | `string` | "Only one base parameter type is allowed per resource. Each resource may have only one of \`@parentResource\`, \`@resourceGroupResource\`, \`@tenantResource\`, \`@locationResource\`, or \`@subscriptionResource\` decorators." | -| `arm-resource-invalid-base-type` | `Object` | - | +| `arm-resource-invalid-base-type` | `object` | ... | | `arm-resource-invalid-base-type.default` | `string` | "The @armResourceInternal decorator can only be used on a type that ultimately extends TrackedResource, ProxyResource, or ExtensionResource." | -| `arm-resource-missing` | `Object` | - | -| `arm-resource-missing.default` | `CallableMessage`<[`string`]\> | - | -| `arm-resource-missing-arm-namespace` | `Object` | - | +| `arm-resource-missing` | `object` | ... | +| `arm-resource-missing.default` | `CallableMessage`<[`string`]\> | ... | +| `arm-resource-missing-arm-namespace` | `object` | ... | | `arm-resource-missing-arm-namespace.default` | `string` | "The @armProviderNamespace decorator must be used to define the ARM namespace of the service. This is best applied to the file-level namespace." | -| `arm-resource-missing-name-key-decorator` | `Object` | - | +| `arm-resource-missing-name-key-decorator` | `object` | ... | | `arm-resource-missing-name-key-decorator.default` | `string` | "Resource type 'name' property must have a @key decorator which defines its key name." | -| `arm-resource-missing-name-property` | `Object` | - | +| `arm-resource-missing-name-property` | `object` | ... | | `arm-resource-missing-name-property.default` | `string` | "Resource types must include a string property called 'name'." | -| `arm-resource-missing-name-segment-decorator` | `Object` | - | +| `arm-resource-missing-name-segment-decorator` | `object` | ... | | `arm-resource-missing-name-segment-decorator.default` | `string` | "Resource type 'name' property must have a @segment decorator which defines its path fragment." | -| `decorator-in-namespace` | `Object` | - | -| `decorator-in-namespace.default` | `CallableMessage`<[`string`]\> | - | -| `decorator-param-wrong-type` | `Object` | - | +| `decorator-in-namespace` | `object` | ... | +| `decorator-in-namespace.default` | `CallableMessage`<[`string`]\> | ... | +| `decorator-param-wrong-type` | `object` | ... | | `decorator-param-wrong-type.armUpdateProviderNamespace` | `string` | "The parameter to @armUpdateProviderNamespace must be an operation with a 'provider' parameter." | -| `parent-type` | `Object` | - | -| `parent-type.notResourceType` | `CallableMessage`<[`string`, `string`]\> | - | -| `resource-without-path-and-segment` | `Object` | - | +| `parent-type` | `object` | ... | +| `parent-type.notResourceType` | `CallableMessage`<[`string`, `string`]\> | ... | +| `resource-without-path-and-segment` | `object` | ... | | `resource-without-path-and-segment.default` | `string` | "Resource types must have a property with '@path\` and '@segment' decorators." | -| `single-arm-provider` | `Object` | - | +| `single-arm-provider` | `object` | ... | | `single-arm-provider.default` | `string` | "Only one @armProviderNamespace can be declared in a typespec spec at once." | +| `template-type-constraint-no-met` | `object` | ... | +| `template-type-constraint-no-met.default` | `CallableMessage`<[`string`, `string`, `string`, `string`]\> | ... | diff --git a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/linter.md b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/linter.md index 765417d90e..18d6ee076a 100644 --- a/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/linter.md +++ b/packages/website/versioned_docs/version-latest/libraries/azure-resource-manager/reference/linter.md @@ -24,35 +24,35 @@ Available ruleSets: ## Rules -| Name | Description | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | -| [`@azure-tools/typespec-azure-resource-manager/arm-no-record`](/libraries/azure-resource-manager/rules/no-record.md) | Don't use Record types for ARM resources. | -| `@azure-tools/typespec-azure-resource-manager/arm-common-types-version` | Specify the ARM common-types version using @armCommonTypesVersion. | -| [`@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes`](/libraries/azure-resource-manager/rules/delete-operation-response-codes.md) | Ensure delete operations have the appropriate status codes. | -| [`@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes`](/libraries/azure-resource-manager/rules/put-operation-response-codes.md) | Ensure put operations have the appropriate status codes. | -| [`@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes`](/libraries/azure-resource-manager/rules/post-operation-response-codes.md) | Ensure post operations have the appropriate status codes. | -| `@azure-tools/typespec-azure-resource-manager/arm-resource-action-no-segment` | `@armResourceAction` should not be used with `@segment`. | -| `@azure-tools/typespec-azure-resource-manager/arm-resource-duplicate-property` | Warn about duplicate properties in resources. | -| `@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property` | Check for invalid resource envelope properties. | -| `@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-version-format` | Check for valid versions. | -| `@azure-tools/typespec-azure-resource-manager/arm-resource-key-invalid-chars` | Arm resource key must contain only alphanumeric characters. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-name-pattern`](/libraries/azure-resource-manager/rules/resource-name-pattern.md) | The resource name parameter should be defined with a 'pattern' restriction. | -| `@azure-tools/typespec-azure-resource-manager/arm-resource-operation-response` | [RPC 008]: PUT, GET, PATCH & LIST must return the same resource schema. | -| `@azure-tools/typespec-azure-resource-manager/arm-resource-path-segment-invalid-chars` | Arm resource name must contain only alphanumeric characters. | -| `@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state` | Check for properly configured provisioningState property. | -| `@azure-tools/typespec-azure-resource-manager/beyond-nesting-levels` | Tracked Resources must use 3 or fewer levels of nesting. | -| `@azure-tools/typespec-azure-resource-manager/arm-resource-operation` | Validate ARM Resource operations. | -| `@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation` | Check for resources that must have a delete operation. | -| `@azure-tools/typespec-azure-resource-manager/empty-updateable-properties` | Should have updateable properties. | -| `@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator` | Each resource interface must have an @armResourceOperations decorator. | -| `@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb` | Actions must be HTTP Post operations. | -| `@azure-tools/typespec-azure-resource-manager/improper-subscription-list-operation` | Tenant and Extension resources should not define a list by subscription operation. | -| [`@azure-tools/typespec-azure-resource-manager/lro-location-header`](/libraries/azure-resource-manager/rules/lro-location-header.md) | A 202 response should include a Location response header. | -| [`@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers`](/libraries/azure-resource-manager/rules/missing-x-ms-identifiers.md) | Azure services should not use enums. | -| `@azure-tools/typespec-azure-resource-manager/no-response-body` | The body of 202 response should be empty. | -| `@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint` | Check for missing Operations interface. | -| `@azure-tools/typespec-azure-resource-manager/patch-envelope` | Patch envelope properties should match the resource properties. | -| `@azure-tools/typespec-azure-resource-manager/arm-resource-patch` | Validate ARM PATCH operations. | -| `@azure-tools/typespec-azure-resource-manager/resource-name` | Check the resource name. | -| `@azure-tools/typespec-azure-resource-manager/retry-after` | Check if retry-after header appears in response body. | -| [`@azure-tools/typespec-azure-resource-manager/unsupported-type`](/libraries/azure-resource-manager/rules/unsupported-type.md) | Check for unsupported ARM types. | +| Name | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [`@azure-tools/typespec-azure-resource-manager/arm-no-record`](/libraries/azure-resource-manager/rules/no-record.md) | Don't use Record types for ARM resources. | +| `@azure-tools/typespec-azure-resource-manager/arm-common-types-version` | Specify the ARM common-types version using @armCommonTypesVersion. | +| [`@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes`](/libraries/azure-resource-manager/rules/delete-operation-response-codes.md) | Ensure delete operations have the appropriate status codes. | +| [`@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes`](/libraries/azure-resource-manager/rules/put-operation-response-codes.md) | Ensure put operations have the appropriate status codes. | +| [`@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes`](/libraries/azure-resource-manager/rules/post-operation-response-codes.md) | Ensure post operations have the appropriate status codes. | +| `@azure-tools/typespec-azure-resource-manager/arm-resource-action-no-segment` | `@armResourceAction` should not be used with `@segment`. | +| `@azure-tools/typespec-azure-resource-manager/arm-resource-duplicate-property` | Warn about duplicate properties in resources. | +| `@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property` | Check for invalid resource envelope properties. | +| `@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-version-format` | Check for valid versions. | +| `@azure-tools/typespec-azure-resource-manager/arm-resource-key-invalid-chars` | Arm resource key must contain only alphanumeric characters. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-name-pattern`](/libraries/azure-resource-manager/rules/resource-name-pattern.md) | The resource name parameter should be defined with a 'pattern' restriction. | +| `@azure-tools/typespec-azure-resource-manager/arm-resource-operation-response` | [RPC 008]: PUT, GET, PATCH & LIST must return the same resource schema. | +| `@azure-tools/typespec-azure-resource-manager/arm-resource-path-segment-invalid-chars` | Arm resource name must contain only alphanumeric characters. | +| `@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state` | Check for properly configured provisioningState property. | +| `@azure-tools/typespec-azure-resource-manager/beyond-nesting-levels` | Tracked Resources must use 3 or fewer levels of nesting. | +| `@azure-tools/typespec-azure-resource-manager/arm-resource-operation` | Validate ARM Resource operations. | +| `@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation` | Check for resources that must have a delete operation. | +| `@azure-tools/typespec-azure-resource-manager/empty-updateable-properties` | Should have updateable properties. | +| `@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator` | Each resource interface must have an @armResourceOperations decorator. | +| `@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb` | Actions must be HTTP Post operations. | +| `@azure-tools/typespec-azure-resource-manager/improper-subscription-list-operation` | Tenant and Extension resources should not define a list by subscription operation. | +| [`@azure-tools/typespec-azure-resource-manager/lro-location-header`](/libraries/azure-resource-manager/rules/lro-location-header.md) | A 202 response should include a Location response header. | +| [`@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers`](/libraries/azure-resource-manager/rules/missing-x-ms-identifiers.md) | Array properties should describe their identifying properties with x-ms-identifiers. Decorate the property with @OpenAPI.extension("x-ms-identifiers", [id-prop]) where "id-prop" is a list of the names of identifying properties in the item type. | +| `@azure-tools/typespec-azure-resource-manager/no-response-body` | The body of 202 response should be empty. | +| `@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint` | Check for missing Operations interface. | +| `@azure-tools/typespec-azure-resource-manager/patch-envelope` | Patch envelope properties should match the resource properties. | +| `@azure-tools/typespec-azure-resource-manager/arm-resource-patch` | Validate ARM PATCH operations. | +| `@azure-tools/typespec-azure-resource-manager/resource-name` | Check the resource name. | +| `@azure-tools/typespec-azure-resource-manager/retry-after` | Check if retry-after header appears in response body. | +| [`@azure-tools/typespec-azure-resource-manager/unsupported-type`](/libraries/azure-resource-manager/rules/unsupported-type.md) | Check for unsupported ARM types. | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/decorators.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/decorators.md index 408d308352..4efe92395c 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/decorators.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/decorators.md @@ -45,7 +45,7 @@ the access result is undefined. // Access.internal @access(Access.internal) model ModelToHide { -prop: valueof string + prop: string; } // Access.internal @access(Access.internal) @@ -315,7 +315,7 @@ all models that are included in operations. ```typespec @exclude("python") model ModelToExclude { - prop: valueof string; + prop: string; } ``` @@ -373,7 +373,7 @@ all models that are included in operations. ```typespec @include("python") model ModelToInclude { - prop: valueof string; + prop: string; } ``` diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$access.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$access.md index 15cd85c07b..5268982942 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$access.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$access.md @@ -4,7 +4,7 @@ title: "[F] $access" --- ```ts -$access( +function $access( context, entity, value, @@ -16,7 +16,7 @@ $access( | Parameter | Type | | :------ | :------ | | `context` | `DecoratorContext` | -| `entity` | `Model` \| `Enum` \| `Operation` \| `Union` | +| `entity` | `Enum` \| `Model` \| `Operation` \| `Union` | | `value` | `EnumMember` | | `scope`? | `string` | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$client.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$client.md index 3e6e1d5b85..fa63c14eeb 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$client.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$client.md @@ -4,7 +4,7 @@ title: "[F] $client" --- ```ts -$client( +function $client( context, target, options?, @@ -16,7 +16,7 @@ $client( | Parameter | Type | | :------ | :------ | | `context` | `DecoratorContext` | -| `target` | `Interface` \| `Namespace` | +| `target` | `Namespace` \| `Interface` | | `options`? | `Model` | | `scope`? | `string` | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$clientFormat.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$clientFormat.md index 289bb74165..5d9c9271dd 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$clientFormat.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$clientFormat.md @@ -4,7 +4,7 @@ title: "[F] $clientFormat" --- ```ts -$clientFormat( +function $clientFormat( context, target, format, diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$clientName.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$clientName.md index 4a682bd961..39f71e577d 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$clientName.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$clientName.md @@ -4,7 +4,7 @@ title: "[F] $clientName" --- ```ts -$clientName( +function $clientName( context, entity, value, diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$convenientAPI.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$convenientAPI.md index 93b761e634..8d7b714f04 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$convenientAPI.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$convenientAPI.md @@ -4,7 +4,7 @@ title: "[F] $convenientAPI" --- ```ts -$convenientAPI( +function $convenientAPI( context, entity, value, diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$exclude.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$exclude.md index ca0a16cefa..d4859c1586 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$exclude.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$exclude.md @@ -4,7 +4,7 @@ title: "[F] $exclude" --- ```ts -$exclude( +function $exclude( context, entity, scope?): void diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$flattenProperty.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$flattenProperty.md index 9312721198..6912147e11 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$flattenProperty.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$flattenProperty.md @@ -4,7 +4,7 @@ title: "[F] $flattenProperty" --- ```ts -$flattenProperty( +function $flattenProperty( context, target, scope?): void diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$include.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$include.md index c2b1dccfb9..a57e2a6863 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$include.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$include.md @@ -4,7 +4,7 @@ title: "[F] $include" --- ```ts -$include( +function $include( context, entity, scope?): void diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$internal.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$internal.md index b5ccd4562c..48f41381b8 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$internal.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$internal.md @@ -4,7 +4,7 @@ title: "[F] $internal" --- ```ts -$internal( +function $internal( context, target, scope?): void diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$operationGroup.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$operationGroup.md index d1d5c74a8f..190e52d21a 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$operationGroup.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$operationGroup.md @@ -4,7 +4,7 @@ title: "[F] $operationGroup" --- ```ts -$operationGroup( +function $operationGroup( context, target, scope?): void @@ -15,7 +15,7 @@ $operationGroup( | Parameter | Type | | :------ | :------ | | `context` | `DecoratorContext` | -| `target` | `Interface` \| `Namespace` | +| `target` | `Namespace` \| `Interface` | | `scope`? | `string` | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$protocolAPI.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$protocolAPI.md index e49a541b74..c7fae6c5be 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$protocolAPI.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$protocolAPI.md @@ -4,7 +4,7 @@ title: "[F] $protocolAPI" --- ```ts -$protocolAPI( +function $protocolAPI( context, entity, value, diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$usage.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$usage.md index 669c7d8e91..a57934dc7a 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$usage.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/$usage.md @@ -4,7 +4,7 @@ title: "[F] $usage" --- ```ts -$usage( +function $usage( context, entity, value, @@ -16,7 +16,7 @@ $usage( | Parameter | Type | | :------ | :------ | | `context` | `DecoratorContext` | -| `entity` | `Model` \| `Enum` \| `Union` | +| `entity` | `Enum` \| `Model` \| `Union` | | `value` | `EnumMember` \| `Union` | | `scope`? | `string` | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/addEncodeInfo.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/addEncodeInfo.md index 9db5ea1a38..c1f22fedc5 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/addEncodeInfo.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/addEncodeInfo.md @@ -4,7 +4,7 @@ title: "[F] addEncodeInfo" --- ```ts -addEncodeInfo( +function addEncodeInfo( context, type, propertyType, @@ -20,7 +20,7 @@ type. | Parameter | Type | Description | | :------ | :------ | :------ | | `context` | `TCGCContext` | sdk context | -| `type` | `Scalar` \| `ModelProperty` | the original typespec type. Used to grab the encoding decorator off of | +| `type` | `ModelProperty` \| `Scalar` | the original typespec type. Used to grab the encoding decorator off of | | `propertyType` | [`SdkType`](../type-aliases/SdkType.md) | the type of the property, i.e. the internal type that we add the encoding info onto | | `defaultContentType`? | `string` | - | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/addFormatInfo.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/addFormatInfo.md index 8a5c5c9004..ec7f2a3964 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/addFormatInfo.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/addFormatInfo.md @@ -4,7 +4,7 @@ title: "[F] addFormatInfo" --- ```ts -addFormatInfo( +function addFormatInfo( context, type, propertyType): void @@ -19,7 +19,7 @@ type. | Parameter | Type | Description | | :------ | :------ | :------ | | `context` | `TCGCContext` | sdk context | -| `type` | `Scalar` \| `ModelProperty` | the original typespec type. Used to grab the format decorator off of | +| `type` | `ModelProperty` \| `Scalar` | the original typespec type. Used to grab the format decorator off of | | `propertyType` | [`SdkType`](../type-aliases/SdkType.md) | the type of the property, i.e. the internal type that we add the format info onto | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/createDiagnostic.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/createDiagnostic.md index d1eef18109..c37db1ac32 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/createDiagnostic.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/createDiagnostic.md @@ -4,14 +4,14 @@ title: "[F] createDiagnostic" --- ```ts -createDiagnostic(diag): Diagnostic +function createDiagnostic(diag): Diagnostic ``` ## Type parameters | Type parameter | | :------ | -| `C` extends +| `C` *extends* \| `"client-name"` \| `"client-service"` \| `"unknown-client-format"` @@ -35,13 +35,13 @@ createDiagnostic(diag): Diagnostic \| `"no-corresponding-method-param"` \| `"unsupported-protocol"` \| `"no-emitter-name"` | -| `M` extends `string` \| `number` \| `symbol` | +| `M` *extends* `string` \| `number` \| `symbol` | ## Parameters | Parameter | Type | | :------ | :------ | -| `diag` | `DiagnosticReport`<`Object`, `C`, `M`\> | +| `diag` | `DiagnosticReport`<`object`, `C`, `M`\> | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/createSdkContext.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/createSdkContext.md index ecb5a95cde..2b0468464c 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/createSdkContext.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/createSdkContext.md @@ -4,7 +4,7 @@ title: "[F] createSdkContext" --- ```ts -createSdkContext( +function createSdkContext( context, emitterName?, options?): SdkContext @@ -14,8 +14,8 @@ options?): SdkContext | Type parameter | Value | | :------ | :------ | -| `TOptions` extends `Record`<`string`, `any`\> | [`SdkEmitterOptions`](../interfaces/SdkEmitterOptions.md) | -| `TServiceOperation` extends [`SdkHttpOperation`](../interfaces/SdkHttpOperation.md) | [`SdkHttpOperation`](../interfaces/SdkHttpOperation.md) | +| `TOptions` *extends* `Record`<`string`, `any`\> | [`SdkEmitterOptions`](../interfaces/SdkEmitterOptions.md) | +| `TServiceOperation` *extends* [`SdkHttpOperation`](../interfaces/SdkHttpOperation.md) | [`SdkHttpOperation`](../interfaces/SdkHttpOperation.md) | ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/createStateSymbol.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/createStateSymbol.md index ce69a5a61b..630075c05c 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/createStateSymbol.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/createStateSymbol.md @@ -4,7 +4,7 @@ title: "[F] createStateSymbol" --- ```ts -createStateSymbol(name): symbol +function createStateSymbol(name): symbol ``` Get or create a symbol with the given name unique for that library. diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getAccess.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getAccess.md index 3182d4f4ba..c4026a197c 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getAccess.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getAccess.md @@ -4,7 +4,7 @@ title: "[F] getAccess" --- ```ts -getAccess(context, entity): AccessFlags | undefined +function getAccess(context, entity): AccessFlags ``` ## Parameters @@ -12,8 +12,8 @@ getAccess(context, entity): AccessFlags | undefined | Parameter | Type | | :------ | :------ | | `context` | `TCGCContext` | -| `entity` | `Model` \| `Enum` \| `Operation` \| `Union` | +| `entity` | `Enum` \| `Model` \| `Operation` \| `Union` | ## Returns -[`AccessFlags`](../type-aliases/AccessFlags.md) \| `undefined` +[`AccessFlags`](../type-aliases/AccessFlags.md) diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getAccessOverride.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getAccessOverride.md index 8bab999a0e..73fa988a63 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getAccessOverride.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getAccessOverride.md @@ -4,7 +4,7 @@ title: "[F] getAccessOverride" --- ```ts -getAccessOverride(context, entity): AccessFlags | undefined +function getAccessOverride(context, entity): AccessFlags | undefined ``` ## Parameters @@ -12,7 +12,7 @@ getAccessOverride(context, entity): AccessFlags | undefined | Parameter | Type | | :------ | :------ | | `context` | `TCGCContext` | -| `entity` | `Model` \| `Enum` \| `Operation` \| `Union` | +| `entity` | `Enum` \| `Model` \| `Operation` \| `Union` | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getAllModels.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getAllModels.md index 042c7d190c..0e67113f65 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getAllModels.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getAllModels.md @@ -4,7 +4,7 @@ title: "[F] getAllModels" --- ```ts -getAllModels(context, options): (SdkModelType | SdkEnumType)[] +function getAllModels(context, options): (SdkModelType | SdkEnumType)[] ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getAllModelsWithDiagnostics.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getAllModelsWithDiagnostics.md index e759190f47..7d213c352e 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getAllModelsWithDiagnostics.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getAllModelsWithDiagnostics.md @@ -4,7 +4,7 @@ title: "[F] getAllModelsWithDiagnostics" --- ```ts -getAllModelsWithDiagnostics(context, options): [(SdkModelType | SdkEnumType)[], readonly Diagnostic[]] +function getAllModelsWithDiagnostics(context, options): [(SdkModelType | SdkEnumType)[], readonly Diagnostic[]] ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getClient.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getClient.md index a7adf43680..4073a04021 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getClient.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getClient.md @@ -4,7 +4,7 @@ title: "[F] getClient" --- ```ts -getClient(context, type): SdkClient | undefined +function getClient(context, type): SdkClient | undefined ``` Return the client object for the given namespace or interface, or undefined if the given namespace or interface is not a client. @@ -14,7 +14,7 @@ Return the client object for the given namespace or interface, or undefined if t | Parameter | Type | Description | | :------ | :------ | :------ | | `context` | `TCGCContext` | TCGCContext | -| `type` | `Interface` \| `Namespace` | Type to check | +| `type` | `Namespace` \| `Interface` | Type to check | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getClientFormat.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getClientFormat.md index c4957b282e..e46ded0195 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getClientFormat.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getClientFormat.md @@ -4,7 +4,7 @@ title: "[F] getClientFormat" --- ```ts -getClientFormat(context, entity): ClientFormat | undefined +function getClientFormat(context, entity): ClientFormat | undefined ``` Gets additional information on how to serialize / deserialize TYPESPEC standard types depending diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getClientNameOverride.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getClientNameOverride.md index 89551ac6a9..4cec620d7e 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getClientNameOverride.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getClientNameOverride.md @@ -4,7 +4,7 @@ title: "[F] getClientNameOverride" --- ```ts -getClientNameOverride(context, entity): string | undefined +function getClientNameOverride(context, entity): string | undefined ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getClientNamespaceString.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getClientNamespaceString.md index 04af6e0fe1..875236a1b3 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getClientNamespaceString.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getClientNamespaceString.md @@ -4,7 +4,7 @@ title: "[F] getClientNamespaceString" --- ```ts -getClientNamespaceString(context): string | undefined +function getClientNamespaceString(context): string | undefined ``` Get the client's namespace for generation. If package-name is passed in config, we return diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getClientType.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getClientType.md index e9ac25de95..3513b5be23 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getClientType.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getClientType.md @@ -4,7 +4,7 @@ title: "[F] getClientType" --- ```ts -getClientType( +function getClientType( context, type, operation?): SdkType diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getClientTypeWithDiagnostics.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getClientTypeWithDiagnostics.md index 550849a916..1942e4695c 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getClientTypeWithDiagnostics.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getClientTypeWithDiagnostics.md @@ -4,7 +4,7 @@ title: "[F] getClientTypeWithDiagnostics" --- ```ts -getClientTypeWithDiagnostics( +function getClientTypeWithDiagnostics( context, type, operation?): [SdkType, readonly Diagnostic[]] diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getCrossLanguageDefinitionId.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getCrossLanguageDefinitionId.md index 7f7099d53c..d22b8b4ff3 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getCrossLanguageDefinitionId.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getCrossLanguageDefinitionId.md @@ -4,21 +4,21 @@ title: "[F] getCrossLanguageDefinitionId" --- ```ts -getCrossLanguageDefinitionId(type, name?): string +function getCrossLanguageDefinitionId( + context, + type, + appendNamespace): string ``` Helper function to return cross language definition id for a type ## Parameters -| Parameter | Type | Description | -| :------ | :------ | :------ | -| `type` | `Object` | | -| `type.interface`? | `Interface` | - | -| `type.kind`? | `string` | - | -| `type.name`? | `string` | - | -| `type.namespace`? | `Namespace` | - | -| `name`? | `string` | - | +| Parameter | Type | Default value | Description | +| :------ | :------ | :------ | :------ | +| `context` | `TCGCContext` | `undefined` | - | +| `type` | \| `Namespace` \| `Enum` \| `Interface` \| `Model` \| `ModelProperty` \| `Operation` \| `Scalar` \| `Union` | `undefined` | | +| `appendNamespace` | `boolean` | `true` | - | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getCrossLanguagePackageId.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getCrossLanguagePackageId.md index 6049dab73f..9e3cd87d16 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getCrossLanguagePackageId.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getCrossLanguagePackageId.md @@ -4,7 +4,7 @@ title: "[F] getCrossLanguagePackageId" --- ```ts -getCrossLanguagePackageId(context): [string, readonly Diagnostic[]] +function getCrossLanguagePackageId(context): [string, readonly Diagnostic[]] ``` Helper function return the cross langauge package id for a package diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getDefaultApiVersion.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getDefaultApiVersion.md index eb2c38c3c5..18fa006213 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getDefaultApiVersion.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getDefaultApiVersion.md @@ -4,7 +4,7 @@ title: "[F] getDefaultApiVersion" --- ```ts -getDefaultApiVersion(context, serviceNamespace): Version | undefined +function getDefaultApiVersion(context, serviceNamespace): Version | undefined ``` Return the default api version for a versioned service. Will return undefined if one does not exist diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getEffectivePayloadType.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getEffectivePayloadType.md index 5ec0b83db5..6c3375b148 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getEffectivePayloadType.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getEffectivePayloadType.md @@ -4,7 +4,7 @@ title: "[F] getEffectivePayloadType" --- ```ts -getEffectivePayloadType(context, type): Model +function getEffectivePayloadType(context, type): Model ``` If the given type is an anonymous model and all of its properties excluding diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getEmitterTargetName.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getEmitterTargetName.md index 9c0b1db1ca..5e46331765 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getEmitterTargetName.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getEmitterTargetName.md @@ -4,7 +4,7 @@ title: "[F] getEmitterTargetName" --- ```ts -getEmitterTargetName(context): string +function getEmitterTargetName(context): string ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getGeneratedName.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getGeneratedName.md index a01f009b82..7c6441722d 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getGeneratedName.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getGeneratedName.md @@ -4,7 +4,7 @@ title: "[F] getGeneratedName" --- ```ts -getGeneratedName( +function getGeneratedName( context, type, operation?): string @@ -17,7 +17,7 @@ Create a name for anonymous model | Parameter | Type | Description | | :------ | :------ | :------ | | `context` | `TCGCContext` | | -| `type` | `Model` \| `Union` | | +| `type` | `Model` \| `Union` \| `TspLiteralType` | | | `operation`? | `Operation` | - | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getHttpOperationWithCache.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getHttpOperationWithCache.md index df2a47aa6a..9ed95ba6ce 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getHttpOperationWithCache.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getHttpOperationWithCache.md @@ -4,7 +4,7 @@ title: "[F] getHttpOperationWithCache" --- ```ts -getHttpOperationWithCache(context, operation): HttpOperation +function getHttpOperationWithCache(context, operation): HttpOperation ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getKnownScalars.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getKnownScalars.md index fb7cdc1530..72b3490ce1 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getKnownScalars.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getKnownScalars.md @@ -4,7 +4,7 @@ title: "[F] getKnownScalars" --- ```ts -getKnownScalars(): Record +function getKnownScalars(): Record ``` ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getLibraryName.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getLibraryName.md index c90c2d33ee..430f3cf304 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getLibraryName.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getLibraryName.md @@ -4,7 +4,7 @@ title: "[F] getLibraryName" --- ```ts -getLibraryName(context, type): string +function getLibraryName(context, type): string ``` Get the library name of a property / parameter / operation / model / enum. Takes projections into account @@ -21,7 +21,7 @@ Returns name in the following order of priority | Parameter | Type | Description | | :------ | :------ | :------ | | `context` | `TCGCContext` | | -| `type` | `Type` & `Object` | | +| `type` | `Type` & `object` | | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getOperationGroup.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getOperationGroup.md index 5ec812d2a6..ec85707fc4 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getOperationGroup.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getOperationGroup.md @@ -4,7 +4,7 @@ title: "[F] getOperationGroup" --- ```ts -getOperationGroup(context, type): SdkOperationGroup | undefined +function getOperationGroup(context, type): SdkOperationGroup | undefined ``` Return the operation group object for the given namespace or interface or undefined is not an operation group. @@ -14,7 +14,7 @@ Return the operation group object for the given namespace or interface or undefi | Parameter | Type | Description | | :------ | :------ | :------ | | `context` | `TCGCContext` | TCGCContext | -| `type` | `Interface` \| `Namespace` | Type to check | +| `type` | `Namespace` \| `Interface` | Type to check | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getPropertyNames.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getPropertyNames.md index 26ae7e5ef6..5944ecacf6 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getPropertyNames.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getPropertyNames.md @@ -4,7 +4,7 @@ title: "[F] getPropertyNames" --- ```ts -getPropertyNames(context, property): [string, string] +function getPropertyNames(context, property): [string, string] ``` Get the library and wire name of a model property. Takes diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkArrayOrDict.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkArrayOrDict.md index 1dc719502b..2f08630180 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkArrayOrDict.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkArrayOrDict.md @@ -4,7 +4,7 @@ title: "[F] getSdkArrayOrDict" --- ```ts -getSdkArrayOrDict( +function getSdkArrayOrDict( context, type, operation?): SdkDictionaryType | SdkArrayType | undefined diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkArrayOrDictWithDiagnostics.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkArrayOrDictWithDiagnostics.md index 66ad63f7c9..60ed325be3 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkArrayOrDictWithDiagnostics.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkArrayOrDictWithDiagnostics.md @@ -4,7 +4,7 @@ title: "[F] getSdkArrayOrDictWithDiagnostics" --- ```ts -getSdkArrayOrDictWithDiagnostics( +function getSdkArrayOrDictWithDiagnostics( context, type, operation?): [SdkDictionaryType | SdkArrayType | undefined, readonly Diagnostic[]] diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkBuiltInType.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkBuiltInType.md index aef4d6999f..91432bfa1a 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkBuiltInType.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkBuiltInType.md @@ -4,7 +4,7 @@ title: "[F] getSdkBuiltInType" --- ```ts -getSdkBuiltInType(context, type): SdkBuiltInType +function getSdkBuiltInType(context, type): SdkBuiltInType ``` ## Parameters @@ -12,7 +12,7 @@ getSdkBuiltInType(context, type): SdkBuiltInType | Parameter | Type | | :------ | :------ | | `context` | `TCGCContext` | -| `type` | \| `Scalar` \| `StringLiteral` \| `NumericLiteral` \| `BooleanLiteral` \| `IntrinsicType` | +| `type` | \| `BooleanLiteral` \| `IntrinsicType` \| `NumericLiteral` \| `Scalar` \| `StringLiteral` | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkConstant.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkConstant.md index 864c6b2b79..29ec69b96f 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkConstant.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkConstant.md @@ -4,7 +4,10 @@ title: "[F] getSdkConstant" --- ```ts -getSdkConstant(context, type): SdkConstantType +function getSdkConstant( + context, + type, + operation?): SdkConstantType ``` ## Parameters @@ -12,7 +15,8 @@ getSdkConstant(context, type): SdkConstantType | Parameter | Type | | :------ | :------ | | `context` | `TCGCContext` | -| `type` | `StringLiteral` \| `NumericLiteral` \| `BooleanLiteral` | +| `type` | `BooleanLiteral` \| `NumericLiteral` \| `StringLiteral` | +| `operation`? | `Operation` | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkCredentialParameter.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkCredentialParameter.md index 168b5dada6..a4b2ef5076 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkCredentialParameter.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkCredentialParameter.md @@ -4,7 +4,7 @@ title: "[F] getSdkCredentialParameter" --- ```ts -getSdkCredentialParameter(context, client): SdkCredentialParameter | undefined +function getSdkCredentialParameter(context, client): SdkCredentialParameter | undefined ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkDurationType.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkDurationType.md index c6fd3010a5..07ca96fccc 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkDurationType.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkDurationType.md @@ -4,7 +4,7 @@ title: "[F] getSdkDurationType" --- ```ts -getSdkDurationType(context, type): SdkDurationType +function getSdkDurationType(context, type): SdkDurationType ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkEnum.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkEnum.md index 34899a7ac4..5e2dfdf40b 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkEnum.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkEnum.md @@ -4,7 +4,7 @@ title: "[F] getSdkEnum" --- ```ts -getSdkEnum( +function getSdkEnum( context, type, operation?): SdkEnumType diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkEnumValue.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkEnumValue.md index 299cf62e10..b84b45d291 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkEnumValue.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkEnumValue.md @@ -4,7 +4,7 @@ title: "[F] getSdkEnumValue" --- ```ts -getSdkEnumValue( +function getSdkEnumValue( context, enumType, type): SdkEnumValueType diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkModel.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkModel.md index 7c6e8be4e1..8292065fae 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkModel.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkModel.md @@ -4,7 +4,7 @@ title: "[F] getSdkModel" --- ```ts -getSdkModel( +function getSdkModel( context, type, operation?): SdkModelType diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkModelPropertyType.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkModelPropertyType.md index 5d852f2417..d7c9b58cba 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkModelPropertyType.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkModelPropertyType.md @@ -4,7 +4,7 @@ title: "[F] getSdkModelPropertyType" --- ```ts -getSdkModelPropertyType( +function getSdkModelPropertyType( context, type, operation?): [SdkModelPropertyType, readonly Diagnostic[]] diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkModelPropertyTypeBase.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkModelPropertyTypeBase.md index edc0be4b81..c278a126a0 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkModelPropertyTypeBase.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkModelPropertyTypeBase.md @@ -4,7 +4,7 @@ title: "[F] getSdkModelPropertyTypeBase" --- ```ts -getSdkModelPropertyTypeBase( +function getSdkModelPropertyTypeBase( context, type, operation?): [SdkModelPropertyTypeBase, readonly Diagnostic[]] diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkModelWithDiagnostics.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkModelWithDiagnostics.md index dd608939f5..09e0595104 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkModelWithDiagnostics.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkModelWithDiagnostics.md @@ -4,7 +4,7 @@ title: "[F] getSdkModelWithDiagnostics" --- ```ts -getSdkModelWithDiagnostics( +function getSdkModelWithDiagnostics( context, type, operation?): [SdkModelType, readonly Diagnostic[]] diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkTuple.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkTuple.md index 375a8fa991..28193ec80f 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkTuple.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkTuple.md @@ -4,7 +4,7 @@ title: "[F] getSdkTuple" --- ```ts -getSdkTuple( +function getSdkTuple( context, type, operation?): SdkTupleType diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkTupleWithDiagnostics.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkTupleWithDiagnostics.md index b7a156ef8e..8ad0e3a260 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkTupleWithDiagnostics.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkTupleWithDiagnostics.md @@ -4,7 +4,7 @@ title: "[F] getSdkTupleWithDiagnostics" --- ```ts -getSdkTupleWithDiagnostics( +function getSdkTupleWithDiagnostics( context, type, operation?): [SdkTupleType, readonly Diagnostic[]] diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkUnion.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkUnion.md index 0de2624786..378a9106bc 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkUnion.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkUnion.md @@ -4,7 +4,7 @@ title: "[F] getSdkUnion" --- ```ts -getSdkUnion( +function getSdkUnion( context, type, operation?): SdkType diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkUnionEnum.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkUnionEnum.md new file mode 100644 index 0000000000..882e49da01 --- /dev/null +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkUnionEnum.md @@ -0,0 +1,23 @@ +--- +jsApi: true +title: "[F] getSdkUnionEnum" + +--- +```ts +function getSdkUnionEnum( + context, + type, + operation?): SdkEnumType +``` + +## Parameters + +| Parameter | Type | +| :------ | :------ | +| `context` | `TCGCContext` | +| `type` | `UnionEnum` | +| `operation`? | `Operation` | + +## Returns + +[`SdkEnumType`](../interfaces/SdkEnumType.md) diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkUnionWithDiagnostics.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkUnionWithDiagnostics.md index dc970a9252..7bc71301f1 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkUnionWithDiagnostics.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getSdkUnionWithDiagnostics.md @@ -4,7 +4,7 @@ title: "[F] getSdkUnionWithDiagnostics" --- ```ts -getSdkUnionWithDiagnostics( +function getSdkUnionWithDiagnostics( context, type, operation?): [SdkType, readonly Diagnostic[]] diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getUsage.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getUsage.md index f471e525f6..f5c4555e28 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getUsage.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getUsage.md @@ -4,7 +4,7 @@ title: "[F] getUsage" --- ```ts -getUsage(context, entity): UsageFlags +function getUsage(context, entity): UsageFlags ``` ## Parameters @@ -12,7 +12,7 @@ getUsage(context, entity): UsageFlags | Parameter | Type | | :------ | :------ | | `context` | `TCGCContext` | -| `entity` | `Model` \| `Enum` | +| `entity` | `Enum` \| `Model` | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getUsageOverride.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getUsageOverride.md index 381d046db5..25cb15630e 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getUsageOverride.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getUsageOverride.md @@ -4,7 +4,7 @@ title: "[F] getUsageOverride" --- ```ts -getUsageOverride(context, entity): UsageFlags | undefined +function getUsageOverride(context, entity): UsageFlags | undefined ``` ## Parameters @@ -12,7 +12,7 @@ getUsageOverride(context, entity): UsageFlags | undefined | Parameter | Type | | :------ | :------ | | `context` | `TCGCContext` | -| `entity` | `Model` \| `Enum` \| `Union` | +| `entity` | `Enum` \| `Model` \| `Union` | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getWireName.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getWireName.md index a3db7fe582..c3345e5fc0 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getWireName.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/getWireName.md @@ -4,7 +4,7 @@ title: "[F] getWireName" --- ```ts -getWireName(context, type): string +function getWireName(context, type): string ``` Get the serialized name of a type. @@ -14,7 +14,7 @@ Get the serialized name of a type. | Parameter | Type | Description | | :------ | :------ | :------ | | `context` | `TCGCContext` | | -| `type` | `Type` & `Object` | | +| `type` | `Type` & `object` | | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isApiVersion.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isApiVersion.md index 73413da728..0e58f59b58 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isApiVersion.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isApiVersion.md @@ -4,7 +4,7 @@ title: "[F] isApiVersion" --- ```ts -isApiVersion(context, type): boolean +function isApiVersion(context, type): boolean ``` Return whether a parameter is the Api Version parameter of a client @@ -14,7 +14,7 @@ Return whether a parameter is the Api Version parameter of a client | Parameter | Type | | :------ | :------ | | `context` | `TCGCContext` | -| `type` | `Object` | +| `type` | `object` | | `type.name` | `string` | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isErrorOrChildOfError.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isErrorOrChildOfError.md index d450dd535d..79066f5a53 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isErrorOrChildOfError.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isErrorOrChildOfError.md @@ -4,7 +4,7 @@ title: "[F] isErrorOrChildOfError" --- ```ts -isErrorOrChildOfError(context, model): boolean +function isErrorOrChildOfError(context, model): boolean ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isExclude.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isExclude.md index e2072d14cb..7871467b1c 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isExclude.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isExclude.md @@ -4,7 +4,7 @@ title: "[F] isExclude" --- ```ts -isExclude(context, entity): boolean +function isExclude(context, entity): boolean ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isInOperationGroup.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isInOperationGroup.md index 7230d5aa03..07480fece5 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isInOperationGroup.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isInOperationGroup.md @@ -4,7 +4,7 @@ title: "[F] isInOperationGroup" --- ```ts -isInOperationGroup(context, type): boolean +function isInOperationGroup(context, type): boolean ``` Check an operation is in an operation group. @@ -14,7 +14,7 @@ Check an operation is in an operation group. | Parameter | Type | Description | | :------ | :------ | :------ | | `context` | `TCGCContext` | TCGCContext | -| `type` | `Interface` \| `Namespace` \| `Operation` | Type to check | +| `type` | `Namespace` \| `Interface` \| `Operation` | Type to check | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isInclude.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isInclude.md index 11febdcc9f..362fd24946 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isInclude.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isInclude.md @@ -4,7 +4,7 @@ title: "[F] isInclude" --- ```ts -isInclude(context, entity): boolean +function isInclude(context, entity): boolean ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isInternal.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isInternal.md index e483822e70..c2f599c455 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isInternal.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isInternal.md @@ -4,7 +4,7 @@ title: "[F] isInternal" --- ```ts -isInternal(context, entity): boolean +function isInternal(context, entity): boolean ``` Whether a model / operation is internal or not. If it's internal, emitters @@ -15,7 +15,7 @@ should not expose them to users | Parameter | Type | Description | | :------ | :------ | :------ | | `context` | `TCGCContext` | TCGCContext | -| `entity` | `Model` \| `Enum` \| `Operation` \| `Union` | model / operation that we want to check is internal or not | +| `entity` | `Enum` \| `Model` \| `Operation` \| `Union` | model / operation that we want to check is internal or not | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isOperationGroup.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isOperationGroup.md index be76c266d1..2191c7b4db 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isOperationGroup.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isOperationGroup.md @@ -4,7 +4,7 @@ title: "[F] isOperationGroup" --- ```ts -isOperationGroup(context, type): boolean +function isOperationGroup(context, type): boolean ``` Check a namespace or interface is an operation group. @@ -14,7 +14,7 @@ Check a namespace or interface is an operation group. | Parameter | Type | Description | | :------ | :------ | :------ | | `context` | `TCGCContext` | TCGCContext | -| `type` | `Interface` \| `Namespace` | Type to check | +| `type` | `Namespace` \| `Interface` | Type to check | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isReadOnly.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isReadOnly.md index 9d72c94066..fc23693d24 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isReadOnly.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isReadOnly.md @@ -4,7 +4,7 @@ title: "[F] isReadOnly" --- ```ts -isReadOnly(property): boolean +function isReadOnly(property): boolean ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isSdkBuiltInKind.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isSdkBuiltInKind.md index 5a334765b4..80b9155684 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isSdkBuiltInKind.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isSdkBuiltInKind.md @@ -4,7 +4,7 @@ title: "[F] isSdkBuiltInKind" --- ```ts -isSdkBuiltInKind(kind): kind is SdkBuiltInKinds +function isSdkBuiltInKind(kind): kind is SdkBuiltInKinds ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isSdkDatetimeEncodings.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isSdkDatetimeEncodings.md index 45838e7473..584be13d62 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isSdkDatetimeEncodings.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isSdkDatetimeEncodings.md @@ -4,7 +4,7 @@ title: "[F] isSdkDatetimeEncodings" --- ```ts -isSdkDatetimeEncodings(encoding): encoding is DateTimeKnownEncoding +function isSdkDatetimeEncodings(encoding): encoding is DateTimeKnownEncoding ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isSdkFloatKind.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isSdkFloatKind.md index 0f44d14f7b..59ce14cfaf 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isSdkFloatKind.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isSdkFloatKind.md @@ -4,7 +4,7 @@ title: "[F] isSdkFloatKind" --- ```ts -isSdkFloatKind(kind): kind is "float" | "decimal" | "float32" | "float64" | "decimal128" +function isSdkFloatKind(kind): kind is "float" | "decimal" | "float32" | "float64" | "decimal128" ``` ## Parameters @@ -15,4 +15,4 @@ isSdkFloatKind(kind): kind is "float" | "decimal" | "float32" | "float64" | "dec ## Returns -`kind is "float" | "decimal" | "float32" | "float64" | "decimal128"` +kind is "float" \| "decimal" \| "float32" \| "float64" \| "decimal128" diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isSdkIntKind.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isSdkIntKind.md index 2d867123ec..98680b69b1 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isSdkIntKind.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/isSdkIntKind.md @@ -4,7 +4,7 @@ title: "[F] isSdkIntKind" --- ```ts -isSdkIntKind(kind): kind is "numeric" | "integer" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32" | "int64" | "uint64" | "safeint" +function isSdkIntKind(kind): kind is "numeric" | "integer" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32" | "int64" | "uint64" | "safeint" ``` ## Parameters @@ -15,4 +15,4 @@ isSdkIntKind(kind): kind is "numeric" | "integer" | "int8" | "uint8" | "int16" | ## Returns -`kind is "numeric" | "integer" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32" | "int64" | "uint64" | "safeint"` +kind is "numeric" \| "integer" \| "int8" \| "uint8" \| "int16" \| "uint16" \| "int32" \| "uint32" \| "int64" \| "uint64" \| "safeint" diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/listClients.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/listClients.md index 9284d67196..24a71a0a10 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/listClients.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/listClients.md @@ -4,7 +4,7 @@ title: "[F] listClients" --- ```ts -listClients(context): SdkClient[] +function listClients(context): SdkClient[] ``` List all the clients. diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/listOperationGroups.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/listOperationGroups.md index bccc020403..7debdfd44f 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/listOperationGroups.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/listOperationGroups.md @@ -4,7 +4,7 @@ title: "[F] listOperationGroups" --- ```ts -listOperationGroups( +function listOperationGroups( context, group, ignoreHierarchy): SdkOperationGroup[] diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/listOperationsInOperationGroup.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/listOperationsInOperationGroup.md index 392a37feea..18cc526223 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/listOperationsInOperationGroup.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/listOperationsInOperationGroup.md @@ -4,7 +4,7 @@ title: "[F] listOperationsInOperationGroup" --- ```ts -listOperationsInOperationGroup( +function listOperationsInOperationGroup( context, group, ignoreHierarchy): Operation[] diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/reportDiagnostic.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/reportDiagnostic.md index 05d00453c2..37d363fec2 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/reportDiagnostic.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/reportDiagnostic.md @@ -4,14 +4,14 @@ title: "[F] reportDiagnostic" --- ```ts -reportDiagnostic(program, diag): void +function reportDiagnostic(program, diag): void ``` ## Type parameters | Type parameter | | :------ | -| `C` extends +| `C` *extends* \| `"client-name"` \| `"client-service"` \| `"unknown-client-format"` @@ -35,14 +35,14 @@ reportDiagnostic(program, diag): void \| `"no-corresponding-method-param"` \| `"unsupported-protocol"` \| `"no-emitter-name"` | -| `M` extends `string` \| `number` \| `symbol` | +| `M` *extends* `string` \| `number` \| `symbol` | ## Parameters | Parameter | Type | | :------ | :------ | | `program` | `Program` | -| `diag` | `DiagnosticReport`<`Object`, `C`, `M`\> | +| `diag` | `DiagnosticReport`<`object`, `C`, `M`\> | ## Returns diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/shouldFlattenProperty.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/shouldFlattenProperty.md index a783d5357f..05ec3f01da 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/shouldFlattenProperty.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/shouldFlattenProperty.md @@ -4,7 +4,7 @@ title: "[F] shouldFlattenProperty" --- ```ts -shouldFlattenProperty(context, target): boolean +function shouldFlattenProperty(context, target): boolean ``` Whether a model property should be flattened or not. diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/shouldGenerateConvenient.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/shouldGenerateConvenient.md index 2de9f42ee8..63122a3de0 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/shouldGenerateConvenient.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/shouldGenerateConvenient.md @@ -4,7 +4,7 @@ title: "[F] shouldGenerateConvenient" --- ```ts -shouldGenerateConvenient(context, entity): boolean +function shouldGenerateConvenient(context, entity): boolean ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/shouldGenerateProtocol.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/shouldGenerateProtocol.md index d777974683..6084bec9fb 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/shouldGenerateProtocol.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/functions/shouldGenerateProtocol.md @@ -4,7 +4,7 @@ title: "[F] shouldGenerateProtocol" --- ```ts -shouldGenerateProtocol(context, entity): boolean +function shouldGenerateProtocol(context, entity): boolean ``` ## Parameters diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/index.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/index.md index 5a2740737d..370543226f 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/index.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/index.md @@ -37,6 +37,7 @@ title: "[P] JS API" - [SdkMethodResponse](interfaces/SdkMethodResponse.md) - [SdkModelPropertyTypeBase](interfaces/SdkModelPropertyTypeBase.md) - [SdkModelType](interfaces/SdkModelType.md) +- [SdkNullableType](interfaces/SdkNullableType.md) - [SdkOperationGroup](interfaces/SdkOperationGroup.md) - [SdkPackage](interfaces/SdkPackage.md) - [SdkPagingServiceMethod](interfaces/SdkPagingServiceMethod.md) @@ -125,6 +126,7 @@ title: "[P] JS API" - [getSdkTuple](functions/getSdkTuple.md) - [getSdkTupleWithDiagnostics](functions/getSdkTupleWithDiagnostics.md) - [getSdkUnion](functions/getSdkUnion.md) +- [getSdkUnionEnum](functions/getSdkUnionEnum.md) - [getSdkUnionWithDiagnostics](functions/getSdkUnionWithDiagnostics.md) - [getUsage](functions/getUsage.md) - [getUsageOverride](functions/getUsageOverride.md) diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkArrayType.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkArrayType.md index 4a4058778c..b17fcc4adc 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkArrayType.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkArrayType.md @@ -9,13 +9,11 @@ title: "[I] SdkArrayType" ## Properties -| Property | Type | Description | Overrides | Inherited from | -| :------ | :------ | :------ | :------ | :------ | -| `__raw?` | `Type` | - | `SdkTypeBase.__raw` | `SdkTypeBase.__raw` | -| `deprecation?` | `string` | - | `SdkTypeBase.deprecation` | `SdkTypeBase.deprecation` | -| `description?` | `string` | - | `SdkTypeBase.description` | `SdkTypeBase.description` | -| `details?` | `string` | - | `SdkTypeBase.details` | `SdkTypeBase.details` | -| `kind` | `"array"` | - | `SdkTypeBase.kind` | `SdkTypeBase.kind` | -| ~~`nullable`~~ | `boolean` | **Deprecated**
Moving `.nullable` onto the parameter itself for fidelity.
https://github.com/Azure/typespec-azure/issues/448 | `SdkTypeBase.nullable` | `SdkTypeBase.nullable` | -| `nullableValues` | `boolean` | - | - | - | -| `valueType` | [`SdkType`](../type-aliases/SdkType.md) | - | - | - | +| Property | Type | Overrides | Inherited from | +| :------ | :------ | :------ | :------ | +| `__raw?` | `Type` | `SdkTypeBase.__raw` | `SdkTypeBase.__raw` | +| `deprecation?` | `string` | `SdkTypeBase.deprecation` | `SdkTypeBase.deprecation` | +| `description?` | `string` | `SdkTypeBase.description` | `SdkTypeBase.description` | +| `details?` | `string` | `SdkTypeBase.details` | `SdkTypeBase.details` | +| `kind` | `"array"` | `SdkTypeBase.kind` | `SdkTypeBase.kind` | +| `valueType` | [`SdkType`](../type-aliases/SdkType.md) | - | - | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkBasicServiceMethod.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkBasicServiceMethod.md index 9080ca06a3..6d559ba7d8 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkBasicServiceMethod.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkBasicServiceMethod.md @@ -11,14 +11,14 @@ title: "[I] SdkBasicServiceMethod" | Type parameter | | :------ | -| `TServiceOperation` extends [`SdkServiceOperation`](../type-aliases/SdkServiceOperation.md) | +| `TServiceOperation` *extends* [`SdkServiceOperation`](../type-aliases/SdkServiceOperation.md) | ## Properties | Property | Type | Inherited from | | :------ | :------ | :------ | | `__raw?` | `Operation` | `SdkServiceMethodBase.__raw` | -| `access` | `undefined` \| [`AccessFlags`](../type-aliases/AccessFlags.md) | `SdkServiceMethodBase.access` | +| `access` | [`AccessFlags`](../type-aliases/AccessFlags.md) | `SdkServiceMethodBase.access` | | `apiVersions` | `string`[] | `SdkServiceMethodBase.apiVersions` | | `crossLanguageDefintionId` | `string` | `SdkServiceMethodBase.crossLanguageDefintionId` | | `description?` | `string` | `SdkServiceMethodBase.description` | @@ -54,7 +54,7 @@ getParameterMapping(serviceParam): SdkModelPropertyType[] #### Deprecated -This property is deprecated. Access .correspondingMethodParams on the service parameters instead +This property is deprecated. Access .correspondingMethodParams on the service parameters instead. *** @@ -74,4 +74,4 @@ getResponseMapping(): undefined | string #### Deprecated -This property is deprecated. Access .resultPath on the method response instead +This property is deprecated. Access .resultPath on the method response instead. diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkBodyModelPropertyType.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkBodyModelPropertyType.md index eb8b050948..e587d9cddb 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkBodyModelPropertyType.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkBodyModelPropertyType.md @@ -14,6 +14,7 @@ title: "[I] SdkBodyModelPropertyType" | `__raw?` | `ModelProperty` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`__raw` | | `apiVersions` | `string`[] | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`apiVersions` | | `clientDefaultValue?` | `any` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`clientDefaultValue` | +| `crossLanguageDefinitionId` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`crossLanguageDefinitionId` | | `description?` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`description` | | `details?` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`details` | | `discriminator` | `boolean` | - | - | @@ -23,8 +24,7 @@ title: "[I] SdkBodyModelPropertyType" | `isMultipartFileInput` | `boolean` | - | - | | `kind` | `"property"` | - | - | | `name` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`name` | -| ~~`nameInClient`~~ | `string` | **Deprecated**
This property is deprecated. Use `.name` instead.
https://github.com/Azure/typespec-azure/issues/446 | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nameInClient` | -| `nullable` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nullable` | +| ~~`nameInClient`~~ | `string` |

**Deprecated**

This property is deprecated. Use `.name` instead.

| [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nameInClient` | | `onClient` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`onClient` | | `optional` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`optional` | | `serializedName` | `string` | - | - | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkBodyParameter.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkBodyParameter.md index f547cc4845..c05ca4f4d7 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkBodyParameter.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkBodyParameter.md @@ -16,6 +16,7 @@ title: "[I] SdkBodyParameter" | `clientDefaultValue?` | `any` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`clientDefaultValue` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`clientDefaultValue` | | `contentTypes` | `string`[] | - | - | - | | `correspondingMethodParams` | [`SdkModelPropertyType`](../type-aliases/SdkModelPropertyType.md)[] | - | - | - | +| `crossLanguageDefinitionId` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`crossLanguageDefinitionId` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`crossLanguageDefinitionId` | | `defaultContentType` | `string` | - | - | - | | `description?` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`description` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`description` | | `details?` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`details` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`details` | @@ -23,8 +24,7 @@ title: "[I] SdkBodyParameter" | `isGeneratedName` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`isGeneratedName` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`isGeneratedName` | | `kind` | `"body"` | - | - | - | | `name` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`name` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`name` | -| ~~`nameInClient`~~ | `string` | **Deprecated**
This property is deprecated. Use `.name` instead.
https://github.com/Azure/typespec-azure/issues/446 | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nameInClient` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nameInClient` | -| `nullable` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nullable` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nullable` | +| ~~`nameInClient`~~ | `string` |

**Deprecated**

This property is deprecated. Use `.name` instead.

| [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nameInClient` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nameInClient` | | `onClient` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`onClient` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`onClient` | | `optional` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`optional` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`optional` | | `type` | [`SdkType`](../type-aliases/SdkType.md) | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`type` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`type` | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkBuiltInType.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkBuiltInType.md index 16123d79f7..f4ffdc5af9 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkBuiltInType.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkBuiltInType.md @@ -9,12 +9,11 @@ title: "[I] SdkBuiltInType" ## Properties -| Property | Type | Description | Overrides | Inherited from | -| :------ | :------ | :------ | :------ | :------ | -| `__raw?` | `Type` | - | `SdkTypeBase.__raw` | `SdkTypeBase.__raw` | -| `deprecation?` | `string` | - | `SdkTypeBase.deprecation` | `SdkTypeBase.deprecation` | -| `description?` | `string` | - | `SdkTypeBase.description` | `SdkTypeBase.description` | -| `details?` | `string` | - | `SdkTypeBase.details` | `SdkTypeBase.details` | -| `encode` | `string` | - | - | - | -| `kind` | [`SdkBuiltInKinds`](../type-aliases/SdkBuiltInKinds.md) | - | `SdkTypeBase.kind` | `SdkTypeBase.kind` | -| ~~`nullable`~~ | `boolean` | **Deprecated**
Moving `.nullable` onto the parameter itself for fidelity.
https://github.com/Azure/typespec-azure/issues/448 | `SdkTypeBase.nullable` | `SdkTypeBase.nullable` | +| Property | Type | Overrides | Inherited from | +| :------ | :------ | :------ | :------ | +| `__raw?` | `Type` | `SdkTypeBase.__raw` | `SdkTypeBase.__raw` | +| `deprecation?` | `string` | `SdkTypeBase.deprecation` | `SdkTypeBase.deprecation` | +| `description?` | `string` | `SdkTypeBase.description` | `SdkTypeBase.description` | +| `details?` | `string` | `SdkTypeBase.details` | `SdkTypeBase.details` | +| `encode` | `string` | - | - | +| `kind` | [`SdkBuiltInKinds`](../type-aliases/SdkBuiltInKinds.md) | `SdkTypeBase.kind` | `SdkTypeBase.kind` | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkClient.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkClient.md index 35c400e30b..1fdda14759 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkClient.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkClient.md @@ -7,9 +7,9 @@ title: "[I] SdkClient" | Property | Type | Description | | :------ | :------ | :------ | -| ~~`arm`~~ | `boolean` | **Deprecated**
This property is deprecated. Look at `.arm` on `SdkContext` instead. | +| ~~`arm`~~ | `boolean` |

**Deprecated**

This property is deprecated. Look at `.arm` on `SdkContext` instead.

| | `crossLanguageDefinitionId` | `string` | - | | `kind` | `"SdkClient"` | - | | `name` | `string` | - | | `service` | `Namespace` | - | -| `type` | `Interface` \| `Namespace` | - | +| `type` | `Namespace` \| `Interface` | - | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkClientType.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkClientType.md index 51a63489e5..64aca734c3 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkClientType.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkClientType.md @@ -7,14 +7,14 @@ title: "[I] SdkClientType" | Type parameter | | :------ | -| `TServiceOperation` extends [`SdkServiceOperation`](../type-aliases/SdkServiceOperation.md) | +| `TServiceOperation` *extends* [`SdkServiceOperation`](../type-aliases/SdkServiceOperation.md) | ## Properties | Property | Type | Description | | :------ | :------ | :------ | | `apiVersions` | `string`[] | - | -| ~~`arm`~~ | `boolean` | **Deprecated**
This property is deprecated. Look at `.arm` on `SdkContext` instead. | +| ~~`arm`~~ | `boolean` |

**Deprecated**

This property is deprecated. Look at `.arm` on `SdkContext` instead.

| | `description?` | `string` | - | | `details?` | `string` | - | | `initialization` | [`SdkInitializationType`](SdkInitializationType.md) | - | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkConstantType.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkConstantType.md index 55a5bbc1b2..d16bc415a8 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkConstantType.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkConstantType.md @@ -9,13 +9,14 @@ title: "[I] SdkConstantType" ## Properties -| Property | Type | Description | Overrides | Inherited from | -| :------ | :------ | :------ | :------ | :------ | -| `__raw?` | `Type` | - | `SdkTypeBase.__raw` | `SdkTypeBase.__raw` | -| `deprecation?` | `string` | - | `SdkTypeBase.deprecation` | `SdkTypeBase.deprecation` | -| `description?` | `string` | - | `SdkTypeBase.description` | `SdkTypeBase.description` | -| `details?` | `string` | - | `SdkTypeBase.details` | `SdkTypeBase.details` | -| `kind` | `"constant"` | - | `SdkTypeBase.kind` | `SdkTypeBase.kind` | -| ~~`nullable`~~ | `boolean` | **Deprecated**
Moving `.nullable` onto the parameter itself for fidelity.
https://github.com/Azure/typespec-azure/issues/448 | `SdkTypeBase.nullable` | `SdkTypeBase.nullable` | -| `value` | `null` \| `string` \| `number` \| `boolean` | - | - | - | -| `valueType` | [`SdkBuiltInType`](SdkBuiltInType.md) | - | - | - | +| Property | Type | Overrides | Inherited from | +| :------ | :------ | :------ | :------ | +| `__raw?` | `Type` | `SdkTypeBase.__raw` | `SdkTypeBase.__raw` | +| `deprecation?` | `string` | `SdkTypeBase.deprecation` | `SdkTypeBase.deprecation` | +| `description?` | `string` | `SdkTypeBase.description` | `SdkTypeBase.description` | +| `details?` | `string` | `SdkTypeBase.details` | `SdkTypeBase.details` | +| `isGeneratedName` | `boolean` | - | - | +| `kind` | `"constant"` | `SdkTypeBase.kind` | `SdkTypeBase.kind` | +| `name` | `string` | - | - | +| `value` | `null` \| `string` \| `number` \| `boolean` | - | - | +| `valueType` | [`SdkBuiltInType`](SdkBuiltInType.md) | - | - | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkContext.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkContext.md index f29c790b6f..6ad98875a0 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkContext.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkContext.md @@ -11,20 +11,20 @@ title: "[I] SdkContext" | Type parameter | Value | | :------ | :------ | -| `TOptions` extends `object` | `Record`<`string`, `any`\> | -| `TServiceOperation` extends [`SdkServiceOperation`](../type-aliases/SdkServiceOperation.md) | [`SdkHttpOperation`](SdkHttpOperation.md) | +| `TOptions` *extends* `object` | `Record`<`string`, `any`\> | +| `TServiceOperation` *extends* [`SdkServiceOperation`](../type-aliases/SdkServiceOperation.md) | [`SdkHttpOperation`](SdkHttpOperation.md) | ## Properties | Property | Type | Inherited from | | :------ | :------ | :------ | | `__clients?` | [`SdkClientType`](SdkClientType.md)<`TServiceOperation`\>[] | - | -| `__namespaceToApiVersionClientDefaultValue` | `Map`<`Interface` \| `Namespace`, `undefined` \| `string`\> | `TCGCContext.__namespaceToApiVersionClientDefaultValue` | -| `__namespaceToApiVersionParameter` | `Map`<`Interface` \| `Namespace`, [`SdkParameter`](../type-aliases/SdkParameter.md)\> | `TCGCContext.__namespaceToApiVersionParameter` | -| `__namespaceToApiVersions` | `Map`<`Interface` \| `Namespace`, `string`[]\> | `TCGCContext.__namespaceToApiVersions` | +| `__namespaceToApiVersionClientDefaultValue` | `Map`<`Namespace` \| `Interface`, `undefined` \| `string`\> | `TCGCContext.__namespaceToApiVersionClientDefaultValue` | +| `__namespaceToApiVersionParameter` | `Map`<`Namespace` \| `Interface`, [`SdkParameter`](../type-aliases/SdkParameter.md)\> | `TCGCContext.__namespaceToApiVersionParameter` | | `__rawClients?` | [`SdkClient`](SdkClient.md)[] | `TCGCContext.__rawClients` | | `__service_projection?` | `Map`<`Namespace`, [`Namespace`, `undefined` \| `ProjectedProgram`]\> | `TCGCContext.__service_projection` | | `__subscriptionIdParameter?` | [`SdkParameter`](../type-aliases/SdkParameter.md) | `TCGCContext.__subscriptionIdParameter` | +| `__tspTypeToApiVersions` | `Map`<`Type`, `string`[]\> | `TCGCContext.__tspTypeToApiVersions` | | `apiVersion?` | `string` | `TCGCContext.apiVersion` | | `arm?` | `boolean` | `TCGCContext.arm` | | `diagnostics` | readonly `Diagnostic`[] | `TCGCContext.diagnostics` | @@ -35,7 +35,7 @@ title: "[I] SdkContext" | `flattenUnionAsEnum?` | `boolean` | `TCGCContext.flattenUnionAsEnum` | | `generateConvenienceMethods?` | `boolean` | `TCGCContext.generateConvenienceMethods` | | `generateProtocolMethods?` | `boolean` | `TCGCContext.generateProtocolMethods` | -| `generatedNames?` | `Map`<`Model` \| `Union`, `string`\> | `TCGCContext.generatedNames` | +| `generatedNames?` | `Map`<`Model` \| `Union` \| `TspLiteralType`, `string`\> | `TCGCContext.generatedNames` | | `httpOperationCache?` | `Map`<`Operation`, `HttpOperation`\> | `TCGCContext.httpOperationCache` | | `knownScalars?` | `Record`<`string`, [`SdkBuiltInKinds`](../type-aliases/SdkBuiltInKinds.md)\> | `TCGCContext.knownScalars` | | `modelsMap?` | `Map`<`Type`, [`SdkEnumType`](SdkEnumType.md) \| [`SdkModelType`](SdkModelType.md)\> | `TCGCContext.modelsMap` | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkCredentialParameter.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkCredentialParameter.md index 704a53bca1..073248b776 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkCredentialParameter.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkCredentialParameter.md @@ -14,14 +14,14 @@ title: "[I] SdkCredentialParameter" | `__raw?` | `ModelProperty` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`__raw` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`__raw` | | `apiVersions` | `string`[] | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`apiVersions` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`apiVersions` | | `clientDefaultValue?` | `any` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`clientDefaultValue` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`clientDefaultValue` | +| `crossLanguageDefinitionId` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`crossLanguageDefinitionId` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`crossLanguageDefinitionId` | | `description?` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`description` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`description` | | `details?` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`details` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`details` | | `isApiVersionParam` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`isApiVersionParam` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`isApiVersionParam` | | `isGeneratedName` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`isGeneratedName` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`isGeneratedName` | | `kind` | `"credential"` | - | - | - | | `name` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`name` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`name` | -| ~~`nameInClient`~~ | `string` | **Deprecated**
This property is deprecated. Use `.name` instead.
https://github.com/Azure/typespec-azure/issues/446 | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nameInClient` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nameInClient` | -| `nullable` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nullable` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nullable` | +| ~~`nameInClient`~~ | `string` |

**Deprecated**

This property is deprecated. Use `.name` instead.

| [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nameInClient` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nameInClient` | | `onClient` | `true` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`onClient` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`onClient` | | `optional` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`optional` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`optional` | | `type` | [`SdkUnionType`](SdkUnionType.md) \| [`SdkCredentialType`](SdkCredentialType.md) | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`type` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`type` | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkCredentialType.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkCredentialType.md index f646d8bc29..fbbfcee500 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkCredentialType.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkCredentialType.md @@ -9,12 +9,11 @@ title: "[I] SdkCredentialType" ## Properties -| Property | Type | Description | Overrides | Inherited from | -| :------ | :------ | :------ | :------ | :------ | -| `__raw?` | `Type` | - | `SdkTypeBase.__raw` | `SdkTypeBase.__raw` | -| `deprecation?` | `string` | - | `SdkTypeBase.deprecation` | `SdkTypeBase.deprecation` | -| `description?` | `string` | - | `SdkTypeBase.description` | `SdkTypeBase.description` | -| `details?` | `string` | - | `SdkTypeBase.details` | `SdkTypeBase.details` | -| `kind` | `"credential"` | - | `SdkTypeBase.kind` | `SdkTypeBase.kind` | -| ~~`nullable`~~ | `boolean` | **Deprecated**
Moving `.nullable` onto the parameter itself for fidelity.
https://github.com/Azure/typespec-azure/issues/448 | `SdkTypeBase.nullable` | `SdkTypeBase.nullable` | -| `scheme` | `HttpAuth` | - | - | - | +| Property | Type | Overrides | Inherited from | +| :------ | :------ | :------ | :------ | +| `__raw?` | `Type` | `SdkTypeBase.__raw` | `SdkTypeBase.__raw` | +| `deprecation?` | `string` | `SdkTypeBase.deprecation` | `SdkTypeBase.deprecation` | +| `description?` | `string` | `SdkTypeBase.description` | `SdkTypeBase.description` | +| `details?` | `string` | `SdkTypeBase.details` | `SdkTypeBase.details` | +| `kind` | `"credential"` | `SdkTypeBase.kind` | `SdkTypeBase.kind` | +| `scheme` | `HttpAuth` | - | - | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkDictionaryType.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkDictionaryType.md index 590a016e02..7144db348b 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkDictionaryType.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkDictionaryType.md @@ -9,14 +9,12 @@ title: "[I] SdkDictionaryType" ## Properties -| Property | Type | Description | Overrides | Inherited from | -| :------ | :------ | :------ | :------ | :------ | -| `__raw?` | `Type` | - | `SdkTypeBase.__raw` | `SdkTypeBase.__raw` | -| `deprecation?` | `string` | - | `SdkTypeBase.deprecation` | `SdkTypeBase.deprecation` | -| `description?` | `string` | - | `SdkTypeBase.description` | `SdkTypeBase.description` | -| `details?` | `string` | - | `SdkTypeBase.details` | `SdkTypeBase.details` | -| `keyType` | [`SdkType`](../type-aliases/SdkType.md) | - | - | - | -| `kind` | `"dict"` | - | `SdkTypeBase.kind` | `SdkTypeBase.kind` | -| ~~`nullable`~~ | `boolean` | **Deprecated**
Moving `.nullable` onto the parameter itself for fidelity.
https://github.com/Azure/typespec-azure/issues/448 | `SdkTypeBase.nullable` | `SdkTypeBase.nullable` | -| `nullableValues` | `boolean` | - | - | - | -| `valueType` | [`SdkType`](../type-aliases/SdkType.md) | - | - | - | +| Property | Type | Overrides | Inherited from | +| :------ | :------ | :------ | :------ | +| `__raw?` | `Type` | `SdkTypeBase.__raw` | `SdkTypeBase.__raw` | +| `deprecation?` | `string` | `SdkTypeBase.deprecation` | `SdkTypeBase.deprecation` | +| `description?` | `string` | `SdkTypeBase.description` | `SdkTypeBase.description` | +| `details?` | `string` | `SdkTypeBase.details` | `SdkTypeBase.details` | +| `keyType` | [`SdkType`](../type-aliases/SdkType.md) | - | - | +| `kind` | `"dict"` | `SdkTypeBase.kind` | `SdkTypeBase.kind` | +| `valueType` | [`SdkType`](../type-aliases/SdkType.md) | - | - | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkDurationType.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkDurationType.md index 9617031793..df99df22ef 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkDurationType.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkDurationType.md @@ -9,13 +9,12 @@ title: "[I] SdkDurationType" ## Properties -| Property | Type | Description | Overrides | Inherited from | -| :------ | :------ | :------ | :------ | :------ | -| `__raw?` | `Type` | - | `SdkTypeBase.__raw` | `SdkTypeBase.__raw` | -| `deprecation?` | `string` | - | `SdkTypeBase.deprecation` | `SdkTypeBase.deprecation` | -| `description?` | `string` | - | `SdkTypeBase.description` | `SdkTypeBase.description` | -| `details?` | `string` | - | `SdkTypeBase.details` | `SdkTypeBase.details` | -| `encode` | `DurationKnownEncoding` | - | - | - | -| `kind` | `"duration"` | - | `SdkTypeBase.kind` | `SdkTypeBase.kind` | -| ~~`nullable`~~ | `boolean` | **Deprecated**
Moving `.nullable` onto the parameter itself for fidelity.
https://github.com/Azure/typespec-azure/issues/448 | `SdkTypeBase.nullable` | `SdkTypeBase.nullable` | -| `wireType` | [`SdkBuiltInType`](SdkBuiltInType.md) | - | - | - | +| Property | Type | Overrides | Inherited from | +| :------ | :------ | :------ | :------ | +| `__raw?` | `Type` | `SdkTypeBase.__raw` | `SdkTypeBase.__raw` | +| `deprecation?` | `string` | `SdkTypeBase.deprecation` | `SdkTypeBase.deprecation` | +| `description?` | `string` | `SdkTypeBase.description` | `SdkTypeBase.description` | +| `details?` | `string` | `SdkTypeBase.details` | `SdkTypeBase.details` | +| `encode` | `DurationKnownEncoding` | - | - | +| `kind` | `"duration"` | `SdkTypeBase.kind` | `SdkTypeBase.kind` | +| `wireType` | [`SdkBuiltInType`](SdkBuiltInType.md) | - | - | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkEndpointParameter.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkEndpointParameter.md index 71abeb1bc8..0ab6c1b253 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkEndpointParameter.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkEndpointParameter.md @@ -14,14 +14,14 @@ title: "[I] SdkEndpointParameter" | `__raw?` | `ModelProperty` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`__raw` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`__raw` | | `apiVersions` | `string`[] | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`apiVersions` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`apiVersions` | | `clientDefaultValue?` | `any` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`clientDefaultValue` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`clientDefaultValue` | +| `crossLanguageDefinitionId` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`crossLanguageDefinitionId` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`crossLanguageDefinitionId` | | `description?` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`description` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`description` | | `details?` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`details` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`details` | | `isApiVersionParam` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`isApiVersionParam` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`isApiVersionParam` | | `isGeneratedName` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`isGeneratedName` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`isGeneratedName` | | `kind` | `"endpoint"` | - | - | - | | `name` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`name` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`name` | -| ~~`nameInClient`~~ | `string` | **Deprecated**
This property is deprecated. Use `.name` instead.
https://github.com/Azure/typespec-azure/issues/446 | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nameInClient` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nameInClient` | -| `nullable` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nullable` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nullable` | +| ~~`nameInClient`~~ | `string` |

**Deprecated**

This property is deprecated. Use `.name` instead.

| [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nameInClient` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nameInClient` | | `onClient` | `true` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`onClient` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`onClient` | | `optional` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`optional` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`optional` | | `serializedName?` | `string` | - | - | - | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkEndpointType.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkEndpointType.md index 5019df5176..0d1ce47157 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkEndpointType.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkEndpointType.md @@ -9,13 +9,12 @@ title: "[I] SdkEndpointType" ## Properties -| Property | Type | Description | Overrides | Inherited from | -| :------ | :------ | :------ | :------ | :------ | -| `__raw?` | `Type` | - | `SdkTypeBase.__raw` | `SdkTypeBase.__raw` | -| `deprecation?` | `string` | - | `SdkTypeBase.deprecation` | `SdkTypeBase.deprecation` | -| `description?` | `string` | - | `SdkTypeBase.description` | `SdkTypeBase.description` | -| `details?` | `string` | - | `SdkTypeBase.details` | `SdkTypeBase.details` | -| `kind` | `"endpoint"` | - | `SdkTypeBase.kind` | `SdkTypeBase.kind` | -| ~~`nullable`~~ | `boolean` | **Deprecated**
Moving `.nullable` onto the parameter itself for fidelity.
https://github.com/Azure/typespec-azure/issues/448 | `SdkTypeBase.nullable` | `SdkTypeBase.nullable` | -| `serverUrl` | `string` | - | - | - | -| `templateArguments` | [`SdkPathParameter`](SdkPathParameter.md)[] | - | - | - | +| Property | Type | Overrides | Inherited from | +| :------ | :------ | :------ | :------ | +| `__raw?` | `Type` | `SdkTypeBase.__raw` | `SdkTypeBase.__raw` | +| `deprecation?` | `string` | `SdkTypeBase.deprecation` | `SdkTypeBase.deprecation` | +| `description?` | `string` | `SdkTypeBase.description` | `SdkTypeBase.description` | +| `details?` | `string` | `SdkTypeBase.details` | `SdkTypeBase.details` | +| `kind` | `"endpoint"` | `SdkTypeBase.kind` | `SdkTypeBase.kind` | +| `serverUrl` | `string` | - | - | +| `templateArguments` | [`SdkPathParameter`](SdkPathParameter.md)[] | - | - | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkEnumType.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkEnumType.md index 96ef0a4125..984ab4aed1 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkEnumType.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkEnumType.md @@ -9,22 +9,21 @@ title: "[I] SdkEnumType" ## Properties -| Property | Type | Description | Overrides | Inherited from | -| :------ | :------ | :------ | :------ | :------ | -| `__raw?` | `Type` | - | `SdkTypeBase.__raw` | `SdkTypeBase.__raw` | -| `access?` | [`AccessFlags`](../type-aliases/AccessFlags.md) | - | - | - | -| `apiVersions` | `string`[] | - | - | - | -| `crossLanguageDefinitionId` | `string` | - | - | - | -| `deprecation?` | `string` | - | `SdkTypeBase.deprecation` | `SdkTypeBase.deprecation` | -| `description?` | `string` | - | `SdkTypeBase.description` | `SdkTypeBase.description` | -| `details?` | `string` | - | `SdkTypeBase.details` | `SdkTypeBase.details` | -| `isFixed` | `boolean` | - | - | - | -| `isFlags` | `boolean` | - | - | - | -| `isGeneratedName` | `boolean` | - | - | - | -| `isUnionAsEnum` | `boolean` | - | - | - | -| `kind` | `"enum"` | - | `SdkTypeBase.kind` | `SdkTypeBase.kind` | -| `name` | `string` | - | - | - | -| ~~`nullable`~~ | `boolean` | **Deprecated**
Moving `.nullable` onto the parameter itself for fidelity.
https://github.com/Azure/typespec-azure/issues/448 | `SdkTypeBase.nullable` | `SdkTypeBase.nullable` | -| `usage` | [`UsageFlags`](../enumerations/UsageFlags.md) | - | - | - | -| `valueType` | [`SdkBuiltInType`](SdkBuiltInType.md) | - | - | - | -| `values` | [`SdkEnumValueType`](SdkEnumValueType.md)[] | - | - | - | +| Property | Type | Overrides | Inherited from | +| :------ | :------ | :------ | :------ | +| `__raw?` | `Type` | `SdkTypeBase.__raw` | `SdkTypeBase.__raw` | +| `access` | [`AccessFlags`](../type-aliases/AccessFlags.md) | - | - | +| `apiVersions` | `string`[] | - | - | +| `crossLanguageDefinitionId` | `string` | - | - | +| `deprecation?` | `string` | `SdkTypeBase.deprecation` | `SdkTypeBase.deprecation` | +| `description?` | `string` | `SdkTypeBase.description` | `SdkTypeBase.description` | +| `details?` | `string` | `SdkTypeBase.details` | `SdkTypeBase.details` | +| `isFixed` | `boolean` | - | - | +| `isFlags` | `boolean` | - | - | +| `isGeneratedName` | `boolean` | - | - | +| `isUnionAsEnum` | `boolean` | - | - | +| `kind` | `"enum"` | `SdkTypeBase.kind` | `SdkTypeBase.kind` | +| `name` | `string` | - | - | +| `usage` | [`UsageFlags`](../enumerations/UsageFlags.md) | - | - | +| `valueType` | [`SdkBuiltInType`](SdkBuiltInType.md) | - | - | +| `values` | [`SdkEnumValueType`](SdkEnumValueType.md)[] | - | - | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkEnumValueType.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkEnumValueType.md index eacfe8d84e..5087d03a98 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkEnumValueType.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkEnumValueType.md @@ -9,15 +9,14 @@ title: "[I] SdkEnumValueType" ## Properties -| Property | Type | Description | Overrides | Inherited from | -| :------ | :------ | :------ | :------ | :------ | -| `__raw?` | `Type` | - | `SdkTypeBase.__raw` | `SdkTypeBase.__raw` | -| `deprecation?` | `string` | - | `SdkTypeBase.deprecation` | `SdkTypeBase.deprecation` | -| `description?` | `string` | - | `SdkTypeBase.description` | `SdkTypeBase.description` | -| `details?` | `string` | - | `SdkTypeBase.details` | `SdkTypeBase.details` | -| `enumType` | [`SdkEnumType`](SdkEnumType.md) | - | - | - | -| `kind` | `"enumvalue"` | - | `SdkTypeBase.kind` | `SdkTypeBase.kind` | -| `name` | `string` | - | - | - | -| ~~`nullable`~~ | `boolean` | **Deprecated**
Moving `.nullable` onto the parameter itself for fidelity.
https://github.com/Azure/typespec-azure/issues/448 | `SdkTypeBase.nullable` | `SdkTypeBase.nullable` | -| `value` | `string` \| `number` | - | - | - | -| `valueType` | [`SdkBuiltInType`](SdkBuiltInType.md) | - | - | - | +| Property | Type | Overrides | Inherited from | +| :------ | :------ | :------ | :------ | +| `__raw?` | `Type` | `SdkTypeBase.__raw` | `SdkTypeBase.__raw` | +| `deprecation?` | `string` | `SdkTypeBase.deprecation` | `SdkTypeBase.deprecation` | +| `description?` | `string` | `SdkTypeBase.description` | `SdkTypeBase.description` | +| `details?` | `string` | `SdkTypeBase.details` | `SdkTypeBase.details` | +| `enumType` | [`SdkEnumType`](SdkEnumType.md) | - | - | +| `kind` | `"enumvalue"` | `SdkTypeBase.kind` | `SdkTypeBase.kind` | +| `name` | `string` | - | - | +| `value` | `string` \| `number` | - | - | +| `valueType` | [`SdkBuiltInType`](SdkBuiltInType.md) | - | - | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkHeaderParameter.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkHeaderParameter.md index 2f9adc92d3..bf288aa5e3 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkHeaderParameter.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkHeaderParameter.md @@ -16,14 +16,14 @@ title: "[I] SdkHeaderParameter" | `clientDefaultValue?` | `any` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`clientDefaultValue` | | `collectionFormat?` | [`CollectionFormat`](../type-aliases/CollectionFormat.md) | - | - | | `correspondingMethodParams` | [`SdkModelPropertyType`](../type-aliases/SdkModelPropertyType.md)[] | - | - | +| `crossLanguageDefinitionId` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`crossLanguageDefinitionId` | | `description?` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`description` | | `details?` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`details` | | `isApiVersionParam` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`isApiVersionParam` | | `isGeneratedName` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`isGeneratedName` | | `kind` | `"header"` | - | - | | `name` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`name` | -| ~~`nameInClient`~~ | `string` | **Deprecated**
This property is deprecated. Use `.name` instead.
https://github.com/Azure/typespec-azure/issues/446 | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nameInClient` | -| `nullable` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nullable` | +| ~~`nameInClient`~~ | `string` |

**Deprecated**

This property is deprecated. Use `.name` instead.

| [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nameInClient` | | `onClient` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`onClient` | | `optional` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`optional` | | `serializedName` | `string` | - | - | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkHttpResponse.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkHttpResponse.md index c3fb110d3d..e55f971711 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkHttpResponse.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkHttpResponse.md @@ -17,5 +17,4 @@ title: "[I] SdkHttpResponse" | `defaultContentType?` | `string` | - | | `headers` | [`SdkServiceResponseHeader`](SdkServiceResponseHeader.md)[] | [`SdkServiceResponse`](SdkServiceResponse.md).`headers` | | `kind` | `"http"` | - | -| `nullable` | `boolean` | [`SdkServiceResponse`](SdkServiceResponse.md).`nullable` | | `type?` | [`SdkType`](../type-aliases/SdkType.md) | [`SdkServiceResponse`](SdkServiceResponse.md).`type` | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkInitializationType.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkInitializationType.md index 1d1eb9aab9..427044b8e9 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkInitializationType.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkInitializationType.md @@ -12,9 +12,8 @@ title: "[I] SdkInitializationType" | Property | Type | Description | Overrides | Inherited from | | :------ | :------ | :------ | :------ | :------ | | `__raw?` | `Type` | - | [`SdkModelType`](SdkModelType.md).`__raw` | [`SdkModelType`](SdkModelType.md).`__raw` | -| `access?` | [`AccessFlags`](../type-aliases/AccessFlags.md) | - | [`SdkModelType`](SdkModelType.md).`access` | [`SdkModelType`](SdkModelType.md).`access` | +| `access` | [`AccessFlags`](../type-aliases/AccessFlags.md) | - | [`SdkModelType`](SdkModelType.md).`access` | [`SdkModelType`](SdkModelType.md).`access` | | `additionalProperties?` | [`SdkType`](../type-aliases/SdkType.md) | - | [`SdkModelType`](SdkModelType.md).`additionalProperties` | [`SdkModelType`](SdkModelType.md).`additionalProperties` | -| `additionalPropertiesNullable?` | `boolean` | - | [`SdkModelType`](SdkModelType.md).`additionalPropertiesNullable` | [`SdkModelType`](SdkModelType.md).`additionalPropertiesNullable` | | `apiVersions` | `string`[] | - | [`SdkModelType`](SdkModelType.md).`apiVersions` | [`SdkModelType`](SdkModelType.md).`apiVersions` | | `baseModel?` | [`SdkModelType`](SdkModelType.md) | - | [`SdkModelType`](SdkModelType.md).`baseModel` | [`SdkModelType`](SdkModelType.md).`baseModel` | | `crossLanguageDefinitionId` | `string` | - | [`SdkModelType`](SdkModelType.md).`crossLanguageDefinitionId` | [`SdkModelType`](SdkModelType.md).`crossLanguageDefinitionId` | @@ -24,11 +23,10 @@ title: "[I] SdkInitializationType" | `discriminatedSubtypes?` | `Record`<`string`, [`SdkModelType`](SdkModelType.md)\> | - | [`SdkModelType`](SdkModelType.md).`discriminatedSubtypes` | [`SdkModelType`](SdkModelType.md).`discriminatedSubtypes` | | `discriminatorProperty?` | [`SdkModelPropertyType`](../type-aliases/SdkModelPropertyType.md) | - | [`SdkModelType`](SdkModelType.md).`discriminatorProperty` | [`SdkModelType`](SdkModelType.md).`discriminatorProperty` | | `discriminatorValue?` | `string` | - | [`SdkModelType`](SdkModelType.md).`discriminatorValue` | [`SdkModelType`](SdkModelType.md).`discriminatorValue` | -| ~~`isError`~~ | `boolean` | **Deprecated**
This property is deprecated. You should not need to check whether a model is an error model. | [`SdkModelType`](SdkModelType.md).`isError` | [`SdkModelType`](SdkModelType.md).`isError` | -| ~~`isFormDataType`~~ | `boolean` | **Deprecated**
This property is deprecated. Check the bitwise and value of UsageFlags.MultipartFormData nad the `.usage` property on this model | [`SdkModelType`](SdkModelType.md).`isFormDataType` | [`SdkModelType`](SdkModelType.md).`isFormDataType` | +| ~~`isError`~~ | `boolean` |

**Deprecated**

This property is deprecated. You should not need to check whether a model is an error model.

| [`SdkModelType`](SdkModelType.md).`isError` | [`SdkModelType`](SdkModelType.md).`isError` | +| ~~`isFormDataType`~~ | `boolean` |

**Deprecated**

This property is deprecated. Check the bitwise and value of UsageFlags.MultipartFormData and the `.usage` property on this model.

| [`SdkModelType`](SdkModelType.md).`isFormDataType` | [`SdkModelType`](SdkModelType.md).`isFormDataType` | | `isGeneratedName` | `boolean` | - | [`SdkModelType`](SdkModelType.md).`isGeneratedName` | [`SdkModelType`](SdkModelType.md).`isGeneratedName` | | `kind` | `"model"` | - | [`SdkModelType`](SdkModelType.md).`kind` | [`SdkModelType`](SdkModelType.md).`kind` | | `name` | `string` | - | [`SdkModelType`](SdkModelType.md).`name` | [`SdkModelType`](SdkModelType.md).`name` | -| ~~`nullable`~~ | `boolean` | **Deprecated**
Moving `.nullable` onto the parameter itself for fidelity.
https://github.com/Azure/typespec-azure/issues/448 | [`SdkModelType`](SdkModelType.md).`nullable` | [`SdkModelType`](SdkModelType.md).`nullable` | | `properties` | [`SdkParameter`](../type-aliases/SdkParameter.md)[] | - | [`SdkModelType`](SdkModelType.md).`properties` | [`SdkModelType`](SdkModelType.md).`properties` | | `usage` | [`UsageFlags`](../enumerations/UsageFlags.md) | - | [`SdkModelType`](SdkModelType.md).`usage` | [`SdkModelType`](SdkModelType.md).`usage` | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkLroPagingServiceMethod.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkLroPagingServiceMethod.md index 5e25fd6206..a66bbf0621 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkLroPagingServiceMethod.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkLroPagingServiceMethod.md @@ -11,7 +11,7 @@ title: "[I] SdkLroPagingServiceMethod" | Type parameter | | :------ | -| `TServiceOperation` extends [`SdkServiceOperation`](../type-aliases/SdkServiceOperation.md) | +| `TServiceOperation` *extends* [`SdkServiceOperation`](../type-aliases/SdkServiceOperation.md) | ## Properties @@ -20,7 +20,7 @@ title: "[I] SdkLroPagingServiceMethod" | `__raw?` | `Operation` | `SdkServiceMethodBase.__raw` | | `__raw_lro_metadata` | `LroMetadata` | `SdkLroServiceMethodOptions.__raw_lro_metadata` | | `__raw_paged_metadata` | `PagedResultMetadata` | `SdkPagingServiceMethodOptions.__raw_paged_metadata` | -| `access` | `undefined` \| [`AccessFlags`](../type-aliases/AccessFlags.md) | `SdkServiceMethodBase.access` | +| `access` | [`AccessFlags`](../type-aliases/AccessFlags.md) | `SdkServiceMethodBase.access` | | `apiVersions` | `string`[] | `SdkServiceMethodBase.apiVersions` | | `crossLanguageDefintionId` | `string` | `SdkServiceMethodBase.crossLanguageDefintionId` | | `description?` | `string` | `SdkServiceMethodBase.description` | @@ -58,7 +58,7 @@ getParameterMapping(serviceParam): SdkModelPropertyType[] #### Deprecated -This property is deprecated. Access .correspondingMethodParams on the service parameters instead +This property is deprecated. Access .correspondingMethodParams on the service parameters instead. *** @@ -78,4 +78,4 @@ getResponseMapping(): undefined | string #### Deprecated -This property is deprecated. Access .resultPath on the method response instead +This property is deprecated. Access .resultPath on the method response instead. diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkLroServiceMethod.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkLroServiceMethod.md index ffa5ef9ee1..022b5d11f8 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkLroServiceMethod.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkLroServiceMethod.md @@ -11,7 +11,7 @@ title: "[I] SdkLroServiceMethod" | Type parameter | | :------ | -| `TServiceOperation` extends [`SdkServiceOperation`](../type-aliases/SdkServiceOperation.md) | +| `TServiceOperation` *extends* [`SdkServiceOperation`](../type-aliases/SdkServiceOperation.md) | ## Properties @@ -19,7 +19,7 @@ title: "[I] SdkLroServiceMethod" | :------ | :------ | :------ | | `__raw?` | `Operation` | `SdkServiceMethodBase.__raw` | | `__raw_lro_metadata` | `LroMetadata` | `SdkLroServiceMethodOptions.__raw_lro_metadata` | -| `access` | `undefined` \| [`AccessFlags`](../type-aliases/AccessFlags.md) | `SdkServiceMethodBase.access` | +| `access` | [`AccessFlags`](../type-aliases/AccessFlags.md) | `SdkServiceMethodBase.access` | | `apiVersions` | `string`[] | `SdkServiceMethodBase.apiVersions` | | `crossLanguageDefintionId` | `string` | `SdkServiceMethodBase.crossLanguageDefintionId` | | `description?` | `string` | `SdkServiceMethodBase.description` | @@ -55,7 +55,7 @@ getParameterMapping(serviceParam): SdkModelPropertyType[] #### Deprecated -This property is deprecated. Access .correspondingMethodParams on the service parameters instead +This property is deprecated. Access .correspondingMethodParams on the service parameters instead. *** @@ -75,4 +75,4 @@ getResponseMapping(): undefined | string #### Deprecated -This property is deprecated. Access .resultPath on the method response instead +This property is deprecated. Access .resultPath on the method response instead. diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkMethodParameter.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkMethodParameter.md index 4bfa280802..ac1cb5b68d 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkMethodParameter.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkMethodParameter.md @@ -14,14 +14,14 @@ title: "[I] SdkMethodParameter" | `__raw?` | `ModelProperty` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`__raw` | | `apiVersions` | `string`[] | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`apiVersions` | | `clientDefaultValue?` | `any` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`clientDefaultValue` | +| `crossLanguageDefinitionId` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`crossLanguageDefinitionId` | | `description?` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`description` | | `details?` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`details` | | `isApiVersionParam` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`isApiVersionParam` | | `isGeneratedName` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`isGeneratedName` | | `kind` | `"method"` | - | - | | `name` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`name` | -| ~~`nameInClient`~~ | `string` | **Deprecated**
This property is deprecated. Use `.name` instead.
https://github.com/Azure/typespec-azure/issues/446 | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nameInClient` | -| `nullable` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nullable` | +| ~~`nameInClient`~~ | `string` |

**Deprecated**

This property is deprecated. Use `.name` instead.

| [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nameInClient` | | `onClient` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`onClient` | | `optional` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`optional` | | `type` | [`SdkType`](../type-aliases/SdkType.md) | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`type` | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkMethodResponse.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkMethodResponse.md index 4dbda8e5aa..66272fe09f 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkMethodResponse.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkMethodResponse.md @@ -8,6 +8,5 @@ title: "[I] SdkMethodResponse" | Property | Type | | :------ | :------ | | `kind` | `"method"` | -| `nullable` | `boolean` | | `resultPath?` | `string` | | `type?` | [`SdkType`](../type-aliases/SdkType.md) | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkModelPropertyTypeBase.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkModelPropertyTypeBase.md index 8f678a350a..ec94f3c25e 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkModelPropertyTypeBase.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkModelPropertyTypeBase.md @@ -21,13 +21,13 @@ title: "[I] SdkModelPropertyTypeBase" | `__raw?` | `ModelProperty` | - | | `apiVersions` | `string`[] | - | | `clientDefaultValue?` | `any` | - | +| `crossLanguageDefinitionId` | `string` | - | | `description?` | `string` | - | | `details?` | `string` | - | | `isApiVersionParam` | `boolean` | - | | `isGeneratedName` | `boolean` | - | | `name` | `string` | - | -| ~~`nameInClient`~~ | `string` | **Deprecated**
This property is deprecated. Use `.name` instead.
https://github.com/Azure/typespec-azure/issues/446 | -| `nullable` | `boolean` | - | +| ~~`nameInClient`~~ | `string` |

**Deprecated**

This property is deprecated. Use `.name` instead.

| | `onClient` | `boolean` | - | | `optional` | `boolean` | - | | `type` | [`SdkType`](../type-aliases/SdkType.md) | - | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkModelType.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkModelType.md index 8340a2e540..e877604429 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkModelType.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkModelType.md @@ -7,14 +7,17 @@ title: "[I] SdkModelType" - `SdkTypeBase` +## Extended by + +- [`SdkInitializationType`](SdkInitializationType.md) + ## Properties | Property | Type | Description | Overrides | Inherited from | | :------ | :------ | :------ | :------ | :------ | | `__raw?` | `Type` | - | `SdkTypeBase.__raw` | `SdkTypeBase.__raw` | -| `access?` | [`AccessFlags`](../type-aliases/AccessFlags.md) | - | - | - | +| `access` | [`AccessFlags`](../type-aliases/AccessFlags.md) | - | - | - | | `additionalProperties?` | [`SdkType`](../type-aliases/SdkType.md) | - | - | - | -| `additionalPropertiesNullable?` | `boolean` | - | - | - | | `apiVersions` | `string`[] | - | - | - | | `baseModel?` | [`SdkModelType`](SdkModelType.md) | - | - | - | | `crossLanguageDefinitionId` | `string` | - | - | - | @@ -24,11 +27,10 @@ title: "[I] SdkModelType" | `discriminatedSubtypes?` | `Record`<`string`, [`SdkModelType`](SdkModelType.md)\> | - | - | - | | `discriminatorProperty?` | [`SdkModelPropertyType`](../type-aliases/SdkModelPropertyType.md) | - | - | - | | `discriminatorValue?` | `string` | - | - | - | -| ~~`isError`~~ | `boolean` | **Deprecated**
This property is deprecated. You should not need to check whether a model is an error model. | - | - | -| ~~`isFormDataType`~~ | `boolean` | **Deprecated**
This property is deprecated. Check the bitwise and value of UsageFlags.MultipartFormData nad the `.usage` property on this model | - | - | +| ~~`isError`~~ | `boolean` |

**Deprecated**

This property is deprecated. You should not need to check whether a model is an error model.

| - | - | +| ~~`isFormDataType`~~ | `boolean` |

**Deprecated**

This property is deprecated. Check the bitwise and value of UsageFlags.MultipartFormData and the `.usage` property on this model.

| - | - | | `isGeneratedName` | `boolean` | - | - | - | | `kind` | `"model"` | - | `SdkTypeBase.kind` | `SdkTypeBase.kind` | | `name` | `string` | - | - | - | -| ~~`nullable`~~ | `boolean` | **Deprecated**
Moving `.nullable` onto the parameter itself for fidelity.
https://github.com/Azure/typespec-azure/issues/448 | `SdkTypeBase.nullable` | `SdkTypeBase.nullable` | | `properties` | [`SdkModelPropertyType`](../type-aliases/SdkModelPropertyType.md)[] | - | - | - | | `usage` | [`UsageFlags`](../enumerations/UsageFlags.md) | - | - | - | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkNullableType.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkNullableType.md new file mode 100644 index 0000000000..110da077b9 --- /dev/null +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkNullableType.md @@ -0,0 +1,19 @@ +--- +jsApi: true +title: "[I] SdkNullableType" + +--- +## Extends + +- `SdkTypeBase` + +## Properties + +| Property | Type | Overrides | Inherited from | +| :------ | :------ | :------ | :------ | +| `__raw?` | `Type` | `SdkTypeBase.__raw` | `SdkTypeBase.__raw` | +| `deprecation?` | `string` | `SdkTypeBase.deprecation` | `SdkTypeBase.deprecation` | +| `description?` | `string` | `SdkTypeBase.description` | `SdkTypeBase.description` | +| `details?` | `string` | `SdkTypeBase.details` | `SdkTypeBase.details` | +| `kind` | `"nullable"` | `SdkTypeBase.kind` | `SdkTypeBase.kind` | +| `type` | [`SdkType`](../type-aliases/SdkType.md) | - | - | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkOperationGroup.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkOperationGroup.md index ca41a096d7..3961906da0 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkOperationGroup.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkOperationGroup.md @@ -11,4 +11,4 @@ title: "[I] SdkOperationGroup" | `kind` | `"SdkOperationGroup"` | | `service` | `Namespace` | | `subOperationGroups?` | [`SdkOperationGroup`](SdkOperationGroup.md)[] | -| `type` | `Interface` \| `Namespace` | +| `type` | `Namespace` \| `Interface` | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkPackage.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkPackage.md index f205412701..9a46d86ab2 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkPackage.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkPackage.md @@ -7,7 +7,7 @@ title: "[I] SdkPackage" | Type parameter | | :------ | -| `TServiceOperation` extends [`SdkServiceOperation`](../type-aliases/SdkServiceOperation.md) | +| `TServiceOperation` *extends* [`SdkServiceOperation`](../type-aliases/SdkServiceOperation.md) | ## Properties @@ -15,7 +15,7 @@ title: "[I] SdkPackage" | :------ | :------ | :------ | | `clients` | [`SdkClientType`](SdkClientType.md)<`TServiceOperation`\>[] | - | | `crossLanguagePackageId` | `string` | - | -| ~~`diagnostics`~~ | readonly `Diagnostic`[] | **Deprecated**
This property is deprecated. Look at `.diagnostics` on SdkContext instead | +| ~~`diagnostics`~~ | readonly `Diagnostic`[] |

**Deprecated**

This property is deprecated. Look at `.diagnostics` on SdkContext instead.

| | `enums` | [`SdkEnumType`](SdkEnumType.md)[] | - | | `models` | [`SdkModelType`](SdkModelType.md)[] | - | | `name` | `string` | - | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkPagingServiceMethod.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkPagingServiceMethod.md index 167cec6144..309c81ad2b 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkPagingServiceMethod.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkPagingServiceMethod.md @@ -11,7 +11,7 @@ title: "[I] SdkPagingServiceMethod" | Type parameter | | :------ | -| `TServiceOperation` extends [`SdkServiceOperation`](../type-aliases/SdkServiceOperation.md) | +| `TServiceOperation` *extends* [`SdkServiceOperation`](../type-aliases/SdkServiceOperation.md) | ## Properties @@ -19,7 +19,7 @@ title: "[I] SdkPagingServiceMethod" | :------ | :------ | :------ | | `__raw?` | `Operation` | `SdkServiceMethodBase.__raw` | | `__raw_paged_metadata` | `PagedResultMetadata` | `SdkPagingServiceMethodOptions.__raw_paged_metadata` | -| `access` | `undefined` \| [`AccessFlags`](../type-aliases/AccessFlags.md) | `SdkServiceMethodBase.access` | +| `access` | [`AccessFlags`](../type-aliases/AccessFlags.md) | `SdkServiceMethodBase.access` | | `apiVersions` | `string`[] | `SdkServiceMethodBase.apiVersions` | | `crossLanguageDefintionId` | `string` | `SdkServiceMethodBase.crossLanguageDefintionId` | | `description?` | `string` | `SdkServiceMethodBase.description` | @@ -57,7 +57,7 @@ getParameterMapping(serviceParam): SdkModelPropertyType[] #### Deprecated -This property is deprecated. Access .correspondingMethodParams on the service parameters instead +This property is deprecated. Access .correspondingMethodParams on the service parameters instead. *** @@ -77,4 +77,4 @@ getResponseMapping(): undefined | string #### Deprecated -This property is deprecated. Access .resultPath on the method response instead +This property is deprecated. Access .resultPath on the method response instead. diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkPathParameter.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkPathParameter.md index ad97d30bb2..4f914f90b5 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkPathParameter.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkPathParameter.md @@ -15,14 +15,14 @@ title: "[I] SdkPathParameter" | `apiVersions` | `string`[] | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`apiVersions` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`apiVersions` | | `clientDefaultValue?` | `any` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`clientDefaultValue` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`clientDefaultValue` | | `correspondingMethodParams` | [`SdkModelPropertyType`](../type-aliases/SdkModelPropertyType.md)[] | - | - | - | +| `crossLanguageDefinitionId` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`crossLanguageDefinitionId` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`crossLanguageDefinitionId` | | `description?` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`description` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`description` | | `details?` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`details` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`details` | | `isApiVersionParam` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`isApiVersionParam` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`isApiVersionParam` | | `isGeneratedName` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`isGeneratedName` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`isGeneratedName` | | `kind` | `"path"` | - | - | - | | `name` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`name` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`name` | -| ~~`nameInClient`~~ | `string` | **Deprecated**
This property is deprecated. Use `.name` instead.
https://github.com/Azure/typespec-azure/issues/446 | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nameInClient` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nameInClient` | -| `nullable` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nullable` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nullable` | +| ~~`nameInClient`~~ | `string` |

**Deprecated**

This property is deprecated. Use `.name` instead.

| [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nameInClient` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nameInClient` | | `onClient` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`onClient` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`onClient` | | `optional` | `false` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`optional` | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`optional` | | `serializedName` | `string` | - | - | - | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkQueryParameter.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkQueryParameter.md index 64ee544e27..196534926f 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkQueryParameter.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkQueryParameter.md @@ -16,14 +16,14 @@ title: "[I] SdkQueryParameter" | `clientDefaultValue?` | `any` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`clientDefaultValue` | | `collectionFormat?` | [`CollectionFormat`](../type-aliases/CollectionFormat.md) | - | - | | `correspondingMethodParams` | [`SdkModelPropertyType`](../type-aliases/SdkModelPropertyType.md)[] | - | - | +| `crossLanguageDefinitionId` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`crossLanguageDefinitionId` | | `description?` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`description` | | `details?` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`details` | | `isApiVersionParam` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`isApiVersionParam` | | `isGeneratedName` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`isGeneratedName` | | `kind` | `"query"` | - | - | | `name` | `string` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`name` | -| ~~`nameInClient`~~ | `string` | **Deprecated**
This property is deprecated. Use `.name` instead.
https://github.com/Azure/typespec-azure/issues/446 | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nameInClient` | -| `nullable` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nullable` | +| ~~`nameInClient`~~ | `string` |

**Deprecated**

This property is deprecated. Use `.name` instead.

| [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`nameInClient` | | `onClient` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`onClient` | | `optional` | `boolean` | - | [`SdkModelPropertyTypeBase`](SdkModelPropertyTypeBase.md).`optional` | | `serializedName` | `string` | - | - | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkServiceResponse.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkServiceResponse.md index ce00aff023..5faf33eed4 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkServiceResponse.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkServiceResponse.md @@ -13,5 +13,4 @@ title: "[I] SdkServiceResponse" | :------ | :------ | | `apiVersions` | `string`[] | | `headers` | [`SdkServiceResponseHeader`](SdkServiceResponseHeader.md)[] | -| `nullable` | `boolean` | | `type?` | [`SdkType`](../type-aliases/SdkType.md) | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkServiceResponseHeader.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkServiceResponseHeader.md index 82e6b0ed40..1f8a35f986 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkServiceResponseHeader.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkServiceResponseHeader.md @@ -10,6 +10,5 @@ title: "[I] SdkServiceResponseHeader" | `__raw` | `ModelProperty` | | `description?` | `string` | | `details?` | `string` | -| `nullable` | `boolean` | | `serializedName` | `string` | | `type` | [`SdkType`](../type-aliases/SdkType.md) | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkTupleType.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkTupleType.md index c73bf1a383..72f08c76c6 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkTupleType.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkTupleType.md @@ -9,12 +9,11 @@ title: "[I] SdkTupleType" ## Properties -| Property | Type | Description | Overrides | Inherited from | -| :------ | :------ | :------ | :------ | :------ | -| `__raw?` | `Type` | - | `SdkTypeBase.__raw` | `SdkTypeBase.__raw` | -| `deprecation?` | `string` | - | `SdkTypeBase.deprecation` | `SdkTypeBase.deprecation` | -| `description?` | `string` | - | `SdkTypeBase.description` | `SdkTypeBase.description` | -| `details?` | `string` | - | `SdkTypeBase.details` | `SdkTypeBase.details` | -| `kind` | `"tuple"` | - | `SdkTypeBase.kind` | `SdkTypeBase.kind` | -| ~~`nullable`~~ | `boolean` | **Deprecated**
Moving `.nullable` onto the parameter itself for fidelity.
https://github.com/Azure/typespec-azure/issues/448 | `SdkTypeBase.nullable` | `SdkTypeBase.nullable` | -| `values` | [`SdkType`](../type-aliases/SdkType.md)[] | - | - | - | +| Property | Type | Overrides | Inherited from | +| :------ | :------ | :------ | :------ | +| `__raw?` | `Type` | `SdkTypeBase.__raw` | `SdkTypeBase.__raw` | +| `deprecation?` | `string` | `SdkTypeBase.deprecation` | `SdkTypeBase.deprecation` | +| `description?` | `string` | `SdkTypeBase.description` | `SdkTypeBase.description` | +| `details?` | `string` | `SdkTypeBase.details` | `SdkTypeBase.details` | +| `kind` | `"tuple"` | `SdkTypeBase.kind` | `SdkTypeBase.kind` | +| `values` | [`SdkType`](../type-aliases/SdkType.md)[] | - | - | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkUnionType.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkUnionType.md index 32f45e4c0b..16f524be2d 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkUnionType.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/interfaces/SdkUnionType.md @@ -9,14 +9,13 @@ title: "[I] SdkUnionType" ## Properties -| Property | Type | Description | Overrides | Inherited from | -| :------ | :------ | :------ | :------ | :------ | -| `__raw?` | `Type` | - | `SdkTypeBase.__raw` | `SdkTypeBase.__raw` | -| `deprecation?` | `string` | - | `SdkTypeBase.deprecation` | `SdkTypeBase.deprecation` | -| `description?` | `string` | - | `SdkTypeBase.description` | `SdkTypeBase.description` | -| `details?` | `string` | - | `SdkTypeBase.details` | `SdkTypeBase.details` | -| `isGeneratedName` | `boolean` | - | - | - | -| `kind` | `"union"` | - | `SdkTypeBase.kind` | `SdkTypeBase.kind` | -| `name` | `string` | - | - | - | -| ~~`nullable`~~ | `boolean` | **Deprecated**
Moving `.nullable` onto the parameter itself for fidelity.
https://github.com/Azure/typespec-azure/issues/448 | `SdkTypeBase.nullable` | `SdkTypeBase.nullable` | -| `values` | [`SdkType`](../type-aliases/SdkType.md)[] | - | - | - | +| Property | Type | Overrides | Inherited from | +| :------ | :------ | :------ | :------ | +| `__raw?` | `Type` | `SdkTypeBase.__raw` | `SdkTypeBase.__raw` | +| `deprecation?` | `string` | `SdkTypeBase.deprecation` | `SdkTypeBase.deprecation` | +| `description?` | `string` | `SdkTypeBase.description` | `SdkTypeBase.description` | +| `details?` | `string` | `SdkTypeBase.details` | `SdkTypeBase.details` | +| `isGeneratedName` | `boolean` | - | - | +| `kind` | `"union"` | `SdkTypeBase.kind` | `SdkTypeBase.kind` | +| `name` | `string` | - | - | +| `values` | [`SdkType`](../type-aliases/SdkType.md)[] | - | - | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/type-aliases/SdkMethod.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/type-aliases/SdkMethod.md index f0a89c17af..0215165202 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/type-aliases/SdkMethod.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/type-aliases/SdkMethod.md @@ -4,16 +4,11 @@ title: "[T] SdkMethod" --- ```ts -type SdkMethod: - | SdkServiceMethod - | SdkPagingServiceMethod - | SdkLroServiceMethod - | SdkLroPagingServiceMethod -| SdkClientAccessor; +type SdkMethod: SdkServiceMethod | SdkClientAccessor; ``` ## Type parameters | Type parameter | | :------ | -| `TServiceOperation` extends [`SdkServiceOperation`](SdkServiceOperation.md) | +| `TServiceOperation` *extends* [`SdkServiceOperation`](SdkServiceOperation.md) | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/type-aliases/SdkServiceMethod.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/type-aliases/SdkServiceMethod.md index 9b6594d0e4..0351bb57d8 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/type-aliases/SdkServiceMethod.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/type-aliases/SdkServiceMethod.md @@ -4,16 +4,11 @@ title: "[T] SdkServiceMethod" --- ```ts -type SdkServiceMethod: - | SdkBasicServiceMethod - | SdkPagingServiceMethod - | SdkLroServiceMethod - | SdkLroPagingServiceMethod -| SdkLroPagingServiceMethod; +type SdkServiceMethod: SdkBasicServiceMethod | SdkPagingServiceMethod | SdkLroServiceMethod | SdkLroPagingServiceMethod; ``` ## Type parameters | Type parameter | | :------ | -| `TServiceOperation` extends [`SdkServiceOperation`](SdkServiceOperation.md) | +| `TServiceOperation` *extends* [`SdkServiceOperation`](SdkServiceOperation.md) | diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/type-aliases/SdkType.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/type-aliases/SdkType.md index 533d23f0d7..feef668c5a 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/type-aliases/SdkType.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/type-aliases/SdkType.md @@ -11,6 +11,7 @@ type SdkType: | SdkArrayType | SdkTupleType | SdkDictionaryType + | SdkNullableType | SdkEnumType | SdkEnumValueType | SdkConstantType diff --git a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/variables/$lib.md b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/variables/$lib.md index 17c79e0e81..f254654562 100644 --- a/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/variables/$lib.md +++ b/packages/website/versioned_docs/version-latest/libraries/typespec-client-generator-core/reference/js-api/variables/$lib.md @@ -4,59 +4,59 @@ title: "[V] $lib" --- ```ts -const $lib: TypeSpecLibrary, never>; +const $lib: TypeSpecLibrary, never>; ``` ## Type declaration | Member | Type | Value | | :------ | :------ | :------ | -| `access` | `Object` | - | -| `access.default` | `string` | - | -| `client-name` | `Object` | - | -| `client-name.default` | `CallableMessage`<[`string`]\> | - | -| `client-service` | `Object` | - | -| `client-service.default` | `CallableMessage`<[`string`]\> | - | -| `conflicting-multipart-model-usage` | `Object` | - | +| `access` | `object` | ... | +| `access.default` | `string` | ... | +| `client-name` | `object` | ... | +| `client-name.default` | `CallableMessage`<[`string`]\> | ... | +| `client-service` | `object` | ... | +| `client-service.default` | `CallableMessage`<[`string`]\> | ... | +| `conflicting-multipart-model-usage` | `object` | ... | | `conflicting-multipart-model-usage.default` | `string` | "Invalid encoding" | -| `conflicting-multipart-model-usage.wrongType` | `CallableMessage`<[`string`, `string`, `string`]\> | - | -| `discriminator-not-constant` | `Object` | - | -| `discriminator-not-constant.default` | `CallableMessage`<[`string`]\> | - | -| `discriminator-not-string` | `Object` | - | -| `discriminator-not-string.default` | `CallableMessage`<[`string`, `string`]\> | - | -| `encoding-multipart-bytes` | `Object` | - | +| `conflicting-multipart-model-usage.wrongType` | `CallableMessage`<[`string`, `string`, `string`]\> | ... | +| `discriminator-not-constant` | `object` | ... | +| `discriminator-not-constant.default` | `CallableMessage`<[`string`]\> | ... | +| `discriminator-not-string` | `object` | ... | +| `discriminator-not-string.default` | `CallableMessage`<[`string`, `string`]\> | ... | +| `encoding-multipart-bytes` | `object` | ... | | `encoding-multipart-bytes.default` | `string` | "Encoding should not be applied to bytes content in a multipart request. This is semi-incompatible with how multipart works in HTTP." | -| `incorrect-client-format` | `Object` | - | -| `incorrect-client-format.default` | `CallableMessage`<[`string`, `string`]\> | - | -| `invalid-encode` | `Object` | - | +| `incorrect-client-format` | `object` | ... | +| `incorrect-client-format.default` | `CallableMessage`<[`string`, `string`]\> | ... | +| `invalid-encode` | `object` | ... | | `invalid-encode.default` | `string` | "Invalid encoding" | -| `invalid-encode.wrongType` | `CallableMessage`<[`string`, `string`]\> | - | -| `invalid-usage` | `Object` | - | -| `invalid-usage.default` | `string` | - | -| `multiple-response-types` | `Object` | - | -| `multiple-response-types.default` | `CallableMessage`<[`string`, `string`]\> | - | -| `multiple-services` | `Object` | - | -| `multiple-services.default` | `CallableMessage`<[`string`]\> | - | -| `no-corresponding-method-param` | `Object` | - | -| `no-corresponding-method-param.default` | `string` | - | -| `no-emitter-name` | `Object` | - | -| `no-emitter-name.default` | `CallableMessage`<[]\> | - | -| `server-param-not-path` | `Object` | - | -| `server-param-not-path.default` | `CallableMessage`<[`string`, `string`]\> | - | -| `unexpected-http-param-type` | `Object` | - | -| `unexpected-http-param-type.default` | `CallableMessage`<[`string`, `string`, `string`]\> | - | -| `union-null` | `Object` | - | +| `invalid-encode.wrongType` | `CallableMessage`<[`string`, `string`]\> | ... | +| `invalid-usage` | `object` | ... | +| `invalid-usage.default` | `string` | ... | +| `multiple-response-types` | `object` | ... | +| `multiple-response-types.default` | `CallableMessage`<[`string`, `string`]\> | ... | +| `multiple-services` | `object` | ... | +| `multiple-services.default` | `CallableMessage`<[`string`]\> | ... | +| `no-corresponding-method-param` | `object` | ... | +| `no-corresponding-method-param.default` | `string` | ... | +| `no-emitter-name` | `object` | ... | +| `no-emitter-name.default` | `CallableMessage`<[]\> | ... | +| `server-param-not-path` | `object` | ... | +| `server-param-not-path.default` | `CallableMessage`<[`string`, `string`]\> | ... | +| `unexpected-http-param-type` | `object` | ... | +| `unexpected-http-param-type.default` | `CallableMessage`<[`string`, `string`, `string`]\> | ... | +| `union-null` | `object` | ... | | `union-null.default` | `string` | "Cannot have a union containing only null types." | -| `union-unsupported` | `Object` | - | +| `union-unsupported` | `object` | ... | | `union-unsupported.default` | `string` | "Unions cannot be emitted by our language generators unless all options are literals of the same type." | | `union-unsupported.null` | `string` | "Unions containing multiple model types cannot be emitted unless the union is between one model type and 'null'." | -| `unknown-client-format` | `Object` | - | -| `unknown-client-format.default` | `CallableMessage`<[`string`, `string`]\> | - | -| `unsupported-kind` | `Object` | - | -| `unsupported-kind.default` | `CallableMessage`<[`string`]\> | - | -| `unsupported-protocol` | `Object` | - | -| `unsupported-protocol.default` | `CallableMessage`<[]\> | - | -| `use-enum-instead` | `Object` | - | +| `unknown-client-format` | `object` | ... | +| `unknown-client-format.default` | `CallableMessage`<[`string`, `string`]\> | ... | +| `unsupported-kind` | `object` | ... | +| `unsupported-kind.default` | `CallableMessage`<[`string`]\> | ... | +| `unsupported-protocol` | `object` | ... | +| `unsupported-protocol.default` | `CallableMessage`<[]\> | ... | +| `use-enum-instead` | `object` | ... | | `use-enum-instead.default` | `string` | "Use enum instead of union of string or number literals. Falling back to the literal type." | -| `wrong-client-decorator` | `Object` | - | +| `wrong-client-decorator` | `object` | ... | | `wrong-client-decorator.default` | `string` | "@client or @operationGroup should decorate namespace or interface in client.tsp" | diff --git a/packages/website/versioned_docs/version-latest/release-notes/release-2024-06-11.md b/packages/website/versioned_docs/version-latest/release-notes/release-2024-06-11.md new file mode 100644 index 0000000000..d5e1817b4f --- /dev/null +++ b/packages/website/versioned_docs/version-latest/release-notes/release-2024-06-11.md @@ -0,0 +1,75 @@ +--- +title: 0.43.0 June 2024 +--- + +# Release Notes Version 0.43.0 - June 2024 + +See TypeSpec Core 0.57 [release notes](https://typespec.io/docs/release-notes/release-2024-06-11) + +:::warning +This release contains breaking changes and deprecation +::: + +## Breaking Changes + +### @azure-tools/typespec-autorest + +- [#473](https://github.com/Azure/typespec-azure/pull/473) Enums are not extensible by default anymore. Update to an extensible union `union Foo {a: "a", b: "b", string}` + +### @azure-tools/typespec-client-generator-core + +- [#925](https://github.com/Azure/typespec-azure/pull/925) change default of `.access` on a model or enum to `"public"` instead of `undefined` +- [#870](https://github.com/Azure/typespec-azure/pull/870) return nullable types as a new type called `SdkNullableType` + +## Features + +### @azure-tools/typespec-autorest + +- [#955](https://github.com/Azure/typespec-azure/pull/955) Use emit-lro-options emitter option to control emission of x-ms-long-running-operation-options +- [#955](https://github.com/Azure/typespec-azure/pull/955) Add support for displaying lro options in typespec-autorest based on lro metadata +- [#972](https://github.com/Azure/typespec-azure/pull/972) Add API to programmatically get all the OpenAPI2 documents for all services at all versions in a spec +- [#811](https://github.com/Azure/typespec-azure/pull/811) Add dependency on typespec-azure-resource-manager to resolve the spec repo common types paths +- [#813](https://github.com/Azure/typespec-azure/pull/813) `@summary` sets the title of definitions + +### @azure-tools/typespec-azure-core + +- [#955](https://github.com/Azure/typespec-azure/pull/955) Add override decorator @useFinalStateVia for lro resolution when multiple resolution pathways exist +- [#707](https://github.com/Azure/typespec-azure/pull/707) Remove linter rules that are not relevant anymore: `use-extensible-enum` and `no-fixed-enum-discriminator` +- [#432](https://github.com/Azure/typespec-azure/pull/432) Add support for values + +### @azure-tools/typespec-azure-resource-manager + +- [#811](https://github.com/Azure/typespec-azure/pull/811) Remove dependency on `typespec-autorest` emitter +- [#432](https://github.com/Azure/typespec-azure/pull/432) Add support for values + +## Bug Fixes + +### @azure-tools/typespec-autorest + +- [#923](https://github.com/Azure/typespec-azure/pull/923) When emitting version enum only include current version and mark with `modelAsString: true` +- [#902](https://github.com/Azure/typespec-azure/pull/902) Add support for new multipart constructs in http library +- [#432](https://github.com/Azure/typespec-azure/pull/432) Add support for tuple literals as default values + +### @azure-tools/typespec-azure-core + +- [#693](https://github.com/Azure/typespec-azure/pull/693) Add new `no-string-discriminator` linter rule suggesting using an explicit extensible union as the discriminator kind. +- [#851](https://github.com/Azure/typespec-azure/pull/851) Convert `OperationState` enum to an open union + +### @azure-tools/typespec-azure-resource-manager + +- [#955](https://github.com/Azure/typespec-azure/pull/955) Remove OpenAPI dependencies from ARM LRO templates and test LRO overrides +- [#929](https://github.com/Azure/typespec-azure/pull/929) Adding an overload parameter to ResourceNameParameter that allows `name` type to be set to string union type. +- [#860](https://github.com/Azure/typespec-azure/pull/860) Fix `percentComplete` property on `OperationStatus` should be a float not an int +- [#979](https://github.com/Azure/typespec-azure/pull/979) Make Resource Properties Bag Updatable +- [#998](https://github.com/Azure/typespec-azure/pull/998) Adding legacy v4 ManagedServiceIdentity model to avoid breaking changes in specs with mixed v3 and v4 common type reference + +### @azure-tools/typespec-client-generator-core + +- [#904](https://github.com/Azure/typespec-azure/pull/904) don't add constant value to generated name +- [#873](https://github.com/Azure/typespec-azure/pull/873) add description for created discriminator property +- [#947](https://github.com/Azure/typespec-azure/pull/947) support new typespec emitter naming rule +- [#930](https://github.com/Azure/typespec-azure/pull/930) expose enums on response headers +- [#962](https://github.com/Azure/typespec-azure/pull/962) refine logic of core model filtering +- [#950](https://github.com/Azure/typespec-azure/pull/950) remove duplicated types in TCGC +- [#936](https://github.com/Azure/typespec-azure/pull/936) enhance cross language definition id logic +- [#935](https://github.com/Azure/typespec-azure/pull/935) add read only logic to usage propagation diff --git a/packages/website/versioned_docs/version-latest/troubleshoot/versioning_operation_template_changes.md b/packages/website/versioned_docs/version-latest/troubleshoot/versioning_operation_template_changes.md new file mode 100644 index 0000000000..c1f08bc022 --- /dev/null +++ b/packages/website/versioned_docs/version-latest/troubleshoot/versioning_operation_template_changes.md @@ -0,0 +1,23 @@ +# How can I change the operation template of an operation in newer versions + +## Symtoms + +If you are switching to a different operation template in a new version, you may run into compilation errors if you only leverage `@added` and `@removed` versioning decorators. + +## Workaround + +In the example below, you are switch from an old deprecated operation template to the new one. Note the uses of `@sharedRoute` and `renamedFrom` to avoid name and route conflict errors. + +```typespec + #suppress "deprecated" "back compat" + @removed(Versions.`2024-10-01-preview`) + @sharedRoute + @renamedFrom(Versions.`2024-10-01-preview`, "delete") + deleteOld is ArmResourceDeleteAsync; + + @added(Versions.`2024-10-01-preview`) + @sharedRoute + delete is ArmResourceDeleteWithoutOkAsync; +``` + +**Please note**: In the `delete is ArmResourceDeleteAsync` example above, if you are RPSaaS service, you CAN do a direct replacement with `delete is ArmResourceDeleteWithoutOkAsync`. This is because RPSaaS will never send `200 OK`. Update in-place is just an API spec bug fix. From 37d1f0082720191174b406b526adaaed369bb044 Mon Sep 17 00:00:00 2001 From: Dapeng Zhang Date: Fri, 14 Jun 2024 23:04:23 +0800 Subject: [PATCH 10/42] break up tests for types into multiple files (#1017) --- .../break-up-test-cases-2024-5-14-14-29-1.md | 8 + .../test/types.test.ts | 3840 ----------------- .../test/types/array-types.test.ts | 38 + .../types/body-model-property-types.test.ts | 193 + .../test/types/built-in-types.test.ts | 271 ++ .../test/types/constant-types.test.ts | 61 + .../test/types/date-time-types.test.ts | 121 + .../test/types/duration-type.test.ts | 121 + .../test/types/enum-types.test.ts | 765 ++++ .../test/types/model-types.test.ts | 1444 +++++++ .../test/types/multipart-types.test.ts | 263 ++ .../test/types/tuple-types.test.ts | 38 + .../test/types/union-types.test.ts | 587 +++ .../test/types/utils.ts | 16 + 14 files changed, 3926 insertions(+), 3840 deletions(-) create mode 100644 .chronus/changes/break-up-test-cases-2024-5-14-14-29-1.md delete mode 100644 packages/typespec-client-generator-core/test/types.test.ts create mode 100644 packages/typespec-client-generator-core/test/types/array-types.test.ts create mode 100644 packages/typespec-client-generator-core/test/types/body-model-property-types.test.ts create mode 100644 packages/typespec-client-generator-core/test/types/built-in-types.test.ts create mode 100644 packages/typespec-client-generator-core/test/types/constant-types.test.ts create mode 100644 packages/typespec-client-generator-core/test/types/date-time-types.test.ts create mode 100644 packages/typespec-client-generator-core/test/types/duration-type.test.ts create mode 100644 packages/typespec-client-generator-core/test/types/enum-types.test.ts create mode 100644 packages/typespec-client-generator-core/test/types/model-types.test.ts create mode 100644 packages/typespec-client-generator-core/test/types/multipart-types.test.ts create mode 100644 packages/typespec-client-generator-core/test/types/tuple-types.test.ts create mode 100644 packages/typespec-client-generator-core/test/types/union-types.test.ts create mode 100644 packages/typespec-client-generator-core/test/types/utils.ts diff --git a/.chronus/changes/break-up-test-cases-2024-5-14-14-29-1.md b/.chronus/changes/break-up-test-cases-2024-5-14-14-29-1.md new file mode 100644 index 0000000000..79f7d023d2 --- /dev/null +++ b/.chronus/changes/break-up-test-cases-2024-5-14-14-29-1.md @@ -0,0 +1,8 @@ +--- +# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking +changeKind: internal +packages: + - "@azure-tools/typespec-client-generator-core" +--- + +break up tests for types into multiple files diff --git a/packages/typespec-client-generator-core/test/types.test.ts b/packages/typespec-client-generator-core/test/types.test.ts deleted file mode 100644 index eb4c7a740a..0000000000 --- a/packages/typespec-client-generator-core/test/types.test.ts +++ /dev/null @@ -1,3840 +0,0 @@ -/* eslint-disable deprecation/deprecation */ -import { AzureCoreTestLibrary } from "@azure-tools/typespec-azure-core/testing"; -import { Enum, Model, Union } from "@typespec/compiler"; -import { expectDiagnostics } from "@typespec/compiler/testing"; -import { deepEqual, deepStrictEqual, ok, strictEqual } from "assert"; -import { beforeEach, describe, it } from "vitest"; -import { - SdkArrayType, - SdkBodyModelPropertyType, - SdkEnumType, - SdkModelType, - SdkType, - SdkUnionType, - UsageFlags, -} from "../src/interfaces.js"; -import { isErrorOrChildOfError } from "../src/public-utils.js"; -import { - getAllModels, - getAllModelsWithDiagnostics, - getClientType, - getSdkEnum, - isReadOnly, -} from "../src/types.js"; -import { SdkTestRunner, createSdkTestRunner, createTcgcTestRunnerForEmitter } from "./test-host.js"; - -describe("typespec-client-generator-core: types", () => { - let runner: SdkTestRunner; - - beforeEach(async () => { - runner = await createSdkTestRunner({ emitterName: "@azure-tools/typespec-java" }); - }); - - describe("SdkBuiltInType", () => { - it("decimal", async function () { - await runner.compileWithBuiltInService( - ` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - prop: decimal; - } - ` - ); - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "decimal"); - }); - - it("decimal128", async function () { - await runner.compileWithBuiltInService( - ` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - prop: decimal128; - } - ` - ); - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "decimal128"); - }); - - it("unknown", async function () { - await runner.compileWithBuiltInService( - ` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - prop: unknown; - } - ` - ); - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "any"); - }); - - it("bytes", async function () { - await runner.compileWithBuiltInService( - ` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - prop: bytes; - } - ` - ); - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "bytes"); - strictEqual(sdkType.encode, "base64"); - }); - - it("bytes base64", async function () { - await runner.compileWithBuiltInService( - ` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - @encode(BytesKnownEncoding.base64) - prop: bytes; - } - ` - ); - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "bytes"); - strictEqual(sdkType.encode, "base64"); - }); - - it("bytes base64url", async function () { - await runner.compileWithBuiltInService( - ` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - @encode(BytesKnownEncoding.base64url) - prop: bytes; - } - ` - ); - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "bytes"); - strictEqual(sdkType.encode, "base64url"); - }); - - it("bytes base64url scalar", async function () { - await runner.compileWithBuiltInService( - ` - @encode(BytesKnownEncoding.base64url) - scalar Base64rulBytes extends bytes; - - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - value: Base64rulBytes[]; - } - ` - ); - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "array"); - strictEqual(sdkType.valueType.kind, "bytes"); - strictEqual(sdkType.valueType.encode, "base64url"); - }); - - it("format", async function () { - const runnerWithCore = await createSdkTestRunner({ - librariesToAdd: [AzureCoreTestLibrary], - autoUsings: ["Azure.Core"], - emitterName: "@azure-tools/typespec-java", - }); - await runnerWithCore.compileWithBuiltInAzureCoreService( - ` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - urlScalar: url; - uuidScalar: uuid; - eTagScalar: eTag; - - @format("url") - urlProperty: string; - @format("uuid") - uuidProperty: string; - @format("eTag") - eTagProperty: string; - } - ` - ); - const models = runnerWithCore.context.experimental_sdkPackage.models; - for (const property of models[0].properties) { - strictEqual(property.kind, "property"); - strictEqual( - property.type.kind, - property.serializedName.replace("Scalar", "").replace("Property", "") - ); - } - }); - - it("etag from core", async () => { - const runnerWithCore = await createSdkTestRunner({ - librariesToAdd: [AzureCoreTestLibrary], - autoUsings: ["Azure.Core"], - "filter-out-core-models": false, - emitterName: "@azure-tools/typespec-java", - }); - await runnerWithCore.compileWithBuiltInAzureCoreService(` - @resource("users") - @doc("Details about a user.") - model User { - @key - @doc("The user's name.") - @visibility("read") - name: string; - - ...Azure.Core.EtagProperty; - } - - @doc("Gets status.") - op getStatus is GetResourceOperationStatus; - `); - const userModel = runnerWithCore.context.experimental_sdkPackage.models.find( - (x) => x.kind === "model" && x.name === "User" - ); - ok(userModel); - strictEqual(userModel.properties.length, 2); - const etagProperty = userModel.properties.find((x) => x.name === "etag"); - ok(etagProperty); - strictEqual(etagProperty.type.kind, "eTag"); - }); - - it("unknown format", async function () { - await runner.compileWithBuiltInService( - ` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - @format("unknown") - unknownProp: string; - } - ` - ); - const models = getAllModels(runner.context); - strictEqual(models[0].kind, "model"); - strictEqual(models[0].properties[0].type.kind, "string"); - }); - - it("known values", async function () { - await runner.compileWithBuiltInService( - ` - enum TestEnum{ - one, - two, - three, - } - - #suppress "deprecated" "for testing" - @knownValues(TestEnum) - scalar testScalar extends string; - - model TestModel { - prop1: testScalar; - #suppress "deprecated" "for testing" - @knownValues(TestEnum) - prop2: string; - } - - op func( - @body body: TestModel - ): void; - ` - ); - expectDiagnostics(runner.context.experimental_sdkPackage.diagnostics, []); - expectDiagnostics(runner.context.diagnostics, []); - const m = runner.context.experimental_sdkPackage.models.find((x) => x.name === "TestModel"); - const e1 = runner.context.experimental_sdkPackage.enums.find((x) => x.name === "TestEnum"); - const e2 = runner.context.experimental_sdkPackage.enums.find((x) => x.name === "testScalar"); - ok(m && e1 && e2); - strictEqual(e1.kind, "enum"); - strictEqual(e1.isUnionAsEnum, false); - strictEqual(e1.valueType.kind, "string"); - strictEqual(e2.kind, "enum"); - strictEqual(e2.isUnionAsEnum, false); - strictEqual(e2.valueType.kind, "string"); - for (const property of m.properties) { - if (property.name === "prop1") { - strictEqual(property.type, e2); - } else if (property.name === "prop2") { - strictEqual(property.type, e1); - } - } - }); - it("with doc", async () => { - await runner.compileWithBuiltInService( - ` - @doc("doc") - @summary("title") - scalar TestScalar extends string; - - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - prop: TestScalar; - } - ` - ); - const models = getAllModels(runner.context); - strictEqual(models[0].kind, "model"); - strictEqual(models[0].properties[0].type.description, "title"); - strictEqual(models[0].properties[0].type.details, "doc"); - }); - }); - describe("SdkDurationType", () => { - it("default", async function () { - await runner.compileWithBuiltInService( - ` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - prop: duration; - } - ` - ); - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "duration"); - strictEqual(sdkType.wireType.kind, "string"); - strictEqual(sdkType.encode, "ISO8601"); - }); - it("iso8601", async function () { - await runner.compileWithBuiltInService( - ` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - @encode(DurationKnownEncoding.ISO8601) - prop: duration; - } - ` - ); - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "duration"); - strictEqual(sdkType.wireType.kind, "string"); - strictEqual(sdkType.encode, "ISO8601"); - }); - it("int32 seconds", async function () { - await runner.compileWithBuiltInService( - ` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - @encode(DurationKnownEncoding.seconds, int32) - prop: duration; - } - ` - ); - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "duration"); - strictEqual(sdkType.wireType.kind, "int32"); - strictEqual(sdkType.encode, "seconds"); - }); - - it("float seconds", async function () { - await runner.compileWithBuiltInService( - ` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - @encode(DurationKnownEncoding.seconds, float) - prop: duration; - } - ` - ); - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "duration"); - strictEqual(sdkType.wireType.kind, "float"); - strictEqual(sdkType.encode, "seconds"); - }); - - it("nullable float seconds", async function () { - await runner.compileWithBuiltInService( - ` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - @encode(DurationKnownEncoding.seconds, float) - prop: duration | null; - } - ` - ); - const nullableType = getSdkTypeHelper(runner); - strictEqual(nullableType.kind, "nullable"); - - const sdkType = nullableType.type; - strictEqual(sdkType.kind, "duration"); - strictEqual(sdkType.wireType.kind, "float"); - strictEqual(sdkType.encode, "seconds"); - }); - - it("float seconds decorated scalar", async function () { - await runner.compileWithBuiltInService( - ` - @doc("doc") - @summary("title") - @encode(DurationKnownEncoding.seconds, float32) - scalar Float32Duration extends duration; - - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - value: Float32Duration[]; - } - ` - ); - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "array"); - strictEqual(sdkType.valueType.kind, "duration"); - strictEqual(sdkType.valueType.wireType.kind, "float32"); - strictEqual(sdkType.valueType.encode, "seconds"); - strictEqual(sdkType.valueType.description, "title"); - strictEqual(sdkType.valueType.details, "doc"); - }); - }); - - describe("SdkDatetimeType", () => { - it("default", async function () { - await runner.compileWithBuiltInService( - ` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - prop: utcDateTime; - } - ` - ); - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "utcDateTime"); - strictEqual(sdkType.wireType.kind, "string"); - strictEqual(sdkType.encode, "rfc3339"); - }); - it("rfc3339", async function () { - await runner.compileWithBuiltInService( - ` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - @encode(DateTimeKnownEncoding.rfc3339) - prop: utcDateTime; - } - ` - ); - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "utcDateTime"); - strictEqual(sdkType.wireType.kind, "string"); - strictEqual(sdkType.encode, "rfc3339"); - }); - it("rfc7231", async function () { - await runner.compileWithBuiltInService( - ` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - @encode(DateTimeKnownEncoding.rfc7231) - prop: utcDateTime; - } - ` - ); - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "utcDateTime"); - strictEqual(sdkType.wireType.kind, "string"); - strictEqual(sdkType.encode, "rfc7231"); - }); - - it("unixTimestamp", async function () { - await runner.compileWithBuiltInService( - ` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - @encode(DateTimeKnownEncoding.unixTimestamp, int64) - value: utcDateTime; - } - ` - ); - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "utcDateTime"); - strictEqual(sdkType.wireType.kind, "int64"); - strictEqual(sdkType.encode, "unixTimestamp"); - }); - - it("nullable unixTimestamp", async function () { - await runner.compileWithBuiltInService( - ` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - @encode(DateTimeKnownEncoding.unixTimestamp, int64) - value: utcDateTime | null; - } - ` - ); - const nullableType = getSdkTypeHelper(runner); - strictEqual(nullableType.kind, "nullable"); - - const sdkType = nullableType.type; - strictEqual(sdkType.kind, "utcDateTime"); - strictEqual(sdkType.wireType.kind, "int64"); - strictEqual(sdkType.encode, "unixTimestamp"); - }); - - it("unixTimestamp array", async function () { - await runner.compileWithBuiltInService( - ` - @doc("doc") - @summary("title") - @encode(DateTimeKnownEncoding.unixTimestamp, int64) - scalar unixTimestampDatetime extends utcDateTime; - - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - value: unixTimestampDatetime[]; - } - ` - ); - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "array"); - strictEqual(sdkType.valueType.kind, "utcDateTime"); - strictEqual(sdkType.valueType.wireType.kind, "int64"); - strictEqual(sdkType.valueType.encode, "unixTimestamp"); - strictEqual(sdkType.valueType.description, "title"); - strictEqual(sdkType.valueType.details, "doc"); - }); - }); - describe("SdkUnionType", () => { - it("primitive union", async function () { - await runner.compileWithBuiltInService( - ` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - name: string | int32; - } - ` - ); - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "union"); - strictEqual(sdkType.name, "TestName"); - ok(sdkType.isGeneratedName); - const values = sdkType.values; - strictEqual(values.length, 2); - strictEqual(values[0].kind, "string"); - strictEqual(values[1].kind, "int32"); - }); - it("nullable", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - name: float32 | null; - } - `); - - const nullableType = getSdkTypeHelper(runner); - strictEqual(nullableType.kind, "nullable"); - - const sdkType = nullableType.type; - strictEqual(sdkType.kind, "float32"); - }); - - it("nullable with more types", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - name: string | float32 | null; - } - `); - - const nullableType = getSdkTypeHelper(runner); - strictEqual(nullableType.kind, "nullable"); - - const sdkType = nullableType.type; - strictEqual(sdkType.kind, "union"); - strictEqual(sdkType.values.length, 2); - strictEqual(sdkType.values[0].kind, "string"); - strictEqual(sdkType.values[1].kind, "float32"); - }); - - it("record with nullable", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - name: Record; - } - `); - - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "dict"); - const elementType = sdkType.valueType; - strictEqual(elementType.kind, "nullable"); - strictEqual(elementType.type.kind, "float32"); - }); - - it("record with nullable with more types", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - name: Record; - } - `); - - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "dict"); - const elementType = sdkType.valueType; - strictEqual(elementType.kind, "nullable"); - - const elementTypeValueType = elementType.type; - strictEqual(elementTypeValueType.kind, "union"); - strictEqual(elementTypeValueType.values.length, 2); - strictEqual(elementTypeValueType.values[0].kind, "string"); - strictEqual(elementTypeValueType.values[1].kind, "float32"); - }); - - it("array with nullable", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - name: (float32 | null)[]; - } - `); - - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "array"); - const elementType = sdkType.valueType; - strictEqual(elementType.kind, "nullable"); - strictEqual(elementType.type.kind, "float32"); - }); - - it("array with nullable with more types", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - name: (string | float32 | null)[]; - } - `); - - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "array"); - const elementType = sdkType.valueType; - strictEqual(elementType.kind, "nullable"); - const elementTypeValueType = elementType.type; - strictEqual(elementTypeValueType.kind, "union"); - strictEqual(elementTypeValueType.values.length, 2); - strictEqual(elementTypeValueType.values[0].kind, "string"); - strictEqual(elementTypeValueType.values[1].kind, "float32"); - }); - - it("additional property is nullable", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - model TestExtends extends Record { - name: string; - } - - @usage(Usage.input | Usage.output) - @access(Access.public) - model TestIs is Record { - name: string; - } - - @usage(Usage.input | Usage.output) - @access(Access.public) - model TestSpread { - name: string; - ...Record - } - `); - - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 3); - - const extendsType = models.find((x) => x.name === "TestExtends"); - ok(extendsType); - strictEqual(extendsType.kind, "model"); - const additionalProperties = extendsType.additionalProperties; - ok(additionalProperties); - strictEqual(additionalProperties.kind, "nullable"); - strictEqual(additionalProperties.type.kind, "string"); - - const isType = models.find((x) => x.name === "TestIs"); - ok(isType); - strictEqual(isType.kind, "model"); - const isTypeAdditionalProperties = isType.additionalProperties; - ok(isTypeAdditionalProperties); - strictEqual(isTypeAdditionalProperties.kind, "nullable"); - strictEqual(isTypeAdditionalProperties.type.kind, "string"); - - const spreadType = models.find((x) => x.name === "TestSpread"); - ok(spreadType); - strictEqual(spreadType.kind, "model"); - const spreadTypeAdditionalProperties = spreadType.additionalProperties; - ok(spreadTypeAdditionalProperties); - strictEqual(spreadTypeAdditionalProperties.kind, "nullable"); - strictEqual(spreadTypeAdditionalProperties.type.kind, "string"); - }); - - it("additional property nullable with more types", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - model TestExtends extends Record { - name: string; - } - - @usage(Usage.input | Usage.output) - @access(Access.public) - model TestIs is Record { - name: string; - } - - @usage(Usage.input | Usage.output) - @access(Access.public) - model TestSpread { - name: string; - ...Record - } - `); - - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 3); - - const extendsType = models.find((x) => x.name === "TestExtends"); - ok(extendsType); - strictEqual(extendsType.kind, "model"); - - const extendsTypeAdditionalProperties = extendsType.additionalProperties; - ok(extendsTypeAdditionalProperties); - strictEqual(extendsTypeAdditionalProperties.kind, "nullable"); - const extendsAdPropUnderlyingType = extendsTypeAdditionalProperties.type; - strictEqual(extendsAdPropUnderlyingType.kind, "union"); - strictEqual(extendsAdPropUnderlyingType.name, "TestExtendsAdditionalProperty"); - strictEqual(extendsAdPropUnderlyingType.isGeneratedName, true); - strictEqual(extendsAdPropUnderlyingType.values.length, 2); - strictEqual(extendsAdPropUnderlyingType.values[0].kind, "string"); - strictEqual(extendsAdPropUnderlyingType.values[1].kind, "float32"); - - const isType = models.find((x) => x.name === "TestIs"); - ok(isType); - strictEqual(isType.kind, "model"); - const isTypeAdditionalProperties = isType.additionalProperties; - ok(isTypeAdditionalProperties); - strictEqual(isTypeAdditionalProperties.kind, "nullable"); - - const isTypeAdditionalPropertiesUnderlyingType = isTypeAdditionalProperties.type; - strictEqual(isTypeAdditionalPropertiesUnderlyingType.kind, "union"); - strictEqual(isTypeAdditionalPropertiesUnderlyingType.name, "TestIsAdditionalProperty"); - strictEqual(isTypeAdditionalPropertiesUnderlyingType.isGeneratedName, true); - strictEqual(isTypeAdditionalPropertiesUnderlyingType.values.length, 2); - strictEqual(isTypeAdditionalPropertiesUnderlyingType.values[0].kind, "string"); - strictEqual(isTypeAdditionalPropertiesUnderlyingType.values[1].kind, "float32"); - - const spreadType = models.find((x) => x.name === "TestSpread"); - ok(spreadType); - strictEqual(spreadType.kind, "model"); - - const spreadTypeAdditionalProperties = spreadType.additionalProperties; - ok(spreadTypeAdditionalProperties); - strictEqual(spreadTypeAdditionalProperties.kind, "nullable"); - - const spreadTypeAdditionalPropertiesUnderlyingType = spreadTypeAdditionalProperties.type; - strictEqual(spreadTypeAdditionalPropertiesUnderlyingType.kind, "union"); - strictEqual( - spreadTypeAdditionalPropertiesUnderlyingType.name, - "TestSpreadAdditionalProperty" - ); - strictEqual(spreadTypeAdditionalPropertiesUnderlyingType.isGeneratedName, true); - strictEqual(spreadTypeAdditionalPropertiesUnderlyingType.values.length, 2); - strictEqual(spreadTypeAdditionalPropertiesUnderlyingType.values[0].kind, "string"); - strictEqual(spreadTypeAdditionalPropertiesUnderlyingType.values[1].kind, "float32"); - }); - - it("model with simple union property", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - model ModelWithSimpleUnionProperty { - prop: int32 | int32[]; - } - `); - - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "union"); - const values = sdkType.values; - strictEqual(values.length, 2); - strictEqual(values[0].kind, "int32"); - strictEqual(values[1].kind, "array"); - - const elementType = (values[1]).valueType; - strictEqual(elementType.kind, "int32"); - }); - - it("model with named union", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - model BaseModel { - name: string; - } - @usage(Usage.input | Usage.output) - @access(Access.public) - model Model1 extends BaseModel { - prop1: int32; - } - @usage(Usage.input | Usage.output) - @access(Access.public) - model Model2 extends BaseModel { - prop2: int32; - } - @usage(Usage.input | Usage.output) - @access(Access.public) - union MyNamedUnion { - one: Model1, - two: Model2, - } - - @usage(Usage.input | Usage.output) - @access(Access.public) - model ModelWithNamedUnionProperty { - prop: MyNamedUnion; - } - `); - - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 4); - const modelWithNamedUnionProperty = models.find( - (x) => x.kind === "model" && x.name === "ModelWithNamedUnionProperty" - ); - ok(modelWithNamedUnionProperty); - const property = modelWithNamedUnionProperty.properties[0]; - strictEqual(property.kind, "property"); - const sdkType = property.type; - strictEqual(sdkType.kind, "union"); - const values = sdkType.values; - strictEqual(values.length, 2); - strictEqual(values[0].kind, "model"); - strictEqual(values[0].name, "Model1"); - strictEqual( - values[0], - models.find((x) => x.kind === "model" && x.name === "Model1") - ); - strictEqual(values[1].kind, "model"); - strictEqual(values[1].name, "Model2"); - strictEqual( - values[1], - models.find((x) => x.kind === "model" && x.name === "Model2") - ); - 1; - }); - - it("model with nullable enum property", async function () { - await runner.compileWithBuiltInService(` - enum PetKind { - dog, cat, bird - } - @usage(Usage.input | Usage.output) - @access(Access.public) - model Home { - pet: PetKind | null; - } - `); - - const nullableType = getSdkTypeHelper(runner); - strictEqual(nullableType.kind, "nullable"); - - const sdkType = nullableType.type; - strictEqual(sdkType.kind, "enum"); - strictEqual(sdkType.isUnionAsEnum, false); - strictEqual(sdkType.name, "PetKind"); - - const values = sdkType.values; - strictEqual(values.length, 3); - }); - - it("model with nullable union as enum", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Home { - pet: "dog" | "cat" | "bird" | string | null; - } - `); - - const nullableType = getSdkTypeHelper(runner); - strictEqual(nullableType.kind, "nullable"); - - const sdkType = nullableType.type; - strictEqual(sdkType.kind, "enum"); - strictEqual(sdkType.isUnionAsEnum, true); - strictEqual(sdkType.name, "HomePet"); - - const values = sdkType.values; - strictEqual(values.length, 3); - }); - - it("model with nullable model property", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - model PropertyModel { - internalProp: string; - } - - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - prop: PropertyModel | null; - } - `); - - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 2); - const model = models.find((x) => x.kind === "model" && x.name === "Test"); - ok(model); - const nullableType = model.properties[0].type; - strictEqual(nullableType.kind, "nullable"); - - const sdkType = nullableType.type; - strictEqual(sdkType.kind, "model"); - strictEqual(sdkType.name, "PropertyModel"); - }); - - it("mix types", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - model ModelType { - name: string; - } - - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - prop: "none" | "auto" | ModelType; - } - - @usage(Usage.input | Usage.output) - @access(Access.public) - model TestNullable { - prop: "none" | "auto" | ModelType | null; - } - `); - - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 3); - const model = models.find((x) => x.kind === "model" && x.name === "Test"); - ok(model); - const nullableModel = models.find((x) => x.kind === "model" && x.name === "TestNullable"); - ok(nullableModel); - strictEqual(model.properties[0].type.kind, "union"); - const unionType = model.properties[0].type; - strictEqual(unionType.kind, "union"); - for (const v of unionType.values) { - if (v.kind === "model") { - strictEqual(v.name, "ModelType"); - } else { - strictEqual(v.kind, "constant"); - } - } - const nullableProp = nullableModel.properties[0]; - strictEqual(nullableProp.type.kind, "nullable"); - strictEqual(nullableProp.type.type.kind, "union"); - strictEqual(nullableProp.type.type.values.length, 3); - - // now check without null with help of helper function - strictEqual(nullableModel.properties[0].type.kind, "nullable"); - const sdkType = nullableProp.type.type; - strictEqual(sdkType.kind, "union"); - for (const v of sdkType.values) { - if (v.kind === "model") { - strictEqual(v.name, "ModelType"); - } else { - strictEqual(v.kind, "constant"); - } - } - }); - - it("usage", async function () { - await runner.compileWithBuiltInService(` - union UnionAsEnum { - "A", - "B", - string, - } - - model Foo { - prop: string; - } - - union NullableUnion { - Foo, - null - } - - model Bar { - prop1: UnionAsEnum; - prop2: NullableUnion; - } - - @access(Access.internal) - op func( - @body body: Bar - ): void; - `); - - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 2); - const foo = models.find((x) => x.name === "Foo"); - ok(foo); - strictEqual(foo.usage, UsageFlags.Input); - strictEqual(foo.access, "internal"); - const enums = runner.context.experimental_sdkPackage.enums; - strictEqual(enums.length, 1); - const unionAsEnum = enums.find((x) => x.name === "UnionAsEnum"); - ok(unionAsEnum); - strictEqual(unionAsEnum.usage, UsageFlags.Input); - strictEqual(unionAsEnum.access, "internal"); - }); - - it("usage override", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - union UnionAsEnum { - "A", - "B", - string, - } - - @usage(Usage.input | Usage.output) - @access(Access.public) - model Foo { - prop: string; - } - - union NullableUnion { - Foo, - null - } - - model Bar { - prop1: UnionAsEnum; - prop2: NullableUnion; - } - - @access(Access.internal) - op func( - @body body: Bar - ): void; - `); - - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 2); - const foo = models.find((x) => x.name === "Foo"); - ok(foo); - strictEqual(foo.usage, UsageFlags.Input | UsageFlags.Output); - strictEqual(foo.access, "public"); - const enums = runner.context.experimental_sdkPackage.enums; - strictEqual(enums.length, 1); - const unionAsEnum = enums.find((x) => x.name === "UnionAsEnum"); - ok(unionAsEnum); - strictEqual(unionAsEnum.usage, UsageFlags.Input | UsageFlags.Output); - strictEqual(unionAsEnum.access, "public"); - }); - - it("usage override for orphan union as enum", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - union UnionAsEnum { - "A", - "B", - string, - } - - @usage(Usage.input | Usage.output) - @access(Access.internal) - union UnionAsEnumInternal { - "A", - "B", - string, - } - `); - - const enums = runner.context.experimental_sdkPackage.enums; - strictEqual(enums.length, 2); - const unionAsEnum = enums.find((x) => x.name === "UnionAsEnum"); - ok(unionAsEnum); - strictEqual(unionAsEnum.usage, UsageFlags.Input | UsageFlags.Output); - strictEqual(unionAsEnum.access, "public"); - const unionAsEnumInternal = enums.find((x) => x.name === "UnionAsEnumInternal"); - ok(unionAsEnumInternal); - strictEqual(unionAsEnumInternal.usage, UsageFlags.Input | UsageFlags.Output); - strictEqual(unionAsEnumInternal.access, "internal"); - }); - }); - describe("SdkEnumType", () => { - it("string extensible", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - enum DaysOfWeekExtensibleEnum { - Monday, - Tuesday, - Wednesday, - Thursday, - Friday, - Saturday, - Sunday, - } - - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - prop: DaysOfWeekExtensibleEnum - } - `); - - strictEqual(runner.context.experimental_sdkPackage.models.length, 1); - strictEqual(runner.context.experimental_sdkPackage.enums.length, 1); - const sdkType = runner.context.experimental_sdkPackage.enums[0]; - strictEqual(sdkType.isFixed, true); - strictEqual(sdkType.name, "DaysOfWeekExtensibleEnum"); - strictEqual(sdkType.valueType.kind, "string"); - strictEqual(sdkType.usage & UsageFlags.ApiVersionEnum, 0); // not a versioning enum - strictEqual(sdkType.isUnionAsEnum, false); - const values = sdkType.values; - strictEqual(values.length, 7); - const nameList = [ - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday", - "Sunday", - ]; - deepEqual( - values.map((x) => x.name), - nameList - ); - deepEqual( - values.map((x) => x.value), - nameList - ); - for (const value of sdkType.values) { - deepStrictEqual(value.enumType, sdkType); - deepStrictEqual(value.valueType, sdkType.valueType); - } - }); - - it("int extensible", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - enum Integers { - one: 1, - two: 2, - three: 3, - four: 4, - five: 5, - } - - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - prop: Integers - } - `); - - strictEqual(runner.context.experimental_sdkPackage.models.length, 1); - strictEqual(runner.context.experimental_sdkPackage.enums.length, 1); - const sdkType = runner.context.experimental_sdkPackage.enums[0]; - strictEqual(sdkType.isFixed, true); - strictEqual(sdkType.name, "Integers"); - strictEqual(sdkType.valueType.kind, "int32"); - const values = sdkType.values; - strictEqual(values.length, 5); - deepEqual( - values.map((x) => x.name), - ["one", "two", "three", "four", "five"] - ); - deepEqual( - values.map((x) => x.value), - [1, 2, 3, 4, 5] - ); - }); - - it("float extensible", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - enum Floats { - a: 1, - b: 2.1, - c: 3, - } - - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - prop: Floats - } - `); - - const sdkType = runner.context.experimental_sdkPackage.enums[0]; - ok(sdkType); - strictEqual(sdkType.isFixed, true); - strictEqual(sdkType.name, "Floats"); - strictEqual(sdkType.valueType.kind, "float32"); - const values = sdkType.values; - strictEqual(values.length, 3); - deepEqual( - values.map((x) => x.name), - ["a", "b", "c"] - ); - deepEqual( - values.map((x) => x.value), - [1, 2.1, 3] - ); - }); - - it("union as enum float type", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - union Floats { - float, - a: 1, - b: 2, - c: 3, - } - - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - prop: Floats - } - `); - - const sdkType = runner.context.experimental_sdkPackage.enums[0]; - strictEqual(sdkType.isFixed, false); - strictEqual(sdkType.name, "Floats"); - strictEqual(sdkType.valueType.kind, "float"); - const values = sdkType.values; - strictEqual(values.length, 3); - deepEqual( - values.map((x) => x.name), - ["a", "b", "c"] - ); - deepEqual( - values.map((x) => x.value), - [1, 2, 3] - ); - }); - - it("union of union as enum float type", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - union BaseEnum { - int32, - a: 1, - } - - @usage(Usage.input | Usage.output) - @access(Access.public) - union ExtendedEnum { - BaseEnum, - b: 2, - c: 3, - } - - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - prop: ExtendedEnum - } - `); - const sdkType = runner.context.experimental_sdkPackage.enums[0]; - ok(sdkType); - strictEqual(sdkType.isFixed, false); - strictEqual(sdkType.valueType.kind, "int32"); - const values = sdkType.values; - strictEqual(values.length, 3); - - // since these union is named, it gets flattened into one - ok(values.find((x) => x.name === "a" && x.value === 1)); - ok(values.find((x) => x.name === "b" && x.value === 2)); - ok(values.find((x) => x.name === "c" && x.value === 3)); - }); - - it("string fixed", async function () { - const runnerWithCore = await createSdkTestRunner({ - librariesToAdd: [AzureCoreTestLibrary], - autoUsings: ["Azure.Core"], - emitterName: "@azure-tools/typespec-java", - }); - await runnerWithCore.compileWithBuiltInAzureCoreService(` - #suppress "@azure-tools/typespec-azure-core/use-extensible-enum" "For testing" - @doc(".") - @fixed - @usage(Usage.input | Usage.output) - @access(Access.public) - enum DaysOfWeekFixedEnum { - @doc("Monday") Monday, - @doc("Tuesday") Tuesday, - @doc("Wednesday") Wednesday, - @doc("Thursday") Thursday, - @doc("Friday") Friday, - @doc("Saturday") Saturday, - @doc("Sunday") Sunday, - } - - @doc(".") - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - @doc(".") - prop: DaysOfWeekFixedEnum - } - `); - strictEqual(runnerWithCore.context.experimental_sdkPackage.models.length, 1); - strictEqual(runnerWithCore.context.experimental_sdkPackage.enums.length, 1); - const sdkType = runnerWithCore.context.experimental_sdkPackage.enums[0]; - strictEqual(sdkType.isFixed, true); - strictEqual(sdkType.name, "DaysOfWeekFixedEnum"); - strictEqual(sdkType.valueType.kind, "string"); - const values = sdkType.values; - strictEqual(values.length, 7); - const nameList = [ - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday", - "Sunday", - ]; - deepEqual( - values.map((x) => x.name), - nameList - ); - deepEqual( - values.map((x) => x.value), - nameList - ); - for (const value of sdkType.values) { - deepStrictEqual(value.enumType, sdkType); - deepStrictEqual(value.valueType, sdkType.valueType); - } - }); - it("enum access transitive closure", async () => { - await runner.compileWithBuiltInService(` - enum Integers { - one: 1, - two: 2, - three: 3, - four: 4, - five: 5, - } - @access(Access.internal) - op func( - @body body: Integers - ): void; - `); - - strictEqual(runner.context.experimental_sdkPackage.enums[0].access, "internal"); - }); - it("crossLanguageDefinitionId", async () => { - await runner.compile(` - @service({}) - namespace MyService { - @usage(Usage.input | Usage.output) - @access(Access.public) - enum Integers { - one: 1, - two: 2, - three: 3, - four: 4, - five: 5, - } - - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - prop: Integers - } - } - `); - strictEqual(runner.context.experimental_sdkPackage.enums.length, 1); - const integersEnum = runner.context.experimental_sdkPackage.enums[0]; - strictEqual(integersEnum.crossLanguageDefinitionId, "MyService.Integers"); - }); - - it("enum with deprecated annotation", async () => { - await runner.compileAndDiagnose(` - @service({}) - namespace MyService; - #deprecated "no longer support" - enum Test { - test - } - op func( - @body body: Test - ): void; - `); - - strictEqual(runner.context.experimental_sdkPackage.enums[0].deprecation, "no longer support"); - }); - - it("orphan enum", async () => { - await runner.compileAndDiagnose(` - @service({}) - @test namespace MyService { - @test - @usage(Usage.input | Usage.output) - @access(Access.public) - enum Enum1{ - one, - two, - three - } - - enum Enum2{ - one, - two, - three - } - } - `); - - strictEqual(runner.context.experimental_sdkPackage.enums[0].name, "Enum1"); - strictEqual( - runner.context.experimental_sdkPackage.enums[0].usage, - UsageFlags.Input | UsageFlags.Output - ); - }); - - it("projected name", async () => { - await runner.compileAndDiagnose(` - @service({}) - @test namespace MyService { - @test - @usage(Usage.input | Usage.output) - @access(Access.public) - @projectedName("java", "JavaEnum1") - enum Enum1{ - @projectedName("java", "JavaOne") - One: "one", - two, - three - } - } - `); - - async function helper(emitterName: string, enumName: string, enumValueName: string) { - const runner = await createTcgcTestRunnerForEmitter(emitterName); - const { Enum1 } = (await runner.compile(` - @service({}) - namespace MyService { - #suppress "deprecated" "for testing" - @test - @usage(Usage.input | Usage.output) - @access(Access.public) - @projectedName("java", "JavaEnum1") - enum Enum1{ - #suppress "deprecated" "for testing" - @projectedName("java", "JavaOne") - One: "one", - two, - three - } - } - `)) as { Enum1: Enum }; - const enum1 = getSdkEnum(runner.context, Enum1); - strictEqual(enum1.name, enumName); - strictEqual(enum1.values[0].name, enumValueName); - } - await helper("@azure-tools/typespec-csharp", "Enum1", "One"); - await helper("@azure-tools/typespec-java", "JavaEnum1", "JavaOne"); - }); - - it("union as enum rename", async () => { - const { TestUnion } = (await runner.compileWithCustomization( - ` - @service({}) - namespace N { - @test - union TestUnion{ - @clientName("ARename") - "A", - "B": "B_v", - string - } - op x(body: TestUnion): void; - } - `, - ` - namespace Customizations; - - @@clientName(N.TestUnion, "TestUnionRename"); - @@clientName(N.TestUnion.B, "BRename"); - ` - )) as { TestUnion: Union }; - - const enumType = getClientType(runner.context, TestUnion); - strictEqual(enumType.kind, "enum"); - strictEqual(enumType.name, "TestUnionRename"); - strictEqual(enumType.isUnionAsEnum, true); - strictEqual(enumType.values[0].name, "ARename"); - strictEqual(enumType.values[1].name, "BRename"); - }); - - it("union as enum with hierarchy", async () => { - const { Test } = (await runner.compile( - ` - @service({}) - namespace N { - @test - union Test{ - A, - B, - C, - null - } - - union A { - "A1", - "A2", - } - - union B { - "B", - string - } - - enum C { - "C" - } - op x(body: Test): void; - } - ` - )) as { Test: Union }; - - const nullableType = getClientType(runner.context, Test); - strictEqual(nullableType.kind, "nullable"); - - const enumType = nullableType.type; - strictEqual(enumType.kind, "enum"); - strictEqual(enumType.name, "Test"); - strictEqual(enumType.isUnionAsEnum, true); - const values = enumType.values; - strictEqual(values.length, 4); - strictEqual(enumType.isFixed, false); - - ok(values.find((x) => x.kind === "enumvalue" && x.name === "A1" && x.value === "A1")); - ok(values.find((x) => x.kind === "enumvalue" && x.name === "A2" && x.value === "A2")); - ok(values.find((x) => x.kind === "enumvalue" && x.name === "B" && x.value === "B")); - ok(values.find((x) => x.kind === "enumvalue" && x.name === "C" && x.value === "C")); - }); - - it("union as enum with hierarchy without flatten", async () => { - runner = await createSdkTestRunner({ - emitterName: "@azure-tools/typespec-python", - "flatten-union-as-enum": false, - }); - const { Test } = (await runner.compile( - ` - @service({}) - namespace N { - @test - union Test{ - A, - B, - C, - null - } - - union A { - "A1", - "A2", - } - - union B { - "B", - string - } - - enum C { - "C" - } - op x(body: Test): void; - } - ` - )) as { Test: Union }; - - const nullableType = getClientType(runner.context, Test); - strictEqual(nullableType.kind, "nullable"); - const unionType = nullableType.type; - - strictEqual(unionType.kind, "union"); - strictEqual(unionType.name, "Test"); - - const values = unionType.values; - strictEqual(values.length, 3); - const a = values[0] as SdkEnumType; - strictEqual(a.name, "A"); - strictEqual(a.kind, "enum"); - strictEqual(a.isUnionAsEnum, true); - strictEqual(a.values[0].name, "A1"); - strictEqual(a.values[0].value, "A1"); - strictEqual(a.values[1].name, "A2"); - strictEqual(a.values[1].value, "A2"); - - const b = values[1] as SdkEnumType; - strictEqual(b.name, "B"); - strictEqual(b.kind, "enum"); - strictEqual(b.isUnionAsEnum, true); - strictEqual(b.values[0].name, "B"); - strictEqual(b.values[0].value, "B"); - - const c = values[2] as SdkEnumType; - strictEqual(c.name, "C"); - strictEqual(c.kind, "enum"); - strictEqual(c.isUnionAsEnum, false); - strictEqual(c.values[0].name, "C"); - strictEqual(c.values[0].value, "C"); - }); - - it("anonymous union as enum with hierarchy", async () => { - const { Test } = (await runner.compile( - ` - @service({}) - namespace N { - enum LR { - left, - right, - } - enum UD { - up, - down, - } - - @test - model Test { - color: LR | UD; - } - op read(@body body: Test): void; - } - ` - )) as { Test: Model }; - - const modelType = getClientType(runner.context, Test) as SdkModelType; - const enumType = modelType.properties[0].type as SdkEnumType; - strictEqual(enumType.name, "TestColor"); - strictEqual(enumType.isGeneratedName, true); - strictEqual(enumType.isUnionAsEnum, true); - // no cross language def id bc it's not a defined object in tsp - strictEqual(enumType.crossLanguageDefinitionId, "Test.color.anonymous"); - const values = enumType.values; - strictEqual(values[0].name, "left"); - strictEqual(values[0].value, "left"); - strictEqual(values[0].valueType.kind, "string"); - strictEqual(values[1].name, "right"); - strictEqual(values[1].value, "right"); - strictEqual(values[1].valueType.kind, "string"); - strictEqual(values[2].name, "up"); - strictEqual(values[2].value, "up"); - strictEqual(values[2].valueType.kind, "string"); - strictEqual(values[3].name, "down"); - strictEqual(values[3].value, "down"); - strictEqual(values[3].valueType.kind, "string"); - }); - - it("anonymous union as enum with hierarchy without flatten", async () => { - runner = await createSdkTestRunner({ - emitterName: "@azure-tools/typespec-python", - "flatten-union-as-enum": false, - }); - const { Test } = (await runner.compile( - ` - @service({}) - namespace N { - enum LR { - left, - right, - } - enum UD { - up, - down, - } - - @test - model Test { - color: LR | UD; - } - op read(@body body: Test): void; - } - ` - )) as { Test: Model }; - - const modelType = getClientType(runner.context, Test) as SdkModelType; - const unionType = modelType.properties[0].type as SdkUnionType; - strictEqual(unionType.name, "TestColor"); - strictEqual(unionType.isGeneratedName, true); - const values = unionType.values; - const lr = values[0] as SdkEnumType; - strictEqual(lr.name, "LR"); - strictEqual(lr.isUnionAsEnum, false); - strictEqual(lr.values[0].name, "left"); - strictEqual(lr.values[1].name, "right"); - strictEqual(lr.isFixed, true); - const ud = values[1] as SdkEnumType; - strictEqual(ud.name, "UD"); - strictEqual(ud.isUnionAsEnum, false); - strictEqual(ud.values[0].name, "up"); - strictEqual(ud.values[1].name, "down"); - strictEqual(ud.isFixed, true); - }); - - it("versioned enums", async () => { - await runner.compile( - ` - @versioned(Versions) - @service() - namespace DemoService; - - enum Versions { - v1, - v2, - } - ` - ); - const enums = runner.context.experimental_sdkPackage.enums; - strictEqual(enums.length, 1); - strictEqual(enums[0].name, "Versions"); - strictEqual(enums[0].usage, UsageFlags.ApiVersionEnum); - deepStrictEqual( - enums[0].values.map((x) => x.value), - ["v1", "v2"] - ); - }); - - it("versioned enums with all", async () => { - const runnerWithVersion = await createSdkTestRunner({ - "api-version": "all", - emitterName: "@azure-tools/typespec-python", - }); - - await runnerWithVersion.compile( - ` - @versioned(Versions) - @service() - namespace DemoService; - - enum Versions { - v1, - v2, - } - ` - ); - const enums = runnerWithVersion.context.experimental_sdkPackage.enums; - strictEqual(enums.length, 1); - strictEqual(enums[0].name, "Versions"); - strictEqual(enums[0].usage, UsageFlags.ApiVersionEnum); - deepStrictEqual( - enums[0].values.map((x) => x.value), - ["v1", "v2"] - ); - }); - - it("versioned enums with latest", async () => { - const runnerWithVersion = await createSdkTestRunner({ - "api-version": "latest", - emitterName: "@azure-tools/typespec-python", - }); - - await runnerWithVersion.compile( - ` - @versioned(Versions) - @service() - namespace DemoService; - - enum Versions { - v1, - v2, - } - ` - ); - const enums = runnerWithVersion.context.experimental_sdkPackage.enums; - strictEqual(enums.length, 1); - strictEqual(enums[0].name, "Versions"); - strictEqual(enums[0].usage, UsageFlags.ApiVersionEnum); - deepStrictEqual( - enums[0].values.map((x) => x.value), - ["v1", "v2"] - ); - }); - - it("versioned enums with specific version", async () => { - const runnerWithVersion = await createSdkTestRunner({ - "api-version": "v1", - emitterName: "@azure-tools/typespec-python", - }); - - await runnerWithVersion.compile( - ` - @versioned(Versions) - @service() - namespace DemoService; - - enum Versions { - v1, - v2, - } - ` - ); - const enums = runnerWithVersion.context.experimental_sdkPackage.enums; - strictEqual(enums.length, 1); - strictEqual(enums[0].name, "Versions"); - strictEqual(enums[0].usage, UsageFlags.ApiVersionEnum); - deepStrictEqual( - enums[0].values.map((x) => x.value), - ["v1"] - ); - }); - - it("usage propagation for enum value", async () => { - await runner.compile( - ` - @service({}) - namespace N { - enum LR { - left, - right, - } - union UD { - up: "up", - down: "down", - } - - @test - model Test { - prop1: LR.left; - prop2: UD.up; - } - op read(@body body: Test): void; - } - ` - ); - const enums = runner.context.experimental_sdkPackage.enums; - strictEqual(enums.length, 2); - strictEqual(enums[0].name, "LR"); - strictEqual(enums[0].usage, UsageFlags.Input); - strictEqual(enums[1].name, "UD"); - strictEqual(enums[1].usage, UsageFlags.Input); - }); - }); - - describe("SdkBodyModelPropertyType", () => { - it("required", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - name: string | int32; - } - `); - const prop = getSdkBodyModelPropertyTypeHelper(runner); - strictEqual(prop.optional, false); - strictEqual(isReadOnly(prop), false); - }); - it("optional", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - name?: string; - } - `); - - const prop = getSdkBodyModelPropertyTypeHelper(runner); - strictEqual(prop.optional, true); - }); - it("readonly", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - @visibility("read") - name?: string; - } - `); - - const prop = getSdkBodyModelPropertyTypeHelper(runner); - strictEqual(isReadOnly(prop), true); - }); - it("not readonly", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - @visibility("read", "create", "update") - name?: string; - } - `); - - const prop = getSdkBodyModelPropertyTypeHelper(runner); - strictEqual(isReadOnly(prop), false); - }); - it("names", async function () { - await runner.compileWithBuiltInService(` - #suppress "deprecated" "for testing" - @test - @usage(Usage.input | Usage.output) - @access(Access.public) - @projectedName("java", "JavaTest") - model Test { - @projectedName("java", "javaProjectedName") - javaWireName: string; - @projectedName("client", "clientName") - clientProjectedName: string; - #suppress "deprecated" "for testing" - @projectedName("json", "projectedWireName") - @encodedName("application/json", "encodedWireName") - jsonEncodedAndProjectedName: string; - #suppress "deprecated" "for testing" - @projectedName("json", "realWireName") - jsonProjectedName: string; // deprecated - regular: string; - } - `); - - const sdkModel = runner.context.experimental_sdkPackage.models[0]; - strictEqual(sdkModel.name, "JavaTest"); - - // Java projected name test - const javaProjectedProp = sdkModel.properties.find((x) => x.name === "javaProjectedName"); - ok(javaProjectedProp); - strictEqual(javaProjectedProp.kind, "property"); - strictEqual(javaProjectedProp.serializedName, "javaWireName"); - - // client projected name test - - const clientProjectedProp = sdkModel.properties.find((x) => x.name === "clientName"); - ok(clientProjectedProp); - strictEqual(clientProjectedProp.kind, "property"); - strictEqual(clientProjectedProp.serializedName, "clientProjectedName"); - - // wire name test with encoded and projected - const jsonEncodedProp = sdkModel.properties.find( - (x) => x.kind === "property" && x.serializedName === "encodedWireName" - ); - ok(jsonEncodedProp); - strictEqual(jsonEncodedProp.nameInClient, "jsonEncodedAndProjectedName"); - strictEqual(jsonEncodedProp.name, "jsonEncodedAndProjectedName"); - - // wire name test with deprecated projected - const jsonProjectedProp = sdkModel.properties.find( - (x) => x.kind === "property" && x.serializedName === "realWireName" - ); - ok(jsonProjectedProp); - strictEqual(jsonProjectedProp.nameInClient, "jsonProjectedName"); - strictEqual(jsonProjectedProp.name, "jsonProjectedName"); - - // regular - const regularProp = sdkModel.properties.find( - (x) => x.kind === "property" && x.serializedName === "regular" - ); - ok(regularProp); - strictEqual(regularProp.nameInClient, "regular"); - strictEqual(regularProp.name, "regular"); - }); - it("union type", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - name: string | int32; - } - `); - - const prop = getSdkBodyModelPropertyTypeHelper(runner); - strictEqual(prop.kind, "property"); - const sdkType = prop.type; - strictEqual(sdkType.kind, "union"); - const values = sdkType.values; - strictEqual(values.length, 2); - strictEqual(values[0].kind, "string"); - strictEqual(values[1].kind, "int32"); - }); - it("versioning", async function () { - const runnerWithVersion = await createSdkTestRunner({ - "api-version": "all", - emitterName: "@azure-tools/typespec-python", - }); - - await runnerWithVersion.compile(` - @versioned(Versions) - @service({title: "Widget Service"}) - namespace DemoService; - - enum Versions { - v1, - v2, - v3, - v4, - } - - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - @added(Versions.v1) - @removed(Versions.v2) - @added(Versions.v3) - versionedProp: string; - - nonVersionedProp: string; - - @removed(Versions.v3) - removedProp: string; - } - `); - const sdkModel = runnerWithVersion.context.experimental_sdkPackage.models.find( - (x) => x.kind === "model" - ); - ok(sdkModel); - strictEqual(sdkModel.kind, "model"); - - const versionedProp = sdkModel.properties[0]; - deepStrictEqual(versionedProp.apiVersions, ["v1", "v3", "v4"]); - - const nonVersionedProp = sdkModel.properties[1]; - deepStrictEqual(nonVersionedProp.apiVersions, ["v1", "v2", "v3", "v4"]); - - const removedProp = sdkModel.properties[2]; - deepStrictEqual(removedProp.apiVersions, ["v1", "v2"]); - }); - }); - describe("SdkConstantType", () => { - it("string", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - prop: "json"; - } - `); - - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "constant"); - strictEqual(sdkType.valueType.kind, "string"); - strictEqual(sdkType.value, "json"); - strictEqual(sdkType.name, "TestProp"); - strictEqual(sdkType.isGeneratedName, true); - }); - it("boolean", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - @test prop: true; - } - `); - - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "constant"); - strictEqual(sdkType.valueType.kind, "boolean"); - strictEqual(sdkType.value, true); - strictEqual(sdkType.name, "TestProp"); - strictEqual(sdkType.isGeneratedName, true); - }); - it("number", async function () { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test { - @test prop: 4; - } - `); - - const sdkType = getSdkTypeHelper(runner); - strictEqual(sdkType.kind, "constant"); - strictEqual(sdkType.valueType.kind, "int32"); - strictEqual(sdkType.value, 4); - strictEqual(sdkType.name, "TestProp"); - strictEqual(sdkType.isGeneratedName, true); - }); - }); - describe("SdkModelType", () => { - it("basic", async () => { - await runner.compile(` - @service({}) - @test namespace MyService { - model InputModel { - prop: string - } - - model OutputModel { - prop: string - } - - op test(@body input: InputModel): OutputModel; - } - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 2); - const modelNames = models.map((model) => model.name).sort(); - deepStrictEqual(modelNames, ["InputModel", "OutputModel"].sort()); - }); - - it("models in Record", async () => { - await runner.compile(` - @service({}) - @test namespace MyService { - model InnerModel { - prop: string - } - - op test(@body input: Record): void; - } - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 1); - const modelNames = models.map((model) => model.name).sort(); - deepStrictEqual(modelNames, ["InnerModel"].sort()); - }); - - it("models in Array", async () => { - await runner.compile(` - @service({}) - @test namespace MyService { - model InnerModel { - prop: string - } - - op test(@body input: InnerModel[]): void; - } - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 1); - const modelNames = models.map((model) => model.name).sort(); - deepStrictEqual(modelNames, ["InnerModel"].sort()); - }); - - it("embedded models", async () => { - await runner.compile(` - @service({}) - @test namespace MyService { - model InnerModel { - prop: string - } - - model InputModel { - prop: InnerModel - } - - op test(@body input: InputModel): void; - } - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 2); - const modelNames = models.map((model) => model.name).sort(); - deepStrictEqual(modelNames, ["InputModel", "InnerModel"].sort()); - }); - - it("base model", async () => { - await runner.compile(` - @service({}) - @test namespace MyService { - model BaseModel { - prop: string - } - - model InputModel extends BaseModel { - prop2: string - } - - op test(@body input: InputModel): void; - } - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 2); - const modelNames = models.map((model) => model.name).sort(); - deepStrictEqual(modelNames, ["InputModel", "BaseModel"].sort()); - }); - - it("derived model", async () => { - await runner.compileWithBuiltInService(` - model InputModel { - prop: string - } - - model DerivedModel extends InputModel { - prop2: string - } - - op test(@body input: DerivedModel): void; - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 2); - const modelNames = models.map((model) => model.name).sort(); - deepStrictEqual(modelNames, ["InputModel", "DerivedModel"].sort()); - }); - - it("recursive model", async () => { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - model RecursiveModel { - prop: RecursiveModel - } - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 1); - const recursiveModel = models[0]; - strictEqual(recursiveModel.name, "RecursiveModel"); - strictEqual(recursiveModel.kind, "model"); - strictEqual(recursiveModel.properties.length, 1); - const prop = recursiveModel.properties[0]; - strictEqual(prop.kind, "property"); - strictEqual(prop.nameInClient, "prop"); - strictEqual(prop.name, "prop"); - strictEqual(prop.type.kind, "model"); - strictEqual(prop.type.name, "RecursiveModel"); - }); - - it("discriminator model", async () => { - await runner.compileWithBuiltInService(` - @discriminator("kind") - model Fish { - age: int32; - } - - @discriminator("sharktype") - model Shark extends Fish { - kind: "shark"; - } - - model Salmon extends Fish { - kind: "salmon"; - friends?: Fish[]; - hate?: Record; - partner?: Fish; - } - - model SawShark extends Shark { - sharktype: "saw"; - } - - model GoblinShark extends Shark { - sharktype: "goblin"; - } - - @get - op getModel(): Fish; - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 5); - const fish = models.find((x) => x.name === "Fish"); - ok(fish); - const kindProperty = fish.properties[0]; - ok(kindProperty); - strictEqual(kindProperty.name, "kind"); - strictEqual(kindProperty.description, "Discriminator property for Fish."); - strictEqual(kindProperty.kind, "property"); - strictEqual(kindProperty.discriminator, true); - strictEqual(kindProperty.type.kind, "string"); - strictEqual(kindProperty.__raw, undefined); - strictEqual(fish.discriminatorProperty, kindProperty); - const shark = models.find((x) => x.name === "Shark"); - ok(shark); - strictEqual(shark.properties.length, 2); - const sharktypeProperty = shark.properties[0]; - ok(sharktypeProperty); - strictEqual(sharktypeProperty.name, "sharktype"); - strictEqual(sharktypeProperty.description, "Discriminator property for Shark."); - strictEqual(sharktypeProperty.kind, "property"); - strictEqual(sharktypeProperty.discriminator, true); - strictEqual(sharktypeProperty.type.kind, "string"); - strictEqual(shark.discriminatorProperty, sharktypeProperty); - }); - - it("handle derived model with discriminator first", async () => { - await runner.compileWithBuiltInService(` - model Salmon extends Fish { - kind: "salmon"; - friends?: Fish[]; - hate?: Record; - partner?: Fish; - } - - @discriminator("kind") - model Fish { - age: int32; - } - - @get - op getSalmon(): Salmon; - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 2); - const fish = models.find((x) => x.name === "Fish"); - ok(fish); - const kindProperty = fish.properties[0]; - ok(kindProperty); - strictEqual(kindProperty.name, "kind"); - strictEqual(kindProperty.description, "Discriminator property for Fish."); - strictEqual(kindProperty.kind, "property"); - strictEqual(kindProperty.discriminator, true); - strictEqual(kindProperty.type.kind, "string"); - strictEqual(kindProperty.__raw, undefined); - strictEqual(fish.discriminatorProperty, kindProperty); - - const salmon = models.find((x) => x.name === "Salmon"); - ok(salmon); - strictEqual(salmon.properties.length, 4); - strictEqual(salmon.properties[0].name, "kind"); - strictEqual((salmon.properties[0] as SdkBodyModelPropertyType).discriminator, true); - strictEqual(salmon.discriminatorValue, "salmon"); - }); - - it("single discriminated model", async () => { - await runner.compileWithBuiltInService(` - @discriminator("kind") - model Fish { - age: int32; - } - - @get - op getModel(): Fish; - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 1); - const fish = models.find((x) => x.name === "Fish"); - ok(fish); - const kindProperty = fish.properties[0]; - ok(kindProperty); - strictEqual(kindProperty.name, "kind"); - strictEqual(kindProperty.description, "Discriminator property for Fish."); - strictEqual(kindProperty.kind, "property"); - strictEqual(kindProperty.discriminator, true); - strictEqual(kindProperty.type.kind, "string"); - strictEqual(kindProperty.__raw, undefined); - strictEqual(kindProperty.type.__raw, undefined); - strictEqual(fish.discriminatorProperty, kindProperty); - }); - - it("enum discriminator model", async () => { - await runner.compileWithBuiltInService(` - enum DogKind { - Golden: "golden", - } - - @discriminator("kind") - model Dog { - kind: DogKind; - weight: int32; - } - - model Golden extends Dog { - kind: DogKind.Golden; - } - - @route("/extensible-enum") - @get - op getExtensibleModel(): Dog; - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 2); - - const golden = models.find((x) => x.name === "Golden"); - ok(golden); - - const kind = golden.properties.find( - (x) => x.kind === "property" && x.serializedName === "kind" - ); - ok(kind); - strictEqual(kind.type.kind, "enumvalue"); - strictEqual(kind.type.value, "golden"); - - const dog = models.find((x) => x.name === "Dog"); - ok(dog); - strictEqual(runner.context.experimental_sdkPackage.enums.length, 1); - const dogKind = runner.context.experimental_sdkPackage.enums[0]; - - const dogKindProperty = dog.properties.find( - (x) => x.kind === "property" && x.serializedName === "kind" - ); - ok(dogKindProperty); - strictEqual(dogKindProperty.kind, "property"); - strictEqual(dogKindProperty.type, dogKind); - strictEqual(dog.discriminatorProperty, dogKindProperty); - }); - - it("union to extensible enum values", async () => { - await runner.compileWithBuiltInService(` - union PetKind { - @doc("Cat") - Cat: "cat", - @doc("Dog") - Dog: "dog", - string, - } - - @route("/extensible-enum") - @put - op putPet(@body petKind: PetKind): void; - `); - strictEqual(runner.context.experimental_sdkPackage.enums.length, 1); - const petKind = runner.context.experimental_sdkPackage.enums[0]; - strictEqual(petKind.name, "PetKind"); - strictEqual(petKind.isFixed, false); - strictEqual(petKind.valueType.kind, "string"); - const values = petKind.values; - deepStrictEqual( - values.map((x) => x.name), - ["Cat", "Dog"] - ); - - const catValue = values.find((x) => x.name === "Cat"); - ok(catValue); - strictEqual(catValue.value, "cat"); - strictEqual(catValue.description, "Cat"); - strictEqual(catValue.enumType, petKind); - strictEqual(catValue.valueType, petKind.valueType); - strictEqual(catValue.kind, "enumvalue"); - - const dogValue = values.find((x) => x.name === "Dog"); - ok(dogValue); - strictEqual(dogValue.value, "dog"); - strictEqual(dogValue.description, "Dog"); - strictEqual(dogValue.enumType, petKind); - strictEqual(dogValue.valueType, petKind.valueType); - strictEqual(dogValue.kind, "enumvalue"); - }); - - it("template variable of anonymous union", async () => { - await runner.compileWithBuiltInService(` - interface GetAndSend { - get(): { - prop: Type; - }; - - send(prop: Type): void; - } - - @route("/string-extensible") - interface StringExtensible extends GetAndSend {} - `); - const sdkPackage = runner.context.experimental_sdkPackage; - strictEqual(sdkPackage.models.length, 1); - strictEqual(sdkPackage.enums.length, 1); - const prop = sdkPackage.enums.find((x) => x.name === "GetResponseProp" && x.isGeneratedName); - ok(prop); - strictEqual(prop.isFixed, false); - strictEqual(prop.valueType.kind, "string"); - const resp = sdkPackage.models.find((x) => x.name === "GetResponse" && x.isGeneratedName); - ok(resp); - strictEqual(resp.properties[0].type, prop); - }); - - it("property of anonymous union as enum", async () => { - await runner.compileWithBuiltInService(` - model Pet { - kind: string | "cat" | "dog"; - } - - @route("/extensible-enum") - @put - op putPet(@body pet: Pet): void; - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 1); - const pet = models.find((x) => x.name === "Pet"); - - const enums = runner.context.experimental_sdkPackage.enums; - const kind = enums.find((x) => x.name === "PetKind"); - ok(pet && kind); - ok(kind.isGeneratedName); - const kindProperty = pet.properties.find((x) => (x.name = "kind")); - ok(kindProperty); - strictEqual(kindProperty.type, kind); - }); - - it("request/response header with enum value", async () => { - await runner.compileWithBuiltInService(` - model RepeatableResponse { - @visibility("read") - @header("Repeatability-Result") - repeatabilityResult?: "accepted" | "rejected"; - } - op foo(@header("Repeatability-Result") repeatabilityResult?: "accepted" | "rejected"): RepeatableResponse; - `); - const sdkPackage = runner.context.experimental_sdkPackage; - strictEqual(sdkPackage.models.length, 0); - strictEqual(sdkPackage.enums.length, 2); - strictEqual(sdkPackage.enums[0].name, "FooRequestRepeatabilityResult"); - strictEqual(sdkPackage.enums[1].name, "FooResponseRepeatabilityResult"); - deepStrictEqual( - sdkPackage.enums[0].values.map((x) => x.name), - ["accepted", "rejected"] - ); - deepStrictEqual( - sdkPackage.enums[1].values.map((x) => x.name), - ["accepted", "rejected"] - ); - }); - - it("enum discriminator model without base discriminator property", async () => { - await runner.compileWithBuiltInService(` - enum DogKind { - Golden: "golden", - } - - @discriminator("kind") - model Dog { - weight: int32; - } - - model Golden extends Dog { - kind: DogKind.Golden; - } - - @route("/extensible-enum") - @get - op getExtensibleModel(): Dog; - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 2); - - const golden = models.find((x) => x.name === "Golden"); - ok(golden); - - const kind = golden.properties.find( - (x) => x.kind === "property" && x.serializedName === "kind" - ); - ok(kind); - strictEqual(kind.type.kind, "enumvalue"); - strictEqual(kind.type.value, "golden"); - - const dog = models.find((x) => x.name === "Dog"); - ok(dog); - strictEqual(runner.context.experimental_sdkPackage.enums.length, 1); - const dogKind = runner.context.experimental_sdkPackage.enums[0]; - - const dogKindProperty = dog.properties[0]; - ok(dogKindProperty); - strictEqual(dogKindProperty.type, dogKind); - strictEqual(dogKindProperty.description, "Discriminator property for Dog."); - }); - - it("discriminator", async () => { - await runner.compileWithBuiltInService(` - @discriminator("kind") - model Fish { - age: int32; - } - - @discriminator("sharktype") - model Shark extends Fish { - kind: "shark"; - sharktype: string; - } - - model Salmon extends Fish { - kind: "salmon"; - friends?: Fish[]; - hate?: Record; - partner?: Fish; - } - - model SawShark extends Shark { - sharktype: "saw"; - } - - model GoblinShark extends Shark { - sharktype: "goblin"; - } - - @get - op getModel(): Fish; - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 5); - const shark = models.find((x) => x.name === "Shark"); - ok(shark); - strictEqual(shark.properties.length, 2); - const sharktypeProperty = shark.properties.find((x) => x.name === "sharktype"); - ok(sharktypeProperty); - strictEqual(sharktypeProperty.kind, "property"); - strictEqual(sharktypeProperty.discriminator, true); - strictEqual(sharktypeProperty.type.kind, "string"); - }); - - it("union discriminator", async () => { - await runner.compileWithBuiltInService(` - union KindType { - string, - shark: "shark", - salmon: "salmon" - }; - - @discriminator("kind") - model Fish { - age: int32; - } - - model Shark extends Fish { - kind: KindType.shark; - hasFin: boolean; - } - - model Salmon extends Fish { - kind: KindType.salmon; - norweigan: boolean; - } - - @get - op getModel(): Fish; - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 3); - const fish = models.find((x) => x.name === "Fish"); - ok(fish); - let kindTypeProperty = fish.properties.find((x) => x.name === "kind"); - ok(kindTypeProperty); - strictEqual(kindTypeProperty.type.kind, "enum"); - strictEqual(kindTypeProperty.type.isUnionAsEnum, true); - strictEqual(fish.discriminatorProperty, kindTypeProperty); - const shark = models.find((x) => x.name === "Shark"); - ok(shark); - strictEqual(shark.discriminatorValue, "shark"); - kindTypeProperty = shark.properties.find((x) => x.name === "kind"); - ok(kindTypeProperty); - strictEqual(kindTypeProperty.type.kind, "enumvalue"); - const salmon = models.find((x) => x.name === "Salmon"); - ok(salmon); - kindTypeProperty = salmon.properties.find((x) => x.name === "kind"); - ok(kindTypeProperty); - strictEqual(kindTypeProperty.type.kind, "enumvalue"); - strictEqual(salmon.discriminatorValue, "salmon"); - - strictEqual(runner.context.experimental_sdkPackage.enums.length, 1); - const kindType = runner.context.experimental_sdkPackage.enums.find( - (x) => x.name === "KindType" - ); - ok(kindType); - strictEqual(kindType.isFixed, false); - }); - - it("string discriminator map to enum value", async () => { - await runner.compileWithBuiltInService(` - union KindType { - string, - shark: "shark", - salmon: "salmon" - }; - - @discriminator("kind") - model Fish { - kind: KindType; - age: int32; - } - - model Shark extends Fish { - kind: "shark"; - hasFin: boolean; - } - - model Salmon extends Fish { - kind: "salmon"; - norweigan: boolean; - } - - @get - op getModel(): Fish; - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 3); - const fish = models.find((x) => x.name === "Fish"); - ok(fish); - let kindTypeProperty = fish.properties.find((x) => x.name === "kind"); - ok(kindTypeProperty); - strictEqual(kindTypeProperty.type.kind, "enum"); - strictEqual(kindTypeProperty.type.isUnionAsEnum, true); - strictEqual(fish.discriminatorProperty, kindTypeProperty); - const shark = models.find((x) => x.name === "Shark"); - ok(shark); - strictEqual(shark.discriminatorValue, "shark"); - kindTypeProperty = shark.properties.find((x) => x.name === "kind"); - ok(kindTypeProperty); - strictEqual(kindTypeProperty.type.kind, "enumvalue"); - const salmon = models.find((x) => x.name === "Salmon"); - ok(salmon); - kindTypeProperty = salmon.properties.find((x) => x.name === "kind"); - ok(kindTypeProperty); - strictEqual(kindTypeProperty.type.kind, "enumvalue"); - strictEqual(salmon.discriminatorValue, "salmon"); - - strictEqual(runner.context.experimental_sdkPackage.enums.length, 1); - const kindType = runner.context.experimental_sdkPackage.enums.find( - (x) => x.name === "KindType" - ); - ok(kindType); - strictEqual(kindType.isFixed, false); - }); - - it("discriminator rename", async () => { - await runner.compileWithBuiltInService(` - @discriminator("kind") - model Fish { - @clientName("type") - @encodedName("application/json", "@data.kind") - kind: string; - age: int32; - } - - model Salmon extends Fish { - kind: "salmon"; - friends?: Fish[]; - hate?: Record; - partner?: Fish; - } - - @get - op getModel(): Fish; - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 2); - const fish = models.find((x) => x.name === "Fish"); - ok(fish); - strictEqual(fish.properties.length, 2); - const discriminatorProperty = fish.properties.find((x) => x.name === "type"); - ok(discriminatorProperty); - strictEqual(discriminatorProperty.kind, "property"); - strictEqual(discriminatorProperty.discriminator, true); - strictEqual(discriminatorProperty.type.kind, "string"); - strictEqual(discriminatorProperty.serializedName, "@data.kind"); - }); - - it("filterOutCoreModels true", async () => { - const runnerWithCore = await createSdkTestRunner({ - librariesToAdd: [AzureCoreTestLibrary], - autoUsings: ["Azure.Core"], - emitterName: "@azure-tools/typespec-java", - }); - await runnerWithCore.compileWithBuiltInAzureCoreService(` - @resource("users") - @doc("Details about a user.") - model User { - @key - @doc("The user's id.") - @visibility("read") - id: int32; - - @doc("The user's name.") - name: string; - } - - @doc("Creates or updates a User") - op createOrUpdate is StandardResourceOperations.ResourceCreateOrUpdate; - `); - const models = runnerWithCore.context.experimental_sdkPackage.models; - strictEqual(models.length, 1); - strictEqual(models[0].name, "User"); - }); - - it("filterOutCoreModels false", async () => { - const runnerWithCore = await createSdkTestRunner({ - librariesToAdd: [AzureCoreTestLibrary], - autoUsings: ["Azure.Core"], - "filter-out-core-models": false, - emitterName: "@azure-tools/typespec-java", - }); - await runnerWithCore.compileWithBuiltInAzureCoreService(` - @resource("users") - @doc("Details about a user.") - model User { - @key - @doc("The user's id.") - @visibility("read") - id: int32; - - @doc("The user's name.") - name: string; - } - - @doc("Creates or updates a User") - op createOrUpdate is StandardResourceOperations.ResourceCreateOrUpdate; - `); - const models = runnerWithCore.context.experimental_sdkPackage.models; - strictEqual(models.length, 4); - const modelNames = models.map((model) => model.name).sort(); - deepStrictEqual(modelNames, ["Error", "ErrorResponse", "InnerError", "User"].sort()); - }); - - it("lro core filterOutCoreModels true", async () => { - const runnerWithCore = await createSdkTestRunner({ - librariesToAdd: [AzureCoreTestLibrary], - autoUsings: ["Azure.Core"], - emitterName: "@azure-tools/typespec-java", - }); - await runnerWithCore.compileWithBuiltInAzureCoreService(` - @resource("users") - @doc("Details about a user.") - model User { - @key - @doc("The user's name.") - @visibility("read") - name: string; - } - - @doc("Gets status.") - op getStatus is StandardResourceOperations.GetResourceOperationStatus; - - @doc("Polls status.") - @pollingOperation(My.Service.getStatus) - op createOrUpdateUser is StandardResourceOperations.LongRunningResourceCreateOrUpdate; - `); - const models = runnerWithCore.context.experimental_sdkPackage.models; - strictEqual(models.length, 1); - strictEqual(models[0].name, "User"); - }); - - it("lro core filterOutCoreModels false", async () => { - const runnerWithCore = await createSdkTestRunner({ - librariesToAdd: [AzureCoreTestLibrary], - autoUsings: ["Azure.Core"], - "filter-out-core-models": false, - emitterName: "@azure-tools/typespec-java", - }); - await runnerWithCore.compileWithBuiltInAzureCoreService(` - @resource("users") - @doc("Details about a user.") - model User { - @key - @doc("The user's name.") - @visibility("read") - name: string; - } - - @doc("Gets status.") - op getStatus is StandardResourceOperations.GetResourceOperationStatus; - - @doc("Polls status.") - @pollingOperation(My.Service.getStatus) - op createOrUpdateUser is StandardResourceOperations.LongRunningResourceCreateOrUpdate; - `); - const models = runnerWithCore.context.experimental_sdkPackage.models; - strictEqual(models.length, 5); - const modelNames = models.map((model) => model.name).sort(); - deepStrictEqual( - modelNames, - [ - "Error", - "ErrorResponse", - "InnerError", - "User", - "ResourceOperationStatusUserUserError", - ].sort() - ); - strictEqual(runnerWithCore.context.experimental_sdkPackage.enums.length, 1); - strictEqual(runnerWithCore.context.experimental_sdkPackage.enums[0].name, "OperationState"); - }); - it("no models filter core", async () => { - await runner.compile(` - @service({}) - @test namespace MyService { } - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 0); - }); - it("no models don't filter core", async () => { - await runner.compile(` - @service({}) - @test namespace MyService { } - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 0); - }); - it("input usage", async () => { - await runner.compileWithBuiltInService(` - model InputModel { - prop: string - } - op operation(@body input: InputModel): void; - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 1); - strictEqual(models[0].usage, UsageFlags.Input); - strictEqual(models.filter((x) => x.usage === UsageFlags.Input).length, 1); - strictEqual(models.filter((x) => x.usage === UsageFlags.Output).length, 0); - }); - - it("output usage", async () => { - await runner.compileWithBuiltInService(` - model OutputModel { - prop: string - } - op operation(): OutputModel; - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 1); - strictEqual(models[0].usage, UsageFlags.Output); - - strictEqual(models.filter((x) => x.usage === UsageFlags.Output).length, 1); - strictEqual(models.filter((x) => x.usage === UsageFlags.Input).length, 0); - }); - - it("roundtrip usage", async () => { - await runner.compileWithBuiltInService(` - model RoundtripModel { - prop: string - } - op operation(@body input: RoundtripModel): RoundtripModel; - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 1); - strictEqual(models[0].usage, UsageFlags.Input | UsageFlags.Output); - - strictEqual(models.filter((x) => (x.usage & UsageFlags.Output) > 0).length, 1); - strictEqual(models.filter((x) => (x.usage & UsageFlags.Input) > 0).length, 1); - strictEqual(models.filter((x) => x.usage === UsageFlags.None).length, 0); - }); - - it("readonly usage", async () => { - await runner.compileWithBuiltInService(` - model ResultModel { - name: string; - } - - model RoundTripModel { - @visibility("read") - result: ResultModel; - } - - @route("/modelInReadOnlyProperty") - @put - op modelInReadOnlyProperty(@body body: RoundTripModel): { - @body body: RoundTripModel; - }; - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 2); - strictEqual( - models.find((x) => x.name === "RoundTripModel")?.usage, - UsageFlags.Input | UsageFlags.Output - ); - strictEqual(models.find((x) => x.name === "ResultModel")?.usage, UsageFlags.Output); - }); - - it("usage propagation", async () => { - await runner.compileWithBuiltInService(` - @discriminator("kind") - model Fish { - age: int32; - } - - @discriminator("sharktype") - model Shark extends Fish { - kind: "shark"; - } - - model Salmon extends Fish { - kind: "salmon"; - friends?: Fish[]; - hate?: Record; - partner?: Fish; - } - - model SawShark extends Shark { - sharktype: "saw"; - } - - model GoblinShark extends Shark { - sharktype: "goblin"; - } - op operation(@body input: Shark): Shark; - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 4); - strictEqual(models[0].usage, UsageFlags.Input | UsageFlags.Output); - }); - - it("usage propagation from subtype", async () => { - await runner.compileWithBuiltInService(` - @discriminator("kind") - model Fish { - age: int32; - } - - @discriminator("sharktype") - model Shark extends Fish { - kind: "shark"; - } - - model Salmon extends Fish { - kind: "salmon"; - friends?: Fish[]; - hate?: Record; - partner?: Fish; - } - - model SawShark extends Shark { - sharktype: "saw"; - } - - model GoblinShark extends Shark { - sharktype: "goblin"; - } - op operation(@body input: Salmon): Salmon; - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 2); - strictEqual(models[0].usage, UsageFlags.Input | UsageFlags.Output); - }); - - it("usage propagation from subtype of type with another discriminated property", async () => { - await runner.compileWithBuiltInService(` - @discriminator("kind") - model Fish { - age: int32; - food: Food; - } - - @discriminator("sharktype") - model Shark extends Fish { - kind: "shark"; - } - - @discriminator("kind") - model Food { - kind: string; - } - - model Salmon extends Fish { - kind: "salmon"; - friends?: Fish[]; - } - - model Fruit extends Food { - kind: "fruit"; - } - - model Meet extends Food { - kind: "meet"; - } - op operation(@body input: Salmon): Salmon; - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 5); - strictEqual(models[0].usage, UsageFlags.Input | UsageFlags.Output); - }); - - it("unnamed model", async () => { - await runner.compileWithBuiltInService(` - model Test { - prop1: {innerProp1: string}; - prop2: {innerProp2: string}; - } - op func( - @body body: Test - ): void; - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 3); - const propreties: string[] = []; - models.forEach((model) => { - model.properties.forEach((prop) => { - propreties.push(prop.name); - }); - }); - propreties.sort(); - deepStrictEqual(propreties, ["innerProp1", "innerProp2", "prop1", "prop2"]); - }); - it("model access transitive closure", async () => { - await runner.compileWithBuiltInService(` - model Test { - prop: string; - } - @access(Access.internal) - op func( - @body body: Test - ): void; - `); - - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 1); - strictEqual(models[0].access, "internal"); - }); - - it("complicated access transitive closure", async () => { - await runner.compileWithBuiltInService(` - model Test1 { - prop: Test2; - } - model Test2 { - prop: string; - } - @access(Access.internal) - @route("/func1") - op func1( - @body body: Test1 - ): void; - - model Test3 { - prop: string; - } - - @access(Access.internal) - @route("/func2") - op func2( - @body body: Test3 - ): void; - - @route("/func3") - op func3( - @body body: Test3 - ): void; - - model Test4 { - prop: Test5; - } - - model Test5 { - prop: Test6; - } - - model Test6 { - prop: string; - } - - @access(Access.internal) - @route("/func4") - op func4( - @body body: Test4 - ): void; - - @route("/func5") - op func5( - @body body: Test6 - ): void; - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 6); - - const Test1 = models.find((x) => x.name === "Test1"); - ok(Test1); - strictEqual(Test1.access, "internal"); - - const Test2 = models.find((x) => x.name === "Test2"); - ok(Test2); - strictEqual(Test2.access, "internal"); - - const Test3 = models.find((x) => x.name === "Test3"); - ok(Test3); - strictEqual(Test3.access, "public"); - - const Test4 = models.find((x) => x.name === "Test4"); - ok(Test4); - strictEqual(Test4.access, "internal"); - - const Test5 = models.find((x) => x.name === "Test5"); - ok(Test5); - strictEqual(Test5.access, "internal"); - - const Test6 = models.find((x) => x.name === "Test6"); - ok(Test6); - strictEqual(Test6.access, "public"); - }); - it("additionalProperties of same type", async () => { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - model AdditionalPropertiesModel extends Record { - prop: string; - } - @usage(Usage.input | Usage.output) - @access(Access.public) - model AdditionalPropertiesModel2 is Record { - prop: string; - } - @usage(Usage.input | Usage.output) - @access(Access.public) - model AdditionalPropertiesModel3 { - prop: string; - ...Record; - } - @usage(Usage.input | Usage.output) - @access(Access.public) - model NoAdditionalPropertiesModel { - prop: string; - } - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 4); - const AdditionalPropertiesModel = models.find((x) => x.name === "AdditionalPropertiesModel"); - const AdditionalPropertiesModel2 = models.find( - (x) => x.name === "AdditionalPropertiesModel2" - ); - const AdditionalPropertiesModel3 = models.find( - (x) => x.name === "AdditionalPropertiesModel3" - ); - const NonAdditionalPropertiesModel = models.find( - (x) => x.name === "NoAdditionalPropertiesModel" - ); - ok( - AdditionalPropertiesModel && - AdditionalPropertiesModel2 && - AdditionalPropertiesModel3 && - NonAdditionalPropertiesModel - ); - strictEqual(AdditionalPropertiesModel.additionalProperties?.kind, "string"); - strictEqual(AdditionalPropertiesModel.baseModel, undefined); - strictEqual(AdditionalPropertiesModel2.additionalProperties?.kind, "any"); - strictEqual(AdditionalPropertiesModel2.baseModel, undefined); - strictEqual(AdditionalPropertiesModel3.additionalProperties?.kind, "string"); - strictEqual(AdditionalPropertiesModel3.baseModel, undefined); - strictEqual(NonAdditionalPropertiesModel.additionalProperties, undefined); - }); - - it("additionalProperties usage", async () => { - await runner.compileWithBuiltInService(` - @service({}) - namespace MyService { - model AdditionalPropertiesModel extends Record { - } - - model AdditionalPropertiesModel2 is Record { - } - - model AdditionalPropertiesModel3 { - ...Record; - } - - model Test { - } - - model Test2 { - } - - @route("test") - op test(@body input: AdditionalPropertiesModel): AdditionalPropertiesModel2; - @route("test2") - op test2(@body input: AdditionalPropertiesModel3): AdditionalPropertiesModel3; - } - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 5); - const AdditionalPropertiesModel = models.find((x) => x.name === "AdditionalPropertiesModel"); - const AdditionalPropertiesModel2 = models.find( - (x) => x.name === "AdditionalPropertiesModel2" - ); - const AdditionalPropertiesModel3 = models.find( - (x) => x.name === "AdditionalPropertiesModel3" - ); - const Test = models.find((x) => x.name === "Test"); - const Test2 = models.find((x) => x.name === "Test2"); - ok( - AdditionalPropertiesModel && - AdditionalPropertiesModel2 && - AdditionalPropertiesModel3 && - Test && - Test2 - ); - - strictEqual(AdditionalPropertiesModel.additionalProperties?.kind, "model"); - strictEqual(AdditionalPropertiesModel.baseModel, undefined); - strictEqual(AdditionalPropertiesModel.usage, UsageFlags.Input); - strictEqual(AdditionalPropertiesModel2.additionalProperties?.kind, "model"); - strictEqual(AdditionalPropertiesModel2.baseModel, undefined); - strictEqual(AdditionalPropertiesModel2.usage, UsageFlags.Output); - strictEqual(AdditionalPropertiesModel3.additionalProperties?.kind, "model"); - strictEqual(AdditionalPropertiesModel3.baseModel, undefined); - strictEqual(AdditionalPropertiesModel3.usage, UsageFlags.Input | UsageFlags.Output); - strictEqual(Test.usage, UsageFlags.Input | UsageFlags.Output); - strictEqual(Test2.usage, UsageFlags.Input | UsageFlags.Output); - }); - - it("additionalProperties of different types", async () => { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - model AdditionalPropertiesModel { - prop: string; - ...Record; - } - - @usage(Usage.input | Usage.output) - @access(Access.public) - model AdditionalPropertiesModel2 { - prop: string; - ...Record; - } - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 2); - const AdditionalPropertiesModel = models.find((x) => x.name === "AdditionalPropertiesModel"); - const AdditionalPropertiesModel2 = models.find( - (x) => x.name === "AdditionalPropertiesModel2" - ); - ok(AdditionalPropertiesModel && AdditionalPropertiesModel2); - strictEqual(AdditionalPropertiesModel.additionalProperties?.kind, "float32"); - strictEqual(AdditionalPropertiesModel.baseModel, undefined); - strictEqual(AdditionalPropertiesModel2.additionalProperties?.kind, "union"); - strictEqual(AdditionalPropertiesModel2.additionalProperties?.values[0].kind, "boolean"); - strictEqual(AdditionalPropertiesModel2.additionalProperties?.values[1].kind, "float32"); - strictEqual(AdditionalPropertiesModel2.baseModel, undefined); - }); - - it("crossLanguageDefinitionId", async () => { - await runner.compile(` - @service({}) - namespace MyService { - @usage(Usage.input) - @access(Access.public) - model InputModel {} - - @usage(Usage.output) - @access(Access.public) - model OutputModel {} - } - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 2); - const inputModel = models.find((x) => x.name === "InputModel"); - ok(inputModel); - strictEqual(inputModel.crossLanguageDefinitionId, "MyService.InputModel"); - const outputModel = models.find((x) => x.name === "OutputModel"); - ok(outputModel); - strictEqual(outputModel.crossLanguageDefinitionId, "MyService.OutputModel"); - }); - - it("template model", async () => { - await runner.compileWithBuiltInService(` - @usage(Usage.input | Usage.output) - @access(Access.public) - model Catalog is TrackedResource { - @pattern("^[A-Za-z0-9_-]{1,50}$") - @key("catalogName") - @segment("catalogs") - name: string; - } - - @usage(Usage.input | Usage.output) - @access(Access.public) - model CatalogProperties { - test?: string; - } - - model TrackedResource { - properties?: TProperties; - } - - @usage(Usage.input | Usage.output) - @access(Access.public) - model Deployment is TrackedResource { - @key("deploymentName") - @segment("deployments") - name: string; - } - - @usage(Usage.input | Usage.output) - @access(Access.public) - model DeploymentProperties { - deploymentId?: string; - deploymentDateUtc?: utcDateTime; - } - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 4); - const catalog = models.find((x) => x.name === "Catalog"); - const deployment = models.find((x) => x.name === "Deployment"); - ok(catalog && deployment); - strictEqual(catalog.properties.length, 2); - strictEqual(deployment.properties.length, 2); - }); - it("model with deprecated annotation", async () => { - await runner.compileAndDiagnose(` - @service({}) - namespace MyService; - #deprecated "no longer support" - model Test { - } - op func( - @body body: Test - ): void; - `); - - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 1); - strictEqual(models[0].deprecation, "no longer support"); - }); - - it("orphan model", async () => { - await runner.compileAndDiagnose(` - @service({}) - @test namespace MyService { - @test - @usage(Usage.input | Usage.output) - @access(Access.public) - model Model1{} - - model Model2{} - } - `); - - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 1); - strictEqual(models[0].name, "Model1"); - strictEqual(models[0].usage, UsageFlags.Input | UsageFlags.Output); - }); - - it("model with client hierarchy", async () => { - await runner.compile(` - @service({}) - namespace Test1Client { - model T1 { - prop: string; - } - model T2 { - prop: string; - } - @route("/b") - namespace B { - op x(): void; - - @route("/c") - interface C { - op y(): T1; - } - - @route("/d") - namespace D { - op z(@body body: T2): void; - } - } - } - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 2); - }); - it("error model", async () => { - await runner.compileWithBuiltInService(` - @error - model ApiError { - code: string; - } - - op test(): ApiError; - `); - const models = getAllModels(runner.context); - strictEqual(models.length, 1); - strictEqual(models[0].kind, "model"); - strictEqual(models[0].isError, true); - const rawModel = models[0].__raw; - ok(rawModel); - strictEqual(rawModel.kind, "Model"); - strictEqual(isErrorOrChildOfError(runner.context, rawModel), true); - }); - - it("error model inheritance", async () => { - await runner.compileWithBuiltInService(` - model ValidResponse { - prop: string; - }; - - @error - model ApiError { - code: string - }; - - model FourHundredError extends ApiError { - @statusCode - @minValue(400) - @maxValue(499) - statusCode: int32; - }; - model FourZeroFourError extends FourHundredError { - @statusCode - statusCode: 404; - }; - model FiveHundredError extends ApiError { - @statusCode - @minValue(500) - @maxValue(599) - statusCode: int32; - }; - - op test(): ValidResponse | FourZeroFourError | FiveHundredError; - `); - const models = getAllModels(runner.context); - strictEqual(models.length, 5); - const errorModels = models.filter((x) => x.kind === "model" && x.isError); - deepStrictEqual(errorModels.map((x) => x.name).sort(), [ - "ApiError", - "FiveHundredError", - "FourHundredError", - "FourZeroFourError", - ]); - const validModel = models.filter((x) => x.kind === "model" && !x.isError); - deepStrictEqual( - validModel.map((x) => x.name), - ["ValidResponse"] - ); - }); - - it("never or void property", async () => { - await runner.compileAndDiagnose(` - @service({}) - @test namespace MyService { - @test - @usage(Usage.input | Usage.output) - @access(Access.public) - model Test{ - prop1: never; - prop2: void; - } - } - `); - - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 1); - strictEqual(models[0].name, "Test"); - strictEqual(models[0].properties.length, 0); - }); - }); - - describe("SdkArrayType", () => { - it("use model is to represent array", async () => { - await runner.compile(` - @service({}) - namespace TestClient { - model TestModel { - prop: string; - } - model TestArray is TestModel[]; - - op get(): TestArray; - } - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 1); - const model = models[0]; - strictEqual(model.kind, "model"); - strictEqual(model.name, "TestModel"); - const client = runner.context.experimental_sdkPackage.clients[0]; - ok(client); - const method = client.methods[0]; - ok(method); - strictEqual(method.response.kind, "method"); - strictEqual(method.response.type?.kind, "array"); - strictEqual(method.response.type?.valueType.kind, "model"); - strictEqual(method.response.type?.valueType.name, "TestModel"); - }); - }); - - describe("SdkMultipartFormType", () => { - it("multipart form basic", async function () { - await runner.compileWithBuiltInService(` - model MultiPartRequest { - id: string; - profileImage: bytes; - } - - op basic(@header contentType: "multipart/form-data", @body body: MultiPartRequest): NoContentResponse; - `); - - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 1); - const model = models[0]; - strictEqual(model.kind, "model"); - strictEqual(model.isFormDataType, true); - ok((model.usage & UsageFlags.MultipartFormData) > 0); - strictEqual(model.name, "MultiPartRequest"); - strictEqual(model.properties.length, 2); - const id = model.properties.find((x) => x.name === "id"); - ok(id); - strictEqual(id.kind, "property"); - strictEqual(id.type.kind, "string"); - const profileImage = model.properties.find((x) => x.name === "profileImage"); - ok(profileImage); - strictEqual(profileImage.kind, "property"); - strictEqual(profileImage.isMultipartFileInput, true); - }); - it("multipart conflicting model usage", async function () { - await runner.compile( - ` - @service({title: "Test Service"}) namespace TestService; - model MultiPartRequest { - id: string; - profileImage: bytes; - } - - @post op multipartUse(@header contentType: "multipart/form-data", @body body: MultiPartRequest): NoContentResponse; - @put op jsonUse(@body body: MultiPartRequest): NoContentResponse; - ` - ); - const [_, diagnostics] = getAllModelsWithDiagnostics(runner.context); - expectDiagnostics(diagnostics, { - code: "@azure-tools/typespec-client-generator-core/conflicting-multipart-model-usage", - }); - }); - it("multipart resolving conflicting model usage with spread", async function () { - await runner.compileWithBuiltInService( - ` - model B { - doc: bytes - } - - model A { - ...B - } - - @put op multipartOperation(@header contentType: "multipart/form-data", ...A): void; - @post op normalOperation(...B): void; - ` - ); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 2); - const modelA = models.find((x) => x.name === "A"); - ok(modelA); - strictEqual(modelA.kind, "model"); - strictEqual(modelA.isFormDataType, true); - ok((modelA.usage & UsageFlags.MultipartFormData) > 0); - strictEqual(modelA.properties.length, 1); - const modelAProp = modelA.properties[0]; - strictEqual(modelAProp.kind, "property"); - strictEqual(modelAProp.isMultipartFileInput, true); - - const modelB = models.find((x) => x.name === "B"); - ok(modelB); - strictEqual(modelB.kind, "model"); - strictEqual(modelB.isFormDataType, false); - ok((modelB.usage & UsageFlags.MultipartFormData) === 0); - strictEqual(modelB.properties.length, 1); - strictEqual(modelB.properties[0].type.kind, "bytes"); - }); - - it("multipart with non-formdata model property", async function () { - await runner.compileWithBuiltInService( - ` - model Address { - city: string; - } - - model AddressFirstAppearance { - address: Address; - } - - @usage(Usage.input | Usage.output) - @access(Access.public) - model AddressSecondAppearance { - address: Address; - } - - @put op multipartOne(@header contentType: "multipart/form-data", @body body: AddressFirstAppearance): void; - ` - ); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 3); - }); - - it("multipart with list of bytes", async function () { - await runner.compileWithBuiltInService( - ` - model PictureWrapper { - pictures: bytes[]; - } - - @put op multipartOp(@header contentType: "multipart/form-data", @body body: PictureWrapper): void; - ` - ); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 1); - const model = models[0]; - strictEqual(model.properties.length, 1); - const pictures = model.properties[0]; - strictEqual(pictures.kind, "property"); - strictEqual(pictures.isMultipartFileInput, true); - }); - - it("multipart with encoding bytes raises error", async function () { - await runner.compile( - ` - @service({title: "Test Service"}) namespace TestService; - model EncodedBytesMFD { - @encode("base64") - pictures: bytes; - } - - @put op multipartOp(@header contentType: "multipart/form-data", @body body: EncodedBytesMFD): void; - ` - ); - ok(runner.context.diagnostics?.length); - expectDiagnostics(runner.context.diagnostics, { - code: "@azure-tools/typespec-client-generator-core/encoding-multipart-bytes", - }); - }); - - it("multipart with reused error model", async function () { - await runner.compileWithBuiltInService( - ` - model PictureWrapper { - pictures: bytes[]; - } - - model ErrorResponse { - errorCode: string; - } - - @put op multipartOp(@header contentType: "multipart/form-data", @body body: PictureWrapper): void | ErrorResponse; - @post op normalOp(): void | ErrorResponse; - ` - ); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 2); - - const pictureWrapper = models.find((x) => x.name === "PictureWrapper"); - ok(pictureWrapper); - strictEqual(pictureWrapper.isFormDataType, true); - ok((pictureWrapper.usage & UsageFlags.MultipartFormData) > 0); - - const errorResponse = models.find((x) => x.name === "ErrorResponse"); - ok(errorResponse); - strictEqual(errorResponse.kind, "model"); - strictEqual(errorResponse.isFormDataType, false); - ok((errorResponse.usage & UsageFlags.MultipartFormData) === 0); - }); - - it("expands model into formData parameters", async function () { - await runner.compileWithBuiltInService(` - @doc("A widget.") - model Widget { - @key("widgetName") - name: string; - displayName: string; - description: string; - color: string; - } - - model WidgetForm is Widget { - @header("content-type") - contentType: "multipart/form-data"; - } - - @route("/widgets") - interface Widgets { - @route(":upload") - @post - upload(...WidgetForm): Widget; - } - `); - const formDataMethod = runner.context.experimental_sdkPackage.clients[0].methods[0]; - strictEqual(formDataMethod.kind, "basic"); - strictEqual(formDataMethod.name, "upload"); - strictEqual(formDataMethod.parameters.length, 3); - - const widgetParam = formDataMethod.parameters.find((x) => x.name === "widget"); - ok(widgetParam); - ok(formDataMethod.parameters.find((x) => x.name === "accept")); - strictEqual(formDataMethod.parameters[0].name, "contentType"); - strictEqual(formDataMethod.parameters[0].type.kind, "constant"); - strictEqual(formDataMethod.parameters[0].type.value, "multipart/form-data"); - strictEqual(formDataMethod.parameters[1].name, "widget"); - strictEqual(formDataMethod.parameters[1].type.kind, "model"); - strictEqual(formDataMethod.parameters[1].type.name, "Widget"); - - const formDataOp = formDataMethod.operation; - strictEqual(formDataOp.parameters.length, 2); - ok(formDataOp.parameters.find((x) => x.name === "accept" && x.kind === "header")); - ok(formDataOp.parameters.find((x) => x.name === "contentType" && x.kind === "header")); - - const formDataBodyParam = formDataOp.bodyParam; - ok(formDataBodyParam); - strictEqual(formDataBodyParam.type.kind, "model"); - strictEqual(formDataBodyParam.type.name, "Widget"); - strictEqual(formDataBodyParam.correspondingMethodParams[0], formDataMethod.parameters[1]); - }); - - it("usage doesn't apply to properties of a form data", async function () { - await runner.compileWithBuiltInService(` - model MultiPartRequest { - id: string; - profileImage: bytes; - address: Address; - } - - model Address { - city: string; - } - - @post - op upload(@header contentType: "multipart/form-data", @body body: MultiPartRequest): void; - `); - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 2); - const multiPartRequest = models.find((x) => x.name === "MultiPartRequest"); - ok(multiPartRequest); - ok(multiPartRequest.usage & UsageFlags.MultipartFormData); - - const address = models.find((x) => x.name === "Address"); - ok(address); - strictEqual(address.usage & UsageFlags.MultipartFormData, 0); - }); - }); - describe("SdkTupleType", () => { - it("model with tupled properties", async function () { - await runner.compileAndDiagnose(` - @service({}) - namespace MyService; - @usage(Usage.input | Usage.output) - @access(Access.public) - model MyFlow { - scopes: ["https://security.microsoft.com/.default"]; - test: [int32, string] - } - `); - - const models = runner.context.experimental_sdkPackage.models; - strictEqual(models.length, 1); - const scopes = models[0].properties.find((x) => x.name === "scopes"); - ok(scopes); - strictEqual(scopes.type.kind, "tuple"); - strictEqual(scopes.type.values[0].kind, "constant"); - strictEqual(scopes.type.values[0].valueType.kind, "string"); - strictEqual(scopes.type.values[0].value, "https://security.microsoft.com/.default"); - const test = models[0].properties.find((x) => x.name === "test"); - ok(test); - strictEqual(test.type.kind, "tuple"); - strictEqual(test.type.values[0].kind, "int32"); - strictEqual(test.type.values[1].kind, "string"); - }); - }); -}); - -function getSdkBodyModelPropertyTypeHelper(runner: SdkTestRunner): SdkBodyModelPropertyType { - const sdkModel = runner.context.experimental_sdkPackage.models.find((x) => x.kind === "model"); - ok(sdkModel); - strictEqual(sdkModel.kind, "model"); - const property = sdkModel.properties[0]; - strictEqual(property.kind, "property"); - return property; -} - -function getSdkTypeHelper(runner: SdkTestRunner): SdkType { - return getSdkBodyModelPropertyTypeHelper(runner).type; -} diff --git a/packages/typespec-client-generator-core/test/types/array-types.test.ts b/packages/typespec-client-generator-core/test/types/array-types.test.ts new file mode 100644 index 0000000000..34461e903e --- /dev/null +++ b/packages/typespec-client-generator-core/test/types/array-types.test.ts @@ -0,0 +1,38 @@ +import { ok, strictEqual } from "assert"; +import { beforeEach, describe, it } from "vitest"; +import { SdkTestRunner, createSdkTestRunner } from "../test-host.js"; + +describe("typespec-client-generator-core: array types", () => { + let runner: SdkTestRunner; + + beforeEach(async () => { + runner = await createSdkTestRunner({ emitterName: "@azure-tools/typespec-java" }); + }); + + it("use model is to represent array", async () => { + await runner.compile(` + @service({}) + namespace TestClient { + model TestModel { + prop: string; + } + model TestArray is TestModel[]; + + op get(): TestArray; + } + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + const model = models[0]; + strictEqual(model.kind, "model"); + strictEqual(model.name, "TestModel"); + const client = runner.context.experimental_sdkPackage.clients[0]; + ok(client); + const method = client.methods[0]; + ok(method); + strictEqual(method.response.kind, "method"); + strictEqual(method.response.type?.kind, "array"); + strictEqual(method.response.type?.valueType.kind, "model"); + strictEqual(method.response.type?.valueType.name, "TestModel"); + }); +}); diff --git a/packages/typespec-client-generator-core/test/types/body-model-property-types.test.ts b/packages/typespec-client-generator-core/test/types/body-model-property-types.test.ts new file mode 100644 index 0000000000..e58677896b --- /dev/null +++ b/packages/typespec-client-generator-core/test/types/body-model-property-types.test.ts @@ -0,0 +1,193 @@ +/* eslint-disable deprecation/deprecation */ +import { deepStrictEqual, ok, strictEqual } from "assert"; +import { beforeEach, describe, it } from "vitest"; +import { isReadOnly } from "../../src/types.js"; +import { SdkTestRunner, createSdkTestRunner } from "../test-host.js"; +import { getSdkBodyModelPropertyTypeHelper } from "./utils.js"; + +describe("typespec-client-generator-core: body model property types", () => { + let runner: SdkTestRunner; + + beforeEach(async () => { + runner = await createSdkTestRunner({ emitterName: "@azure-tools/typespec-java" }); + }); + + it("required", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + name: string | int32; + } + `); + const prop = getSdkBodyModelPropertyTypeHelper(runner); + strictEqual(prop.optional, false); + strictEqual(isReadOnly(prop), false); + }); + it("optional", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + name?: string; + } + `); + + const prop = getSdkBodyModelPropertyTypeHelper(runner); + strictEqual(prop.optional, true); + }); + it("readonly", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + @visibility("read") + name?: string; + } + `); + + const prop = getSdkBodyModelPropertyTypeHelper(runner); + strictEqual(isReadOnly(prop), true); + }); + it("not readonly", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + @visibility("read", "create", "update") + name?: string; + } + `); + + const prop = getSdkBodyModelPropertyTypeHelper(runner); + strictEqual(isReadOnly(prop), false); + }); + it("names", async function () { + await runner.compileWithBuiltInService(` + #suppress "deprecated" "for testing" + @test + @usage(Usage.input | Usage.output) + @access(Access.public) + @projectedName("java", "JavaTest") + model Test { + @projectedName("java", "javaProjectedName") + javaWireName: string; + @projectedName("client", "clientName") + clientProjectedName: string; + #suppress "deprecated" "for testing" + @projectedName("json", "projectedWireName") + @encodedName("application/json", "encodedWireName") + jsonEncodedAndProjectedName: string; + #suppress "deprecated" "for testing" + @projectedName("json", "realWireName") + jsonProjectedName: string; // deprecated + regular: string; + } + `); + + const sdkModel = runner.context.experimental_sdkPackage.models[0]; + strictEqual(sdkModel.name, "JavaTest"); + + // Java projected name test + const javaProjectedProp = sdkModel.properties.find((x) => x.name === "javaProjectedName"); + ok(javaProjectedProp); + strictEqual(javaProjectedProp.kind, "property"); + strictEqual(javaProjectedProp.serializedName, "javaWireName"); + + // client projected name test + + const clientProjectedProp = sdkModel.properties.find((x) => x.name === "clientName"); + ok(clientProjectedProp); + strictEqual(clientProjectedProp.kind, "property"); + strictEqual(clientProjectedProp.serializedName, "clientProjectedName"); + + // wire name test with encoded and projected + const jsonEncodedProp = sdkModel.properties.find( + (x) => x.kind === "property" && x.serializedName === "encodedWireName" + ); + ok(jsonEncodedProp); + strictEqual(jsonEncodedProp.nameInClient, "jsonEncodedAndProjectedName"); + strictEqual(jsonEncodedProp.name, "jsonEncodedAndProjectedName"); + + // wire name test with deprecated projected + const jsonProjectedProp = sdkModel.properties.find( + (x) => x.kind === "property" && x.serializedName === "realWireName" + ); + ok(jsonProjectedProp); + strictEqual(jsonProjectedProp.nameInClient, "jsonProjectedName"); + strictEqual(jsonProjectedProp.name, "jsonProjectedName"); + + // regular + const regularProp = sdkModel.properties.find( + (x) => x.kind === "property" && x.serializedName === "regular" + ); + ok(regularProp); + strictEqual(regularProp.nameInClient, "regular"); + strictEqual(regularProp.name, "regular"); + }); + it("union type", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + name: string | int32; + } + `); + + const prop = getSdkBodyModelPropertyTypeHelper(runner); + strictEqual(prop.kind, "property"); + const sdkType = prop.type; + strictEqual(sdkType.kind, "union"); + const values = sdkType.values; + strictEqual(values.length, 2); + strictEqual(values[0].kind, "string"); + strictEqual(values[1].kind, "int32"); + }); + it("versioning", async function () { + const runnerWithVersion = await createSdkTestRunner({ + "api-version": "all", + emitterName: "@azure-tools/typespec-python", + }); + + await runnerWithVersion.compile(` + @versioned(Versions) + @service({title: "Widget Service"}) + namespace DemoService; + + enum Versions { + v1, + v2, + v3, + v4, + } + + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + @added(Versions.v1) + @removed(Versions.v2) + @added(Versions.v3) + versionedProp: string; + + nonVersionedProp: string; + + @removed(Versions.v3) + removedProp: string; + } + `); + const sdkModel = runnerWithVersion.context.experimental_sdkPackage.models.find( + (x) => x.kind === "model" + ); + ok(sdkModel); + strictEqual(sdkModel.kind, "model"); + + const versionedProp = sdkModel.properties[0]; + deepStrictEqual(versionedProp.apiVersions, ["v1", "v3", "v4"]); + + const nonVersionedProp = sdkModel.properties[1]; + deepStrictEqual(nonVersionedProp.apiVersions, ["v1", "v2", "v3", "v4"]); + + const removedProp = sdkModel.properties[2]; + deepStrictEqual(removedProp.apiVersions, ["v1", "v2"]); + }); +}); diff --git a/packages/typespec-client-generator-core/test/types/built-in-types.test.ts b/packages/typespec-client-generator-core/test/types/built-in-types.test.ts new file mode 100644 index 0000000000..83f2edea35 --- /dev/null +++ b/packages/typespec-client-generator-core/test/types/built-in-types.test.ts @@ -0,0 +1,271 @@ +/* eslint-disable deprecation/deprecation */ +import { AzureCoreTestLibrary } from "@azure-tools/typespec-azure-core/testing"; +import { expectDiagnostics } from "@typespec/compiler/testing"; +import { ok, strictEqual } from "assert"; +import { beforeEach, describe, it } from "vitest"; +import { getAllModels } from "../../src/types.js"; +import { SdkTestRunner, createSdkTestRunner } from "../test-host.js"; +import { getSdkTypeHelper } from "./utils.js"; + +describe("typespec-client-generator-core: built-in types", () => { + let runner: SdkTestRunner; + + beforeEach(async () => { + runner = await createSdkTestRunner({ emitterName: "@azure-tools/typespec-java" }); + }); + + it("decimal", async function () { + await runner.compileWithBuiltInService( + ` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + prop: decimal; + } + ` + ); + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "decimal"); + }); + + it("decimal128", async function () { + await runner.compileWithBuiltInService( + ` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + prop: decimal128; + } + ` + ); + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "decimal128"); + }); + + it("unknown", async function () { + await runner.compileWithBuiltInService( + ` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + prop: unknown; + } + ` + ); + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "any"); + }); + + it("bytes", async function () { + await runner.compileWithBuiltInService( + ` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + prop: bytes; + } + ` + ); + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "bytes"); + strictEqual(sdkType.encode, "base64"); + }); + + it("bytes base64", async function () { + await runner.compileWithBuiltInService( + ` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + @encode(BytesKnownEncoding.base64) + prop: bytes; + } + ` + ); + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "bytes"); + strictEqual(sdkType.encode, "base64"); + }); + + it("bytes base64url", async function () { + await runner.compileWithBuiltInService( + ` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + @encode(BytesKnownEncoding.base64url) + prop: bytes; + } + ` + ); + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "bytes"); + strictEqual(sdkType.encode, "base64url"); + }); + + it("bytes base64url scalar", async function () { + await runner.compileWithBuiltInService( + ` + @encode(BytesKnownEncoding.base64url) + scalar Base64rulBytes extends bytes; + + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + value: Base64rulBytes[]; + } + ` + ); + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "array"); + strictEqual(sdkType.valueType.kind, "bytes"); + strictEqual(sdkType.valueType.encode, "base64url"); + }); + + it("format", async function () { + const runnerWithCore = await createSdkTestRunner({ + librariesToAdd: [AzureCoreTestLibrary], + autoUsings: ["Azure.Core"], + emitterName: "@azure-tools/typespec-java", + }); + await runnerWithCore.compileWithBuiltInAzureCoreService( + ` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + urlScalar: url; + uuidScalar: uuid; + eTagScalar: eTag; + + @format("url") + urlProperty: string; + @format("uuid") + uuidProperty: string; + @format("eTag") + eTagProperty: string; + } + ` + ); + const models = runnerWithCore.context.experimental_sdkPackage.models; + for (const property of models[0].properties) { + strictEqual(property.kind, "property"); + strictEqual( + property.type.kind, + property.serializedName.replace("Scalar", "").replace("Property", "") + ); + } + }); + + it("etag from core", async () => { + const runnerWithCore = await createSdkTestRunner({ + librariesToAdd: [AzureCoreTestLibrary], + autoUsings: ["Azure.Core"], + "filter-out-core-models": false, + emitterName: "@azure-tools/typespec-java", + }); + await runnerWithCore.compileWithBuiltInAzureCoreService(` + @resource("users") + @doc("Details about a user.") + model User { + @key + @doc("The user's name.") + @visibility("read") + name: string; + + ...Azure.Core.EtagProperty; + } + + @doc("Gets status.") + op getStatus is GetResourceOperationStatus; + `); + const userModel = runnerWithCore.context.experimental_sdkPackage.models.find( + (x) => x.kind === "model" && x.name === "User" + ); + ok(userModel); + strictEqual(userModel.properties.length, 2); + const etagProperty = userModel.properties.find((x) => x.name === "etag"); + ok(etagProperty); + strictEqual(etagProperty.type.kind, "eTag"); + }); + + it("unknown format", async function () { + await runner.compileWithBuiltInService( + ` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + @format("unknown") + unknownProp: string; + } + ` + ); + const models = getAllModels(runner.context); + strictEqual(models[0].kind, "model"); + strictEqual(models[0].properties[0].type.kind, "string"); + }); + + it("known values", async function () { + await runner.compileWithBuiltInService( + ` + enum TestEnum{ + one, + two, + three, + } + + #suppress "deprecated" "for testing" + @knownValues(TestEnum) + scalar testScalar extends string; + + model TestModel { + prop1: testScalar; + #suppress "deprecated" "for testing" + @knownValues(TestEnum) + prop2: string; + } + + op func( + @body body: TestModel + ): void; + ` + ); + expectDiagnostics(runner.context.experimental_sdkPackage.diagnostics, []); + expectDiagnostics(runner.context.diagnostics, []); + const m = runner.context.experimental_sdkPackage.models.find((x) => x.name === "TestModel"); + const e1 = runner.context.experimental_sdkPackage.enums.find((x) => x.name === "TestEnum"); + const e2 = runner.context.experimental_sdkPackage.enums.find((x) => x.name === "testScalar"); + ok(m && e1 && e2); + strictEqual(e1.kind, "enum"); + strictEqual(e1.isUnionAsEnum, false); + strictEqual(e1.valueType.kind, "string"); + strictEqual(e2.kind, "enum"); + strictEqual(e2.isUnionAsEnum, false); + strictEqual(e2.valueType.kind, "string"); + for (const property of m.properties) { + if (property.name === "prop1") { + strictEqual(property.type, e2); + } else if (property.name === "prop2") { + strictEqual(property.type, e1); + } + } + }); + it("with doc", async () => { + await runner.compileWithBuiltInService( + ` + @doc("doc") + @summary("title") + scalar TestScalar extends string; + + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + prop: TestScalar; + } + ` + ); + const models = getAllModels(runner.context); + strictEqual(models[0].kind, "model"); + strictEqual(models[0].properties[0].type.description, "title"); + strictEqual(models[0].properties[0].type.details, "doc"); + }); +}); diff --git a/packages/typespec-client-generator-core/test/types/constant-types.test.ts b/packages/typespec-client-generator-core/test/types/constant-types.test.ts new file mode 100644 index 0000000000..c982af6fd7 --- /dev/null +++ b/packages/typespec-client-generator-core/test/types/constant-types.test.ts @@ -0,0 +1,61 @@ +import { strictEqual } from "assert"; +import { beforeEach, describe, it } from "vitest"; +import { SdkTestRunner, createSdkTestRunner } from "../test-host.js"; +import { getSdkTypeHelper } from "./utils.js"; + +describe("typespec-client-generator-core: constant types", () => { + let runner: SdkTestRunner; + + beforeEach(async () => { + runner = await createSdkTestRunner({ emitterName: "@azure-tools/typespec-java" }); + }); + + it("string", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + prop: "json"; + } + `); + + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "constant"); + strictEqual(sdkType.valueType.kind, "string"); + strictEqual(sdkType.value, "json"); + strictEqual(sdkType.name, "TestProp"); + strictEqual(sdkType.isGeneratedName, true); + }); + it("boolean", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + @test prop: true; + } + `); + + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "constant"); + strictEqual(sdkType.valueType.kind, "boolean"); + strictEqual(sdkType.value, true); + strictEqual(sdkType.name, "TestProp"); + strictEqual(sdkType.isGeneratedName, true); + }); + it("number", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + @test prop: 4; + } + `); + + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "constant"); + strictEqual(sdkType.valueType.kind, "int32"); + strictEqual(sdkType.value, 4); + strictEqual(sdkType.name, "TestProp"); + strictEqual(sdkType.isGeneratedName, true); + }); +}); diff --git a/packages/typespec-client-generator-core/test/types/date-time-types.test.ts b/packages/typespec-client-generator-core/test/types/date-time-types.test.ts new file mode 100644 index 0000000000..29e9f63ff9 --- /dev/null +++ b/packages/typespec-client-generator-core/test/types/date-time-types.test.ts @@ -0,0 +1,121 @@ +import { strictEqual } from "assert"; +import { beforeEach, describe, it } from "vitest"; +import { SdkTestRunner, createSdkTestRunner } from "../test-host.js"; +import { getSdkTypeHelper } from "./utils.js"; + +describe("typespec-client-generator-core: date-time types", () => { + let runner: SdkTestRunner; + + beforeEach(async () => { + runner = await createSdkTestRunner({ emitterName: "@azure-tools/typespec-java" }); + }); + + it("default", async function () { + await runner.compileWithBuiltInService( + ` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + prop: utcDateTime; + } + ` + ); + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "utcDateTime"); + strictEqual(sdkType.wireType.kind, "string"); + strictEqual(sdkType.encode, "rfc3339"); + }); + it("rfc3339", async function () { + await runner.compileWithBuiltInService( + ` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + @encode(DateTimeKnownEncoding.rfc3339) + prop: utcDateTime; + } + ` + ); + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "utcDateTime"); + strictEqual(sdkType.wireType.kind, "string"); + strictEqual(sdkType.encode, "rfc3339"); + }); + it("rfc7231", async function () { + await runner.compileWithBuiltInService( + ` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + @encode(DateTimeKnownEncoding.rfc7231) + prop: utcDateTime; + } + ` + ); + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "utcDateTime"); + strictEqual(sdkType.wireType.kind, "string"); + strictEqual(sdkType.encode, "rfc7231"); + }); + + it("unixTimestamp", async function () { + await runner.compileWithBuiltInService( + ` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + @encode(DateTimeKnownEncoding.unixTimestamp, int64) + value: utcDateTime; + } + ` + ); + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "utcDateTime"); + strictEqual(sdkType.wireType.kind, "int64"); + strictEqual(sdkType.encode, "unixTimestamp"); + }); + + it("nullable unixTimestamp", async function () { + await runner.compileWithBuiltInService( + ` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + @encode(DateTimeKnownEncoding.unixTimestamp, int64) + value: utcDateTime | null; + } + ` + ); + const nullableType = getSdkTypeHelper(runner); + strictEqual(nullableType.kind, "nullable"); + + const sdkType = nullableType.type; + strictEqual(sdkType.kind, "utcDateTime"); + strictEqual(sdkType.wireType.kind, "int64"); + strictEqual(sdkType.encode, "unixTimestamp"); + }); + + it("unixTimestamp array", async function () { + await runner.compileWithBuiltInService( + ` + @doc("doc") + @summary("title") + @encode(DateTimeKnownEncoding.unixTimestamp, int64) + scalar unixTimestampDatetime extends utcDateTime; + + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + value: unixTimestampDatetime[]; + } + ` + ); + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "array"); + strictEqual(sdkType.valueType.kind, "utcDateTime"); + strictEqual(sdkType.valueType.wireType.kind, "int64"); + strictEqual(sdkType.valueType.encode, "unixTimestamp"); + strictEqual(sdkType.valueType.description, "title"); + strictEqual(sdkType.valueType.details, "doc"); + }); +}); diff --git a/packages/typespec-client-generator-core/test/types/duration-type.test.ts b/packages/typespec-client-generator-core/test/types/duration-type.test.ts new file mode 100644 index 0000000000..aeb989affa --- /dev/null +++ b/packages/typespec-client-generator-core/test/types/duration-type.test.ts @@ -0,0 +1,121 @@ +import { strictEqual } from "assert"; +import { beforeEach, describe, it } from "vitest"; +import { SdkTestRunner, createSdkTestRunner } from "../test-host.js"; +import { getSdkTypeHelper } from "./utils.js"; + +describe("typespec-client-generator-core: duration types", () => { + let runner: SdkTestRunner; + + beforeEach(async () => { + runner = await createSdkTestRunner({ emitterName: "@azure-tools/typespec-java" }); + }); + + it("default", async function () { + await runner.compileWithBuiltInService( + ` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + prop: duration; + } + ` + ); + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "duration"); + strictEqual(sdkType.wireType.kind, "string"); + strictEqual(sdkType.encode, "ISO8601"); + }); + it("iso8601", async function () { + await runner.compileWithBuiltInService( + ` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + @encode(DurationKnownEncoding.ISO8601) + prop: duration; + } + ` + ); + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "duration"); + strictEqual(sdkType.wireType.kind, "string"); + strictEqual(sdkType.encode, "ISO8601"); + }); + it("int32 seconds", async function () { + await runner.compileWithBuiltInService( + ` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + @encode(DurationKnownEncoding.seconds, int32) + prop: duration; + } + ` + ); + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "duration"); + strictEqual(sdkType.wireType.kind, "int32"); + strictEqual(sdkType.encode, "seconds"); + }); + + it("float seconds", async function () { + await runner.compileWithBuiltInService( + ` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + @encode(DurationKnownEncoding.seconds, float) + prop: duration; + } + ` + ); + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "duration"); + strictEqual(sdkType.wireType.kind, "float"); + strictEqual(sdkType.encode, "seconds"); + }); + + it("nullable float seconds", async function () { + await runner.compileWithBuiltInService( + ` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + @encode(DurationKnownEncoding.seconds, float) + prop: duration | null; + } + ` + ); + const nullableType = getSdkTypeHelper(runner); + strictEqual(nullableType.kind, "nullable"); + + const sdkType = nullableType.type; + strictEqual(sdkType.kind, "duration"); + strictEqual(sdkType.wireType.kind, "float"); + strictEqual(sdkType.encode, "seconds"); + }); + + it("float seconds decorated scalar", async function () { + await runner.compileWithBuiltInService( + ` + @doc("doc") + @summary("title") + @encode(DurationKnownEncoding.seconds, float32) + scalar Float32Duration extends duration; + + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + value: Float32Duration[]; + } + ` + ); + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "array"); + strictEqual(sdkType.valueType.kind, "duration"); + strictEqual(sdkType.valueType.wireType.kind, "float32"); + strictEqual(sdkType.valueType.encode, "seconds"); + strictEqual(sdkType.valueType.description, "title"); + strictEqual(sdkType.valueType.details, "doc"); + }); +}); diff --git a/packages/typespec-client-generator-core/test/types/enum-types.test.ts b/packages/typespec-client-generator-core/test/types/enum-types.test.ts new file mode 100644 index 0000000000..3efdcf42a3 --- /dev/null +++ b/packages/typespec-client-generator-core/test/types/enum-types.test.ts @@ -0,0 +1,765 @@ +import { AzureCoreTestLibrary } from "@azure-tools/typespec-azure-core/testing"; +import { Enum, Model, Union } from "@typespec/compiler"; +import { deepEqual, deepStrictEqual, ok, strictEqual } from "assert"; +import { beforeEach, describe, it } from "vitest"; +import { SdkEnumType, SdkModelType, SdkUnionType, UsageFlags } from "../../src/interfaces.js"; +import { getClientType, getSdkEnum } from "../../src/types.js"; +import { + SdkTestRunner, + createSdkTestRunner, + createTcgcTestRunnerForEmitter, +} from "../test-host.js"; + +describe("typespec-client-generator-core: enum types", () => { + let runner: SdkTestRunner; + + beforeEach(async () => { + runner = await createSdkTestRunner({ emitterName: "@azure-tools/typespec-java" }); + }); + + it("string extensible", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + enum DaysOfWeekExtensibleEnum { + Monday, + Tuesday, + Wednesday, + Thursday, + Friday, + Saturday, + Sunday, + } + + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + prop: DaysOfWeekExtensibleEnum + } + `); + + strictEqual(runner.context.experimental_sdkPackage.models.length, 1); + strictEqual(runner.context.experimental_sdkPackage.enums.length, 1); + const sdkType = runner.context.experimental_sdkPackage.enums[0]; + strictEqual(sdkType.isFixed, true); + strictEqual(sdkType.name, "DaysOfWeekExtensibleEnum"); + strictEqual(sdkType.valueType.kind, "string"); + strictEqual(sdkType.usage & UsageFlags.ApiVersionEnum, 0); // not a versioning enum + strictEqual(sdkType.isUnionAsEnum, false); + const values = sdkType.values; + strictEqual(values.length, 7); + const nameList = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]; + deepEqual( + values.map((x) => x.name), + nameList + ); + deepEqual( + values.map((x) => x.value), + nameList + ); + for (const value of sdkType.values) { + deepStrictEqual(value.enumType, sdkType); + deepStrictEqual(value.valueType, sdkType.valueType); + } + }); + + it("int extensible", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + enum Integers { + one: 1, + two: 2, + three: 3, + four: 4, + five: 5, + } + + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + prop: Integers + } + `); + + strictEqual(runner.context.experimental_sdkPackage.models.length, 1); + strictEqual(runner.context.experimental_sdkPackage.enums.length, 1); + const sdkType = runner.context.experimental_sdkPackage.enums[0]; + strictEqual(sdkType.isFixed, true); + strictEqual(sdkType.name, "Integers"); + strictEqual(sdkType.valueType.kind, "int32"); + const values = sdkType.values; + strictEqual(values.length, 5); + deepEqual( + values.map((x) => x.name), + ["one", "two", "three", "four", "five"] + ); + deepEqual( + values.map((x) => x.value), + [1, 2, 3, 4, 5] + ); + }); + + it("float extensible", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + enum Floats { + a: 1, + b: 2.1, + c: 3, + } + + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + prop: Floats + } + `); + + const sdkType = runner.context.experimental_sdkPackage.enums[0]; + ok(sdkType); + strictEqual(sdkType.isFixed, true); + strictEqual(sdkType.name, "Floats"); + strictEqual(sdkType.valueType.kind, "float32"); + const values = sdkType.values; + strictEqual(values.length, 3); + deepEqual( + values.map((x) => x.name), + ["a", "b", "c"] + ); + deepEqual( + values.map((x) => x.value), + [1, 2.1, 3] + ); + }); + + it("union as enum float type", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + union Floats { + float, + a: 1, + b: 2, + c: 3, + } + + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + prop: Floats + } + `); + + const sdkType = runner.context.experimental_sdkPackage.enums[0]; + strictEqual(sdkType.isFixed, false); + strictEqual(sdkType.name, "Floats"); + strictEqual(sdkType.valueType.kind, "float"); + const values = sdkType.values; + strictEqual(values.length, 3); + deepEqual( + values.map((x) => x.name), + ["a", "b", "c"] + ); + deepEqual( + values.map((x) => x.value), + [1, 2, 3] + ); + }); + + it("union of union as enum float type", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + union BaseEnum { + int32, + a: 1, + } + + @usage(Usage.input | Usage.output) + @access(Access.public) + union ExtendedEnum { + BaseEnum, + b: 2, + c: 3, + } + + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + prop: ExtendedEnum + } + `); + const sdkType = runner.context.experimental_sdkPackage.enums[0]; + ok(sdkType); + strictEqual(sdkType.isFixed, false); + strictEqual(sdkType.valueType.kind, "int32"); + const values = sdkType.values; + strictEqual(values.length, 3); + + // since these union is named, it gets flattened into one + ok(values.find((x) => x.name === "a" && x.value === 1)); + ok(values.find((x) => x.name === "b" && x.value === 2)); + ok(values.find((x) => x.name === "c" && x.value === 3)); + }); + + it("string fixed", async function () { + const runnerWithCore = await createSdkTestRunner({ + librariesToAdd: [AzureCoreTestLibrary], + autoUsings: ["Azure.Core"], + emitterName: "@azure-tools/typespec-java", + }); + await runnerWithCore.compileWithBuiltInAzureCoreService(` + #suppress "@azure-tools/typespec-azure-core/use-extensible-enum" "For testing" + @doc(".") + @fixed + @usage(Usage.input | Usage.output) + @access(Access.public) + enum DaysOfWeekFixedEnum { + @doc("Monday") Monday, + @doc("Tuesday") Tuesday, + @doc("Wednesday") Wednesday, + @doc("Thursday") Thursday, + @doc("Friday") Friday, + @doc("Saturday") Saturday, + @doc("Sunday") Sunday, + } + + @doc(".") + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + @doc(".") + prop: DaysOfWeekFixedEnum + } + `); + strictEqual(runnerWithCore.context.experimental_sdkPackage.models.length, 1); + strictEqual(runnerWithCore.context.experimental_sdkPackage.enums.length, 1); + const sdkType = runnerWithCore.context.experimental_sdkPackage.enums[0]; + strictEqual(sdkType.isFixed, true); + strictEqual(sdkType.name, "DaysOfWeekFixedEnum"); + strictEqual(sdkType.valueType.kind, "string"); + const values = sdkType.values; + strictEqual(values.length, 7); + const nameList = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]; + deepEqual( + values.map((x) => x.name), + nameList + ); + deepEqual( + values.map((x) => x.value), + nameList + ); + for (const value of sdkType.values) { + deepStrictEqual(value.enumType, sdkType); + deepStrictEqual(value.valueType, sdkType.valueType); + } + }); + it("enum access transitive closure", async () => { + await runner.compileWithBuiltInService(` + enum Integers { + one: 1, + two: 2, + three: 3, + four: 4, + five: 5, + } + @access(Access.internal) + op func( + @body body: Integers + ): void; + `); + + strictEqual(runner.context.experimental_sdkPackage.enums[0].access, "internal"); + }); + it("crossLanguageDefinitionId", async () => { + await runner.compile(` + @service({}) + namespace MyService { + @usage(Usage.input | Usage.output) + @access(Access.public) + enum Integers { + one: 1, + two: 2, + three: 3, + four: 4, + five: 5, + } + + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + prop: Integers + } + } + `); + strictEqual(runner.context.experimental_sdkPackage.enums.length, 1); + const integersEnum = runner.context.experimental_sdkPackage.enums[0]; + strictEqual(integersEnum.crossLanguageDefinitionId, "MyService.Integers"); + }); + + it("enum with deprecated annotation", async () => { + await runner.compileAndDiagnose(` + @service({}) + namespace MyService; + #deprecated "no longer support" + enum Test { + test + } + op func( + @body body: Test + ): void; + `); + + strictEqual(runner.context.experimental_sdkPackage.enums[0].deprecation, "no longer support"); + }); + + it("orphan enum", async () => { + await runner.compileAndDiagnose(` + @service({}) + @test namespace MyService { + @test + @usage(Usage.input | Usage.output) + @access(Access.public) + enum Enum1{ + one, + two, + three + } + + enum Enum2{ + one, + two, + three + } + } + `); + + strictEqual(runner.context.experimental_sdkPackage.enums[0].name, "Enum1"); + strictEqual( + runner.context.experimental_sdkPackage.enums[0].usage, + UsageFlags.Input | UsageFlags.Output + ); + }); + + it("projected name", async () => { + await runner.compileAndDiagnose(` + @service({}) + @test namespace MyService { + @test + @usage(Usage.input | Usage.output) + @access(Access.public) + @projectedName("java", "JavaEnum1") + enum Enum1{ + @projectedName("java", "JavaOne") + One: "one", + two, + three + } + } + `); + + async function helper(emitterName: string, enumName: string, enumValueName: string) { + const runner = await createTcgcTestRunnerForEmitter(emitterName); + const { Enum1 } = (await runner.compile(` + @service({}) + namespace MyService { + #suppress "deprecated" "for testing" + @test + @usage(Usage.input | Usage.output) + @access(Access.public) + @projectedName("java", "JavaEnum1") + enum Enum1{ + #suppress "deprecated" "for testing" + @projectedName("java", "JavaOne") + One: "one", + two, + three + } + } + `)) as { Enum1: Enum }; + const enum1 = getSdkEnum(runner.context, Enum1); + strictEqual(enum1.name, enumName); + strictEqual(enum1.values[0].name, enumValueName); + } + await helper("@azure-tools/typespec-csharp", "Enum1", "One"); + await helper("@azure-tools/typespec-java", "JavaEnum1", "JavaOne"); + }); + + it("union as enum rename", async () => { + const { TestUnion } = (await runner.compileWithCustomization( + ` + @service({}) + namespace N { + @test + union TestUnion{ + @clientName("ARename") + "A", + "B": "B_v", + string + } + op x(body: TestUnion): void; + } + `, + ` + namespace Customizations; + + @@clientName(N.TestUnion, "TestUnionRename"); + @@clientName(N.TestUnion.B, "BRename"); + ` + )) as { TestUnion: Union }; + + const enumType = getClientType(runner.context, TestUnion); + strictEqual(enumType.kind, "enum"); + strictEqual(enumType.name, "TestUnionRename"); + strictEqual(enumType.isUnionAsEnum, true); + strictEqual(enumType.values[0].name, "ARename"); + strictEqual(enumType.values[1].name, "BRename"); + }); + + it("union as enum with hierarchy", async () => { + const { Test } = (await runner.compile( + ` + @service({}) + namespace N { + @test + union Test{ + A, + B, + C, + null + } + + union A { + "A1", + "A2", + } + + union B { + "B", + string + } + + enum C { + "C" + } + op x(body: Test): void; + } + ` + )) as { Test: Union }; + + const nullableType = getClientType(runner.context, Test); + strictEqual(nullableType.kind, "nullable"); + + const enumType = nullableType.type; + strictEqual(enumType.kind, "enum"); + strictEqual(enumType.name, "Test"); + strictEqual(enumType.isUnionAsEnum, true); + const values = enumType.values; + strictEqual(values.length, 4); + strictEqual(enumType.isFixed, false); + + ok(values.find((x) => x.kind === "enumvalue" && x.name === "A1" && x.value === "A1")); + ok(values.find((x) => x.kind === "enumvalue" && x.name === "A2" && x.value === "A2")); + ok(values.find((x) => x.kind === "enumvalue" && x.name === "B" && x.value === "B")); + ok(values.find((x) => x.kind === "enumvalue" && x.name === "C" && x.value === "C")); + }); + + it("union as enum with hierarchy without flatten", async () => { + runner = await createSdkTestRunner({ + emitterName: "@azure-tools/typespec-python", + "flatten-union-as-enum": false, + }); + const { Test } = (await runner.compile( + ` + @service({}) + namespace N { + @test + union Test{ + A, + B, + C, + null + } + + union A { + "A1", + "A2", + } + + union B { + "B", + string + } + + enum C { + "C" + } + op x(body: Test): void; + } + ` + )) as { Test: Union }; + + const nullableType = getClientType(runner.context, Test); + strictEqual(nullableType.kind, "nullable"); + const unionType = nullableType.type; + + strictEqual(unionType.kind, "union"); + strictEqual(unionType.name, "Test"); + + const values = unionType.values; + strictEqual(values.length, 3); + const a = values[0] as SdkEnumType; + strictEqual(a.name, "A"); + strictEqual(a.kind, "enum"); + strictEqual(a.isUnionAsEnum, true); + strictEqual(a.values[0].name, "A1"); + strictEqual(a.values[0].value, "A1"); + strictEqual(a.values[1].name, "A2"); + strictEqual(a.values[1].value, "A2"); + + const b = values[1] as SdkEnumType; + strictEqual(b.name, "B"); + strictEqual(b.kind, "enum"); + strictEqual(b.isUnionAsEnum, true); + strictEqual(b.values[0].name, "B"); + strictEqual(b.values[0].value, "B"); + + const c = values[2] as SdkEnumType; + strictEqual(c.name, "C"); + strictEqual(c.kind, "enum"); + strictEqual(c.isUnionAsEnum, false); + strictEqual(c.values[0].name, "C"); + strictEqual(c.values[0].value, "C"); + }); + + it("anonymous union as enum with hierarchy", async () => { + const { Test } = (await runner.compile( + ` + @service({}) + namespace N { + enum LR { + left, + right, + } + enum UD { + up, + down, + } + + @test + model Test { + color: LR | UD; + } + op read(@body body: Test): void; + } + ` + )) as { Test: Model }; + + const modelType = getClientType(runner.context, Test) as SdkModelType; + const enumType = modelType.properties[0].type as SdkEnumType; + strictEqual(enumType.name, "TestColor"); + strictEqual(enumType.isGeneratedName, true); + strictEqual(enumType.isUnionAsEnum, true); + // no cross language def id bc it's not a defined object in tsp + strictEqual(enumType.crossLanguageDefinitionId, "Test.color.anonymous"); + const values = enumType.values; + strictEqual(values[0].name, "left"); + strictEqual(values[0].value, "left"); + strictEqual(values[0].valueType.kind, "string"); + strictEqual(values[1].name, "right"); + strictEqual(values[1].value, "right"); + strictEqual(values[1].valueType.kind, "string"); + strictEqual(values[2].name, "up"); + strictEqual(values[2].value, "up"); + strictEqual(values[2].valueType.kind, "string"); + strictEqual(values[3].name, "down"); + strictEqual(values[3].value, "down"); + strictEqual(values[3].valueType.kind, "string"); + }); + + it("anonymous union as enum with hierarchy without flatten", async () => { + runner = await createSdkTestRunner({ + emitterName: "@azure-tools/typespec-python", + "flatten-union-as-enum": false, + }); + const { Test } = (await runner.compile( + ` + @service({}) + namespace N { + enum LR { + left, + right, + } + enum UD { + up, + down, + } + + @test + model Test { + color: LR | UD; + } + op read(@body body: Test): void; + } + ` + )) as { Test: Model }; + + const modelType = getClientType(runner.context, Test) as SdkModelType; + const unionType = modelType.properties[0].type as SdkUnionType; + strictEqual(unionType.name, "TestColor"); + strictEqual(unionType.isGeneratedName, true); + const values = unionType.values; + const lr = values[0] as SdkEnumType; + strictEqual(lr.name, "LR"); + strictEqual(lr.isUnionAsEnum, false); + strictEqual(lr.values[0].name, "left"); + strictEqual(lr.values[1].name, "right"); + strictEqual(lr.isFixed, true); + const ud = values[1] as SdkEnumType; + strictEqual(ud.name, "UD"); + strictEqual(ud.isUnionAsEnum, false); + strictEqual(ud.values[0].name, "up"); + strictEqual(ud.values[1].name, "down"); + strictEqual(ud.isFixed, true); + }); + + it("versioned enums", async () => { + await runner.compile( + ` + @versioned(Versions) + @service() + namespace DemoService; + + enum Versions { + v1, + v2, + } + ` + ); + const enums = runner.context.experimental_sdkPackage.enums; + strictEqual(enums.length, 1); + strictEqual(enums[0].name, "Versions"); + strictEqual(enums[0].usage, UsageFlags.ApiVersionEnum); + deepStrictEqual( + enums[0].values.map((x) => x.value), + ["v1", "v2"] + ); + }); + + it("versioned enums with all", async () => { + const runnerWithVersion = await createSdkTestRunner({ + "api-version": "all", + emitterName: "@azure-tools/typespec-python", + }); + + await runnerWithVersion.compile( + ` + @versioned(Versions) + @service() + namespace DemoService; + + enum Versions { + v1, + v2, + } + ` + ); + const enums = runnerWithVersion.context.experimental_sdkPackage.enums; + strictEqual(enums.length, 1); + strictEqual(enums[0].name, "Versions"); + strictEqual(enums[0].usage, UsageFlags.ApiVersionEnum); + deepStrictEqual( + enums[0].values.map((x) => x.value), + ["v1", "v2"] + ); + }); + + it("versioned enums with latest", async () => { + const runnerWithVersion = await createSdkTestRunner({ + "api-version": "latest", + emitterName: "@azure-tools/typespec-python", + }); + + await runnerWithVersion.compile( + ` + @versioned(Versions) + @service() + namespace DemoService; + + enum Versions { + v1, + v2, + } + ` + ); + const enums = runnerWithVersion.context.experimental_sdkPackage.enums; + strictEqual(enums.length, 1); + strictEqual(enums[0].name, "Versions"); + strictEqual(enums[0].usage, UsageFlags.ApiVersionEnum); + deepStrictEqual( + enums[0].values.map((x) => x.value), + ["v1", "v2"] + ); + }); + + it("versioned enums with specific version", async () => { + const runnerWithVersion = await createSdkTestRunner({ + "api-version": "v1", + emitterName: "@azure-tools/typespec-python", + }); + + await runnerWithVersion.compile( + ` + @versioned(Versions) + @service() + namespace DemoService; + + enum Versions { + v1, + v2, + } + ` + ); + const enums = runnerWithVersion.context.experimental_sdkPackage.enums; + strictEqual(enums.length, 1); + strictEqual(enums[0].name, "Versions"); + strictEqual(enums[0].usage, UsageFlags.ApiVersionEnum); + deepStrictEqual( + enums[0].values.map((x) => x.value), + ["v1"] + ); + }); + + it("usage propagation for enum value", async () => { + await runner.compile( + ` + @service({}) + namespace N { + enum LR { + left, + right, + } + union UD { + up: "up", + down: "down", + } + + @test + model Test { + prop1: LR.left; + prop2: UD.up; + } + op read(@body body: Test): void; + } + ` + ); + const enums = runner.context.experimental_sdkPackage.enums; + strictEqual(enums.length, 2); + strictEqual(enums[0].name, "LR"); + strictEqual(enums[0].usage, UsageFlags.Input); + strictEqual(enums[1].name, "UD"); + strictEqual(enums[1].usage, UsageFlags.Input); + }); +}); diff --git a/packages/typespec-client-generator-core/test/types/model-types.test.ts b/packages/typespec-client-generator-core/test/types/model-types.test.ts new file mode 100644 index 0000000000..0b0ad796b4 --- /dev/null +++ b/packages/typespec-client-generator-core/test/types/model-types.test.ts @@ -0,0 +1,1444 @@ +/* eslint-disable deprecation/deprecation */ +import { AzureCoreTestLibrary } from "@azure-tools/typespec-azure-core/testing"; +import { UsageFlags, isErrorModel } from "@typespec/compiler"; +import { deepStrictEqual, ok, strictEqual } from "assert"; +import { beforeEach, describe, it } from "vitest"; +import { SdkBodyModelPropertyType } from "../../src/interfaces.js"; +import { getAllModels } from "../../src/types.js"; +import { SdkTestRunner, createSdkTestRunner } from "../test-host.js"; + +describe("typespec-client-generator-core: model types", () => { + let runner: SdkTestRunner; + + beforeEach(async () => { + runner = await createSdkTestRunner({ emitterName: "@azure-tools/typespec-java" }); + }); + + it("basic", async () => { + await runner.compile(` + @service({}) + @test namespace MyService { + model InputModel { + prop: string + } + + model OutputModel { + prop: string + } + + op test(@body input: InputModel): OutputModel; + } + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 2); + const modelNames = models.map((model) => model.name).sort(); + deepStrictEqual(modelNames, ["InputModel", "OutputModel"].sort()); + }); + + it("models in Record", async () => { + await runner.compile(` + @service({}) + @test namespace MyService { + model InnerModel { + prop: string + } + + op test(@body input: Record): void; + } + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + const modelNames = models.map((model) => model.name).sort(); + deepStrictEqual(modelNames, ["InnerModel"].sort()); + }); + + it("models in Array", async () => { + await runner.compile(` + @service({}) + @test namespace MyService { + model InnerModel { + prop: string + } + + op test(@body input: InnerModel[]): void; + } + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + const modelNames = models.map((model) => model.name).sort(); + deepStrictEqual(modelNames, ["InnerModel"].sort()); + }); + + it("embedded models", async () => { + await runner.compile(` + @service({}) + @test namespace MyService { + model InnerModel { + prop: string + } + + model InputModel { + prop: InnerModel + } + + op test(@body input: InputModel): void; + } + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 2); + const modelNames = models.map((model) => model.name).sort(); + deepStrictEqual(modelNames, ["InputModel", "InnerModel"].sort()); + }); + + it("base model", async () => { + await runner.compile(` + @service({}) + @test namespace MyService { + model BaseModel { + prop: string + } + + model InputModel extends BaseModel { + prop2: string + } + + op test(@body input: InputModel): void; + } + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 2); + const modelNames = models.map((model) => model.name).sort(); + deepStrictEqual(modelNames, ["InputModel", "BaseModel"].sort()); + }); + + it("derived model", async () => { + await runner.compileWithBuiltInService(` + model InputModel { + prop: string + } + + model DerivedModel extends InputModel { + prop2: string + } + + op test(@body input: DerivedModel): void; + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 2); + const modelNames = models.map((model) => model.name).sort(); + deepStrictEqual(modelNames, ["InputModel", "DerivedModel"].sort()); + }); + + it("recursive model", async () => { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + model RecursiveModel { + prop: RecursiveModel + } + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + const recursiveModel = models[0]; + strictEqual(recursiveModel.name, "RecursiveModel"); + strictEqual(recursiveModel.kind, "model"); + strictEqual(recursiveModel.properties.length, 1); + const prop = recursiveModel.properties[0]; + strictEqual(prop.kind, "property"); + strictEqual(prop.nameInClient, "prop"); + strictEqual(prop.name, "prop"); + strictEqual(prop.type.kind, "model"); + strictEqual(prop.type.name, "RecursiveModel"); + }); + + it("discriminator model", async () => { + await runner.compileWithBuiltInService(` + @discriminator("kind") + model Fish { + age: int32; + } + + @discriminator("sharktype") + model Shark extends Fish { + kind: "shark"; + } + + model Salmon extends Fish { + kind: "salmon"; + friends?: Fish[]; + hate?: Record; + partner?: Fish; + } + + model SawShark extends Shark { + sharktype: "saw"; + } + + model GoblinShark extends Shark { + sharktype: "goblin"; + } + + @get + op getModel(): Fish; + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 5); + const fish = models.find((x) => x.name === "Fish"); + ok(fish); + const kindProperty = fish.properties[0]; + ok(kindProperty); + strictEqual(kindProperty.name, "kind"); + strictEqual(kindProperty.description, "Discriminator property for Fish."); + strictEqual(kindProperty.kind, "property"); + strictEqual(kindProperty.discriminator, true); + strictEqual(kindProperty.type.kind, "string"); + strictEqual(kindProperty.__raw, undefined); + strictEqual(fish.discriminatorProperty, kindProperty); + const shark = models.find((x) => x.name === "Shark"); + ok(shark); + strictEqual(shark.properties.length, 2); + const sharktypeProperty = shark.properties[0]; + ok(sharktypeProperty); + strictEqual(sharktypeProperty.name, "sharktype"); + strictEqual(sharktypeProperty.description, "Discriminator property for Shark."); + strictEqual(sharktypeProperty.kind, "property"); + strictEqual(sharktypeProperty.discriminator, true); + strictEqual(sharktypeProperty.type.kind, "string"); + strictEqual(shark.discriminatorProperty, sharktypeProperty); + }); + + it("handle derived model with discriminator first", async () => { + await runner.compileWithBuiltInService(` + model Salmon extends Fish { + kind: "salmon"; + friends?: Fish[]; + hate?: Record; + partner?: Fish; + } + + @discriminator("kind") + model Fish { + age: int32; + } + + @get + op getSalmon(): Salmon; + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 2); + const fish = models.find((x) => x.name === "Fish"); + ok(fish); + const kindProperty = fish.properties[0]; + ok(kindProperty); + strictEqual(kindProperty.name, "kind"); + strictEqual(kindProperty.description, "Discriminator property for Fish."); + strictEqual(kindProperty.kind, "property"); + strictEqual(kindProperty.discriminator, true); + strictEqual(kindProperty.type.kind, "string"); + strictEqual(kindProperty.__raw, undefined); + strictEqual(fish.discriminatorProperty, kindProperty); + + const salmon = models.find((x) => x.name === "Salmon"); + ok(salmon); + strictEqual(salmon.properties.length, 4); + strictEqual(salmon.properties[0].name, "kind"); + strictEqual((salmon.properties[0] as SdkBodyModelPropertyType).discriminator, true); + strictEqual(salmon.discriminatorValue, "salmon"); + }); + + it("single discriminated model", async () => { + await runner.compileWithBuiltInService(` + @discriminator("kind") + model Fish { + age: int32; + } + + @get + op getModel(): Fish; + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + const fish = models.find((x) => x.name === "Fish"); + ok(fish); + const kindProperty = fish.properties[0]; + ok(kindProperty); + strictEqual(kindProperty.name, "kind"); + strictEqual(kindProperty.description, "Discriminator property for Fish."); + strictEqual(kindProperty.kind, "property"); + strictEqual(kindProperty.discriminator, true); + strictEqual(kindProperty.type.kind, "string"); + strictEqual(kindProperty.__raw, undefined); + strictEqual(kindProperty.type.__raw, undefined); + strictEqual(fish.discriminatorProperty, kindProperty); + }); + + it("enum discriminator model", async () => { + await runner.compileWithBuiltInService(` + enum DogKind { + Golden: "golden", + } + + @discriminator("kind") + model Dog { + kind: DogKind; + weight: int32; + } + + model Golden extends Dog { + kind: DogKind.Golden; + } + + @route("/extensible-enum") + @get + op getExtensibleModel(): Dog; + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 2); + + const golden = models.find((x) => x.name === "Golden"); + ok(golden); + + const kind = golden.properties.find( + (x) => x.kind === "property" && x.serializedName === "kind" + ); + ok(kind); + strictEqual(kind.type.kind, "enumvalue"); + strictEqual(kind.type.value, "golden"); + + const dog = models.find((x) => x.name === "Dog"); + ok(dog); + strictEqual(runner.context.experimental_sdkPackage.enums.length, 1); + const dogKind = runner.context.experimental_sdkPackage.enums[0]; + + const dogKindProperty = dog.properties.find( + (x) => x.kind === "property" && x.serializedName === "kind" + ); + ok(dogKindProperty); + strictEqual(dogKindProperty.kind, "property"); + strictEqual(dogKindProperty.type, dogKind); + strictEqual(dog.discriminatorProperty, dogKindProperty); + }); + + it("union to extensible enum values", async () => { + await runner.compileWithBuiltInService(` + union PetKind { + @doc("Cat") + Cat: "cat", + @doc("Dog") + Dog: "dog", + string, + } + + @route("/extensible-enum") + @put + op putPet(@body petKind: PetKind): void; + `); + strictEqual(runner.context.experimental_sdkPackage.enums.length, 1); + const petKind = runner.context.experimental_sdkPackage.enums[0]; + strictEqual(petKind.name, "PetKind"); + strictEqual(petKind.isFixed, false); + strictEqual(petKind.valueType.kind, "string"); + const values = petKind.values; + deepStrictEqual( + values.map((x) => x.name), + ["Cat", "Dog"] + ); + + const catValue = values.find((x) => x.name === "Cat"); + ok(catValue); + strictEqual(catValue.value, "cat"); + strictEqual(catValue.description, "Cat"); + strictEqual(catValue.enumType, petKind); + strictEqual(catValue.valueType, petKind.valueType); + strictEqual(catValue.kind, "enumvalue"); + + const dogValue = values.find((x) => x.name === "Dog"); + ok(dogValue); + strictEqual(dogValue.value, "dog"); + strictEqual(dogValue.description, "Dog"); + strictEqual(dogValue.enumType, petKind); + strictEqual(dogValue.valueType, petKind.valueType); + strictEqual(dogValue.kind, "enumvalue"); + }); + + it("template variable of anonymous union", async () => { + await runner.compileWithBuiltInService(` + interface GetAndSend { + get(): { + prop: Type; + }; + + send(prop: Type): void; + } + + @route("/string-extensible") + interface StringExtensible extends GetAndSend {} + `); + const sdkPackage = runner.context.experimental_sdkPackage; + strictEqual(sdkPackage.models.length, 1); + strictEqual(sdkPackage.enums.length, 1); + const prop = sdkPackage.enums.find((x) => x.name === "GetResponseProp" && x.isGeneratedName); + ok(prop); + strictEqual(prop.isFixed, false); + strictEqual(prop.valueType.kind, "string"); + const resp = sdkPackage.models.find((x) => x.name === "GetResponse" && x.isGeneratedName); + ok(resp); + strictEqual(resp.properties[0].type, prop); + }); + + it("property of anonymous union as enum", async () => { + await runner.compileWithBuiltInService(` + model Pet { + kind: string | "cat" | "dog"; + } + + @route("/extensible-enum") + @put + op putPet(@body pet: Pet): void; + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + const pet = models.find((x) => x.name === "Pet"); + + const enums = runner.context.experimental_sdkPackage.enums; + const kind = enums.find((x) => x.name === "PetKind"); + ok(pet && kind); + ok(kind.isGeneratedName); + const kindProperty = pet.properties.find((x) => (x.name = "kind")); + ok(kindProperty); + strictEqual(kindProperty.type, kind); + }); + + it("request/response header with enum value", async () => { + await runner.compileWithBuiltInService(` + model RepeatableResponse { + @visibility("read") + @header("Repeatability-Result") + repeatabilityResult?: "accepted" | "rejected"; + } + op foo(@header("Repeatability-Result") repeatabilityResult?: "accepted" | "rejected"): RepeatableResponse; + `); + const sdkPackage = runner.context.experimental_sdkPackage; + strictEqual(sdkPackage.models.length, 0); + strictEqual(sdkPackage.enums.length, 2); + strictEqual(sdkPackage.enums[0].name, "FooRequestRepeatabilityResult"); + strictEqual(sdkPackage.enums[1].name, "FooResponseRepeatabilityResult"); + deepStrictEqual( + sdkPackage.enums[0].values.map((x) => x.name), + ["accepted", "rejected"] + ); + deepStrictEqual( + sdkPackage.enums[1].values.map((x) => x.name), + ["accepted", "rejected"] + ); + }); + + it("enum discriminator model without base discriminator property", async () => { + await runner.compileWithBuiltInService(` + enum DogKind { + Golden: "golden", + } + + @discriminator("kind") + model Dog { + weight: int32; + } + + model Golden extends Dog { + kind: DogKind.Golden; + } + + @route("/extensible-enum") + @get + op getExtensibleModel(): Dog; + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 2); + + const golden = models.find((x) => x.name === "Golden"); + ok(golden); + + const kind = golden.properties.find( + (x) => x.kind === "property" && x.serializedName === "kind" + ); + ok(kind); + strictEqual(kind.type.kind, "enumvalue"); + strictEqual(kind.type.value, "golden"); + + const dog = models.find((x) => x.name === "Dog"); + ok(dog); + strictEqual(runner.context.experimental_sdkPackage.enums.length, 1); + const dogKind = runner.context.experimental_sdkPackage.enums[0]; + + const dogKindProperty = dog.properties[0]; + ok(dogKindProperty); + strictEqual(dogKindProperty.type, dogKind); + strictEqual(dogKindProperty.description, "Discriminator property for Dog."); + }); + + it("discriminator", async () => { + await runner.compileWithBuiltInService(` + @discriminator("kind") + model Fish { + age: int32; + } + + @discriminator("sharktype") + model Shark extends Fish { + kind: "shark"; + sharktype: string; + } + + model Salmon extends Fish { + kind: "salmon"; + friends?: Fish[]; + hate?: Record; + partner?: Fish; + } + + model SawShark extends Shark { + sharktype: "saw"; + } + + model GoblinShark extends Shark { + sharktype: "goblin"; + } + + @get + op getModel(): Fish; + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 5); + const shark = models.find((x) => x.name === "Shark"); + ok(shark); + strictEqual(shark.properties.length, 2); + const sharktypeProperty = shark.properties.find((x) => x.name === "sharktype"); + ok(sharktypeProperty); + strictEqual(sharktypeProperty.kind, "property"); + strictEqual(sharktypeProperty.discriminator, true); + strictEqual(sharktypeProperty.type.kind, "string"); + }); + + it("union discriminator", async () => { + await runner.compileWithBuiltInService(` + union KindType { + string, + shark: "shark", + salmon: "salmon" + }; + + @discriminator("kind") + model Fish { + age: int32; + } + + model Shark extends Fish { + kind: KindType.shark; + hasFin: boolean; + } + + model Salmon extends Fish { + kind: KindType.salmon; + norweigan: boolean; + } + + @get + op getModel(): Fish; + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 3); + const fish = models.find((x) => x.name === "Fish"); + ok(fish); + let kindTypeProperty = fish.properties.find((x) => x.name === "kind"); + ok(kindTypeProperty); + strictEqual(kindTypeProperty.type.kind, "enum"); + strictEqual(kindTypeProperty.type.isUnionAsEnum, true); + strictEqual(fish.discriminatorProperty, kindTypeProperty); + const shark = models.find((x) => x.name === "Shark"); + ok(shark); + strictEqual(shark.discriminatorValue, "shark"); + kindTypeProperty = shark.properties.find((x) => x.name === "kind"); + ok(kindTypeProperty); + strictEqual(kindTypeProperty.type.kind, "enumvalue"); + const salmon = models.find((x) => x.name === "Salmon"); + ok(salmon); + kindTypeProperty = salmon.properties.find((x) => x.name === "kind"); + ok(kindTypeProperty); + strictEqual(kindTypeProperty.type.kind, "enumvalue"); + strictEqual(salmon.discriminatorValue, "salmon"); + + strictEqual(runner.context.experimental_sdkPackage.enums.length, 1); + const kindType = runner.context.experimental_sdkPackage.enums.find( + (x) => x.name === "KindType" + ); + ok(kindType); + strictEqual(kindType.isFixed, false); + }); + + it("string discriminator map to enum value", async () => { + await runner.compileWithBuiltInService(` + union KindType { + string, + shark: "shark", + salmon: "salmon" + }; + + @discriminator("kind") + model Fish { + kind: KindType; + age: int32; + } + + model Shark extends Fish { + kind: "shark"; + hasFin: boolean; + } + + model Salmon extends Fish { + kind: "salmon"; + norweigan: boolean; + } + + @get + op getModel(): Fish; + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 3); + const fish = models.find((x) => x.name === "Fish"); + ok(fish); + let kindTypeProperty = fish.properties.find((x) => x.name === "kind"); + ok(kindTypeProperty); + strictEqual(kindTypeProperty.type.kind, "enum"); + strictEqual(kindTypeProperty.type.isUnionAsEnum, true); + strictEqual(fish.discriminatorProperty, kindTypeProperty); + const shark = models.find((x) => x.name === "Shark"); + ok(shark); + strictEqual(shark.discriminatorValue, "shark"); + kindTypeProperty = shark.properties.find((x) => x.name === "kind"); + ok(kindTypeProperty); + strictEqual(kindTypeProperty.type.kind, "enumvalue"); + const salmon = models.find((x) => x.name === "Salmon"); + ok(salmon); + kindTypeProperty = salmon.properties.find((x) => x.name === "kind"); + ok(kindTypeProperty); + strictEqual(kindTypeProperty.type.kind, "enumvalue"); + strictEqual(salmon.discriminatorValue, "salmon"); + + strictEqual(runner.context.experimental_sdkPackage.enums.length, 1); + const kindType = runner.context.experimental_sdkPackage.enums.find( + (x) => x.name === "KindType" + ); + ok(kindType); + strictEqual(kindType.isFixed, false); + }); + + it("discriminator rename", async () => { + await runner.compileWithBuiltInService(` + @discriminator("kind") + model Fish { + @clientName("type") + @encodedName("application/json", "@data.kind") + kind: string; + age: int32; + } + + model Salmon extends Fish { + kind: "salmon"; + friends?: Fish[]; + hate?: Record; + partner?: Fish; + } + + @get + op getModel(): Fish; + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 2); + const fish = models.find((x) => x.name === "Fish"); + ok(fish); + strictEqual(fish.properties.length, 2); + const discriminatorProperty = fish.properties.find((x) => x.name === "type"); + ok(discriminatorProperty); + strictEqual(discriminatorProperty.kind, "property"); + strictEqual(discriminatorProperty.discriminator, true); + strictEqual(discriminatorProperty.type.kind, "string"); + strictEqual(discriminatorProperty.serializedName, "@data.kind"); + }); + + it("filterOutCoreModels true", async () => { + const runnerWithCore = await createSdkTestRunner({ + librariesToAdd: [AzureCoreTestLibrary], + autoUsings: ["Azure.Core"], + emitterName: "@azure-tools/typespec-java", + }); + await runnerWithCore.compileWithBuiltInAzureCoreService(` + @resource("users") + @doc("Details about a user.") + model User { + @key + @doc("The user's id.") + @visibility("read") + id: int32; + + @doc("The user's name.") + name: string; + } + + @doc("Creates or updates a User") + op createOrUpdate is StandardResourceOperations.ResourceCreateOrUpdate; + `); + const models = runnerWithCore.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + strictEqual(models[0].name, "User"); + }); + + it("filterOutCoreModels false", async () => { + const runnerWithCore = await createSdkTestRunner({ + librariesToAdd: [AzureCoreTestLibrary], + autoUsings: ["Azure.Core"], + "filter-out-core-models": false, + emitterName: "@azure-tools/typespec-java", + }); + await runnerWithCore.compileWithBuiltInAzureCoreService(` + @resource("users") + @doc("Details about a user.") + model User { + @key + @doc("The user's id.") + @visibility("read") + id: int32; + + @doc("The user's name.") + name: string; + } + + @doc("Creates or updates a User") + op createOrUpdate is StandardResourceOperations.ResourceCreateOrUpdate; + `); + const models = runnerWithCore.context.experimental_sdkPackage.models; + strictEqual(models.length, 4); + const modelNames = models.map((model) => model.name).sort(); + deepStrictEqual(modelNames, ["Error", "ErrorResponse", "InnerError", "User"].sort()); + }); + + it("lro core filterOutCoreModels true", async () => { + const runnerWithCore = await createSdkTestRunner({ + librariesToAdd: [AzureCoreTestLibrary], + autoUsings: ["Azure.Core"], + emitterName: "@azure-tools/typespec-java", + }); + await runnerWithCore.compileWithBuiltInAzureCoreService(` + @resource("users") + @doc("Details about a user.") + model User { + @key + @doc("The user's name.") + @visibility("read") + name: string; + } + + @doc("Gets status.") + op getStatus is StandardResourceOperations.GetResourceOperationStatus; + + @doc("Polls status.") + @pollingOperation(My.Service.getStatus) + op createOrUpdateUser is StandardResourceOperations.LongRunningResourceCreateOrUpdate; + `); + const models = runnerWithCore.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + strictEqual(models[0].name, "User"); + }); + + it("lro core filterOutCoreModels false", async () => { + const runnerWithCore = await createSdkTestRunner({ + librariesToAdd: [AzureCoreTestLibrary], + autoUsings: ["Azure.Core"], + "filter-out-core-models": false, + emitterName: "@azure-tools/typespec-java", + }); + await runnerWithCore.compileWithBuiltInAzureCoreService(` + @resource("users") + @doc("Details about a user.") + model User { + @key + @doc("The user's name.") + @visibility("read") + name: string; + } + + @doc("Gets status.") + op getStatus is StandardResourceOperations.GetResourceOperationStatus; + + @doc("Polls status.") + @pollingOperation(My.Service.getStatus) + op createOrUpdateUser is StandardResourceOperations.LongRunningResourceCreateOrUpdate; + `); + const models = runnerWithCore.context.experimental_sdkPackage.models; + strictEqual(models.length, 5); + const modelNames = models.map((model) => model.name).sort(); + deepStrictEqual( + modelNames, + [ + "Error", + "ErrorResponse", + "InnerError", + "User", + "ResourceOperationStatusUserUserError", + ].sort() + ); + strictEqual(runnerWithCore.context.experimental_sdkPackage.enums.length, 1); + strictEqual(runnerWithCore.context.experimental_sdkPackage.enums[0].name, "OperationState"); + }); + it("no models filter core", async () => { + await runner.compile(` + @service({}) + @test namespace MyService { } + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 0); + }); + it("no models don't filter core", async () => { + await runner.compile(` + @service({}) + @test namespace MyService { } + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 0); + }); + it("input usage", async () => { + await runner.compileWithBuiltInService(` + model InputModel { + prop: string + } + op operation(@body input: InputModel): void; + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + strictEqual(models[0].usage, UsageFlags.Input); + strictEqual(models.filter((x) => x.usage === UsageFlags.Input).length, 1); + strictEqual(models.filter((x) => x.usage === UsageFlags.Output).length, 0); + }); + + it("output usage", async () => { + await runner.compileWithBuiltInService(` + model OutputModel { + prop: string + } + op operation(): OutputModel; + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + strictEqual(models[0].usage, UsageFlags.Output); + + strictEqual(models.filter((x) => x.usage === UsageFlags.Output).length, 1); + strictEqual(models.filter((x) => x.usage === UsageFlags.Input).length, 0); + }); + + it("roundtrip usage", async () => { + await runner.compileWithBuiltInService(` + model RoundtripModel { + prop: string + } + op operation(@body input: RoundtripModel): RoundtripModel; + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + strictEqual(models[0].usage, UsageFlags.Input | UsageFlags.Output); + + strictEqual(models.filter((x) => (x.usage & UsageFlags.Output) > 0).length, 1); + strictEqual(models.filter((x) => (x.usage & UsageFlags.Input) > 0).length, 1); + strictEqual(models.filter((x) => x.usage === UsageFlags.None).length, 0); + }); + + it("readonly usage", async () => { + await runner.compileWithBuiltInService(` + model ResultModel { + name: string; + } + + model RoundTripModel { + @visibility("read") + result: ResultModel; + } + + @route("/modelInReadOnlyProperty") + @put + op modelInReadOnlyProperty(@body body: RoundTripModel): { + @body body: RoundTripModel; + }; + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 2); + strictEqual( + models.find((x) => x.name === "RoundTripModel")?.usage, + UsageFlags.Input | UsageFlags.Output + ); + strictEqual(models.find((x) => x.name === "ResultModel")?.usage, UsageFlags.Output); + }); + + it("usage propagation", async () => { + await runner.compileWithBuiltInService(` + @discriminator("kind") + model Fish { + age: int32; + } + + @discriminator("sharktype") + model Shark extends Fish { + kind: "shark"; + } + + model Salmon extends Fish { + kind: "salmon"; + friends?: Fish[]; + hate?: Record; + partner?: Fish; + } + + model SawShark extends Shark { + sharktype: "saw"; + } + + model GoblinShark extends Shark { + sharktype: "goblin"; + } + op operation(@body input: Shark): Shark; + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 4); + strictEqual(models[0].usage, UsageFlags.Input | UsageFlags.Output); + }); + + it("usage propagation from subtype", async () => { + await runner.compileWithBuiltInService(` + @discriminator("kind") + model Fish { + age: int32; + } + + @discriminator("sharktype") + model Shark extends Fish { + kind: "shark"; + } + + model Salmon extends Fish { + kind: "salmon"; + friends?: Fish[]; + hate?: Record; + partner?: Fish; + } + + model SawShark extends Shark { + sharktype: "saw"; + } + + model GoblinShark extends Shark { + sharktype: "goblin"; + } + op operation(@body input: Salmon): Salmon; + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 2); + strictEqual(models[0].usage, UsageFlags.Input | UsageFlags.Output); + }); + + it("usage propagation from subtype of type with another discriminated property", async () => { + await runner.compileWithBuiltInService(` + @discriminator("kind") + model Fish { + age: int32; + food: Food; + } + + @discriminator("sharktype") + model Shark extends Fish { + kind: "shark"; + } + + @discriminator("kind") + model Food { + kind: string; + } + + model Salmon extends Fish { + kind: "salmon"; + friends?: Fish[]; + } + + model Fruit extends Food { + kind: "fruit"; + } + + model Meet extends Food { + kind: "meet"; + } + op operation(@body input: Salmon): Salmon; + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 5); + strictEqual(models[0].usage, UsageFlags.Input | UsageFlags.Output); + }); + + it("unnamed model", async () => { + await runner.compileWithBuiltInService(` + model Test { + prop1: {innerProp1: string}; + prop2: {innerProp2: string}; + } + op func( + @body body: Test + ): void; + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 3); + const propreties: string[] = []; + models.forEach((model) => { + model.properties.forEach((prop) => { + propreties.push(prop.name); + }); + }); + propreties.sort(); + deepStrictEqual(propreties, ["innerProp1", "innerProp2", "prop1", "prop2"]); + }); + it("model access transitive closure", async () => { + await runner.compileWithBuiltInService(` + model Test { + prop: string; + } + @access(Access.internal) + op func( + @body body: Test + ): void; + `); + + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + strictEqual(models[0].access, "internal"); + }); + + it("complicated access transitive closure", async () => { + await runner.compileWithBuiltInService(` + model Test1 { + prop: Test2; + } + model Test2 { + prop: string; + } + @access(Access.internal) + @route("/func1") + op func1( + @body body: Test1 + ): void; + + model Test3 { + prop: string; + } + + @access(Access.internal) + @route("/func2") + op func2( + @body body: Test3 + ): void; + + @route("/func3") + op func3( + @body body: Test3 + ): void; + + model Test4 { + prop: Test5; + } + + model Test5 { + prop: Test6; + } + + model Test6 { + prop: string; + } + + @access(Access.internal) + @route("/func4") + op func4( + @body body: Test4 + ): void; + + @route("/func5") + op func5( + @body body: Test6 + ): void; + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 6); + + const Test1 = models.find((x) => x.name === "Test1"); + ok(Test1); + strictEqual(Test1.access, "internal"); + + const Test2 = models.find((x) => x.name === "Test2"); + ok(Test2); + strictEqual(Test2.access, "internal"); + + const Test3 = models.find((x) => x.name === "Test3"); + ok(Test3); + strictEqual(Test3.access, "public"); + + const Test4 = models.find((x) => x.name === "Test4"); + ok(Test4); + strictEqual(Test4.access, "internal"); + + const Test5 = models.find((x) => x.name === "Test5"); + ok(Test5); + strictEqual(Test5.access, "internal"); + + const Test6 = models.find((x) => x.name === "Test6"); + ok(Test6); + strictEqual(Test6.access, "public"); + }); + it("additionalProperties of same type", async () => { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + model AdditionalPropertiesModel extends Record { + prop: string; + } + @usage(Usage.input | Usage.output) + @access(Access.public) + model AdditionalPropertiesModel2 is Record { + prop: string; + } + @usage(Usage.input | Usage.output) + @access(Access.public) + model AdditionalPropertiesModel3 { + prop: string; + ...Record; + } + @usage(Usage.input | Usage.output) + @access(Access.public) + model NoAdditionalPropertiesModel { + prop: string; + } + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 4); + const AdditionalPropertiesModel = models.find((x) => x.name === "AdditionalPropertiesModel"); + const AdditionalPropertiesModel2 = models.find((x) => x.name === "AdditionalPropertiesModel2"); + const AdditionalPropertiesModel3 = models.find((x) => x.name === "AdditionalPropertiesModel3"); + const NonAdditionalPropertiesModel = models.find( + (x) => x.name === "NoAdditionalPropertiesModel" + ); + ok( + AdditionalPropertiesModel && + AdditionalPropertiesModel2 && + AdditionalPropertiesModel3 && + NonAdditionalPropertiesModel + ); + strictEqual(AdditionalPropertiesModel.additionalProperties?.kind, "string"); + strictEqual(AdditionalPropertiesModel.baseModel, undefined); + strictEqual(AdditionalPropertiesModel2.additionalProperties?.kind, "any"); + strictEqual(AdditionalPropertiesModel2.baseModel, undefined); + strictEqual(AdditionalPropertiesModel3.additionalProperties?.kind, "string"); + strictEqual(AdditionalPropertiesModel3.baseModel, undefined); + strictEqual(NonAdditionalPropertiesModel.additionalProperties, undefined); + }); + + it("additionalProperties usage", async () => { + await runner.compileWithBuiltInService(` + @service({}) + namespace MyService { + model AdditionalPropertiesModel extends Record { + } + + model AdditionalPropertiesModel2 is Record { + } + + model AdditionalPropertiesModel3 { + ...Record; + } + + model Test { + } + + model Test2 { + } + + @route("test") + op test(@body input: AdditionalPropertiesModel): AdditionalPropertiesModel2; + @route("test2") + op test2(@body input: AdditionalPropertiesModel3): AdditionalPropertiesModel3; + } + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 5); + const AdditionalPropertiesModel = models.find((x) => x.name === "AdditionalPropertiesModel"); + const AdditionalPropertiesModel2 = models.find((x) => x.name === "AdditionalPropertiesModel2"); + const AdditionalPropertiesModel3 = models.find((x) => x.name === "AdditionalPropertiesModel3"); + const Test = models.find((x) => x.name === "Test"); + const Test2 = models.find((x) => x.name === "Test2"); + ok( + AdditionalPropertiesModel && + AdditionalPropertiesModel2 && + AdditionalPropertiesModel3 && + Test && + Test2 + ); + + strictEqual(AdditionalPropertiesModel.additionalProperties?.kind, "model"); + strictEqual(AdditionalPropertiesModel.baseModel, undefined); + strictEqual(AdditionalPropertiesModel.usage, UsageFlags.Input); + strictEqual(AdditionalPropertiesModel2.additionalProperties?.kind, "model"); + strictEqual(AdditionalPropertiesModel2.baseModel, undefined); + strictEqual(AdditionalPropertiesModel2.usage, UsageFlags.Output); + strictEqual(AdditionalPropertiesModel3.additionalProperties?.kind, "model"); + strictEqual(AdditionalPropertiesModel3.baseModel, undefined); + strictEqual(AdditionalPropertiesModel3.usage, UsageFlags.Input | UsageFlags.Output); + strictEqual(Test.usage, UsageFlags.Input | UsageFlags.Output); + strictEqual(Test2.usage, UsageFlags.Input | UsageFlags.Output); + }); + + it("additionalProperties of different types", async () => { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + model AdditionalPropertiesModel { + prop: string; + ...Record; + } + + @usage(Usage.input | Usage.output) + @access(Access.public) + model AdditionalPropertiesModel2 { + prop: string; + ...Record; + } + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 2); + const AdditionalPropertiesModel = models.find((x) => x.name === "AdditionalPropertiesModel"); + const AdditionalPropertiesModel2 = models.find((x) => x.name === "AdditionalPropertiesModel2"); + ok(AdditionalPropertiesModel && AdditionalPropertiesModel2); + strictEqual(AdditionalPropertiesModel.additionalProperties?.kind, "float32"); + strictEqual(AdditionalPropertiesModel.baseModel, undefined); + strictEqual(AdditionalPropertiesModel2.additionalProperties?.kind, "union"); + strictEqual(AdditionalPropertiesModel2.additionalProperties?.values[0].kind, "boolean"); + strictEqual(AdditionalPropertiesModel2.additionalProperties?.values[1].kind, "float32"); + strictEqual(AdditionalPropertiesModel2.baseModel, undefined); + }); + + it("crossLanguageDefinitionId", async () => { + await runner.compile(` + @service({}) + namespace MyService { + @usage(Usage.input) + @access(Access.public) + model InputModel {} + + @usage(Usage.output) + @access(Access.public) + model OutputModel {} + } + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 2); + const inputModel = models.find((x) => x.name === "InputModel"); + ok(inputModel); + strictEqual(inputModel.crossLanguageDefinitionId, "MyService.InputModel"); + const outputModel = models.find((x) => x.name === "OutputModel"); + ok(outputModel); + strictEqual(outputModel.crossLanguageDefinitionId, "MyService.OutputModel"); + }); + + it("template model", async () => { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Catalog is TrackedResource { + @pattern("^[A-Za-z0-9_-]{1,50}$") + @key("catalogName") + @segment("catalogs") + name: string; + } + + @usage(Usage.input | Usage.output) + @access(Access.public) + model CatalogProperties { + test?: string; + } + + model TrackedResource { + properties?: TProperties; + } + + @usage(Usage.input | Usage.output) + @access(Access.public) + model Deployment is TrackedResource { + @key("deploymentName") + @segment("deployments") + name: string; + } + + @usage(Usage.input | Usage.output) + @access(Access.public) + model DeploymentProperties { + deploymentId?: string; + deploymentDateUtc?: utcDateTime; + } + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 4); + const catalog = models.find((x) => x.name === "Catalog"); + const deployment = models.find((x) => x.name === "Deployment"); + ok(catalog && deployment); + strictEqual(catalog.properties.length, 2); + strictEqual(deployment.properties.length, 2); + }); + it("model with deprecated annotation", async () => { + await runner.compileAndDiagnose(` + @service({}) + namespace MyService; + #deprecated "no longer support" + model Test { + } + op func( + @body body: Test + ): void; + `); + + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + strictEqual(models[0].deprecation, "no longer support"); + }); + + it("orphan model", async () => { + await runner.compileAndDiagnose(` + @service({}) + @test namespace MyService { + @test + @usage(Usage.input | Usage.output) + @access(Access.public) + model Model1{} + + model Model2{} + } + `); + + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + strictEqual(models[0].name, "Model1"); + strictEqual(models[0].usage, UsageFlags.Input | UsageFlags.Output); + }); + + it("model with client hierarchy", async () => { + await runner.compile(` + @service({}) + namespace Test1Client { + model T1 { + prop: string; + } + model T2 { + prop: string; + } + @route("/b") + namespace B { + op x(): void; + + @route("/c") + interface C { + op y(): T1; + } + + @route("/d") + namespace D { + op z(@body body: T2): void; + } + } + } + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 2); + }); + it("error model", async () => { + await runner.compileWithBuiltInService(` + @error + model ApiError { + code: string; + } + + op test(): ApiError; + `); + const models = getAllModels(runner.context); + strictEqual(models.length, 1); + strictEqual(models[0].kind, "model"); + strictEqual(models[0].isError, true); + const rawModel = models[0].__raw; + ok(rawModel); + strictEqual(rawModel.kind, "Model"); + strictEqual(isErrorModel(runner.context.program, rawModel), true); + }); + + it("error model inheritance", async () => { + await runner.compileWithBuiltInService(` + model ValidResponse { + prop: string; + }; + + @error + model ApiError { + code: string + }; + + model FourHundredError extends ApiError { + @statusCode + @minValue(400) + @maxValue(499) + statusCode: int32; + }; + model FourZeroFourError extends FourHundredError { + @statusCode + statusCode: 404; + }; + model FiveHundredError extends ApiError { + @statusCode + @minValue(500) + @maxValue(599) + statusCode: int32; + }; + + op test(): ValidResponse | FourZeroFourError | FiveHundredError; + `); + const models = getAllModels(runner.context); + strictEqual(models.length, 5); + const errorModels = models.filter((x) => x.kind === "model" && x.isError); + deepStrictEqual(errorModels.map((x) => x.name).sort(), [ + "ApiError", + "FiveHundredError", + "FourHundredError", + "FourZeroFourError", + ]); + const validModel = models.filter((x) => x.kind === "model" && !x.isError); + deepStrictEqual( + validModel.map((x) => x.name), + ["ValidResponse"] + ); + }); + + it("never or void property", async () => { + await runner.compileAndDiagnose(` + @service({}) + @test namespace MyService { + @test + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test{ + prop1: never; + prop2: void; + } + } + `); + + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + strictEqual(models[0].name, "Test"); + strictEqual(models[0].properties.length, 0); + }); +}); diff --git a/packages/typespec-client-generator-core/test/types/multipart-types.test.ts b/packages/typespec-client-generator-core/test/types/multipart-types.test.ts new file mode 100644 index 0000000000..f4734e744f --- /dev/null +++ b/packages/typespec-client-generator-core/test/types/multipart-types.test.ts @@ -0,0 +1,263 @@ +/* eslint-disable deprecation/deprecation */ +import { expectDiagnostics } from "@typespec/compiler/testing"; +import { ok, strictEqual } from "assert"; +import { beforeEach, describe, it } from "vitest"; +import { UsageFlags } from "../../src/interfaces.js"; +import { getAllModelsWithDiagnostics } from "../../src/types.js"; +import { SdkTestRunner, createSdkTestRunner } from "../test-host.js"; + +describe("typespec-client-generator-core: multipart types", () => { + let runner: SdkTestRunner; + + beforeEach(async () => { + runner = await createSdkTestRunner({ emitterName: "@azure-tools/typespec-java" }); + }); + + it("multipart form basic", async function () { + await runner.compileWithBuiltInService(` + model MultiPartRequest { + id: string; + profileImage: bytes; + } + + op basic(@header contentType: "multipart/form-data", @body body: MultiPartRequest): NoContentResponse; + `); + + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + const model = models[0]; + strictEqual(model.kind, "model"); + strictEqual(model.isFormDataType, true); + ok((model.usage & UsageFlags.MultipartFormData) > 0); + strictEqual(model.name, "MultiPartRequest"); + strictEqual(model.properties.length, 2); + const id = model.properties.find((x) => x.name === "id"); + ok(id); + strictEqual(id.kind, "property"); + strictEqual(id.type.kind, "string"); + const profileImage = model.properties.find((x) => x.name === "profileImage"); + ok(profileImage); + strictEqual(profileImage.kind, "property"); + strictEqual(profileImage.isMultipartFileInput, true); + }); + it("multipart conflicting model usage", async function () { + await runner.compile( + ` + @service({title: "Test Service"}) namespace TestService; + model MultiPartRequest { + id: string; + profileImage: bytes; + } + + @post op multipartUse(@header contentType: "multipart/form-data", @body body: MultiPartRequest): NoContentResponse; + @put op jsonUse(@body body: MultiPartRequest): NoContentResponse; + ` + ); + const [_, diagnostics] = getAllModelsWithDiagnostics(runner.context); + expectDiagnostics(diagnostics, { + code: "@azure-tools/typespec-client-generator-core/conflicting-multipart-model-usage", + }); + }); + it("multipart resolving conflicting model usage with spread", async function () { + await runner.compileWithBuiltInService( + ` + model B { + doc: bytes + } + + model A { + ...B + } + + @put op multipartOperation(@header contentType: "multipart/form-data", ...A): void; + @post op normalOperation(...B): void; + ` + ); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 2); + const modelA = models.find((x) => x.name === "A"); + ok(modelA); + strictEqual(modelA.kind, "model"); + strictEqual(modelA.isFormDataType, true); + ok((modelA.usage & UsageFlags.MultipartFormData) > 0); + strictEqual(modelA.properties.length, 1); + const modelAProp = modelA.properties[0]; + strictEqual(modelAProp.kind, "property"); + strictEqual(modelAProp.isMultipartFileInput, true); + + const modelB = models.find((x) => x.name === "B"); + ok(modelB); + strictEqual(modelB.kind, "model"); + strictEqual(modelB.isFormDataType, false); + ok((modelB.usage & UsageFlags.MultipartFormData) === 0); + strictEqual(modelB.properties.length, 1); + strictEqual(modelB.properties[0].type.kind, "bytes"); + }); + + it("multipart with non-formdata model property", async function () { + await runner.compileWithBuiltInService( + ` + model Address { + city: string; + } + + model AddressFirstAppearance { + address: Address; + } + + @usage(Usage.input | Usage.output) + @access(Access.public) + model AddressSecondAppearance { + address: Address; + } + + @put op multipartOne(@header contentType: "multipart/form-data", @body body: AddressFirstAppearance): void; + ` + ); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 3); + }); + + it("multipart with list of bytes", async function () { + await runner.compileWithBuiltInService( + ` + model PictureWrapper { + pictures: bytes[]; + } + + @put op multipartOp(@header contentType: "multipart/form-data", @body body: PictureWrapper): void; + ` + ); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + const model = models[0]; + strictEqual(model.properties.length, 1); + const pictures = model.properties[0]; + strictEqual(pictures.kind, "property"); + strictEqual(pictures.isMultipartFileInput, true); + }); + + it("multipart with encoding bytes raises error", async function () { + await runner.compile( + ` + @service({title: "Test Service"}) namespace TestService; + model EncodedBytesMFD { + @encode("base64") + pictures: bytes; + } + + @put op multipartOp(@header contentType: "multipart/form-data", @body body: EncodedBytesMFD): void; + ` + ); + ok(runner.context.diagnostics?.length); + expectDiagnostics(runner.context.diagnostics, { + code: "@azure-tools/typespec-client-generator-core/encoding-multipart-bytes", + }); + }); + + it("multipart with reused error model", async function () { + await runner.compileWithBuiltInService( + ` + model PictureWrapper { + pictures: bytes[]; + } + + model ErrorResponse { + errorCode: string; + } + + @put op multipartOp(@header contentType: "multipart/form-data", @body body: PictureWrapper): void | ErrorResponse; + @post op normalOp(): void | ErrorResponse; + ` + ); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 2); + + const pictureWrapper = models.find((x) => x.name === "PictureWrapper"); + ok(pictureWrapper); + strictEqual(pictureWrapper.isFormDataType, true); + ok((pictureWrapper.usage & UsageFlags.MultipartFormData) > 0); + + const errorResponse = models.find((x) => x.name === "ErrorResponse"); + ok(errorResponse); + strictEqual(errorResponse.kind, "model"); + strictEqual(errorResponse.isFormDataType, false); + ok((errorResponse.usage & UsageFlags.MultipartFormData) === 0); + }); + + it("expands model into formData parameters", async function () { + await runner.compileWithBuiltInService(` + @doc("A widget.") + model Widget { + @key("widgetName") + name: string; + displayName: string; + description: string; + color: string; + } + + model WidgetForm is Widget { + @header("content-type") + contentType: "multipart/form-data"; + } + + @route("/widgets") + interface Widgets { + @route(":upload") + @post + upload(...WidgetForm): Widget; + } + `); + const formDataMethod = runner.context.experimental_sdkPackage.clients[0].methods[0]; + strictEqual(formDataMethod.kind, "basic"); + strictEqual(formDataMethod.name, "upload"); + strictEqual(formDataMethod.parameters.length, 3); + + const widgetParam = formDataMethod.parameters.find((x) => x.name === "widget"); + ok(widgetParam); + ok(formDataMethod.parameters.find((x) => x.name === "accept")); + strictEqual(formDataMethod.parameters[0].name, "contentType"); + strictEqual(formDataMethod.parameters[0].type.kind, "constant"); + strictEqual(formDataMethod.parameters[0].type.value, "multipart/form-data"); + strictEqual(formDataMethod.parameters[1].name, "widget"); + strictEqual(formDataMethod.parameters[1].type.kind, "model"); + strictEqual(formDataMethod.parameters[1].type.name, "Widget"); + + const formDataOp = formDataMethod.operation; + strictEqual(formDataOp.parameters.length, 2); + ok(formDataOp.parameters.find((x) => x.name === "accept" && x.kind === "header")); + ok(formDataOp.parameters.find((x) => x.name === "contentType" && x.kind === "header")); + + const formDataBodyParam = formDataOp.bodyParam; + ok(formDataBodyParam); + strictEqual(formDataBodyParam.type.kind, "model"); + strictEqual(formDataBodyParam.type.name, "Widget"); + strictEqual(formDataBodyParam.correspondingMethodParams[0], formDataMethod.parameters[1]); + }); + + it("usage doesn't apply to properties of a form data", async function () { + await runner.compileWithBuiltInService(` + model MultiPartRequest { + id: string; + profileImage: bytes; + address: Address; + } + + model Address { + city: string; + } + + @post + op upload(@header contentType: "multipart/form-data", @body body: MultiPartRequest): void; + `); + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 2); + const multiPartRequest = models.find((x) => x.name === "MultiPartRequest"); + ok(multiPartRequest); + ok(multiPartRequest.usage & UsageFlags.MultipartFormData); + + const address = models.find((x) => x.name === "Address"); + ok(address); + strictEqual(address.usage & UsageFlags.MultipartFormData, 0); + }); +}); diff --git a/packages/typespec-client-generator-core/test/types/tuple-types.test.ts b/packages/typespec-client-generator-core/test/types/tuple-types.test.ts new file mode 100644 index 0000000000..eb10e448cb --- /dev/null +++ b/packages/typespec-client-generator-core/test/types/tuple-types.test.ts @@ -0,0 +1,38 @@ +import { ok, strictEqual } from "assert"; +import { beforeEach, describe, it } from "vitest"; +import { SdkTestRunner, createSdkTestRunner } from "../test-host.js"; + +describe("typespec-client-generator-core: tuple types", () => { + let runner: SdkTestRunner; + + beforeEach(async () => { + runner = await createSdkTestRunner({ emitterName: "@azure-tools/typespec-java" }); + }); + + it("model with tupled properties", async function () { + await runner.compileAndDiagnose(` + @service({}) + namespace MyService; + @usage(Usage.input | Usage.output) + @access(Access.public) + model MyFlow { + scopes: ["https://security.microsoft.com/.default"]; + test: [int32, string] + } + `); + + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + const scopes = models[0].properties.find((x) => x.name === "scopes"); + ok(scopes); + strictEqual(scopes.type.kind, "tuple"); + strictEqual(scopes.type.values[0].kind, "constant"); + strictEqual(scopes.type.values[0].valueType.kind, "string"); + strictEqual(scopes.type.values[0].value, "https://security.microsoft.com/.default"); + const test = models[0].properties.find((x) => x.name === "test"); + ok(test); + strictEqual(test.type.kind, "tuple"); + strictEqual(test.type.values[0].kind, "int32"); + strictEqual(test.type.values[1].kind, "string"); + }); +}); diff --git a/packages/typespec-client-generator-core/test/types/union-types.test.ts b/packages/typespec-client-generator-core/test/types/union-types.test.ts new file mode 100644 index 0000000000..e55230d393 --- /dev/null +++ b/packages/typespec-client-generator-core/test/types/union-types.test.ts @@ -0,0 +1,587 @@ +import { UsageFlags } from "@typespec/compiler"; +import { ok, strictEqual } from "assert"; +import { beforeEach, describe, it } from "vitest"; +import { SdkArrayType } from "../../src/interfaces.js"; +import { SdkTestRunner, createSdkTestRunner } from "../test-host.js"; +import { getSdkTypeHelper } from "./utils.js"; + +describe("typespec-client-generator-core: union types", () => { + let runner: SdkTestRunner; + + beforeEach(async () => { + runner = await createSdkTestRunner({ emitterName: "@azure-tools/typespec-java" }); + }); + + it("primitive union", async function () { + await runner.compileWithBuiltInService( + ` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + name: string | int32; + } + ` + ); + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "union"); + strictEqual(sdkType.name, "TestName"); + ok(sdkType.isGeneratedName); + const values = sdkType.values; + strictEqual(values.length, 2); + strictEqual(values[0].kind, "string"); + strictEqual(values[1].kind, "int32"); + }); + it("nullable", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + name: float32 | null; + } + `); + + const nullableType = getSdkTypeHelper(runner); + strictEqual(nullableType.kind, "nullable"); + + const sdkType = nullableType.type; + strictEqual(sdkType.kind, "float32"); + }); + + it("nullable with more types", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + name: string | float32 | null; + } + `); + + const nullableType = getSdkTypeHelper(runner); + strictEqual(nullableType.kind, "nullable"); + + const sdkType = nullableType.type; + strictEqual(sdkType.kind, "union"); + strictEqual(sdkType.values.length, 2); + strictEqual(sdkType.values[0].kind, "string"); + strictEqual(sdkType.values[1].kind, "float32"); + }); + + it("record with nullable", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + name: Record; + } + `); + + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "dict"); + const elementType = sdkType.valueType; + strictEqual(elementType.kind, "nullable"); + strictEqual(elementType.type.kind, "float32"); + }); + + it("record with nullable with more types", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + name: Record; + } + `); + + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "dict"); + const elementType = sdkType.valueType; + strictEqual(elementType.kind, "nullable"); + + const elementTypeValueType = elementType.type; + strictEqual(elementTypeValueType.kind, "union"); + strictEqual(elementTypeValueType.values.length, 2); + strictEqual(elementTypeValueType.values[0].kind, "string"); + strictEqual(elementTypeValueType.values[1].kind, "float32"); + }); + + it("array with nullable", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + name: (float32 | null)[]; + } + `); + + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "array"); + const elementType = sdkType.valueType; + strictEqual(elementType.kind, "nullable"); + strictEqual(elementType.type.kind, "float32"); + }); + + it("array with nullable with more types", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + name: (string | float32 | null)[]; + } + `); + + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "array"); + const elementType = sdkType.valueType; + strictEqual(elementType.kind, "nullable"); + const elementTypeValueType = elementType.type; + strictEqual(elementTypeValueType.kind, "union"); + strictEqual(elementTypeValueType.values.length, 2); + strictEqual(elementTypeValueType.values[0].kind, "string"); + strictEqual(elementTypeValueType.values[1].kind, "float32"); + }); + + it("additional property is nullable", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + model TestExtends extends Record { + name: string; + } + + @usage(Usage.input | Usage.output) + @access(Access.public) + model TestIs is Record { + name: string; + } + + @usage(Usage.input | Usage.output) + @access(Access.public) + model TestSpread { + name: string; + ...Record + } + `); + + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 3); + + const extendsType = models.find((x) => x.name === "TestExtends"); + ok(extendsType); + strictEqual(extendsType.kind, "model"); + const additionalProperties = extendsType.additionalProperties; + ok(additionalProperties); + strictEqual(additionalProperties.kind, "nullable"); + strictEqual(additionalProperties.type.kind, "string"); + + const isType = models.find((x) => x.name === "TestIs"); + ok(isType); + strictEqual(isType.kind, "model"); + const isTypeAdditionalProperties = isType.additionalProperties; + ok(isTypeAdditionalProperties); + strictEqual(isTypeAdditionalProperties.kind, "nullable"); + strictEqual(isTypeAdditionalProperties.type.kind, "string"); + + const spreadType = models.find((x) => x.name === "TestSpread"); + ok(spreadType); + strictEqual(spreadType.kind, "model"); + const spreadTypeAdditionalProperties = spreadType.additionalProperties; + ok(spreadTypeAdditionalProperties); + strictEqual(spreadTypeAdditionalProperties.kind, "nullable"); + strictEqual(spreadTypeAdditionalProperties.type.kind, "string"); + }); + + it("additional property nullable with more types", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + model TestExtends extends Record { + name: string; + } + + @usage(Usage.input | Usage.output) + @access(Access.public) + model TestIs is Record { + name: string; + } + + @usage(Usage.input | Usage.output) + @access(Access.public) + model TestSpread { + name: string; + ...Record + } + `); + + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 3); + + const extendsType = models.find((x) => x.name === "TestExtends"); + ok(extendsType); + strictEqual(extendsType.kind, "model"); + + const extendsTypeAdditionalProperties = extendsType.additionalProperties; + ok(extendsTypeAdditionalProperties); + strictEqual(extendsTypeAdditionalProperties.kind, "nullable"); + const extendsAdPropUnderlyingType = extendsTypeAdditionalProperties.type; + strictEqual(extendsAdPropUnderlyingType.kind, "union"); + strictEqual(extendsAdPropUnderlyingType.name, "TestExtendsAdditionalProperty"); + strictEqual(extendsAdPropUnderlyingType.isGeneratedName, true); + strictEqual(extendsAdPropUnderlyingType.values.length, 2); + strictEqual(extendsAdPropUnderlyingType.values[0].kind, "string"); + strictEqual(extendsAdPropUnderlyingType.values[1].kind, "float32"); + + const isType = models.find((x) => x.name === "TestIs"); + ok(isType); + strictEqual(isType.kind, "model"); + const isTypeAdditionalProperties = isType.additionalProperties; + ok(isTypeAdditionalProperties); + strictEqual(isTypeAdditionalProperties.kind, "nullable"); + + const isTypeAdditionalPropertiesUnderlyingType = isTypeAdditionalProperties.type; + strictEqual(isTypeAdditionalPropertiesUnderlyingType.kind, "union"); + strictEqual(isTypeAdditionalPropertiesUnderlyingType.name, "TestIsAdditionalProperty"); + strictEqual(isTypeAdditionalPropertiesUnderlyingType.isGeneratedName, true); + strictEqual(isTypeAdditionalPropertiesUnderlyingType.values.length, 2); + strictEqual(isTypeAdditionalPropertiesUnderlyingType.values[0].kind, "string"); + strictEqual(isTypeAdditionalPropertiesUnderlyingType.values[1].kind, "float32"); + + const spreadType = models.find((x) => x.name === "TestSpread"); + ok(spreadType); + strictEqual(spreadType.kind, "model"); + + const spreadTypeAdditionalProperties = spreadType.additionalProperties; + ok(spreadTypeAdditionalProperties); + strictEqual(spreadTypeAdditionalProperties.kind, "nullable"); + + const spreadTypeAdditionalPropertiesUnderlyingType = spreadTypeAdditionalProperties.type; + strictEqual(spreadTypeAdditionalPropertiesUnderlyingType.kind, "union"); + strictEqual(spreadTypeAdditionalPropertiesUnderlyingType.name, "TestSpreadAdditionalProperty"); + strictEqual(spreadTypeAdditionalPropertiesUnderlyingType.isGeneratedName, true); + strictEqual(spreadTypeAdditionalPropertiesUnderlyingType.values.length, 2); + strictEqual(spreadTypeAdditionalPropertiesUnderlyingType.values[0].kind, "string"); + strictEqual(spreadTypeAdditionalPropertiesUnderlyingType.values[1].kind, "float32"); + }); + + it("model with simple union property", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + model ModelWithSimpleUnionProperty { + prop: int32 | int32[]; + } + `); + + const sdkType = getSdkTypeHelper(runner); + strictEqual(sdkType.kind, "union"); + const values = sdkType.values; + strictEqual(values.length, 2); + strictEqual(values[0].kind, "int32"); + strictEqual(values[1].kind, "array"); + + const elementType = (values[1]).valueType; + strictEqual(elementType.kind, "int32"); + }); + + it("model with named union", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + model BaseModel { + name: string; + } + @usage(Usage.input | Usage.output) + @access(Access.public) + model Model1 extends BaseModel { + prop1: int32; + } + @usage(Usage.input | Usage.output) + @access(Access.public) + model Model2 extends BaseModel { + prop2: int32; + } + @usage(Usage.input | Usage.output) + @access(Access.public) + union MyNamedUnion { + one: Model1, + two: Model2, + } + + @usage(Usage.input | Usage.output) + @access(Access.public) + model ModelWithNamedUnionProperty { + prop: MyNamedUnion; + } + `); + + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 4); + const modelWithNamedUnionProperty = models.find( + (x) => x.kind === "model" && x.name === "ModelWithNamedUnionProperty" + ); + ok(modelWithNamedUnionProperty); + const property = modelWithNamedUnionProperty.properties[0]; + strictEqual(property.kind, "property"); + const sdkType = property.type; + strictEqual(sdkType.kind, "union"); + const values = sdkType.values; + strictEqual(values.length, 2); + strictEqual(values[0].kind, "model"); + strictEqual(values[0].name, "Model1"); + strictEqual( + values[0], + models.find((x) => x.kind === "model" && x.name === "Model1") + ); + strictEqual(values[1].kind, "model"); + strictEqual(values[1].name, "Model2"); + strictEqual( + values[1], + models.find((x) => x.kind === "model" && x.name === "Model2") + ); + 1; + }); + + it("model with nullable enum property", async function () { + await runner.compileWithBuiltInService(` + enum PetKind { + dog, cat, bird + } + @usage(Usage.input | Usage.output) + @access(Access.public) + model Home { + pet: PetKind | null; + } + `); + + const nullableType = getSdkTypeHelper(runner); + strictEqual(nullableType.kind, "nullable"); + + const sdkType = nullableType.type; + strictEqual(sdkType.kind, "enum"); + strictEqual(sdkType.isUnionAsEnum, false); + strictEqual(sdkType.name, "PetKind"); + + const values = sdkType.values; + strictEqual(values.length, 3); + }); + + it("model with nullable union as enum", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Home { + pet: "dog" | "cat" | "bird" | string | null; + } + `); + + const nullableType = getSdkTypeHelper(runner); + strictEqual(nullableType.kind, "nullable"); + + const sdkType = nullableType.type; + strictEqual(sdkType.kind, "enum"); + strictEqual(sdkType.isUnionAsEnum, true); + strictEqual(sdkType.name, "HomePet"); + + const values = sdkType.values; + strictEqual(values.length, 3); + }); + + it("model with nullable model property", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + model PropertyModel { + internalProp: string; + } + + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + prop: PropertyModel | null; + } + `); + + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 2); + const model = models.find((x) => x.kind === "model" && x.name === "Test"); + ok(model); + const nullableType = model.properties[0].type; + strictEqual(nullableType.kind, "nullable"); + + const sdkType = nullableType.type; + strictEqual(sdkType.kind, "model"); + strictEqual(sdkType.name, "PropertyModel"); + }); + + it("mix types", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + model ModelType { + name: string; + } + + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + prop: "none" | "auto" | ModelType; + } + + @usage(Usage.input | Usage.output) + @access(Access.public) + model TestNullable { + prop: "none" | "auto" | ModelType | null; + } + `); + + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 3); + const model = models.find((x) => x.kind === "model" && x.name === "Test"); + ok(model); + const nullableModel = models.find((x) => x.kind === "model" && x.name === "TestNullable"); + ok(nullableModel); + strictEqual(model.properties[0].type.kind, "union"); + const unionType = model.properties[0].type; + strictEqual(unionType.kind, "union"); + for (const v of unionType.values) { + if (v.kind === "model") { + strictEqual(v.name, "ModelType"); + } else { + strictEqual(v.kind, "constant"); + } + } + const nullableProp = nullableModel.properties[0]; + strictEqual(nullableProp.type.kind, "nullable"); + strictEqual(nullableProp.type.type.kind, "union"); + strictEqual(nullableProp.type.type.values.length, 3); + + // now check without null with help of helper function + strictEqual(nullableModel.properties[0].type.kind, "nullable"); + const sdkType = nullableProp.type.type; + strictEqual(sdkType.kind, "union"); + for (const v of sdkType.values) { + if (v.kind === "model") { + strictEqual(v.name, "ModelType"); + } else { + strictEqual(v.kind, "constant"); + } + } + }); + + it("usage", async function () { + await runner.compileWithBuiltInService(` + union UnionAsEnum { + "A", + "B", + string, + } + + model Foo { + prop: string; + } + + union NullableUnion { + Foo, + null + } + + model Bar { + prop1: UnionAsEnum; + prop2: NullableUnion; + } + + @access(Access.internal) + op func( + @body body: Bar + ): void; + `); + + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 2); + const foo = models.find((x) => x.name === "Foo"); + ok(foo); + strictEqual(foo.usage, UsageFlags.Input); + strictEqual(foo.access, "internal"); + const enums = runner.context.experimental_sdkPackage.enums; + strictEqual(enums.length, 1); + const unionAsEnum = enums.find((x) => x.name === "UnionAsEnum"); + ok(unionAsEnum); + strictEqual(unionAsEnum.usage, UsageFlags.Input); + strictEqual(unionAsEnum.access, "internal"); + }); + + it("usage override", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + union UnionAsEnum { + "A", + "B", + string, + } + + @usage(Usage.input | Usage.output) + @access(Access.public) + model Foo { + prop: string; + } + + union NullableUnion { + Foo, + null + } + + model Bar { + prop1: UnionAsEnum; + prop2: NullableUnion; + } + + @access(Access.internal) + op func( + @body body: Bar + ): void; + `); + + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 2); + const foo = models.find((x) => x.name === "Foo"); + ok(foo); + strictEqual(foo.usage, UsageFlags.Input | UsageFlags.Output); + strictEqual(foo.access, "public"); + const enums = runner.context.experimental_sdkPackage.enums; + strictEqual(enums.length, 1); + const unionAsEnum = enums.find((x) => x.name === "UnionAsEnum"); + ok(unionAsEnum); + strictEqual(unionAsEnum.usage, UsageFlags.Input | UsageFlags.Output); + strictEqual(unionAsEnum.access, "public"); + }); + + it("usage override for orphan union as enum", async function () { + await runner.compileWithBuiltInService(` + @usage(Usage.input | Usage.output) + @access(Access.public) + union UnionAsEnum { + "A", + "B", + string, + } + + @usage(Usage.input | Usage.output) + @access(Access.internal) + union UnionAsEnumInternal { + "A", + "B", + string, + } + `); + + const enums = runner.context.experimental_sdkPackage.enums; + strictEqual(enums.length, 2); + const unionAsEnum = enums.find((x) => x.name === "UnionAsEnum"); + ok(unionAsEnum); + strictEqual(unionAsEnum.usage, UsageFlags.Input | UsageFlags.Output); + strictEqual(unionAsEnum.access, "public"); + const unionAsEnumInternal = enums.find((x) => x.name === "UnionAsEnumInternal"); + ok(unionAsEnumInternal); + strictEqual(unionAsEnumInternal.usage, UsageFlags.Input | UsageFlags.Output); + strictEqual(unionAsEnumInternal.access, "internal"); + }); +}); diff --git a/packages/typespec-client-generator-core/test/types/utils.ts b/packages/typespec-client-generator-core/test/types/utils.ts new file mode 100644 index 0000000000..d9fc1a5fa3 --- /dev/null +++ b/packages/typespec-client-generator-core/test/types/utils.ts @@ -0,0 +1,16 @@ +import { ok, strictEqual } from "assert"; +import { SdkBodyModelPropertyType, SdkType } from "../../src/interfaces.js"; +import { SdkTestRunner } from "../test-host.js"; + +export function getSdkBodyModelPropertyTypeHelper(runner: SdkTestRunner): SdkBodyModelPropertyType { + const sdkModel = runner.context.experimental_sdkPackage.models.find((x) => x.kind === "model"); + ok(sdkModel); + strictEqual(sdkModel.kind, "model"); + const property = sdkModel.properties[0]; + strictEqual(property.kind, "property"); + return property; +} + +export function getSdkTypeHelper(runner: SdkTestRunner): SdkType { + return getSdkBodyModelPropertyTypeHelper(runner).type; +} From 9671293793fc6d19d0d77e620f1921868b444b54 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 14 Jun 2024 20:08:04 +0000 Subject: [PATCH 11/42] Bump core from `9c701cc` to `216f423` (#1019) Bumps [core](https://github.com/microsoft/typespec) from `9c701cc` to `216f423`.
Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
--------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Timothee Guerin --- core | 2 +- pnpm-lock.yaml | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/core b/core index 9c701cc272..216f423a8c 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 9c701cc27264e0d635e622e823270d0c054f64a9 +Subproject commit 216f423a8c4330410a4a6352fc9d2be5f4ee8413 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7860bf3e64..05124391d2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -825,6 +825,9 @@ importers: react-dom: specifier: ~18.3.1 version: 18.3.1(react@18.3.1) + react-error-boundary: + specifier: ^4.0.13 + version: 4.0.13(react@18.3.1) swagger-ui-dist: specifier: ^5.17.10 version: 5.17.10 @@ -5770,7 +5773,7 @@ packages: resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==} dependencies: '@babel/helper-module-imports': 7.24.3 - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.5 '@emotion/hash': 0.9.1 '@emotion/memoize': 0.8.1 '@emotion/serialize': 1.1.4 @@ -19360,6 +19363,15 @@ packages: react-is: 18.1.0 dev: true + /react-error-boundary@4.0.13(react@18.3.1): + resolution: {integrity: sha512-b6PwbdSv8XeOSYvjt8LpgpKrZ0yGdtZokYwkwV2wlcZbxgopHX/hgPl5VgpnoVOWd868n1hktM8Qm4b+02MiLQ==} + peerDependencies: + react: '>=16.13.1' + dependencies: + '@babel/runtime': 7.24.5 + react: 18.3.1 + dev: false + /react-error-overlay@6.0.11: resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==} dev: false From 5c10b3e3524936610283b4044ddd01c73a22827f Mon Sep 17 00:00:00 2001 From: Wes Haggard Date: Mon, 17 Jun 2024 13:21:22 -0700 Subject: [PATCH 12/42] Removed unused macos variables (#1026) --- eng/pipelines/templates/variables/image.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/eng/pipelines/templates/variables/image.yml b/eng/pipelines/templates/variables/image.yml index f24cec2a17..52043d4209 100644 --- a/eng/pipelines/templates/variables/image.yml +++ b/eng/pipelines/templates/variables/image.yml @@ -3,8 +3,6 @@ variables: value: azsdk-pool-mms-ubuntu-2004-general - name: WINDOWSPOOL value: azsdk-pool-mms-win-2022-general - - name: MACPOOL - value: Azure Pipelines - name: LINUXVMIMAGE value: azsdk-pool-mms-ubuntu-2004-1espt @@ -12,13 +10,9 @@ variables: value: azsdk-pool-mms-ubuntu-2204-1espt - name: WINDOWSVMIMAGE value: azsdk-pool-mms-win-2022-1espt - - name: MACVMIMAGE - value: macos-11 # Values required for pool.os field in 1es pipeline templates - name: LINUXOS value: linux - name: WINDOWSOS value: windows - - name: MACOS - value: macOS From 45a958589445ebd05d27bcd83b59d2253899b964 Mon Sep 17 00:00:00 2001 From: Dapeng Zhang Date: Tue, 18 Jun 2024 14:47:00 +0800 Subject: [PATCH 13/42] add `tspNamespace` to `SdkModelType`, `SdkEnumType`, `SdkEnumValueType` and `SdkUnionType` (#1009) Fixes https://github.com/Azure/typespec-azure/issues/877 --- ...el-enum-and-enumvalue-2024-5-14-1-46-55.md | 8 ++++ .../src/interfaces.ts | 4 ++ .../src/types.ts | 13 ++++++ .../test/types/enum-types.test.ts | 31 +++++++++++-- .../test/types/model-types.test.ts | 43 ++++++++++++------- 5 files changed, 81 insertions(+), 18 deletions(-) create mode 100644 .chronus/changes/add-name-and-namespace-to-model-enum-and-enumvalue-2024-5-14-1-46-55.md diff --git a/.chronus/changes/add-name-and-namespace-to-model-enum-and-enumvalue-2024-5-14-1-46-55.md b/.chronus/changes/add-name-and-namespace-to-model-enum-and-enumvalue-2024-5-14-1-46-55.md new file mode 100644 index 0000000000..5ff84746d8 --- /dev/null +++ b/.chronus/changes/add-name-and-namespace-to-model-enum-and-enumvalue-2024-5-14-1-46-55.md @@ -0,0 +1,8 @@ +--- +# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking +changeKind: fix +packages: + - "@azure-tools/typespec-client-generator-core" +--- + +add `tspNamespace` to `SdkModelType`, `SdkEnumType`, `SdkEnumValueType` and `SdkUnionType` diff --git a/packages/typespec-client-generator-core/src/interfaces.ts b/packages/typespec-client-generator-core/src/interfaces.ts index 6f0c94818d..0810f32b26 100644 --- a/packages/typespec-client-generator-core/src/interfaces.ts +++ b/packages/typespec-client-generator-core/src/interfaces.ts @@ -247,6 +247,7 @@ export interface SdkNullableType extends SdkTypeBase { export interface SdkEnumType extends SdkTypeBase { kind: "enum"; name: string; + tspNamespace?: string; isGeneratedName: boolean; valueType: SdkBuiltInType; values: SdkEnumValueType[]; @@ -262,6 +263,7 @@ export interface SdkEnumType extends SdkTypeBase { export interface SdkEnumValueType extends SdkTypeBase { kind: "enumvalue"; name: string; + tspNamespace?: string; value: string | number; enumType: SdkEnumType; valueType: SdkBuiltInType; @@ -276,6 +278,7 @@ export interface SdkConstantType extends SdkTypeBase { export interface SdkUnionType extends SdkTypeBase { name: string; + tspNamespace?: string; isGeneratedName: boolean; kind: "union"; values: SdkType[]; @@ -287,6 +290,7 @@ export interface SdkModelType extends SdkTypeBase { kind: "model"; properties: SdkModelPropertyType[]; name: string; + tspNamespace?: string; /** * @deprecated This property is deprecated. Check the bitwise and value of UsageFlags.MultipartFormData and the `.usage` property on this model. */ diff --git a/packages/typespec-client-generator-core/src/types.ts b/packages/typespec-client-generator-core/src/types.ts index 64dbfe9e6d..18f9e7617f 100644 --- a/packages/typespec-client-generator-core/src/types.ts +++ b/packages/typespec-client-generator-core/src/types.ts @@ -10,6 +10,7 @@ import { IntrinsicType, Model, ModelProperty, + Namespace, NumericLiteral, Operation, Scalar, @@ -112,6 +113,13 @@ function getEncodeHelper(context: TCGCContext, type: Type, kind: string): string return kind; } +function getNamespaceHelper(ns: Namespace | undefined): string | undefined { + if (ns) { + return getNamespaceFullName(ns); + } + return undefined; +} + /** * Add format info onto an sdk type. Since the format decorator * decorates the ModelProperty, we add the format info onto the property's internal @@ -361,6 +369,7 @@ export function getSdkUnionWithDiagnostics( retval = { ...getSdkTypeBaseHelper(context, type, "union"), name: getLibraryName(context, type) || getGeneratedName(context, type), + tspNamespace: getNamespaceHelper(type.namespace), isGeneratedName: !type.name, values: nonNullOptions.map((x) => diagnostics.pipe(getClientTypeWithDiagnostics(context, x, operation)) @@ -543,6 +552,7 @@ export function getSdkModelWithDiagnostics( sdkType = { ...getSdkTypeBaseHelper(context, type, "model"), name: name, + tspNamespace: getNamespaceHelper(type.namespace), isGeneratedName: !type.name, description: docWrapper.description, details: docWrapper.details, @@ -663,6 +673,7 @@ export function getSdkEnum(context: TCGCContext, type: Enum, operation?: Operati sdkType = { ...getSdkTypeBaseHelper(context, type, "enum"), name: getLibraryName(context, type), + tspNamespace: getNamespaceHelper(type.namespace), isGeneratedName: false, description: docWrapper.description, details: docWrapper.details, @@ -696,6 +707,7 @@ function getSdkUnionEnumValues( values.push({ kind: "enumvalue", name: name ? name : `${member.value}`, + tspNamespace: enumType.tspNamespace, description: docWrapper.description, details: docWrapper.details, value: member.value, @@ -716,6 +728,7 @@ export function getSdkUnionEnum(context: TCGCContext, type: UnionEnum, operation sdkType = { ...getSdkTypeBaseHelper(context, type.union, "enum"), name, + tspNamespace: getNamespaceHelper(type.union.namespace), isGeneratedName: !type.union.name, description: docWrapper.description, details: docWrapper.details, diff --git a/packages/typespec-client-generator-core/test/types/enum-types.test.ts b/packages/typespec-client-generator-core/test/types/enum-types.test.ts index 3efdcf42a3..93b0e88180 100644 --- a/packages/typespec-client-generator-core/test/types/enum-types.test.ts +++ b/packages/typespec-client-generator-core/test/types/enum-types.test.ts @@ -43,6 +43,7 @@ describe("typespec-client-generator-core: enum types", () => { const sdkType = runner.context.experimental_sdkPackage.enums[0]; strictEqual(sdkType.isFixed, true); strictEqual(sdkType.name, "DaysOfWeekExtensibleEnum"); + strictEqual(sdkType.tspNamespace, "TestService"); strictEqual(sdkType.valueType.kind, "string"); strictEqual(sdkType.usage & UsageFlags.ApiVersionEnum, 0); // not a versioning enum strictEqual(sdkType.isUnionAsEnum, false); @@ -87,6 +88,7 @@ describe("typespec-client-generator-core: enum types", () => { const sdkType = runner.context.experimental_sdkPackage.enums[0]; strictEqual(sdkType.isFixed, true); strictEqual(sdkType.name, "Integers"); + strictEqual(sdkType.tspNamespace, "TestService"); strictEqual(sdkType.valueType.kind, "int32"); const values = sdkType.values; strictEqual(values.length, 5); @@ -121,6 +123,7 @@ describe("typespec-client-generator-core: enum types", () => { ok(sdkType); strictEqual(sdkType.isFixed, true); strictEqual(sdkType.name, "Floats"); + strictEqual(sdkType.tspNamespace, "TestService"); strictEqual(sdkType.valueType.kind, "float32"); const values = sdkType.values; strictEqual(values.length, 3); @@ -155,6 +158,7 @@ describe("typespec-client-generator-core: enum types", () => { const sdkType = runner.context.experimental_sdkPackage.enums[0]; strictEqual(sdkType.isFixed, false); strictEqual(sdkType.name, "Floats"); + strictEqual(sdkType.tspNamespace, "TestService"); strictEqual(sdkType.valueType.kind, "float"); const values = sdkType.values; strictEqual(values.length, 3); @@ -194,6 +198,8 @@ describe("typespec-client-generator-core: enum types", () => { const sdkType = runner.context.experimental_sdkPackage.enums[0]; ok(sdkType); strictEqual(sdkType.isFixed, false); + strictEqual(sdkType.name, "ExtendedEnum"); + strictEqual(sdkType.tspNamespace, "TestService"); strictEqual(sdkType.valueType.kind, "int32"); const values = sdkType.values; strictEqual(values.length, 3); @@ -239,6 +245,7 @@ describe("typespec-client-generator-core: enum types", () => { const sdkType = runnerWithCore.context.experimental_sdkPackage.enums[0]; strictEqual(sdkType.isFixed, true); strictEqual(sdkType.name, "DaysOfWeekFixedEnum"); + strictEqual(sdkType.tspNamespace, "My.Service"); strictEqual(sdkType.valueType.kind, "string"); const values = sdkType.values; strictEqual(values.length, 7); @@ -256,6 +263,7 @@ describe("typespec-client-generator-core: enum types", () => { deepStrictEqual(value.valueType, sdkType.valueType); } }); + it("enum access transitive closure", async () => { await runner.compileWithBuiltInService(` enum Integers { @@ -273,6 +281,7 @@ describe("typespec-client-generator-core: enum types", () => { strictEqual(runner.context.experimental_sdkPackage.enums[0].access, "internal"); }); + it("crossLanguageDefinitionId", async () => { await runner.compile(` @service({}) @@ -413,6 +422,7 @@ describe("typespec-client-generator-core: enum types", () => { const enumType = getClientType(runner.context, TestUnion); strictEqual(enumType.kind, "enum"); strictEqual(enumType.name, "TestUnionRename"); + strictEqual(enumType.tspNamespace, "N"); strictEqual(enumType.isUnionAsEnum, true); strictEqual(enumType.values[0].name, "ARename"); strictEqual(enumType.values[1].name, "BRename"); @@ -455,6 +465,7 @@ describe("typespec-client-generator-core: enum types", () => { const enumType = nullableType.type; strictEqual(enumType.kind, "enum"); strictEqual(enumType.name, "Test"); + strictEqual(enumType.tspNamespace, "N"); strictEqual(enumType.isUnionAsEnum, true); const values = enumType.values; strictEqual(values.length, 4); @@ -507,12 +518,14 @@ describe("typespec-client-generator-core: enum types", () => { strictEqual(unionType.kind, "union"); strictEqual(unionType.name, "Test"); + strictEqual(unionType.tspNamespace, "N"); const values = unionType.values; strictEqual(values.length, 3); const a = values[0] as SdkEnumType; - strictEqual(a.name, "A"); strictEqual(a.kind, "enum"); + strictEqual(a.name, "A"); + strictEqual(a.tspNamespace, "N"); strictEqual(a.isUnionAsEnum, true); strictEqual(a.values[0].name, "A1"); strictEqual(a.values[0].value, "A1"); @@ -520,15 +533,17 @@ describe("typespec-client-generator-core: enum types", () => { strictEqual(a.values[1].value, "A2"); const b = values[1] as SdkEnumType; - strictEqual(b.name, "B"); strictEqual(b.kind, "enum"); + strictEqual(b.name, "B"); + strictEqual(b.tspNamespace, "N"); strictEqual(b.isUnionAsEnum, true); strictEqual(b.values[0].name, "B"); strictEqual(b.values[0].value, "B"); const c = values[2] as SdkEnumType; - strictEqual(c.name, "C"); strictEqual(c.kind, "enum"); + strictEqual(c.name, "C"); + strictEqual(c.tspNamespace, "N"); strictEqual(c.isUnionAsEnum, false); strictEqual(c.values[0].name, "C"); strictEqual(c.values[0].value, "C"); @@ -560,6 +575,7 @@ describe("typespec-client-generator-core: enum types", () => { const modelType = getClientType(runner.context, Test) as SdkModelType; const enumType = modelType.properties[0].type as SdkEnumType; strictEqual(enumType.name, "TestColor"); + strictEqual(enumType.tspNamespace, undefined); // implicitly defined union does not have a namespace strictEqual(enumType.isGeneratedName, true); strictEqual(enumType.isUnionAsEnum, true); // no cross language def id bc it's not a defined object in tsp @@ -609,16 +625,19 @@ describe("typespec-client-generator-core: enum types", () => { const modelType = getClientType(runner.context, Test) as SdkModelType; const unionType = modelType.properties[0].type as SdkUnionType; strictEqual(unionType.name, "TestColor"); + strictEqual(unionType.tspNamespace, undefined); // implicitly defined union does not have a namespace strictEqual(unionType.isGeneratedName, true); const values = unionType.values; const lr = values[0] as SdkEnumType; strictEqual(lr.name, "LR"); + strictEqual(lr.tspNamespace, "N"); strictEqual(lr.isUnionAsEnum, false); strictEqual(lr.values[0].name, "left"); strictEqual(lr.values[1].name, "right"); strictEqual(lr.isFixed, true); const ud = values[1] as SdkEnumType; strictEqual(ud.name, "UD"); + strictEqual(ud.tspNamespace, "N"); strictEqual(ud.isUnionAsEnum, false); strictEqual(ud.values[0].name, "up"); strictEqual(ud.values[1].name, "down"); @@ -641,6 +660,7 @@ describe("typespec-client-generator-core: enum types", () => { const enums = runner.context.experimental_sdkPackage.enums; strictEqual(enums.length, 1); strictEqual(enums[0].name, "Versions"); + strictEqual(enums[0].tspNamespace, "DemoService"); strictEqual(enums[0].usage, UsageFlags.ApiVersionEnum); deepStrictEqual( enums[0].values.map((x) => x.value), @@ -669,6 +689,7 @@ describe("typespec-client-generator-core: enum types", () => { const enums = runnerWithVersion.context.experimental_sdkPackage.enums; strictEqual(enums.length, 1); strictEqual(enums[0].name, "Versions"); + strictEqual(enums[0].tspNamespace, "DemoService"); strictEqual(enums[0].usage, UsageFlags.ApiVersionEnum); deepStrictEqual( enums[0].values.map((x) => x.value), @@ -697,6 +718,7 @@ describe("typespec-client-generator-core: enum types", () => { const enums = runnerWithVersion.context.experimental_sdkPackage.enums; strictEqual(enums.length, 1); strictEqual(enums[0].name, "Versions"); + strictEqual(enums[0].tspNamespace, "DemoService"); strictEqual(enums[0].usage, UsageFlags.ApiVersionEnum); deepStrictEqual( enums[0].values.map((x) => x.value), @@ -725,6 +747,7 @@ describe("typespec-client-generator-core: enum types", () => { const enums = runnerWithVersion.context.experimental_sdkPackage.enums; strictEqual(enums.length, 1); strictEqual(enums[0].name, "Versions"); + strictEqual(enums[0].tspNamespace, "DemoService"); strictEqual(enums[0].usage, UsageFlags.ApiVersionEnum); deepStrictEqual( enums[0].values.map((x) => x.value), @@ -758,8 +781,10 @@ describe("typespec-client-generator-core: enum types", () => { const enums = runner.context.experimental_sdkPackage.enums; strictEqual(enums.length, 2); strictEqual(enums[0].name, "LR"); + strictEqual(enums[0].tspNamespace, "N"); strictEqual(enums[0].usage, UsageFlags.Input); strictEqual(enums[1].name, "UD"); + strictEqual(enums[1].tspNamespace, "N"); strictEqual(enums[1].usage, UsageFlags.Input); }); }); diff --git a/packages/typespec-client-generator-core/test/types/model-types.test.ts b/packages/typespec-client-generator-core/test/types/model-types.test.ts index 0b0ad796b4..bcd952ff53 100644 --- a/packages/typespec-client-generator-core/test/types/model-types.test.ts +++ b/packages/typespec-client-generator-core/test/types/model-types.test.ts @@ -142,6 +142,7 @@ describe("typespec-client-generator-core: model types", () => { const recursiveModel = models[0]; strictEqual(recursiveModel.name, "RecursiveModel"); strictEqual(recursiveModel.kind, "model"); + strictEqual(recursiveModel.tspNamespace, "TestService"); strictEqual(recursiveModel.properties.length, 1); const prop = recursiveModel.properties[0]; strictEqual(prop.kind, "property"); @@ -690,6 +691,7 @@ describe("typespec-client-generator-core: model types", () => { const models = runnerWithCore.context.experimental_sdkPackage.models; strictEqual(models.length, 1); strictEqual(models[0].name, "User"); + strictEqual(models[0].tspNamespace, "My.Service"); }); it("filterOutCoreModels false", async () => { @@ -715,10 +717,18 @@ describe("typespec-client-generator-core: model types", () => { @doc("Creates or updates a User") op createOrUpdate is StandardResourceOperations.ResourceCreateOrUpdate; `); - const models = runnerWithCore.context.experimental_sdkPackage.models; + const models = runnerWithCore.context.experimental_sdkPackage.models.sort((a, b) => + a.name.localeCompare(b.name) + ); strictEqual(models.length, 4); - const modelNames = models.map((model) => model.name).sort(); - deepStrictEqual(modelNames, ["Error", "ErrorResponse", "InnerError", "User"].sort()); + strictEqual(models[0].name, "Error"); + strictEqual(models[0].tspNamespace, "Azure.Core.Foundations"); + strictEqual(models[1].name, "ErrorResponse"); + strictEqual(models[1].tspNamespace, "Azure.Core.Foundations"); + strictEqual(models[2].name, "InnerError"); + strictEqual(models[2].tspNamespace, "Azure.Core.Foundations"); + strictEqual(models[3].name, "User"); + strictEqual(models[3].tspNamespace, "My.Service"); }); it("lro core filterOutCoreModels true", async () => { @@ -747,6 +757,7 @@ describe("typespec-client-generator-core: model types", () => { const models = runnerWithCore.context.experimental_sdkPackage.models; strictEqual(models.length, 1); strictEqual(models[0].name, "User"); + strictEqual(models[0].tspNamespace, "My.Service"); }); it("lro core filterOutCoreModels false", async () => { @@ -773,19 +784,20 @@ describe("typespec-client-generator-core: model types", () => { @pollingOperation(My.Service.getStatus) op createOrUpdateUser is StandardResourceOperations.LongRunningResourceCreateOrUpdate; `); - const models = runnerWithCore.context.experimental_sdkPackage.models; - strictEqual(models.length, 5); - const modelNames = models.map((model) => model.name).sort(); - deepStrictEqual( - modelNames, - [ - "Error", - "ErrorResponse", - "InnerError", - "User", - "ResourceOperationStatusUserUserError", - ].sort() + const models = runnerWithCore.context.experimental_sdkPackage.models.sort((a, b) => + a.name.localeCompare(b.name) ); + strictEqual(models.length, 5); + strictEqual(models[0].name, "Error"); + strictEqual(models[0].tspNamespace, "Azure.Core.Foundations"); + strictEqual(models[1].name, "ErrorResponse"); + strictEqual(models[1].tspNamespace, "Azure.Core.Foundations"); + strictEqual(models[2].name, "InnerError"); + strictEqual(models[2].tspNamespace, "Azure.Core.Foundations"); + strictEqual(models[3].name, "ResourceOperationStatusUserUserError"); + strictEqual(models[3].tspNamespace, "Azure.Core"); + strictEqual(models[4].name, "User"); + strictEqual(models[4].tspNamespace, "My.Service"); strictEqual(runnerWithCore.context.experimental_sdkPackage.enums.length, 1); strictEqual(runnerWithCore.context.experimental_sdkPackage.enums[0].name, "OperationState"); }); @@ -1325,6 +1337,7 @@ describe("typespec-client-generator-core: model types", () => { const models = runner.context.experimental_sdkPackage.models; strictEqual(models.length, 1); strictEqual(models[0].name, "Model1"); + strictEqual(models[0].tspNamespace, "MyService"); strictEqual(models[0].usage, UsageFlags.Input | UsageFlags.Output); }); From 0a349d2c1c2d54c39d79e4e9ac79deb9d8160589 Mon Sep 17 00:00:00 2001 From: Dapeng Zhang Date: Tue, 18 Jun 2024 16:12:45 +0800 Subject: [PATCH 14/42] Add `name` and `tspNamespace` to `SdkArrayType` (#1000) Fixes https://github.com/Azure/typespec-azure/issues/999 This PR adds name and namespace to `SdkArrayType` so that we could know if this array is an ordinary array, or an array created somewhere which needs special handling on the SDK generator side. --------- Co-authored-by: Haoling Dong <87355844+haolingdong-msft@users.noreply.github.com> --- ...nd-namespace-to-array-2024-5-13-1-59-45.md | 8 ++ .../src/interfaces.ts | 2 + .../src/types.ts | 6 +- .../test/types/array-types.test.ts | 77 ++++++++++++++++--- 4 files changed, 82 insertions(+), 11 deletions(-) create mode 100644 .chronus/changes/add-name-and-namespace-to-array-2024-5-13-1-59-45.md diff --git a/.chronus/changes/add-name-and-namespace-to-array-2024-5-13-1-59-45.md b/.chronus/changes/add-name-and-namespace-to-array-2024-5-13-1-59-45.md new file mode 100644 index 0000000000..4ae3dc76d1 --- /dev/null +++ b/.chronus/changes/add-name-and-namespace-to-array-2024-5-13-1-59-45.md @@ -0,0 +1,8 @@ +--- +# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking +changeKind: feature +packages: + - "@azure-tools/typespec-client-generator-core" +--- + +Add `name` and `tspNamespace` to `SdkArrayType` diff --git a/packages/typespec-client-generator-core/src/interfaces.ts b/packages/typespec-client-generator-core/src/interfaces.ts index 0810f32b26..d0e015161f 100644 --- a/packages/typespec-client-generator-core/src/interfaces.ts +++ b/packages/typespec-client-generator-core/src/interfaces.ts @@ -225,6 +225,8 @@ export interface SdkDurationType extends SdkTypeBase { export interface SdkArrayType extends SdkTypeBase { kind: "array"; + name: string; + tspNamespace?: string; valueType: SdkType; } diff --git a/packages/typespec-client-generator-core/src/types.ts b/packages/typespec-client-generator-core/src/types.ts index 18f9e7617f..76489d382e 100644 --- a/packages/typespec-client-generator-core/src/types.ts +++ b/packages/typespec-client-generator-core/src/types.ts @@ -292,13 +292,15 @@ export function getSdkArrayOrDictWithDiagnostics( keyType: diagnostics.pipe( getClientTypeWithDiagnostics(context, type.indexer.key, operation) ), - valueType, + valueType: valueType, }); } else if (name === "integer") { // only array's index key name is integer return diagnostics.wrap({ ...getSdkTypeBaseHelper(context, type, "array"), - valueType, + name: getLibraryName(context, type), + tspNamespace: getNamespaceHelper(type.namespace), + valueType: valueType, }); } } diff --git a/packages/typespec-client-generator-core/test/types/array-types.test.ts b/packages/typespec-client-generator-core/test/types/array-types.test.ts index 34461e903e..87f5efc9db 100644 --- a/packages/typespec-client-generator-core/test/types/array-types.test.ts +++ b/packages/typespec-client-generator-core/test/types/array-types.test.ts @@ -1,3 +1,4 @@ +import { AzureCoreTestLibrary } from "@azure-tools/typespec-azure-core/testing"; import { ok, strictEqual } from "assert"; import { beforeEach, describe, it } from "vitest"; import { SdkTestRunner, createSdkTestRunner } from "../test-host.js"; @@ -11,16 +12,16 @@ describe("typespec-client-generator-core: array types", () => { it("use model is to represent array", async () => { await runner.compile(` - @service({}) - namespace TestClient { - model TestModel { - prop: string; - } - model TestArray is TestModel[]; - - op get(): TestArray; + @service({}) + namespace TestClient { + model TestModel { + prop: string; } - `); + model TestArray is TestModel[]; + + op get(): TestArray; + } + `); const models = runner.context.experimental_sdkPackage.models; strictEqual(models.length, 1); const model = models[0]; @@ -32,7 +33,65 @@ describe("typespec-client-generator-core: array types", () => { ok(method); strictEqual(method.response.kind, "method"); strictEqual(method.response.type?.kind, "array"); + strictEqual(method.response.type?.name, "TestArray"); + strictEqual(method.response.type?.tspNamespace, "TestClient"); strictEqual(method.response.type?.valueType.kind, "model"); strictEqual(method.response.type?.valueType.name, "TestModel"); }); + + it("EmbeddingVector from azure-core", async () => { + const runnerWithCore = await createSdkTestRunner({ + librariesToAdd: [AzureCoreTestLibrary], + autoUsings: ["Azure.Core"], + "filter-out-core-models": false, + emitterName: "@azure-tools/typespec-java", + }); + await runnerWithCore.compileWithBuiltInAzureCoreService(` + @service({}) + namespace TestClient { + model ModelWithEmbeddingVector { + prop: EmbeddingVector; + } + + op get(): ModelWithEmbeddingVector; + } + `); + const models = runnerWithCore.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + const model = models[0]; + const property = model.properties[0]; + strictEqual(property.type.kind, "array"); + strictEqual(property.type.name, "EmbeddingVector"); + strictEqual(property.type.tspNamespace, "Azure.Core"); + strictEqual(property.type.valueType.kind, "int32"); + }); + + it("alias of EmbeddingVector", async () => { + const runnerWithCore = await createSdkTestRunner({ + librariesToAdd: [AzureCoreTestLibrary], + autoUsings: ["Azure.Core"], + "filter-out-core-models": false, + emitterName: "@azure-tools/typespec-java", + }); + await runnerWithCore.compileWithBuiltInAzureCoreService(` + @service({}) + namespace TestClient { + alias MyEmbeddingVector = EmbeddingVector; + + model ModelWithEmbeddingVector { + prop: MyEmbeddingVector; + } + + op get(): ModelWithEmbeddingVector; + } + `); + const models = runnerWithCore.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + const model = models[0]; + const property = model.properties[0]; + strictEqual(property.type.kind, "array"); + strictEqual(property.type.name, "EmbeddingVector"); + strictEqual(property.type.tspNamespace, "Azure.Core"); + strictEqual(property.type.valueType.kind, "int32"); + }); }); From 1e14af848ac820d50e717e5c5dc94b2819780ec0 Mon Sep 17 00:00:00 2001 From: Wei Hu Date: Wed, 19 Jun 2024 07:57:29 +0800 Subject: [PATCH 15/42] Set armId kind for Azure.Core.armResourceIdentifier (#1032) resolves https://github.com/Azure/typespec-azure/issues/1031 --- .../changes/fix-arm-id-2024-5-18-17-30-45.md | 7 +++++ .../src/interfaces.ts | 26 ++++++++++--------- .../test/types/built-in-types.test.ts | 23 ++++++++++++++++ 3 files changed, 44 insertions(+), 12 deletions(-) create mode 100644 .chronus/changes/fix-arm-id-2024-5-18-17-30-45.md diff --git a/.chronus/changes/fix-arm-id-2024-5-18-17-30-45.md b/.chronus/changes/fix-arm-id-2024-5-18-17-30-45.md new file mode 100644 index 0000000000..2fc7f1c9e8 --- /dev/null +++ b/.chronus/changes/fix-arm-id-2024-5-18-17-30-45.md @@ -0,0 +1,7 @@ +--- +changeKind: fix +packages: + - "@azure-tools/typespec-client-generator-core" +--- + +Fix armId not set for scalar type armResourceIdentifier. \ No newline at end of file diff --git a/packages/typespec-client-generator-core/src/interfaces.ts b/packages/typespec-client-generator-core/src/interfaces.ts index d0e015161f..d881004582 100644 --- a/packages/typespec-client-generator-core/src/interfaces.ts +++ b/packages/typespec-client-generator-core/src/interfaces.ts @@ -128,14 +128,14 @@ enum SdkFloatKindsEnum { decimal128 = "decimal128", } -enum SdkAzureBuiltInStringKindsEnum { - uuid = "uuid", - ipV4Address = "ipV4Address", - ipV6Address = "ipV6Address", - eTag = "eTag", - armId = "armId", - azureLocation = "azureLocation", -} +const SdkAzureBuiltInStringKindsMapping = { + uuid: "uuid", + ipV4Address: "ipV4Address", + ipV6Address: "ipV6Address", + eTag: "eTag", + armId: "armResourceIdentifier", + azureLocation: "azureLocation", +}; enum SdkGenericBuiltInStringKindsEnum { string = "string", @@ -159,7 +159,7 @@ export type SdkBuiltInKinds = | keyof typeof SdkIntKindsEnum | keyof typeof SdkFloatKindsEnum | keyof typeof SdkGenericBuiltInStringKindsEnum - | keyof typeof SdkAzureBuiltInStringKindsEnum; + | keyof typeof SdkAzureBuiltInStringKindsMapping; export function getKnownScalars(): Record { const retval: Record = {}; @@ -171,9 +171,11 @@ export function getKnownScalars(): Record { if (!isSdkBuiltInKind(kind)) continue; // it will always be true retval[`TypeSpec.${kind}`] = kind; } - for (const kind in SdkAzureBuiltInStringKindsEnum) { + for (const kind in SdkAzureBuiltInStringKindsMapping) { if (!isSdkBuiltInKind(kind)) continue; // it will always be true - retval[`Azure.Core.${kind}`] = kind; + const kindMappedName = + SdkAzureBuiltInStringKindsMapping[kind as keyof typeof SdkAzureBuiltInStringKindsMapping]; + retval[`Azure.Core.${kindMappedName}`] = kind; } return retval; } @@ -184,7 +186,7 @@ export function isSdkBuiltInKind(kind: string): kind is SdkBuiltInKinds { isSdkIntKind(kind) || isSdkFloatKind(kind) || kind in SdkGenericBuiltInStringKindsEnum || - kind in SdkAzureBuiltInStringKindsEnum + kind in SdkAzureBuiltInStringKindsMapping ); } diff --git a/packages/typespec-client-generator-core/test/types/built-in-types.test.ts b/packages/typespec-client-generator-core/test/types/built-in-types.test.ts index 83f2edea35..f988927051 100644 --- a/packages/typespec-client-generator-core/test/types/built-in-types.test.ts +++ b/packages/typespec-client-generator-core/test/types/built-in-types.test.ts @@ -122,6 +122,29 @@ describe("typespec-client-generator-core: built-in types", () => { strictEqual(sdkType.valueType.encode, "base64url"); }); + it("armId from Core", async function () { + const runnerWithCore = await createSdkTestRunner({ + librariesToAdd: [AzureCoreTestLibrary], + autoUsings: ["Azure.Core"], + emitterName: "@azure-tools/typespec-java", + }); + await runnerWithCore.compileWithBuiltInAzureCoreService( + ` + @usage(Usage.input | Usage.output) + @access(Access.public) + model Test { + id: Azure.Core.armResourceIdentifier<[ + { + type: "Microsoft.Test/test"; + } + ]>; + } + ` + ); + const models = runnerWithCore.context.experimental_sdkPackage.models; + strictEqual(models[0].properties[0].type.kind, "armId"); + }); + it("format", async function () { const runnerWithCore = await createSdkTestRunner({ librariesToAdd: [AzureCoreTestLibrary], From eae81f82cd62e3b45179980c14aa6744a1a20ee1 Mon Sep 17 00:00:00 2001 From: Chenjie Shi Date: Fri, 21 Jun 2024 03:10:02 +0800 Subject: [PATCH 16/42] [tcgc] only expose top level client in SdkPackage (#1033) resolve: https://github.com/Azure/typespec-azure/issues/1040 --- .../client_hierarchy-2024-5-18-18-19-30.md | 7 +++ .../src/interfaces.ts | 1 - .../src/package.ts | 7 +-- .../test/decorators.test.ts | 13 ++++- .../test/package.test.ts | 55 ++++++++++++------- .../test/types/multipart-types.test.ts | 7 ++- 6 files changed, 58 insertions(+), 32 deletions(-) create mode 100644 .chronus/changes/client_hierarchy-2024-5-18-18-19-30.md diff --git a/.chronus/changes/client_hierarchy-2024-5-18-18-19-30.md b/.chronus/changes/client_hierarchy-2024-5-18-18-19-30.md new file mode 100644 index 0000000000..e0e79f7795 --- /dev/null +++ b/.chronus/changes/client_hierarchy-2024-5-18-18-19-30.md @@ -0,0 +1,7 @@ +--- +changeKind: breaking +packages: + - "@azure-tools/typespec-client-generator-core" +--- + +only expose top level client in `SdkPackage` \ No newline at end of file diff --git a/packages/typespec-client-generator-core/src/interfaces.ts b/packages/typespec-client-generator-core/src/interfaces.ts index d881004582..d3fa82fb26 100644 --- a/packages/typespec-client-generator-core/src/interfaces.ts +++ b/packages/typespec-client-generator-core/src/interfaces.ts @@ -26,7 +26,6 @@ export interface SdkContext< > extends TCGCContext { emitContext: EmitContext; experimental_sdkPackage: SdkPackage; - __clients?: SdkClientType[]; } export interface SdkEmitterOptions { diff --git a/packages/typespec-client-generator-core/src/package.ts b/packages/typespec-client-generator-core/src/package.ts index 899a968724..1813422ca2 100644 --- a/packages/typespec-client-generator-core/src/package.ts +++ b/packages/typespec-client-generator-core/src/package.ts @@ -573,7 +573,6 @@ function createSdkClientType< // eslint-disable-next-line deprecation/deprecation arm: client.kind === "SdkClient" ? client.arm : false, }; - context.__clients!.push(sdkClientType); return diagnostics.wrap(sdkClientType); } @@ -613,17 +612,13 @@ export function getSdkPackage< TServiceOperation extends SdkServiceOperation, >(context: SdkContext): SdkPackage { const diagnostics = createDiagnosticCollector(); - context.__clients = new Array>(); populateApiVersionInformation(context); const modelsAndEnums = diagnostics.pipe(getAllModelsWithDiagnostics(context)); - for (const client of listClients(context)) { - createSdkClientType(context, client); - } const crossLanguagePackageId = diagnostics.pipe(getCrossLanguagePackageId(context)); return { name: getClientNamespaceString(context)!, rootNamespace: getClientNamespaceString(context)!, - clients: Array.from(context.__clients.values()), + clients: listClients(context).map((c) => diagnostics.pipe(createSdkClientType(context, c))), models: modelsAndEnums.filter((x): x is SdkModelType => x.kind === "model"), enums: modelsAndEnums.filter((x): x is SdkEnumType => x.kind === "enum"), diagnostics: diagnostics.diagnostics, diff --git a/packages/typespec-client-generator-core/test/decorators.test.ts b/packages/typespec-client-generator-core/test/decorators.test.ts index 9ebc95ff40..c9a55d64da 100644 --- a/packages/typespec-client-generator-core/test/decorators.test.ts +++ b/packages/typespec-client-generator-core/test/decorators.test.ts @@ -21,7 +21,13 @@ import { shouldGenerateConvenient, shouldGenerateProtocol, } from "../src/decorators.js"; -import { SdkMethodResponse, SdkOperationGroup, UsageFlags } from "../src/interfaces.js"; +import { + SdkClientType, + SdkHttpOperation, + SdkMethodResponse, + SdkOperationGroup, + UsageFlags, +} from "../src/interfaces.js"; import { getCrossLanguageDefinitionId, getCrossLanguagePackageId } from "../src/public-utils.js"; import { getAllModels } from "../src/types.js"; import { SdkTestRunner, createSdkContextTestHelper, createSdkTestRunner } from "./test-host.js"; @@ -3284,7 +3290,7 @@ describe("typespec-client-generator-core: decorators", () => { ` ); const sdkPackage = runner.context.experimental_sdkPackage; - strictEqual(sdkPackage.clients.length, 2); + strictEqual(sdkPackage.clients.length, 1); const versioningClient = sdkPackage.clients.find((x) => x.name === "VersioningClient"); ok(versioningClient); strictEqual(versioningClient.methods.length, 2); @@ -3306,7 +3312,8 @@ describe("typespec-client-generator-core: decorators", () => { strictEqual(clientAccessor.name, "getInterfaceV2"); deepStrictEqual(clientAccessor.apiVersions, ["v2"]); - const interfaceV2 = sdkPackage.clients.find((x) => x.name === "InterfaceV2"); + const interfaceV2 = versioningClient.methods.find((x) => x.kind === "clientaccessor") + ?.response as SdkClientType; ok(interfaceV2); strictEqual(interfaceV2.methods.length, 1); diff --git a/packages/typespec-client-generator-core/test/package.test.ts b/packages/typespec-client-generator-core/test/package.test.ts index b9ec33b86b..fcdff655f0 100644 --- a/packages/typespec-client-generator-core/test/package.test.ts +++ b/packages/typespec-client-generator-core/test/package.test.ts @@ -4,6 +4,7 @@ import { ApiKeyAuth, OAuth2Flow, Oauth2Auth } from "@typespec/http"; import { deepStrictEqual, ok, strictEqual } from "assert"; import { beforeEach, describe, it } from "vitest"; import { + SdkClientType, SdkCredentialParameter, SdkCredentialType, SdkEndpointParameter, @@ -577,10 +578,11 @@ describe("typespec-client-generator-core: package", () => { } `); const sdkPackage = runner.context.experimental_sdkPackage; - strictEqual(sdkPackage.clients.length, 2); + strictEqual(sdkPackage.clients.length, 1); const mainClient = sdkPackage.clients.find((c) => c.name === "TestServiceClient"); - const operationGroup = sdkPackage.clients.find((c) => c.name === "MyOperationGroup"); + const operationGroup = mainClient?.methods.find((c) => c.kind === "clientaccessor") + ?.response as SdkClientType; ok(mainClient && operationGroup); strictEqual(mainClient.methods.length, 1); @@ -620,12 +622,17 @@ describe("typespec-client-generator-core: package", () => { } `); const sdkPackage = runner.context.experimental_sdkPackage; - strictEqual(sdkPackage.clients.length, 4); + strictEqual(sdkPackage.clients.length, 1); - const mainClient = sdkPackage.clients.find((c) => c.name === "TestServiceClient"); - const fooClient = sdkPackage.clients.find((c) => c.name === "Foo"); - const fooBarClient = sdkPackage.clients.filter((c) => c.name === "Bar")![0]; - const barClient = sdkPackage.clients.filter((c) => c.name === "Bar")![1]; + const mainClient = sdkPackage.clients[0]; + const fooClient = mainClient.methods.find( + (m) => m.kind === "clientaccessor" && m.name === "getFoo" + )?.response as SdkClientType; + const fooBarClient = fooClient.methods.find((m) => m.kind === "clientaccessor") + ?.response as SdkClientType; + const barClient = mainClient.methods.find( + (m) => m.kind === "clientaccessor" && m.name === "getBar" + )?.response as SdkClientType; ok(mainClient && fooClient && fooBarClient && barClient); strictEqual(mainClient.methods.length, 2); @@ -2449,12 +2456,11 @@ describe("typespec-client-generator-core: package", () => { ` ); const sdkPackage = runnerWithCore.context.experimental_sdkPackage; - strictEqual(sdkPackage.clients.length, 2); - const client = sdkPackage.clients.find((c) => c.initialization.access === "internal"); + strictEqual(sdkPackage.clients.length, 1); + const parentClient = sdkPackage.clients[0]; + const client = parentClient.methods.find((x) => x.kind === "clientaccessor") + ?.response as SdkClientType; ok(client); - const parentClient = sdkPackage.clients.filter( - (c) => c.initialization.access === "public" - )[0]; strictEqual(client.methods.length, 2); // TEST GET STATUS @@ -2671,10 +2677,11 @@ describe("typespec-client-generator-core: package", () => { ` ); const sdkPackage = runnerWithCore.context.experimental_sdkPackage; - strictEqual(sdkPackage.clients.length, 2); + strictEqual(sdkPackage.clients.length, 1); strictEqual(sdkPackage.models.length, 1); strictEqual(sdkPackage.models[0].name, "Manufacturer"); - const widgetClient = sdkPackage.clients.find((c) => c.name === "Widgets"); + const widgetClient = sdkPackage.clients[0].methods.find((x) => x.kind === "clientaccessor") + ?.response as SdkClientType; ok(widgetClient); strictEqual(widgetClient.initialization.properties.length, 3); strictEqual(widgetClient.initialization.access, "internal"); @@ -2953,7 +2960,9 @@ describe("typespec-client-generator-core: package", () => { sdkPackage.models.map((x) => x.name).sort(), ["CheckupCollectionWithNextLink", "Checkup", "PetStoreError", "CheckupUpdate"].sort() ); - const createOrUpdate = sdkPackage.clients[0].methods[0]; + const client = sdkPackage.clients[0].methods.find((x) => x.kind === "clientaccessor") + ?.response as SdkClientType; + const createOrUpdate = client.methods[0]; strictEqual(createOrUpdate.kind, "basic"); strictEqual(createOrUpdate.name, "createOrUpdate"); strictEqual(createOrUpdate.parameters.length, 5); @@ -3048,7 +3057,10 @@ describe("typespec-client-generator-core: package", () => { const sdkPackage = runnerWithCore.context.experimental_sdkPackage; strictEqual(sdkPackage.models.length, 2); - const createOrReplace = sdkPackage.clients[0].methods[1]; + const client = sdkPackage.clients[0].methods.find((x) => x.kind === "clientaccessor") + ?.response as SdkClientType; + + const createOrReplace = client.methods[1]; strictEqual(createOrReplace.kind, "basic"); strictEqual(createOrReplace.name, "createOrReplaceDataConnection"); strictEqual(createOrReplace.parameters.length, 5); @@ -3215,7 +3227,9 @@ describe("typespec-client-generator-core: package", () => { `); const sdkPackage = runner.context.experimental_sdkPackage; - strictEqual(sdkPackage.clients[0].methods[0].parameters[0].clientDefaultValue, "v2"); + const client = sdkPackage.clients[0].methods.find((x) => x.kind === "clientaccessor") + ?.response as SdkClientType; + strictEqual(client.methods[0].parameters[0].clientDefaultValue, "v2"); }); it("default api version for operation is", async () => { @@ -3350,9 +3364,10 @@ function getServiceMethodOfClient( numMethods: number = 1, methodIndex: number = 0 ): SdkServiceMethod { - let client = sdkPackage.clients.filter((c) => c.initialization.access === "internal")[0]; - if (!client) { - client = sdkPackage.clients.filter((c) => c.initialization.access === "public")[0]; + let client = sdkPackage.clients[0]; + if (client.methods.some((x) => x.kind === "clientaccessor")) { + client = client.methods.find((x) => x.kind === "clientaccessor") + ?.response as SdkClientType; } strictEqual(client.methods.length, numMethods); const method = client.methods[methodIndex]; diff --git a/packages/typespec-client-generator-core/test/types/multipart-types.test.ts b/packages/typespec-client-generator-core/test/types/multipart-types.test.ts index f4734e744f..cd6ea53e17 100644 --- a/packages/typespec-client-generator-core/test/types/multipart-types.test.ts +++ b/packages/typespec-client-generator-core/test/types/multipart-types.test.ts @@ -2,7 +2,7 @@ import { expectDiagnostics } from "@typespec/compiler/testing"; import { ok, strictEqual } from "assert"; import { beforeEach, describe, it } from "vitest"; -import { UsageFlags } from "../../src/interfaces.js"; +import { SdkClientType, SdkHttpOperation, UsageFlags } from "../../src/interfaces.js"; import { getAllModelsWithDiagnostics } from "../../src/types.js"; import { SdkTestRunner, createSdkTestRunner } from "../test-host.js"; @@ -208,7 +208,10 @@ describe("typespec-client-generator-core: multipart types", () => { upload(...WidgetForm): Widget; } `); - const formDataMethod = runner.context.experimental_sdkPackage.clients[0].methods[0]; + const client = runner.context.experimental_sdkPackage.clients[0].methods.find( + (x) => x.kind === "clientaccessor" + )?.response as SdkClientType; + const formDataMethod = client.methods[0]; strictEqual(formDataMethod.kind, "basic"); strictEqual(formDataMethod.name, "upload"); strictEqual(formDataMethod.parameters.length, 3); From 0b1afda6a4531f1e0e458e34538958f890129810 Mon Sep 17 00:00:00 2001 From: iscai-msft <43154838+iscai-msft@users.noreply.github.com> Date: Thu, 20 Jun 2024 16:45:03 -0400 Subject: [PATCH 17/42] [tcgc] allow csv list of scopes (#1038) fixes #978 --------- Co-authored-by: iscai-msft Co-authored-by: tadelesh --- ..._with_detailed_access-2024-5-18-18-9-31.md | 7 ++ .../src/decorators.ts | 18 +++-- .../test/decorators.test.ts | 77 +++++++++++++++++++ 3 files changed, 96 insertions(+), 6 deletions(-) create mode 100644 .chronus/changes/override_with_detailed_access-2024-5-18-18-9-31.md diff --git a/.chronus/changes/override_with_detailed_access-2024-5-18-18-9-31.md b/.chronus/changes/override_with_detailed_access-2024-5-18-18-9-31.md new file mode 100644 index 0000000000..011fa1140a --- /dev/null +++ b/.chronus/changes/override_with_detailed_access-2024-5-18-18-9-31.md @@ -0,0 +1,7 @@ +--- +changeKind: feature +packages: + - "@azure-tools/typespec-client-generator-core" +--- + +add support for list of scopes \ No newline at end of file diff --git a/packages/typespec-client-generator-core/src/decorators.ts b/packages/typespec-client-generator-core/src/decorators.ts index 20886a50c5..6f87c42dae 100644 --- a/packages/typespec-client-generator-core/src/decorators.ts +++ b/packages/typespec-client-generator-core/src/decorators.ts @@ -75,25 +75,31 @@ function setScopedDecoratorData( transitivity: boolean = false ): boolean { const targetEntry = context.program.stateMap(key).get(target); + const splitScopes = scope?.split(",").map((s) => s.trim()) || [AllScopes]; + // If target doesn't exist in decorator map, create a new entry if (!targetEntry) { - // value is going to be a list of tuples, each tuple is a value and a list of scopes - context.program.stateMap(key).set(target, { [scope ?? AllScopes]: value }); + const newObject = Object.fromEntries(splitScopes.map((scope) => [scope, value])); + context.program.stateMap(key).set(target, newObject); return true; } // If target exists, but there's a specified scope and it doesn't exist in the target entry, add mapping of scope and value to target entry const scopes = Reflect.ownKeys(targetEntry); - if (!scopes.includes(AllScopes) && scope && !scopes.includes(scope)) { - targetEntry[scope] = value; + if (!scopes.includes(AllScopes) && scope && !splitScopes.some((s) => scopes.includes(s))) { + const newObject = Object.fromEntries(splitScopes.map((scope) => [scope, value])); + context.program.stateMap(key).set(target, { ...targetEntry, ...newObject }); return true; } + // we only want to allow multiple decorators if they each specify a different scope if (!transitivity) { validateDecoratorUniqueOnNode(context, target, decorator); return false; } - if (!Reflect.ownKeys(targetEntry).includes(AllScopes) && !scope) { - context.program.stateMap(key).set(target, { AllScopes: value }); + // for transitivity situation, we could allow scope extension + if (!scopes.includes(AllScopes) && !scope) { + const newObject = Object.fromEntries(splitScopes.map((scope) => [scope, value])); + context.program.stateMap(key).set(target, { ...targetEntry, ...newObject }); } return false; } diff --git a/packages/typespec-client-generator-core/test/decorators.test.ts b/packages/typespec-client-generator-core/test/decorators.test.ts index c9a55d64da..a0e2bbfa18 100644 --- a/packages/typespec-client-generator-core/test/decorators.test.ts +++ b/packages/typespec-client-generator-core/test/decorators.test.ts @@ -1543,6 +1543,7 @@ describe("typespec-client-generator-core: decorators", () => { code: "duplicate-decorator", }); }); + it("duplicate-decorator diagnostic for multiple same scope", async () => { const diagnostics = await runner.diagnose(` @test @@ -1558,6 +1559,82 @@ describe("typespec-client-generator-core: decorators", () => { code: "duplicate-decorator", }); }); + + it("csv scope list", async () => { + function getCodeTemplate(language: string) { + return ` + @test + @access(Access.internal, "${language}") + model Test { + prop: string; + } + `; + } + const pythonRunner = await createSdkTestRunner({ + emitterName: "@azure-tools/typespec-python", + }); + const javaRunner = await createSdkTestRunner({ emitterName: "@azure-tools/typespec-java" }); + const csharpRunner = await createSdkTestRunner({ + emitterName: "@azure-tools/typespec-csharp", + }); + + const testCode = getCodeTemplate("python,csharp"); + const { Test: TestPython } = (await pythonRunner.compile(testCode)) as { Test: Model }; + strictEqual(getAccess(pythonRunner.context, TestPython), "internal"); + + const { Test: TestCSharp } = (await csharpRunner.compile(testCode)) as { Test: Model }; + strictEqual(getAccess(csharpRunner.context, TestCSharp), "internal"); + + const { Test: TestJava } = (await javaRunner.compile(testCode)) as { Test: Model }; + strictEqual(getAccess(javaRunner.context, TestJava), "public"); + }); + + it("csv scope list augment", async () => { + function getCodeTemplate(language: string) { + return ` + @test + model Test { + prop: string; + } + + @@access(Test, Access.public, "java, ts"); + @@access(Test, Access.internal, "${language}"); + `; + } + const pythonRunner = await createSdkTestRunner({ + emitterName: "@azure-tools/typespec-python", + }); + const javaRunner = await createSdkTestRunner({ emitterName: "@azure-tools/typespec-java" }); + const csharpRunner = await createSdkTestRunner({ + emitterName: "@azure-tools/typespec-csharp", + }); + + const testCode = getCodeTemplate("python,csharp"); + const { Test: TestPython } = (await pythonRunner.compile(testCode)) as { Test: Model }; + strictEqual(getAccess(pythonRunner.context, TestPython), "internal"); + + const { Test: TestCSharp } = (await csharpRunner.compile(testCode)) as { Test: Model }; + strictEqual(getAccess(csharpRunner.context, TestCSharp), "internal"); + + const { Test: TestJava } = (await javaRunner.compile(testCode)) as { Test: Model }; + strictEqual(getAccess(javaRunner.context, TestJava), "public"); + }); + + it("duplicate-decorator diagnostic for csv scope list", async () => { + const diagnostics = await runner.diagnose(` + @test + @access(Access.internal, "csharp,ts") + @access(Access.internal, "csharp") + op func( + @query("createdAt") + createdAt: utcDateTime; + ): void; + `); + + expectDiagnostics(diagnostics, { + code: "duplicate-decorator", + }); + }); }); describe("@access", () => { From 2628d00c8a4fbfd4d41906a65d6473ee9829a5e5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Jun 2024 20:22:47 -0700 Subject: [PATCH 18/42] Bump core from `216f423` to `224e725` (#1053) Bumps [core](https://github.com/microsoft/typespec) from `216f423` to `224e725`.
Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core b/core index 216f423a8c..224e725e43 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 216f423a8c4330410a4a6352fc9d2be5f4ee8413 +Subproject commit 224e725e43e51b8cc427779377fa4e351a25a38d From d4a1baceda6c6338bc0565a787a12347456c984e Mon Sep 17 00:00:00 2001 From: Weidong Xu Date: Mon, 24 Jun 2024 10:33:11 +0800 Subject: [PATCH 19/42] tcgc, arm, set context.arm for explicit client (#1050) cause: `SdkContext.arm` is not set, in the case of explicit client. fix https://github.com/Azure/typespec-azure/issues/1049 --------- Co-authored-by: Chenjie Shi --- .../changes/tcgc_arm_explicit-client-2024-5-21-15-15-43.md | 7 +++++++ packages/typespec-client-generator-core/src/decorators.ts | 3 +++ 2 files changed, 10 insertions(+) create mode 100644 .chronus/changes/tcgc_arm_explicit-client-2024-5-21-15-15-43.md diff --git a/.chronus/changes/tcgc_arm_explicit-client-2024-5-21-15-15-43.md b/.chronus/changes/tcgc_arm_explicit-client-2024-5-21-15-15-43.md new file mode 100644 index 0000000000..e333a72319 --- /dev/null +++ b/.chronus/changes/tcgc_arm_explicit-client-2024-5-21-15-15-43.md @@ -0,0 +1,7 @@ +--- +changeKind: fix +packages: + - "@azure-tools/typespec-client-generator-core" +--- + +Fix SdkContext.arm \ No newline at end of file diff --git a/packages/typespec-client-generator-core/src/decorators.ts b/packages/typespec-client-generator-core/src/decorators.ts index 6f87c42dae..d3786b8a0d 100644 --- a/packages/typespec-client-generator-core/src/decorators.ts +++ b/packages/typespec-client-generator-core/src/decorators.ts @@ -288,6 +288,9 @@ export function listClients(context: TCGCContext): SdkClient[] { const explicitClients = [...listScopedDecoratorData(context, clientKey)]; if (explicitClients.length > 0) { context.__rawClients = getClientsWithVersioning(context, explicitClients); + if (context.__rawClients.some((client) => isArm(client.service))) { + context.arm = true; + } return context.__rawClients; } From 30fa1e0acc8dd9d343b4f277cb53fd8893257c7d Mon Sep 17 00:00:00 2001 From: iscai-msft <43154838+iscai-msft@users.noreply.github.com> Date: Mon, 24 Jun 2024 14:49:07 -0400 Subject: [PATCH 20/42] [tcgc] add linter for empty client names (#1066) fixes #647 --------- Co-authored-by: iscai-msft Co-authored-by: catalinaperalta --- .../whitespace_client_name-2024-5-24-14-18-45.md | 7 +++++++ .../src/decorators.ts | 8 +++++++- .../typespec-client-generator-core/src/lib.ts | 6 ++++++ .../test/decorators.test.ts | 16 ++++++++++++++++ 4 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 .chronus/changes/whitespace_client_name-2024-5-24-14-18-45.md diff --git a/.chronus/changes/whitespace_client_name-2024-5-24-14-18-45.md b/.chronus/changes/whitespace_client_name-2024-5-24-14-18-45.md new file mode 100644 index 0000000000..5746fc36b6 --- /dev/null +++ b/.chronus/changes/whitespace_client_name-2024-5-24-14-18-45.md @@ -0,0 +1,7 @@ +--- +changeKind: fix +packages: + - "@azure-tools/typespec-client-generator-core" +--- + +Add linter for empty `@clientName` values \ No newline at end of file diff --git a/packages/typespec-client-generator-core/src/decorators.ts b/packages/typespec-client-generator-core/src/decorators.ts index d3786b8a0d..3ceff1c721 100644 --- a/packages/typespec-client-generator-core/src/decorators.ts +++ b/packages/typespec-client-generator-core/src/decorators.ts @@ -977,7 +977,13 @@ export function $clientName( } } } - + if (value.trim() === "") { + reportDiagnostic(context.program, { + code: "empty-client-name", + format: {}, + target: entity, + }); + } setScopedDecoratorData(context, $clientName, clientNameKey, entity, value, scope); } diff --git a/packages/typespec-client-generator-core/src/lib.ts b/packages/typespec-client-generator-core/src/lib.ts index 4976ee4f3b..fbca5ba653 100644 --- a/packages/typespec-client-generator-core/src/lib.ts +++ b/packages/typespec-client-generator-core/src/lib.ts @@ -147,6 +147,12 @@ export const $lib = createTypeSpecLibrary({ default: paramMessage`Can not find name for your emitter, please check your emitter name.`, }, }, + "empty-client-name": { + severity: "warning", + messages: { + default: `Cannot pass an empty value to the @clientName decorator`, + }, + }, }, }); diff --git a/packages/typespec-client-generator-core/test/decorators.test.ts b/packages/typespec-client-generator-core/test/decorators.test.ts index a0e2bbfa18..2e86e17e00 100644 --- a/packages/typespec-client-generator-core/test/decorators.test.ts +++ b/packages/typespec-client-generator-core/test/decorators.test.ts @@ -2684,6 +2684,22 @@ describe("typespec-client-generator-core: decorators", () => { "body" ); }); + it("empty client name", async () => { + const diagnostics = await runner.diagnose(` + @service({}) + namespace MyService; + + @clientName(" ") + model Test { + id: string; + prop: string; + } + `); + + expectDiagnostics(diagnostics, { + code: "@azure-tools/typespec-client-generator-core/empty-client-name", + }); + }); }); describe("versioning projection", () => { From ee6fc400ebd5fb5fa5ffdc5a95816bba70defdbf Mon Sep 17 00:00:00 2001 From: iscai-msft <43154838+iscai-msft@users.noreply.github.com> Date: Mon, 24 Jun 2024 15:31:43 -0400 Subject: [PATCH 21/42] [tcgc] remove deprecated `nameInClient` property from `SdkModelPropertyType`s (#1064) fixes #446 --------- Co-authored-by: iscai-msft --- ...remove_name_in_client-2024-5-24-13-45-6.md | 7 ++ .../src/http.ts | 3 - .../src/interfaces.ts | 4 - .../src/package.ts | 3 - .../src/types.ts | 3 - .../test/package.test.ts | 79 ------------------- .../types/body-model-property-types.test.ts | 3 - .../test/types/model-types.test.ts | 1 - 8 files changed, 7 insertions(+), 96 deletions(-) create mode 100644 .chronus/changes/remove_name_in_client-2024-5-24-13-45-6.md diff --git a/.chronus/changes/remove_name_in_client-2024-5-24-13-45-6.md b/.chronus/changes/remove_name_in_client-2024-5-24-13-45-6.md new file mode 100644 index 0000000000..1f8a5177b4 --- /dev/null +++ b/.chronus/changes/remove_name_in_client-2024-5-24-13-45-6.md @@ -0,0 +1,7 @@ +--- +changeKind: breaking +packages: + - "@azure-tools/typespec-client-generator-core" +--- + +remove deprecated `.nameInClient` property from `SdkModelPropertyType`s diff --git a/packages/typespec-client-generator-core/src/http.ts b/packages/typespec-client-generator-core/src/http.ts index 21e68c8dd9..f8d66e5afa 100644 --- a/packages/typespec-client-generator-core/src/http.ts +++ b/packages/typespec-client-generator-core/src/http.ts @@ -153,7 +153,6 @@ function getSdkHttpParameters( retval.bodyParam = { kind: "body", name, - nameInClient: name, isGeneratedName: true, description: getDocHelper(context, tspBody.type).description, details: getDocHelper(context, tspBody.type).details, @@ -259,7 +258,6 @@ function createContentTypeOrAcceptHeader( // No need for clientDefaultValue because it's a constant, it only has one value return { type, - nameInClient: name, name, isGeneratedName: true, apiVersions: bodyObject.apiVersions, @@ -473,7 +471,6 @@ export function getCorrespondingMethodParams( const apiVersionParamUpdated: SdkParameter = { ...apiVersionParam, name: "apiVersion", - nameInClient: "apiVersion", isGeneratedName: apiVersionParam.name !== "apiVersion", optional: false, clientDefaultValue: diff --git a/packages/typespec-client-generator-core/src/interfaces.ts b/packages/typespec-client-generator-core/src/interfaces.ts index d3fa82fb26..2268739ac7 100644 --- a/packages/typespec-client-generator-core/src/interfaces.ts +++ b/packages/typespec-client-generator-core/src/interfaces.ts @@ -328,10 +328,6 @@ export interface SdkEndpointType extends SdkTypeBase { export interface SdkModelPropertyTypeBase { __raw?: ModelProperty; type: SdkType; - /** - * @deprecated This property is deprecated. Use `.name` instead. - */ - nameInClient: string; name: string; isGeneratedName: boolean; description?: string; diff --git a/packages/typespec-client-generator-core/src/package.ts b/packages/typespec-client-generator-core/src/package.ts index 1813422ca2..2bd8261c63 100644 --- a/packages/typespec-client-generator-core/src/package.ts +++ b/packages/typespec-client-generator-core/src/package.ts @@ -413,7 +413,6 @@ function getSdkMethodParameter( details: getDocHelper(context, type).details, apiVersions, type: propertyType, - nameInClient: name, name, isGeneratedName: Boolean(libraryName), optional: false, @@ -478,7 +477,6 @@ function getSdkEndpointParameter( templateArguments: [ { name, - nameInClient: name, isGeneratedName: true, description: "Service host", kind: "path", @@ -533,7 +531,6 @@ function getSdkEndpointParameter( return diagnostics.wrap({ kind: "endpoint", type, - nameInClient: "endpoint", name: "endpoint", isGeneratedName: true, description: "Service host", diff --git a/packages/typespec-client-generator-core/src/types.ts b/packages/typespec-client-generator-core/src/types.ts index 76489d382e..98e3f27bf5 100644 --- a/packages/typespec-client-generator-core/src/types.ts +++ b/packages/typespec-client-generator-core/src/types.ts @@ -511,7 +511,6 @@ function addDiscriminatorToModelType( ? discriminatorProperty.serializedName : discriminator.propertyName, type: discriminatorType!, - nameInClient: name, name, isGeneratedName: false, onClient: false, @@ -966,7 +965,6 @@ export function getSdkCredentialParameter( return { type: getSdkCredentialType(context, client, auth), kind: "credential", - nameInClient: name, name, isGeneratedName: true, description: "Credential used to authenticate requests to the service.", @@ -1001,7 +999,6 @@ export function getSdkModelPropertyTypeBase( details: docWrapper.details, apiVersions, type: propertyType, - nameInClient: name, name, isGeneratedName: false, optional: type.optional, diff --git a/packages/typespec-client-generator-core/test/package.test.ts b/packages/typespec-client-generator-core/test/package.test.ts index fcdff655f0..1fab944135 100644 --- a/packages/typespec-client-generator-core/test/package.test.ts +++ b/packages/typespec-client-generator-core/test/package.test.ts @@ -128,7 +128,6 @@ describe("typespec-client-generator-core: package", () => { strictEqual(client.initialization.properties.length, 1); const endpointParam = client.initialization.properties[0]; strictEqual(endpointParam.kind, "endpoint"); - strictEqual(endpointParam.nameInClient, "endpoint"); strictEqual(endpointParam.name, "endpoint"); strictEqual(endpointParam.onClient, true); strictEqual(endpointParam.optional, true); @@ -161,7 +160,6 @@ describe("typespec-client-generator-core: package", () => { const credentialParam = client.initialization.properties.filter( (p): p is SdkCredentialParameter => p.kind === "credential" )[0]; - strictEqual(credentialParam.nameInClient, "credential"); strictEqual(credentialParam.name, "credential"); strictEqual(credentialParam.onClient, true); strictEqual(credentialParam.optional, false); @@ -201,7 +199,6 @@ describe("typespec-client-generator-core: package", () => { const credentialParam = client.initialization.properties.filter( (p): p is SdkCredentialParameter => p.kind === "credential" )[0]; - strictEqual(credentialParam.nameInClient, "credential"); strictEqual(credentialParam.name, "credential"); strictEqual(credentialParam.onClient, true); strictEqual(credentialParam.optional, false); @@ -246,7 +243,6 @@ describe("typespec-client-generator-core: package", () => { const credentialParam = client.initialization.properties.filter( (p): p is SdkCredentialParameter => p.kind === "credential" )[0]; - strictEqual(credentialParam.nameInClient, "credential"); strictEqual(credentialParam.name, "credential"); strictEqual(credentialParam.onClient, true); strictEqual(credentialParam.optional, false); @@ -302,7 +298,6 @@ describe("typespec-client-generator-core: package", () => { )[0]; strictEqual(endpointParam.clientDefaultValue, undefined); strictEqual(endpointParam.urlEncode, false); - strictEqual(endpointParam.nameInClient, "endpoint"); strictEqual(endpointParam.name, "endpoint"); strictEqual(endpointParam.type.kind, "endpoint"); strictEqual(endpointParam.onClient, true); @@ -321,7 +316,6 @@ describe("typespec-client-generator-core: package", () => { const credentialParam = client.initialization.properties.filter( (p): p is SdkCredentialParameter => p.kind === "credential" )[0]; - strictEqual(credentialParam.nameInClient, "credential"); strictEqual(credentialParam.name, "credential"); strictEqual(credentialParam.onClient, true); strictEqual(credentialParam.optional, false); @@ -370,7 +364,6 @@ describe("typespec-client-generator-core: package", () => { const endpointParam = endpointParams[0]; strictEqual(endpointParam.clientDefaultValue, undefined); strictEqual(endpointParam.urlEncode, false); - strictEqual(endpointParam.nameInClient, "endpoint"); strictEqual(endpointParam.name, "endpoint"); strictEqual(endpointParam.onClient, true); strictEqual(endpointParam.optional, false); @@ -390,7 +383,6 @@ describe("typespec-client-generator-core: package", () => { const apiVersionParam = endpointParamType.templateArguments[1]; strictEqual(apiVersionParam.clientDefaultValue, "v1.0"); strictEqual(apiVersionParam.urlEncode, true); - strictEqual(apiVersionParam.nameInClient, "apiVersion"); strictEqual(apiVersionParam.name, "apiVersion"); strictEqual(apiVersionParam.onClient, true); strictEqual(apiVersionParam.optional, false); @@ -401,7 +393,6 @@ describe("typespec-client-generator-core: package", () => { (p): p is SdkCredentialParameter => p.kind === "credential" ); ok(credentialParam); - strictEqual(credentialParam.nameInClient, "credential"); strictEqual(credentialParam.name, "credential"); strictEqual(credentialParam.onClient, true); strictEqual(credentialParam.optional, false); @@ -470,7 +461,6 @@ describe("typespec-client-generator-core: package", () => { const apiVersionParam = client.initialization.properties.filter( (p) => p.isApiVersionParam )[0]; - strictEqual(apiVersionParam.nameInClient, "apiVersion"); strictEqual(apiVersionParam.name, "apiVersion"); strictEqual(apiVersionParam.onClient, true); strictEqual(apiVersionParam.optional, false); @@ -536,7 +526,6 @@ describe("typespec-client-generator-core: package", () => { const apiVersionParam = client.initialization.properties.filter( (p) => p.isApiVersionParam )[0]; - strictEqual(apiVersionParam.nameInClient, "apiVersion"); strictEqual(apiVersionParam.name, "apiVersion"); strictEqual(apiVersionParam.onClient, true); strictEqual(apiVersionParam.optional, false); @@ -587,7 +576,6 @@ describe("typespec-client-generator-core: package", () => { strictEqual(mainClient.methods.length, 1); strictEqual(mainClient.initialization.properties.length, 1); - strictEqual(mainClient.initialization.properties[0].nameInClient, "endpoint"); strictEqual(mainClient.initialization.properties[0].name, "endpoint"); const clientAccessor = mainClient.methods[0]; @@ -638,7 +626,6 @@ describe("typespec-client-generator-core: package", () => { strictEqual(mainClient.methods.length, 2); ok(mainClient.initialization); strictEqual(mainClient.initialization.properties.length, 1); - strictEqual(mainClient.initialization.properties[0].nameInClient, "endpoint"); strictEqual(mainClient.initialization.properties[0].name, "endpoint"); const fooAccessor = mainClient.methods[0]; @@ -721,7 +708,6 @@ describe("typespec-client-generator-core: package", () => { const client = sdkPackage.clients[0]; strictEqual(client.initialization.properties.length, 1); - strictEqual(client.initialization.properties[0].nameInClient, "endpoint"); strictEqual(client.initialization.properties[0].name, "endpoint"); strictEqual(client.methods.length, 1); @@ -751,10 +737,8 @@ describe("typespec-client-generator-core: package", () => { const client = sdkPackage.clients[0]; strictEqual(client.initialization.properties.length, 2); - strictEqual(client.initialization.properties[0].nameInClient, "endpoint"); strictEqual(client.initialization.properties[0].name, "endpoint"); const clientApiVersionParam = client.initialization.properties[1]; - strictEqual(clientApiVersionParam.nameInClient, "apiVersion"); strictEqual(clientApiVersionParam.name, "apiVersion"); strictEqual(clientApiVersionParam.onClient, true); strictEqual(clientApiVersionParam.optional, false); @@ -798,7 +782,6 @@ describe("typespec-client-generator-core: package", () => { const client = sdkPackage.clients[0]; strictEqual(client.initialization.properties.length, 1); - strictEqual(client.initialization.properties[0].nameInClient, "endpoint"); strictEqual(client.initialization.properties[0].name, "endpoint"); const withoutApiVersion = client.methods[0]; @@ -829,11 +812,9 @@ describe("typespec-client-generator-core: package", () => { const client = sdkPackage.clients[0]; strictEqual(client.initialization.properties.length, 2); - strictEqual(client.initialization.properties[0].nameInClient, "endpoint"); strictEqual(client.initialization.properties[0].name, "endpoint"); const clientApiVersionParam = client.initialization.properties[1]; - strictEqual(clientApiVersionParam.nameInClient, "apiVersion"); strictEqual(clientApiVersionParam.name, "apiVersion"); strictEqual(clientApiVersionParam.onClient, true); strictEqual(clientApiVersionParam.optional, false); @@ -882,11 +863,9 @@ describe("typespec-client-generator-core: package", () => { const client = sdkPackage.clients[0]; strictEqual(client.initialization.properties.length, 2); - strictEqual(client.initialization.properties[0].nameInClient, "endpoint"); strictEqual(client.initialization.properties[0].name, "endpoint"); const clientApiVersionParam = client.initialization.properties[1]; - strictEqual(clientApiVersionParam.nameInClient, "apiVersion"); strictEqual(clientApiVersionParam.name, "apiVersion"); strictEqual(clientApiVersionParam.onClient, true); strictEqual(clientApiVersionParam.optional, false); @@ -911,7 +890,6 @@ describe("typespec-client-generator-core: package", () => { const apiVersionParam = withApiVersion.operation.parameters[0]; strictEqual(apiVersionParam.kind, "path"); strictEqual(apiVersionParam.serializedName, "apiVersion"); - strictEqual(apiVersionParam.nameInClient, "apiVersion"); strictEqual(apiVersionParam.name, "apiVersion"); strictEqual(apiVersionParam.isApiVersionParam, true); strictEqual(apiVersionParam.optional, false); @@ -937,7 +915,6 @@ describe("typespec-client-generator-core: package", () => { const methodParam = method.parameters[0]; strictEqual(methodParam.kind, "method"); - strictEqual(methodParam.nameInClient, "path"); strictEqual(methodParam.name, "path"); strictEqual(methodParam.optional, false); strictEqual(methodParam.onClient, false); @@ -953,7 +930,6 @@ describe("typespec-client-generator-core: package", () => { strictEqual(pathParam.kind, "path"); strictEqual(pathParam.serializedName, "path"); - strictEqual(pathParam.nameInClient, "path"); strictEqual(pathParam.name, "path"); strictEqual(pathParam.optional, false); strictEqual(pathParam.onClient, false); @@ -965,7 +941,6 @@ describe("typespec-client-generator-core: package", () => { const correspondingMethodParams = pathParam.correspondingMethodParams; strictEqual(correspondingMethodParams.length, 1); - strictEqual(pathParam.nameInClient, correspondingMethodParams[0].nameInClient); strictEqual(pathParam.name, correspondingMethodParams[0].name); }); @@ -1045,7 +1020,6 @@ describe("typespec-client-generator-core: package", () => { const methodParam = method.parameters[0]; strictEqual(methodParam.kind, "method"); - strictEqual(methodParam.nameInClient, "header"); strictEqual(methodParam.name, "header"); strictEqual(methodParam.optional, false); strictEqual(methodParam.onClient, false); @@ -1061,7 +1035,6 @@ describe("typespec-client-generator-core: package", () => { strictEqual(headerParam.kind, "header"); strictEqual(headerParam.serializedName, "header"); - strictEqual(headerParam.nameInClient, "header"); strictEqual(headerParam.name, "header"); strictEqual(headerParam.optional, false); strictEqual(headerParam.onClient, false); @@ -1071,7 +1044,6 @@ describe("typespec-client-generator-core: package", () => { const correspondingMethodParams = headerParam.correspondingMethodParams; strictEqual(correspondingMethodParams.length, 1); - strictEqual(headerParam.nameInClient, correspondingMethodParams[0].nameInClient); strictEqual(headerParam.name, correspondingMethodParams[0].name); }); @@ -1124,7 +1096,6 @@ describe("typespec-client-generator-core: package", () => { const methodParam = method.parameters[0]; strictEqual(methodParam.kind, "method"); - strictEqual(methodParam.nameInClient, "query"); strictEqual(methodParam.name, "query"); strictEqual(methodParam.optional, false); strictEqual(methodParam.onClient, false); @@ -1139,7 +1110,6 @@ describe("typespec-client-generator-core: package", () => { const queryParam = serviceOperation.parameters[0]; strictEqual(queryParam.kind, "query"); strictEqual(queryParam.serializedName, "query"); - strictEqual(queryParam.nameInClient, "query"); strictEqual(queryParam.name, "query"); strictEqual(queryParam.optional, false); strictEqual(queryParam.onClient, false); @@ -1149,7 +1119,6 @@ describe("typespec-client-generator-core: package", () => { const correspondingMethodParams = queryParam.correspondingMethodParams; strictEqual(correspondingMethodParams.length, 1); - strictEqual(queryParam.nameInClient, correspondingMethodParams[0].nameInClient); strictEqual(queryParam.name, correspondingMethodParams[0].name); }); @@ -1233,12 +1202,10 @@ describe("typespec-client-generator-core: package", () => { const correspondingMethodParams = bodyParameter.correspondingMethodParams; strictEqual(correspondingMethodParams.length, 1); - strictEqual(bodyParameter.nameInClient, correspondingMethodParams[0].nameInClient); strictEqual(bodyParameter.name, correspondingMethodParams[0].name); strictEqual(serviceOperation.parameters.length, 1); const contentTypeParam = serviceOperation.parameters[0]; - strictEqual(contentTypeParam.nameInClient, "contentType"); strictEqual(contentTypeParam.name, "contentType"); strictEqual(contentTypeParam.serializedName, "Content-Type"); strictEqual(contentTypeParam.clientDefaultValue, undefined); @@ -1318,12 +1285,10 @@ describe("typespec-client-generator-core: package", () => { const correspondingMethodParams = bodyParameter.correspondingMethodParams; strictEqual(correspondingMethodParams.length, 1); - strictEqual(bodyParameter.nameInClient, correspondingMethodParams[0].nameInClient); strictEqual(bodyParameter.name, correspondingMethodParams[0].name); strictEqual(serviceOperation.parameters.length, 1); const contentTypeParam = serviceOperation.parameters[0]; - strictEqual(contentTypeParam.nameInClient, "contentType"); strictEqual(contentTypeParam.name, "contentType"); strictEqual(contentTypeParam.serializedName, "Content-Type"); strictEqual(contentTypeParam.clientDefaultValue, undefined); @@ -1359,7 +1324,6 @@ describe("typespec-client-generator-core: package", () => { let methodParam = method.parameters[0]; strictEqual(methodParam.kind, "method"); - strictEqual(methodParam.nameInClient, "header"); strictEqual(methodParam.name, "header"); strictEqual(methodParam.optional, false); strictEqual(methodParam.onClient, false); @@ -1368,7 +1332,6 @@ describe("typespec-client-generator-core: package", () => { methodParam = method.parameters[1]; strictEqual(methodParam.kind, "method"); - strictEqual(methodParam.nameInClient, "query"); strictEqual(methodParam.name, "query"); strictEqual(methodParam.optional, false); strictEqual(methodParam.onClient, false); @@ -1377,7 +1340,6 @@ describe("typespec-client-generator-core: package", () => { methodParam = method.parameters[2]; strictEqual(methodParam.kind, "method"); - strictEqual(methodParam.nameInClient, "body"); strictEqual(methodParam.name, "body"); strictEqual(methodParam.optional, false); strictEqual(methodParam.onClient, false); @@ -1386,7 +1348,6 @@ describe("typespec-client-generator-core: package", () => { methodParam = method.parameters[3]; strictEqual(methodParam.kind, "method"); - strictEqual(methodParam.nameInClient, "contentType"); strictEqual(methodParam.name, "contentType"); strictEqual(methodParam.optional, false); strictEqual(methodParam.onClient, false); @@ -1399,7 +1360,6 @@ describe("typespec-client-generator-core: package", () => { ok(serviceOperation.bodyParam); const correspondingBodyParams = serviceOperation.bodyParam.correspondingMethodParams; strictEqual(correspondingBodyParams.length, 1); - strictEqual(correspondingBodyParams[0].nameInClient, "body"); strictEqual(correspondingBodyParams[0].name, "body"); const parameters = serviceOperation.parameters; @@ -1409,19 +1369,16 @@ describe("typespec-client-generator-core: package", () => { strictEqual(headerParams.length, 2); let correspondingHeaderParams = headerParams[0].correspondingMethodParams; strictEqual(correspondingHeaderParams.length, 1); - strictEqual(correspondingHeaderParams[0].nameInClient, "header"); strictEqual(correspondingHeaderParams[0].name, "header"); correspondingHeaderParams = headerParams[1].correspondingMethodParams; strictEqual(correspondingHeaderParams.length, 1); - strictEqual(correspondingHeaderParams[0].nameInClient, "contentType"); strictEqual(correspondingHeaderParams[0].name, "contentType"); const queryParams = parameters.filter((x): x is SdkQueryParameter => x.kind === "query"); strictEqual(queryParams.length, 1); const correspondingQueryParams = queryParams[0].correspondingMethodParams; strictEqual(correspondingQueryParams.length, 1); - strictEqual(correspondingQueryParams[0].nameInClient, "query"); strictEqual(correspondingQueryParams[0].name, "query"); }); @@ -1438,7 +1395,6 @@ describe("typespec-client-generator-core: package", () => { let methodParam = method.parameters[0]; strictEqual(methodParam.kind, "method"); - strictEqual(methodParam.nameInClient, "body"); strictEqual(methodParam.name, "body"); strictEqual(methodParam.optional, false); strictEqual(methodParam.onClient, false); @@ -1447,7 +1403,6 @@ describe("typespec-client-generator-core: package", () => { methodParam = method.parameters[1]; strictEqual(methodParam.kind, "method"); - strictEqual(methodParam.nameInClient, "contentType"); strictEqual(methodParam.name, "contentType"); strictEqual(methodParam.optional, false); strictEqual(methodParam.onClient, false); @@ -1461,13 +1416,11 @@ describe("typespec-client-generator-core: package", () => { ok(serviceOperation.bodyParam); const correspondingBodyParams = serviceOperation.bodyParam.correspondingMethodParams; strictEqual(correspondingBodyParams.length, 1); - strictEqual(correspondingBodyParams[0].nameInClient, "body"); strictEqual(correspondingBodyParams[0].name, "body"); strictEqual(serviceOperation.parameters.length, 1); const correspondingHeaderParams = serviceOperation.parameters[0].correspondingMethodParams; strictEqual(correspondingHeaderParams.length, 1); - strictEqual(correspondingHeaderParams[0].nameInClient, "contentType"); strictEqual(correspondingHeaderParams[0].name, "contentType"); }); it("ensure content type is a constant if only one possibility", async () => { @@ -1482,12 +1435,10 @@ describe("typespec-client-generator-core: package", () => { strictEqual(method.parameters.length, 2); const methodBodyParam = method.parameters[0]; - strictEqual(methodBodyParam.nameInClient, "body"); strictEqual(methodBodyParam.name, "body"); strictEqual(methodBodyParam.type, sdkPackage.models[0]); const methodContentTypeParam = method.parameters[1]; - strictEqual(methodContentTypeParam.nameInClient, "contentType"); strictEqual(methodContentTypeParam.name, "contentType"); const serviceOperation = method.operation; @@ -1501,7 +1452,6 @@ describe("typespec-client-generator-core: package", () => { strictEqual(serviceOperation.parameters.length, 1); const serviceContentTypeParam = serviceOperation.parameters[0]; - strictEqual(serviceContentTypeParam.nameInClient, "contentType"); strictEqual(serviceContentTypeParam.name, "contentType"); strictEqual(serviceContentTypeParam.serializedName, "Content-Type"); strictEqual(serviceContentTypeParam.clientDefaultValue, undefined); @@ -1523,13 +1473,11 @@ describe("typespec-client-generator-core: package", () => { strictEqual(method.parameters.length, 1); const methodAcceptParam = method.parameters[0]; - strictEqual(methodAcceptParam.nameInClient, "accept"); strictEqual(methodAcceptParam.name, "accept"); const serviceOperation = method.operation; strictEqual(serviceOperation.parameters.length, 1); const serviceContentTypeParam = serviceOperation.parameters[0]; - strictEqual(serviceContentTypeParam.nameInClient, "accept"); strictEqual(serviceContentTypeParam.name, "accept"); strictEqual(serviceContentTypeParam.serializedName, "Accept"); strictEqual(serviceContentTypeParam.clientDefaultValue, undefined); @@ -1565,13 +1513,11 @@ describe("typespec-client-generator-core: package", () => { strictEqual(method.parameters.length, 1); const methodAcceptParam = method.parameters[0]; - strictEqual(methodAcceptParam.nameInClient, "accept"); strictEqual(methodAcceptParam.name, "accept"); const serviceOperation = method.operation; strictEqual(serviceOperation.parameters.length, 1); const serviceContentTypeParam = serviceOperation.parameters[0]; - strictEqual(serviceContentTypeParam.nameInClient, "accept"); strictEqual(serviceContentTypeParam.name, "accept"); strictEqual(serviceContentTypeParam.serializedName, "Accept"); strictEqual(serviceContentTypeParam.clientDefaultValue, undefined); @@ -1940,7 +1886,6 @@ describe("typespec-client-generator-core: package", () => { const bodyParameter = method.operation.bodyParam; ok(bodyParameter); strictEqual(bodyParameter.kind, "body"); - strictEqual(bodyParameter.nameInClient, "widget"); strictEqual(bodyParameter.name, "widget"); strictEqual(bodyParameter.onClient, false); strictEqual(bodyParameter.optional, false); @@ -2012,7 +1957,6 @@ describe("typespec-client-generator-core: package", () => { ok(pathParam); strictEqual(pathParam.kind, "path"); strictEqual(pathParam.serializedName, "id"); - strictEqual(pathParam.nameInClient, "id"); strictEqual(pathParam.name, "id"); strictEqual(pathParam.optional, false); strictEqual(pathParam.onClient, false); @@ -2029,7 +1973,6 @@ describe("typespec-client-generator-core: package", () => { const correspondingMethodParams = pathParam.correspondingMethodParams; strictEqual(correspondingMethodParams.length, 1); - strictEqual(pathParam.nameInClient, correspondingMethodParams[0].nameInClient); strictEqual(pathParam.name, correspondingMethodParams[0].name); }); it("vanilla widget update", async () => { @@ -2043,7 +1986,6 @@ describe("typespec-client-generator-core: package", () => { let methodParam = method.parameters[0]; strictEqual(methodParam.kind, "method"); - strictEqual(methodParam.nameInClient, "id"); strictEqual(methodParam.name, "id"); strictEqual(methodParam.optional, false); strictEqual(methodParam.onClient, false); @@ -2052,7 +1994,6 @@ describe("typespec-client-generator-core: package", () => { methodParam = method.parameters[1]; strictEqual(methodParam.kind, "method"); - strictEqual(methodParam.nameInClient, "widget"); strictEqual(methodParam.name, "widget"); strictEqual(methodParam.optional, false); strictEqual(methodParam.onClient, false); @@ -2075,7 +2016,6 @@ describe("typespec-client-generator-core: package", () => { ok(pathParam); strictEqual(pathParam.kind, "path"); strictEqual(pathParam.serializedName, "id"); - strictEqual(pathParam.nameInClient, "id"); strictEqual(pathParam.name, "id"); strictEqual(pathParam.optional, false); strictEqual(pathParam.onClient, false); @@ -2130,7 +2070,6 @@ describe("typespec-client-generator-core: package", () => { const methodParam = method.parameters[0]; strictEqual(methodParam.kind, "method"); - strictEqual(methodParam.nameInClient, "id"); strictEqual(methodParam.name, "id"); strictEqual(methodParam.optional, false); strictEqual(methodParam.onClient, false); @@ -2143,7 +2082,6 @@ describe("typespec-client-generator-core: package", () => { ok(pathParam); strictEqual(pathParam.kind, "path"); strictEqual(pathParam.serializedName, "id"); - strictEqual(pathParam.nameInClient, "id"); strictEqual(pathParam.name, "id"); strictEqual(pathParam.optional, false); strictEqual(pathParam.onClient, false); @@ -2152,7 +2090,6 @@ describe("typespec-client-generator-core: package", () => { const correspondingMethodParams = pathParam.correspondingMethodParams; strictEqual(correspondingMethodParams.length, 1); - strictEqual(pathParam.nameInClient, correspondingMethodParams[0].nameInClient); strictEqual(pathParam.name, correspondingMethodParams[0].name); }); it("vanilla widget list", async () => { @@ -2390,7 +2327,6 @@ describe("typespec-client-generator-core: package", () => { const pathParam = method.operation.parameters.find((x) => x.kind === "path"); ok(pathParam); strictEqual(pathParam.kind, "path"); - strictEqual(pathParam.nameInClient, "widgetName"); strictEqual(pathParam.name, "widgetName"); strictEqual(pathParam.serializedName, "widgetName"); strictEqual(pathParam.onClient, false); @@ -2400,7 +2336,6 @@ describe("typespec-client-generator-core: package", () => { const queryParam = method.operation.parameters.find((x) => x.kind === "query"); ok(queryParam); strictEqual(queryParam.isApiVersionParam, true); - strictEqual(queryParam.nameInClient, "apiVersion"); strictEqual(queryParam.name, "apiVersion"); strictEqual(queryParam.serializedName, "api-version"); strictEqual(queryParam.onClient, true); @@ -2503,7 +2438,6 @@ describe("typespec-client-generator-core: package", () => { const pathParam1 = pathParams[0]; strictEqual(pathParam1.kind, "path"); - strictEqual(pathParam1.nameInClient, "widgetName"); strictEqual(pathParam1.name, "widgetName"); strictEqual(pathParam1.serializedName, "widgetName"); strictEqual(pathParam1.onClient, false); @@ -2512,7 +2446,6 @@ describe("typespec-client-generator-core: package", () => { const pathParam2 = pathParams[1]; strictEqual(pathParam2.kind, "path"); - strictEqual(pathParam2.nameInClient, "operationId"); strictEqual(pathParam2.name, "operationId"); strictEqual(pathParam2.serializedName, "operationId"); strictEqual(pathParam2.onClient, false); @@ -2522,7 +2455,6 @@ describe("typespec-client-generator-core: package", () => { const apiVersionParam = getStatus.operation.parameters.find((x) => x.kind === "query"); ok(apiVersionParam); strictEqual(apiVersionParam.isApiVersionParam, true); - strictEqual(apiVersionParam.nameInClient, "apiVersion"); strictEqual(apiVersionParam.name, "apiVersion"); strictEqual(apiVersionParam.serializedName, "api-version"); strictEqual(apiVersionParam.onClient, true); @@ -2535,7 +2467,6 @@ describe("typespec-client-generator-core: package", () => { const operationAcceptParam = getStatus.operation.parameters.find((x) => x.kind === "header"); ok(operationAcceptParam); - strictEqual(operationAcceptParam.nameInClient, "accept"); strictEqual(operationAcceptParam.name, "accept"); strictEqual(operationAcceptParam.clientDefaultValue, undefined); strictEqual(operationAcceptParam.onClient, false); @@ -2598,7 +2529,6 @@ describe("typespec-client-generator-core: package", () => { ok(queryParam); strictEqual(queryParam.serializedName, "api-version"); ok(serviceOperation.bodyParam); - strictEqual(serviceOperation.bodyParam.nameInClient, "resource"); strictEqual(serviceOperation.bodyParam.name, "resource"); strictEqual(serviceOperation.bodyParam.type, widgetModel); @@ -2712,7 +2642,6 @@ describe("typespec-client-generator-core: package", () => { const apiVersion = operation.parameters.find((x) => x.isApiVersionParam); ok(apiVersion); strictEqual(apiVersion.kind, "query"); - strictEqual(apiVersion.nameInClient, "apiVersion"); strictEqual(apiVersion.name, "apiVersion"); strictEqual(apiVersion.serializedName, "api-version"); strictEqual(apiVersion.onClient, true); @@ -2849,16 +2778,10 @@ describe("typespec-client-generator-core: package", () => { strictEqual(bodyParameter.optional, false); strictEqual(bodyParameter.type.kind, "model"); strictEqual(bodyParameter.type.properties.length, 1); - strictEqual(bodyParameter.type.properties[0].nameInClient, "name"); strictEqual(bodyParameter.type.properties[0].name, "name"); const correspondingMethodParams = bodyParameter.correspondingMethodParams; strictEqual(correspondingMethodParams.length, 1); - - strictEqual( - bodyParameter.type.properties[0].nameInClient, - correspondingMethodParams[0].nameInClient - ); strictEqual(bodyParameter.type.properties[0].name, correspondingMethodParams[0].name); }); @@ -2912,9 +2835,7 @@ describe("typespec-client-generator-core: package", () => { strictEqual(bodyParameter.optional, false); strictEqual(bodyParameter.type.kind, "model"); strictEqual(bodyParameter.type.properties.length, 2); - strictEqual(bodyParameter.type.properties[0].nameInClient, "kind"); strictEqual(bodyParameter.type.properties[0].name, "kind"); - strictEqual(bodyParameter.type.properties[1].nameInClient, "name"); strictEqual(bodyParameter.type.properties[1].name, "name"); const correspondingMethodParams = bodyParameter.correspondingMethodParams; diff --git a/packages/typespec-client-generator-core/test/types/body-model-property-types.test.ts b/packages/typespec-client-generator-core/test/types/body-model-property-types.test.ts index e58677896b..c7e90951e2 100644 --- a/packages/typespec-client-generator-core/test/types/body-model-property-types.test.ts +++ b/packages/typespec-client-generator-core/test/types/body-model-property-types.test.ts @@ -106,7 +106,6 @@ describe("typespec-client-generator-core: body model property types", () => { (x) => x.kind === "property" && x.serializedName === "encodedWireName" ); ok(jsonEncodedProp); - strictEqual(jsonEncodedProp.nameInClient, "jsonEncodedAndProjectedName"); strictEqual(jsonEncodedProp.name, "jsonEncodedAndProjectedName"); // wire name test with deprecated projected @@ -114,7 +113,6 @@ describe("typespec-client-generator-core: body model property types", () => { (x) => x.kind === "property" && x.serializedName === "realWireName" ); ok(jsonProjectedProp); - strictEqual(jsonProjectedProp.nameInClient, "jsonProjectedName"); strictEqual(jsonProjectedProp.name, "jsonProjectedName"); // regular @@ -122,7 +120,6 @@ describe("typespec-client-generator-core: body model property types", () => { (x) => x.kind === "property" && x.serializedName === "regular" ); ok(regularProp); - strictEqual(regularProp.nameInClient, "regular"); strictEqual(regularProp.name, "regular"); }); it("union type", async function () { diff --git a/packages/typespec-client-generator-core/test/types/model-types.test.ts b/packages/typespec-client-generator-core/test/types/model-types.test.ts index bcd952ff53..6445cbf0fe 100644 --- a/packages/typespec-client-generator-core/test/types/model-types.test.ts +++ b/packages/typespec-client-generator-core/test/types/model-types.test.ts @@ -146,7 +146,6 @@ describe("typespec-client-generator-core: model types", () => { strictEqual(recursiveModel.properties.length, 1); const prop = recursiveModel.properties[0]; strictEqual(prop.kind, "property"); - strictEqual(prop.nameInClient, "prop"); strictEqual(prop.name, "prop"); strictEqual(prop.type.kind, "model"); strictEqual(prop.type.name, "RecursiveModel"); From 2876cb7d3d87ea7952683d5c3733a7ca33f39b55 Mon Sep 17 00:00:00 2001 From: Chenjie Shi Date: Tue, 25 Jun 2024 04:21:41 +0800 Subject: [PATCH 22/42] export `SdkClientAccessor` (#990) fix: https://github.com/Azure/typespec-azure/issues/969 --- .chronus/changes/export_sdkmethod-2024-5-12-13-43-49.md | 7 +++++++ packages/typespec-client-generator-core/src/interfaces.ts | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 .chronus/changes/export_sdkmethod-2024-5-12-13-43-49.md diff --git a/.chronus/changes/export_sdkmethod-2024-5-12-13-43-49.md b/.chronus/changes/export_sdkmethod-2024-5-12-13-43-49.md new file mode 100644 index 0000000000..ec93e59cb4 --- /dev/null +++ b/.chronus/changes/export_sdkmethod-2024-5-12-13-43-49.md @@ -0,0 +1,7 @@ +--- +changeKind: fix +packages: + - "@azure-tools/typespec-client-generator-core" +--- + +export `SdkClientAccessor` \ No newline at end of file diff --git a/packages/typespec-client-generator-core/src/interfaces.ts b/packages/typespec-client-generator-core/src/interfaces.ts index 2268739ac7..24ec26f03b 100644 --- a/packages/typespec-client-generator-core/src/interfaces.ts +++ b/packages/typespec-client-generator-core/src/interfaces.ts @@ -532,7 +532,8 @@ export type SdkServiceMethod = | SdkLroServiceMethod | SdkLroPagingServiceMethod; -interface SdkClientAccessor extends SdkMethodBase { +export interface SdkClientAccessor + extends SdkMethodBase { kind: "clientaccessor"; response: SdkClientType; } From 688fd182c06b1748aaae3ec7482588895c886da7 Mon Sep 17 00:00:00 2001 From: iscai-msft <43154838+iscai-msft@users.noreply.github.com> Date: Mon, 24 Jun 2024 17:17:17 -0400 Subject: [PATCH 23/42] remove unused isErrorOrChildOfError (#1068) Right after we added this function, `isErrorModel` from `@typespec/compiler` would check inheritance for error. I've checked and no one uses this. Since it was never used, I'm going to go ahead and remove it --------- Co-authored-by: iscai-msft --- ...is_error_child_of_error-2024-5-24-15-29-24.md | 7 +++++++ .../src/public-utils.ts | 16 ---------------- 2 files changed, 7 insertions(+), 16 deletions(-) create mode 100644 .chronus/changes/remove_is_error_child_of_error-2024-5-24-15-29-24.md diff --git a/.chronus/changes/remove_is_error_child_of_error-2024-5-24-15-29-24.md b/.chronus/changes/remove_is_error_child_of_error-2024-5-24-15-29-24.md new file mode 100644 index 0000000000..4078de9b4e --- /dev/null +++ b/.chronus/changes/remove_is_error_child_of_error-2024-5-24-15-29-24.md @@ -0,0 +1,7 @@ +--- +changeKind: internal +packages: + - "@azure-tools/typespec-client-generator-core" +--- + +remove unused isErrorOrChildOfError \ No newline at end of file diff --git a/packages/typespec-client-generator-core/src/public-utils.ts b/packages/typespec-client-generator-core/src/public-utils.ts index a382a6b52d..484f442232 100644 --- a/packages/typespec-client-generator-core/src/public-utils.ts +++ b/packages/typespec-client-generator-core/src/public-utils.ts @@ -15,7 +15,6 @@ import { getNamespaceFullName, getProjectedName, ignoreDiagnostics, - isErrorModel, listServices, resolveEncodedName, } from "@typespec/compiler"; @@ -614,21 +613,6 @@ function buildNameFromContextPaths( return createName; } -/** - * - * @deprecated This function is deprecated. You should use isErrorModel from the standard TypeSpec library - */ -export function isErrorOrChildOfError(context: TCGCContext, model: Model): boolean { - const errorDecorator = isErrorModel(context.program, model); - if (errorDecorator) return true; - let baseModel = model.baseModel; - while (baseModel) { - if (isErrorModel(context.program, baseModel)) return true; - baseModel = baseModel.baseModel; - } - return false; -} - export function getHttpOperationWithCache( context: TCGCContext, operation: Operation From 932666f616e2433c7c9fc1e435f1df44a937cdb7 Mon Sep 17 00:00:00 2001 From: iscai-msft <43154838+iscai-msft@users.noreply.github.com> Date: Mon, 24 Jun 2024 17:24:22 -0400 Subject: [PATCH 24/42] [tcgc] don't set optional `.contentTypes` property on responses to an empty list (#1070) fixes #992 --------- Co-authored-by: iscai-msft --- .../changes/content_types_not_empty-2024-5-24-16-39-12.md | 7 +++++++ packages/typespec-client-generator-core/src/http.ts | 2 +- .../typespec-client-generator-core/test/package.test.ts | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 .chronus/changes/content_types_not_empty-2024-5-24-16-39-12.md diff --git a/.chronus/changes/content_types_not_empty-2024-5-24-16-39-12.md b/.chronus/changes/content_types_not_empty-2024-5-24-16-39-12.md new file mode 100644 index 0000000000..cd92dde41e --- /dev/null +++ b/.chronus/changes/content_types_not_empty-2024-5-24-16-39-12.md @@ -0,0 +1,7 @@ +--- +changeKind: fix +packages: + - "@azure-tools/typespec-client-generator-core" +--- + +don't let optional `.contentTypes` on response body be empty. If it's empty, just set it to undefined \ No newline at end of file diff --git a/packages/typespec-client-generator-core/src/http.ts b/packages/typespec-client-generator-core/src/http.ts index f8d66e5afa..6e9d49d7b8 100644 --- a/packages/typespec-client-generator-core/src/http.ts +++ b/packages/typespec-client-generator-core/src/http.ts @@ -423,7 +423,7 @@ function getSdkHttpResponseAndExceptions( kind: "http", type: body ? diagnostics.pipe(getClientTypeWithDiagnostics(context, body)) : undefined, headers, - contentTypes, + contentTypes: contentTypes.length > 0 ? contentTypes : undefined, defaultContentType: contentTypes.includes("application/json") ? "application/json" : contentTypes[0], diff --git a/packages/typespec-client-generator-core/test/package.test.ts b/packages/typespec-client-generator-core/test/package.test.ts index 1fab944135..b0a7bb1668 100644 --- a/packages/typespec-client-generator-core/test/package.test.ts +++ b/packages/typespec-client-generator-core/test/package.test.ts @@ -1829,6 +1829,7 @@ describe("typespec-client-generator-core: package", () => { strictEqual(voidResponse.kind, "http"); strictEqual(voidResponse.type, undefined); strictEqual(voidResponse.headers.length, 0); + strictEqual(voidResponse.contentTypes, undefined); strictEqual(method.response.type, undefined); strictEqual(method.response.resultPath, undefined); From 83851cbe25b6b13cd1d75cadcfc2414e63ee6168 Mon Sep 17 00:00:00 2001 From: iscai-msft <43154838+iscai-msft@users.noreply.github.com> Date: Tue, 25 Jun 2024 19:20:29 -0400 Subject: [PATCH 25/42] [tcgc] unify datetime casing by renaming interface types (#1067) fixes #799 --------- Co-authored-by: iscai-msft --- ...rename_datetime_type-2024-5-24-14-52-19.md | 7 +++++ .../doc/types.tsp | 2 +- .../src/interfaces.ts | 31 ++++++++++++++----- .../src/types.ts | 4 +-- 4 files changed, 33 insertions(+), 11 deletions(-) create mode 100644 .chronus/changes/rename_datetime_type-2024-5-24-14-52-19.md diff --git a/.chronus/changes/rename_datetime_type-2024-5-24-14-52-19.md b/.chronus/changes/rename_datetime_type-2024-5-24-14-52-19.md new file mode 100644 index 0000000000..28b8ca8895 --- /dev/null +++ b/.chronus/changes/rename_datetime_type-2024-5-24-14-52-19.md @@ -0,0 +1,7 @@ +--- +changeKind: fix +packages: + - "@azure-tools/typespec-client-generator-core" +--- + +Unify casing of datetime spelling to `DateTime`. Change interface names to `SdkDateTimeType`, `SdkUtcDateTimeType`, and `SdkOffsetDateTimeType` \ No newline at end of file diff --git a/packages/typespec-client-generator-core/doc/types.tsp b/packages/typespec-client-generator-core/doc/types.tsp index 8a4b18b7a7..d936eeac44 100644 --- a/packages/typespec-client-generator-core/doc/types.tsp +++ b/packages/typespec-client-generator-core/doc/types.tsp @@ -84,7 +84,7 @@ model SdkBuiltInType extends SdkType { * @property encode: How to encode the datetime and represent to users * @property wireType: What type we end up sending over the wire for a datetime. Can be a string or an int type. */ -model SdkDatetimeType extends SdkType { +model SdkDateTimeType extends SdkType { kind: "datetime"; encode: DateTimeKnownEncoding; wireType: SdkType; diff --git a/packages/typespec-client-generator-core/src/interfaces.ts b/packages/typespec-client-generator-core/src/interfaces.ts index 24ec26f03b..45525cfacf 100644 --- a/packages/typespec-client-generator-core/src/interfaces.ts +++ b/packages/typespec-client-generator-core/src/interfaces.ts @@ -86,7 +86,7 @@ interface SdkTypeBase { export type SdkType = | SdkBuiltInType - | SdkDatetimeType + | SdkDateTimeType | SdkDurationType | SdkArrayType | SdkTupleType @@ -197,26 +197,41 @@ export function isSdkFloatKind(kind: string): kind is keyof typeof SdkFloatKinds return kind in SdkFloatKindsEnum; } -const SdkDatetimeEncodingsConst = ["rfc3339", "rfc7231", "unixTimestamp"] as const; +const SdkDateTimeEncodingsConst = ["rfc3339", "rfc7231", "unixTimestamp"] as const; -export function isSdkDatetimeEncodings(encoding: string): encoding is DateTimeKnownEncoding { - return SdkDatetimeEncodingsConst.includes(encoding as DateTimeKnownEncoding); +export function isSdkDateTimeEncodings(encoding: string): encoding is DateTimeKnownEncoding { + return SdkDateTimeEncodingsConst.includes(encoding as DateTimeKnownEncoding); } -interface SdkDatetimeTypeBase extends SdkTypeBase { +interface SdkDateTimeTypeBase extends SdkTypeBase { encode: DateTimeKnownEncoding; wireType: SdkBuiltInType; } -interface SdkUtcDatetimeType extends SdkDatetimeTypeBase { +interface SdkUtcDateTimeType extends SdkDateTimeTypeBase { kind: "utcDateTime"; } -interface SdkOffsetDatetimeType extends SdkDatetimeTypeBase { +interface SdkOffsetDateTimeType extends SdkDateTimeTypeBase { kind: "offsetDateTime"; } -export type SdkDatetimeType = SdkUtcDatetimeType | SdkOffsetDatetimeType; +export type SdkDateTimeType = SdkUtcDateTimeType | SdkOffsetDateTimeType; + +/** + * @deprecated: Use SdkDateTimeType instead. + */ +export type SdkDatetimeType = SdkDateTimeType; + +/** + * @deprecated: Use SdkUtcDateTimeType instead. + */ +export type SdkUtcDatetimeType = SdkUtcDateTimeType; + +/** + * @deprecated Use SdkOffsetDateTimeType instead. + */ +export type SdkOffsetDatetimeType = SdkOffsetDateTimeType; export interface SdkDurationType extends SdkTypeBase { kind: "duration"; diff --git a/packages/typespec-client-generator-core/src/types.ts b/packages/typespec-client-generator-core/src/types.ts index 98e3f27bf5..f931f19b2b 100644 --- a/packages/typespec-client-generator-core/src/types.ts +++ b/packages/typespec-client-generator-core/src/types.ts @@ -59,7 +59,7 @@ import { SdkConstantType, SdkCredentialParameter, SdkCredentialType, - SdkDatetimeType, + SdkDateTimeType, SdkDictionaryType, SdkDurationType, SdkEnumType, @@ -840,7 +840,7 @@ export function getClientTypeWithDiagnostics( ...getSdkTypeBaseHelper(context, type, type.name), encode: "rfc3339", wireType: { ...getSdkTypeBaseHelper(context, type, "string"), encode: "string" }, - } as SdkDatetimeType; + } as SdkDateTimeType; break; } if (type.name === "duration") { From ed1017c92d937d58e188b0ff3c65fa0ee7115dbe Mon Sep 17 00:00:00 2001 From: Ding Date: Tue, 25 Jun 2024 17:13:02 -0700 Subject: [PATCH 26/42] [CanonicalEmitter] Add option and isArmCommonType check (#1065) This PR addressed 2 issues: 1. add option "use-read-only-status-schema" to fix ProvisioningStateMustBeReadOnly bug; The bug is mentioned here https://github.com/Azure/azure-rest-api-specs/discussions/29471 and the suggested walkaround is set option "use-read-only-status-schema" to true. Canonical emitter doesn't have this option. So add this option to the emitter. ![image](https://github.com/Azure/typespec-azure/assets/8683976/1e12d103-7710-4d92-8458-da8a1c98ae66) 2. add isArmCommonType check to avoid decorator validation in canonical emitter Canonical emitter will generate warning when @typeChangedFrom decorator is used. To make sure this not apply to common type, add isArmCommonType check --------- Co-authored-by: Ding --- ...and_commontype_check-2024-6-24-11-03-51.md | 9 +++++ ...al_swagger_folder_name-2024-6-6-11-44-3.md | 7 ++++ .../typespec-autorest-canonical/package.json | 2 ++ .../src/emitter.ts | 6 ++++ .../test/property-schema.test.ts | 36 ------------------- .../test/test-host.ts | 2 ++ .../typespec-autorest-canonical/tsconfig.json | 3 +- pnpm-lock.yaml | 3 ++ 8 files changed, 31 insertions(+), 37 deletions(-) create mode 100644 .chronus/changes/canonical_emitter_set_option_and_commontype_check-2024-6-24-11-03-51.md create mode 100644 .chronus/changes/update_canonical_swagger_folder_name-2024-6-6-11-44-3.md delete mode 100644 packages/typespec-autorest-canonical/test/property-schema.test.ts diff --git a/.chronus/changes/canonical_emitter_set_option_and_commontype_check-2024-6-24-11-03-51.md b/.chronus/changes/canonical_emitter_set_option_and_commontype_check-2024-6-24-11-03-51.md new file mode 100644 index 0000000000..984bce54a4 --- /dev/null +++ b/.chronus/changes/canonical_emitter_set_option_and_commontype_check-2024-6-24-11-03-51.md @@ -0,0 +1,9 @@ +--- +# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking +changeKind: fix +packages: + - "@azure-tools/typespec-autorest-canonical" +--- + +set option "use-read-only-status-schema" to true to fix ProvisioningStateMustBeReadOnly bug; +add isArmCommonType check to avoid decorator validation in canonical emitter diff --git a/.chronus/changes/update_canonical_swagger_folder_name-2024-6-6-11-44-3.md b/.chronus/changes/update_canonical_swagger_folder_name-2024-6-6-11-44-3.md new file mode 100644 index 0000000000..14101dc92c --- /dev/null +++ b/.chronus/changes/update_canonical_swagger_folder_name-2024-6-6-11-44-3.md @@ -0,0 +1,7 @@ +--- +changeKind: fix +packages: + - "@azure-tools/typespec-autorest-canonical" +--- + +update the canonical swagger file folder name diff --git a/packages/typespec-autorest-canonical/package.json b/packages/typespec-autorest-canonical/package.json index bc4cb420f2..778c8801b5 100644 --- a/packages/typespec-autorest-canonical/package.json +++ b/packages/typespec-autorest-canonical/package.json @@ -55,12 +55,14 @@ "peerDependencies": { "@azure-tools/typespec-autorest": "workspace:~", "@azure-tools/typespec-azure-core": "workspace:~", + "@azure-tools/typespec-azure-resource-manager": "workspace:~", "@azure-tools/typespec-client-generator-core": "workspace:~", "@typespec/versioning": "workspace:~" }, "devDependencies": { "@azure-tools/typespec-autorest": "workspace:~", "@azure-tools/typespec-azure-core": "workspace:~", + "@azure-tools/typespec-azure-resource-manager": "workspace:~", "@azure-tools/typespec-client-generator-core": "workspace:~", "@types/node": "~18.11.19", "@typespec/compiler": "workspace:~", diff --git a/packages/typespec-autorest-canonical/src/emitter.ts b/packages/typespec-autorest-canonical/src/emitter.ts index e4919b12b6..2719c39a01 100644 --- a/packages/typespec-autorest-canonical/src/emitter.ts +++ b/packages/typespec-autorest-canonical/src/emitter.ts @@ -4,6 +4,7 @@ import { getOpenAPIForService, sortOpenAPIDocument, } from "@azure-tools/typespec-autorest"; +import { isArmCommonType } from "@azure-tools/typespec-azure-resource-manager"; import { SdkContext, createSdkContext } from "@azure-tools/typespec-client-generator-core"; import { EmitContext, @@ -65,6 +66,7 @@ export async function $onEmit(context: EmitContext { + if (isArmCommonType(prop) || (prop.model && isArmCommonType(prop.model))) { + return; + } + if (getRenamedFrom(program, prop)) { reportDisallowedDecorator("renamedFrom", prop); } diff --git a/packages/typespec-autorest-canonical/test/property-schema.test.ts b/packages/typespec-autorest-canonical/test/property-schema.test.ts deleted file mode 100644 index a9480e0a19..0000000000 --- a/packages/typespec-autorest-canonical/test/property-schema.test.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { deepStrictEqual, ok } from "assert"; -import { it } from "vitest"; -import { openApiFor } from "./test-host.js"; - -it("produces standard schema for lro status by default", async () => { - const result = await openApiFor( - ` - @service({title: "Test"}) - namespace Test; - - model Bar {propB: int32;} - model Foo { prop1: string;} - - enum FooPrime { Succeeded, Failed, Canceled} - - @pattern("[a-Z0-9]+") - scalar BarPrime extends string; - - model UsesAll { - @visibility("read") - fooProp: Foo; - @visibility("read") - primeProp: FooPrime; - @visibility("read") - barPrimeProp: BarPrime; - } - - op myOp(): void; - - - ` - ); - - ok(!result.isRef); - deepStrictEqual(result.definitions.FooPrime.readOnly, undefined); -}); diff --git a/packages/typespec-autorest-canonical/test/test-host.ts b/packages/typespec-autorest-canonical/test/test-host.ts index 0cc7e9abf8..401ea40aa9 100644 --- a/packages/typespec-autorest-canonical/test/test-host.ts +++ b/packages/typespec-autorest-canonical/test/test-host.ts @@ -1,5 +1,6 @@ import { OpenAPI2Document } from "@azure-tools/typespec-autorest"; import { AzureCoreTestLibrary } from "@azure-tools/typespec-azure-core/testing"; +import { AzureResourceManagerTestLibrary } from "@azure-tools/typespec-azure-resource-manager/testing"; import { SdkTestLibrary as TcgcTestLibrary } from "@azure-tools/typespec-client-generator-core/testing"; import { Diagnostic } from "@typespec/compiler"; import { @@ -26,6 +27,7 @@ export async function createAutorestCanonicalTestHost() { AutorestCanonicalTestLibrary, VersioningTestLibrary, AzureCoreTestLibrary, + AzureResourceManagerTestLibrary, TcgcTestLibrary, ], }); diff --git a/packages/typespec-autorest-canonical/tsconfig.json b/packages/typespec-autorest-canonical/tsconfig.json index f952fb2f3a..c2be90093c 100644 --- a/packages/typespec-autorest-canonical/tsconfig.json +++ b/packages/typespec-autorest-canonical/tsconfig.json @@ -5,7 +5,8 @@ { "path": "../../core/packages/compiler/tsconfig.json" }, { "path": "../../core/packages/http/tsconfig.json" }, { "path": "../../core/packages/openapi/tsconfig.json" }, - { "path": "../typespec-azure-core/tsconfig.json" } + { "path": "../typespec-azure-core/tsconfig.json" }, + { "path": "../typespec-azure-resource-manager/tsconfig.json" } ], "compilerOptions": { "outDir": "dist", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 05124391d2..b204af9594 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1661,6 +1661,9 @@ importers: '@azure-tools/typespec-azure-core': specifier: workspace:~ version: link:../typespec-azure-core + '@azure-tools/typespec-azure-resource-manager': + specifier: workspace:~ + version: link:../typespec-azure-resource-manager '@azure-tools/typespec-client-generator-core': specifier: workspace:~ version: link:../typespec-client-generator-core From 660b58715bd5323ca6cd5b36f296678a4f53a79d Mon Sep 17 00:00:00 2001 From: Chenjie Shi Date: Wed, 26 Jun 2024 10:35:34 +0800 Subject: [PATCH 27/42] [tcgc] support generic type decorators in sdk types (#966) resolve: https://github.com/Azure/typespec-azure/issues/829, #704 current design: 1. use whitelist configured in `tspconfig.yaml` to do decorators filtering, support equal/regex comparison 2. use `jsValue` from typespec decorator arguments to get arguments' value 3. only handle arguments value of typing with number/string/boolean/null/tsp enum member value/tsp literal value, other types will add a diagnostic warning --- .../decorators_list-2024-5-6-18-38-7.md | 7 + .../package.json | 4 +- .../src/configs.ts | 4 + .../src/decorators.ts | 9 +- .../src/http.ts | 5 + .../src/interfaces.ts | 18 +- .../src/internal-utils.ts | 92 +- .../typespec-client-generator-core/src/lib.ts | 12 +- .../src/package.ts | 16 +- .../src/types.ts | 180 ++-- .../test/test-host.ts | 31 +- .../types/general-decorators-list.test.ts | 247 +++++ pnpm-lock.yaml | 973 ++---------------- 13 files changed, 628 insertions(+), 970 deletions(-) create mode 100644 .chronus/changes/decorators_list-2024-5-6-18-38-7.md create mode 100644 packages/typespec-client-generator-core/src/configs.ts create mode 100644 packages/typespec-client-generator-core/test/types/general-decorators-list.test.ts diff --git a/.chronus/changes/decorators_list-2024-5-6-18-38-7.md b/.chronus/changes/decorators_list-2024-5-6-18-38-7.md new file mode 100644 index 0000000000..3893639357 --- /dev/null +++ b/.chronus/changes/decorators_list-2024-5-6-18-38-7.md @@ -0,0 +1,7 @@ +--- +changeKind: feature +packages: + - "@azure-tools/typespec-client-generator-core" +--- + +export decorators in allow list to all sdk types diff --git a/packages/typespec-client-generator-core/package.json b/packages/typespec-client-generator-core/package.json index d60ac13981..b995a940b9 100644 --- a/packages/typespec-client-generator-core/package.json +++ b/packages/typespec-client-generator-core/package.json @@ -62,7 +62,8 @@ "@typespec/compiler": "workspace:~", "@typespec/http": "workspace:~", "@typespec/rest": "workspace:~", - "@typespec/versioning": "workspace:~" + "@typespec/versioning": "workspace:~", + "@typespec/xml": "workspace:~" }, "devDependencies": { "@azure-tools/typespec-azure-core": "workspace:~", @@ -70,6 +71,7 @@ "@types/pluralize": "^0.0.33", "@typespec/compiler": "workspace:~", "@typespec/http": "workspace:~", + "@typespec/xml": "workspace:~", "@typespec/library-linter": "workspace:~", "@typespec/prettier-plugin-typespec": "workspace:~", "@typespec/rest": "workspace:~", diff --git a/packages/typespec-client-generator-core/src/configs.ts b/packages/typespec-client-generator-core/src/configs.ts new file mode 100644 index 0000000000..e63e8b0d71 --- /dev/null +++ b/packages/typespec-client-generator-core/src/configs.ts @@ -0,0 +1,4 @@ +export const defaultDecoratorsAllowList = [ + "TypeSpec\\.Xml\\..*", + "Azure\\.Core\\.@useFinalStateVia", +]; diff --git a/packages/typespec-client-generator-core/src/decorators.ts b/packages/typespec-client-generator-core/src/decorators.ts index 3ceff1c721..5156a2ac0a 100644 --- a/packages/typespec-client-generator-core/src/decorators.ts +++ b/packages/typespec-client-generator-core/src/decorators.ts @@ -29,6 +29,7 @@ import { } from "@typespec/compiler"; import { isHeader } from "@typespec/http"; import { buildVersionProjections, getVersions } from "@typespec/versioning"; +import { defaultDecoratorsAllowList } from "./configs.js"; import { AccessFlags, LanguageScopes, @@ -322,6 +323,7 @@ export function listClients(context: TCGCContext): SdkClient[] { } const operationGroupKey = createStateSymbol("operationGroup"); + export function $operationGroup( context: DecoratorContext, target: Namespace | Interface, @@ -421,6 +423,7 @@ function buildOperationGroupPath(context: TCGCContext, type: Namespace | Interfa } return path.reverse().join("."); } + /** * Return the operation group object for the given namespace or interface or undefined is not an operation group. * @param context TCGCContext @@ -579,9 +582,9 @@ export function listOperationsInOperationGroup( addOperations(group.type); return operations; } - -interface CreateSdkContextOptions { +export interface CreateSdkContextOptions { readonly versionStrategy?: "ignore"; + additionalDecorators?: string[]; } export function createSdkContext< @@ -616,6 +619,7 @@ export function createSdkContext< __namespaceToApiVersionParameter: new Map(), __tspTypeToApiVersions: new Map(), __namespaceToApiVersionClientDefaultValue: new Map(), + decoratorsAllowList: [...defaultDecoratorsAllowList, ...(options?.additionalDecorators ?? [])], }; sdkContext.experimental_sdkPackage = getSdkPackage(sdkContext); if (sdkContext.diagnostics) { @@ -715,6 +719,7 @@ function modelTransitiveSet( } const clientFormatKey = createStateSymbol("clientFormat"); + const allowedClientFormatToTargetTypeMap: Record = { unixtime: ["int32", "int64"], iso8601: ["utcDateTime", "offsetDateTime", "duration"], diff --git a/packages/typespec-client-generator-core/src/http.ts b/packages/typespec-client-generator-core/src/http.ts index 6e9d49d7b8..539ee7079a 100644 --- a/packages/typespec-client-generator-core/src/http.ts +++ b/packages/typespec-client-generator-core/src/http.ts @@ -42,6 +42,7 @@ import { getAvailableApiVersions, getDocHelper, getLocationOfOperation, + getTypeDecorators, isAcceptHeader, isContentTypeHeader, isNeverOrVoidType, @@ -165,6 +166,7 @@ function getSdkHttpParameters( optional: false, correspondingMethodParams, crossLanguageDefinitionId: `${getCrossLanguageDefinitionId(context, httpOperation.operation)}.body`, + decorators: diagnostics.pipe(getTypeDecorators(context, tspBody.type)), }; } if (retval.bodyParam) { @@ -233,6 +235,7 @@ function createContentTypeOrAcceptHeader( let type: SdkType = { kind: "string", encode: "string", + decorators: {}, }; // for contentType, we treat it as a constant IFF there's one value and it's application/json. // this is to prevent a breaking change when a service adds more content types in the future. @@ -253,6 +256,7 @@ function createContentTypeOrAcceptHeader( valueType: type, name: `${httpOperation.operation.name}ContentType`, isGeneratedName: true, + decorators: {}, }; } // No need for clientDefaultValue because it's a constant, it only has one value @@ -265,6 +269,7 @@ function createContentTypeOrAcceptHeader( onClient: false, optional: false, crossLanguageDefinitionId: `${getCrossLanguageDefinitionId(context, httpOperation.operation)}.${name}`, + decorators: {}, }; } diff --git a/packages/typespec-client-generator-core/src/interfaces.ts b/packages/typespec-client-generator-core/src/interfaces.ts index 45525cfacf..5d0d3eeac5 100644 --- a/packages/typespec-client-generator-core/src/interfaces.ts +++ b/packages/typespec-client-generator-core/src/interfaces.ts @@ -53,7 +53,8 @@ export interface SdkInitializationType extends SdkModelType { properties: SdkParameter[]; } -export interface SdkClientType { +export interface SdkClientType + extends DecoratedType { kind: "client"; name: string; description?: string; @@ -76,7 +77,16 @@ export interface SdkOperationGroup { service: Namespace; } -interface SdkTypeBase { +interface DecoratedType { + // Client types sourced from TypeSpec decorated types will have this generic decoratores dict. + // The key is the fully qualified name of the decorator. For example, `TypeSpec.@encode`, `TypeSpec.Xml.@attribute`. + // The value is a dict of the decorator's arguments' value (key is argument's name). + // Only decorators in allowed list will be included in this dict. + // Language's emitter could set `additionalDecorators` in the option when `createSdkContext` to extend the allowed list. + decorators: Record>; +} + +interface SdkTypeBase extends DecoratedType { __raw?: Type; kind: string; deprecation?: string; @@ -340,7 +350,7 @@ export interface SdkEndpointType extends SdkTypeBase { templateArguments: SdkPathParameter[]; } -export interface SdkModelPropertyTypeBase { +export interface SdkModelPropertyTypeBase extends DecoratedType { __raw?: ModelProperty; type: SdkType; name: string; @@ -479,7 +489,7 @@ export interface SdkHttpOperation extends SdkServiceOperationBase { export type SdkServiceOperation = SdkHttpOperation; export type SdkServiceParameter = SdkHttpParameter; -interface SdkMethodBase { +interface SdkMethodBase extends DecoratedType { __raw?: Operation; name: string; access: AccessFlags; diff --git a/packages/typespec-client-generator-core/src/internal-utils.ts b/packages/typespec-client-generator-core/src/internal-utils.ts index 9bf11d8c70..c7b5fcf59a 100644 --- a/packages/typespec-client-generator-core/src/internal-utils.ts +++ b/packages/typespec-client-generator-core/src/internal-utils.ts @@ -4,6 +4,7 @@ import { Interface, Model, Namespace, + Numeric, NumericLiteral, Operation, Program, @@ -11,6 +12,7 @@ import { StringLiteral, Type, Union, + Value, createDiagnosticCollector, getDeprecationDetails, getDoc, @@ -242,6 +244,7 @@ interface DefaultSdkTypeBase { __raw: Type; deprecation?: string; kind: TKind; + decorators: Record>; } /** @@ -252,12 +255,83 @@ export function getSdkTypeBaseHelper( context: TCGCContext, type: Type, kind: TKind -): DefaultSdkTypeBase { - return { +): [DefaultSdkTypeBase, readonly Diagnostic[]] { + const diagnostics = createDiagnosticCollector(); + return diagnostics.wrap({ __raw: type, deprecation: getDeprecationDetails(context.program, type)?.message, kind, - }; + decorators: diagnostics.pipe(getTypeDecorators(context, type)), + }); +} + +export function getNamespacePrefix(namespace: Namespace): string { + return namespace ? getNamespaceFullName(namespace) + "." : ""; +} + +export function getTypeDecorators( + context: TCGCContext, + type: Type +): [Record>, readonly Diagnostic[]] { + const diagnostics = createDiagnosticCollector(); + const retval: Record> = {}; + if ("decorators" in type) { + for (const decorator of type.decorators) { + // only process explicitly defined decorators + if (decorator.definition) { + const decoratorName = `${getNamespacePrefix(decorator.definition?.namespace)}${decorator.definition?.name}`; + // white list filtering + if ( + !context.decoratorsAllowList || + !context.decoratorsAllowList.some((x) => new RegExp(x).test(decoratorName)) + ) { + continue; + } + + retval[decoratorName] = {}; + for (let i = 0; i < decorator.args.length; i++) { + retval[decoratorName][decorator.definition.parameters[i].name] = diagnostics.pipe( + getDecoratorArgValue(decorator.args[i].jsValue, type, decoratorName) + ); + } + } + } + } + return diagnostics.wrap(retval); +} + +function getDecoratorArgValue( + arg: + | Type + | Record + | Value + | unknown[] + | string + | number + | boolean + | Numeric + | null, + type: Type, + decoratorName: string +): [any, readonly Diagnostic[]] { + const diagnostics = createDiagnosticCollector(); + if (typeof arg === "object" && arg !== null && "kind" in arg) { + if (arg.kind === "EnumMember") { + return diagnostics.wrap(arg.value ?? arg.name); + } + if (arg.kind === "String" || arg.kind === "Number" || arg.kind === "Boolean") { + return diagnostics.wrap(arg.value); + } + diagnostics.add( + createDiagnostic({ + code: "unsupported-generic-decorator-arg-type", + target: type, + format: { decoratorName }, + }) + ); + return diagnostics.wrap(undefined); + } + return diagnostics.wrap(arg); } export function intOrFloat(value: number): "int32" | "float32" { @@ -325,6 +399,7 @@ export interface TCGCContext { apiVersion?: string; __service_projection?: Map; originalProgram: Program; + decoratorsAllowList?: string[]; } export function createTCGCContext(program: Program): TCGCContext { @@ -426,9 +501,14 @@ export function isNeverOrVoidType(type: Type): boolean { return isNeverType(type) || isVoidType(type); } -export function getAnyType(): SdkBuiltInType { - return { +export function getAnyType( + context: TCGCContext, + type: Type +): [SdkBuiltInType, readonly Diagnostic[]] { + const diagnostics = createDiagnosticCollector(); + return diagnostics.wrap({ kind: "any", encode: "string", - }; + decorators: diagnostics.pipe(getTypeDecorators(context, type)), + }); } diff --git a/packages/typespec-client-generator-core/src/lib.ts b/packages/typespec-client-generator-core/src/lib.ts index fbca5ba653..bcf8467a9d 100644 --- a/packages/typespec-client-generator-core/src/lib.ts +++ b/packages/typespec-client-generator-core/src/lib.ts @@ -132,19 +132,25 @@ export const $lib = createTypeSpecLibrary({ "no-corresponding-method-param": { severity: "error", messages: { - default: `Missing "${"paramName"}" method parameter in method "${"methodName"}", when "${"paramName"}" must be sent to the service. Add a parameter named "${"paramName"}" to the method.`, + default: paramMessage`Missing "${"paramName"}" method parameter in method "${"methodName"}", when "${"paramName"}" must be sent to the service. Add a parameter named "${"paramName"}" to the method.`, }, }, "unsupported-protocol": { severity: "error", messages: { - default: paramMessage`Currently we only support HTTP and HTTPS protocols`, + default: "Currently we only support HTTP and HTTPS protocols", }, }, "no-emitter-name": { severity: "warning", messages: { - default: paramMessage`Can not find name for your emitter, please check your emitter name.`, + default: "Can not find name for your emitter, please check your emitter name.", + }, + }, + "unsupported-generic-decorator-arg-type": { + severity: "warning", + messages: { + default: paramMessage`Can not parse the arg type for decorator "${"decoratorName"}".`, }, }, "empty-client-name": { diff --git a/packages/typespec-client-generator-core/src/package.ts b/packages/typespec-client-generator-core/src/package.ts index 2bd8261c63..8f10cfb26e 100644 --- a/packages/typespec-client-generator-core/src/package.ts +++ b/packages/typespec-client-generator-core/src/package.ts @@ -54,7 +54,7 @@ import { getDocHelper, getHashForType, getLocationOfOperation, - getSdkTypeBaseHelper, + getTypeDecorators, isNeverOrVoidType, updateWithApiVersionInformation, } from "./internal-utils.js"; @@ -214,6 +214,7 @@ function getSdkMethodResponse< values: allResponseBodies, name: createGeneratedName(context, operation, "UnionResponse"), isGeneratedName: true, + decorators: {}, }; } else if (responseTypes) { type = allResponseBodies[0]; @@ -222,6 +223,7 @@ function getSdkMethodResponse< type = { kind: "nullable", type: type, + decorators: {}, }; } return { @@ -307,6 +309,7 @@ function getSdkBasicServiceMethod< return undefined; // currently we only return a value for paging or lro }, crossLanguageDefintionId: getCrossLanguageDefinitionId(context, operation), + decorators: diagnostics.pipe(getTypeDecorators(context, operation)), }); } @@ -392,6 +395,7 @@ function getSdkInitializationType< apiVersions: context.__tspTypeToApiVersions.get(client.type)!, isFormDataType: false, isError: false, + decorators: {}, }); } @@ -421,6 +425,7 @@ function getSdkMethodParameter( isApiVersionParam: false, onClient: false, crossLanguageDefinitionId: "anonymous", + decorators: diagnostics.pipe(getTypeDecorators(context, type)), }); } return diagnostics.wrap({ @@ -454,6 +459,7 @@ function getSdkMethods diagnostics.pipe(getClientTypeWithDiagnostics(context, x, operation)) ), @@ -346,7 +358,7 @@ export function getSdkUnionWithDiagnostics( if (nonNullOptions.length === 0) { diagnostics.add(createDiagnostic({ code: "union-null", target: type })); - return diagnostics.wrap(getAnyType()); + return diagnostics.wrap(diagnostics.pipe(getAnyType(context, type))); } if (nonNullOptions.length === 1) { @@ -362,14 +374,14 @@ export function getSdkUnionWithDiagnostics( ) { const unionAsEnum = diagnostics.pipe(getUnionAsEnum(type)); if (unionAsEnum) { - retval = getSdkUnionEnum(context, unionAsEnum, operation); + retval = diagnostics.pipe(getSdkUnionEnumWithDiagnostics(context, unionAsEnum, operation)); } } // other cases if (retval === undefined) { retval = { - ...getSdkTypeBaseHelper(context, type, "union"), + ...diagnostics.pipe(getSdkTypeBaseHelper(context, type, "union")), name: getLibraryName(context, type) || getGeneratedName(context, type), tspNamespace: getNamespaceHelper(type.namespace), isGeneratedName: !type.name, @@ -381,7 +393,7 @@ export function getSdkUnionWithDiagnostics( if (nullOption !== undefined) { retval = { - ...getSdkTypeBaseHelper(context, type, "nullable"), + ...diagnostics.pipe(getSdkTypeBaseHelper(context, type, "nullable")), type: retval, }; } @@ -401,7 +413,7 @@ function getSdkConstantWithDiagnostics( case "Boolean": const valueType = diagnostics.pipe(getSdkBuiltInTypeWithDiagnostics(context, type)); return diagnostics.wrap({ - ...getSdkTypeBaseHelper(context, type, "constant"), + ...diagnostics.pipe(getSdkTypeBaseHelper(context, type, "constant")), value: type.value, valueType, name: getGeneratedName(context, type, operation), @@ -499,6 +511,7 @@ function addDiscriminatorToModelType( discriminatorType = { kind: "string", encode: "string", + decorators: {}, }; } const name = discriminatorProperty ? discriminatorProperty.name : discriminator.propertyName; @@ -521,6 +534,7 @@ function addDiscriminatorToModelType( isMultipartFileInput: false, // discriminator property cannot be a file flatten: false, // discriminator properties can not be flattened crossLanguageDefinitionId: `${model.crossLanguageDefinitionId}.${name}`, + decorators: {}, }); model.discriminatorProperty = model.properties[0]; } @@ -551,7 +565,7 @@ export function getSdkModelWithDiagnostics( const generatedName = getGeneratedName(context, type); const name = getLibraryName(context, type) || generatedName; sdkType = { - ...getSdkTypeBaseHelper(context, type, "model"), + ...diagnostics.pipe(getSdkTypeBaseHelper(context, type, "model")), name: name, tspNamespace: getNamespaceHelper(type.namespace), isGeneratedName: !type.name, @@ -609,7 +623,8 @@ function getSdkEnumValueType( | IterableIterator | IterableIterator> | IterableIterator> -): SdkBuiltInType { +): [SdkBuiltInType, readonly Diagnostic[]] { + const diagnostics = createDiagnosticCollector(); let kind: "string" | "int32" | "float32" = "string"; let type: EnumMember | UnionVariant; for (const value of values) { @@ -630,24 +645,29 @@ function getSdkEnumValueType( } } - return { - ...getSdkTypeBaseHelper(context, type!, kind!), + return diagnostics.wrap({ + ...diagnostics.pipe(getSdkTypeBaseHelper(context, type!, kind!)), encode: kind!, - }; + }); } -function getUnionAsEnumValueType(context: TCGCContext, union: Union): SdkBuiltInType | undefined { +function getUnionAsEnumValueType( + context: TCGCContext, + union: Union +): [SdkBuiltInType | undefined, readonly Diagnostic[]] { + const diagnostics = createDiagnosticCollector(); const nonNullOptions = getNonNullOptions(union); for (const option of nonNullOptions) { if (option.kind === "Union") { - const ret = getUnionAsEnumValueType(context, option); - if (ret) return ret; + const ret = diagnostics.pipe(getUnionAsEnumValueType(context, option)); + if (ret) return diagnostics.wrap(ret); } else if (option.kind === "Scalar") { - return getClientType(context, option) as SdkBuiltInType; + const ret = diagnostics.pipe(getClientTypeWithDiagnostics(context, option)) as SdkBuiltInType; + return diagnostics.wrap(ret); } } - return undefined; + return diagnostics.wrap(undefined); } export function getSdkEnumValue( @@ -655,30 +675,48 @@ export function getSdkEnumValue( enumType: SdkEnumType, type: EnumMember ): SdkEnumValueType { + return ignoreDiagnostics(getSdkEnumValueWithDiagnostics(context, enumType, type)); +} + +function getSdkEnumValueWithDiagnostics( + context: TCGCContext, + enumType: SdkEnumType, + type: EnumMember +): [SdkEnumValueType, readonly Diagnostic[]] { + const diagnostics = createDiagnosticCollector(); const docWrapper = getDocHelper(context, type); - return { - ...getSdkTypeBaseHelper(context, type, "enumvalue"), + return diagnostics.wrap({ + ...diagnostics.pipe(getSdkTypeBaseHelper(context, type, "enumvalue")), name: getLibraryName(context, type), value: type.value ?? type.name, description: docWrapper.description, details: docWrapper.details, enumType, valueType: enumType.valueType, - }; + }); } export function getSdkEnum(context: TCGCContext, type: Enum, operation?: Operation): SdkEnumType { + return ignoreDiagnostics(getSdkEnumWithDiagnostics(context, type, operation)); +} + +function getSdkEnumWithDiagnostics( + context: TCGCContext, + type: Enum, + operation?: Operation +): [SdkEnumType, readonly Diagnostic[]] { + const diagnostics = createDiagnosticCollector(); let sdkType = context.modelsMap?.get(type) as SdkEnumType | undefined; if (!sdkType) { const docWrapper = getDocHelper(context, type); sdkType = { - ...getSdkTypeBaseHelper(context, type, "enum"), + ...diagnostics.pipe(getSdkTypeBaseHelper(context, type, "enum")), name: getLibraryName(context, type), tspNamespace: getNamespaceHelper(type.namespace), isGeneratedName: false, description: docWrapper.description, details: docWrapper.details, - valueType: getSdkEnumValueType(context, type.members.values()), + valueType: diagnostics.pipe(getSdkEnumValueType(context, type.members.values())), values: [], isFixed: true, // enums are always fixed after we switch to use union to represent extensible enum isFlags: false, @@ -689,24 +727,27 @@ export function getSdkEnum(context: TCGCContext, type: Enum, operation?: Operati isUnionAsEnum: false, }; for (const member of type.members.values()) { - sdkType.values.push(getSdkEnumValue(context, sdkType, member)); + sdkType.values.push( + diagnostics.pipe(getSdkEnumValueWithDiagnostics(context, sdkType, member)) + ); } } updateModelsMap(context, type, sdkType, operation); - return sdkType; + return diagnostics.wrap(sdkType); } function getSdkUnionEnumValues( context: TCGCContext, type: UnionEnum, enumType: SdkEnumType -): SdkEnumValueType[] { +): [SdkEnumValueType[], readonly Diagnostic[]] { + const diagnostics = createDiagnosticCollector(); const values: SdkEnumValueType[] = []; for (const member of type.flattenedMembers.values()) { const docWrapper = getDocHelper(context, member.type); const name = getLibraryName(context, member.type); values.push({ - kind: "enumvalue", + ...diagnostics.pipe(getSdkTypeBaseHelper(context, member.type, "enumvalue")), name: name ? name : `${member.value}`, tspNamespace: enumType.tspNamespace, description: docWrapper.description, @@ -716,10 +757,19 @@ function getSdkUnionEnumValues( enumType, }); } - return values; + return diagnostics.wrap(values); } export function getSdkUnionEnum(context: TCGCContext, type: UnionEnum, operation?: Operation) { + return ignoreDiagnostics(getSdkUnionEnumWithDiagnostics(context, type, operation)); +} + +function getSdkUnionEnumWithDiagnostics( + context: TCGCContext, + type: UnionEnum, + operation?: Operation +): [SdkEnumType, readonly Diagnostic[]] { + const diagnostics = createDiagnosticCollector(); const union = type.union; let sdkType = context.modelsMap?.get(union) as SdkEnumType | undefined; if (!sdkType) { @@ -727,15 +777,15 @@ export function getSdkUnionEnum(context: TCGCContext, type: UnionEnum, operation const generatedName = getGeneratedName(context, union); const name = getLibraryName(context, type.union) || generatedName; sdkType = { - ...getSdkTypeBaseHelper(context, type.union, "enum"), + ...diagnostics.pipe(getSdkTypeBaseHelper(context, type.union, "enum")), name, tspNamespace: getNamespaceHelper(type.union.namespace), isGeneratedName: !type.union.name, description: docWrapper.description, details: docWrapper.details, valueType: - getUnionAsEnumValueType(context, type.union) ?? - getSdkEnumValueType(context, type.flattenedMembers.values()), + diagnostics.pipe(getUnionAsEnumValueType(context, type.union)) ?? + diagnostics.pipe(getSdkEnumValueType(context, type.flattenedMembers.values())), values: [], isFixed: !type.open, isFlags: false, @@ -745,35 +795,36 @@ export function getSdkUnionEnum(context: TCGCContext, type: UnionEnum, operation apiVersions: getAvailableApiVersions(context, type.union, type.union.namespace), isUnionAsEnum: true, }; - sdkType.values = getSdkUnionEnumValues(context, type, sdkType); + sdkType.values = diagnostics.pipe(getSdkUnionEnumValues(context, type, sdkType)); } updateModelsMap(context, type.union, sdkType, operation); - return sdkType; + return diagnostics.wrap(sdkType); } function getKnownValuesEnum( context: TCGCContext, type: Scalar | ModelProperty, operation?: Operation -): SdkEnumType | undefined { +): [SdkEnumType | undefined, readonly Diagnostic[]] { + const diagnostics = createDiagnosticCollector(); const knownValues = getKnownValues(context.program, type); if (!knownValues) { - return; + return diagnostics.wrap(undefined); } if (type.kind === "ModelProperty") { - const sdkType = getSdkEnum(context, knownValues, operation); - return sdkType; + const sdkType = diagnostics.pipe(getSdkEnumWithDiagnostics(context, knownValues, operation)); + return diagnostics.wrap(sdkType); } else { let sdkType = context.modelsMap?.get(type) as SdkEnumType | undefined; if (!sdkType) { const docWrapper = getDocHelper(context, type); sdkType = { - ...getSdkTypeBaseHelper(context, type, "enum"), + ...diagnostics.pipe(getSdkTypeBaseHelper(context, type, "enum")), name: getLibraryName(context, type), isGeneratedName: false, description: docWrapper.description, details: docWrapper.details, - valueType: getSdkEnumValueType(context, knownValues.members.values()), + valueType: diagnostics.pipe(getSdkEnumValueType(context, knownValues.members.values())), values: [], isFixed: false, isFlags: false, @@ -784,11 +835,13 @@ function getKnownValuesEnum( isUnionAsEnum: false, }; for (const member of knownValues.members.values()) { - sdkType.values.push(getSdkEnumValue(context, sdkType, member)); + sdkType.values.push( + diagnostics.pipe(getSdkEnumValueWithDiagnostics(context, sdkType, member)) + ); } } updateModelsMap(context, type, sdkType, operation); - return sdkType; + return diagnostics.wrap(sdkType); } } @@ -827,7 +880,7 @@ export function getClientTypeWithDiagnostics( ); addEncodeInfo(context, type, baseType); addFormatInfo(context, type, baseType); - retval = getKnownValuesEnum(context, type, operation) ?? baseType; + retval = diagnostics.pipe(getKnownValuesEnum(context, type, operation)) ?? baseType; const namespace = type.namespace ? getNamespaceFullName(type.namespace) : ""; retval.kind = context.knownScalars[`${namespace}.${type.name}`] ?? retval.kind; const docWrapper = getDocHelper(context, type); @@ -837,14 +890,17 @@ export function getClientTypeWithDiagnostics( } if (type.name === "utcDateTime" || type.name === "offsetDateTime") { retval = { - ...getSdkTypeBaseHelper(context, type, type.name), + ...diagnostics.pipe(getSdkTypeBaseHelper(context, type, type.name)), encode: "rfc3339", - wireType: { ...getSdkTypeBaseHelper(context, type, "string"), encode: "string" }, + wireType: { + ...diagnostics.pipe(getSdkTypeBaseHelper(context, type, "string")), + encode: "string", + }, } as SdkDateTimeType; break; } if (type.name === "duration") { - retval = getSdkDurationType(context, type); + retval = diagnostics.pipe(getSdkDurationTypeWithDiagnostics(context, type)); break; } const scalarType = diagnostics.pipe(getSdkBuiltInTypeWithDiagnostics(context, type)); @@ -853,7 +909,7 @@ export function getClientTypeWithDiagnostics( retval = scalarType; break; case "Enum": - retval = getSdkEnum(context, type, operation); + retval = diagnostics.pipe(getSdkEnumWithDiagnostics(context, type, operation)); break; case "Union": retval = diagnostics.pipe(getSdkUnionWithDiagnostics(context, type, operation)); @@ -864,7 +920,7 @@ export function getClientTypeWithDiagnostics( ); diagnostics.pipe(addEncodeInfo(context, type, innerType)); addFormatInfo(context, type, innerType); - retval = getKnownValuesEnum(context, type, operation) ?? innerType; + retval = diagnostics.pipe(getKnownValuesEnum(context, type, operation)) ?? innerType; break; case "UnionVariant": const unionType = diagnostics.pipe( @@ -877,11 +933,11 @@ export function getClientTypeWithDiagnostics( } break; case "EnumMember": - const enumType = getSdkEnum(context, type.enum, operation); - retval = getSdkEnumValue(context, enumType, type); + const enumType = diagnostics.pipe(getSdkEnumWithDiagnostics(context, type.enum, operation)); + retval = diagnostics.pipe(getSdkEnumValueWithDiagnostics(context, enumType, type)); break; default: - retval = getAnyType(); + retval = diagnostics.pipe(getAnyType(context, type)); diagnostics.add( createDiagnostic({ code: "unsupported-kind", target: type, format: { kind: type.kind } }) ); @@ -940,6 +996,7 @@ function getSdkCredentialType( __raw: client.service, kind: "credential", scheme: scheme, + decorators: {}, }); } } @@ -950,6 +1007,7 @@ function getSdkCredentialType( values: credentialTypes, name: createGeneratedName(context, client.service, "CredentialUnion"), isGeneratedName: true, + decorators: {}, }; } return credentialTypes[0]; @@ -973,6 +1031,7 @@ export function getSdkCredentialParameter( optional: false, isApiVersionParam: false, crossLanguageDefinitionId: `${getCrossLanguageDefinitionId(context, client.service)}.credential`, + decorators: {}, }; } @@ -989,7 +1048,7 @@ export function getSdkModelPropertyTypeBase( addFormatInfo(context, type, propertyType); const knownValues = getKnownValues(context.program, type); if (knownValues) { - propertyType = getSdkEnum(context, knownValues, operation); + propertyType = diagnostics.pipe(getSdkEnumWithDiagnostics(context, knownValues, operation)); } const docWrapper = getDocHelper(context, type); const name = getPropertyNames(context, type)[0]; @@ -1008,6 +1067,7 @@ export function getSdkModelPropertyTypeBase( operation ? getLocationOfOperation(operation) : undefined ), crossLanguageDefinitionId: getCrossLanguageDefinitionId(context, type), + decorators: diagnostics.pipe(getTypeDecorators(context, type)), }); } @@ -1475,7 +1535,9 @@ export function getAllModelsWithDiagnostics( const [_, versionMap] = getVersions(context.program, client.service); if (versionMap && versionMap.getVersions()[0]) { // create sdk enum for versions enum - const sdkVersionsEnum = getSdkEnum(context, versionMap.getVersions()[0].enumMember.enum); + const sdkVersionsEnum = diagnostics.pipe( + getSdkEnumWithDiagnostics(context, versionMap.getVersions()[0].enumMember.enum) + ); if ( context.apiVersion !== undefined && context.apiVersion !== "latest" && diff --git a/packages/typespec-client-generator-core/test/test-host.ts b/packages/typespec-client-generator-core/test/test-host.ts index 013a245d74..2ec027c6c0 100644 --- a/packages/typespec-client-generator-core/test/test-host.ts +++ b/packages/typespec-client-generator-core/test/test-host.ts @@ -9,7 +9,7 @@ import { import { HttpTestLibrary } from "@typespec/http/testing"; import { RestTestLibrary } from "@typespec/rest/testing"; import { VersioningTestLibrary } from "@typespec/versioning/testing"; -import { createSdkContext } from "../src/decorators.js"; +import { CreateSdkContextOptions, createSdkContext } from "../src/decorators.js"; import { SdkContext, SdkEmitterOptions, @@ -41,12 +41,12 @@ export interface SdkTestRunner extends BasicTestRunner { } export function createSdkContextTestHelper< - TOptions extends object = CreateSdkTestRunnerOptions, + TOptions extends Record = CreateSdkTestRunnerOptions, TServiceOperation extends SdkServiceOperation = SdkHttpOperation, >( program: Program, options: TOptions, - emitterName?: string + sdkContextOption?: CreateSdkContextOptions ): SdkContext { const emitContext: EmitContext = { program: program, @@ -54,7 +54,11 @@ export function createSdkContextTestHelper< options: options, getAssetEmitter: null as any, }; - return createSdkContext(emitContext, emitterName ?? "@azure-tools/typespec-csharp"); + return createSdkContext( + emitContext, + options.emitterName ?? "@azure-tools/typespec-csharp", + sdkContextOption + ); } export interface CreateSdkTestRunnerOptions extends SdkEmitterOptions { @@ -65,7 +69,8 @@ export interface CreateSdkTestRunnerOptions extends SdkEmitterOptions { } export async function createSdkTestRunner( - options: CreateSdkTestRunnerOptions = {} + options: CreateSdkTestRunnerOptions = {}, + sdkContextOption?: CreateSdkContextOptions ): Promise { const host = await createSdkTestHost(options); let autoUsings = [ @@ -88,7 +93,7 @@ export async function createSdkTestRunner( sdkTestRunner.context = createSdkContextTestHelper( sdkTestRunner.program, options, - options.emitterName + sdkContextOption ); return result; }; @@ -100,7 +105,7 @@ export async function createSdkTestRunner( sdkTestRunner.context = createSdkContextTestHelper( sdkTestRunner.program, options, - options.emitterName + sdkContextOption ); return result; }; @@ -112,7 +117,7 @@ export async function createSdkTestRunner( sdkTestRunner.context = createSdkContextTestHelper( sdkTestRunner.program, options, - options.emitterName + sdkContextOption ); return result; }; @@ -129,7 +134,7 @@ export async function createSdkTestRunner( sdkTestRunner.context = createSdkContextTestHelper( sdkTestRunner.program, options, - options.emitterName + sdkContextOption ); return result; }; @@ -151,7 +156,7 @@ export async function createSdkTestRunner( sdkTestRunner.context = createSdkContextTestHelper( sdkTestRunner.program, options, - options.emitterName + sdkContextOption ); return result; }; @@ -181,7 +186,7 @@ export async function createSdkTestRunner( sdkTestRunner.context = createSdkContextTestHelper( sdkTestRunner.program, options, - options.emitterName + sdkContextOption ); return result; }; @@ -214,7 +219,7 @@ export async function createSdkTestRunner( sdkTestRunner.context = createSdkContextTestHelper( sdkTestRunner.program, options, - options.emitterName + sdkContextOption ); return result; }; @@ -227,7 +232,7 @@ export async function createSdkTestRunner( sdkTestRunner.context = createSdkContextTestHelper( sdkTestRunner.program, options, - options.emitterName + sdkContextOption ); return result; }; diff --git a/packages/typespec-client-generator-core/test/types/general-decorators-list.test.ts b/packages/typespec-client-generator-core/test/types/general-decorators-list.test.ts new file mode 100644 index 0000000000..fab9c15d0f --- /dev/null +++ b/packages/typespec-client-generator-core/test/types/general-decorators-list.test.ts @@ -0,0 +1,247 @@ +import { AzureCoreTestLibrary } from "@azure-tools/typespec-azure-core/testing"; +import { expectDiagnostics } from "@typespec/compiler/testing"; +import { XmlTestLibrary } from "@typespec/xml/testing"; +import { deepStrictEqual, strictEqual } from "assert"; +import { beforeEach, describe, it } from "vitest"; +import { SdkTestRunner, createSdkTestRunner } from "../test-host.js"; + +describe("typespec-client-generator-core: general decorators list", () => { + let runner: SdkTestRunner; + + beforeEach(async () => { + runner = await createSdkTestRunner({ emitterName: "@azure-tools/typespec-java" }); + }); + + it("no arg", async function () { + runner = await createSdkTestRunner({}, { additionalDecorators: ["TypeSpec\\.@error"] }); + + await runner.compileWithBuiltInService(` + @error + model Blob { + id: string; + } + + op test(): Blob; + `); + + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + deepStrictEqual(models[0].decorators["TypeSpec.@error"], {}); + expectDiagnostics(runner.context.diagnostics, []); + }); + + it("basic arg type", async function () { + runner = await createSdkTestRunner( + {}, + { additionalDecorators: ["Azure\\.ClientGenerator\\.Core\\.@clientName"] } + ); + + await runner.compileWithBuiltInService(` + model Blob { + @clientName("ID") + id: string; + } + + op test(): Blob; + `); + + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + deepStrictEqual(models[0].properties[0].decorators["Azure.ClientGenerator.Core.@clientName"], { + rename: "ID", + }); + expectDiagnostics(runner.context.diagnostics, []); + }); + + it("enum member arg type", async function () { + runner = await createSdkTestRunner({}, { additionalDecorators: ["TypeSpec\\.@encode"] }); + + await runner.compileWithBuiltInService(` + model Blob { + @encode(BytesKnownEncoding.base64url) + value: bytes; + } + + op test(): Blob; + `); + + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + deepStrictEqual(models[0].properties[0].decorators["TypeSpec.@encode"], { + encoding: "base64url", + }); + expectDiagnostics(runner.context.diagnostics, []); + }); + + it("decorator arg type not supported", async function () { + runner = await createSdkTestRunner({}, { additionalDecorators: ["TypeSpec\\.@service"] }); + + await runner.compileWithBuiltInService(` + op test(): void; + `); + + deepStrictEqual( + runner.context.experimental_sdkPackage.clients[0].decorators["TypeSpec.@service"], + { options: undefined } + ); + expectDiagnostics(runner.context.diagnostics, { + code: "@azure-tools/typespec-client-generator-core/unsupported-generic-decorator-arg-type", + }); + }); + + describe("xml scenario", () => { + it("@attribute", async function () { + runner = await createSdkTestRunner({ + librariesToAdd: [XmlTestLibrary], + autoUsings: ["TypeSpec.Xml"], + }); + + await runner.compileWithBuiltInService(` + model Blob { + @attribute id: string; + } + + op test(): Blob; + `); + + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + deepStrictEqual(models[0].properties[0].decorators["TypeSpec.Xml.@attribute"], {}); + }); + + it("@name", async function () { + runner = await createSdkTestRunner({ + librariesToAdd: [XmlTestLibrary], + autoUsings: ["TypeSpec.Xml"], + }); + + await runner.compileWithBuiltInService(` + @name("XmlBook") + model Book { + @name("XmlId") id: string; + content: string; + } + + op test(): Book; + `); + + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + deepStrictEqual(models[0].decorators["TypeSpec.Xml.@name"], { name: "XmlBook" }); + deepStrictEqual(models[0].properties[0].decorators["TypeSpec.Xml.@name"], { name: "XmlId" }); + }); + + it("@ns", async function () { + runner = await createSdkTestRunner({ + librariesToAdd: [XmlTestLibrary], + autoUsings: ["TypeSpec.Xml"], + }); + + await runner.compileWithBuiltInService(` + @ns("https://example.com/ns1", "ns1") + model Foo { + @ns("https://example.com/ns1", "ns1") + bar1: string; + + @ns("https://example.com/ns2", "ns2") + bar2: string; + } + + op test(): Foo; + `); + + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + deepStrictEqual(models[0].decorators["TypeSpec.Xml.@ns"], { + ns: "https://example.com/ns1", + prefix: "ns1", + }); + deepStrictEqual(models[0].properties[0].decorators["TypeSpec.Xml.@ns"], { + ns: "https://example.com/ns1", + prefix: "ns1", + }); + deepStrictEqual(models[0].properties[1].decorators["TypeSpec.Xml.@ns"], { + ns: "https://example.com/ns2", + prefix: "ns2", + }); + }); + + it("@nsDeclarations", async function () { + runner = await createSdkTestRunner({ + librariesToAdd: [XmlTestLibrary], + autoUsings: ["TypeSpec.Xml"], + }); + + await runner.compileWithBuiltInService(` + @Xml.nsDeclarations + enum Namespaces { + ns1: "https://example.com/ns1", + ns2: "https://example.com/ns2", + } + + @Xml.ns(Namespaces.ns1) + model Foo { + @Xml.ns(Namespaces.ns1) + bar1: string; + + @Xml.ns(Namespaces.ns2) + bar2: string; + } + + op test(): Foo; + `); + + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + deepStrictEqual(models[0].decorators["TypeSpec.Xml.@ns"], { + ns: "https://example.com/ns1", + }); + deepStrictEqual(models[0].properties[0].decorators["TypeSpec.Xml.@ns"], { + ns: "https://example.com/ns1", + }); + deepStrictEqual(models[0].properties[1].decorators["TypeSpec.Xml.@ns"], { + ns: "https://example.com/ns2", + }); + }); + + it("@unwrapped", async function () { + runner = await createSdkTestRunner({ + librariesToAdd: [XmlTestLibrary], + autoUsings: ["TypeSpec.Xml"], + }); + + await runner.compileWithBuiltInService(` + model Pet { + @unwrapped tags: string[]; + } + + op test(): Pet; + `); + + const models = runner.context.experimental_sdkPackage.models; + strictEqual(models.length, 1); + deepStrictEqual(models[0].properties[0].decorators["TypeSpec.Xml.@unwrapped"], {}); + }); + }); + + describe("azure scenario", () => { + it("@useFinalStateVia", async function () { + runner = await createSdkTestRunner({ + librariesToAdd: [AzureCoreTestLibrary], + autoUsings: ["Azure.Core"], + }); + + await runner.compileWithBuiltInService(` + @useFinalStateVia("original-uri") + @put + op test(): void; + `); + + const methods = runner.context.experimental_sdkPackage.clients[0].methods; + strictEqual(methods.length, 1); + deepStrictEqual(methods[0].decorators["Azure.Core.@useFinalStateVia"], { + finalState: "original-uri", + }); + }); + }); +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b204af9594..15132c721e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,9 +1,5 @@ lockfileVersion: '6.0' -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - overrides: '@fluentui/react-theme': 9.1.17 @@ -2042,6 +2038,9 @@ importers: '@typespec/versioning': specifier: workspace:~ version: link:../../core/packages/versioning + '@typespec/xml': + specifier: workspace:~ + version: link:../../core/packages/xml '@vitest/coverage-v8': specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) @@ -2117,16 +2116,16 @@ importers: dependencies: '@docusaurus/core': specifier: ^3.3.2 - version: 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + version: 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) '@docusaurus/plugin-content-docs': specifier: ~3.3.2 - version: 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + version: 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) '@docusaurus/preset-classic': specifier: ^3.3.2 - version: 3.3.2(@algolia/client-search@4.23.3)(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.13.0)(typescript@5.4.5) + version: 3.3.2(@algolia/client-search@4.23.3)(@swc/core@1.5.7)(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.13.0)(typescript@5.4.5) '@docusaurus/theme-common': specifier: ~3.3.2 - version: 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + version: 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) '@fluentui/react-components': specifier: ~9.52.0 version: 9.52.0(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) @@ -2187,13 +2186,13 @@ importers: version: link:../typespec-service-csharp '@docusaurus/module-type-aliases': specifier: ^3.3.2 - version: 3.3.2(react-dom@18.3.1)(react@18.3.1) + version: 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) '@docusaurus/tsconfig': specifier: ^3.3.2 version: 3.3.2 '@docusaurus/types': specifier: ^3.3.2 - version: 3.3.2(react-dom@18.3.1)(react@18.3.1) + version: 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) '@types/node': specifier: ~18.11.19 version: 18.11.19 @@ -4318,104 +4317,6 @@ packages: - webpack-cli dev: false - /@docusaurus/core@3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-PzKMydKI3IU1LmeZQDi+ut5RSuilbXnA8QdowGeJEgU8EJjmx3rBHNT1LxQxOVqNEwpWi/csLwd9bn7rUjggPA==} - engines: {node: '>=18.0'} - hasBin: true - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - dependencies: - '@babel/core': 7.24.5 - '@babel/generator': 7.24.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-transform-runtime': 7.24.3(@babel/core@7.24.5) - '@babel/preset-env': 7.24.5(@babel/core@7.24.5) - '@babel/preset-react': 7.24.1(@babel/core@7.24.5) - '@babel/preset-typescript': 7.24.1(@babel/core@7.24.5) - '@babel/runtime': 7.24.5 - '@babel/runtime-corejs3': 7.24.5 - '@babel/traverse': 7.24.5 - '@docusaurus/cssnano-preset': 3.3.2 - '@docusaurus/logger': 3.3.2 - '@docusaurus/mdx-loader': 3.3.2(@docusaurus/types@3.3.2)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - autoprefixer: 10.4.19(postcss@8.4.38) - babel-loader: 9.1.3(@babel/core@7.24.5)(webpack@5.91.0) - babel-plugin-dynamic-import-node: 2.3.3 - boxen: 6.2.1 - chalk: 4.1.2 - chokidar: 3.6.0 - clean-css: 5.3.3 - cli-table3: 0.6.5 - combine-promises: 1.2.0 - commander: 5.1.0 - copy-webpack-plugin: 11.0.0(webpack@5.91.0) - core-js: 3.37.1 - css-loader: 6.11.0(webpack@5.91.0) - css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.91.0) - cssnano: 6.1.2(postcss@8.4.38) - del: 6.1.1 - detect-port: 1.6.1 - escape-html: 1.0.3 - eta: 2.2.0 - eval: 0.1.8 - file-loader: 6.2.0(webpack@5.91.0) - fs-extra: 11.2.0 - html-minifier-terser: 7.2.0 - html-tags: 3.3.1 - html-webpack-plugin: 5.6.0(webpack@5.91.0) - leven: 3.1.0 - lodash: 4.17.21 - mini-css-extract-plugin: 2.9.0(webpack@5.91.0) - p-map: 4.0.0 - postcss: 8.4.38 - postcss-loader: 7.3.4(postcss@8.4.38)(typescript@5.4.5)(webpack@5.91.0) - prompts: 2.4.2 - react: 18.3.1 - react-dev-utils: 12.0.1(eslint@8.57.0)(typescript@5.4.5)(webpack@5.91.0) - react-dom: 18.3.1(react@18.3.1) - react-helmet-async: 1.3.0(react-dom@18.3.1)(react@18.3.1) - react-loadable: /@docusaurus/react-loadable@6.0.0(react@18.3.1) - react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@6.0.0)(webpack@5.91.0) - react-router: 5.3.4(react@18.3.1) - react-router-config: 5.1.1(react-router@5.3.4)(react@18.3.1) - react-router-dom: 5.3.4(react@18.3.1) - rtl-detect: 1.1.2 - semver: 7.6.2 - serve-handler: 6.1.5 - shelljs: 0.8.5 - terser-webpack-plugin: 5.3.10(webpack@5.91.0) - tslib: 2.6.2 - update-notifier: 6.0.2 - url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.91.0) - webpack: 5.91.0 - webpack-bundle-analyzer: 4.10.2 - webpack-dev-server: 4.15.2(webpack@5.91.0) - webpack-merge: 5.10.0 - webpackbar: 5.0.2(webpack@5.91.0) - transitivePeerDependencies: - - '@docusaurus/types' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - /@docusaurus/cssnano-preset@3.3.2: resolution: {integrity: sha512-+5+epLk/Rp4vFML4zmyTATNc3Is+buMAL6dNjrMWahdJCJlMWMPd/8YfU+2PA57t8mlSbhLJ7vAZVy54cd1vRQ==} engines: {node: '>=18.0'} @@ -4477,49 +4378,6 @@ packages: - webpack-cli dev: false - /@docusaurus/mdx-loader@3.3.2(@docusaurus/types@3.3.2)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-AFRxj/aOk3/mfYDPxE3wTbrjeayVRvNSZP7mgMuUlrb2UlPRbSVAFX1k2RbgAJrnTSwMgb92m2BhJgYRfptN3g==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - dependencies: - '@docusaurus/logger': 3.3.2 - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - '@mdx-js/mdx': 3.0.1 - '@slorber/remark-comment': 1.0.0 - escape-html: 1.0.3 - estree-util-value-to-estree: 3.1.1 - file-loader: 6.2.0(webpack@5.91.0) - fs-extra: 11.2.0 - image-size: 1.1.1 - mdast-util-mdx: 3.0.0 - mdast-util-to-string: 4.0.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - rehype-raw: 7.0.0 - remark-directive: 3.0.0 - remark-emoji: 4.0.1 - remark-frontmatter: 5.0.0 - remark-gfm: 4.0.0 - stringify-object: 3.3.0 - tslib: 2.6.2 - unified: 11.0.4 - unist-util-visit: 5.0.0 - url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.91.0) - vfile: 6.0.1 - webpack: 5.91.0 - transitivePeerDependencies: - - '@docusaurus/types' - - '@swc/core' - - esbuild - - supports-color - - typescript - - uglify-js - - webpack-cli - dev: false - /@docusaurus/module-type-aliases@3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-b/XB0TBJah5yKb4LYuJT4buFvL0MGAb0+vJDrJtlYMguRtsEBkf2nWl5xP7h4Dlw6ol0hsHrCYzJ50kNIOEclw==} peerDependencies: @@ -4542,28 +4400,6 @@ packages: - uglify-js - webpack-cli - /@docusaurus/module-type-aliases@3.3.2(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-b/XB0TBJah5yKb4LYuJT4buFvL0MGAb0+vJDrJtlYMguRtsEBkf2nWl5xP7h4Dlw6ol0hsHrCYzJ50kNIOEclw==} - peerDependencies: - react: '*' - react-dom: '*' - dependencies: - '@docusaurus/types': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@types/history': 4.7.11 - '@types/react': 18.3.2 - '@types/react-router-config': 5.0.11 - '@types/react-router-dom': 5.3.3 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-helmet-async: 2.0.5(react@18.3.1) - react-loadable: /@docusaurus/react-loadable@6.0.0(react@18.3.1) - transitivePeerDependencies: - - '@swc/core' - - esbuild - - supports-color - - uglify-js - - webpack-cli - /@docusaurus/plugin-content-blog@3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): resolution: {integrity: sha512-fJU+dmqp231LnwDJv+BHVWft8pcUS2xVPZdeYH6/ibH1s2wQ/sLcmUrGWyIv/Gq9Ptj8XWjRPMghlxghuPPoxg==} engines: {node: '>=18.0'} @@ -4609,51 +4445,6 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-content-blog@3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-fJU+dmqp231LnwDJv+BHVWft8pcUS2xVPZdeYH6/ibH1s2wQ/sLcmUrGWyIv/Gq9Ptj8XWjRPMghlxghuPPoxg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/logger': 3.3.2 - '@docusaurus/mdx-loader': 3.3.2(@docusaurus/types@3.3.2)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/types': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - cheerio: 1.0.0-rc.12 - feed: 4.2.2 - fs-extra: 11.2.0 - lodash: 4.17.21 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - reading-time: 1.5.0 - srcset: 4.0.0 - tslib: 2.6.2 - unist-util-visit: 5.0.0 - utility-types: 3.11.0 - webpack: 5.91.0 - transitivePeerDependencies: - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - /@docusaurus/plugin-content-docs@3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): resolution: {integrity: sha512-Dm1ri2VlGATTN3VGk1ZRqdRXWa1UlFubjaEL6JaxaK7IIFqN/Esjpl+Xw10R33loHcRww/H76VdEeYayaL76eg==} engines: {node: '>=18.0'} @@ -4698,31 +4489,23 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-content-docs@3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-Dm1ri2VlGATTN3VGk1ZRqdRXWa1UlFubjaEL6JaxaK7IIFqN/Esjpl+Xw10R33loHcRww/H76VdEeYayaL76eg==} + /@docusaurus/plugin-content-pages@3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): + resolution: {integrity: sha512-EKc9fQn5H2+OcGER8x1aR+7URtAGWySUgULfqE/M14+rIisdrBstuEZ4lUPDRrSIexOVClML82h2fDS+GSb8Ew==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/logger': 3.3.2 - '@docusaurus/mdx-loader': 3.3.2(@docusaurus/types@3.3.2)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/module-type-aliases': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/types': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - '@types/react-router-config': 5.0.11 - combine-promises: 1.2.0 + '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/mdx-loader': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) + '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) fs-extra: 11.2.0 - js-yaml: 4.1.0 - lodash: 4.17.21 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) tslib: 2.6.2 - utility-types: 3.11.0 - webpack: 5.91.0 + webpack: 5.91.0(@swc/core@1.5.7) transitivePeerDependencies: - '@parcel/css' - '@rspack/core' @@ -4742,23 +4525,21 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-content-pages@3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-EKc9fQn5H2+OcGER8x1aR+7URtAGWySUgULfqE/M14+rIisdrBstuEZ4lUPDRrSIexOVClML82h2fDS+GSb8Ew==} + /@docusaurus/plugin-debug@3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): + resolution: {integrity: sha512-oBIBmwtaB+YS0XlmZ3gCO+cMbsGvIYuAKkAopoCh0arVjtlyPbejzPrHuCoRHB9G7abjNZw7zoONOR8+8LM5+Q==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/mdx-loader': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) fs-extra: 11.2.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + react-json-view-lite: 1.4.0(react@18.3.1) tslib: 2.6.2 - webpack: 5.91.0(@swc/core@1.5.7) transitivePeerDependencies: - '@parcel/css' - '@rspack/core' @@ -4778,23 +4559,19 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-content-pages@3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-EKc9fQn5H2+OcGER8x1aR+7URtAGWySUgULfqE/M14+rIisdrBstuEZ4lUPDRrSIexOVClML82h2fDS+GSb8Ew==} + /@docusaurus/plugin-google-analytics@3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): + resolution: {integrity: sha512-jXhrEIhYPSClMBK6/IA8qf1/FBoxqGXZvg7EuBax9HaK9+kL3L0TJIlatd8jQJOMtds8mKw806TOCc3rtEad1A==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/mdx-loader': 3.3.2(@docusaurus/types@3.3.2)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/types': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - fs-extra: 11.2.0 + '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) tslib: 2.6.2 - webpack: 5.91.0 transitivePeerDependencies: - '@parcel/css' - '@rspack/core' @@ -4814,8 +4591,8 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-debug@3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-oBIBmwtaB+YS0XlmZ3gCO+cMbsGvIYuAKkAopoCh0arVjtlyPbejzPrHuCoRHB9G7abjNZw7zoONOR8+8LM5+Q==} + /@docusaurus/plugin-google-gtag@3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): + resolution: {integrity: sha512-vcrKOHGbIDjVnNMrfbNpRQR1x6Jvcrb48kVzpBAOsKbj9rXZm/idjVAXRaewwobHdOrJkfWS/UJoxzK8wyLRBQ==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 @@ -4823,11 +4600,10 @@ packages: dependencies: '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - fs-extra: 11.2.0 + '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) + '@types/gtag.js': 0.0.12 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-json-view-lite: 1.4.0(react@18.3.1) tslib: 2.6.2 transitivePeerDependencies: - '@parcel/css' @@ -4848,20 +4624,18 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-debug@3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-oBIBmwtaB+YS0XlmZ3gCO+cMbsGvIYuAKkAopoCh0arVjtlyPbejzPrHuCoRHB9G7abjNZw7zoONOR8+8LM5+Q==} + /@docusaurus/plugin-google-tag-manager@3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): + resolution: {integrity: sha512-ldkR58Fdeks0vC+HQ+L+bGFSJsotQsipXD+iKXQFvkOfmPIV6QbHRd7IIcm5b6UtwOiK33PylNS++gjyLUmaGw==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/types': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - fs-extra: 11.2.0 + '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-json-view-lite: 1.4.0(react@18.3.1) tslib: 2.6.2 transitivePeerDependencies: - '@parcel/css' @@ -4882,410 +4656,29 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-google-analytics@3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-jXhrEIhYPSClMBK6/IA8qf1/FBoxqGXZvg7EuBax9HaK9+kL3L0TJIlatd8jQJOMtds8mKw806TOCc3rtEad1A==} + /@docusaurus/plugin-sitemap@3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): + resolution: {integrity: sha512-/ZI1+bwZBhAgC30inBsHe3qY9LOZS+79fRGkNdTcGHRMcdAp6Vw2pCd1gzlxd/xU+HXsNP6cLmTOrggmRp3Ujg==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/logger': 3.3.2 '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) + '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.2 - transitivePeerDependencies: - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - - /@docusaurus/plugin-google-analytics@3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-jXhrEIhYPSClMBK6/IA8qf1/FBoxqGXZvg7EuBax9HaK9+kL3L0TJIlatd8jQJOMtds8mKw806TOCc3rtEad1A==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/types': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.2 - transitivePeerDependencies: - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - - /@docusaurus/plugin-google-gtag@3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-vcrKOHGbIDjVnNMrfbNpRQR1x6Jvcrb48kVzpBAOsKbj9rXZm/idjVAXRaewwobHdOrJkfWS/UJoxzK8wyLRBQ==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - '@types/gtag.js': 0.0.12 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.2 - transitivePeerDependencies: - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - - /@docusaurus/plugin-google-gtag@3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-vcrKOHGbIDjVnNMrfbNpRQR1x6Jvcrb48kVzpBAOsKbj9rXZm/idjVAXRaewwobHdOrJkfWS/UJoxzK8wyLRBQ==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/types': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - '@types/gtag.js': 0.0.12 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.2 - transitivePeerDependencies: - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - - /@docusaurus/plugin-google-tag-manager@3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-ldkR58Fdeks0vC+HQ+L+bGFSJsotQsipXD+iKXQFvkOfmPIV6QbHRd7IIcm5b6UtwOiK33PylNS++gjyLUmaGw==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.2 - transitivePeerDependencies: - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - - /@docusaurus/plugin-google-tag-manager@3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-ldkR58Fdeks0vC+HQ+L+bGFSJsotQsipXD+iKXQFvkOfmPIV6QbHRd7IIcm5b6UtwOiK33PylNS++gjyLUmaGw==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/types': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.2 - transitivePeerDependencies: - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - - /@docusaurus/plugin-sitemap@3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-/ZI1+bwZBhAgC30inBsHe3qY9LOZS+79fRGkNdTcGHRMcdAp6Vw2pCd1gzlxd/xU+HXsNP6cLmTOrggmRp3Ujg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/logger': 3.3.2 - '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - fs-extra: 11.2.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - sitemap: 7.1.1 - tslib: 2.6.2 - transitivePeerDependencies: - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - - /@docusaurus/plugin-sitemap@3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-/ZI1+bwZBhAgC30inBsHe3qY9LOZS+79fRGkNdTcGHRMcdAp6Vw2pCd1gzlxd/xU+HXsNP6cLmTOrggmRp3Ujg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/logger': 3.3.2 - '@docusaurus/types': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) fs-extra: 11.2.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - sitemap: 7.1.1 - tslib: 2.6.2 - transitivePeerDependencies: - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - - /@docusaurus/preset-classic@3.3.2(@algolia/client-search@4.23.3)(@swc/core@1.5.7)(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.13.0)(typescript@5.4.5): - resolution: {integrity: sha512-1SDS7YIUN1Pg3BmD6TOTjhB7RSBHJRpgIRKx9TpxqyDrJ92sqtZhomDc6UYoMMLQNF2wHFZZVGFjxJhw2VpL+Q==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-blog': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-docs': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-pages': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-debug': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-google-analytics': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-google-gtag': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-google-tag-manager': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-sitemap': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-classic': 3.3.2(@swc/core@1.5.7)(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-common': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-search-algolia': 3.3.2(@algolia/client-search@4.23.3)(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.13.0)(typescript@5.4.5) - '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - transitivePeerDependencies: - - '@algolia/client-search' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - '@types/react' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - search-insights - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - - /@docusaurus/preset-classic@3.3.2(@algolia/client-search@4.23.3)(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.13.0)(typescript@5.4.5): - resolution: {integrity: sha512-1SDS7YIUN1Pg3BmD6TOTjhB7RSBHJRpgIRKx9TpxqyDrJ92sqtZhomDc6UYoMMLQNF2wHFZZVGFjxJhw2VpL+Q==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-blog': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-docs': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-pages': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-debug': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-google-analytics': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-google-gtag': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-google-tag-manager': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-sitemap': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-classic': 3.3.2(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-common': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-search-algolia': 3.3.2(@algolia/client-search@4.23.3)(@docusaurus/types@3.3.2)(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.13.0)(typescript@5.4.5) - '@docusaurus/types': 3.3.2(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - transitivePeerDependencies: - - '@algolia/client-search' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - '@types/react' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - search-insights - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - - /@docusaurus/react-loadable@6.0.0(react@18.3.1): - resolution: {integrity: sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==} - peerDependencies: - react: '*' - dependencies: - '@types/react': 18.3.2 - react: 18.3.1 - - /@docusaurus/theme-classic@3.3.2(@swc/core@1.5.7)(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-gepHFcsluIkPb4Im9ukkiO4lXrai671wzS3cKQkY9BXQgdVwsdPf/KS0Vs4Xlb0F10fTz+T3gNjkxNEgSN9M0A==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/mdx-loader': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/module-type-aliases': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/plugin-content-blog': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-docs': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-pages': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-common': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-translations': 3.3.2 - '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - '@mdx-js/react': 3.0.1(@types/react@18.3.2)(react@18.3.1) - clsx: 2.1.1 - copy-text-to-clipboard: 3.2.0 - infima: 0.2.0-alpha.43 - lodash: 4.17.21 - nprogress: 0.2.0 - postcss: 8.4.38 - prism-react-renderer: 2.3.1(react@18.3.1) - prismjs: 1.29.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-router-dom: 5.3.4(react@18.3.1) - rtlcss: 4.1.1 + sitemap: 7.1.1 tslib: 2.6.2 - utility-types: 3.11.0 transitivePeerDependencies: - '@parcel/css' - '@rspack/core' - '@swc/core' - '@swc/css' - - '@types/react' - bufferutil - csso - debug @@ -5300,41 +4693,30 @@ packages: - webpack-cli dev: false - /@docusaurus/theme-classic@3.3.2(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-gepHFcsluIkPb4Im9ukkiO4lXrai671wzS3cKQkY9BXQgdVwsdPf/KS0Vs4Xlb0F10fTz+T3gNjkxNEgSN9M0A==} + /@docusaurus/preset-classic@3.3.2(@algolia/client-search@4.23.3)(@swc/core@1.5.7)(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.13.0)(typescript@5.4.5): + resolution: {integrity: sha512-1SDS7YIUN1Pg3BmD6TOTjhB7RSBHJRpgIRKx9TpxqyDrJ92sqtZhomDc6UYoMMLQNF2wHFZZVGFjxJhw2VpL+Q==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/mdx-loader': 3.3.2(@docusaurus/types@3.3.2)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/module-type-aliases': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/plugin-content-blog': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-docs': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-pages': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-common': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-translations': 3.3.2 - '@docusaurus/types': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - '@mdx-js/react': 3.0.1(@types/react@18.3.2)(react@18.3.1) - clsx: 2.1.1 - copy-text-to-clipboard: 3.2.0 - infima: 0.2.0-alpha.43 - lodash: 4.17.21 - nprogress: 0.2.0 - postcss: 8.4.38 - prism-react-renderer: 2.3.1(react@18.3.1) - prismjs: 1.29.0 + '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/plugin-content-blog': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/plugin-content-docs': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/plugin-content-pages': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/plugin-debug': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/plugin-google-analytics': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/plugin-google-gtag': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/plugin-google-tag-manager': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/plugin-sitemap': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/theme-classic': 3.3.2(@swc/core@1.5.7)(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/theme-common': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/theme-search-algolia': 3.3.2(@algolia/client-search@4.23.3)(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.13.0)(typescript@5.4.5) + '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-router-dom: 5.3.4(react@18.3.1) - rtlcss: 4.1.1 - tslib: 2.6.2 - utility-types: 3.11.0 transitivePeerDependencies: + - '@algolia/client-search' - '@parcel/css' - '@rspack/core' - '@swc/core' @@ -5346,6 +4728,7 @@ packages: - esbuild - eslint - lightningcss + - search-insights - supports-color - typescript - uglify-js @@ -5354,36 +4737,54 @@ packages: - webpack-cli dev: false - /@docusaurus/theme-common@3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-kXqSaL/sQqo4uAMQ4fHnvRZrH45Xz2OdJ3ABXDS7YVGPSDTBC8cLebFrRR4YF9EowUHto1UC/EIklJZQMG/usA==} + /@docusaurus/react-loadable@6.0.0(react@18.3.1): + resolution: {integrity: sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==} + peerDependencies: + react: '*' + dependencies: + '@types/react': 18.3.2 + react: 18.3.1 + + /@docusaurus/theme-classic@3.3.2(@swc/core@1.5.7)(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): + resolution: {integrity: sha512-gepHFcsluIkPb4Im9ukkiO4lXrai671wzS3cKQkY9BXQgdVwsdPf/KS0Vs4Xlb0F10fTz+T3gNjkxNEgSN9M0A==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: + '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) '@docusaurus/mdx-loader': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) '@docusaurus/module-type-aliases': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) '@docusaurus/plugin-content-blog': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) '@docusaurus/plugin-content-docs': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) '@docusaurus/plugin-content-pages': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/theme-common': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/theme-translations': 3.3.2 + '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) - '@types/history': 4.7.11 - '@types/react': 18.3.2 - '@types/react-router-config': 5.0.11 + '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) + '@mdx-js/react': 3.0.1(@types/react@18.3.2)(react@18.3.1) clsx: 2.1.1 - parse-numeric-range: 1.3.0 + copy-text-to-clipboard: 3.2.0 + infima: 0.2.0-alpha.43 + lodash: 4.17.21 + nprogress: 0.2.0 + postcss: 8.4.38 prism-react-renderer: 2.3.1(react@18.3.1) + prismjs: 1.29.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + react-router-dom: 5.3.4(react@18.3.1) + rtlcss: 4.1.1 tslib: 2.6.2 utility-types: 3.11.0 transitivePeerDependencies: - - '@docusaurus/types' - '@parcel/css' - '@rspack/core' - '@swc/core' - '@swc/css' + - '@types/react' - bufferutil - csso - debug @@ -5398,19 +4799,19 @@ packages: - webpack-cli dev: false - /@docusaurus/theme-common@3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): + /@docusaurus/theme-common@3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): resolution: {integrity: sha512-kXqSaL/sQqo4uAMQ4fHnvRZrH45Xz2OdJ3ABXDS7YVGPSDTBC8cLebFrRR4YF9EowUHto1UC/EIklJZQMG/usA==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/mdx-loader': 3.3.2(@docusaurus/types@3.3.2)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/module-type-aliases': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/plugin-content-blog': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-docs': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-pages': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) + '@docusaurus/mdx-loader': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/module-type-aliases': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/plugin-content-blog': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/plugin-content-docs': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/plugin-content-pages': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) '@types/history': 4.7.11 '@types/react': 18.3.2 @@ -5525,54 +4926,6 @@ packages: - webpack-cli dev: false - /@docusaurus/theme-search-algolia@3.3.2(@algolia/client-search@4.23.3)(@docusaurus/types@3.3.2)(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.13.0)(typescript@5.4.5): - resolution: {integrity: sha512-qLkfCl29VNBnF1MWiL9IyOQaHxUvicZp69hISyq/xMsNvFKHFOaOfk9xezYod2Q9xx3xxUh9t/QPigIei2tX4w==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - dependencies: - '@docsearch/react': 3.6.0(@algolia/client-search@4.23.3)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.13.0) - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/logger': 3.3.2 - '@docusaurus/plugin-content-docs': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-common': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-translations': 3.3.2 - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - algoliasearch: 4.23.3 - algoliasearch-helper: 3.19.0(algoliasearch@4.23.3) - clsx: 2.1.1 - eta: 2.2.0 - fs-extra: 11.2.0 - lodash: 4.17.21 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.2 - utility-types: 3.11.0 - transitivePeerDependencies: - - '@algolia/client-search' - - '@docusaurus/types' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - '@types/react' - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - search-insights - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - dev: false - /@docusaurus/theme-translations@3.3.2: resolution: {integrity: sha512-bPuiUG7Z8sNpGuTdGnmKl/oIPeTwKr0AXLGu9KaP6+UFfRZiyWbWE87ti97RrevB2ffojEdvchNujparR3jEZQ==} engines: {node: '>=18.0'} @@ -5609,30 +4962,6 @@ packages: - uglify-js - webpack-cli - /@docusaurus/types@3.3.2(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-5p201S7AZhliRxTU7uMKtSsoC8mgPA9bs9b5NQg1IRdRxJfflursXNVsgc3PcMqiUTul/v1s3k3rXXFlRE890w==} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - dependencies: - '@mdx-js/mdx': 3.0.1 - '@types/history': 4.7.11 - '@types/react': 18.3.2 - commander: 5.1.0 - joi: 17.13.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-helmet-async: 1.3.0(react-dom@18.3.1)(react@18.3.1) - utility-types: 3.11.0 - webpack: 5.91.0 - webpack-merge: 5.10.0 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - supports-color - - uglify-js - - webpack-cli - /@docusaurus/utils-common@3.3.2(@docusaurus/types@3.3.2): resolution: {integrity: sha512-QWFTLEkPYsejJsLStgtmetMFIA3pM8EPexcZ4WZ7b++gO5jGVH7zsipREnCHzk6+eDgeaXfkR6UPaTt86bp8Og==} engines: {node: '>=18.0'} @@ -5666,26 +4995,6 @@ packages: - webpack-cli dev: false - /@docusaurus/utils-validation@3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5): - resolution: {integrity: sha512-itDgFs5+cbW9REuC7NdXals4V6++KifgVMzoGOOOSIifBQw+8ULhy86u5e1lnptVL0sv8oAjq2alO7I40GR7pA==} - engines: {node: '>=18.0'} - dependencies: - '@docusaurus/logger': 3.3.2 - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) - joi: 17.13.1 - js-yaml: 4.1.0 - tslib: 2.6.2 - transitivePeerDependencies: - - '@docusaurus/types' - - '@swc/core' - - esbuild - - supports-color - - typescript - - uglify-js - - webpack-cli - dev: false - /@docusaurus/utils@3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5): resolution: {integrity: sha512-f4YMnBVymtkSxONv4Y8js3Gez9IgHX+Lcg6YRMOjVbq8sgCcdYK1lf6SObAuz5qB/mxiSK7tW0M9aaiIaUSUJg==} engines: {node: '>=18.0'} @@ -5724,44 +5033,6 @@ packages: - webpack-cli dev: false - /@docusaurus/utils@3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5): - resolution: {integrity: sha512-f4YMnBVymtkSxONv4Y8js3Gez9IgHX+Lcg6YRMOjVbq8sgCcdYK1lf6SObAuz5qB/mxiSK7tW0M9aaiIaUSUJg==} - engines: {node: '>=18.0'} - peerDependencies: - '@docusaurus/types': '*' - peerDependenciesMeta: - '@docusaurus/types': - optional: true - dependencies: - '@docusaurus/logger': 3.3.2 - '@docusaurus/types': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) - '@svgr/webpack': 8.1.0(typescript@5.4.5) - escape-string-regexp: 4.0.0 - file-loader: 6.2.0(webpack@5.91.0) - fs-extra: 11.2.0 - github-slugger: 1.5.0 - globby: 11.1.0 - gray-matter: 4.0.3 - jiti: 1.21.0 - js-yaml: 4.1.0 - lodash: 4.17.21 - micromatch: 4.0.5 - prompts: 2.4.2 - resolve-pathname: 3.0.0 - shelljs: 0.8.5 - tslib: 2.6.2 - url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.91.0) - webpack: 5.91.0 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - supports-color - - typescript - - uglify-js - - webpack-cli - dev: false - /@effect/schema@0.66.5(effect@3.0.3)(fast-check@3.17.2): resolution: {integrity: sha512-xfu5161JyrfAS1Ruwv0RXd4QFiCALbm3iu9nlW9N9K+52wbS0WdO6XUekPZ9V/O7LN+XmlIh5Y9xhJaIWCZ/gw==} peerDependencies: @@ -20955,29 +20226,6 @@ packages: terser: 5.31.0 webpack: 5.91.0(@swc/core@1.5.7) - /terser-webpack-plugin@5.3.10(webpack@5.91.0): - resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - jest-worker: 27.5.1 - schema-utils: 3.3.0 - serialize-javascript: 6.0.2 - terser: 5.31.0 - webpack: 5.91.0 - /terser@5.31.0: resolution: {integrity: sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==} engines: {node: '>=10'} @@ -22190,45 +21438,6 @@ packages: resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} dev: true - /webpack@5.91.0: - resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - dependencies: - '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.5 - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/wasm-edit': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - acorn: 8.11.3 - acorn-import-assertions: 1.9.0(acorn@8.11.3) - browserslist: 4.23.0 - chrome-trace-event: 1.0.3 - enhanced-resolve: 5.16.1 - es-module-lexer: 1.5.3 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 3.3.0 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(webpack@5.91.0) - watchpack: 2.4.1 - webpack-sources: 3.2.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - /webpack@5.91.0(@swc/core@1.5.7): resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} engines: {node: '>=10.13.0'} @@ -22626,3 +21835,7 @@ packages: /zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false From 3f911bb13731b059dc6ea28efe9529d7d6a00828 Mon Sep 17 00:00:00 2001 From: Dapeng Zhang Date: Wed, 26 Jun 2024 15:26:36 +0800 Subject: [PATCH 28/42] replace `tspNamespace` with `crossLanguageDefinitionId` in enum, model, union and array types (#1075) Fixes https://github.com/Azure/typespec-azure/issues/1073 Per offline discussion, `crossLanguageDefinitionId` is actually a much better candidate of telling people the originate of this type, therefore this should solve all of our requirement and we no longer need a `tspNamespace` anymore. --------- Co-authored-by: Chenjie Shi --- ...slanguagedefinitionid-2024-5-25-16-6-39.md | 9 ++++ .../src/interfaces.ts | 7 +-- .../src/package.ts | 1 + .../src/types.ts | 17 ++----- .../test/types/array-types.test.ts | 6 +-- .../test/types/enum-types.test.ts | 44 +++++++++---------- .../test/types/model-types.test.ts | 26 +++++------ 7 files changed, 53 insertions(+), 57 deletions(-) create mode 100644 .chronus/changes/remove-tspnamespace-add-crosslanguagedefinitionid-2024-5-25-16-6-39.md diff --git a/.chronus/changes/remove-tspnamespace-add-crosslanguagedefinitionid-2024-5-25-16-6-39.md b/.chronus/changes/remove-tspnamespace-add-crosslanguagedefinitionid-2024-5-25-16-6-39.md new file mode 100644 index 0000000000..251f2dbbfa --- /dev/null +++ b/.chronus/changes/remove-tspnamespace-add-crosslanguagedefinitionid-2024-5-25-16-6-39.md @@ -0,0 +1,9 @@ +--- +changeKind: feature +packages: + - "@azure-tools/typespec-client-generator-core" +--- + +Replace `tspNamespace` with `crossLanguageDefinitionId`. +- Remove `tspNamespace` in `SdkEnumType`, `SdkModelType`, `SdkUnionType`, `SdkArrayType`. +- Add `crossLanguageDefinitionId` to `SdkUnionType` and `SdkArrayType`. diff --git a/packages/typespec-client-generator-core/src/interfaces.ts b/packages/typespec-client-generator-core/src/interfaces.ts index 5d0d3eeac5..d3199b536f 100644 --- a/packages/typespec-client-generator-core/src/interfaces.ts +++ b/packages/typespec-client-generator-core/src/interfaces.ts @@ -252,8 +252,8 @@ export interface SdkDurationType extends SdkTypeBase { export interface SdkArrayType extends SdkTypeBase { kind: "array"; name: string; - tspNamespace?: string; valueType: SdkType; + crossLanguageDefinitionId: string; } export interface SdkTupleType extends SdkTypeBase { @@ -275,7 +275,6 @@ export interface SdkNullableType extends SdkTypeBase { export interface SdkEnumType extends SdkTypeBase { kind: "enum"; name: string; - tspNamespace?: string; isGeneratedName: boolean; valueType: SdkBuiltInType; values: SdkEnumValueType[]; @@ -291,7 +290,6 @@ export interface SdkEnumType extends SdkTypeBase { export interface SdkEnumValueType extends SdkTypeBase { kind: "enumvalue"; name: string; - tspNamespace?: string; value: string | number; enumType: SdkEnumType; valueType: SdkBuiltInType; @@ -306,10 +304,10 @@ export interface SdkConstantType extends SdkTypeBase { export interface SdkUnionType extends SdkTypeBase { name: string; - tspNamespace?: string; isGeneratedName: boolean; kind: "union"; values: SdkType[]; + crossLanguageDefinitionId: string; } export type AccessFlags = "internal" | "public"; @@ -318,7 +316,6 @@ export interface SdkModelType extends SdkTypeBase { kind: "model"; properties: SdkModelPropertyType[]; name: string; - tspNamespace?: string; /** * @deprecated This property is deprecated. Check the bitwise and value of UsageFlags.MultipartFormData and the `.usage` property on this model. */ diff --git a/packages/typespec-client-generator-core/src/package.ts b/packages/typespec-client-generator-core/src/package.ts index 8f10cfb26e..a7b3b7725c 100644 --- a/packages/typespec-client-generator-core/src/package.ts +++ b/packages/typespec-client-generator-core/src/package.ts @@ -214,6 +214,7 @@ function getSdkMethodResponse< values: allResponseBodies, name: createGeneratedName(context, operation, "UnionResponse"), isGeneratedName: true, + crossLanguageDefinitionId: getCrossLanguageDefinitionId(context, operation), decorators: {}, }; } else if (responseTypes) { diff --git a/packages/typespec-client-generator-core/src/types.ts b/packages/typespec-client-generator-core/src/types.ts index cd2e4cf046..9f67a8918a 100644 --- a/packages/typespec-client-generator-core/src/types.ts +++ b/packages/typespec-client-generator-core/src/types.ts @@ -10,7 +10,6 @@ import { IntrinsicType, Model, ModelProperty, - Namespace, NumericLiteral, Operation, Scalar, @@ -114,13 +113,6 @@ function getEncodeHelper(context: TCGCContext, type: Type, kind: string): string return kind; } -function getNamespaceHelper(ns: Namespace | undefined): string | undefined { - if (ns) { - return getNamespaceFullName(ns); - } - return undefined; -} - /** * Add format info onto an sdk type. Since the format decorator * decorates the ModelProperty, we add the format info onto the property's internal @@ -311,8 +303,8 @@ export function getSdkArrayOrDictWithDiagnostics( return diagnostics.wrap({ ...diagnostics.pipe(getSdkTypeBaseHelper(context, type, "array")), name: getLibraryName(context, type), - tspNamespace: getNamespaceHelper(type.namespace), valueType: valueType, + crossLanguageDefinitionId: getCrossLanguageDefinitionId(context, type), }); } } @@ -383,11 +375,11 @@ export function getSdkUnionWithDiagnostics( retval = { ...diagnostics.pipe(getSdkTypeBaseHelper(context, type, "union")), name: getLibraryName(context, type) || getGeneratedName(context, type), - tspNamespace: getNamespaceHelper(type.namespace), isGeneratedName: !type.name, values: nonNullOptions.map((x) => diagnostics.pipe(getClientTypeWithDiagnostics(context, x, operation)) ), + crossLanguageDefinitionId: getCrossLanguageDefinitionId(context, type), }; } @@ -567,7 +559,6 @@ export function getSdkModelWithDiagnostics( sdkType = { ...diagnostics.pipe(getSdkTypeBaseHelper(context, type, "model")), name: name, - tspNamespace: getNamespaceHelper(type.namespace), isGeneratedName: !type.name, description: docWrapper.description, details: docWrapper.details, @@ -712,7 +703,6 @@ function getSdkEnumWithDiagnostics( sdkType = { ...diagnostics.pipe(getSdkTypeBaseHelper(context, type, "enum")), name: getLibraryName(context, type), - tspNamespace: getNamespaceHelper(type.namespace), isGeneratedName: false, description: docWrapper.description, details: docWrapper.details, @@ -749,7 +739,6 @@ function getSdkUnionEnumValues( values.push({ ...diagnostics.pipe(getSdkTypeBaseHelper(context, member.type, "enumvalue")), name: name ? name : `${member.value}`, - tspNamespace: enumType.tspNamespace, description: docWrapper.description, details: docWrapper.details, value: member.value, @@ -779,7 +768,6 @@ function getSdkUnionEnumWithDiagnostics( sdkType = { ...diagnostics.pipe(getSdkTypeBaseHelper(context, type.union, "enum")), name, - tspNamespace: getNamespaceHelper(type.union.namespace), isGeneratedName: !type.union.name, description: docWrapper.description, details: docWrapper.details, @@ -1007,6 +995,7 @@ function getSdkCredentialType( values: credentialTypes, name: createGeneratedName(context, client.service, "CredentialUnion"), isGeneratedName: true, + crossLanguageDefinitionId: getCrossLanguageDefinitionId(context, client.service), decorators: {}, }; } diff --git a/packages/typespec-client-generator-core/test/types/array-types.test.ts b/packages/typespec-client-generator-core/test/types/array-types.test.ts index 87f5efc9db..75717ee823 100644 --- a/packages/typespec-client-generator-core/test/types/array-types.test.ts +++ b/packages/typespec-client-generator-core/test/types/array-types.test.ts @@ -34,7 +34,7 @@ describe("typespec-client-generator-core: array types", () => { strictEqual(method.response.kind, "method"); strictEqual(method.response.type?.kind, "array"); strictEqual(method.response.type?.name, "TestArray"); - strictEqual(method.response.type?.tspNamespace, "TestClient"); + strictEqual(method.response.type?.crossLanguageDefinitionId, "TestClient.TestArray"); strictEqual(method.response.type?.valueType.kind, "model"); strictEqual(method.response.type?.valueType.name, "TestModel"); }); @@ -62,7 +62,7 @@ describe("typespec-client-generator-core: array types", () => { const property = model.properties[0]; strictEqual(property.type.kind, "array"); strictEqual(property.type.name, "EmbeddingVector"); - strictEqual(property.type.tspNamespace, "Azure.Core"); + strictEqual(property.type.crossLanguageDefinitionId, "Azure.Core.EmbeddingVector"); strictEqual(property.type.valueType.kind, "int32"); }); @@ -91,7 +91,7 @@ describe("typespec-client-generator-core: array types", () => { const property = model.properties[0]; strictEqual(property.type.kind, "array"); strictEqual(property.type.name, "EmbeddingVector"); - strictEqual(property.type.tspNamespace, "Azure.Core"); + strictEqual(property.type.crossLanguageDefinitionId, "Azure.Core.EmbeddingVector"); strictEqual(property.type.valueType.kind, "int32"); }); }); diff --git a/packages/typespec-client-generator-core/test/types/enum-types.test.ts b/packages/typespec-client-generator-core/test/types/enum-types.test.ts index 93b0e88180..83d2165df5 100644 --- a/packages/typespec-client-generator-core/test/types/enum-types.test.ts +++ b/packages/typespec-client-generator-core/test/types/enum-types.test.ts @@ -43,7 +43,7 @@ describe("typespec-client-generator-core: enum types", () => { const sdkType = runner.context.experimental_sdkPackage.enums[0]; strictEqual(sdkType.isFixed, true); strictEqual(sdkType.name, "DaysOfWeekExtensibleEnum"); - strictEqual(sdkType.tspNamespace, "TestService"); + strictEqual(sdkType.crossLanguageDefinitionId, "TestService.DaysOfWeekExtensibleEnum"); strictEqual(sdkType.valueType.kind, "string"); strictEqual(sdkType.usage & UsageFlags.ApiVersionEnum, 0); // not a versioning enum strictEqual(sdkType.isUnionAsEnum, false); @@ -88,7 +88,7 @@ describe("typespec-client-generator-core: enum types", () => { const sdkType = runner.context.experimental_sdkPackage.enums[0]; strictEqual(sdkType.isFixed, true); strictEqual(sdkType.name, "Integers"); - strictEqual(sdkType.tspNamespace, "TestService"); + strictEqual(sdkType.crossLanguageDefinitionId, "TestService.Integers"); strictEqual(sdkType.valueType.kind, "int32"); const values = sdkType.values; strictEqual(values.length, 5); @@ -123,7 +123,7 @@ describe("typespec-client-generator-core: enum types", () => { ok(sdkType); strictEqual(sdkType.isFixed, true); strictEqual(sdkType.name, "Floats"); - strictEqual(sdkType.tspNamespace, "TestService"); + strictEqual(sdkType.crossLanguageDefinitionId, "TestService.Floats"); strictEqual(sdkType.valueType.kind, "float32"); const values = sdkType.values; strictEqual(values.length, 3); @@ -158,7 +158,7 @@ describe("typespec-client-generator-core: enum types", () => { const sdkType = runner.context.experimental_sdkPackage.enums[0]; strictEqual(sdkType.isFixed, false); strictEqual(sdkType.name, "Floats"); - strictEqual(sdkType.tspNamespace, "TestService"); + strictEqual(sdkType.crossLanguageDefinitionId, "TestService.Floats"); strictEqual(sdkType.valueType.kind, "float"); const values = sdkType.values; strictEqual(values.length, 3); @@ -199,7 +199,7 @@ describe("typespec-client-generator-core: enum types", () => { ok(sdkType); strictEqual(sdkType.isFixed, false); strictEqual(sdkType.name, "ExtendedEnum"); - strictEqual(sdkType.tspNamespace, "TestService"); + strictEqual(sdkType.crossLanguageDefinitionId, "TestService.ExtendedEnum"); strictEqual(sdkType.valueType.kind, "int32"); const values = sdkType.values; strictEqual(values.length, 3); @@ -245,7 +245,7 @@ describe("typespec-client-generator-core: enum types", () => { const sdkType = runnerWithCore.context.experimental_sdkPackage.enums[0]; strictEqual(sdkType.isFixed, true); strictEqual(sdkType.name, "DaysOfWeekFixedEnum"); - strictEqual(sdkType.tspNamespace, "My.Service"); + strictEqual(sdkType.crossLanguageDefinitionId, "My.Service.DaysOfWeekFixedEnum"); strictEqual(sdkType.valueType.kind, "string"); const values = sdkType.values; strictEqual(values.length, 7); @@ -422,7 +422,7 @@ describe("typespec-client-generator-core: enum types", () => { const enumType = getClientType(runner.context, TestUnion); strictEqual(enumType.kind, "enum"); strictEqual(enumType.name, "TestUnionRename"); - strictEqual(enumType.tspNamespace, "N"); + strictEqual(enumType.crossLanguageDefinitionId, "N.TestUnion"); strictEqual(enumType.isUnionAsEnum, true); strictEqual(enumType.values[0].name, "ARename"); strictEqual(enumType.values[1].name, "BRename"); @@ -465,7 +465,7 @@ describe("typespec-client-generator-core: enum types", () => { const enumType = nullableType.type; strictEqual(enumType.kind, "enum"); strictEqual(enumType.name, "Test"); - strictEqual(enumType.tspNamespace, "N"); + strictEqual(enumType.crossLanguageDefinitionId, "N.Test"); strictEqual(enumType.isUnionAsEnum, true); const values = enumType.values; strictEqual(values.length, 4); @@ -518,14 +518,14 @@ describe("typespec-client-generator-core: enum types", () => { strictEqual(unionType.kind, "union"); strictEqual(unionType.name, "Test"); - strictEqual(unionType.tspNamespace, "N"); + strictEqual(unionType.crossLanguageDefinitionId, "N.Test"); const values = unionType.values; strictEqual(values.length, 3); const a = values[0] as SdkEnumType; strictEqual(a.kind, "enum"); strictEqual(a.name, "A"); - strictEqual(a.tspNamespace, "N"); + strictEqual(a.crossLanguageDefinitionId, "N.A"); strictEqual(a.isUnionAsEnum, true); strictEqual(a.values[0].name, "A1"); strictEqual(a.values[0].value, "A1"); @@ -535,7 +535,7 @@ describe("typespec-client-generator-core: enum types", () => { const b = values[1] as SdkEnumType; strictEqual(b.kind, "enum"); strictEqual(b.name, "B"); - strictEqual(b.tspNamespace, "N"); + strictEqual(b.crossLanguageDefinitionId, "N.B"); strictEqual(b.isUnionAsEnum, true); strictEqual(b.values[0].name, "B"); strictEqual(b.values[0].value, "B"); @@ -543,7 +543,7 @@ describe("typespec-client-generator-core: enum types", () => { const c = values[2] as SdkEnumType; strictEqual(c.kind, "enum"); strictEqual(c.name, "C"); - strictEqual(c.tspNamespace, "N"); + strictEqual(c.crossLanguageDefinitionId, "N.C"); strictEqual(c.isUnionAsEnum, false); strictEqual(c.values[0].name, "C"); strictEqual(c.values[0].value, "C"); @@ -575,7 +575,7 @@ describe("typespec-client-generator-core: enum types", () => { const modelType = getClientType(runner.context, Test) as SdkModelType; const enumType = modelType.properties[0].type as SdkEnumType; strictEqual(enumType.name, "TestColor"); - strictEqual(enumType.tspNamespace, undefined); // implicitly defined union does not have a namespace + strictEqual(enumType.crossLanguageDefinitionId, "Test.color.anonymous"); strictEqual(enumType.isGeneratedName, true); strictEqual(enumType.isUnionAsEnum, true); // no cross language def id bc it's not a defined object in tsp @@ -625,19 +625,19 @@ describe("typespec-client-generator-core: enum types", () => { const modelType = getClientType(runner.context, Test) as SdkModelType; const unionType = modelType.properties[0].type as SdkUnionType; strictEqual(unionType.name, "TestColor"); - strictEqual(unionType.tspNamespace, undefined); // implicitly defined union does not have a namespace + strictEqual(unionType.crossLanguageDefinitionId, "Test.color.anonymous"); strictEqual(unionType.isGeneratedName, true); const values = unionType.values; const lr = values[0] as SdkEnumType; strictEqual(lr.name, "LR"); - strictEqual(lr.tspNamespace, "N"); + strictEqual(lr.crossLanguageDefinitionId, "N.LR"); strictEqual(lr.isUnionAsEnum, false); strictEqual(lr.values[0].name, "left"); strictEqual(lr.values[1].name, "right"); strictEqual(lr.isFixed, true); const ud = values[1] as SdkEnumType; strictEqual(ud.name, "UD"); - strictEqual(ud.tspNamespace, "N"); + strictEqual(ud.crossLanguageDefinitionId, "N.UD"); strictEqual(ud.isUnionAsEnum, false); strictEqual(ud.values[0].name, "up"); strictEqual(ud.values[1].name, "down"); @@ -660,7 +660,7 @@ describe("typespec-client-generator-core: enum types", () => { const enums = runner.context.experimental_sdkPackage.enums; strictEqual(enums.length, 1); strictEqual(enums[0].name, "Versions"); - strictEqual(enums[0].tspNamespace, "DemoService"); + strictEqual(enums[0].crossLanguageDefinitionId, "DemoService.Versions"); strictEqual(enums[0].usage, UsageFlags.ApiVersionEnum); deepStrictEqual( enums[0].values.map((x) => x.value), @@ -689,7 +689,7 @@ describe("typespec-client-generator-core: enum types", () => { const enums = runnerWithVersion.context.experimental_sdkPackage.enums; strictEqual(enums.length, 1); strictEqual(enums[0].name, "Versions"); - strictEqual(enums[0].tspNamespace, "DemoService"); + strictEqual(enums[0].crossLanguageDefinitionId, "DemoService.Versions"); strictEqual(enums[0].usage, UsageFlags.ApiVersionEnum); deepStrictEqual( enums[0].values.map((x) => x.value), @@ -718,7 +718,7 @@ describe("typespec-client-generator-core: enum types", () => { const enums = runnerWithVersion.context.experimental_sdkPackage.enums; strictEqual(enums.length, 1); strictEqual(enums[0].name, "Versions"); - strictEqual(enums[0].tspNamespace, "DemoService"); + strictEqual(enums[0].crossLanguageDefinitionId, "DemoService.Versions"); strictEqual(enums[0].usage, UsageFlags.ApiVersionEnum); deepStrictEqual( enums[0].values.map((x) => x.value), @@ -747,7 +747,7 @@ describe("typespec-client-generator-core: enum types", () => { const enums = runnerWithVersion.context.experimental_sdkPackage.enums; strictEqual(enums.length, 1); strictEqual(enums[0].name, "Versions"); - strictEqual(enums[0].tspNamespace, "DemoService"); + strictEqual(enums[0].crossLanguageDefinitionId, "DemoService.Versions"); strictEqual(enums[0].usage, UsageFlags.ApiVersionEnum); deepStrictEqual( enums[0].values.map((x) => x.value), @@ -781,10 +781,10 @@ describe("typespec-client-generator-core: enum types", () => { const enums = runner.context.experimental_sdkPackage.enums; strictEqual(enums.length, 2); strictEqual(enums[0].name, "LR"); - strictEqual(enums[0].tspNamespace, "N"); + strictEqual(enums[0].crossLanguageDefinitionId, "N.LR"); strictEqual(enums[0].usage, UsageFlags.Input); strictEqual(enums[1].name, "UD"); - strictEqual(enums[1].tspNamespace, "N"); + strictEqual(enums[1].crossLanguageDefinitionId, "N.UD"); strictEqual(enums[1].usage, UsageFlags.Input); }); }); diff --git a/packages/typespec-client-generator-core/test/types/model-types.test.ts b/packages/typespec-client-generator-core/test/types/model-types.test.ts index 6445cbf0fe..072c45dc1b 100644 --- a/packages/typespec-client-generator-core/test/types/model-types.test.ts +++ b/packages/typespec-client-generator-core/test/types/model-types.test.ts @@ -142,7 +142,7 @@ describe("typespec-client-generator-core: model types", () => { const recursiveModel = models[0]; strictEqual(recursiveModel.name, "RecursiveModel"); strictEqual(recursiveModel.kind, "model"); - strictEqual(recursiveModel.tspNamespace, "TestService"); + strictEqual(recursiveModel.crossLanguageDefinitionId, "TestService.RecursiveModel"); strictEqual(recursiveModel.properties.length, 1); const prop = recursiveModel.properties[0]; strictEqual(prop.kind, "property"); @@ -690,7 +690,7 @@ describe("typespec-client-generator-core: model types", () => { const models = runnerWithCore.context.experimental_sdkPackage.models; strictEqual(models.length, 1); strictEqual(models[0].name, "User"); - strictEqual(models[0].tspNamespace, "My.Service"); + strictEqual(models[0].crossLanguageDefinitionId, "My.Service.User"); }); it("filterOutCoreModels false", async () => { @@ -721,13 +721,13 @@ describe("typespec-client-generator-core: model types", () => { ); strictEqual(models.length, 4); strictEqual(models[0].name, "Error"); - strictEqual(models[0].tspNamespace, "Azure.Core.Foundations"); + strictEqual(models[0].crossLanguageDefinitionId, "Azure.Core.Foundations.Error"); strictEqual(models[1].name, "ErrorResponse"); - strictEqual(models[1].tspNamespace, "Azure.Core.Foundations"); + strictEqual(models[1].crossLanguageDefinitionId, "Azure.Core.Foundations.ErrorResponse"); strictEqual(models[2].name, "InnerError"); - strictEqual(models[2].tspNamespace, "Azure.Core.Foundations"); + strictEqual(models[2].crossLanguageDefinitionId, "Azure.Core.Foundations.InnerError"); strictEqual(models[3].name, "User"); - strictEqual(models[3].tspNamespace, "My.Service"); + strictEqual(models[3].crossLanguageDefinitionId, "My.Service.User"); }); it("lro core filterOutCoreModels true", async () => { @@ -756,7 +756,7 @@ describe("typespec-client-generator-core: model types", () => { const models = runnerWithCore.context.experimental_sdkPackage.models; strictEqual(models.length, 1); strictEqual(models[0].name, "User"); - strictEqual(models[0].tspNamespace, "My.Service"); + strictEqual(models[0].crossLanguageDefinitionId, "My.Service.User"); }); it("lro core filterOutCoreModels false", async () => { @@ -788,15 +788,15 @@ describe("typespec-client-generator-core: model types", () => { ); strictEqual(models.length, 5); strictEqual(models[0].name, "Error"); - strictEqual(models[0].tspNamespace, "Azure.Core.Foundations"); + strictEqual(models[0].crossLanguageDefinitionId, "Azure.Core.Foundations.Error"); strictEqual(models[1].name, "ErrorResponse"); - strictEqual(models[1].tspNamespace, "Azure.Core.Foundations"); + strictEqual(models[1].crossLanguageDefinitionId, "Azure.Core.Foundations.ErrorResponse"); strictEqual(models[2].name, "InnerError"); - strictEqual(models[2].tspNamespace, "Azure.Core.Foundations"); + strictEqual(models[2].crossLanguageDefinitionId, "Azure.Core.Foundations.InnerError"); strictEqual(models[3].name, "ResourceOperationStatusUserUserError"); - strictEqual(models[3].tspNamespace, "Azure.Core"); + strictEqual(models[3].crossLanguageDefinitionId, "Azure.Core.ResourceOperationStatus"); strictEqual(models[4].name, "User"); - strictEqual(models[4].tspNamespace, "My.Service"); + strictEqual(models[4].crossLanguageDefinitionId, "My.Service.User"); strictEqual(runnerWithCore.context.experimental_sdkPackage.enums.length, 1); strictEqual(runnerWithCore.context.experimental_sdkPackage.enums[0].name, "OperationState"); }); @@ -1336,7 +1336,7 @@ describe("typespec-client-generator-core: model types", () => { const models = runner.context.experimental_sdkPackage.models; strictEqual(models.length, 1); strictEqual(models[0].name, "Model1"); - strictEqual(models[0].tspNamespace, "MyService"); + strictEqual(models[0].crossLanguageDefinitionId, "MyService.Model1"); strictEqual(models[0].usage, UsageFlags.Input | UsageFlags.Output); }); From 5dc55cc202c9f9da6185c134acb391b5501c7313 Mon Sep 17 00:00:00 2001 From: Chenjie Shi Date: Wed, 26 Jun 2024 16:18:58 +0800 Subject: [PATCH 29/42] [tcgc] change generic decorator list data structure to support duplicate decorator use case (#1082) fix for https://github.com/Azure/typespec-azure/pull/966 --- .../fix_decorator_list-2024-5-26-13-53-0.md | 7 + .../src/configs.ts | 1 + .../src/http.ts | 6 +- .../src/interfaces.ts | 15 +- .../src/internal-utils.ts | 15 +- .../src/package.ts | 18 +- .../src/types.ts | 10 +- .../types/general-decorators-list.test.ts | 176 ++++++++++++++---- 8 files changed, 182 insertions(+), 66 deletions(-) create mode 100644 .chronus/changes/fix_decorator_list-2024-5-26-13-53-0.md diff --git a/.chronus/changes/fix_decorator_list-2024-5-26-13-53-0.md b/.chronus/changes/fix_decorator_list-2024-5-26-13-53-0.md new file mode 100644 index 0000000000..d261393d70 --- /dev/null +++ b/.chronus/changes/fix_decorator_list-2024-5-26-13-53-0.md @@ -0,0 +1,7 @@ +--- +changeKind: internal +packages: + - "@azure-tools/typespec-client-generator-core" +--- + +change generic decorator list data structure to support duplicate decorator use case \ No newline at end of file diff --git a/packages/typespec-client-generator-core/src/configs.ts b/packages/typespec-client-generator-core/src/configs.ts index e63e8b0d71..5978f59ade 100644 --- a/packages/typespec-client-generator-core/src/configs.ts +++ b/packages/typespec-client-generator-core/src/configs.ts @@ -1,4 +1,5 @@ export const defaultDecoratorsAllowList = [ "TypeSpec\\.Xml\\..*", "Azure\\.Core\\.@useFinalStateVia", + "Autorest\\.@example", ]; diff --git a/packages/typespec-client-generator-core/src/http.ts b/packages/typespec-client-generator-core/src/http.ts index 539ee7079a..220f4771f4 100644 --- a/packages/typespec-client-generator-core/src/http.ts +++ b/packages/typespec-client-generator-core/src/http.ts @@ -235,7 +235,7 @@ function createContentTypeOrAcceptHeader( let type: SdkType = { kind: "string", encode: "string", - decorators: {}, + decorators: [], }; // for contentType, we treat it as a constant IFF there's one value and it's application/json. // this is to prevent a breaking change when a service adds more content types in the future. @@ -256,7 +256,7 @@ function createContentTypeOrAcceptHeader( valueType: type, name: `${httpOperation.operation.name}ContentType`, isGeneratedName: true, - decorators: {}, + decorators: [], }; } // No need for clientDefaultValue because it's a constant, it only has one value @@ -269,7 +269,7 @@ function createContentTypeOrAcceptHeader( onClient: false, optional: false, crossLanguageDefinitionId: `${getCrossLanguageDefinitionId(context, httpOperation.operation)}.${name}`, - decorators: {}, + decorators: [], }; } diff --git a/packages/typespec-client-generator-core/src/interfaces.ts b/packages/typespec-client-generator-core/src/interfaces.ts index d3199b536f..885f953ff3 100644 --- a/packages/typespec-client-generator-core/src/interfaces.ts +++ b/packages/typespec-client-generator-core/src/interfaces.ts @@ -78,12 +78,17 @@ export interface SdkOperationGroup { } interface DecoratedType { - // Client types sourced from TypeSpec decorated types will have this generic decoratores dict. - // The key is the fully qualified name of the decorator. For example, `TypeSpec.@encode`, `TypeSpec.Xml.@attribute`. - // The value is a dict of the decorator's arguments' value (key is argument's name). - // Only decorators in allowed list will be included in this dict. + // Client types sourced from TypeSpec decorated types will have this generic decoratores list. + // Only decorators in allowed list will be included in this list. // Language's emitter could set `additionalDecorators` in the option when `createSdkContext` to extend the allowed list. - decorators: Record>; + decorators: DecoratorInfo[]; +} + +export interface DecoratorInfo { + // Fully qualified name of the decorator. For example, `TypeSpec.@encode`, `TypeSpec.Xml.@attribute`. + name: string; + // A dict of the decorator's arguments. For example, `{ encoding: "base64url" }`. + arguments: Record; } interface SdkTypeBase extends DecoratedType { diff --git a/packages/typespec-client-generator-core/src/internal-utils.ts b/packages/typespec-client-generator-core/src/internal-utils.ts index c7b5fcf59a..4082e3269e 100644 --- a/packages/typespec-client-generator-core/src/internal-utils.ts +++ b/packages/typespec-client-generator-core/src/internal-utils.ts @@ -25,6 +25,7 @@ import { import { HttpOperation, HttpStatusCodeRange } from "@typespec/http"; import { getAddedOnVersions, getRemovedOnVersions, getVersions } from "@typespec/versioning"; import { + DecoratorInfo, SdkBuiltInKinds, SdkBuiltInType, SdkClient, @@ -244,7 +245,7 @@ interface DefaultSdkTypeBase { __raw: Type; deprecation?: string; kind: TKind; - decorators: Record>; + decorators: DecoratorInfo[]; } /** @@ -272,9 +273,9 @@ export function getNamespacePrefix(namespace: Namespace): string { export function getTypeDecorators( context: TCGCContext, type: Type -): [Record>, readonly Diagnostic[]] { +): [DecoratorInfo[], readonly Diagnostic[]] { const diagnostics = createDiagnosticCollector(); - const retval: Record> = {}; + const retval: DecoratorInfo[] = []; if ("decorators" in type) { for (const decorator of type.decorators) { // only process explicitly defined decorators @@ -288,12 +289,16 @@ export function getTypeDecorators( continue; } - retval[decoratorName] = {}; + const decoratorInfo: DecoratorInfo = { + name: decoratorName, + arguments: {}, + }; for (let i = 0; i < decorator.args.length; i++) { - retval[decoratorName][decorator.definition.parameters[i].name] = diagnostics.pipe( + decoratorInfo.arguments[decorator.definition.parameters[i].name] = diagnostics.pipe( getDecoratorArgValue(decorator.args[i].jsValue, type, decoratorName) ); } + retval.push(decoratorInfo); } } } diff --git a/packages/typespec-client-generator-core/src/package.ts b/packages/typespec-client-generator-core/src/package.ts index a7b3b7725c..8cd74428fa 100644 --- a/packages/typespec-client-generator-core/src/package.ts +++ b/packages/typespec-client-generator-core/src/package.ts @@ -215,7 +215,7 @@ function getSdkMethodResponse< name: createGeneratedName(context, operation, "UnionResponse"), isGeneratedName: true, crossLanguageDefinitionId: getCrossLanguageDefinitionId(context, operation), - decorators: {}, + decorators: [], }; } else if (responseTypes) { type = allResponseBodies[0]; @@ -224,7 +224,7 @@ function getSdkMethodResponse< type = { kind: "nullable", type: type, - decorators: {}, + decorators: [], }; } return { @@ -396,7 +396,7 @@ function getSdkInitializationType< apiVersions: context.__tspTypeToApiVersions.get(client.type)!, isFormDataType: false, isError: false, - decorators: {}, + decorators: [], }); } @@ -460,7 +460,7 @@ function getSdkMethods { const models = runner.context.experimental_sdkPackage.models; strictEqual(models.length, 1); - deepStrictEqual(models[0].decorators["TypeSpec.@error"], {}); + deepStrictEqual(models[0].decorators, [{ name: "TypeSpec.@error", arguments: {} }]); expectDiagnostics(runner.context.diagnostics, []); }); @@ -47,9 +47,14 @@ describe("typespec-client-generator-core: general decorators list", () => { const models = runner.context.experimental_sdkPackage.models; strictEqual(models.length, 1); - deepStrictEqual(models[0].properties[0].decorators["Azure.ClientGenerator.Core.@clientName"], { - rename: "ID", - }); + deepStrictEqual(models[0].properties[0].decorators, [ + { + name: "Azure.ClientGenerator.Core.@clientName", + arguments: { + rename: "ID", + }, + }, + ]); expectDiagnostics(runner.context.diagnostics, []); }); @@ -67,9 +72,14 @@ describe("typespec-client-generator-core: general decorators list", () => { const models = runner.context.experimental_sdkPackage.models; strictEqual(models.length, 1); - deepStrictEqual(models[0].properties[0].decorators["TypeSpec.@encode"], { - encoding: "base64url", - }); + deepStrictEqual(models[0].properties[0].decorators, [ + { + name: "TypeSpec.@encode", + arguments: { + encoding: "base64url", + }, + }, + ]); expectDiagnostics(runner.context.diagnostics, []); }); @@ -80,15 +90,48 @@ describe("typespec-client-generator-core: general decorators list", () => { op test(): void; `); - deepStrictEqual( - runner.context.experimental_sdkPackage.clients[0].decorators["TypeSpec.@service"], - { options: undefined } - ); + deepStrictEqual(runner.context.experimental_sdkPackage.clients[0].decorators, [ + { + name: "TypeSpec.@service", + arguments: { options: undefined }, + }, + ]); expectDiagnostics(runner.context.diagnostics, { code: "@azure-tools/typespec-client-generator-core/unsupported-generic-decorator-arg-type", }); }); + it("multiple same decorators", async function () { + runner = await createSdkTestRunner( + {}, + { additionalDecorators: ["Azure\\.ClientGenerator\\.Core\\.@clientName"] } + ); + + await runner.compileWithBuiltInService(` + @clientName("testForPython", "python") + @clientName("testForJava", "java") + op test(): void; + `); + + deepStrictEqual(runner.context.experimental_sdkPackage.clients[0].methods[0].decorators, [ + { + name: "Azure.ClientGenerator.Core.@clientName", + arguments: { + rename: "testForJava", + scope: "java", + }, + }, + { + name: "Azure.ClientGenerator.Core.@clientName", + arguments: { + rename: "testForPython", + scope: "python", + }, + }, + ]); + expectDiagnostics(runner.context.diagnostics, []); + }); + describe("xml scenario", () => { it("@attribute", async function () { runner = await createSdkTestRunner({ @@ -106,7 +149,12 @@ describe("typespec-client-generator-core: general decorators list", () => { const models = runner.context.experimental_sdkPackage.models; strictEqual(models.length, 1); - deepStrictEqual(models[0].properties[0].decorators["TypeSpec.Xml.@attribute"], {}); + deepStrictEqual(models[0].properties[0].decorators, [ + { + name: "TypeSpec.Xml.@attribute", + arguments: {}, + }, + ]); }); it("@name", async function () { @@ -127,8 +175,18 @@ describe("typespec-client-generator-core: general decorators list", () => { const models = runner.context.experimental_sdkPackage.models; strictEqual(models.length, 1); - deepStrictEqual(models[0].decorators["TypeSpec.Xml.@name"], { name: "XmlBook" }); - deepStrictEqual(models[0].properties[0].decorators["TypeSpec.Xml.@name"], { name: "XmlId" }); + deepStrictEqual(models[0].decorators, [ + { + name: "TypeSpec.Xml.@name", + arguments: { name: "XmlBook" }, + }, + ]); + deepStrictEqual(models[0].properties[0].decorators, [ + { + name: "TypeSpec.Xml.@name", + arguments: { name: "XmlId" }, + }, + ]); }); it("@ns", async function () { @@ -152,18 +210,33 @@ describe("typespec-client-generator-core: general decorators list", () => { const models = runner.context.experimental_sdkPackage.models; strictEqual(models.length, 1); - deepStrictEqual(models[0].decorators["TypeSpec.Xml.@ns"], { - ns: "https://example.com/ns1", - prefix: "ns1", - }); - deepStrictEqual(models[0].properties[0].decorators["TypeSpec.Xml.@ns"], { - ns: "https://example.com/ns1", - prefix: "ns1", - }); - deepStrictEqual(models[0].properties[1].decorators["TypeSpec.Xml.@ns"], { - ns: "https://example.com/ns2", - prefix: "ns2", - }); + deepStrictEqual(models[0].decorators, [ + { + name: "TypeSpec.Xml.@ns", + arguments: { + ns: "https://example.com/ns1", + prefix: "ns1", + }, + }, + ]); + deepStrictEqual(models[0].properties[0].decorators, [ + { + name: "TypeSpec.Xml.@ns", + arguments: { + ns: "https://example.com/ns1", + prefix: "ns1", + }, + }, + ]); + deepStrictEqual(models[0].properties[1].decorators, [ + { + name: "TypeSpec.Xml.@ns", + arguments: { + ns: "https://example.com/ns2", + prefix: "ns2", + }, + }, + ]); }); it("@nsDeclarations", async function () { @@ -193,15 +266,30 @@ describe("typespec-client-generator-core: general decorators list", () => { const models = runner.context.experimental_sdkPackage.models; strictEqual(models.length, 1); - deepStrictEqual(models[0].decorators["TypeSpec.Xml.@ns"], { - ns: "https://example.com/ns1", - }); - deepStrictEqual(models[0].properties[0].decorators["TypeSpec.Xml.@ns"], { - ns: "https://example.com/ns1", - }); - deepStrictEqual(models[0].properties[1].decorators["TypeSpec.Xml.@ns"], { - ns: "https://example.com/ns2", - }); + deepStrictEqual(models[0].decorators, [ + { + name: "TypeSpec.Xml.@ns", + arguments: { + ns: "https://example.com/ns1", + }, + }, + ]); + deepStrictEqual(models[0].properties[0].decorators, [ + { + name: "TypeSpec.Xml.@ns", + arguments: { + ns: "https://example.com/ns1", + }, + }, + ]); + deepStrictEqual(models[0].properties[1].decorators, [ + { + name: "TypeSpec.Xml.@ns", + arguments: { + ns: "https://example.com/ns2", + }, + }, + ]); }); it("@unwrapped", async function () { @@ -220,7 +308,12 @@ describe("typespec-client-generator-core: general decorators list", () => { const models = runner.context.experimental_sdkPackage.models; strictEqual(models.length, 1); - deepStrictEqual(models[0].properties[0].decorators["TypeSpec.Xml.@unwrapped"], {}); + deepStrictEqual(models[0].properties[0].decorators, [ + { + name: "TypeSpec.Xml.@unwrapped", + arguments: {}, + }, + ]); }); }); @@ -239,9 +332,14 @@ describe("typespec-client-generator-core: general decorators list", () => { const methods = runner.context.experimental_sdkPackage.clients[0].methods; strictEqual(methods.length, 1); - deepStrictEqual(methods[0].decorators["Azure.Core.@useFinalStateVia"], { - finalState: "original-uri", - }); + deepStrictEqual(methods[0].decorators, [ + { + name: "Azure.Core.@useFinalStateVia", + arguments: { + finalState: "original-uri", + }, + }, + ]); }); }); }); From 49fc59de5843bd5e568ca94a6e08ee1098bc6e4a Mon Sep 17 00:00:00 2001 From: iscai-msft <43154838+iscai-msft@users.noreply.github.com> Date: Wed, 26 Jun 2024 22:41:23 -0400 Subject: [PATCH 30/42] Publish/tcgc (#1087) Co-authored-by: iscai-msft --- ...and-namespace-to-array-2024-5-13-1-59-45.md | 8 -------- ...del-enum-and-enumvalue-2024-5-14-1-46-55.md | 8 -------- .../break-up-test-cases-2024-5-14-14-29-1.md | 8 -------- .../client_hierarchy-2024-5-18-18-19-30.md | 7 ------- ...ntent_types_not_empty-2024-5-24-16-39-12.md | 7 ------- .../discriminator_doc-2024-4-21-11-13-50.md | 7 ------- .../changes/emitter_name-2024-5-3-22-57-49.md | 7 ------- .../export_sdkmethod-2024-5-12-13-43-49.md | 7 ------- .../changes/fix-arm-id-2024-5-18-17-30-45.md | 7 ------- ...e_with_detailed_access-2024-5-18-18-9-31.md | 7 ------- ..._error_child_of_error-2024-5-24-15-29-24.md | 7 ------- .../remove_name_in_client-2024-5-24-13-45-6.md | 7 ------- ...c_arm_explicit-client-2024-5-21-15-15-43.md | 7 ------- ...hitespace_client_name-2024-5-24-14-18-45.md | 7 ------- .../CHANGELOG.md | 18 ++++++++++++++++++ .../package.json | 2 +- 16 files changed, 19 insertions(+), 102 deletions(-) delete mode 100644 .chronus/changes/add-name-and-namespace-to-array-2024-5-13-1-59-45.md delete mode 100644 .chronus/changes/add-name-and-namespace-to-model-enum-and-enumvalue-2024-5-14-1-46-55.md delete mode 100644 .chronus/changes/break-up-test-cases-2024-5-14-14-29-1.md delete mode 100644 .chronus/changes/client_hierarchy-2024-5-18-18-19-30.md delete mode 100644 .chronus/changes/content_types_not_empty-2024-5-24-16-39-12.md delete mode 100644 .chronus/changes/discriminator_doc-2024-4-21-11-13-50.md delete mode 100644 .chronus/changes/emitter_name-2024-5-3-22-57-49.md delete mode 100644 .chronus/changes/export_sdkmethod-2024-5-12-13-43-49.md delete mode 100644 .chronus/changes/fix-arm-id-2024-5-18-17-30-45.md delete mode 100644 .chronus/changes/override_with_detailed_access-2024-5-18-18-9-31.md delete mode 100644 .chronus/changes/remove_is_error_child_of_error-2024-5-24-15-29-24.md delete mode 100644 .chronus/changes/remove_name_in_client-2024-5-24-13-45-6.md delete mode 100644 .chronus/changes/tcgc_arm_explicit-client-2024-5-21-15-15-43.md delete mode 100644 .chronus/changes/whitespace_client_name-2024-5-24-14-18-45.md diff --git a/.chronus/changes/add-name-and-namespace-to-array-2024-5-13-1-59-45.md b/.chronus/changes/add-name-and-namespace-to-array-2024-5-13-1-59-45.md deleted file mode 100644 index 4ae3dc76d1..0000000000 --- a/.chronus/changes/add-name-and-namespace-to-array-2024-5-13-1-59-45.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking -changeKind: feature -packages: - - "@azure-tools/typespec-client-generator-core" ---- - -Add `name` and `tspNamespace` to `SdkArrayType` diff --git a/.chronus/changes/add-name-and-namespace-to-model-enum-and-enumvalue-2024-5-14-1-46-55.md b/.chronus/changes/add-name-and-namespace-to-model-enum-and-enumvalue-2024-5-14-1-46-55.md deleted file mode 100644 index 5ff84746d8..0000000000 --- a/.chronus/changes/add-name-and-namespace-to-model-enum-and-enumvalue-2024-5-14-1-46-55.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking -changeKind: fix -packages: - - "@azure-tools/typespec-client-generator-core" ---- - -add `tspNamespace` to `SdkModelType`, `SdkEnumType`, `SdkEnumValueType` and `SdkUnionType` diff --git a/.chronus/changes/break-up-test-cases-2024-5-14-14-29-1.md b/.chronus/changes/break-up-test-cases-2024-5-14-14-29-1.md deleted file mode 100644 index 79f7d023d2..0000000000 --- a/.chronus/changes/break-up-test-cases-2024-5-14-14-29-1.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking -changeKind: internal -packages: - - "@azure-tools/typespec-client-generator-core" ---- - -break up tests for types into multiple files diff --git a/.chronus/changes/client_hierarchy-2024-5-18-18-19-30.md b/.chronus/changes/client_hierarchy-2024-5-18-18-19-30.md deleted file mode 100644 index e0e79f7795..0000000000 --- a/.chronus/changes/client_hierarchy-2024-5-18-18-19-30.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: breaking -packages: - - "@azure-tools/typespec-client-generator-core" ---- - -only expose top level client in `SdkPackage` \ No newline at end of file diff --git a/.chronus/changes/content_types_not_empty-2024-5-24-16-39-12.md b/.chronus/changes/content_types_not_empty-2024-5-24-16-39-12.md deleted file mode 100644 index cd92dde41e..0000000000 --- a/.chronus/changes/content_types_not_empty-2024-5-24-16-39-12.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: fix -packages: - - "@azure-tools/typespec-client-generator-core" ---- - -don't let optional `.contentTypes` on response body be empty. If it's empty, just set it to undefined \ No newline at end of file diff --git a/.chronus/changes/discriminator_doc-2024-4-21-11-13-50.md b/.chronus/changes/discriminator_doc-2024-4-21-11-13-50.md deleted file mode 100644 index 37399d588e..0000000000 --- a/.chronus/changes/discriminator_doc-2024-4-21-11-13-50.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: fix -packages: - - "@azure-tools/typespec-client-generator-core" ---- - -add description for created discriminator property diff --git a/.chronus/changes/emitter_name-2024-5-3-22-57-49.md b/.chronus/changes/emitter_name-2024-5-3-22-57-49.md deleted file mode 100644 index c654f7b175..0000000000 --- a/.chronus/changes/emitter_name-2024-5-3-22-57-49.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: fix -packages: - - "@azure-tools/typespec-client-generator-core" ---- - -support new typespec emitter naming rule diff --git a/.chronus/changes/export_sdkmethod-2024-5-12-13-43-49.md b/.chronus/changes/export_sdkmethod-2024-5-12-13-43-49.md deleted file mode 100644 index ec93e59cb4..0000000000 --- a/.chronus/changes/export_sdkmethod-2024-5-12-13-43-49.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: fix -packages: - - "@azure-tools/typespec-client-generator-core" ---- - -export `SdkClientAccessor` \ No newline at end of file diff --git a/.chronus/changes/fix-arm-id-2024-5-18-17-30-45.md b/.chronus/changes/fix-arm-id-2024-5-18-17-30-45.md deleted file mode 100644 index 2fc7f1c9e8..0000000000 --- a/.chronus/changes/fix-arm-id-2024-5-18-17-30-45.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: fix -packages: - - "@azure-tools/typespec-client-generator-core" ---- - -Fix armId not set for scalar type armResourceIdentifier. \ No newline at end of file diff --git a/.chronus/changes/override_with_detailed_access-2024-5-18-18-9-31.md b/.chronus/changes/override_with_detailed_access-2024-5-18-18-9-31.md deleted file mode 100644 index 011fa1140a..0000000000 --- a/.chronus/changes/override_with_detailed_access-2024-5-18-18-9-31.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: feature -packages: - - "@azure-tools/typespec-client-generator-core" ---- - -add support for list of scopes \ No newline at end of file diff --git a/.chronus/changes/remove_is_error_child_of_error-2024-5-24-15-29-24.md b/.chronus/changes/remove_is_error_child_of_error-2024-5-24-15-29-24.md deleted file mode 100644 index 4078de9b4e..0000000000 --- a/.chronus/changes/remove_is_error_child_of_error-2024-5-24-15-29-24.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: internal -packages: - - "@azure-tools/typespec-client-generator-core" ---- - -remove unused isErrorOrChildOfError \ No newline at end of file diff --git a/.chronus/changes/remove_name_in_client-2024-5-24-13-45-6.md b/.chronus/changes/remove_name_in_client-2024-5-24-13-45-6.md deleted file mode 100644 index 1f8a5177b4..0000000000 --- a/.chronus/changes/remove_name_in_client-2024-5-24-13-45-6.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: breaking -packages: - - "@azure-tools/typespec-client-generator-core" ---- - -remove deprecated `.nameInClient` property from `SdkModelPropertyType`s diff --git a/.chronus/changes/tcgc_arm_explicit-client-2024-5-21-15-15-43.md b/.chronus/changes/tcgc_arm_explicit-client-2024-5-21-15-15-43.md deleted file mode 100644 index e333a72319..0000000000 --- a/.chronus/changes/tcgc_arm_explicit-client-2024-5-21-15-15-43.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: fix -packages: - - "@azure-tools/typespec-client-generator-core" ---- - -Fix SdkContext.arm \ No newline at end of file diff --git a/.chronus/changes/whitespace_client_name-2024-5-24-14-18-45.md b/.chronus/changes/whitespace_client_name-2024-5-24-14-18-45.md deleted file mode 100644 index 5746fc36b6..0000000000 --- a/.chronus/changes/whitespace_client_name-2024-5-24-14-18-45.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: fix -packages: - - "@azure-tools/typespec-client-generator-core" ---- - -Add linter for empty `@clientName` values \ No newline at end of file diff --git a/packages/typespec-client-generator-core/CHANGELOG.md b/packages/typespec-client-generator-core/CHANGELOG.md index d4aa2efb47..58fa6672ce 100644 --- a/packages/typespec-client-generator-core/CHANGELOG.md +++ b/packages/typespec-client-generator-core/CHANGELOG.md @@ -1,5 +1,23 @@ # Change Log - @azure-tools/typespec-client-generator-core +## 0.43.1 + +### Bug Fixes + +- [#1000](https://github.com/Azure/typespec-azure/pull/1000) Add `name` and `tspNamespace` to `SdkArrayType` +- [#1009](https://github.com/Azure/typespec-azure/pull/1009) add `tspNamespace` to `SdkModelType`, `SdkEnumType`, `SdkEnumValueType` and `SdkUnionType` +- [#1033](https://github.com/Azure/typespec-azure/pull/1033) only expose top level client in `SdkPackage` +- [#1070](https://github.com/Azure/typespec-azure/pull/1070) don't let optional `.contentTypes` on response body be empty. If it's empty, just set it to undefined +- [#873](https://github.com/Azure/typespec-azure/pull/873) add description for created discriminator property +- [#947](https://github.com/Azure/typespec-azure/pull/947) support new typespec emitter naming rule +- [#990](https://github.com/Azure/typespec-azure/pull/990) export `SdkClientAccessor` +- [#1032](https://github.com/Azure/typespec-azure/pull/1032) Fix armId not set for scalar type armResourceIdentifier. +- [#1038](https://github.com/Azure/typespec-azure/pull/1038) add support for list of scopes +- [#1064](https://github.com/Azure/typespec-azure/pull/1064) remove deprecated `.nameInClient` property from `SdkModelPropertyType`s +- [#1050](https://github.com/Azure/typespec-azure/pull/1050) Fix SdkContext.arm +- [#1066](https://github.com/Azure/typespec-azure/pull/1066) Add linter for empty `@clientName` values + + ## 0.43.0 ### Bug Fixes diff --git a/packages/typespec-client-generator-core/package.json b/packages/typespec-client-generator-core/package.json index b995a940b9..83df22f666 100644 --- a/packages/typespec-client-generator-core/package.json +++ b/packages/typespec-client-generator-core/package.json @@ -1,6 +1,6 @@ { "name": "@azure-tools/typespec-client-generator-core", - "version": "0.43.0", + "version": "0.43.1", "author": "Microsoft Corporation", "description": "TypeSpec Data Plane Generation library", "homepage": "https://azure.github.io/typespec-azure", From 54567f763257300e64603091659d282072631d2a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 27 Jun 2024 09:01:18 -0700 Subject: [PATCH 31/42] Bump core from `224e725` to `393f40a` (#1079) Bumps [core](https://github.com/microsoft/typespec) from `224e725` to `393f40a`.
Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mark Cowlishaw --- core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core b/core index 224e725e43..393f40a4da 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 224e725e43e51b8cc427779377fa4e351a25a38d +Subproject commit 393f40a4da397d5c1fec97948cc3a0e0dbb04e00 From acde810af3e48181292ad0b1bb949ac8ed749834 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 14:53:04 +0000 Subject: [PATCH 32/42] Bump core from `393f40a` to `44a5be8` (#1100) Bumps [core](https://github.com/microsoft/typespec) from `393f40a` to `44a5be8`.
Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core b/core index 393f40a4da..44a5be8af9 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 393f40a4da397d5c1fec97948cc3a0e0dbb04e00 +Subproject commit 44a5be8af9ae84f76e68809809cbd2977abc4672 From d4cfac6d114349859e2cce0bc0bb134cdaa72690 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 17:04:27 +0000 Subject: [PATCH 33/42] Bump @azure-tools/cadl-ranch-specs from 0.33.4 to 0.34.2 in /packages/e2e-tests/cadl-ranch-specs (#1101) Bumps [@azure-tools/cadl-ranch-specs](https://github.com/Azure/cadl-ranch) from 0.33.4 to 0.34.2.
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@azure-tools/cadl-ranch-specs&package-manager=npm_and_yarn&previous-version=0.33.4&new-version=0.34.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
--------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Timothee Guerin --- packages/e2e-tests/cadl-ranch-specs/package.json | 2 +- packages/e2e-tests/e2e-tests.mjs | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/e2e-tests/cadl-ranch-specs/package.json b/packages/e2e-tests/cadl-ranch-specs/package.json index db8447db3d..559a20d564 100644 --- a/packages/e2e-tests/cadl-ranch-specs/package.json +++ b/packages/e2e-tests/cadl-ranch-specs/package.json @@ -1,7 +1,7 @@ { "name": "@azure-tools/typespec-e2e-cadl-ranch-specs", "dependencies": { - "@azure-tools/cadl-ranch-specs": "0.33.4" + "@azure-tools/cadl-ranch-specs": "0.34.2" }, "type": "module", "private": true diff --git a/packages/e2e-tests/e2e-tests.mjs b/packages/e2e-tests/e2e-tests.mjs index d136769b67..2c565af33f 100644 --- a/packages/e2e-tests/e2e-tests.mjs +++ b/packages/e2e-tests/e2e-tests.mjs @@ -53,6 +53,9 @@ function getPackagesPath() { "@typespec/rest": resolveLocalPackage("core/packages/rest"), "@typespec/versioning": resolveLocalPackage("core/packages/versioning"), "@azure-tools/typespec-azure-core": resolveLocalPackage("packages/typespec-azure-core"), + "@azure-tools/typespec-azure-resource-manager": resolveLocalPackage( + "packages/typespec-azure-resource-manager" + ), "@azure-tools/typespec-client-generator-core": resolveLocalPackage( "packages/typespec-client-generator-core" ), @@ -139,6 +142,8 @@ function testCadlRanch(packages, args) { "@typespec/openapi3": packages["@typespec/openapi3"], "@typespec/versioning": packages["@typespec/versioning"], "@azure-tools/typespec-azure-core": packages["@azure-tools/typespec-azure-core"], + "@azure-tools/typespec-azure-resource-manager": + packages["@azure-tools/typespec-azure-resource-manager"], "@azure-tools/typespec-client-generator-core": packages["@azure-tools/typespec-client-generator-core"], }, From ee6a7f84ce94fea422506549800b116b7efd7e92 Mon Sep 17 00:00:00 2001 From: Allen Zhang Date: Mon, 1 Jul 2024 14:27:28 -0700 Subject: [PATCH 34/42] Fixing typpo (#1102) Closes: #1055 --- .chronus/changes/azhang_fixingTyppo-2024-6-1-11-53-0.md | 8 ++++++++ docs/getstarted/azure-resource-manager/step04.md | 6 +++--- .../src/rules/arm-resource-name-pattern.ts | 2 +- packages/typespec-client-generator-core/doc/types.tsp | 2 +- 4 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 .chronus/changes/azhang_fixingTyppo-2024-6-1-11-53-0.md diff --git a/.chronus/changes/azhang_fixingTyppo-2024-6-1-11-53-0.md b/.chronus/changes/azhang_fixingTyppo-2024-6-1-11-53-0.md new file mode 100644 index 0000000000..27f5de4153 --- /dev/null +++ b/.chronus/changes/azhang_fixingTyppo-2024-6-1-11-53-0.md @@ -0,0 +1,8 @@ +--- +changeKind: fix +packages: + - "@azure-tools/typespec-azure-resource-manager" + - "@azure-tools/typespec-client-generator-core" +--- + +Fixing typo \ No newline at end of file diff --git a/docs/getstarted/azure-resource-manager/step04.md b/docs/getstarted/azure-resource-manager/step04.md index a44b4c0cb2..4561f28348 100644 --- a/docs/getstarted/azure-resource-manager/step04.md +++ b/docs/getstarted/azure-resource-manager/step04.md @@ -91,9 +91,9 @@ These templates have default values so that they are normally used without speci The above templates are specializations of the following template in the `Azure.ResourceManager.Foundations` namespace: -| Template | Description | -| -------------------------------------------------------------------------------- | ---------------------------------------------------------------- | -| `checkNameAvailability` | Checks name availability based on the provided scope parameters. | +| Template | Description | +| --------------------------------------------------------------------------------- | ---------------------------------------------------------------- | +| `checkNameAvailability` | Checks name availability based on the provided scope parameters. | For reference, the standard templates use the following `TScopeParameters`: diff --git a/packages/typespec-azure-resource-manager/src/rules/arm-resource-name-pattern.ts b/packages/typespec-azure-resource-manager/src/rules/arm-resource-name-pattern.ts index 4db6f20be1..daf5c23ad4 100644 --- a/packages/typespec-azure-resource-manager/src/rules/arm-resource-name-pattern.ts +++ b/packages/typespec-azure-resource-manager/src/rules/arm-resource-name-pattern.ts @@ -50,7 +50,7 @@ export const armResourceNamePatternRule = createRule({ url: "https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/resource-name-pattern", description: "The resource name parameter should be defined with a 'pattern' restriction.", messages: { - default: `The resource name parameter should be defined with a 'pattern' restriction. Please use 'ResourceNameParamter' to specify the name parameter with options to override default pattern RegEx expression.`, + default: `The resource name parameter should be defined with a 'pattern' restriction. Please use 'ResourceNameParameter' to specify the name parameter with options to override default pattern RegEx expression.`, }, create(context) { return { diff --git a/packages/typespec-client-generator-core/doc/types.tsp b/packages/typespec-client-generator-core/doc/types.tsp index d936eeac44..9b8cb73a17 100644 --- a/packages/typespec-client-generator-core/doc/types.tsp +++ b/packages/typespec-client-generator-core/doc/types.tsp @@ -387,7 +387,7 @@ model SdkQueryServiceParameter extends SdkModelPropertyType { * * @property serializedName: The name of the property we send over the wire to the services * @property urlEncode: Whether to url encode the path parameter - * @property validation: Any validation for the path parameter. Right now only including validation on path paramters because we only know about path params needing validation. + * @property validation: Any validation for the path parameter. Right now only including validation on path parameters because we only know about path params needing validation. * @property location: Whether the parameter is a client-level or operation-level parameter */ model SdkPathServiceParameter extends SdkModelPropertyType { From 772b495eb380c71ec037d6b4bf7a57c84ca00dac Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Mon, 1 Jul 2024 14:38:04 -0700 Subject: [PATCH 35/42] fix --- .prettierignore | 2 ++ cspell.yaml | 1 + packages/samples/common-types/sort-openapi.ts | 1 - 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.prettierignore b/.prettierignore index 5e78f537a1..877c71fe54 100644 --- a/.prettierignore +++ b/.prettierignore @@ -72,6 +72,8 @@ core/packages/compiler/templates/__snapshots__/ # Tm Grammars generated files core/grammars/ +# Generated openapi files +packages/samples/common-types/**/*.json # Client emitters not part of workspace that shouldn't be needed in this repo core/packages/http-client-csharp/ diff --git a/cspell.yaml b/cspell.yaml index a4232e4861..f9c8299c50 100644 --- a/cspell.yaml +++ b/cspell.yaml @@ -27,6 +27,7 @@ enableFiletypes: - typespec words: - allof + - mobo - apim - apos - armId diff --git a/packages/samples/common-types/sort-openapi.ts b/packages/samples/common-types/sort-openapi.ts index 8addfd5bce..b32b4a358a 100644 --- a/packages/samples/common-types/sort-openapi.ts +++ b/packages/samples/common-types/sort-openapi.ts @@ -27,7 +27,6 @@ async function findJsonFiles(folder: string): Promise { } const files = await findJsonFiles(resolve(dir, "existing")); -console.log("Files", files); for (const file of files) { const content = await readFile(file); From 1d2052107718482b86946fe422eb6b1fce9726bf Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Mon, 1 Jul 2024 14:42:00 -0700 Subject: [PATCH 36/42] Create common-types-json-gen-2024-6-1-21-40-23.md --- .../changes/common-types-json-gen-2024-6-1-21-40-23.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .chronus/changes/common-types-json-gen-2024-6-1-21-40-23.md diff --git a/.chronus/changes/common-types-json-gen-2024-6-1-21-40-23.md b/.chronus/changes/common-types-json-gen-2024-6-1-21-40-23.md new file mode 100644 index 0000000000..f4edbaf63d --- /dev/null +++ b/.chronus/changes/common-types-json-gen-2024-6-1-21-40-23.md @@ -0,0 +1,8 @@ +--- +# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking +changeKind: internal +packages: + - "@azure-tools/typespec-azure-resource-manager" +--- + +Move version enum to its own file From 16284d4231f25de75a3deff2c94e3862819a1df6 Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Mon, 1 Jul 2024 14:50:43 -0700 Subject: [PATCH 37/42] . --- packages/samples/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/samples/package.json b/packages/samples/package.json index a863b647ad..04a1c463da 100644 --- a/packages/samples/package.json +++ b/packages/samples/package.json @@ -31,7 +31,7 @@ "test:ci": "vitest run --coverage --reporter=junit --reporter=default", "test:regen": "cross-env RECORD=true vitest run", "regen-common-types": "tsx ./common-types/gen.ts", - "regen-samples": "cross-env RECORD=true vitest run" + "regen-samples": "pnpm regen-common-types && cross-env RECORD=true vitest run" }, "files": [ "lib/*.tsp", From c23d5ad3c9f8955df9d57b565fb4aa7e96bb1bfc Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Mon, 1 Jul 2024 15:12:54 -0700 Subject: [PATCH 38/42] Update common-types.tsp --- .../lib/common-types/common-types.tsp | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/typespec-azure-resource-manager/lib/common-types/common-types.tsp b/packages/typespec-azure-resource-manager/lib/common-types/common-types.tsp index 98693199d6..dcca96749d 100644 --- a/packages/typespec-azure-resource-manager/lib/common-types/common-types.tsp +++ b/packages/typespec-azure-resource-manager/lib/common-types/common-types.tsp @@ -12,5 +12,4 @@ import "./versions.tsp"; using TypeSpec.Versioning; -@versioned(Versions) namespace Azure.ResourceManager.CommonTypes; From 9c52c7813c4fc8d61bb3adde49460bafbe5c4cad Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Mon, 1 Jul 2024 15:13:22 -0700 Subject: [PATCH 39/42] Update common-types.tsp --- .../lib/common-types/common-types.tsp | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/typespec-azure-resource-manager/lib/common-types/common-types.tsp b/packages/typespec-azure-resource-manager/lib/common-types/common-types.tsp index dcca96749d..da45362cca 100644 --- a/packages/typespec-azure-resource-manager/lib/common-types/common-types.tsp +++ b/packages/typespec-azure-resource-manager/lib/common-types/common-types.tsp @@ -10,6 +10,4 @@ import "./internal.tsp"; import "./commontypes.private.decorators.tsp"; import "./versions.tsp"; -using TypeSpec.Versioning; - namespace Azure.ResourceManager.CommonTypes; From 88ba7bf930366d3a1648717eeb6d7ceec207b14e Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Mon, 1 Jul 2024 15:31:13 -0700 Subject: [PATCH 40/42] Dependency updates July 2024 (#1104) --- ...pgrade-deps-july-2024-2024-6-1-20-35-24.md | 14 + .vscode/settings.json | 2 +- core | 2 +- package.json | 24 +- packages/e2e-tests/package.json | 2 +- packages/samples/package.json | 4 +- .../typespec-autorest-canonical/package.json | 4 +- packages/typespec-autorest/package.json | 4 +- packages/typespec-azure-core/package.json | 4 +- .../package.json | 10 +- .../typespec-azure-portal-core/package.json | 4 +- .../package.json | 4 +- .../src/index.ts | 2 +- packages/typespec-azure-rulesets/package.json | 4 +- .../package.json | 6 +- packages/typespec-service-csharp/package.json | 4 +- packages/website/package.json | 22 +- pnpm-lock.yaml | 8478 ++++++++++------- 18 files changed, 4949 insertions(+), 3645 deletions(-) create mode 100644 .chronus/changes/upgrade-deps-july-2024-2024-6-1-20-35-24.md diff --git a/.chronus/changes/upgrade-deps-july-2024-2024-6-1-20-35-24.md b/.chronus/changes/upgrade-deps-july-2024-2024-6-1-20-35-24.md new file mode 100644 index 0000000000..62fd29751e --- /dev/null +++ b/.chronus/changes/upgrade-deps-july-2024-2024-6-1-20-35-24.md @@ -0,0 +1,14 @@ +--- +# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking +changeKind: dependencies +packages: + - "@azure-tools/typespec-autorest-canonical" + - "@azure-tools/typespec-autorest" + - "@azure-tools/typespec-azure-core" + - "@azure-tools/typespec-azure-portal-core" + - "@azure-tools/typespec-azure-resource-manager" + - "@azure-tools/typespec-azure-rulesets" + - "@azure-tools/typespec-client-generator-core" +--- + +Dependency updates July 2024 diff --git a/.vscode/settings.json b/.vscode/settings.json index a3361d57dd..a9405fac15 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -51,7 +51,7 @@ "pnpm-config.json": "jsonc", "version-policies.json": "jsonc" }, - "typescript.tsdk": "./core/packages/compiler/node_modules/typescript/lib", + "typescript.tsdk": "node_modules/typescript/lib", "git.ignoreLimitWarning": true, "vitest.workspaceConfig": "./vitest.workspace.ts", "prettier.configPath": ".prettierrc.json", diff --git a/core b/core index 44a5be8af9..f3c2c9b67c 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 44a5be8af9ae84f76e68809809cbd2977abc4672 +Subproject commit f3c2c9b67cc8a0d99b3ee0f12b3ae16eea50e7bb diff --git a/package.json b/package.json index c559d72ebf..079eee9de8 100644 --- a/package.json +++ b/package.json @@ -38,22 +38,22 @@ "@eslint/js": "^8.57.0", "@pnpm/find-workspace-packages": "^6.0.9", "@types/node": "~18.11.19", - "@typescript-eslint/parser": "^7.9.0", - "@typescript-eslint/utils": "^7.9.0", - "c8": "^9.1.0", - "cspell": "^8.8.1", + "@typescript-eslint/parser": "^7.15.0", + "@typescript-eslint/utils": "^7.15.0", + "c8": "^10.1.2", + "cspell": "^8.9.1", "eslint": "^8.57.0", - "eslint-plugin-deprecation": "^2.0.0", + "eslint-plugin-deprecation": "^3.0.0", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-unicorn": "^53.0.0", + "eslint-plugin-unicorn": "^54.0.0", "eslint-plugin-vitest": "^0.5.4", - "prettier": "~3.2.5", - "prettier-plugin-organize-imports": "~3.2.4", + "prettier": "~3.3.2", + "prettier-plugin-organize-imports": "~4.0.0", "rimraf": "~5.0.7", - "syncpack": "^12.3.2", - "tsx": "^4.10.5", - "typescript": "~5.4.5", - "typescript-eslint": "^7.9.0", + "syncpack": "^12.3.3", + "tsx": "^4.16.0", + "typescript": "~5.5.3", + "typescript-eslint": "^7.15.0", "vitest": "^1.6.0" }, "syncpack": { diff --git a/packages/e2e-tests/package.json b/packages/e2e-tests/package.json index caa87e916d..566a5b7a66 100644 --- a/packages/e2e-tests/package.json +++ b/packages/e2e-tests/package.json @@ -27,6 +27,6 @@ "devDependencies": { "@typespec/compiler": "workspace:~", "dotenv": "~16.4.5", - "typescript": "~5.4.5" + "typescript": "~5.5.3" } } diff --git a/packages/samples/package.json b/packages/samples/package.json index fb85676366..ee3ca9d7d5 100644 --- a/packages/samples/package.json +++ b/packages/samples/package.json @@ -41,8 +41,8 @@ "@azure-tools/typespec-autorest": "workspace:~", "@azure-tools/typespec-azure-core": "workspace:~", "@azure-tools/typespec-azure-resource-manager": "workspace:~", - "@azure-tools/typespec-client-generator-core": "workspace:~", "@azure-tools/typespec-azure-rulesets": "workspace:~", + "@azure-tools/typespec-client-generator-core": "workspace:~", "@typespec/compiler": "workspace:~", "@typespec/http": "workspace:~", "@typespec/openapi": "workspace:~", @@ -59,7 +59,7 @@ "autorest": "~3.7.1", "cross-env": "~7.0.3", "rimraf": "~5.0.7", - "typescript": "~5.4.5", + "typescript": "~5.5.3", "vitest": "^1.6.0" } } diff --git a/packages/typespec-autorest-canonical/package.json b/packages/typespec-autorest-canonical/package.json index 778c8801b5..f29a77dfe7 100644 --- a/packages/typespec-autorest-canonical/package.json +++ b/packages/typespec-autorest-canonical/package.json @@ -74,10 +74,10 @@ "@typespec/versioning": "workspace:~", "@vitest/coverage-v8": "^1.6.0", "@vitest/ui": "^1.6.0", - "c8": "^9.1.0", + "c8": "^10.1.2", "change-case": "~5.4.4", "rimraf": "~5.0.7", - "typescript": "~5.4.5", + "typescript": "~5.5.3", "vitest": "^1.6.0" } } diff --git a/packages/typespec-autorest/package.json b/packages/typespec-autorest/package.json index 7c8417c850..6a0b6276cf 100644 --- a/packages/typespec-autorest/package.json +++ b/packages/typespec-autorest/package.json @@ -78,10 +78,10 @@ "@typespec/versioning": "workspace:~", "@vitest/coverage-v8": "^1.6.0", "@vitest/ui": "^1.6.0", - "c8": "^9.1.0", + "c8": "^10.1.2", "change-case": "~5.4.4", "rimraf": "~5.0.7", - "typescript": "~5.4.5", + "typescript": "~5.5.3", "vitest": "^1.6.0" } } diff --git a/packages/typespec-azure-core/package.json b/packages/typespec-azure-core/package.json index ec1a866320..b3591f97d3 100644 --- a/packages/typespec-azure-core/package.json +++ b/packages/typespec-azure-core/package.json @@ -67,9 +67,9 @@ "@typespec/versioning": "workspace:~", "@vitest/coverage-v8": "^1.6.0", "@vitest/ui": "^1.6.0", - "c8": "^9.1.0", + "c8": "^10.1.2", "rimraf": "~5.0.7", - "typescript": "~5.4.5", + "typescript": "~5.5.3", "vitest": "^1.6.0" } } diff --git a/packages/typespec-azure-playground-website/package.json b/packages/typespec-azure-playground-website/package.json index 3e0a0fa731..6dc3b6885f 100644 --- a/packages/typespec-azure-playground-website/package.json +++ b/packages/typespec-azure-playground-website/package.json @@ -54,8 +54,8 @@ "@azure-tools/typespec-autorest": "workspace:~", "@azure-tools/typespec-azure-core": "workspace:~", "@azure-tools/typespec-azure-resource-manager": "workspace:~", - "@azure-tools/typespec-client-generator-core": "workspace:~", "@azure-tools/typespec-azure-rulesets": "workspace:~", + "@azure-tools/typespec-client-generator-core": "workspace:~", "@emotion/react": "^11.11.4", "@typespec/compiler": "workspace:~", "@typespec/http": "workspace:~", @@ -63,14 +63,14 @@ "@typespec/openapi3": "workspace:~", "@typespec/rest": "workspace:~", "@typespec/versioning": "workspace:~", - "@vitejs/plugin-react": "~4.2.1", + "@vitejs/plugin-react": "~4.3.1", "es-module-shims": "~1.10.0", "react": "~18.3.1", "react-dom": "~18.3.1", - "vite": "^5.2.11" + "vite": "^5.3.2" }, "devDependencies": { - "@playwright/test": "^1.44.0", + "@playwright/test": "^1.45.0", "@types/node": "~18.11.19", "@types/react-dom": "~18.3.0", "@typespec/bundler": "workspace:~", @@ -79,7 +79,7 @@ "@vitest/ui": "^1.6.0", "cross-env": "~7.0.3", "rimraf": "~5.0.7", - "typescript": "~5.4.5", + "typescript": "~5.5.3", "vitest": "^1.6.0" } } diff --git a/packages/typespec-azure-portal-core/package.json b/packages/typespec-azure-portal-core/package.json index 68fb118359..c46a190ab1 100644 --- a/packages/typespec-azure-portal-core/package.json +++ b/packages/typespec-azure-portal-core/package.json @@ -46,9 +46,9 @@ "@typespec/versioning": "workspace:~", "@vitest/coverage-v8": "^1.6.0", "@vitest/ui": "^1.6.0", - "c8": "^9.1.0", + "c8": "^10.1.2", "source-map-support": "~0.5.21", - "typescript": "~5.4.5", + "typescript": "~5.5.3", "vitest": "^1.6.0" }, "exports": { diff --git a/packages/typespec-azure-resource-manager/package.json b/packages/typespec-azure-resource-manager/package.json index c2a69d542f..15e53900fe 100644 --- a/packages/typespec-azure-resource-manager/package.json +++ b/packages/typespec-azure-resource-manager/package.json @@ -76,9 +76,9 @@ "@typespec/versioning": "workspace:~", "@vitest/coverage-v8": "^1.6.0", "@vitest/ui": "^1.6.0", - "c8": "^9.1.0", + "c8": "^10.1.2", "rimraf": "~5.0.7", - "typescript": "~5.4.5", + "typescript": "~5.5.3", "vitest": "^1.6.0" } } diff --git a/packages/typespec-azure-resource-manager/src/index.ts b/packages/typespec-azure-resource-manager/src/index.ts index c844cee71d..1109e9bf1d 100644 --- a/packages/typespec-azure-resource-manager/src/index.ts +++ b/packages/typespec-azure-resource-manager/src/index.ts @@ -8,8 +8,8 @@ export { getArmCommonTypesVersion, getArmCommonTypesVersions, isArmCommonType, - type ArmCommonTypeVersions, type ArmCommonTypesResolutionOptions, + type ArmCommonTypeVersions, } from "./common-types.js"; export * from "./namespace.js"; diff --git a/packages/typespec-azure-rulesets/package.json b/packages/typespec-azure-rulesets/package.json index 269961c4b8..c513ab1bd0 100644 --- a/packages/typespec-azure-rulesets/package.json +++ b/packages/typespec-azure-rulesets/package.json @@ -57,10 +57,10 @@ "@typespec/tspd": "workspace:~", "@vitest/coverage-v8": "^1.6.0", "@vitest/ui": "^1.6.0", - "c8": "^9.1.0", + "c8": "^10.1.2", "change-case": "~5.4.4", "rimraf": "~5.0.7", - "typescript": "~5.4.5", + "typescript": "~5.5.3", "vitest": "^1.6.0" } } diff --git a/packages/typespec-client-generator-core/package.json b/packages/typespec-client-generator-core/package.json index 83df22f666..642321d771 100644 --- a/packages/typespec-client-generator-core/package.json +++ b/packages/typespec-client-generator-core/package.json @@ -71,17 +71,17 @@ "@types/pluralize": "^0.0.33", "@typespec/compiler": "workspace:~", "@typespec/http": "workspace:~", - "@typespec/xml": "workspace:~", "@typespec/library-linter": "workspace:~", "@typespec/prettier-plugin-typespec": "workspace:~", "@typespec/rest": "workspace:~", "@typespec/tspd": "workspace:~", "@typespec/versioning": "workspace:~", + "@typespec/xml": "workspace:~", "@vitest/coverage-v8": "^1.6.0", "@vitest/ui": "^1.6.0", - "c8": "^9.1.0", + "c8": "^10.1.2", "rimraf": "~5.0.7", - "typescript": "~5.4.5", + "typescript": "~5.5.3", "vitest": "^1.6.0" } } diff --git a/packages/typespec-service-csharp/package.json b/packages/typespec-service-csharp/package.json index 3e2f5e6786..cde805cf17 100644 --- a/packages/typespec-service-csharp/package.json +++ b/packages/typespec-service-csharp/package.json @@ -67,9 +67,9 @@ "@typespec/rest": "workspace:~", "@typespec/tspd": "workspace:~", "@vitest/coverage-v8": "^1.6.0", - "c8": "^9.1.0", + "c8": "^10.1.2", "rimraf": "~5.0.7", - "typescript": "~5.4.5", + "typescript": "~5.5.3", "vitest": "^1.6.0" } } diff --git a/packages/website/package.json b/packages/website/package.json index d4c19863f7..57d79c2ec8 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -17,11 +17,11 @@ "regen-all-packages-docs": "pnpm -w --filter \"@azure-tools/typespec-azure-website...\" run regen-docs" }, "dependencies": { - "@docusaurus/core": "^3.3.2", - "@docusaurus/plugin-content-docs": "~3.3.2", - "@docusaurus/preset-classic": "^3.3.2", - "@docusaurus/theme-common": "~3.3.2", - "@fluentui/react-components": "~9.52.0", + "@docusaurus/core": "^3.4.0", + "@docusaurus/plugin-content-docs": "~3.4.0", + "@docusaurus/preset-classic": "^3.4.0", + "@docusaurus/theme-common": "~3.4.0", + "@fluentui/react-components": "~9.54.2", "@mdx-js/react": "^3.0.1", "@typespec/playground": "workspace:~", "@typespec/website": "workspace:~", @@ -39,20 +39,20 @@ "@azure-tools/typespec-azure-playground-website": "workspace:~", "@azure-tools/typespec-azure-portal-core": "workspace:~", "@azure-tools/typespec-azure-resource-manager": "workspace:~", + "@azure-tools/typespec-azure-rulesets": "workspace:~", "@azure-tools/typespec-client-generator-core": "workspace:~", "@azure-tools/typespec-service-csharp": "workspace:~", - "@azure-tools/typespec-azure-rulesets": "workspace:~", - "@docusaurus/module-type-aliases": "^3.3.2", - "@docusaurus/tsconfig": "^3.3.2", - "@docusaurus/types": "^3.3.2", + "@docusaurus/module-type-aliases": "^3.4.0", + "@docusaurus/tsconfig": "^3.4.0", + "@docusaurus/types": "^3.4.0", "@types/node": "~18.11.19", - "@types/react": "~18.3.2", + "@types/react": "~18.3.3", "@typespec/tspd": "workspace:~", "dotenv": "~16.4.5", "file-loader": "~6.2.0", "monaco-editor-webpack-plugin": "~7.1.0", "rimraf": "~5.0.7", - "typescript": "~5.4.5" + "typescript": "~5.5.3" }, "browserslist": { "production": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 15132c721e..6be8682f7f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,5 +1,9 @@ lockfileVersion: '6.0' +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + overrides: '@fluentui/react-theme': 9.1.17 @@ -27,56 +31,56 @@ importers: specifier: ~18.11.19 version: 18.11.19 '@typescript-eslint/parser': - specifier: ^7.9.0 - version: 7.9.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.15.0 + version: 7.15.0(eslint@8.57.0)(typescript@5.5.3) '@typescript-eslint/utils': - specifier: ^7.9.0 - version: 7.9.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.15.0 + version: 7.15.0(eslint@8.57.0)(typescript@5.5.3) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 cspell: - specifier: ^8.8.1 - version: 8.8.1 + specifier: ^8.9.1 + version: 8.9.1 eslint: specifier: ^8.57.0 version: 8.57.0 eslint-plugin-deprecation: - specifier: ^2.0.0 - version: 2.0.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^3.0.0 + version: 3.0.0(eslint@8.57.0)(typescript@5.5.3) eslint-plugin-import: specifier: ^2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.9.0)(eslint@8.57.0) + version: 2.29.1(@typescript-eslint/parser@7.15.0)(eslint@8.57.0) eslint-plugin-unicorn: - specifier: ^53.0.0 - version: 53.0.0(eslint@8.57.0) + specifier: ^54.0.0 + version: 54.0.0(eslint@8.57.0) eslint-plugin-vitest: specifier: ^0.5.4 - version: 0.5.4(eslint@8.57.0)(typescript@5.4.5)(vitest@1.6.0) + version: 0.5.4(eslint@8.57.0)(typescript@5.5.3)(vitest@1.6.0) prettier: - specifier: ~3.2.5 - version: 3.2.5 + specifier: ~3.3.2 + version: 3.3.2 prettier-plugin-organize-imports: - specifier: ~3.2.4 - version: 3.2.4(prettier@3.2.5)(typescript@5.4.5) + specifier: ~4.0.0 + version: 4.0.0(prettier@3.3.2)(typescript@5.5.3) rimraf: specifier: ~5.0.7 version: 5.0.7 syncpack: - specifier: ^12.3.2 - version: 12.3.2(typescript@5.4.5) + specifier: ^12.3.3 + version: 12.3.3(typescript@5.5.3) tsx: - specifier: ^4.10.5 - version: 4.10.5 + specifier: ^4.16.0 + version: 4.16.0 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 typescript-eslint: - specifier: ^7.9.0 - version: 7.9.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.15.0 + version: 7.15.0(eslint@8.57.0)(typescript@5.5.3) vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.12.3) core: devDependencies: @@ -105,65 +109,65 @@ importers: specifier: ~18.11.19 version: 18.11.19 '@typescript-eslint/parser': - specifier: ^7.9.0 - version: 7.9.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.15.0 + version: 7.15.0(eslint@8.57.0)(typescript@5.5.3) '@typescript-eslint/utils': - specifier: ^7.9.0 - version: 7.9.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.15.0 + version: 7.15.0(eslint@8.57.0)(typescript@5.5.3) '@vitest/coverage-v8': specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 cspell: - specifier: ^8.8.1 - version: 8.8.1 + specifier: ^8.9.1 + version: 8.9.1 eslint: specifier: ^8.57.0 version: 8.57.0 eslint-plugin-deprecation: - specifier: ^2.0.0 - version: 2.0.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^3.0.0 + version: 3.0.0(eslint@8.57.0)(typescript@5.5.3) eslint-plugin-import: specifier: ^2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.9.0)(eslint@8.57.0) + version: 2.29.1(@typescript-eslint/parser@7.15.0)(eslint@8.57.0) eslint-plugin-unicorn: - specifier: ^53.0.0 - version: 53.0.0(eslint@8.57.0) + specifier: ^54.0.0 + version: 54.0.0(eslint@8.57.0) eslint-plugin-vitest: specifier: ^0.5.4 - version: 0.5.4(eslint@8.57.0)(typescript@5.4.5)(vitest@1.6.0) + version: 0.5.4(eslint@8.57.0)(typescript@5.5.3)(vitest@1.6.0) picocolors: specifier: ~1.0.1 version: 1.0.1 prettier: - specifier: ~3.2.5 - version: 3.2.5 + specifier: ~3.3.2 + version: 3.3.2 prettier-plugin-organize-imports: - specifier: ~3.2.4 - version: 3.2.4(prettier@3.2.5)(typescript@5.4.5) + specifier: ~4.0.0 + version: 4.0.0(prettier@3.3.2)(typescript@5.5.3) rimraf: specifier: ~5.0.7 version: 5.0.7 syncpack: - specifier: ^12.3.2 - version: 12.3.2(typescript@5.4.5) + specifier: ^12.3.3 + version: 12.3.3(typescript@5.5.3) tsx: - specifier: ^4.10.5 - version: 4.10.5 + specifier: ^4.16.0 + version: 4.16.0 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 typescript-eslint: - specifier: ^7.9.0 - version: 7.9.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.15.0 + version: 7.15.0(eslint@8.57.0)(typescript@5.5.3) vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.12.3) yaml: - specifier: ~2.4.2 - version: 2.4.2 + specifier: ~2.4.5 + version: 2.4.5 core/packages/best-practices: devDependencies: @@ -180,26 +184,26 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 rimraf: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) core/packages/bundle-uploader: dependencies: '@azure/identity': - specifier: ~4.2.1 - version: 4.2.1 + specifier: ~4.3.0 + version: 4.3.0 '@azure/storage-blob': - specifier: ~12.18.0 - version: 12.18.0 + specifier: ~12.23.0 + version: 12.23.0 '@pnpm/find-workspace-packages': specifier: ^6.0.9 version: 6.0.9(@pnpm/logger@5.0.0) @@ -229,38 +233,38 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 rimraf: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) core/packages/bundler: dependencies: '@rollup/plugin-alias': specifier: ~5.1.0 - version: 5.1.0(rollup@4.17.2) + version: 5.1.0(rollup@4.18.0) '@rollup/plugin-commonjs': - specifier: ~25.0.7 - version: 25.0.7(rollup@4.17.2) + specifier: ~26.0.1 + version: 26.0.1(rollup@4.18.0) '@rollup/plugin-json': specifier: ~6.1.0 - version: 6.1.0(rollup@4.17.2) + version: 6.1.0(rollup@4.18.0) '@rollup/plugin-multi-entry': specifier: ~6.0.1 - version: 6.0.1(rollup@4.17.2) + version: 6.0.1(rollup@4.18.0) '@rollup/plugin-node-resolve': specifier: ~15.2.3 - version: 15.2.3(rollup@4.17.2) + version: 15.2.3(rollup@4.18.0) '@rollup/plugin-virtual': specifier: ~3.0.2 - version: 3.0.2(rollup@4.17.2) + version: 3.0.2(rollup@4.18.0) '@typespec/compiler': specifier: workspace:~ version: link:../compiler @@ -268,8 +272,8 @@ importers: specifier: ~1.0.1 version: 1.0.1 rollup: - specifier: ~4.17.2 - version: 4.17.2 + specifier: ~4.18.0 + version: 4.18.0 yargs: specifier: ~17.7.2 version: 17.7.2 @@ -287,35 +291,35 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 rimraf: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vite: - specifier: ^5.2.11 - version: 5.2.11(@types/node@18.11.19) + specifier: ^5.3.2 + version: 5.3.2(@types/node@18.11.19) vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) core/packages/compiler: dependencies: '@babel/code-frame': - specifier: ~7.24.2 - version: 7.24.2 + specifier: ~7.24.7 + version: 7.24.7 ajv: - specifier: ~8.13.0 - version: 8.13.0 + specifier: ~8.16.0 + version: 8.16.0 change-case: specifier: ~5.4.4 version: 5.4.4 globby: - specifier: ~14.0.1 - version: 14.0.1 + specifier: ~14.0.2 + version: 14.0.2 mustache: specifier: ~4.2.0 version: 4.2.0 @@ -323,8 +327,8 @@ importers: specifier: ~1.0.1 version: 1.0.1 prettier: - specifier: ~3.2.5 - version: 3.2.5 + specifier: ~3.3.2 + version: 3.3.2 prompts: specifier: ~2.4.2 version: 2.4.2 @@ -338,8 +342,8 @@ importers: specifier: ~1.0.11 version: 1.0.11 yaml: - specifier: ~2.4.2 - version: 2.4.2 + specifier: ~2.4.5 + version: 2.4.5 yargs: specifier: ~17.7.2 version: 17.7.2 @@ -372,8 +376,8 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 grammarkdown: specifier: ~3.3.2 version: 3.3.2 @@ -388,13 +392,13 @@ importers: version: link:../tmlanguage-generator ts-node: specifier: ~10.9.2 - version: 10.9.2(@types/node@18.11.19)(typescript@5.4.5) + version: 10.9.2(@types/node@18.11.19)(typescript@5.5.3) typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) vscode-oniguruma: specifier: ~2.0.1 version: 2.0.1 @@ -405,21 +409,21 @@ importers: core/packages/eslint-plugin-typespec: dependencies: '@typescript-eslint/utils': - specifier: ^7.9.0 - version: 7.9.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.15.0 + version: 7.15.0(eslint@8.57.0)(typescript@5.5.3) devDependencies: '@types/node': specifier: ~18.11.19 version: 18.11.19 '@typescript-eslint/parser': - specifier: ^7.9.0 - version: 7.9.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.15.0 + version: 7.15.0(eslint@8.57.0)(typescript@5.5.3) '@typescript-eslint/rule-tester': - specifier: ^7.9.0 - version: 7.9.0(@eslint/eslintrc@3.1.0)(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.15.0 + version: 7.15.0(@eslint/eslintrc@3.1.0)(eslint@8.57.0)(typescript@5.5.3) '@typescript-eslint/types': - specifier: ^7.9.0 - version: 7.9.0 + specifier: ^7.15.0 + version: 7.15.0 '@vitest/coverage-v8': specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) @@ -427,8 +431,8 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 eslint: specifier: ^8.57.0 version: 8.57.0 @@ -436,20 +440,20 @@ importers: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) core/packages/html-program-viewer: dependencies: '@emotion/react': specifier: ^11.11.4 - version: 11.11.4(@types/react@18.3.2)(react@18.3.1) + version: 11.11.4(@types/react@18.3.3)(react@18.3.1) prettier: - specifier: ~3.2.5 - version: 3.2.5 + specifier: ~3.3.2 + version: 3.3.2 react: specifier: ~18.3.1 version: 18.3.1 @@ -461,14 +465,14 @@ importers: version: 18.3.1 devDependencies: '@babel/core': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.7 + version: 7.24.7 '@types/node': specifier: ~18.11.19 version: 18.11.19 '@types/react': - specifier: ~18.3.2 - version: 18.3.2 + specifier: ~18.3.3 + version: 18.3.3 '@types/react-dom': specifier: ~18.3.0 version: 18.3.0 @@ -482,17 +486,17 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 rimraf: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) core/packages/http: devDependencies: @@ -515,17 +519,17 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 rimraf: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) core/packages/internal-build-utils: dependencies: @@ -533,8 +537,8 @@ importers: specifier: ^6.0.9 version: 6.0.9(@pnpm/logger@5.0.0) cspell: - specifier: ^8.8.1 - version: 8.8.1 + specifier: ^8.9.1 + version: 8.9.1 semver: specifier: ^7.6.2 version: 7.6.2 @@ -561,8 +565,8 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 chokidar: specifier: ~3.6.0 version: 3.6.0 @@ -570,17 +574,17 @@ importers: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) core/packages/json-schema: dependencies: yaml: - specifier: ~2.4.2 - version: 2.4.2 + specifier: ~2.4.5 + version: 2.4.5 devDependencies: '@types/node': specifier: ~18.11.19 @@ -604,23 +608,23 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) ajv: - specifier: ~8.13.0 - version: 8.13.0 + specifier: ~8.16.0 + version: 8.16.0 ajv-formats: specifier: ~3.0.1 - version: 3.0.1(ajv@8.13.0) + version: 3.0.1(ajv@8.16.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 rimraf: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) core/packages/library-linter: devDependencies: @@ -637,23 +641,23 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 rimraf: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) core/packages/monarch: dependencies: monaco-editor-core: - specifier: ^0.48.0 - version: 0.48.0 + specifier: ^0.50.0 + version: 0.50.0 devDependencies: '@types/node': specifier: ~18.11.19 @@ -665,20 +669,20 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 happy-dom: - specifier: ^14.11.0 - version: 14.11.0 + specifier: ^14.12.3 + version: 14.12.3 rimraf: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.12.3) core/packages/openapi: devDependencies: @@ -707,23 +711,23 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 rimraf: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) core/packages/openapi3: dependencies: yaml: - specifier: ~2.4.2 - version: 2.4.2 + specifier: ~2.4.5 + version: 2.4.5 devDependencies: '@types/node': specifier: ~18.11.19 @@ -756,26 +760,26 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 rimraf: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) core/packages/playground: dependencies: '@fluentui/react-components': - specifier: ~9.52.0 - version: 9.52.0(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + specifier: ~9.54.2 + version: 9.54.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) '@fluentui/react-icons': - specifier: ^2.0.240 - version: 2.0.240(react@18.3.1) + specifier: ^2.0.247 + version: 2.0.247(react@18.3.1) '@typespec/bundler': specifier: workspace:~ version: link:../bundler @@ -807,8 +811,8 @@ importers: specifier: ^2.1.1 version: 2.1.1 debounce: - specifier: ~2.0.0 - version: 2.0.0 + specifier: ~2.1.0 + version: 2.1.0 lzutf8: specifier: 0.6.3 version: 0.6.3 @@ -825,8 +829,8 @@ importers: specifier: ^4.0.13 version: 4.0.13(react@18.3.1) swagger-ui-dist: - specifier: ^5.17.10 - version: 5.17.10 + specifier: ^5.17.14 + version: 5.17.14 vscode-languageserver: specifier: ~9.0.1 version: 9.0.1 @@ -835,29 +839,29 @@ importers: version: 1.0.11 devDependencies: '@babel/core': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.7 + version: 7.24.7 '@playwright/test': - specifier: ^1.44.0 - version: 1.44.0 + specifier: ^1.45.0 + version: 1.45.0 '@storybook/addon-actions': - specifier: ^8.1.2 - version: 8.1.3 + specifier: ^8.1.11 + version: 8.1.11 '@storybook/cli': - specifier: ^8.1.2 - version: 8.1.3(react-dom@18.3.1)(react@18.3.1) + specifier: ^8.1.11 + version: 8.1.11(react-dom@18.3.1)(react@18.3.1) '@storybook/react': - specifier: ^8.1.2 - version: 8.1.3(prettier@3.2.5)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + specifier: ^8.1.11 + version: 8.1.11(prettier@3.3.2)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) '@storybook/react-vite': - specifier: ^8.1.2 - version: 8.1.3(prettier@3.2.5)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5)(vite@5.2.11) + specifier: ^8.1.11 + version: 8.1.11(prettier@3.3.2)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3)(vite@5.3.2) '@storybook/test': - specifier: ^8.1.2 - version: 8.1.3(vitest@1.6.0) + specifier: ^8.1.11 + version: 8.1.11(vitest@1.6.0) '@storybook/types': - specifier: ^8.1.2 - version: 8.1.3 + specifier: ^8.1.11 + version: 8.1.11 '@types/debounce': specifier: ~1.2.4 version: 1.2.4 @@ -865,20 +869,20 @@ importers: specifier: ~18.11.19 version: 18.11.19 '@types/react': - specifier: ~18.3.2 - version: 18.3.2 + specifier: ~18.3.3 + version: 18.3.3 '@types/react-dom': specifier: ~18.3.0 version: 18.3.0 '@types/swagger-ui-dist': - specifier: ~3.30.4 - version: 3.30.4 + specifier: ~3.30.5 + version: 3.30.5 '@vitejs/plugin-react': - specifier: ~4.2.1 - version: 4.2.1(vite@5.2.11) + specifier: ~4.3.1 + version: 4.3.1(vite@5.3.2) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -889,17 +893,17 @@ importers: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vite: - specifier: ^5.2.11 - version: 5.2.11(@types/node@18.11.19) + specifier: ^5.3.2 + version: 5.3.2(@types/node@18.11.19) vite-plugin-checker: - specifier: ^0.6.4 - version: 0.6.4(eslint@8.57.0)(typescript@5.4.5)(vite@5.2.11) + specifier: ^0.7.0 + version: 0.7.0(eslint@8.57.0)(typescript@5.5.3)(vite@5.3.2) vite-plugin-dts: specifier: ^3.9.1 - version: 3.9.1(@types/node@18.11.19)(typescript@5.4.5)(vite@5.2.11) + version: 3.9.1(@types/node@18.11.19)(typescript@5.5.3)(vite@5.3.2) core/packages/playground-website: dependencies: @@ -944,11 +948,11 @@ importers: version: 18.3.1(react@18.3.1) devDependencies: '@babel/core': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.7 + version: 7.24.7 '@playwright/test': - specifier: ^1.44.0 - version: 1.44.0 + specifier: ^1.45.0 + version: 1.45.0 '@types/debounce': specifier: ~1.2.4 version: 1.2.4 @@ -956,8 +960,8 @@ importers: specifier: ~18.11.19 version: 18.11.19 '@types/react': - specifier: ~18.3.2 - version: 18.3.2 + specifier: ~18.3.3 + version: 18.3.3 '@types/react-dom': specifier: ~18.3.0 version: 18.3.0 @@ -965,8 +969,8 @@ importers: specifier: ~3.52.4 version: 3.52.4 '@vitejs/plugin-react': - specifier: ~4.2.1 - version: 4.2.1(vite@5.2.11) + specifier: ~4.3.1 + version: 4.3.1(vite@5.3.2) '@vitest/coverage-v8': specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) @@ -974,8 +978,8 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -986,33 +990,33 @@ importers: specifier: ~5.12.0 version: 5.12.0 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vite: - specifier: ^5.2.11 - version: 5.2.11(@types/node@18.11.19) + specifier: ^5.3.2 + version: 5.3.2(@types/node@18.11.19) vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) core/packages/prettier-plugin-typespec: dependencies: prettier: - specifier: ~3.2.5 - version: 3.2.5 + specifier: ~3.3.2 + version: 3.3.2 devDependencies: '@rollup/plugin-commonjs': - specifier: ~25.0.7 - version: 25.0.7(rollup@4.17.2) + specifier: ~26.0.1 + version: 26.0.1(rollup@4.18.0) '@rollup/plugin-json': specifier: ~6.1.0 - version: 6.1.0(rollup@4.17.2) + version: 6.1.0(rollup@4.18.0) '@rollup/plugin-node-resolve': specifier: ~15.2.3 - version: 15.2.3(rollup@4.17.2) + version: 15.2.3(rollup@4.18.0) '@rollup/plugin-replace': - specifier: ~5.0.5 - version: 5.0.5(rollup@4.17.2) + specifier: ~5.0.7 + version: 5.0.7(rollup@4.18.0) '@typespec/compiler': specifier: workspace:~ version: link:../compiler @@ -1020,17 +1024,17 @@ importers: specifier: workspace:~ version: link:../internal-build-utils rollup: - specifier: ~4.17.2 - version: 4.17.2 + specifier: ~4.18.0 + version: 4.18.0 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.12.3) core/packages/protobuf: devDependencies: '@types/micromatch': - specifier: ^4.0.7 - version: 4.0.7 + specifier: ^4.0.9 + version: 4.0.9 '@types/node': specifier: ~18.11.19 version: 18.11.19 @@ -1047,20 +1051,20 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 micromatch: - specifier: ^4.0.5 - version: 4.0.5 + specifier: ^4.0.7 + version: 4.0.7 rimraf: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) core/packages/rest: devDependencies: @@ -1086,17 +1090,17 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 rimraf: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) core/packages/samples: dependencies: @@ -1150,11 +1154,11 @@ importers: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) core/packages/spec: devDependencies: @@ -1165,8 +1169,8 @@ importers: specifier: workspace:~ version: link:../internal-build-utils ecmarkup: - specifier: ~18.3.1 - version: 18.3.1 + specifier: ~19.0.0 + version: 19.0.0 core/packages/tmlanguage-generator: dependencies: @@ -1187,8 +1191,8 @@ importers: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 core/packages/tspd: dependencies: @@ -1199,11 +1203,11 @@ importers: specifier: ~1.0.1 version: 1.0.1 prettier: - specifier: ~3.2.5 - version: 3.2.5 + specifier: ~3.3.2 + version: 3.3.2 yaml: - specifier: ~2.4.2 - version: 2.4.2 + specifier: ~2.4.5 + version: 2.4.5 yargs: specifier: ~17.7.2 version: 17.7.2 @@ -1224,8 +1228,8 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 rimraf: specifier: ~5.0.7 version: 5.0.7 @@ -1233,17 +1237,17 @@ importers: specifier: ~0.5.21 version: 0.5.21 typedoc: - specifier: ^0.25.13 - version: 0.25.13(typescript@5.4.5) + specifier: ^0.26.3 + version: 0.26.3(typescript@5.5.3) typedoc-plugin-markdown: - specifier: ^4.0.2 - version: 4.0.2(typedoc@0.25.13) + specifier: ^4.1.1 + version: 4.1.1(typedoc@0.26.3) typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) core/packages/typespec-vs: devDependencies: @@ -1257,20 +1261,20 @@ importers: core/packages/typespec-vscode: devDependencies: '@rollup/plugin-commonjs': - specifier: ~25.0.7 - version: 25.0.7(rollup@4.17.2) + specifier: ~26.0.1 + version: 26.0.1(rollup@4.18.0) '@rollup/plugin-node-resolve': specifier: ~15.2.3 - version: 15.2.3(rollup@4.17.2) + version: 15.2.3(rollup@4.18.0) '@rollup/plugin-typescript': specifier: ~11.1.6 - version: 11.1.6(rollup@4.17.2)(typescript@5.4.5) + version: 11.1.6(rollup@4.18.0)(typescript@5.5.3) '@types/node': specifier: ~18.11.19 version: 18.11.19 '@types/vscode': - specifier: ~1.89.0 - version: 1.89.0 + specifier: ~1.90.0 + version: 1.90.0 '@typespec/compiler': specifier: workspace:~ version: link:../compiler @@ -1284,23 +1288,23 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) '@vscode/vsce': - specifier: ~2.26.1 - version: 2.26.1 + specifier: ~2.29.0 + version: 2.29.0 c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 rimraf: specifier: ~5.0.7 version: 5.0.7 rollup: - specifier: ~4.17.2 - version: 4.17.2 + specifier: ~4.18.0 + version: 4.18.0 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) vscode-languageclient: specifier: ~9.0.1 version: 9.0.1 @@ -1326,47 +1330,47 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 rimraf: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) core/packages/website: dependencies: '@docusaurus/core': - specifier: ^3.3.2 - version: 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + specifier: ^3.4.0 + version: 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) '@docusaurus/plugin-content-docs': - specifier: ~3.3.2 - version: 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + specifier: ~3.4.0 + version: 3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) '@docusaurus/preset-classic': - specifier: ^3.3.2 - version: 3.3.2(@algolia/client-search@4.23.3)(@swc/core@1.5.7)(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.13.0)(typescript@5.4.5) + specifier: ^3.4.0 + version: 3.4.0(@algolia/client-search@4.24.0)(@swc/core@1.6.6)(@types/react@18.3.3)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.14.0)(typescript@5.5.3) '@docusaurus/theme-classic': - specifier: ~3.3.2 - version: 3.3.2(@swc/core@1.5.7)(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + specifier: ~3.4.0 + version: 3.4.0(@swc/core@1.6.6)(@types/react@18.3.3)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) '@docusaurus/theme-common': - specifier: ~3.3.2 - version: 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + specifier: ~3.4.0 + version: 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) '@docusaurus/theme-mermaid': - specifier: ^3.3.2 - version: 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + specifier: ^3.4.0 + version: 3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) '@fluentui/react-components': - specifier: ~9.52.0 - version: 9.52.0(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + specifier: ~9.54.2 + version: 9.54.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) '@fluentui/react-icons': - specifier: ^2.0.240 - version: 2.0.240(react@18.3.1) + specifier: ^2.0.247 + version: 2.0.247(react@18.3.1) '@mdx-js/react': specifier: ^3.0.1 - version: 3.0.1(@types/react@18.3.2)(react@18.3.1) + version: 3.0.1(@types/react@18.3.3)(react@18.3.1) '@typespec/playground': specifier: workspace:~ version: link:../playground @@ -1390,23 +1394,23 @@ importers: version: 18.3.1(react@18.3.1) devDependencies: '@docusaurus/module-type-aliases': - specifier: ^3.3.2 - version: 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) + specifier: ^3.4.0 + version: 3.4.0(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1) '@docusaurus/tsconfig': - specifier: ^3.3.2 - version: 3.3.2 + specifier: ^3.4.0 + version: 3.4.0 '@docusaurus/types': - specifier: ^3.3.2 - version: 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) + specifier: ^3.4.0 + version: 3.4.0(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1) '@swc/core': - specifier: ^1.5.7 - version: 1.5.7 + specifier: ^1.6.6 + version: 1.6.6 '@types/node': specifier: ~18.11.19 version: 18.11.19 '@types/react': - specifier: ~18.3.2 - version: 18.3.2 + specifier: ~18.3.3 + version: 18.3.3 '@typespec/compiler': specifier: workspace:~ version: link:../compiler @@ -1451,31 +1455,31 @@ importers: version: 16.4.5 file-loader: specifier: ~6.2.0 - version: 6.2.0(webpack@5.91.0) + version: 6.2.0(webpack@5.92.1) mermaid: specifier: ~10.9.1 version: 10.9.1 monaco-editor-webpack-plugin: specifier: ~7.1.0 - version: 7.1.0(monaco-editor@0.46.0)(webpack@5.91.0) + version: 7.1.0(monaco-editor@0.50.0)(webpack@5.92.1) playwright: - specifier: ^1.44.0 - version: 1.44.0 + specifier: ^1.45.0 + version: 1.45.0 prism-themes: specifier: ~1.9.0 version: 1.9.0 raw-loader: specifier: ~4.0.2 - version: 4.0.2(webpack@5.91.0) + version: 4.0.2(webpack@5.92.1) rimraf: specifier: ~5.0.7 version: 5.0.7 swc-loader: specifier: ^0.2.6 - version: 0.2.6(@swc/core@1.5.7)(webpack@5.91.0) + version: 0.2.6(@swc/core@1.6.6)(webpack@5.92.1) typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 core/packages/xml: devDependencies: @@ -1498,17 +1502,17 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 rimraf: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) packages/e2e-tests: devDependencies: @@ -1519,8 +1523,8 @@ importers: specifier: ~16.4.5 version: 16.4.5 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 packages/samples: dependencies: @@ -1583,11 +1587,11 @@ importers: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) packages/typespec-autorest: devDependencies: @@ -1634,8 +1638,8 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 change-case: specifier: ~5.4.4 version: 5.4.4 @@ -1643,11 +1647,11 @@ importers: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) packages/typespec-autorest-canonical: devDependencies: @@ -1694,8 +1698,8 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 change-case: specifier: ~5.4.4 version: 5.4.4 @@ -1703,11 +1707,11 @@ importers: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) packages/typespec-azure-core: devDependencies: @@ -1742,17 +1746,17 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 rimraf: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) packages/typespec-azure-playground-website: dependencies: @@ -1773,7 +1777,7 @@ importers: version: link:../typespec-client-generator-core '@emotion/react': specifier: ^11.11.4 - version: 11.11.4(@types/react@18.3.2)(react@18.3.1) + version: 11.11.4(@types/react@18.3.3)(react@18.3.1) '@typespec/compiler': specifier: workspace:~ version: link:../../core/packages/compiler @@ -1793,8 +1797,8 @@ importers: specifier: workspace:~ version: link:../../core/packages/versioning '@vitejs/plugin-react': - specifier: ~4.2.1 - version: 4.2.1(vite@5.2.11) + specifier: ~4.3.1 + version: 4.3.1(vite@5.3.2) es-module-shims: specifier: ~1.10.0 version: 1.10.0 @@ -1805,12 +1809,12 @@ importers: specifier: ~18.3.1 version: 18.3.1(react@18.3.1) vite: - specifier: ^5.2.11 - version: 5.2.11(@types/node@18.11.19) + specifier: ^5.3.2 + version: 5.3.2(@types/node@18.11.19) devDependencies: '@playwright/test': - specifier: ^1.44.0 - version: 1.44.0 + specifier: ^1.45.0 + version: 1.45.0 '@types/node': specifier: ~18.11.19 version: 18.11.19 @@ -1836,11 +1840,11 @@ importers: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) packages/typespec-azure-portal-core: devDependencies: @@ -1887,17 +1891,17 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 source-map-support: specifier: ~0.5.21 version: 0.5.21 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) packages/typespec-azure-resource-manager: dependencies: @@ -1945,17 +1949,17 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 rimraf: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) packages/typespec-azure-rulesets: devDependencies: @@ -1984,8 +1988,8 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 change-case: specifier: ~5.4.4 version: 5.4.4 @@ -1993,11 +1997,11 @@ importers: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) packages/typespec-client-generator-core: dependencies: @@ -2048,17 +2052,17 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 rimraf: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) packages/typespec-service-csharp: dependencies: @@ -2100,38 +2104,38 @@ importers: specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 rimraf: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + version: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.12.3) packages/website: dependencies: '@docusaurus/core': - specifier: ^3.3.2 - version: 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + specifier: ^3.4.0 + version: 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) '@docusaurus/plugin-content-docs': - specifier: ~3.3.2 - version: 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + specifier: ~3.4.0 + version: 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) '@docusaurus/preset-classic': - specifier: ^3.3.2 - version: 3.3.2(@algolia/client-search@4.23.3)(@swc/core@1.5.7)(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.13.0)(typescript@5.4.5) + specifier: ^3.4.0 + version: 3.4.0(@algolia/client-search@4.24.0)(@types/react@18.3.3)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.14.0)(typescript@5.5.3) '@docusaurus/theme-common': - specifier: ~3.3.2 - version: 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + specifier: ~3.4.0 + version: 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) '@fluentui/react-components': - specifier: ~9.52.0 - version: 9.52.0(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + specifier: ~9.54.2 + version: 9.54.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) '@mdx-js/react': specifier: ^3.0.1 - version: 3.0.1(@types/react@18.3.2)(react@18.3.1) + version: 3.0.1(@types/react@18.3.3)(react@18.3.1) '@typespec/playground': specifier: workspace:~ version: link:../../core/packages/playground @@ -2185,20 +2189,20 @@ importers: specifier: workspace:~ version: link:../typespec-service-csharp '@docusaurus/module-type-aliases': - specifier: ^3.3.2 - version: 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) + specifier: ^3.4.0 + version: 3.4.0(react-dom@18.3.1)(react@18.3.1) '@docusaurus/tsconfig': - specifier: ^3.3.2 - version: 3.3.2 + specifier: ^3.4.0 + version: 3.4.0 '@docusaurus/types': - specifier: ^3.3.2 - version: 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) + specifier: ^3.4.0 + version: 3.4.0(react-dom@18.3.1)(react@18.3.1) '@types/node': specifier: ~18.11.19 version: 18.11.19 '@types/react': - specifier: ~18.3.2 - version: 18.3.2 + specifier: ~18.3.3 + version: 18.3.3 '@typespec/tspd': specifier: workspace:~ version: link:../../core/packages/tspd @@ -2207,175 +2211,175 @@ importers: version: 16.4.5 file-loader: specifier: ~6.2.0 - version: 6.2.0(webpack@5.91.0) + version: 6.2.0(webpack@5.92.1) monaco-editor-webpack-plugin: specifier: ~7.1.0 - version: 7.1.0(monaco-editor@0.46.0)(webpack@5.91.0) + version: 7.1.0(monaco-editor@0.50.0)(webpack@5.92.1) rimraf: specifier: ~5.0.7 version: 5.0.7 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.3 + version: 5.5.3 packages: - /@adobe/css-tools@4.3.3: - resolution: {integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==} + /@adobe/css-tools@4.4.0: + resolution: {integrity: sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==} dev: true - /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0): + /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.14.0): resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0) - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3) + '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.14.0) + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - search-insights dev: false - /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0): + /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.14.0): resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} peerDependencies: search-insights: '>= 1 < 3' dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3) - search-insights: 2.13.0 + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) + search-insights: 2.14.0 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch dev: false - /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3): + /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0): resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3) - '@algolia/client-search': 4.23.3 - algoliasearch: 4.23.3 + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) + '@algolia/client-search': 4.24.0 + algoliasearch: 4.24.0 dev: false - /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3): + /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0): resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' dependencies: - '@algolia/client-search': 4.23.3 - algoliasearch: 4.23.3 + '@algolia/client-search': 4.24.0 + algoliasearch: 4.24.0 dev: false - /@algolia/cache-browser-local-storage@4.23.3: - resolution: {integrity: sha512-vRHXYCpPlTDE7i6UOy2xE03zHF2C8MEFjPN2v7fRbqVpcOvAUQK81x3Kc21xyb5aSIpYCjWCZbYZuz8Glyzyyg==} + /@algolia/cache-browser-local-storage@4.24.0: + resolution: {integrity: sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww==} dependencies: - '@algolia/cache-common': 4.23.3 + '@algolia/cache-common': 4.24.0 dev: false - /@algolia/cache-common@4.23.3: - resolution: {integrity: sha512-h9XcNI6lxYStaw32pHpB1TMm0RuxphF+Ik4o7tcQiodEdpKK+wKufY6QXtba7t3k8eseirEMVB83uFFF3Nu54A==} + /@algolia/cache-common@4.24.0: + resolution: {integrity: sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g==} dev: false - /@algolia/cache-in-memory@4.23.3: - resolution: {integrity: sha512-yvpbuUXg/+0rbcagxNT7un0eo3czx2Uf0y4eiR4z4SD7SiptwYTpbuS0IHxcLHG3lq22ukx1T6Kjtk/rT+mqNg==} + /@algolia/cache-in-memory@4.24.0: + resolution: {integrity: sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w==} dependencies: - '@algolia/cache-common': 4.23.3 + '@algolia/cache-common': 4.24.0 dev: false - /@algolia/client-account@4.23.3: - resolution: {integrity: sha512-hpa6S5d7iQmretHHF40QGq6hz0anWEHGlULcTIT9tbUssWUriN9AUXIFQ8Ei4w9azD0hc1rUok9/DeQQobhQMA==} + /@algolia/client-account@4.24.0: + resolution: {integrity: sha512-adcvyJ3KjPZFDybxlqnf+5KgxJtBjwTPTeyG2aOyoJvx0Y8dUQAEOEVOJ/GBxX0WWNbmaSrhDURMhc+QeevDsA==} dependencies: - '@algolia/client-common': 4.23.3 - '@algolia/client-search': 4.23.3 - '@algolia/transporter': 4.23.3 + '@algolia/client-common': 4.24.0 + '@algolia/client-search': 4.24.0 + '@algolia/transporter': 4.24.0 dev: false - /@algolia/client-analytics@4.23.3: - resolution: {integrity: sha512-LBsEARGS9cj8VkTAVEZphjxTjMVCci+zIIiRhpFun9jGDUlS1XmhCW7CTrnaWeIuCQS/2iPyRqSy1nXPjcBLRA==} + /@algolia/client-analytics@4.24.0: + resolution: {integrity: sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg==} dependencies: - '@algolia/client-common': 4.23.3 - '@algolia/client-search': 4.23.3 - '@algolia/requester-common': 4.23.3 - '@algolia/transporter': 4.23.3 + '@algolia/client-common': 4.24.0 + '@algolia/client-search': 4.24.0 + '@algolia/requester-common': 4.24.0 + '@algolia/transporter': 4.24.0 dev: false - /@algolia/client-common@4.23.3: - resolution: {integrity: sha512-l6EiPxdAlg8CYhroqS5ybfIczsGUIAC47slLPOMDeKSVXYG1n0qGiz4RjAHLw2aD0xzh2EXZ7aRguPfz7UKDKw==} + /@algolia/client-common@4.24.0: + resolution: {integrity: sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==} dependencies: - '@algolia/requester-common': 4.23.3 - '@algolia/transporter': 4.23.3 + '@algolia/requester-common': 4.24.0 + '@algolia/transporter': 4.24.0 dev: false - /@algolia/client-personalization@4.23.3: - resolution: {integrity: sha512-3E3yF3Ocr1tB/xOZiuC3doHQBQ2zu2MPTYZ0d4lpfWads2WTKG7ZzmGnsHmm63RflvDeLK/UVx7j2b3QuwKQ2g==} + /@algolia/client-personalization@4.24.0: + resolution: {integrity: sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w==} dependencies: - '@algolia/client-common': 4.23.3 - '@algolia/requester-common': 4.23.3 - '@algolia/transporter': 4.23.3 + '@algolia/client-common': 4.24.0 + '@algolia/requester-common': 4.24.0 + '@algolia/transporter': 4.24.0 dev: false - /@algolia/client-search@4.23.3: - resolution: {integrity: sha512-P4VAKFHqU0wx9O+q29Q8YVuaowaZ5EM77rxfmGnkHUJggh28useXQdopokgwMeYw2XUht49WX5RcTQ40rZIabw==} + /@algolia/client-search@4.24.0: + resolution: {integrity: sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==} dependencies: - '@algolia/client-common': 4.23.3 - '@algolia/requester-common': 4.23.3 - '@algolia/transporter': 4.23.3 + '@algolia/client-common': 4.24.0 + '@algolia/requester-common': 4.24.0 + '@algolia/transporter': 4.24.0 dev: false /@algolia/events@4.0.1: resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==} dev: false - /@algolia/logger-common@4.23.3: - resolution: {integrity: sha512-y9kBtmJwiZ9ZZ+1Ek66P0M68mHQzKRxkW5kAAXYN/rdzgDN0d2COsViEFufxJ0pb45K4FRcfC7+33YB4BLrZ+g==} + /@algolia/logger-common@4.24.0: + resolution: {integrity: sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA==} dev: false - /@algolia/logger-console@4.23.3: - resolution: {integrity: sha512-8xoiseoWDKuCVnWP8jHthgaeobDLolh00KJAdMe9XPrWPuf1by732jSpgy2BlsLTaT9m32pHI8CRfrOqQzHv3A==} + /@algolia/logger-console@4.24.0: + resolution: {integrity: sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg==} dependencies: - '@algolia/logger-common': 4.23.3 + '@algolia/logger-common': 4.24.0 dev: false - /@algolia/recommend@4.23.3: - resolution: {integrity: sha512-9fK4nXZF0bFkdcLBRDexsnGzVmu4TSYZqxdpgBW2tEyfuSSY54D4qSRkLmNkrrz4YFvdh2GM1gA8vSsnZPR73w==} + /@algolia/recommend@4.24.0: + resolution: {integrity: sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw==} dependencies: - '@algolia/cache-browser-local-storage': 4.23.3 - '@algolia/cache-common': 4.23.3 - '@algolia/cache-in-memory': 4.23.3 - '@algolia/client-common': 4.23.3 - '@algolia/client-search': 4.23.3 - '@algolia/logger-common': 4.23.3 - '@algolia/logger-console': 4.23.3 - '@algolia/requester-browser-xhr': 4.23.3 - '@algolia/requester-common': 4.23.3 - '@algolia/requester-node-http': 4.23.3 - '@algolia/transporter': 4.23.3 + '@algolia/cache-browser-local-storage': 4.24.0 + '@algolia/cache-common': 4.24.0 + '@algolia/cache-in-memory': 4.24.0 + '@algolia/client-common': 4.24.0 + '@algolia/client-search': 4.24.0 + '@algolia/logger-common': 4.24.0 + '@algolia/logger-console': 4.24.0 + '@algolia/requester-browser-xhr': 4.24.0 + '@algolia/requester-common': 4.24.0 + '@algolia/requester-node-http': 4.24.0 + '@algolia/transporter': 4.24.0 dev: false - /@algolia/requester-browser-xhr@4.23.3: - resolution: {integrity: sha512-jDWGIQ96BhXbmONAQsasIpTYWslyjkiGu0Quydjlowe+ciqySpiDUrJHERIRfELE5+wFc7hc1Q5hqjGoV7yghw==} + /@algolia/requester-browser-xhr@4.24.0: + resolution: {integrity: sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==} dependencies: - '@algolia/requester-common': 4.23.3 + '@algolia/requester-common': 4.24.0 dev: false - /@algolia/requester-common@4.23.3: - resolution: {integrity: sha512-xloIdr/bedtYEGcXCiF2muajyvRhwop4cMZo+K2qzNht0CMzlRkm8YsDdj5IaBhshqfgmBb3rTg4sL4/PpvLYw==} + /@algolia/requester-common@4.24.0: + resolution: {integrity: sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==} dev: false - /@algolia/requester-node-http@4.23.3: - resolution: {integrity: sha512-zgu++8Uj03IWDEJM3fuNl34s746JnZOWn1Uz5taV1dFyJhVM/kTNw9Ik7YJWiUNHJQXcaD8IXD1eCb0nq/aByA==} + /@algolia/requester-node-http@4.24.0: + resolution: {integrity: sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==} dependencies: - '@algolia/requester-common': 4.23.3 + '@algolia/requester-common': 4.24.0 dev: false - /@algolia/transporter@4.23.3: - resolution: {integrity: sha512-Wjl5gttqnf/gQKJA+dafnD0Y6Yw97yvfY8R9h0dQltX1GXTgNs1zWgvtWW0tHl1EgMdhAyw189uWiZMnL3QebQ==} + /@algolia/transporter@4.24.0: + resolution: {integrity: sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA==} dependencies: - '@algolia/cache-common': 4.23.3 - '@algolia/logger-common': 4.23.3 - '@algolia/requester-common': 4.23.3 + '@algolia/cache-common': 4.24.0 + '@algolia/logger-common': 4.24.0 + '@algolia/requester-common': 4.24.0 dev: false /@ampproject/remapping@2.3.0: @@ -2396,13 +2400,13 @@ packages: resolution: {integrity: sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==} engines: {node: '>=12.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 /@azure/abort-controller@2.1.2: resolution: {integrity: sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 /@azure/core-auth@1.7.2: resolution: {integrity: sha512-Igm/S3fDYmnMq1uKS38Ae1/m37B3zigdlZw+kocwEhh5GjyKjPrXKO2J6rzpC1wAxrNil/jX9BJRqBshyjnF3g==} @@ -2410,7 +2414,7 @@ packages: dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-util': 1.9.0 - tslib: 2.6.2 + tslib: 2.6.3 /@azure/core-client@1.9.2: resolution: {integrity: sha512-kRdry/rav3fUKHl/aDLd/pDLcB+4pOFwPPTVEExuMyaI5r+JBbMWqRbCY1pn5BniDaU3lRxO9eaQ1AmSMehl/w==} @@ -2418,34 +2422,23 @@ packages: dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.7.2 - '@azure/core-rest-pipeline': 1.16.0 + '@azure/core-rest-pipeline': 1.16.1 '@azure/core-tracing': 1.1.2 '@azure/core-util': 1.9.0 '@azure/logger': 1.1.2 - tslib: 2.6.2 + tslib: 2.6.3 transitivePeerDependencies: - supports-color - /@azure/core-http@3.0.4: - resolution: {integrity: sha512-Fok9VVhMdxAFOtqiiAtg74fL0UJkt0z3D+ouUUxcRLzZNBioPRAMJFVxiWoJljYpXsRi4GDQHzQHDc9AiYaIUQ==} - engines: {node: '>=14.0.0'} + /@azure/core-http-compat@2.1.2: + resolution: {integrity: sha512-5MnV1yqzZwgNLLjlizsU3QqOeQChkIXw781Fwh1xdAqJR5AA32IUaq6xv1BICJvfbHoa+JYcaij2HFkhLbNTJQ==} + engines: {node: '>=18.0.0'} dependencies: - '@azure/abort-controller': 1.1.0 - '@azure/core-auth': 1.7.2 - '@azure/core-tracing': 1.0.0-preview.13 - '@azure/core-util': 1.9.0 - '@azure/logger': 1.1.2 - '@types/node-fetch': 2.6.11 - '@types/tunnel': 0.0.3 - form-data: 4.0.0 - node-fetch: 2.7.0 - process: 0.11.10 - tslib: 2.6.2 - tunnel: 0.0.6 - uuid: 8.3.2 - xml2js: 0.5.0 + '@azure/abort-controller': 2.1.2 + '@azure/core-client': 1.9.2 + '@azure/core-rest-pipeline': 1.16.1 transitivePeerDependencies: - - encoding + - supports-color dev: false /@azure/core-lro@2.7.2: @@ -2455,18 +2448,18 @@ packages: '@azure/abort-controller': 2.1.2 '@azure/core-util': 1.9.0 '@azure/logger': 1.1.2 - tslib: 2.6.2 + tslib: 2.6.3 dev: false /@azure/core-paging@1.6.2: resolution: {integrity: sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 dev: false - /@azure/core-rest-pipeline@1.16.0: - resolution: {integrity: sha512-CeuTvsXxCUmEuxH5g/aceuSl6w2EugvNHKAtKKVdiX915EjJJxAwfzNNWZreNnbxHZ2fi0zaM6wwS23x2JVqSQ==} + /@azure/core-rest-pipeline@1.16.1: + resolution: {integrity: sha512-ExPSbgjwCoht6kB7B4MeZoBAxcQSIl29r/bPeazZJx50ej4JJCByimLOrZoIsurISNyJQQHf30b3JfqC3Hb88A==} engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 @@ -2475,50 +2468,50 @@ packages: '@azure/core-util': 1.9.0 '@azure/logger': 1.1.2 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.4 - tslib: 2.6.2 + https-proxy-agent: 7.0.5 + tslib: 2.6.3 transitivePeerDependencies: - supports-color - /@azure/core-tracing@1.0.0-preview.13: - resolution: {integrity: sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==} - engines: {node: '>=12.0.0'} - dependencies: - '@opentelemetry/api': 1.8.0 - tslib: 2.6.2 - dev: false - /@azure/core-tracing@1.1.2: resolution: {integrity: sha512-dawW9ifvWAWmUm9/h+/UQ2jrdvjCJ7VJEuCJ6XVNudzcOwm53BFZH4Q845vjfgoUAM8ZxokvVNxNxAITc502YA==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 /@azure/core-util@1.9.0: resolution: {integrity: sha512-AfalUQ1ZppaKuxPPMsFEUdX6GZPB3d9paR9d/TTL7Ow2De8cJaC7ibi7kWVlFAVPCYo31OcnGymc0R89DX8Oaw==} engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 - tslib: 2.6.2 + tslib: 2.6.3 + + /@azure/core-xml@1.4.2: + resolution: {integrity: sha512-CW3MZhApe/S4iikbYKE7s83fjDBPIr2kpidX+hlGRwh7N4o1nIpQ/PfJTeioqhfqdMvRtheEl+ft64fyTaLNaA==} + engines: {node: '>=18.0.0'} + dependencies: + fast-xml-parser: 4.4.0 + tslib: 2.6.3 + dev: false - /@azure/identity@4.2.1: - resolution: {integrity: sha512-U8hsyC9YPcEIzoaObJlRDvp7KiF0MGS7xcWbyJSVvXRkC/HXo1f0oYeBYmEvVgRfacw7GHf6D6yAoh9JHz6A5Q==} + /@azure/identity@4.3.0: + resolution: {integrity: sha512-LHZ58/RsIpIWa4hrrE2YuJ/vzG1Jv9f774RfTTAVDZDriubvJ0/S5u4pnw4akJDlS0TiJb6VMphmVUFsWmgodQ==} engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 1.1.0 '@azure/core-auth': 1.7.2 '@azure/core-client': 1.9.2 - '@azure/core-rest-pipeline': 1.16.0 + '@azure/core-rest-pipeline': 1.16.1 '@azure/core-tracing': 1.1.2 '@azure/core-util': 1.9.0 '@azure/logger': 1.1.2 - '@azure/msal-browser': 3.14.0 - '@azure/msal-node': 2.9.2 + '@azure/msal-browser': 3.18.0 + '@azure/msal-node': 2.10.0 events: 3.3.0 jws: 4.0.0 open: 8.4.2 stoppable: 1.1.0 - tslib: 2.6.2 + tslib: 2.6.3 transitivePeerDependencies: - supports-color @@ -2526,303 +2519,328 @@ packages: resolution: {integrity: sha512-l170uE7bsKpIU6B/giRc9i4NI0Mj+tANMMMxf7Zi/5cKzEqPayP7+X1WPrG7e+91JgY8N+7K7nF2WOi7iVhXvg==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 - /@azure/msal-browser@3.14.0: - resolution: {integrity: sha512-Un85LhOoecJ3HDTS3Uv3UWnXC9/43ZSO+Kc+anSqpZvcEt58SiO/3DuVCAe1A3I5UIBYJNMgTmZPGXQ0MVYrwA==} + /@azure/msal-browser@3.18.0: + resolution: {integrity: sha512-jvK5bDUWbpOaJt2Io/rjcaOVcUzkqkrCme/WntdV1SMUc67AiTcEdKuY6G/nMQ7N5Cfsk9SfpugflQwDku53yg==} engines: {node: '>=0.8.0'} dependencies: - '@azure/msal-common': 14.10.0 + '@azure/msal-common': 14.13.0 - /@azure/msal-common@14.10.0: - resolution: {integrity: sha512-Zk6DPDz7e1wPgLoLgAp0349Yay9RvcjPM5We/ehuenDNsz/t9QEFI7tRoHpp/e47I4p20XE3FiDlhKwAo3utDA==} + /@azure/msal-common@14.13.0: + resolution: {integrity: sha512-b4M/tqRzJ4jGU91BiwCsLTqChveUEyFK3qY2wGfZ0zBswIBZjAxopx5CYt5wzZFKuN15HqRDYXQbztttuIC3nA==} engines: {node: '>=0.8.0'} - /@azure/msal-common@14.12.0: - resolution: {integrity: sha512-IDDXmzfdwmDkv4SSmMEyAniJf6fDu3FJ7ncOjlxkDuT85uSnLEhZi3fGZpoR7T4XZpOMx9teM9GXBgrfJgyeBw==} - engines: {node: '>=0.8.0'} - - /@azure/msal-node@2.9.2: - resolution: {integrity: sha512-8tvi6Cos3m+0KmRbPjgkySXi+UQU/QiuVRFnrxIwt5xZlEEFa69O04RTaNESGgImyBBlYbo2mfE8/U8Bbdk1WQ==} + /@azure/msal-node@2.10.0: + resolution: {integrity: sha512-JxsSE0464a8IA/+q5EHKmchwNyUFJHtCH00tSXsLaOddwLjG6yVvTH6lGgPcWMhO7YWUXj/XVgVgeE9kZtsPUQ==} engines: {node: '>=16'} dependencies: - '@azure/msal-common': 14.12.0 + '@azure/msal-common': 14.13.0 jsonwebtoken: 9.0.2 uuid: 8.3.2 - /@azure/storage-blob@12.18.0: - resolution: {integrity: sha512-BzBZJobMoDyjJsPRMLNHvqHycTGrT8R/dtcTx9qUFcqwSRfGVK9A/cZ7Nx38UQydT9usZGbaDCN75QRNjezSAA==} - engines: {node: '>=14.0.0'} + /@azure/storage-blob@12.23.0: + resolution: {integrity: sha512-c1KJ5R5hqR/HtvmFtTn/Y1BNMq45NUBp0LZH7yF8WFMET+wmESgEr0FVTu/Z5NonmfUjbgJZG5Nh8xHc5RdWGQ==} + engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 1.1.0 - '@azure/core-http': 3.0.4 + '@azure/core-auth': 1.7.2 + '@azure/core-client': 1.9.2 + '@azure/core-http-compat': 2.1.2 '@azure/core-lro': 2.7.2 '@azure/core-paging': 1.6.2 - '@azure/core-tracing': 1.0.0-preview.13 + '@azure/core-rest-pipeline': 1.16.1 + '@azure/core-tracing': 1.1.2 + '@azure/core-util': 1.9.0 + '@azure/core-xml': 1.4.2 '@azure/logger': 1.1.2 events: 3.3.0 - tslib: 2.6.2 + tslib: 2.6.3 transitivePeerDependencies: - - encoding + - supports-color dev: false /@babel/code-frame@7.12.11: resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} dependencies: - '@babel/highlight': 7.24.2 + '@babel/highlight': 7.24.7 dev: true - /@babel/code-frame@7.24.2: - resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} + /@babel/code-frame@7.24.7: + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.24.2 + '@babel/highlight': 7.24.7 picocolors: 1.0.1 - /@babel/compat-data@7.24.4: - resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} + /@babel/compat-data@7.24.7: + resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} engines: {node: '>=6.9.0'} - /@babel/core@7.24.5: - resolution: {integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==} + /@babel/core@7.24.7: + resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) - '@babel/helpers': 7.24.5 - '@babel/parser': 7.24.5 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.5 - '@babel/types': 7.24.5 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.7 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) + '@babel/helpers': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/template': 7.24.7 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 convert-source-map: 2.0.0 - debug: 4.3.4 + debug: 4.3.5 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - /@babel/generator@7.24.5: - resolution: {integrity: sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==} + /@babel/generator@7.24.7: + resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.7 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - /@babel/helper-annotate-as-pure@7.22.5: - resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + /@babel/helper-annotate-as-pure@7.24.7: + resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.7 - /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: - resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} + /@babel/helper-builder-binary-assignment-operator-visitor@7.24.7: + resolution: {integrity: sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/helper-compilation-targets@7.23.6: - resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + /@babel/helper-compilation-targets@7.24.7: + resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.24.4 - '@babel/helper-validator-option': 7.23.5 - browserslist: 4.23.0 + '@babel/compat-data': 7.24.7 + '@babel/helper-validator-option': 7.24.7 + browserslist: 4.23.1 lru-cache: 5.1.1 semver: 6.3.1 - /@babel/helper-create-class-features-plugin@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==} + /@babel/helper-create-class-features-plugin@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-member-expression-to-functions': 7.24.5 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-member-expression-to-functions': 7.24.7 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7) + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 semver: 6.3.1 + transitivePeerDependencies: + - supports-color - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.5): - resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} + /@babel/helper-create-regexp-features-plugin@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/core': 7.24.7 + '@babel/helper-annotate-as-pure': 7.24.7 regexpu-core: 5.3.2 semver: 6.3.1 - /@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.24.5): + /@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.24.7): resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.5 - debug: 4.3.4 + '@babel/core': 7.24.7 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + debug: 4.3.5 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: - supports-color - /@babel/helper-environment-visitor@7.22.20: - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + /@babel/helper-environment-visitor@7.24.7: + resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.7 - /@babel/helper-function-name@7.23.0: - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + /@babel/helper-function-name@7.24.7: + resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.24.0 - '@babel/types': 7.24.5 + '@babel/template': 7.24.7 + '@babel/types': 7.24.7 - /@babel/helper-hoist-variables@7.22.5: - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + /@babel/helper-hoist-variables@7.24.7: + resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.7 - /@babel/helper-member-expression-to-functions@7.24.5: - resolution: {integrity: sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==} + /@babel/helper-member-expression-to-functions@7.24.7: + resolution: {integrity: sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color /@babel/helper-module-imports@7.24.3: resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.7 + dev: false - /@babel/helper-module-transforms@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==} + /@babel/helper-module-imports@7.24.7: + resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-simple-access': 7.24.5 - '@babel/helper-split-export-declaration': 7.24.5 - '@babel/helper-validator-identifier': 7.24.5 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/helper-optimise-call-expression@7.22.5: - resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + /@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==} engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: - '@babel/types': 7.24.5 - - /@babel/helper-plugin-utils@7.24.0: - resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} - engines: {node: '>=6.9.0'} + '@babel/core': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/helper-plugin-utils@7.24.5: - resolution: {integrity: sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==} + /@babel/helper-optimise-call-expression@7.24.7: + resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.7 - /@babel/helper-plugin-utils@7.24.6: - resolution: {integrity: sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==} + /@babel/helper-plugin-utils@7.24.7: + resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==} engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.5): - resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} + /@babel/helper-remap-async-to-generator@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-wrap-function': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-wrap-function': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} + /@babel/helper-replace-supers@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.24.5 - '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/core': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-member-expression-to-functions': 7.24.7 + '@babel/helper-optimise-call-expression': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/helper-simple-access@7.24.5: - resolution: {integrity: sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==} + /@babel/helper-simple-access@7.24.7: + resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/helper-skip-transparent-expression-wrappers@7.22.5: - resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} + /@babel/helper-skip-transparent-expression-wrappers@7.24.7: + resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/helper-split-export-declaration@7.24.5: - resolution: {integrity: sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==} + /@babel/helper-split-export-declaration@7.24.7: + resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.7 /@babel/helper-string-parser@7.24.1: resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} engines: {node: '>=6.9.0'} + dev: true - /@babel/helper-validator-identifier@7.22.20: - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + /@babel/helper-string-parser@7.24.7: + resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} engines: {node: '>=6.9.0'} /@babel/helper-validator-identifier@7.24.5: resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} engines: {node: '>=6.9.0'} + dev: true - /@babel/helper-validator-option@7.23.5: - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + /@babel/helper-validator-identifier@7.24.7: + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option@7.24.6: - resolution: {integrity: sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==} + /@babel/helper-validator-option@7.24.7: + resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-wrap-function@7.24.5: - resolution: {integrity: sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw==} + /@babel/helper-wrap-function@7.24.7: + resolution: {integrity: sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-function-name': 7.23.0 - '@babel/template': 7.24.0 - '@babel/types': 7.24.5 + '@babel/helper-function-name': 7.24.7 + '@babel/template': 7.24.7 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/helpers@7.24.5: - resolution: {integrity: sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==} + /@babel/helpers@7.24.7: + resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.5 - '@babel/types': 7.24.5 - transitivePeerDependencies: - - supports-color + '@babel/template': 7.24.7 + '@babel/types': 7.24.7 - /@babel/highlight@7.24.2: - resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} + /@babel/highlight@7.24.7: + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.0.1 @@ -2833,978 +2851,1030 @@ packages: hasBin: true dependencies: '@babel/types': 7.24.5 + dev: true + + /@babel/parser@7.24.7: + resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.24.7 - /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw==} + /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.24.5(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.5): + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.7): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.7 - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.5): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.7): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.5): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.7): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.5): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.7): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.5): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.7): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.5): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.7): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-flow@7.24.6(@babel/core@7.24.5): - resolution: {integrity: sha512-gNkksSdV8RbsCoHF9sjVYrHfYACMl/8U32UfUhJ9+84/ASXw8dlx+eHyyF0m6ncQJ9IBSxfuCkB36GJqYdXTOA==} + /@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 dev: true - /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} + /@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} + /@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.5): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.7): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.5): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.7): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} + /@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.5): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.7): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.5): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.7): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.5): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.7): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.5): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.7): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.5): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.7): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.5): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.7): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.5): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.7): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.5): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.7): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} + /@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.5): + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.7): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} + /@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.5): - resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} + /@babel/plugin-transform-async-generator-functions@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.5) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} + /@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} + /@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-block-scoping@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==} + /@babel/plugin-transform-block-scoping@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} + /@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-class-static-block@7.24.4(@babel/core@7.24.5): - resolution: {integrity: sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==} + /@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-classes@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==} + /@babel/plugin-transform-classes@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) - '@babel/helper-split-export-declaration': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7) + '@babel/helper-split-export-declaration': 7.24.7 globals: 11.12.0 + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} + /@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/template': 7.24.0 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/template': 7.24.7 - /@babel/plugin-transform-destructuring@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==} + /@babel/plugin-transform-destructuring@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} + /@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} + /@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} + /@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.7) - /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} + /@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} + /@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.7) - /@babel/plugin-transform-flow-strip-types@7.24.6(@babel/core@7.24.5): - resolution: {integrity: sha512-1l8b24NoCpaQ13Vi6FtLG1nv6kNoi8PWvQb1AYO7GHZDpFfBYc3lbXArx1lP2KRt8b4pej1eWc/zrRmsQTfOdQ==} + /@babel/plugin-transform-flow-strip-types@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-cjRKJ7FobOH2eakx7Ja+KpJRj8+y+/SiB3ooYm/n2UJfxu0oEaOoxOinitkJcPqv9KxS0kxTGPUaR7L2XcXDXA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-flow': 7.24.6(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.24.7) dev: true - /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} + /@babel/plugin-transform-for-of@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} + /@babel/plugin-transform-function-name@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} + /@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7) - /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} + /@babel/plugin-transform-literals@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} + /@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7) - /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} + /@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} + /@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} + /@babel/plugin-transform-modules-commonjs@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-simple-access': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} + /@babel/plugin-transform-modules-systemjs@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-validator-identifier': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-hoist-variables': 7.24.7 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} + /@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.5): - resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + /@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} + /@babel/plugin-transform-new-target@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} + /@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7) - /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} + /@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7) - /@babel/plugin-transform-object-rest-spread@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA==} + /@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.7) - /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} + /@babel/plugin-transform-object-super@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} + /@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7) - /@babel/plugin-transform-optional-chaining@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==} + /@babel/plugin-transform-optional-chaining@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-parameters@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==} + /@babel/plugin-transform-parameters@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} + /@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-private-property-in-object@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ==} + /@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} + /@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==} + /@babel/plugin-transform-react-constant-elements@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-7LidzZfUXyfZ8/buRW6qIIHBY8wAZ1OrY9c/wTr8YhZ6vMPo+Uc/CVFLYY1spZrEQlD4w5u8wjqk5NQ3OVqQKA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 dev: false - /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==} + /@babel/plugin-transform-react-display-name@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 dev: false - /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.5): - resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} + /@babel/plugin-transform-react-jsx-development@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color dev: false - /@babel/plugin-transform-react-jsx-self@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-kDJgnPujTmAZ/9q2CN4m2/lRsUUPDvsG3+tSHWUJIzMGTt5U/b/fwWd3RO3n+5mjLrsBrVa5eKFRVSQbi3dF1w==} + /@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==} + /@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.5): - resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} + /@babel/plugin-transform-react-jsx@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.5) - '@babel/types': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7) + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color dev: false - /@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==} + /@babel/plugin-transform-react-pure-annotations@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 dev: false - /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} + /@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 regenerator-transform: 0.15.2 - /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} + /@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.5): - resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==} + /@babel/plugin-transform-runtime@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-plugin-utils': 7.24.5 - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.5) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.5) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.7) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.7) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.7) semver: 6.3.1 transitivePeerDependencies: - supports-color dev: false - /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} + /@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} + /@babel/plugin-transform-spread@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} + /@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} + /@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-typeof-symbol@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==} + /@babel/plugin-transform-typeof-symbol@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-typescript@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-E0VWu/hk83BIFUWnsKZ4D81KXjN5L3MobvevOHErASk9IPwKHOkTgvqzvNo1yP/ePJWqqK2SpUR5z+KQbl6NVw==} + /@babel/plugin-transform-typescript@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-iLD3UNkgx2n/HrjBesVbYX6j0yqn/sJktvbtKKgcaLIQ4bTTQ8obAypc1VpyHPD2y4Phh9zHOaAt8e/L14wCpw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} + /@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} + /@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} + /@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} + /@babel/plugin-transform-unicode-sets-regex@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 - /@babel/preset-env@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ==} + /@babel/preset-env@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.24.4 - '@babel/core': 7.24.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.5) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.5) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.5) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.5) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.5) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.5) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.5) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.5) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.5) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.5) - '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-async-generator-functions': 7.24.3(@babel/core@7.24.5) - '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-block-scoping': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-class-static-block': 7.24.4(@babel/core@7.24.5) - '@babel/plugin-transform-classes': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-destructuring': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-dotall-regex': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-duplicate-keys': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-dynamic-import': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-exponentiation-operator': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-export-namespace-from': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-json-strings': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-logical-assignment-operators': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-modules-amd': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-modules-systemjs': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-modules-umd': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.5) - '@babel/plugin-transform-new-target': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-numeric-separator': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-object-rest-spread': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-optional-catch-binding': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-optional-chaining': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-private-property-in-object': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-regenerator': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-reserved-words': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-typeof-symbol': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-unicode-escapes': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-unicode-property-regex': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-unicode-sets-regex': 7.24.1(@babel/core@7.24.5) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.5) - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.5) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.5) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.5) + '@babel/compat-data': 7.24.7 + '@babel/core': 7.24.7 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-validator-option': 7.24.7 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.7) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.7) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.7) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.7) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.7) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.7) + '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-async-generator-functions': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-block-scoping': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-classes': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-destructuring': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-function-name': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-literals': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-modules-commonjs': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-modules-systemjs': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-typeof-symbol': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-unicode-sets-regex': 7.24.7(@babel/core@7.24.7) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.7) + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.7) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.7) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.7) core-js-compat: 3.37.1 semver: 6.3.1 transitivePeerDependencies: - supports-color - /@babel/preset-flow@7.24.6(@babel/core@7.24.5): - resolution: {integrity: sha512-huoe0T1Qs9fQhMWbmqE/NHUeZbqmHDsN6n/jYvPcUUHfuKiPV32C9i8tDhMbQ1DEKTjbBP7Rjm3nSLwlB2X05g==} + /@babel/preset-flow@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-NL3Lo0NorCU607zU3NwRyJbpaB6E3t0xtd3LfAQKDfkeX4/ggcDXvkmkW42QWT5owUeW/jAe4hn+2qvkV1IbfQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-validator-option': 7.24.6 - '@babel/plugin-transform-flow-strip-types': 7.24.6(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-validator-option': 7.24.7 + '@babel/plugin-transform-flow-strip-types': 7.24.7(@babel/core@7.24.7) dev: true - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.5): + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.7): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/types': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/types': 7.24.7 esutils: 2.0.3 - /@babel/preset-react@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==} + /@babel/preset-react@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-transform-react-display-name': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.5) - '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.5) - '@babel/plugin-transform-react-pure-annotations': 7.24.1(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-validator-option': 7.24.7 + '@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-react-jsx-development': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-react-pure-annotations': 7.24.7(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color dev: false - /@babel/preset-typescript@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} + /@babel/preset-typescript@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-typescript': 7.24.5(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-validator-option': 7.24.7 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-modules-commonjs': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color - /@babel/register@7.24.6(@babel/core@7.24.5): + /@babel/register@7.24.6(@babel/core@7.24.7): resolution: {integrity: sha512-WSuFCc2wCqMeXkz/i3yfAAsxwWflEgbVkZzivgAmXl/MxrXeoYFZOOPllbC8R8WTF7u61wSRQtDVZ1879cdu6w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.7 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -3815,8 +3885,8 @@ packages: /@babel/regjsgen@0.8.0: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - /@babel/runtime-corejs3@7.24.5: - resolution: {integrity: sha512-GWO0mgzNMLWaSYM4z4NVIuY0Cd1fl8cPnuetuddu5w/qGuvt5Y7oUi/kvvQGK9xgOkFJDQX2heIvTRn/OQ1XTg==} + /@babel/runtime-corejs3@7.24.7: + resolution: {integrity: sha512-eytSX6JLBY6PVAeQa2bFlDx/7Mmln/gaEpsit5a3WEvjGfiIytEsgAwuIXCPM0xvw0v0cJn3ilq0/TvXrW0kgA==} engines: {node: '>=6.9.0'} dependencies: core-js-pure: 3.37.1 @@ -3835,28 +3905,35 @@ packages: engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 + dev: false - /@babel/template@7.24.0: - resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} + /@babel/runtime@7.24.7: + resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.24.2 - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 + regenerator-runtime: 0.14.1 - /@babel/traverse@7.24.5: - resolution: {integrity: sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==} + /@babel/template@7.24.7: + resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.24.5 - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 - debug: 4.3.4 + '@babel/code-frame': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 + + /@babel/traverse@7.24.7: + resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-hoist-variables': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 + debug: 4.3.5 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -3868,6 +3945,15 @@ packages: '@babel/helper-string-parser': 7.24.1 '@babel/helper-validator-identifier': 7.24.5 to-fast-properties: 2.0.0 + dev: true + + /@babel/types@7.24.7: + resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 /@base2/pretty-print-object@1.0.1: resolution: {integrity: sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==} @@ -3886,9 +3972,9 @@ packages: hasBin: true dependencies: cross-spawn: 7.0.3 - globby: 14.0.1 + globby: 14.0.2 is-unicode-supported: 2.0.0 - micromatch: 4.0.5 + micromatch: 4.0.7 pacote: 18.0.6 picocolors: 1.0.1 pluralize: 8.0.0 @@ -3896,7 +3982,7 @@ packages: semver: 7.6.2 source-map-support: 0.5.21 std-env: 3.7.0 - yaml: 2.4.2 + yaml: 2.4.5 yargs: 17.7.2 zod: 3.23.8 transitivePeerDependencies: @@ -3927,15 +4013,15 @@ packages: requiresBuild: true optional: true - /@cspell/cspell-bundled-dicts@8.8.1: - resolution: {integrity: sha512-zP/cC7ABk9PM6X1/itEOYa9raWrdUtUXCcUtHLnEr83HhPUHZ8vzaBgMJ176No/7EgZ4BHGXVvA0v079ukXVxw==} + /@cspell/cspell-bundled-dicts@8.9.1: + resolution: {integrity: sha512-etkor/qXSSqyh6lbudEGdTami0DooIi2AlQbJPUWRfowzYJRSYWPUbyQSUkFdRhCHni2oLOFbWaraRthNlLD/A==} engines: {node: '>=18'} dependencies: '@cspell/dict-ada': 4.0.2 - '@cspell/dict-aws': 4.0.1 + '@cspell/dict-aws': 4.0.2 '@cspell/dict-bash': 4.1.3 - '@cspell/dict-companies': 3.0.31 - '@cspell/dict-cpp': 5.1.5 + '@cspell/dict-companies': 3.1.2 + '@cspell/dict-cpp': 5.1.10 '@cspell/dict-cryptocurrencies': 5.0.0 '@cspell/dict-csharp': 4.0.2 '@cspell/dict-css': 4.0.12 @@ -3944,22 +4030,23 @@ packages: '@cspell/dict-docker': 1.1.7 '@cspell/dict-dotnet': 5.0.2 '@cspell/dict-elixir': 4.0.3 - '@cspell/dict-en-common-misspellings': 2.0.0 + '@cspell/dict-en-common-misspellings': 2.0.3 '@cspell/dict-en-gb': 1.1.33 - '@cspell/dict-en_us': 4.3.19 + '@cspell/dict-en_us': 4.3.23 '@cspell/dict-filetypes': 3.0.4 '@cspell/dict-fonts': 4.0.0 '@cspell/dict-fsharp': 1.0.1 - '@cspell/dict-fullstack': 3.1.5 + '@cspell/dict-fullstack': 3.1.8 '@cspell/dict-gaming-terms': 1.0.5 '@cspell/dict-git': 3.0.0 - '@cspell/dict-golang': 6.0.8 + '@cspell/dict-golang': 6.0.9 + '@cspell/dict-google': 1.0.1 '@cspell/dict-haskell': 4.0.1 '@cspell/dict-html': 4.0.5 '@cspell/dict-html-symbol-entities': 4.0.0 - '@cspell/dict-java': 5.0.6 + '@cspell/dict-java': 5.0.7 '@cspell/dict-julia': 1.0.1 - '@cspell/dict-k8s': 1.0.3 + '@cspell/dict-k8s': 1.0.5 '@cspell/dict-latex': 4.0.0 '@cspell/dict-lorem-ipsum': 4.0.0 '@cspell/dict-lua': 4.0.3 @@ -3967,60 +4054,60 @@ packages: '@cspell/dict-monkeyc': 1.0.6 '@cspell/dict-node': 5.0.1 '@cspell/dict-npm': 5.0.16 - '@cspell/dict-php': 4.0.7 - '@cspell/dict-powershell': 5.0.3 - '@cspell/dict-public-licenses': 2.0.6 - '@cspell/dict-python': 4.1.11 + '@cspell/dict-php': 4.0.8 + '@cspell/dict-powershell': 5.0.4 + '@cspell/dict-public-licenses': 2.0.7 + '@cspell/dict-python': 4.2.1 '@cspell/dict-r': 2.0.1 '@cspell/dict-ruby': 5.0.2 - '@cspell/dict-rust': 4.0.3 + '@cspell/dict-rust': 4.0.4 '@cspell/dict-scala': 5.0.2 - '@cspell/dict-software-terms': 3.3.22 + '@cspell/dict-software-terms': 3.4.9 '@cspell/dict-sql': 2.1.3 '@cspell/dict-svelte': 1.0.2 '@cspell/dict-swift': 2.0.1 '@cspell/dict-terraform': 1.0.0 - '@cspell/dict-typescript': 3.1.4 + '@cspell/dict-typescript': 3.1.5 '@cspell/dict-vue': 3.0.0 - /@cspell/cspell-json-reporter@8.8.1: - resolution: {integrity: sha512-HtendGGO0w1gElhSYsD4D9iKT1nMBoUP31y0Ndw3AtQRzH6I31lx6DWnrXIef1bTL4wdq7ocxgG5HGQBQ8PWfA==} + /@cspell/cspell-json-reporter@8.9.1: + resolution: {integrity: sha512-sN4PZivGuH/HWScvoCeNuNc5VLSe4F+SeuoyKmsF4uRv447r9sW0/fpjASGqDTjLXpEfWaXDPoIb+0alY3gm+g==} engines: {node: '>=18'} dependencies: - '@cspell/cspell-types': 8.8.1 + '@cspell/cspell-types': 8.9.1 - /@cspell/cspell-pipe@8.8.1: - resolution: {integrity: sha512-AMQ0s7qH71tNnrpX8ILl+OZceDHt//h/T3Yk//qvn69x1Dzfg4Saqv/qhfG1VClQVyV5F4y7tIa4UNd5X6mW4g==} + /@cspell/cspell-pipe@8.9.1: + resolution: {integrity: sha512-wH5Xu8W3aMEWFSpOczMtH/04clLMfDGdbYMYB7w6BeHI/LDW8DZaRhigOOhx9FRgVk/YIVbKKAKVgvFrfD5cEA==} engines: {node: '>=18'} - /@cspell/cspell-resolver@8.8.1: - resolution: {integrity: sha512-K5sPp05Pz3tYU9roFGILSB6OdSVYqyr4Y/NW1CxZsXgq+hmwxAJQag/RyhW6cUp/1Jhy5RKYGNy0H0u/jODx3A==} + /@cspell/cspell-resolver@8.9.1: + resolution: {integrity: sha512-Q2SOnIi2dnQ2zqPd+tcEYfom9qlsapGyLK4Mdx2Vv29MU2RDZ9VHFDncV6yo6O58gmlYl8sXtJsVceiHgwwlkQ==} engines: {node: '>=18'} dependencies: global-directory: 4.0.1 - /@cspell/cspell-service-bus@8.8.1: - resolution: {integrity: sha512-dxZ/ymwP6XNMGkU5iIUVgFP2JEqEvpJZavpAerB/y5E560Agv1WuUpkZE/PMCmseoLjSiV5yQzcnLNoT5X/w7A==} + /@cspell/cspell-service-bus@8.9.1: + resolution: {integrity: sha512-dPKpqkglGnwvrW9mgbHIdimDQZH3iy8uT8gm3dEO//UahxMBdMpvtdbC3R9kesQCSagvYRVE7hwJvOktSAK+Vg==} engines: {node: '>=18'} - /@cspell/cspell-types@8.8.1: - resolution: {integrity: sha512-JEbLN+b3XdHIpEaoZJnpPfL8iTKWraqE7x1VwG7FIQ9wjP6fCPwfNRVM0CUWEmT+85O/zvbYVOlTJn1uIOLnZw==} + /@cspell/cspell-types@8.9.1: + resolution: {integrity: sha512-Z/pTX2i+U5KwyCYRSw8BleJtw81jFifv91DDka4nqi2oyHJ3eEUljVovNOuZ3lotn/ArHdu4rY98s1w6Z69mYw==} engines: {node: '>=18'} /@cspell/dict-ada@4.0.2: resolution: {integrity: sha512-0kENOWQeHjUlfyId/aCM/mKXtkEgV0Zu2RhUXCBr4hHo9F9vph+Uu8Ww2b0i5a4ZixoIkudGA+eJvyxrG1jUpA==} - /@cspell/dict-aws@4.0.1: - resolution: {integrity: sha512-NXO+kTPQGqaaJKa4kO92NAXoqS+i99dQzf3/L1BxxWVSBS3/k1f3uhmqIh7Crb/n22W793lOm0D9x952BFga3Q==} + /@cspell/dict-aws@4.0.2: + resolution: {integrity: sha512-aNGHWSV7dRLTIn8WJemzLoMF62qOaiUQlgnsCwH5fRCD/00gsWCwg106pnbkmK4AyabyxzneOV4dfecDJWkSxw==} /@cspell/dict-bash@4.1.3: resolution: {integrity: sha512-tOdI3QVJDbQSwPjUkOiQFhYcu2eedmX/PtEpVWg0aFps/r6AyjUQINtTgpqMYnYuq8O1QUIQqnpx21aovcgZCw==} - /@cspell/dict-companies@3.0.31: - resolution: {integrity: sha512-hKVpV/lcGKP4/DpEPS8P4osPvFH/YVLJaDn9cBIOH6/HSmL5LbFgJNKpMGaYRbhm2FEX56MKE3yn/MNeNYuesQ==} + /@cspell/dict-companies@3.1.2: + resolution: {integrity: sha512-OwR5i1xbYuJX7FtHQySmTy3iJtPV1rZQ3jFCxFGwrA1xRQ4rtRcDQ+sTXBCIAoJHkXa84f9J3zsngOKmMGyS/w==} - /@cspell/dict-cpp@5.1.5: - resolution: {integrity: sha512-5059TJREAIwvstJBqJjoHrs7yrPijnqB2SUZ7uc8nCA/Q4KbdvKjiDsKVr4Y624J8Ns9KnImoH6FVfkAEv6oqw==} + /@cspell/dict-cpp@5.1.10: + resolution: {integrity: sha512-BmIF0sAz2BgGEOwzYIeEm9ALneDjd1tcTbFbo+A1Hcq3zOKP8yViSgxS9CEN30KOZIyph6Tldp531UPEpoEl0Q==} /@cspell/dict-cryptocurrencies@5.0.0: resolution: {integrity: sha512-Z4ARIw5+bvmShL+4ZrhDzGhnc9znaAGHOEMaB/GURdS/jdoreEDY34wdN0NtdLHDO5KO7GduZnZyqGdRoiSmYA==} @@ -4034,8 +4121,8 @@ packages: /@cspell/dict-dart@2.0.3: resolution: {integrity: sha512-cLkwo1KT5CJY5N5RJVHks2genFkNCl/WLfj+0fFjqNR+tk3tBI1LY7ldr9piCtSFSm4x9pO1x6IV3kRUY1lLiw==} - /@cspell/dict-data-science@1.0.11: - resolution: {integrity: sha512-TaHAZRVe0Zlcc3C23StZqqbzC0NrodRwoSAc8dis+5qLeLLnOCtagYQeROQvDlcDg3X/VVEO9Whh4W/z4PAmYQ==} + /@cspell/dict-data-science@2.0.1: + resolution: {integrity: sha512-xeutkzK0eBe+LFXOFU2kJeAYO6IuFUc1g7iRLr7HeCmlC4rsdGclwGHh61KmttL3+YHQytYStxaRBdGAXWC8Lw==} /@cspell/dict-django@4.1.0: resolution: {integrity: sha512-bKJ4gPyrf+1c78Z0Oc4trEB9MuhcB+Yg+uTTWsvhY6O2ncFYbB/LbEZfqhfmmuK/XJJixXfI1laF2zicyf+l0w==} @@ -4049,14 +4136,14 @@ packages: /@cspell/dict-elixir@4.0.3: resolution: {integrity: sha512-g+uKLWvOp9IEZvrIvBPTr/oaO6619uH/wyqypqvwpmnmpjcfi8+/hqZH8YNKt15oviK8k4CkINIqNhyndG9d9Q==} - /@cspell/dict-en-common-misspellings@2.0.0: - resolution: {integrity: sha512-NOg8dlv37/YqLkCfBs5OXeJm/Wcfb/CzeOmOZJ2ZXRuxwsNuolb4TREUce0yAXRqMhawahY5TSDRJJBgKjBOdw==} + /@cspell/dict-en-common-misspellings@2.0.3: + resolution: {integrity: sha512-8nF1z9nUiSgMyikL66HTbDO7jCGtB24TxKBasXIBwkBKMDZgA2M883iXdeByy6m1JJUcCGFkSftVYp2W0bUgjw==} /@cspell/dict-en-gb@1.1.33: resolution: {integrity: sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g==} - /@cspell/dict-en_us@4.3.19: - resolution: {integrity: sha512-tHcXdkmm0t9LlRct1vgu3+h0KW/wlXCInkTiR4D/rl730q1zu2qVEgiy1saMiTUSNmdu7Hiy+Mhb+1braVqnZQ==} + /@cspell/dict-en_us@4.3.23: + resolution: {integrity: sha512-l0SoEQBsi3zDSl3OuL4/apBkxjuj4hLIg/oy6+gZ7LWh03rKdF6VNtSZNXWAmMY+pmb1cGA3ouleTiJIglbsIg==} /@cspell/dict-filetypes@3.0.4: resolution: {integrity: sha512-IBi8eIVdykoGgIv5wQhOURi5lmCNJq0we6DvqKoPQJHthXbgsuO1qrHSiUVydMiQl/XvcnUWTMeAlVUlUClnVg==} @@ -4067,8 +4154,8 @@ packages: /@cspell/dict-fsharp@1.0.1: resolution: {integrity: sha512-23xyPcD+j+NnqOjRHgW3IU7Li912SX9wmeefcY0QxukbAxJ/vAN4rBpjSwwYZeQPAn3fxdfdNZs03fg+UM+4yQ==} - /@cspell/dict-fullstack@3.1.5: - resolution: {integrity: sha512-6ppvo1dkXUZ3fbYn/wwzERxCa76RtDDl5Afzv2lijLoijGGUw5yYdLBKJnx8PJBGNLh829X352ftE7BElG4leA==} + /@cspell/dict-fullstack@3.1.8: + resolution: {integrity: sha512-YRlZupL7uqMCtEBK0bDP9BrcPnjDhz7m4GBqCc1EYqfXauHbLmDT8ELha7T/E7wsFKniHSjzwDZzhNXo2lusRQ==} /@cspell/dict-gaming-terms@1.0.5: resolution: {integrity: sha512-C3riccZDD3d9caJQQs1+MPfrUrQ+0KHdlj9iUR1QD92FgTOF6UxoBpvHUUZ9YSezslcmpFQK4xQQ5FUGS7uWfw==} @@ -4076,8 +4163,11 @@ packages: /@cspell/dict-git@3.0.0: resolution: {integrity: sha512-simGS/lIiXbEaqJu9E2VPoYW1OTC2xrwPPXNXFMa2uo/50av56qOuaxDrZ5eH1LidFXwoc8HROCHYeKoNrDLSw==} - /@cspell/dict-golang@6.0.8: - resolution: {integrity: sha512-1OwJNMU0oVISaNjaoQJatgYszFlNESzXPOg1f5/9V0+nL+R08nzDpZi4cWwPaHr8pIBtXzEoHL0dGY+IuoLFtQ==} + /@cspell/dict-golang@6.0.9: + resolution: {integrity: sha512-etDt2WQauyEQDA+qPS5QtkYTb2I9l5IfQftAllVoB1aOrT6bxxpHvMEpJ0Hsn/vezxrCqa/BmtUbRxllIxIuSg==} + + /@cspell/dict-google@1.0.1: + resolution: {integrity: sha512-dQr4M3n95uOhtloNSgB9tYYGXGGEGEykkFyRtfcp5pFuEecYUa0BSgtlGKx9RXVtJtKgR+yFT/a5uQSlt8WjqQ==} /@cspell/dict-haskell@4.0.1: resolution: {integrity: sha512-uRrl65mGrOmwT7NxspB4xKXFUenNC7IikmpRZW8Uzqbqcu7ZRCUfstuVH7T1rmjRgRkjcIjE4PC11luDou4wEQ==} @@ -4088,14 +4178,14 @@ packages: /@cspell/dict-html@4.0.5: resolution: {integrity: sha512-p0brEnRybzSSWi8sGbuVEf7jSTDmXPx7XhQUb5bgG6b54uj+Z0Qf0V2n8b/LWwIPJNd1GygaO9l8k3HTCy1h4w==} - /@cspell/dict-java@5.0.6: - resolution: {integrity: sha512-kdE4AHHHrixyZ5p6zyms1SLoYpaJarPxrz8Tveo6gddszBVVwIUZ+JkQE1bWNLK740GWzIXdkznpUfw1hP9nXw==} + /@cspell/dict-java@5.0.7: + resolution: {integrity: sha512-ejQ9iJXYIq7R09BScU2y5OUGrSqwcD+J5mHFOKbduuQ5s/Eh/duz45KOzykeMLI6KHPVxhBKpUPBWIsfewECpQ==} /@cspell/dict-julia@1.0.1: resolution: {integrity: sha512-4JsCLCRhhLMLiaHpmR7zHFjj1qOauzDI5ZzCNQS31TUMfsOo26jAKDfo0jljFAKgw5M2fEG7sKr8IlPpQAYrmQ==} - /@cspell/dict-k8s@1.0.3: - resolution: {integrity: sha512-dR58QCcsOYeOoPT+d3kUPrEQ9FQ62cohLHqPu4kiWvsrLszEUMopjGu3p5tVnq496M+RY5PLlbLLaW9ixHmFOQ==} + /@cspell/dict-k8s@1.0.5: + resolution: {integrity: sha512-Cj+/ZV4S+MKlwfocSJZqe/2UAd/sY8YtlZjbK25VN1nCnrsKrBjfkX29vclwSj1U9aJg4Z9jw/uMjoaKu9ZrpQ==} /@cspell/dict-latex@4.0.0: resolution: {integrity: sha512-LPY4y6D5oI7D3d+5JMJHK/wxYTQa2lJMSNxps2JtuF8hbAnBQb3igoWEjEbIbRRH1XBM0X8dQqemnjQNCiAtxQ==} @@ -4118,19 +4208,19 @@ packages: /@cspell/dict-npm@5.0.16: resolution: {integrity: sha512-ZWPnLAziEcSCvV0c8k9Qj88pfMu+wZwM5Qks87ShsfBgI8uLZ9tGHravA7gmjH1Gd7Bgxy2ulvXtSqIWPh1lew==} - /@cspell/dict-php@4.0.7: - resolution: {integrity: sha512-SUCOBfRDDFz1E2jnAZIIuy8BNbCc8i+VkiL9g4HH9tTN6Nlww5Uz2pMqYS6rZQkXuubqsbkbPlsRiuseEnTmYA==} + /@cspell/dict-php@4.0.8: + resolution: {integrity: sha512-TBw3won4MCBQ2wdu7kvgOCR3dY2Tb+LJHgDUpuquy3WnzGiSDJ4AVelrZdE1xu7mjFJUr4q48aB21YT5uQqPZA==} - /@cspell/dict-powershell@5.0.3: - resolution: {integrity: sha512-lEdzrcyau6mgzu1ie98GjOEegwVHvoaWtzQnm1ie4DyZgMr+N6D0Iyj1lzvtmt0snvsDFa5F2bsYzf3IMKcpcA==} + /@cspell/dict-powershell@5.0.4: + resolution: {integrity: sha512-eosDShapDgBWN9ULF7+sRNdUtzRnUdsfEdBSchDm8FZA4HOqxUSZy3b/cX/Rdw0Fnw0AKgk0kzgXw7tS6vwJMQ==} - /@cspell/dict-public-licenses@2.0.6: - resolution: {integrity: sha512-bHqpSpJvLCUcWxj1ov/Ki8WjmESpYwRpQlqfdchekOTc93Huhvjm/RXVN1R4fVf4Hspyem1QVkCGqAmjJMj6sw==} + /@cspell/dict-public-licenses@2.0.7: + resolution: {integrity: sha512-KlBXuGcN3LE7tQi/GEqKiDewWGGuopiAD0zRK1QilOx5Co8XAvs044gk4MNIQftc8r0nHeUI+irJKLGcR36DIQ==} - /@cspell/dict-python@4.1.11: - resolution: {integrity: sha512-XG+v3PumfzUW38huSbfT15Vqt3ihNb462ulfXifpQllPok5OWynhszCLCRQjQReV+dgz784ST4ggRxW452/kVg==} + /@cspell/dict-python@4.2.1: + resolution: {integrity: sha512-9X2jRgyM0cxBoFQRo4Zc8oacyWnXi+0/bMI5FGibZNZV4y/o9UoFEr6agjU260/cXHTjIdkX233nN7eb7dtyRg==} dependencies: - '@cspell/dict-data-science': 1.0.11 + '@cspell/dict-data-science': 2.0.1 /@cspell/dict-r@2.0.1: resolution: {integrity: sha512-KCmKaeYMLm2Ip79mlYPc8p+B2uzwBp4KMkzeLd5E6jUlCL93Y5Nvq68wV5fRLDRTf7N1LvofkVFWfDcednFOgA==} @@ -4138,14 +4228,14 @@ packages: /@cspell/dict-ruby@5.0.2: resolution: {integrity: sha512-cIh8KTjpldzFzKGgrqUX4bFyav5lC52hXDKo4LbRuMVncs3zg4hcSf4HtURY+f2AfEZzN6ZKzXafQpThq3dl2g==} - /@cspell/dict-rust@4.0.3: - resolution: {integrity: sha512-8DFCzkFQ+2k3fDaezWc/D+0AyiBBiOGYfSDUfrTNU7wpvUvJ6cRcAUshMI/cn2QW/mmxTspRgVlXsE6GUMz00Q==} + /@cspell/dict-rust@4.0.4: + resolution: {integrity: sha512-v9/LcZknt/Xq7m1jdTWiQEtmkVVKdE1etAfGL2sgcWpZYewEa459HeWndNA0gfzQrpWX9sYay18mt7pqClJEdA==} /@cspell/dict-scala@5.0.2: resolution: {integrity: sha512-v97ClgidZt99JUm7OjhQugDHmhx4U8fcgunHvD/BsXWjXNj4cTr0m0YjofyZoL44WpICsNuFV9F/sv9OM5HUEw==} - /@cspell/dict-software-terms@3.3.22: - resolution: {integrity: sha512-uEtaN0xeDbGh88QX+SSvvBNvZahk3ZXBRnfgHWoppUF6WGtg1oLtuLWO6fGGtwRE4klXvSWP8rA2ixzAbWvYqw==} + /@cspell/dict-software-terms@3.4.9: + resolution: {integrity: sha512-J2uNH3ScBPQijXyzLfxsC1CYgq36MWvbynJzQJ15ZazTsecC0pQHynm3/6VH4X/BphV2eXB0GRJT3yMicYLGCw==} /@cspell/dict-sql@2.1.3: resolution: {integrity: sha512-SEyTNKJrjqD6PAzZ9WpdSu6P7wgdNtGV2RV8Kpuw1x6bV+YsSptuClYG+JSdRExBTE6LwIe1bTklejUp3ZP8TQ==} @@ -4159,22 +4249,26 @@ packages: /@cspell/dict-terraform@1.0.0: resolution: {integrity: sha512-Ak+vy4HP/bOgzf06BAMC30+ZvL9mzv21xLM2XtfnBLTDJGdxlk/nK0U6QT8VfFLqJ0ZZSpyOxGsUebWDCTr/zQ==} - /@cspell/dict-typescript@3.1.4: - resolution: {integrity: sha512-jUcPa0rsPca5ur1+G56DXnSc5hbbJkzvPHHvyQtkbPXBQd3CXPMNfrTVCgzex/7cY/7FONcpFCUwgwfni9Jqbw==} + /@cspell/dict-typescript@3.1.5: + resolution: {integrity: sha512-EkIwwNV/xqEoBPJml2S16RXj65h1kvly8dfDLgXerrKw6puybZdvAHerAph6/uPTYdtLcsPyJYkPt5ISOJYrtw==} /@cspell/dict-vue@3.0.0: resolution: {integrity: sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A==} - /@cspell/dynamic-import@8.8.1: - resolution: {integrity: sha512-IyKEbSaHkw9V4Oc4JDasF96+BHKV8motBrepjLIMUjdJ152fBg8zqbvF769POdCJg0QouZVUV+h9V7zC6v45/g==} + /@cspell/dynamic-import@8.9.1: + resolution: {integrity: sha512-ao4IDqQ8MyRqiB3NHA8R7ThRsuDLXdSCFm7Pvz8EqDnWaX3NAuClzgT3EoxJlw9pyyPQX3tW5Vg7ft3GSsBFUw==} engines: {node: '>=18.0'} dependencies: import-meta-resolve: 4.1.0 - /@cspell/strong-weak-map@8.8.1: - resolution: {integrity: sha512-QNnMY5jKP/ItVYRGS4w3KF+1iXBUUjldZNVtEoQe2dFergxvbIYQ0S++TZb25G/o9nRF5GmOpecJaOvwUBZsiw==} + /@cspell/strong-weak-map@8.9.1: + resolution: {integrity: sha512-onD/UPJW7rBQrRDqYNvPUAoWoBp1G2g+mijAD7EkuseyAKTKlKz624rXpHUOTqI814owmhFMNSf2QyYy8gFM6Q==} engines: {node: '>=18'} + /@cspell/url@8.9.1: + resolution: {integrity: sha512-2AncPKGq9fnytwnL7V4KfoSjiEU0m8tVDFerGiDMNmTMWiQ4zj0kTATai118XT1eBVKiyrAotYRLSrsuUo9U3g==} + engines: {node: '>=18.0'} + /@cspotcode/source-map-support@0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -4190,7 +4284,7 @@ packages: resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==} dev: false - /@docsearch/react@3.6.0(@algolia/client-search@4.23.3)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.13.0): + /@docsearch/react@3.6.0(@algolia/client-search@4.24.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.14.0): resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' @@ -4207,44 +4301,44 @@ packages: search-insights: optional: true dependencies: - '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0) - '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3) + '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.14.0) + '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) '@docsearch/css': 3.6.0 - '@types/react': 18.3.2 - algoliasearch: 4.23.3 + '@types/react': 18.3.3 + algoliasearch: 4.24.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - search-insights: 2.13.0 + search-insights: 2.14.0 transitivePeerDependencies: - '@algolia/client-search' dev: false - /@docusaurus/core@3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-PzKMydKI3IU1LmeZQDi+ut5RSuilbXnA8QdowGeJEgU8EJjmx3rBHNT1LxQxOVqNEwpWi/csLwd9bn7rUjggPA==} + /@docusaurus/core@3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-g+0wwmN2UJsBqy2fQRQ6fhXruoEa62JDeEa5d8IdTJlMoaDaEDfHh7WjwGRn4opuTQWpjAwP/fbcgyHKlE+64w==} engines: {node: '>=18.0'} hasBin: true peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@babel/core': 7.24.5 - '@babel/generator': 7.24.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-transform-runtime': 7.24.3(@babel/core@7.24.5) - '@babel/preset-env': 7.24.5(@babel/core@7.24.5) - '@babel/preset-react': 7.24.1(@babel/core@7.24.5) - '@babel/preset-typescript': 7.24.1(@babel/core@7.24.5) - '@babel/runtime': 7.24.5 - '@babel/runtime-corejs3': 7.24.5 - '@babel/traverse': 7.24.5 - '@docusaurus/cssnano-preset': 3.3.2 - '@docusaurus/logger': 3.3.2 - '@docusaurus/mdx-loader': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - autoprefixer: 10.4.19(postcss@8.4.38) - babel-loader: 9.1.3(@babel/core@7.24.5)(webpack@5.91.0) + '@babel/core': 7.24.7 + '@babel/generator': 7.24.7 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-transform-runtime': 7.24.7(@babel/core@7.24.7) + '@babel/preset-env': 7.24.7(@babel/core@7.24.7) + '@babel/preset-react': 7.24.7(@babel/core@7.24.7) + '@babel/preset-typescript': 7.24.7(@babel/core@7.24.7) + '@babel/runtime': 7.24.7 + '@babel/runtime-corejs3': 7.24.7 + '@babel/traverse': 7.24.7 + '@docusaurus/cssnano-preset': 3.4.0 + '@docusaurus/logger': 3.4.0 + '@docusaurus/mdx-loader': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(typescript@5.5.3) + '@docusaurus/utils-common': 3.4.0(@docusaurus/types@3.4.0) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(typescript@5.5.3) + autoprefixer: 10.4.19(postcss@8.4.39) + babel-loader: 9.1.3(@babel/core@7.24.7)(webpack@5.92.1) babel-plugin-dynamic-import-node: 2.3.3 boxen: 6.2.1 chalk: 4.1.2 @@ -4253,34 +4347,34 @@ packages: cli-table3: 0.6.5 combine-promises: 1.2.0 commander: 5.1.0 - copy-webpack-plugin: 11.0.0(webpack@5.91.0) + copy-webpack-plugin: 11.0.0(webpack@5.92.1) core-js: 3.37.1 - css-loader: 6.11.0(webpack@5.91.0) - css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.91.0) - cssnano: 6.1.2(postcss@8.4.38) + css-loader: 6.11.0(webpack@5.92.1) + css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.92.1) + cssnano: 6.1.2(postcss@8.4.39) del: 6.1.1 detect-port: 1.6.1 escape-html: 1.0.3 eta: 2.2.0 eval: 0.1.8 - file-loader: 6.2.0(webpack@5.91.0) + file-loader: 6.2.0(webpack@5.92.1) fs-extra: 11.2.0 html-minifier-terser: 7.2.0 html-tags: 3.3.1 - html-webpack-plugin: 5.6.0(webpack@5.91.0) + html-webpack-plugin: 5.6.0(webpack@5.92.1) leven: 3.1.0 lodash: 4.17.21 - mini-css-extract-plugin: 2.9.0(webpack@5.91.0) + mini-css-extract-plugin: 2.9.0(webpack@5.92.1) p-map: 4.0.0 - postcss: 8.4.38 - postcss-loader: 7.3.4(postcss@8.4.38)(typescript@5.4.5)(webpack@5.91.0) + postcss: 8.4.39 + postcss-loader: 7.3.4(postcss@8.4.39)(typescript@5.5.3)(webpack@5.92.1) prompts: 2.4.2 react: 18.3.1 - react-dev-utils: 12.0.1(eslint@8.57.0)(typescript@5.4.5)(webpack@5.91.0) + react-dev-utils: 12.0.1(eslint@8.57.0)(typescript@5.5.3)(webpack@5.92.1) react-dom: 18.3.1(react@18.3.1) react-helmet-async: 1.3.0(react-dom@18.3.1)(react@18.3.1) react-loadable: /@docusaurus/react-loadable@6.0.0(react@18.3.1) - react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@6.0.0)(webpack@5.91.0) + react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@6.0.0)(webpack@5.92.1) react-router: 5.3.4(react@18.3.1) react-router-config: 5.1.1(react-router@5.3.4)(react@18.3.1) react-router-dom: 5.3.4(react@18.3.1) @@ -4288,15 +4382,15 @@ packages: semver: 7.6.2 serve-handler: 6.1.5 shelljs: 0.8.5 - terser-webpack-plugin: 5.3.10(@swc/core@1.5.7)(webpack@5.91.0) - tslib: 2.6.2 + terser-webpack-plugin: 5.3.10(@swc/core@1.6.6)(webpack@5.92.1) + tslib: 2.6.3 update-notifier: 6.0.2 - url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.91.0) - webpack: 5.91.0(@swc/core@1.5.7) + url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.92.1) + webpack: 5.92.1(@swc/core@1.6.6) webpack-bundle-analyzer: 4.10.2 - webpack-dev-server: 4.15.2(webpack@5.91.0) + webpack-dev-server: 4.15.2(webpack@5.92.1) webpack-merge: 5.10.0 - webpackbar: 5.0.2(webpack@5.91.0) + webpackbar: 5.0.2(webpack@5.92.1) transitivePeerDependencies: - '@docusaurus/types' - '@parcel/css' @@ -4317,76 +4411,217 @@ packages: - webpack-cli dev: false - /@docusaurus/cssnano-preset@3.3.2: - resolution: {integrity: sha512-+5+epLk/Rp4vFML4zmyTATNc3Is+buMAL6dNjrMWahdJCJlMWMPd/8YfU+2PA57t8mlSbhLJ7vAZVy54cd1vRQ==} - engines: {node: '>=18.0'} - dependencies: - cssnano-preset-advanced: 6.1.2(postcss@8.4.38) - postcss: 8.4.38 - postcss-sort-media-queries: 5.2.0(postcss@8.4.38) - tslib: 2.6.2 - dev: false - - /@docusaurus/logger@3.3.2: - resolution: {integrity: sha512-Ldu38GJ4P8g4guN7d7pyCOJ7qQugG7RVyaxrK8OnxuTlaImvQw33aDRwaX2eNmX8YK6v+//Z502F4sOZbHHCHQ==} - engines: {node: '>=18.0'} - dependencies: - chalk: 4.1.2 - tslib: 2.6.2 - dev: false - - /@docusaurus/mdx-loader@3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-AFRxj/aOk3/mfYDPxE3wTbrjeayVRvNSZP7mgMuUlrb2UlPRbSVAFX1k2RbgAJrnTSwMgb92m2BhJgYRfptN3g==} + /@docusaurus/core@3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-g+0wwmN2UJsBqy2fQRQ6fhXruoEa62JDeEa5d8IdTJlMoaDaEDfHh7WjwGRn4opuTQWpjAwP/fbcgyHKlE+64w==} engines: {node: '>=18.0'} + hasBin: true peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/logger': 3.3.2 - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - '@mdx-js/mdx': 3.0.1 - '@slorber/remark-comment': 1.0.0 + '@babel/core': 7.24.7 + '@babel/generator': 7.24.7 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-transform-runtime': 7.24.7(@babel/core@7.24.7) + '@babel/preset-env': 7.24.7(@babel/core@7.24.7) + '@babel/preset-react': 7.24.7(@babel/core@7.24.7) + '@babel/preset-typescript': 7.24.7(@babel/core@7.24.7) + '@babel/runtime': 7.24.7 + '@babel/runtime-corejs3': 7.24.7 + '@babel/traverse': 7.24.7 + '@docusaurus/cssnano-preset': 3.4.0 + '@docusaurus/logger': 3.4.0 + '@docusaurus/mdx-loader': 3.4.0(@docusaurus/types@3.4.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.5.3) + '@docusaurus/utils-common': 3.4.0(@docusaurus/types@3.4.0) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.5.3) + autoprefixer: 10.4.19(postcss@8.4.39) + babel-loader: 9.1.3(@babel/core@7.24.7)(webpack@5.92.1) + babel-plugin-dynamic-import-node: 2.3.3 + boxen: 6.2.1 + chalk: 4.1.2 + chokidar: 3.6.0 + clean-css: 5.3.3 + cli-table3: 0.6.5 + combine-promises: 1.2.0 + commander: 5.1.0 + copy-webpack-plugin: 11.0.0(webpack@5.92.1) + core-js: 3.37.1 + css-loader: 6.11.0(webpack@5.92.1) + css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.92.1) + cssnano: 6.1.2(postcss@8.4.39) + del: 6.1.1 + detect-port: 1.6.1 escape-html: 1.0.3 - estree-util-value-to-estree: 3.1.1 - file-loader: 6.2.0(webpack@5.91.0) + eta: 2.2.0 + eval: 0.1.8 + file-loader: 6.2.0(webpack@5.92.1) fs-extra: 11.2.0 - image-size: 1.1.1 - mdast-util-mdx: 3.0.0 - mdast-util-to-string: 4.0.0 + html-minifier-terser: 7.2.0 + html-tags: 3.3.1 + html-webpack-plugin: 5.6.0(webpack@5.92.1) + leven: 3.1.0 + lodash: 4.17.21 + mini-css-extract-plugin: 2.9.0(webpack@5.92.1) + p-map: 4.0.0 + postcss: 8.4.39 + postcss-loader: 7.3.4(postcss@8.4.39)(typescript@5.5.3)(webpack@5.92.1) + prompts: 2.4.2 react: 18.3.1 + react-dev-utils: 12.0.1(eslint@8.57.0)(typescript@5.5.3)(webpack@5.92.1) react-dom: 18.3.1(react@18.3.1) - rehype-raw: 7.0.0 - remark-directive: 3.0.0 - remark-emoji: 4.0.1 - remark-frontmatter: 5.0.0 - remark-gfm: 4.0.0 - stringify-object: 3.3.0 - tslib: 2.6.2 - unified: 11.0.4 - unist-util-visit: 5.0.0 - url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.91.0) - vfile: 6.0.1 - webpack: 5.91.0(@swc/core@1.5.7) - transitivePeerDependencies: - - '@docusaurus/types' - - '@swc/core' - - esbuild - - supports-color - - typescript - - uglify-js - - webpack-cli - dev: false + react-helmet-async: 1.3.0(react-dom@18.3.1)(react@18.3.1) + react-loadable: /@docusaurus/react-loadable@6.0.0(react@18.3.1) + react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@6.0.0)(webpack@5.92.1) + react-router: 5.3.4(react@18.3.1) + react-router-config: 5.1.1(react-router@5.3.4)(react@18.3.1) + react-router-dom: 5.3.4(react@18.3.1) + rtl-detect: 1.1.2 + semver: 7.6.2 + serve-handler: 6.1.5 + shelljs: 0.8.5 + terser-webpack-plugin: 5.3.10(webpack@5.92.1) + tslib: 2.6.3 + update-notifier: 6.0.2 + url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.92.1) + webpack: 5.92.1 + webpack-bundle-analyzer: 4.10.2 + webpack-dev-server: 4.15.2(webpack@5.92.1) + webpack-merge: 5.10.0 + webpackbar: 5.0.2(webpack@5.92.1) + transitivePeerDependencies: + - '@docusaurus/types' + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + dev: false + + /@docusaurus/cssnano-preset@3.4.0: + resolution: {integrity: sha512-qwLFSz6v/pZHy/UP32IrprmH5ORce86BGtN0eBtG75PpzQJAzp9gefspox+s8IEOr0oZKuQ/nhzZ3xwyc3jYJQ==} + engines: {node: '>=18.0'} + dependencies: + cssnano-preset-advanced: 6.1.2(postcss@8.4.39) + postcss: 8.4.39 + postcss-sort-media-queries: 5.2.0(postcss@8.4.39) + tslib: 2.6.3 + dev: false + + /@docusaurus/logger@3.4.0: + resolution: {integrity: sha512-bZwkX+9SJ8lB9kVRkXw+xvHYSMGG4bpYHKGXeXFvyVc79NMeeBSGgzd4TQLHH+DYeOJoCdl8flrFJVxlZ0wo/Q==} + engines: {node: '>=18.0'} + dependencies: + chalk: 4.1.2 + tslib: 2.6.3 + dev: false + + /@docusaurus/mdx-loader@3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-kSSbrrk4nTjf4d+wtBA9H+FGauf2gCax89kV8SUSJu3qaTdSIKdWERlngsiHaCFgZ7laTJ8a67UFf+xlFPtuTw==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@docusaurus/logger': 3.4.0 + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(typescript@5.5.3) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(typescript@5.5.3) + '@mdx-js/mdx': 3.0.1 + '@slorber/remark-comment': 1.0.0 + escape-html: 1.0.3 + estree-util-value-to-estree: 3.1.2 + file-loader: 6.2.0(webpack@5.92.1) + fs-extra: 11.2.0 + image-size: 1.1.1 + mdast-util-mdx: 3.0.0 + mdast-util-to-string: 4.0.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + rehype-raw: 7.0.0 + remark-directive: 3.0.0 + remark-emoji: 4.0.1 + remark-frontmatter: 5.0.0 + remark-gfm: 4.0.0 + stringify-object: 3.3.0 + tslib: 2.6.3 + unified: 11.0.5 + unist-util-visit: 5.0.0 + url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.92.1) + vfile: 6.0.1 + webpack: 5.92.1(@swc/core@1.6.6) + transitivePeerDependencies: + - '@docusaurus/types' + - '@swc/core' + - esbuild + - supports-color + - typescript + - uglify-js + - webpack-cli + dev: false + + /@docusaurus/mdx-loader@3.4.0(@docusaurus/types@3.4.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-kSSbrrk4nTjf4d+wtBA9H+FGauf2gCax89kV8SUSJu3qaTdSIKdWERlngsiHaCFgZ7laTJ8a67UFf+xlFPtuTw==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@docusaurus/logger': 3.4.0 + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.5.3) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.5.3) + '@mdx-js/mdx': 3.0.1 + '@slorber/remark-comment': 1.0.0 + escape-html: 1.0.3 + estree-util-value-to-estree: 3.1.2 + file-loader: 6.2.0(webpack@5.92.1) + fs-extra: 11.2.0 + image-size: 1.1.1 + mdast-util-mdx: 3.0.0 + mdast-util-to-string: 4.0.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + rehype-raw: 7.0.0 + remark-directive: 3.0.0 + remark-emoji: 4.0.1 + remark-frontmatter: 5.0.0 + remark-gfm: 4.0.0 + stringify-object: 3.3.0 + tslib: 2.6.3 + unified: 11.0.5 + unist-util-visit: 5.0.0 + url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.92.1) + vfile: 6.0.1 + webpack: 5.92.1 + transitivePeerDependencies: + - '@docusaurus/types' + - '@swc/core' + - esbuild + - supports-color + - typescript + - uglify-js + - webpack-cli + dev: false - /@docusaurus/module-type-aliases@3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-b/XB0TBJah5yKb4LYuJT4buFvL0MGAb0+vJDrJtlYMguRtsEBkf2nWl5xP7h4Dlw6ol0hsHrCYzJ50kNIOEclw==} + /@docusaurus/module-type-aliases@3.4.0(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-A1AyS8WF5Bkjnb8s+guTDuYmUiwJzNrtchebBHpc0gz0PyHJNMaybUlSrmJjHVcGrya0LKI4YcR3lBDQfXRYLw==} peerDependencies: react: '*' react-dom: '*' dependencies: - '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/types': 3.4.0(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1) '@types/history': 4.7.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-router-config': 5.0.11 '@types/react-router-dom': 5.3.3 react: 18.3.1 @@ -4400,20 +4635,87 @@ packages: - uglify-js - webpack-cli - /@docusaurus/plugin-content-blog@3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-fJU+dmqp231LnwDJv+BHVWft8pcUS2xVPZdeYH6/ibH1s2wQ/sLcmUrGWyIv/Gq9Ptj8XWjRPMghlxghuPPoxg==} + /@docusaurus/module-type-aliases@3.4.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-A1AyS8WF5Bkjnb8s+guTDuYmUiwJzNrtchebBHpc0gz0PyHJNMaybUlSrmJjHVcGrya0LKI4YcR3lBDQfXRYLw==} + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + '@docusaurus/types': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@types/history': 4.7.11 + '@types/react': 18.3.3 + '@types/react-router-config': 5.0.11 + '@types/react-router-dom': 5.3.3 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-helmet-async: 2.0.5(react@18.3.1) + react-loadable: /@docusaurus/react-loadable@6.0.0(react@18.3.1) + transitivePeerDependencies: + - '@swc/core' + - esbuild + - supports-color + - uglify-js + - webpack-cli + + /@docusaurus/plugin-content-blog@3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-vv6ZAj78ibR5Jh7XBUT4ndIjmlAxkijM3Sx5MAAzC1gyv0vupDQNhzuFg1USQmQVj3P5I6bquk12etPV3LJ+Xw==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/logger': 3.4.0 + '@docusaurus/mdx-loader': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/types': 3.4.0(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(typescript@5.5.3) + '@docusaurus/utils-common': 3.4.0(@docusaurus/types@3.4.0) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(typescript@5.5.3) + cheerio: 1.0.0-rc.12 + feed: 4.2.2 + fs-extra: 11.2.0 + lodash: 4.17.21 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reading-time: 1.5.0 + srcset: 4.0.0 + tslib: 2.6.3 + unist-util-visit: 5.0.0 + utility-types: 3.11.0 + webpack: 5.92.1(@swc/core@1.6.6) + transitivePeerDependencies: + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + dev: false + + /@docusaurus/plugin-content-blog@3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-vv6ZAj78ibR5Jh7XBUT4ndIjmlAxkijM3Sx5MAAzC1gyv0vupDQNhzuFg1USQmQVj3P5I6bquk12etPV3LJ+Xw==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/logger': 3.3.2 - '@docusaurus/mdx-loader': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/logger': 3.4.0 + '@docusaurus/mdx-loader': 3.4.0(@docusaurus/types@3.4.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/types': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.5.3) + '@docusaurus/utils-common': 3.4.0(@docusaurus/types@3.4.0) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.5.3) cheerio: 1.0.0-rc.12 feed: 4.2.2 fs-extra: 11.2.0 @@ -4422,10 +4724,400 @@ packages: react-dom: 18.3.1(react@18.3.1) reading-time: 1.5.0 srcset: 4.0.0 - tslib: 2.6.2 + tslib: 2.6.3 unist-util-visit: 5.0.0 utility-types: 3.11.0 - webpack: 5.91.0(@swc/core@1.5.7) + webpack: 5.92.1 + transitivePeerDependencies: + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + dev: false + + /@docusaurus/plugin-content-docs@3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-HkUCZffhBo7ocYheD9oZvMcDloRnGhBMOZRyVcAQRFmZPmNqSyISlXA1tQCIxW+r478fty97XXAGjNYzBjpCsg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/logger': 3.4.0 + '@docusaurus/mdx-loader': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/module-type-aliases': 3.4.0(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/types': 3.4.0(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(typescript@5.5.3) + '@docusaurus/utils-common': 3.4.0(@docusaurus/types@3.4.0) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(typescript@5.5.3) + '@types/react-router-config': 5.0.11 + combine-promises: 1.2.0 + fs-extra: 11.2.0 + js-yaml: 4.1.0 + lodash: 4.17.21 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tslib: 2.6.3 + utility-types: 3.11.0 + webpack: 5.92.1(@swc/core@1.6.6) + transitivePeerDependencies: + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + dev: false + + /@docusaurus/plugin-content-docs@3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-HkUCZffhBo7ocYheD9oZvMcDloRnGhBMOZRyVcAQRFmZPmNqSyISlXA1tQCIxW+r478fty97XXAGjNYzBjpCsg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/logger': 3.4.0 + '@docusaurus/mdx-loader': 3.4.0(@docusaurus/types@3.4.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/module-type-aliases': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/types': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.5.3) + '@docusaurus/utils-common': 3.4.0(@docusaurus/types@3.4.0) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.5.3) + '@types/react-router-config': 5.0.11 + combine-promises: 1.2.0 + fs-extra: 11.2.0 + js-yaml: 4.1.0 + lodash: 4.17.21 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tslib: 2.6.3 + utility-types: 3.11.0 + webpack: 5.92.1 + transitivePeerDependencies: + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + dev: false + + /@docusaurus/plugin-content-pages@3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-h2+VN/0JjpR8fIkDEAoadNjfR3oLzB+v1qSXbIAKjQ46JAHx3X22n9nqS+BWSQnTnp1AjkjSvZyJMekmcwxzxg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/mdx-loader': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/types': 3.4.0(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(typescript@5.5.3) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(typescript@5.5.3) + fs-extra: 11.2.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tslib: 2.6.3 + webpack: 5.92.1(@swc/core@1.6.6) + transitivePeerDependencies: + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + dev: false + + /@docusaurus/plugin-content-pages@3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-h2+VN/0JjpR8fIkDEAoadNjfR3oLzB+v1qSXbIAKjQ46JAHx3X22n9nqS+BWSQnTnp1AjkjSvZyJMekmcwxzxg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/mdx-loader': 3.4.0(@docusaurus/types@3.4.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/types': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.5.3) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.5.3) + fs-extra: 11.2.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tslib: 2.6.3 + webpack: 5.92.1 + transitivePeerDependencies: + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + dev: false + + /@docusaurus/plugin-debug@3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-uV7FDUNXGyDSD3PwUaf5YijX91T5/H9SX4ErEcshzwgzWwBtK37nUWPU3ZLJfeTavX3fycTOqk9TglpOLaWkCg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/types': 3.4.0(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(typescript@5.5.3) + fs-extra: 11.2.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-json-view-lite: 1.4.0(react@18.3.1) + tslib: 2.6.3 + transitivePeerDependencies: + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + dev: false + + /@docusaurus/plugin-debug@3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-uV7FDUNXGyDSD3PwUaf5YijX91T5/H9SX4ErEcshzwgzWwBtK37nUWPU3ZLJfeTavX3fycTOqk9TglpOLaWkCg==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/types': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.5.3) + fs-extra: 11.2.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-json-view-lite: 1.4.0(react@18.3.1) + tslib: 2.6.3 + transitivePeerDependencies: + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + dev: false + + /@docusaurus/plugin-google-analytics@3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-mCArluxEGi3cmYHqsgpGGt3IyLCrFBxPsxNZ56Mpur0xSlInnIHoeLDH7FvVVcPJRPSQ9/MfRqLsainRw+BojA==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/types': 3.4.0(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(typescript@5.5.3) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tslib: 2.6.3 + transitivePeerDependencies: + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + dev: false + + /@docusaurus/plugin-google-analytics@3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-mCArluxEGi3cmYHqsgpGGt3IyLCrFBxPsxNZ56Mpur0xSlInnIHoeLDH7FvVVcPJRPSQ9/MfRqLsainRw+BojA==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/types': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.5.3) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tslib: 2.6.3 + transitivePeerDependencies: + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + dev: false + + /@docusaurus/plugin-google-gtag@3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-Dsgg6PLAqzZw5wZ4QjUYc8Z2KqJqXxHxq3vIoyoBWiLEEfigIs7wHR+oiWUQy3Zk9MIk6JTYj7tMoQU0Jm3nqA==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/types': 3.4.0(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(typescript@5.5.3) + '@types/gtag.js': 0.0.12 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tslib: 2.6.3 + transitivePeerDependencies: + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + dev: false + + /@docusaurus/plugin-google-gtag@3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-Dsgg6PLAqzZw5wZ4QjUYc8Z2KqJqXxHxq3vIoyoBWiLEEfigIs7wHR+oiWUQy3Zk9MIk6JTYj7tMoQU0Jm3nqA==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/types': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.5.3) + '@types/gtag.js': 0.0.12 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tslib: 2.6.3 + transitivePeerDependencies: + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + dev: false + + /@docusaurus/plugin-google-tag-manager@3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-O9tX1BTwxIhgXpOLpFDueYA9DWk69WCbDRrjYoMQtFHSkTyE7RhNgyjSPREUWJb9i+YUg3OrsvrBYRl64FCPCQ==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/types': 3.4.0(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(typescript@5.5.3) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tslib: 2.6.3 transitivePeerDependencies: - '@parcel/css' - '@rspack/core' @@ -4445,31 +5137,19 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-content-docs@3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-Dm1ri2VlGATTN3VGk1ZRqdRXWa1UlFubjaEL6JaxaK7IIFqN/Esjpl+Xw10R33loHcRww/H76VdEeYayaL76eg==} + /@docusaurus/plugin-google-tag-manager@3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-O9tX1BTwxIhgXpOLpFDueYA9DWk69WCbDRrjYoMQtFHSkTyE7RhNgyjSPREUWJb9i+YUg3OrsvrBYRl64FCPCQ==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/logger': 3.3.2 - '@docusaurus/mdx-loader': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/module-type-aliases': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - '@types/react-router-config': 5.0.11 - combine-promises: 1.2.0 - fs-extra: 11.2.0 - js-yaml: 4.1.0 - lodash: 4.17.21 + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/types': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.5.3) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.2 - utility-types: 3.11.0 - webpack: 5.91.0(@swc/core@1.5.7) + tslib: 2.6.3 transitivePeerDependencies: - '@parcel/css' - '@rspack/core' @@ -4489,23 +5169,24 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-content-pages@3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-EKc9fQn5H2+OcGER8x1aR+7URtAGWySUgULfqE/M14+rIisdrBstuEZ4lUPDRrSIexOVClML82h2fDS+GSb8Ew==} + /@docusaurus/plugin-sitemap@3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-+0VDvx9SmNrFNgwPoeoCha+tRoAjopwT0+pYO1xAbyLcewXSemq+eLxEa46Q1/aoOaJQ0qqHELuQM7iS2gp33Q==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/mdx-loader': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/logger': 3.4.0 + '@docusaurus/types': 3.4.0(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(typescript@5.5.3) + '@docusaurus/utils-common': 3.4.0(@docusaurus/types@3.4.0) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(typescript@5.5.3) fs-extra: 11.2.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.2 - webpack: 5.91.0(@swc/core@1.5.7) + sitemap: 7.1.2 + tslib: 2.6.3 transitivePeerDependencies: - '@parcel/css' - '@rspack/core' @@ -4525,21 +5206,24 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-debug@3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-oBIBmwtaB+YS0XlmZ3gCO+cMbsGvIYuAKkAopoCh0arVjtlyPbejzPrHuCoRHB9G7abjNZw7zoONOR8+8LM5+Q==} + /@docusaurus/plugin-sitemap@3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-+0VDvx9SmNrFNgwPoeoCha+tRoAjopwT0+pYO1xAbyLcewXSemq+eLxEa46Q1/aoOaJQ0qqHELuQM7iS2gp33Q==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/logger': 3.4.0 + '@docusaurus/types': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.5.3) + '@docusaurus/utils-common': 3.4.0(@docusaurus/types@3.4.0) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.5.3) fs-extra: 11.2.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-json-view-lite: 1.4.0(react@18.3.1) - tslib: 2.6.2 + sitemap: 7.1.2 + tslib: 2.6.3 transitivePeerDependencies: - '@parcel/css' - '@rspack/core' @@ -4559,30 +5243,42 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-google-analytics@3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-jXhrEIhYPSClMBK6/IA8qf1/FBoxqGXZvg7EuBax9HaK9+kL3L0TJIlatd8jQJOMtds8mKw806TOCc3rtEad1A==} + /@docusaurus/preset-classic@3.4.0(@algolia/client-search@4.24.0)(@swc/core@1.6.6)(@types/react@18.3.3)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.14.0)(typescript@5.5.3): + resolution: {integrity: sha512-Ohj6KB7siKqZaQhNJVMBBUzT3Nnp6eTKqO+FXO3qu/n1hJl3YLwVKTWBg28LF7MWrKu46UuYavwMRxud0VyqHg==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/plugin-content-blog': 3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/plugin-content-docs': 3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/plugin-content-pages': 3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/plugin-debug': 3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/plugin-google-analytics': 3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/plugin-google-gtag': 3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/plugin-google-tag-manager': 3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/plugin-sitemap': 3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/theme-classic': 3.4.0(@swc/core@1.6.6)(@types/react@18.3.3)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/theme-common': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/theme-search-algolia': 3.4.0(@algolia/client-search@4.24.0)(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(@types/react@18.3.3)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.14.0)(typescript@5.5.3) + '@docusaurus/types': 3.4.0(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.2 transitivePeerDependencies: + - '@algolia/client-search' - '@parcel/css' - '@rspack/core' - '@swc/core' - '@swc/css' + - '@types/react' - bufferutil - csso - debug - esbuild - eslint - lightningcss + - search-insights - supports-color - typescript - uglify-js @@ -4591,31 +5287,42 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-google-gtag@3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-vcrKOHGbIDjVnNMrfbNpRQR1x6Jvcrb48kVzpBAOsKbj9rXZm/idjVAXRaewwobHdOrJkfWS/UJoxzK8wyLRBQ==} + /@docusaurus/preset-classic@3.4.0(@algolia/client-search@4.24.0)(@types/react@18.3.3)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.14.0)(typescript@5.5.3): + resolution: {integrity: sha512-Ohj6KB7siKqZaQhNJVMBBUzT3Nnp6eTKqO+FXO3qu/n1hJl3YLwVKTWBg28LF7MWrKu46UuYavwMRxud0VyqHg==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - '@types/gtag.js': 0.0.12 + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/plugin-content-blog': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/plugin-content-docs': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/plugin-content-pages': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/plugin-debug': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/plugin-google-analytics': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/plugin-google-gtag': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/plugin-google-tag-manager': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/plugin-sitemap': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/theme-classic': 3.4.0(@types/react@18.3.3)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/theme-common': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/theme-search-algolia': 3.4.0(@algolia/client-search@4.24.0)(@docusaurus/types@3.4.0)(@types/react@18.3.3)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.14.0)(typescript@5.5.3) + '@docusaurus/types': 3.4.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.2 transitivePeerDependencies: + - '@algolia/client-search' - '@parcel/css' - '@rspack/core' - '@swc/core' - '@swc/css' + - '@types/react' - bufferutil - csso - debug - esbuild - eslint - lightningcss + - search-insights - supports-color - typescript - uglify-js @@ -4624,24 +5331,54 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-google-tag-manager@3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-ldkR58Fdeks0vC+HQ+L+bGFSJsotQsipXD+iKXQFvkOfmPIV6QbHRd7IIcm5b6UtwOiK33PylNS++gjyLUmaGw==} + /@docusaurus/react-loadable@6.0.0(react@18.3.1): + resolution: {integrity: sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==} + peerDependencies: + react: '*' + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + + /@docusaurus/theme-classic@3.4.0(@swc/core@1.6.6)(@types/react@18.3.3)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-0IPtmxsBYv2adr1GnZRdMkEQt1YW6tpzrUPj02YxNpvJ5+ju4E13J5tB4nfdaen/tfR1hmpSPlTFPvTf4kwy8Q==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/mdx-loader': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/module-type-aliases': 3.4.0(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/plugin-content-blog': 3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/plugin-content-docs': 3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/plugin-content-pages': 3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/theme-common': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/theme-translations': 3.4.0 + '@docusaurus/types': 3.4.0(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(typescript@5.5.3) + '@docusaurus/utils-common': 3.4.0(@docusaurus/types@3.4.0) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(typescript@5.5.3) + '@mdx-js/react': 3.0.1(@types/react@18.3.3)(react@18.3.1) + clsx: 2.1.1 + copy-text-to-clipboard: 3.2.0 + infima: 0.2.0-alpha.43 + lodash: 4.17.21 + nprogress: 0.2.0 + postcss: 8.4.39 + prism-react-renderer: 2.3.1(react@18.3.1) + prismjs: 1.29.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.2 + react-router-dom: 5.3.4(react@18.3.1) + rtlcss: 4.1.1 + tslib: 2.6.3 + utility-types: 3.11.0 transitivePeerDependencies: - '@parcel/css' - '@rspack/core' - '@swc/core' - '@swc/css' + - '@types/react' - bufferutil - csso - debug @@ -4656,29 +5393,46 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-sitemap@3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-/ZI1+bwZBhAgC30inBsHe3qY9LOZS+79fRGkNdTcGHRMcdAp6Vw2pCd1gzlxd/xU+HXsNP6cLmTOrggmRp3Ujg==} + /@docusaurus/theme-classic@3.4.0(@types/react@18.3.3)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-0IPtmxsBYv2adr1GnZRdMkEQt1YW6tpzrUPj02YxNpvJ5+ju4E13J5tB4nfdaen/tfR1hmpSPlTFPvTf4kwy8Q==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/logger': 3.3.2 - '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - fs-extra: 11.2.0 + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/mdx-loader': 3.4.0(@docusaurus/types@3.4.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/module-type-aliases': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/plugin-content-blog': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/plugin-content-docs': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/plugin-content-pages': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/theme-common': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/theme-translations': 3.4.0 + '@docusaurus/types': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.5.3) + '@docusaurus/utils-common': 3.4.0(@docusaurus/types@3.4.0) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.5.3) + '@mdx-js/react': 3.0.1(@types/react@18.3.3)(react@18.3.1) + clsx: 2.1.1 + copy-text-to-clipboard: 3.2.0 + infima: 0.2.0-alpha.43 + lodash: 4.17.21 + nprogress: 0.2.0 + postcss: 8.4.39 + prism-react-renderer: 2.3.1(react@18.3.1) + prismjs: 1.29.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - sitemap: 7.1.1 - tslib: 2.6.2 + react-router-dom: 5.3.4(react@18.3.1) + rtlcss: 4.1.1 + tslib: 2.6.3 + utility-types: 3.11.0 transitivePeerDependencies: - '@parcel/css' - '@rspack/core' - '@swc/core' - '@swc/css' + - '@types/react' - bufferutil - csso - debug @@ -4693,42 +5447,42 @@ packages: - webpack-cli dev: false - /@docusaurus/preset-classic@3.3.2(@algolia/client-search@4.23.3)(@swc/core@1.5.7)(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.13.0)(typescript@5.4.5): - resolution: {integrity: sha512-1SDS7YIUN1Pg3BmD6TOTjhB7RSBHJRpgIRKx9TpxqyDrJ92sqtZhomDc6UYoMMLQNF2wHFZZVGFjxJhw2VpL+Q==} + /@docusaurus/theme-common@3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-0A27alXuv7ZdCg28oPE8nH/Iz73/IUejVaCazqu9elS4ypjiLhK3KfzdSQBnL/g7YfHSlymZKdiOHEo8fJ0qMA==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-blog': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-docs': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-pages': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-debug': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-google-analytics': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-google-gtag': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-google-tag-manager': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-sitemap': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-classic': 3.3.2(@swc/core@1.5.7)(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-common': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-search-algolia': 3.3.2(@algolia/client-search@4.23.3)(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.13.0)(typescript@5.4.5) - '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/mdx-loader': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/module-type-aliases': 3.4.0(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/plugin-content-blog': 3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/plugin-content-docs': 3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/plugin-content-pages': 3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(typescript@5.5.3) + '@docusaurus/utils-common': 3.4.0(@docusaurus/types@3.4.0) + '@types/history': 4.7.11 + '@types/react': 18.3.3 + '@types/react-router-config': 5.0.11 + clsx: 2.1.1 + parse-numeric-range: 1.3.0 + prism-react-renderer: 2.3.1(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + tslib: 2.6.3 + utility-types: 3.11.0 transitivePeerDependencies: - - '@algolia/client-search' + - '@docusaurus/types' - '@parcel/css' - '@rspack/core' - '@swc/core' - '@swc/css' - - '@types/react' - bufferutil - csso - debug - esbuild - eslint - lightningcss - - search-insights - supports-color - typescript - uglify-js @@ -4737,54 +5491,36 @@ packages: - webpack-cli dev: false - /@docusaurus/react-loadable@6.0.0(react@18.3.1): - resolution: {integrity: sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==} - peerDependencies: - react: '*' - dependencies: - '@types/react': 18.3.2 - react: 18.3.1 - - /@docusaurus/theme-classic@3.3.2(@swc/core@1.5.7)(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-gepHFcsluIkPb4Im9ukkiO4lXrai671wzS3cKQkY9BXQgdVwsdPf/KS0Vs4Xlb0F10fTz+T3gNjkxNEgSN9M0A==} + /@docusaurus/theme-common@3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-0A27alXuv7ZdCg28oPE8nH/Iz73/IUejVaCazqu9elS4ypjiLhK3KfzdSQBnL/g7YfHSlymZKdiOHEo8fJ0qMA==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/mdx-loader': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/module-type-aliases': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/plugin-content-blog': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-docs': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-pages': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-common': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-translations': 3.3.2 - '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - '@mdx-js/react': 3.0.1(@types/react@18.3.2)(react@18.3.1) + '@docusaurus/mdx-loader': 3.4.0(@docusaurus/types@3.4.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/module-type-aliases': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/plugin-content-blog': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/plugin-content-docs': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/plugin-content-pages': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.5.3) + '@docusaurus/utils-common': 3.4.0(@docusaurus/types@3.4.0) + '@types/history': 4.7.11 + '@types/react': 18.3.3 + '@types/react-router-config': 5.0.11 clsx: 2.1.1 - copy-text-to-clipboard: 3.2.0 - infima: 0.2.0-alpha.43 - lodash: 4.17.21 - nprogress: 0.2.0 - postcss: 8.4.38 + parse-numeric-range: 1.3.0 prism-react-renderer: 2.3.1(react@18.3.1) - prismjs: 1.29.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-router-dom: 5.3.4(react@18.3.1) - rtlcss: 4.1.1 - tslib: 2.6.2 + tslib: 2.6.3 utility-types: 3.11.0 transitivePeerDependencies: + - '@docusaurus/types' - '@parcel/css' - '@rspack/core' - '@swc/core' - '@swc/css' - - '@types/react' - bufferutil - csso - debug @@ -4799,32 +5535,23 @@ packages: - webpack-cli dev: false - /@docusaurus/theme-common@3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-kXqSaL/sQqo4uAMQ4fHnvRZrH45Xz2OdJ3ABXDS7YVGPSDTBC8cLebFrRR4YF9EowUHto1UC/EIklJZQMG/usA==} + /@docusaurus/theme-mermaid@3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-3w5QW0HEZ2O6x2w6lU3ZvOe1gNXP2HIoKDMJBil1VmLBc9PmpAG17VmfhI/p3L2etNmOiVs5GgniUqvn8AFEGQ==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/mdx-loader': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/module-type-aliases': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/plugin-content-blog': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-docs': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-pages': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) - '@types/history': 4.7.11 - '@types/react': 18.3.2 - '@types/react-router-config': 5.0.11 - clsx: 2.1.1 - parse-numeric-range: 1.3.0 - prism-react-renderer: 2.3.1(react@18.3.1) + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/module-type-aliases': 3.4.0(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/theme-common': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/types': 3.4.0(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(typescript@5.5.3) + mermaid: 10.9.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.2 - utility-types: 3.11.0 + tslib: 2.6.3 transitivePeerDependencies: - - '@docusaurus/types' - '@parcel/css' - '@rspack/core' - '@swc/core' @@ -4843,33 +5570,46 @@ packages: - webpack-cli dev: false - /@docusaurus/theme-mermaid@3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-JY6q7owe5S5iH2N9oTjNDkqmuPW/+4j/zrX46Xag4RYOzt+WtMkeJilbzak8QGG8I2wDJXjUvX7Lu/jWuDAwUg==} + /@docusaurus/theme-search-algolia@3.4.0(@algolia/client-search@4.24.0)(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(@types/react@18.3.3)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.14.0)(typescript@5.5.3): + resolution: {integrity: sha512-aiHFx7OCw4Wck1z6IoShVdUWIjntC8FHCw9c5dR8r3q4Ynh+zkS8y2eFFunN/DL6RXPzpnvKCg3vhLQYJDmT9Q==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/module-type-aliases': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/theme-common': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - mermaid: 10.9.1 + '@docsearch/react': 3.6.0(@algolia/client-search@4.24.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.14.0) + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/logger': 3.4.0 + '@docusaurus/plugin-content-docs': 3.4.0(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/theme-common': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/theme-translations': 3.4.0 + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(typescript@5.5.3) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(typescript@5.5.3) + algoliasearch: 4.24.0 + algoliasearch-helper: 3.22.1(algoliasearch@4.24.0) + clsx: 2.1.1 + eta: 2.2.0 + fs-extra: 11.2.0 + lodash: 4.17.21 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.2 + tslib: 2.6.3 + utility-types: 3.11.0 transitivePeerDependencies: + - '@algolia/client-search' + - '@docusaurus/types' - '@parcel/css' - '@rspack/core' - '@swc/core' - '@swc/css' + - '@types/react' - bufferutil - csso - debug - esbuild - eslint - lightningcss + - search-insights - supports-color - typescript - uglify-js @@ -4878,30 +5618,30 @@ packages: - webpack-cli dev: false - /@docusaurus/theme-search-algolia@3.3.2(@algolia/client-search@4.23.3)(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.13.0)(typescript@5.4.5): - resolution: {integrity: sha512-qLkfCl29VNBnF1MWiL9IyOQaHxUvicZp69hISyq/xMsNvFKHFOaOfk9xezYod2Q9xx3xxUh9t/QPigIei2tX4w==} + /@docusaurus/theme-search-algolia@3.4.0(@algolia/client-search@4.24.0)(@docusaurus/types@3.4.0)(@types/react@18.3.3)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.14.0)(typescript@5.5.3): + resolution: {integrity: sha512-aiHFx7OCw4Wck1z6IoShVdUWIjntC8FHCw9c5dR8r3q4Ynh+zkS8y2eFFunN/DL6RXPzpnvKCg3vhLQYJDmT9Q==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docsearch/react': 3.6.0(@algolia/client-search@4.23.3)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.13.0) - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/logger': 3.3.2 - '@docusaurus/plugin-content-docs': 3.3.2(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-common': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-translations': 3.3.2 - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - algoliasearch: 4.23.3 - algoliasearch-helper: 3.19.0(algoliasearch@4.23.3) + '@docsearch/react': 3.6.0(@algolia/client-search@4.24.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.14.0) + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/logger': 3.4.0 + '@docusaurus/plugin-content-docs': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/theme-common': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@docusaurus/theme-translations': 3.4.0 + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.5.3) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.5.3) + algoliasearch: 4.24.0 + algoliasearch-helper: 3.22.1(algoliasearch@4.24.0) clsx: 2.1.1 eta: 2.2.0 fs-extra: 11.2.0 lodash: 4.17.21 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.2 + tslib: 2.6.3 utility-types: 3.11.0 transitivePeerDependencies: - '@algolia/client-search' @@ -4926,34 +5666,58 @@ packages: - webpack-cli dev: false - /@docusaurus/theme-translations@3.3.2: - resolution: {integrity: sha512-bPuiUG7Z8sNpGuTdGnmKl/oIPeTwKr0AXLGu9KaP6+UFfRZiyWbWE87ti97RrevB2ffojEdvchNujparR3jEZQ==} + /@docusaurus/theme-translations@3.4.0: + resolution: {integrity: sha512-zSxCSpmQCCdQU5Q4CnX/ID8CSUUI3fvmq4hU/GNP/XoAWtXo9SAVnM3TzpU8Gb//H3WCsT8mJcTfyOk3d9ftNg==} engines: {node: '>=18.0'} dependencies: fs-extra: 11.2.0 - tslib: 2.6.2 + tslib: 2.6.3 dev: false - /@docusaurus/tsconfig@3.3.2: - resolution: {integrity: sha512-2MQXkLoWqgOSiqFojNEq8iPtFBHGQqd1b/SQMoe+v3GgHmk/L6YTTO/hMcHhWb1hTFmbkei++IajSfD3RlZKvw==} + /@docusaurus/tsconfig@3.4.0: + resolution: {integrity: sha512-0qENiJ+TRaeTzcg4olrnh0BQ7eCxTgbYWBnWUeQDc84UYkt/T3pDNnm3SiQkqPb+YQ1qtYFlC0RriAElclo8Dg==} dev: true - /@docusaurus/types@3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-5p201S7AZhliRxTU7uMKtSsoC8mgPA9bs9b5NQg1IRdRxJfflursXNVsgc3PcMqiUTul/v1s3k3rXXFlRE890w==} + /@docusaurus/types@3.4.0(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-4jcDO8kXi5Cf9TcyikB/yKmz14f2RZ2qTRerbHAsS+5InE9ZgSLBNLsewtFTcTOXSVcbU3FoGOzcNWAmU1TR0A==} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@mdx-js/mdx': 3.0.1 + '@types/history': 4.7.11 + '@types/react': 18.3.3 + commander: 5.1.0 + joi: 17.13.3 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-helmet-async: 1.3.0(react-dom@18.3.1)(react@18.3.1) + utility-types: 3.11.0 + webpack: 5.92.1(@swc/core@1.6.6) + webpack-merge: 5.10.0 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - supports-color + - uglify-js + - webpack-cli + + /@docusaurus/types@3.4.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-4jcDO8kXi5Cf9TcyikB/yKmz14f2RZ2qTRerbHAsS+5InE9ZgSLBNLsewtFTcTOXSVcbU3FoGOzcNWAmU1TR0A==} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: '@mdx-js/mdx': 3.0.1 '@types/history': 4.7.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 commander: 5.1.0 - joi: 17.13.1 + joi: 17.13.3 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-helmet-async: 1.3.0(react-dom@18.3.1)(react@18.3.1) utility-types: 3.11.0 - webpack: 5.91.0(@swc/core@1.5.7) + webpack: 5.92.1 webpack-merge: 5.10.0 transitivePeerDependencies: - '@swc/core' @@ -4962,8 +5726,8 @@ packages: - uglify-js - webpack-cli - /@docusaurus/utils-common@3.3.2(@docusaurus/types@3.3.2): - resolution: {integrity: sha512-QWFTLEkPYsejJsLStgtmetMFIA3pM8EPexcZ4WZ7b++gO5jGVH7zsipREnCHzk6+eDgeaXfkR6UPaTt86bp8Og==} + /@docusaurus/utils-common@3.4.0(@docusaurus/types@3.4.0): + resolution: {integrity: sha512-NVx54Wr4rCEKsjOH5QEVvxIqVvm+9kh7q8aYTU5WzUU9/Hctd6aTrcZ3G0Id4zYJ+AeaG5K5qHA4CY5Kcm2iyQ==} engines: {node: '>=18.0'} peerDependencies: '@docusaurus/types': '*' @@ -4971,20 +5735,44 @@ packages: '@docusaurus/types': optional: true dependencies: - '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) - tslib: 2.6.2 + '@docusaurus/types': 3.4.0(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1) + tslib: 2.6.3 dev: false - /@docusaurus/utils-validation@3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5): - resolution: {integrity: sha512-itDgFs5+cbW9REuC7NdXals4V6++KifgVMzoGOOOSIifBQw+8ULhy86u5e1lnptVL0sv8oAjq2alO7I40GR7pA==} + /@docusaurus/utils-validation@3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(typescript@5.5.3): + resolution: {integrity: sha512-hYQ9fM+AXYVTWxJOT1EuNaRnrR2WGpRdLDQG07O8UOpsvCPWUVOeo26Rbm0JWY2sGLfzAb+tvJ62yF+8F+TV0g==} engines: {node: '>=18.0'} dependencies: - '@docusaurus/logger': 3.3.2 - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5) - '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) - joi: 17.13.1 + '@docusaurus/logger': 3.4.0 + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(typescript@5.5.3) + '@docusaurus/utils-common': 3.4.0(@docusaurus/types@3.4.0) + fs-extra: 11.2.0 + joi: 17.13.3 + js-yaml: 4.1.0 + lodash: 4.17.21 + tslib: 2.6.3 + transitivePeerDependencies: + - '@docusaurus/types' + - '@swc/core' + - esbuild + - supports-color + - typescript + - uglify-js + - webpack-cli + dev: false + + /@docusaurus/utils-validation@3.4.0(@docusaurus/types@3.4.0)(typescript@5.5.3): + resolution: {integrity: sha512-hYQ9fM+AXYVTWxJOT1EuNaRnrR2WGpRdLDQG07O8UOpsvCPWUVOeo26Rbm0JWY2sGLfzAb+tvJ62yF+8F+TV0g==} + engines: {node: '>=18.0'} + dependencies: + '@docusaurus/logger': 3.4.0 + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.5.3) + '@docusaurus/utils-common': 3.4.0(@docusaurus/types@3.4.0) + fs-extra: 11.2.0 + joi: 17.13.3 js-yaml: 4.1.0 - tslib: 2.6.2 + lodash: 4.17.21 + tslib: 2.6.3 transitivePeerDependencies: - '@docusaurus/types' - '@swc/core' @@ -4995,8 +5783,47 @@ packages: - webpack-cli dev: false - /@docusaurus/utils@3.3.2(@docusaurus/types@3.3.2)(@swc/core@1.5.7)(typescript@5.4.5): - resolution: {integrity: sha512-f4YMnBVymtkSxONv4Y8js3Gez9IgHX+Lcg6YRMOjVbq8sgCcdYK1lf6SObAuz5qB/mxiSK7tW0M9aaiIaUSUJg==} + /@docusaurus/utils@3.4.0(@docusaurus/types@3.4.0)(@swc/core@1.6.6)(typescript@5.5.3): + resolution: {integrity: sha512-fRwnu3L3nnWaXOgs88BVBmG1yGjcQqZNHG+vInhEa2Sz2oQB+ZjbEMO5Rh9ePFpZ0YDiDUhpaVjwmS+AU2F14g==} + engines: {node: '>=18.0'} + peerDependencies: + '@docusaurus/types': '*' + peerDependenciesMeta: + '@docusaurus/types': + optional: true + dependencies: + '@docusaurus/logger': 3.4.0 + '@docusaurus/types': 3.4.0(@swc/core@1.6.6)(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils-common': 3.4.0(@docusaurus/types@3.4.0) + '@svgr/webpack': 8.1.0(typescript@5.5.3) + escape-string-regexp: 4.0.0 + file-loader: 6.2.0(webpack@5.92.1) + fs-extra: 11.2.0 + github-slugger: 1.5.0 + globby: 11.1.0 + gray-matter: 4.0.3 + jiti: 1.21.6 + js-yaml: 4.1.0 + lodash: 4.17.21 + micromatch: 4.0.7 + prompts: 2.4.2 + resolve-pathname: 3.0.0 + shelljs: 0.8.5 + tslib: 2.6.3 + url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.92.1) + utility-types: 3.11.0 + webpack: 5.92.1(@swc/core@1.6.6) + transitivePeerDependencies: + - '@swc/core' + - esbuild + - supports-color + - typescript + - uglify-js + - webpack-cli + dev: false + + /@docusaurus/utils@3.4.0(@docusaurus/types@3.4.0)(typescript@5.5.3): + resolution: {integrity: sha512-fRwnu3L3nnWaXOgs88BVBmG1yGjcQqZNHG+vInhEa2Sz2oQB+ZjbEMO5Rh9ePFpZ0YDiDUhpaVjwmS+AU2F14g==} engines: {node: '>=18.0'} peerDependencies: '@docusaurus/types': '*' @@ -5004,26 +5831,27 @@ packages: '@docusaurus/types': optional: true dependencies: - '@docusaurus/logger': 3.3.2 - '@docusaurus/types': 3.3.2(@swc/core@1.5.7)(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) - '@svgr/webpack': 8.1.0(typescript@5.4.5) + '@docusaurus/logger': 3.4.0 + '@docusaurus/types': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils-common': 3.4.0(@docusaurus/types@3.4.0) + '@svgr/webpack': 8.1.0(typescript@5.5.3) escape-string-regexp: 4.0.0 - file-loader: 6.2.0(webpack@5.91.0) + file-loader: 6.2.0(webpack@5.92.1) fs-extra: 11.2.0 github-slugger: 1.5.0 globby: 11.1.0 gray-matter: 4.0.3 - jiti: 1.21.0 + jiti: 1.21.6 js-yaml: 4.1.0 lodash: 4.17.21 - micromatch: 4.0.5 + micromatch: 4.0.7 prompts: 2.4.2 resolve-pathname: 3.0.0 shelljs: 0.8.5 - tslib: 2.6.2 - url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.91.0) - webpack: 5.91.0(@swc/core@1.5.7) + tslib: 2.6.3 + url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.92.1) + utility-types: 3.11.0 + webpack: 5.92.1 transitivePeerDependencies: - '@swc/core' - esbuild @@ -5077,7 +5905,7 @@ packages: resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} dev: false - /@emotion/react@11.11.4(@types/react@18.3.2)(react@18.3.1): + /@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==} peerDependencies: '@types/react': '*' @@ -5093,7 +5921,7 @@ packages: '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1) '@emotion/utils': 1.2.1 '@emotion/weak-memoize': 0.3.1 - '@types/react': 18.3.2 + '@types/react': 18.3.3 hoist-non-react-statics: 3.3.2 react: 18.3.1 dev: false @@ -5137,6 +5965,15 @@ packages: cpu: [ppc64] os: [aix] requiresBuild: true + dev: true + optional: true + + /@esbuild/aix-ppc64@0.21.5: + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true optional: true /@esbuild/android-arm64@0.20.2: @@ -5145,6 +5982,15 @@ packages: cpu: [arm64] os: [android] requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.21.5: + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true optional: true /@esbuild/android-arm@0.20.2: @@ -5153,6 +5999,15 @@ packages: cpu: [arm] os: [android] requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.21.5: + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true optional: true /@esbuild/android-x64@0.20.2: @@ -5161,6 +6016,15 @@ packages: cpu: [x64] os: [android] requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.21.5: + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true optional: true /@esbuild/darwin-arm64@0.20.2: @@ -5169,6 +6033,15 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.21.5: + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true optional: true /@esbuild/darwin-x64@0.20.2: @@ -5177,6 +6050,15 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.21.5: + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true optional: true /@esbuild/freebsd-arm64@0.20.2: @@ -5185,6 +6067,15 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.21.5: + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true optional: true /@esbuild/freebsd-x64@0.20.2: @@ -5193,6 +6084,15 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.21.5: + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true optional: true /@esbuild/linux-arm64@0.20.2: @@ -5201,6 +6101,15 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.21.5: + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true optional: true /@esbuild/linux-arm@0.20.2: @@ -5209,6 +6118,15 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.21.5: + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true optional: true /@esbuild/linux-ia32@0.20.2: @@ -5217,6 +6135,15 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.21.5: + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true optional: true /@esbuild/linux-loong64@0.20.2: @@ -5225,6 +6152,15 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.21.5: + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true optional: true /@esbuild/linux-mips64el@0.20.2: @@ -5233,10 +6169,28 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.21.5: + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + optional: true + + /@esbuild/linux-ppc64@0.20.2: + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true optional: true - /@esbuild/linux-ppc64@0.20.2: - resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + /@esbuild/linux-ppc64@0.21.5: + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -5249,6 +6203,15 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.21.5: + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true optional: true /@esbuild/linux-s390x@0.20.2: @@ -5257,6 +6220,15 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.21.5: + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true optional: true /@esbuild/linux-x64@0.20.2: @@ -5265,6 +6237,15 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.21.5: + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true optional: true /@esbuild/netbsd-x64@0.20.2: @@ -5273,6 +6254,15 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.21.5: + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true optional: true /@esbuild/openbsd-x64@0.20.2: @@ -5281,6 +6271,15 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.21.5: + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true optional: true /@esbuild/sunos-x64@0.20.2: @@ -5289,6 +6288,15 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.21.5: + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true optional: true /@esbuild/win32-arm64@0.20.2: @@ -5297,6 +6305,15 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.21.5: + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true optional: true /@esbuild/win32-ia32@0.20.2: @@ -5305,6 +6322,15 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.21.5: + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true optional: true /@esbuild/win32-x64@0.20.2: @@ -5313,6 +6339,15 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.21.5: + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true optional: true /@esfx/async-canceltoken@1.0.0: @@ -5321,7 +6356,7 @@ packages: '@esfx/cancelable': 1.0.0 '@esfx/canceltoken': 1.0.0 '@esfx/disposable': 1.0.0 - tslib: 2.6.2 + tslib: 2.6.3 dev: true /@esfx/cancelable@1.0.0: @@ -5335,7 +6370,7 @@ packages: dependencies: '@esfx/cancelable': 1.0.0 '@esfx/disposable': 1.0.0 - tslib: 2.6.2 + tslib: 2.6.3 dev: true /@esfx/disposable@1.0.0: @@ -5355,6 +6390,11 @@ packages: resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + /@eslint-community/regexpp@4.11.0: + resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + /@eslint/eslintrc@2.1.4: resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5376,8 +6416,8 @@ packages: engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: ajv: 6.12.6 - debug: 4.3.4 - espree: 10.0.1 + debug: 4.3.5 + espree: 10.1.0 globals: 14.0.0 ignore: 5.3.1 import-fresh: 3.3.0 @@ -5396,29 +6436,29 @@ packages: resolution: {integrity: sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==} dev: true - /@floating-ui/core@1.6.2: - resolution: {integrity: sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==} + /@floating-ui/core@1.6.4: + resolution: {integrity: sha512-a4IowK4QkXl4SCWTGUR0INAfEOX3wtsYw3rKK5InQEHMGObkR8Xk44qYQD9P4r6HHw0iIfK6GUKECmY8sTkqRA==} dependencies: - '@floating-ui/utils': 0.2.2 + '@floating-ui/utils': 0.2.4 dev: false - /@floating-ui/devtools@0.2.1(@floating-ui/dom@1.6.5): + /@floating-ui/devtools@0.2.1(@floating-ui/dom@1.6.7): resolution: {integrity: sha512-8PHJLbD6VhBh+LJ1uty/Bz30qs02NXCE5u8WpOhSewlYXUWl03GNXknr9AS2yaAWJEQaY27x7eByJs44gODBcw==} peerDependencies: '@floating-ui/dom': '>=1.5.4' dependencies: - '@floating-ui/dom': 1.6.5 + '@floating-ui/dom': 1.6.7 dev: false - /@floating-ui/dom@1.6.5: - resolution: {integrity: sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==} + /@floating-ui/dom@1.6.7: + resolution: {integrity: sha512-wmVfPG5o2xnKDU4jx/m4w5qva9FWHcnZ8BvzEe90D/RpwsJaTAVYPEPdQ8sbr/N8zZTAHlZUTQdqg8ZUbzHmng==} dependencies: - '@floating-ui/core': 1.6.2 - '@floating-ui/utils': 0.2.2 + '@floating-ui/core': 1.6.4 + '@floating-ui/utils': 0.2.4 dev: false - /@floating-ui/utils@0.2.2: - resolution: {integrity: sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==} + /@floating-ui/utils@0.2.4: + resolution: {integrity: sha512-dWO2pw8hhi+WrXq1YJy2yCuWoL20PddgGaqTgVe4cOS9Q6qklXCiA1tJEqX6BEwRNSCP84/afac9hd4MS+zEUA==} dev: false /@fluentui/keyboard-keys@9.0.7: @@ -5427,31 +6467,31 @@ packages: '@swc/helpers': 0.5.11 dev: false - /@fluentui/priority-overflow@9.1.12: - resolution: {integrity: sha512-uUIrdQ96LvheAREwrhlwwBNDu/Q3eT+2Sy9vC8qm7g5BjCQOP/WdHQGPgk6ywns55j1aKNOgE2Uq0jf+hk/JnQ==} + /@fluentui/priority-overflow@9.1.13: + resolution: {integrity: sha512-yDojVpkhBZTXOYExrCgW1GXbw3x9pYIS617xlNJIc2t06Cd3H32y2p51QXFt94sBmlVyAvPu7UKBHaq1Yw7u+w==} dependencies: '@swc/helpers': 0.5.11 dev: false - /@fluentui/react-accordion@9.3.55(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-k2D4TxsnVUpxoykPLP1jtFAGPrQDGYwbEeHaY3J09ntKRQBRBJNzUoOLGtlXjTE6+dybq2LlW7RqyUCZBXga4g==} + /@fluentui/react-accordion@9.4.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-xvQWtpnHVn4c8MCcCVUyoq284AtmQCvH4Dyd0kJUT13j8JwLSh2NxW0XPR+gutfoOVSlShEtpRFXdV0RO1ApsQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-aria': 9.11.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-context-selector': 9.1.60(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-aria': 9.12.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-context-selector': 9.1.62(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -5459,24 +6499,24 @@ packages: - scheduler dev: false - /@fluentui/react-alert@9.0.0-beta.122(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-TFnOdWlKDufHlprD4Ng2x0LZ37XWV5IjofkCVzgCkf/hOvVD1POZ61IL+22q56+ShAP/qYA9MoufjMbzhZKv9w==} + /@fluentui/react-alert@9.0.0-beta.124(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-yFBo3B5H9hnoaXxlkuz8wRz04DEyQ+ElYA/p5p+Vojf19Zuta8DmFZZ6JtWdtxcdnnQ4LvAfC5OYYlzdReozPA==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-avatar': 9.6.27(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-button': 9.3.81(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-avatar': 9.6.30(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-button': 9.3.84(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -5484,8 +6524,8 @@ packages: - scheduler dev: false - /@fluentui/react-aria@9.11.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-DKZ4bY7aVwW2RKusGABNhbE6C56ttWGWs34gH82RuzUmqdKcYwp62DiCqz/gV42zAdzLb7PZUGnJEQctKxMbpA==} + /@fluentui/react-aria@9.12.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-YKI1e/rzOsC2x0OMjOEMY/YCPETA6P0/LV1N8UzeFSYU2NyRavacLpYfRY7LfQjCYqFfM5eHd3uWOQfuzjPPmw==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' @@ -5493,38 +6533,38 @@ packages: react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@fluentui/react-avatar@9.6.27(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-l79O7bsE0yXSL/7EscDXEfpvX2jddx61xffFmtRUfjQftSoGg/zrzFynFDO/3ZsgYQzRWqvLsdrEskYKBeH/9A==} + /@fluentui/react-avatar@9.6.30(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-oujqsEzLgTUBkvcvTYM4WIi5DNOac0oATtOfMYSk5ws+kh0nPA5umUSC505snG2KrWySrpxHZeX/SaG8MZgHvA==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-badge': 9.2.36(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-context-selector': 9.1.60(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-popover': 9.9.9(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-badge': 9.2.38(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-context-selector': 9.1.62(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-popover': 9.9.12(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-tooltip': 9.4.28(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-tooltip': 9.4.31(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -5532,54 +6572,54 @@ packages: - scheduler dev: false - /@fluentui/react-badge@9.2.36(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-JK3ClcnamUZgVF9qTIVcWl8lKxWTjfS8WWL9rlAU+8OzHq0VPBfKlY8lfPjJ2Bp7viLNIopob/hciXhL1PZ3yA==} + /@fluentui/react-badge@9.2.38(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-Tc9zJQLWr/+O2x2IGPBTlnC18TXtvFqA7MTeQK+GRrGPmmDR24wdubuJHDRvkHT7olF+bcpVf6v96kry+9eIKA==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@fluentui/react-breadcrumb@9.0.27(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-7kyW1wUeUdz2k3ERfSvFe0eqXtGGNK5xkymgvfZyJ3cfs9WDac4HeeSdrisHEFSXpTqJxpmWn4dUQN9hCJqgHQ==} + /@fluentui/react-breadcrumb@9.0.30(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-Q4O6M7C1PcvkbCo/tlBrIkJvuXShsoFMTf1k0drD0S2IlFVO+F1sI6RCT1hsq8PWDSfFj63EEOpWf1gPvyHY1w==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-aria': 9.11.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-button': 9.3.81(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-link': 9.2.22(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-aria': 9.12.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-button': 9.3.84(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-link': 9.2.25(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@fluentui/react-button@9.3.81(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-YC39VB6AiEJ0NAVVwxBtY70NJu4rWU7u5nHSkBwJ/XDZw9XP5P8hhQCWrEM/2+KG5YZ+Vp1CrASaUuFEAklkrA==} + /@fluentui/react-button@9.3.84(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-tZX4mt2dUIguTOmBYGEL555sRnf8H9MIrqD8YsBU+2sADBWgaYOoajoZrN6TUXkmpQoG5AYggwscqJcFICzeQg==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' @@ -5587,23 +6627,23 @@ packages: react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-aria': 9.11.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-aria': 9.12.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@fluentui/react-card@9.0.80(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-BHbHiQJrkSfGZMiTpIcFwJ08U0Pj6ryyroBwdNiQQ+K/T1OjPfhL038GxguJUYQCntyNVCzJbvzOnD8hHuI3ew==} + /@fluentui/react-card@9.0.84(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-P3mOPT4ON62tNrMXI79RZSbj789nt+E6B5gRX2/cuTLbiMyrOepaF4zsYRE4+8tX7YFiKbv45xobRI/Oe31WRg==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' @@ -5611,37 +6651,37 @@ packages: react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@fluentui/react-checkbox@9.2.26(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-jTH0IckTgn64AOGip7CyavgNSFxNcAR2QgBXO32NNCDF7rpLAq5X2jd3VIG7AYi4uVfnFNxBLNwS7NBVfz22dw==} + /@fluentui/react-checkbox@9.2.29(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-3KIY50KQ+i3Iwqi165zRo/kZ7sjeLoFX5yYYB3BXpqNey+EGP6zhm1C7NAOy3d6dUlREbOHHxbM+9QUHtgUv1w==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-field': 9.1.66(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-label': 9.1.70(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-field': 9.1.68(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-label': 9.1.71(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -5649,8 +6689,8 @@ packages: - scheduler dev: false - /@fluentui/react-combobox@9.11.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-O8g2R4/MQJrx3Bk8vCfzcgKoIY1dL6X4CJgBO8xArZ6vAEDxSgXQoDgY1PwnutJEFBsbC3d0BsAfjhhateNItg==} + /@fluentui/react-combobox@9.11.8(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-qOKRnotJ53cBWVtSfJ3ZM1cpJ05Fzidfsygz351Jw6Gk8CKgvO9Vi9EvpadP8rrWcnr1GcPhnW2KGP9qsEFnJQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' @@ -5658,20 +6698,20 @@ packages: react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-aria': 9.11.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-context-selector': 9.1.60(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-field': 9.1.66(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-portal': 9.4.25(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-positioning': 9.15.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-aria': 9.12.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-context-selector': 9.1.62(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-field': 9.1.68(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-portal': 9.4.28(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-positioning': 9.15.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -5679,72 +6719,73 @@ packages: - scheduler dev: false - /@fluentui/react-components@9.52.0(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-x+ZcMxEbDDfnwJftSvNG2EKjZw6p+lVX3ItZ0ynGLNnbhIupV5dfCxoIk4mxHTGKG34SCNbuvZt9YO7O+VX/AQ==} + /@fluentui/react-components@9.54.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-NcpmVmYtF7BQComrRcnjlHijXCApDXKKJx+aTxJb7lWl3C5oPIzWzKNtiIwm3zXKDlGMuN336FHc0I0sduMtHA==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-accordion': 9.3.55(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-alert': 9.0.0-beta.122(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-aria': 9.11.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-avatar': 9.6.27(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-badge': 9.2.36(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-breadcrumb': 9.0.27(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-button': 9.3.81(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-card': 9.0.80(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-checkbox': 9.2.26(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-combobox': 9.11.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-dialog': 9.10.6(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-divider': 9.2.69(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-drawer': 9.3.2(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-field': 9.1.66(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-image': 9.1.66(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-infobutton': 9.0.0-beta.102(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-infolabel': 9.0.34(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-input': 9.4.76(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-label': 9.1.70(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-link': 9.2.22(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-menu': 9.14.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-message-bar': 9.2.0(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-overflow': 9.1.20(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-persona': 9.2.86(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-popover': 9.9.9(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-portal': 9.4.25(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-positioning': 9.15.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-progress': 9.1.76(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-provider': 9.16.0(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-radio': 9.2.21(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-rating': 9.0.9(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-search': 9.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-select': 9.1.76(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-skeleton': 9.1.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-slider': 9.1.83(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-spinbutton': 9.2.76(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-spinner': 9.4.8(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-swatch-picker': 9.1.0(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-switch': 9.1.83(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-table': 9.15.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-tabs': 9.4.21(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-tag-picker': 9.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-tags': 9.3.6(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-teaching-popover': 9.1.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-text': 9.4.18(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-textarea': 9.3.76(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-accordion': 9.4.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-alert': 9.0.0-beta.124(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-aria': 9.12.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-avatar': 9.6.30(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-badge': 9.2.38(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-breadcrumb': 9.0.30(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-button': 9.3.84(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-card': 9.0.84(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-checkbox': 9.2.29(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-combobox': 9.11.8(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-dialog': 9.11.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-divider': 9.2.70(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-drawer': 9.5.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-field': 9.1.68(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-image': 9.1.68(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-infobutton': 9.0.0-beta.102(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-infolabel': 9.0.37(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-input': 9.4.79(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-label': 9.1.71(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-link': 9.2.25(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-menu': 9.14.8(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-message-bar': 9.2.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-motion': 9.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-overflow': 9.1.22(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-persona': 9.2.89(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-popover': 9.9.12(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-portal': 9.4.28(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-positioning': 9.15.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-progress': 9.1.79(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-provider': 9.16.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-radio': 9.2.24(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-rating': 9.0.12(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-search': 9.0.8(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-select': 9.1.79(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-skeleton': 9.1.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-slider': 9.1.86(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-spinbutton': 9.2.79(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-spinner': 9.4.9(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-swatch-picker': 9.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-switch': 9.1.86(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-table': 9.15.8(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-tabs': 9.4.24(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-tag-picker': 9.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-tags': 9.3.9(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-teaching-popover': 9.1.8(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-text': 9.4.20(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-textarea': 9.3.79(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-toast': 9.3.43(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-toolbar': 9.1.84(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-tooltip': 9.4.28(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-tree': 9.5.0(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-virtualizer': 9.0.0-alpha.78(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-toast': 9.3.47(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-toolbar': 9.1.87(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-tooltip': 9.4.31(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-tree': 9.7.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-virtualizer': 9.0.0-alpha.79(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -5752,8 +6793,8 @@ packages: - scheduler dev: false - /@fluentui/react-context-selector@9.1.60(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-gm93NSABCVKw6pw9PGd4M5aJUIVrI6u/HlyqBKLB7HjBZwa1RwdNH9PghUJ2TSjfhS8V00Rkt28nCqEwz34Dlw==} + /@fluentui/react-context-selector@9.1.62(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-XXSCkqzisRWGjckdkZLLx0uYnQyfwa0xedEB6HMMeCnJqYWj4aFj27IhQC25UQ2SMdrl1vnjdfqUYjn6G3NsAQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' @@ -5761,17 +6802,17 @@ packages: react-dom: '>=16.14.0 <19.0.0' scheduler: '>=0.19.0 <=0.23.0' dependencies: - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) scheduler: 0.23.0 dev: false - /@fluentui/react-dialog@9.10.6(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-E/vcXe7s+hUyz8pQsUMGwVJFA/B9U4L2yOestTIGshj9kY/ijJxbgagr7M8/58rGHeiPPqxhaIuQA8SMtwni8w==} + /@fluentui/react-dialog@9.11.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-us1JbZ7iucDyJyd372sJQqdcJPCgQJLsxR3OFVoecQ+wOC66eLKTHHKhyHhdIRem/dfpm8X1mzEmrj+ipws1jQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' @@ -5779,64 +6820,64 @@ packages: react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-aria': 9.11.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-context-selector': 9.1.60(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-portal': 9.4.25(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-aria': 9.12.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-context-selector': 9.1.62(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-motion': 9.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-portal': 9.4.28(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-transition-group: 4.4.5(react-dom@18.3.1)(react@18.3.1) transitivePeerDependencies: - scheduler dev: false - /@fluentui/react-divider@9.2.69(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-D1ajELLS8F7N7rWLRlNCtZa/JhfsTqKC5jYpWYbUZPkYS9VxetPaO3hjcmAOrK5ycqYkUv/zsU7wbnTSIkSEOA==} + /@fluentui/react-divider@9.2.70(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-PtPAQp+j9icisZrmZR65LLug/uk/cWBdyQAMKse6jKmF/274xp9M9xuB833fgryJ3NIMp+dVHsJT8XJxhMVHcQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@fluentui/react-drawer@9.3.2(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-Lrzg63l4pi44BxY+N3ivUCW5zSsorRHfCaP/T5L67p6STc4+QQjHeJGXo2X7cR8Xhu2CUUdmBkZ80a/9W9K0gg==} + /@fluentui/react-drawer@9.5.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-uUXGrVRiG+LsF82EdtVlEdfO0EH5+zN/T7eOWdADm94M5LIK5VT+ifm31f+bERdJIPfCV2HbfUTtqgL9ubho1A==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-dialog': 9.10.6(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-motion-preview': 0.5.21(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-dialog': 9.11.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-motion-preview': 0.5.22(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -5844,23 +6885,23 @@ packages: - scheduler dev: false - /@fluentui/react-field@9.1.66(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-9dzn2GU/ttbK1QuS6VqbACFhFFs0IHRniCgqcufxIXLbcdze0NmyALJb6X6DRAlgunTlM4UDrD6CNB2cv0B08A==} + /@fluentui/react-field@9.1.68(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-PiXti7L9rBwk98S+BcS9EKj13nmvl/lymwdrw2vguOMJvNQYIW4UhmvAzFDxs92kpfeHIjZgcEv+cskhJ7Uo7g==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-context-selector': 9.1.60(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-label': 9.1.70(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-context-selector': 9.1.62(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-label': 9.1.71(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -5868,37 +6909,37 @@ packages: - scheduler dev: false - /@fluentui/react-icons@2.0.240(react@18.3.1): - resolution: {integrity: sha512-vvYAA5bKImFedfRWnlady/Imdz45lGpKyPhNXZVpDoKX1yub/QNtSlH9XctynteQt8cEyvzPtHPXZBgxDTtDlw==} + /@fluentui/react-icons@2.0.247(react@18.3.1): + resolution: {integrity: sha512-w5KQb0xBcqBwXB0jNCKQnMjllxlkLTpDICQYBqM0QXI7lEtEWQ/4IyPiocdJ+aBYVrSbI5d8rTqvHvYsFUYXmg==} peerDependencies: react: '>=16.8.0 <19.0.0' dependencies: - '@griffel/react': 1.5.22(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) react: 18.3.1 - tslib: 2.6.2 + tslib: 2.6.3 dev: false - /@fluentui/react-image@9.1.66(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-5nd644/IIqq0ehXVyY2VGq9RGCMbB0YuxaW1EHqCfhEsDBxATjyQHuLRmP5RIZh0g0p7kHVQ2N0aVhH+WDSm/Q==} + /@fluentui/react-image@9.1.68(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-cjUoL7nt9cyO5WrPw5wG2GFYRvAEpOA2/nbeUooeAAQQ11V+d7ekSxpfD9OyyiA5KABpn909puzu96kqNTwKFg==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@fluentui/react-infobutton@9.0.0-beta.102(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + /@fluentui/react-infobutton@9.0.0-beta.102(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): resolution: {integrity: sha512-3kA4F0Vga8Ds6JGlBajLCCDOo/LmPuS786Wg7ui4ZTDYVIMzy1yp2XuVcZniifBFvEp0HQCUoDPWUV0VI3FfzQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' @@ -5906,16 +6947,16 @@ packages: react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-label': 9.1.70(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-popover': 9.9.9(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-label': 9.1.71(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-popover': 9.9.12(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -5923,24 +6964,24 @@ packages: - scheduler dev: false - /@fluentui/react-infolabel@9.0.34(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-0tI9wDEHAe3V6lZC64h/6EW3IaLQg/uv2u0gUqSHHwOr7uC8+p08Iqm2xWhZWOL+u+1+hejBW0qqVYy3vur+Yg==} + /@fluentui/react-infolabel@9.0.37(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-q3GzoMQXv6r6d/9d6PRA1XDTY9mJDO/7Kh538E1b4HEQwyVSW21NpuUZSHURp5O7v3tfuCq47BMO0339ePCu+g==} peerDependencies: '@types/react': '>=16.8.0 <19.0.0' '@types/react-dom': '>=16.8.0 <19.0.0' react: '>=16.8.0 <19.0.0' react-dom: '>=16.8.0 <19.0.0' dependencies: - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-label': 9.1.70(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-popover': 9.9.9(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-label': 9.1.71(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-popover': 9.9.12(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -5948,22 +6989,22 @@ packages: - scheduler dev: false - /@fluentui/react-input@9.4.76(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-6ZrnkDm/nwiQn61iuTHEs5+y7duek6eC/Rp5CzWa5alNCgoJ8O5AzZ1G8NWrhAcn8Qu4rh+IJHckS+p3ScjnUA==} + /@fluentui/react-input@9.4.79(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-Nuf3n4Py77v5zOVE9MLaQeC6ywwjfL7jTdEaKVGL3k/geWTG5WFqjG79CzNJo0Ajo0DKnPqul6MtLdRF+tqeNQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-field': 9.1.66(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) + '@fluentui/react-field': 9.1.68(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -5971,41 +7012,41 @@ packages: - scheduler dev: false - /@fluentui/react-jsx-runtime@9.0.38(@types/react@18.3.2)(react@18.3.1): - resolution: {integrity: sha512-4HGwWshavd9H+SyEkxPriPZLFz7QRa4YMzYi3ibBI0q2iiZZw8wQ3otuM/Pf8xxamJgYpnDl3mAesJU+3hFANw==} + /@fluentui/react-jsx-runtime@9.0.39(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-mfK3L68Gfu9rMkfg1iVT06rOOPeOZasy+nKJID451YfKiAQYy1Zy9bhaTRDoNrOQcu2jDEOZAxAPURZw5oGLtw==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' react: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 react: 18.3.1 react-is: 17.0.2 dev: false - /@fluentui/react-label@9.1.70(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-dYsx4w9Hk8VAhyt7ZU88u1eIbpchtmr0sEVSgXEVevtUo4R4mT5UnOESsUwLT4wMY0sevBm5AoXbNsnoPutQQg==} + /@fluentui/react-label@9.1.71(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-PkzRsl86+AkSn6p26C0Y2AV4IxYUhbBV+lFNSwN/hVgiXwMVdUjPOZx4Nm4Fnvv5ctt/BVuaE0dB/nSSDsrnQw==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@fluentui/react-link@9.2.22(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-77ef/PM1G+8dHq3LNFvjM5kWu8mS65eoxAtyfwbKAJRNfrtKFc1XrTBOcnqipXAqEPilQ+vgpgz/i0ziFVPvHQ==} + /@fluentui/react-link@9.2.25(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-yhwgXjIFC39Nd5zveaOu3AgAra3H0Cv+gQ4rOLKW95ejlXHJqZEqcFPrf39d930YVCeIThiBH7IG1JCfo4z8/Q==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' @@ -6013,21 +7054,21 @@ packages: react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@fluentui/react-menu@9.14.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-JelsSR1s5hUKaTSd/TqkKtKaTpiJ+bKHmKefoQ+xBDslwBngMMMVRo7rAQmdoGQwVeky44f3YsoMgD+re/8QdA==} + /@fluentui/react-menu@9.14.8(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-FFY44tCxzQJaFVKXqJuR00++FSJPUSkx/qg41e73j/8+ytelD0FtyzLoS0r/ditAfDVSJtFwuuL10+3Dagk2WQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' @@ -6035,19 +7076,19 @@ packages: react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-aria': 9.11.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-context-selector': 9.1.60(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-portal': 9.4.25(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-positioning': 9.15.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-aria': 9.12.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-context-selector': 9.1.62(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-portal': 9.4.28(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-positioning': 9.15.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6055,64 +7096,82 @@ packages: - scheduler dev: false - /@fluentui/react-message-bar@9.2.0(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-47i2QIPpt8JlumnGO+rUYDVpeIjyQ96no4LSPhclrIltFO+znse6gkub2TMBVLc1E7lfWGnlEMVKOEMWD+u4kg==} + /@fluentui/react-message-bar@9.2.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-l/Z2MWgXTcc4OkN5txduZidGghbEXUhN0xKkrhxNnQrQzZLjC9C3tyOKog8/v8rkT7HEDWX6idvzDCAPEIPf4A==} peerDependencies: '@types/react': '>=16.8.0 <19.0.0' '@types/react-dom': '>=16.8.0 <19.0.0' react: '>=16.8.0 <19.0.0' react-dom: '>=16.8.0 <19.0.0' dependencies: - '@fluentui/react-button': 9.3.81(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) + '@fluentui/react-button': 9.3.84(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-transition-group: 4.4.5(react-dom@18.3.1)(react@18.3.1) dev: false - /@fluentui/react-motion-preview@0.5.21(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-I2Lj1RFrq9yVKxYlKrbE7SeluZo08eJrs8S5pL6OVxXJND0avW7pFF2ZOs3EsABW1clcp1S55IgJ9D6nVlnbvw==} + /@fluentui/react-motion-preview@0.5.22(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-ii8y7eQm5NEq+XUs9ul1AtiwF40l8DBKkEbvrm4Q1nd/pwl8Je4Aw2lzI0DnSS8NbKkZyGcdnhZ0HKZ6ap/auQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) + '@swc/helpers': 0.5.11 + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@fluentui/react-motion@9.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-gM38DObOXXEcE1xUe/c2bDd4J4wWwEeHghuIMOlQ+yElr8F4906bEv+gIlEbfSdACGDJ3SWixhGkxlAoAjaBow==} + peerDependencies: + '@types/react': '>=16.8.0 <19.0.0' + '@types/react-dom': '>=16.8.0 <19.0.0' + react: '>=16.8.0 <19.0.0' + react-dom: '>=16.8.0 <19.0.0' + dependencies: + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + react-is: 17.0.2 dev: false - /@fluentui/react-overflow@9.1.20(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-dBIzGF+beNxNUlVFtYaTDFCOIERMrAlDmvvGf35pV+/rQTsgTYqqB9xEl9L8VNHbgb5bt7ApSMPEZBaA6Rna4A==} + /@fluentui/react-overflow@9.1.22(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-h+mFyOdozdlyd0F7gzqMHyKk6jFgyAZutBwtMKiocxSSzyU44G5ZUS3hVAY6+qnVk7Ft8DkjHOZybv85naXuGA==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/priority-overflow': 9.1.12 - '@fluentui/react-context-selector': 9.1.60(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/priority-overflow': 9.1.13 + '@fluentui/react-context-selector': 9.1.62(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6120,23 +7179,23 @@ packages: - scheduler dev: false - /@fluentui/react-persona@9.2.86(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-mlVWKcy5puQH46bB7zpli8YcbeUvzuEbn3R9+A3uX8HIQbVXsMoObSmB5K7ct0Bsw9kytvxMI0xufMGB4anR9w==} + /@fluentui/react-persona@9.2.89(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-WzQ9amNhtkKNP00Uf/5xopyci+Zo1oOg8uEkWhT69PwBYLdeLHu7RF5QFPz4U/HmlW8waR8vbH25GSHD2oo9oA==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-avatar': 9.6.27(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-badge': 9.2.36(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) + '@fluentui/react-avatar': 9.6.30(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-badge': 9.2.38(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6144,8 +7203,8 @@ packages: - scheduler dev: false - /@fluentui/react-popover@9.9.9(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-mDROFucfX/aNquI6kvO0mj2kkyJZvDtpim9cPvsDQqc0ZHRKvBycU3GXKf0owtpmQQzzrZmOSKCp2+8le2DW+w==} + /@fluentui/react-popover@9.9.12(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-oyNiU/NIrRV7N/JUIyX0IZgQSBgrYZE4C4GEpxCkB/wd8IYuF4ws/hm18WMl8NomItiC04mMfOcaB/VH4/JS9A==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' @@ -6153,18 +7212,18 @@ packages: react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-aria': 9.11.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-context-selector': 9.1.60(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-portal': 9.4.25(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-positioning': 9.15.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-aria': 9.12.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-context-selector': 9.1.62(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-portal': 9.4.28(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-positioning': 9.15.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6172,63 +7231,63 @@ packages: - scheduler dev: false - /@fluentui/react-portal@9.4.25(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-wPVfEWrPPtrkaGCl7ZV10FcXTaMkzVA8mw8ZkV94lpWKT6aBLIUYYB40lDG1FbCdSQsY2Nof/Mcvruu/vX51dw==} + /@fluentui/react-portal@9.4.28(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-QtG/rVQ0ekF7irZDlI5KKQqmeT7I9aVsawP5E2/XISejVwFc5AGboPlXELldhGqgWx0M3nNRNVk1QdKkc0PlEQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - use-disposable: 1.0.2(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + use-disposable: 1.0.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) dev: false - /@fluentui/react-positioning@9.15.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-ZRaiEOELH20xdHiFdqyF7DLlHivOFNHsyguPi4BBtZbStJ9tF92GrYFf7EuYKxaaR0jeeLa4ZgZRSWRzAiMBpg==} + /@fluentui/react-positioning@9.15.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-hW9CGHLlz5q+IlBdpTh1xtj2OZZ6abPcDQ4WjxWneWmG3jAf4sFkwS8ylvSZ7i7QcUk+ckVuCiuJsc/GjcRzKQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@floating-ui/devtools': 0.2.1(@floating-ui/dom@1.6.5) - '@floating-ui/dom': 1.6.5 - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) + '@floating-ui/devtools': 0.2.1(@floating-ui/dom@1.6.7) + '@floating-ui/dom': 1.6.7 + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@fluentui/react-progress@9.1.76(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-EltkWoM/gL1e0MpYvuEFX+u2wjEol8EucG7kfMlqMy9qGHipxYejwZCmIq7GqmrfRF8lMdEboTGipf5FjUQUkQ==} + /@fluentui/react-progress@9.1.79(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-NBHnpcOKQ9OOKnAIVd3HW4cn/yv7xjureJxn8EM2Om7ZBPS5HrKJqZHwJVrUE/QJ4WssTfiU8MipKwWwot+8Vg==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-field': 9.1.66(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) + '@fluentui/react-field': 9.1.68(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6236,47 +7295,47 @@ packages: - scheduler dev: false - /@fluentui/react-provider@9.16.0(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-mYpJq7p3o7b7fAIZn6dvJtO23dioqIOV8HotTIetcsixk4AbtBMnfKme0i3kq+CM7xhUeBpdDB5mLs5aZTnYtQ==} + /@fluentui/react-provider@9.16.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-rF3FFvqsXPshpgk+nq1sxwzysFKRPFM0fV872qP/kHiyUU7IpEyRU8HcSU5j8sFgpRSNVatAjiD0I+rvy6ekjg==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/core': 1.16.0 - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/core': 1.17.0 + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@fluentui/react-radio@9.2.21(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-ILdTh6o+JjmOQ/1UDj0W2iznDWucA65hZJZM9mEp0W/AM2OuNSXU9lJ/BG6z2aUpj5ec1jkIz+/GzQ7s7PJPxw==} + /@fluentui/react-radio@9.2.24(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-Wl19e4CQo4Fv2A+x0ta3rS2F1OMTL7mF4qVfdfhdTOTH2J/0WmmFPrz26E2ZhqENKivIv1+NXEV/KgpPFbWF0w==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-field': 9.1.66(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-label': 9.1.70(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-field': 9.1.68(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-label': 9.1.71(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6284,43 +7343,43 @@ packages: - scheduler dev: false - /@fluentui/react-rating@9.0.9(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-OZ2bMg5GO32NZrQfX72jRKAzDxLm/nX0G1TCNV9Fx4VvwFquG/aRQr9KUh4BNbs2Fi2oPFFbpPi1FWVQnsM51w==} + /@fluentui/react-rating@9.0.12(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-d7fIVckXzdno4eXdN/bv9mdarvVxNh54CJJVO3/aNK8dfrcqH9NXPp4bCg+lCAYYr8fQVbe25OiUUFhYtaOJ+w==} peerDependencies: '@types/react': '>=16.8.0 <19.0.0' '@types/react-dom': '>=16.8.0 <19.0.0' react: '>=16.8.0 <19.0.0' react-dom: '>=16.8.0 <19.0.0' dependencies: - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@fluentui/react-search@9.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-TJm0dDbkpvbCdeK6W20iqY22R+3aAylBpOMCbtVcpKDWvwz8Q8hplJF1QzHG26PdO7sB6X4HjcFYgO9wDqHfEQ==} + /@fluentui/react-search@9.0.8(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-Zbb3pUjLCeEUzxy2WS+gsZsk8PGLUHAeW8RWHSIsHJEe4zZmNfJxv1PI8DrOd3a08UiOfR5q5PixZ32oCWWtUg==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-input': 9.4.76(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-input': 9.4.79(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6328,23 +7387,23 @@ packages: - scheduler dev: false - /@fluentui/react-select@9.1.76(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-VOfKDFmHeqEAjSgxkTd2UiIEdiCD99uPsCbgRUeSGzD+9Rsbxs5aMnSWclH+XuTliLrTWSDHim8k4IGdg4lYbA==} + /@fluentui/react-select@9.1.79(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-E9EuUIUy2MzHRkQPmXyJp5txVo5EYH+lNoV3xgZKd9zijg7QQJWxfgbNJqddubmnRdr8MtBt/fM4qmHia5cgSQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-field': 9.1.66(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) + '@fluentui/react-field': 9.1.68(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6352,7 +7411,7 @@ packages: - scheduler dev: false - /@fluentui/react-shared-contexts@9.19.0(@types/react@18.3.2)(react@18.3.1): + /@fluentui/react-shared-contexts@9.19.0(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-KWHRVuKSvQpFdGGxj802AwoHlq7VyFKaj89cgX2pBu2ZqZrdpxkbkfFQIvxLoaZ/Bzm7fWXVQrDYpj+8JHAfCA==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' @@ -6360,26 +7419,26 @@ packages: dependencies: '@fluentui/react-theme': 9.1.17 '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 react: 18.3.1 dev: false - /@fluentui/react-skeleton@9.1.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-mFRld+IoXJLBKC+n/e/f2FCxoHbkubKmK3xHxHCXM9n8NHltKBOuJT7lh7IEpV1F/NAz8+y7ijHFIVKhoDCsuA==} + /@fluentui/react-skeleton@9.1.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-2Ve7NZ1LyssPgztw+K55znY/uiZRx/g8Iif7L6ETvvcn3nE3WZFWISLfVdCF7SQBTa+oV+gDBjUKpEZcFA512Q==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-field': 9.1.66(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) + '@fluentui/react-field': 9.1.68(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6387,23 +7446,23 @@ packages: - scheduler dev: false - /@fluentui/react-slider@9.1.83(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-jOyReDWqDrHlBdb7pcbMLaxqmspMs7nOsgO8hQGZAtT7s0JLH3t7xkyOH+ggE8b9UwIEK0lxS7owSY5CcoU54Q==} + /@fluentui/react-slider@9.1.86(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-icgE/5iYx69DQLcOlPicATxQJcNBYg2uJGvVgzVhhLuXy87mkqv7Lh5YFfmcMpMSWbOhoEbDle73MMTDu8UC9g==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-field': 9.1.66(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-field': 9.1.68(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6411,8 +7470,8 @@ packages: - scheduler dev: false - /@fluentui/react-spinbutton@9.2.76(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-8NUsYOSLJRP1hxcK+y/9wwhB93ytXDAUYR8K7iPfsUMYh7wPWvs9Q/36JWGgIkBXJrWcxmU7QEt4NTkCchmweg==} + /@fluentui/react-spinbutton@9.2.79(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-qqe7eQ4ra3Iu/RhZHXxjnYqhH9GNPr1FlTSqPRIHa7Kf0/0Hrig+gLQYw7N5BXzDSU4+cz29/9PyXowdg5mBLQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' @@ -6420,15 +7479,15 @@ packages: react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-field': 9.1.66(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) + '@fluentui/react-field': 9.1.68(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6436,45 +7495,45 @@ packages: - scheduler dev: false - /@fluentui/react-spinner@9.4.8(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-smd2VVxZrHj6w8nWFoqRZ21SDtKuYM3pInq2sY4BeyikmViTY5CNQ6BFDxk4+CY9AOuMMaGttjCW8J3uYGMxkA==} + /@fluentui/react-spinner@9.4.9(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-+X9OmvDIhdwdiKO7I0CKrgjiS5Y2DzSVgkONMmpuu6u+DywhgLWh1JLatCiEl8Qp2/cBlg32XNfBl0lAfQHHFw==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-label': 9.1.70(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-label': 9.1.71(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@fluentui/react-swatch-picker@9.1.0(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-y00ukuMnf0YxWcQ7OYQfcEmz+YS2UxUQfvRoEqQQh10AENBvOMnP7bC89lSBnTBxlSWV1MnvDCqbTZ+YZlOBUA==} + /@fluentui/react-swatch-picker@9.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-L8EE6jTOzQe1jLsZuZCWEUiNq3bkOYrmvwtHvHRCBLcdD6+fOcYxvZP9PIBLgkj+hNSf7E4A/8Kol/SOn419Wg==} peerDependencies: '@types/react': '>=16.8.0 <19.0.0' '@types/react-dom': '>=16.8.0 <19.0.0' react: '>=16.8.0 <19.0.0' react-dom: '>=16.8.0 <19.0.0' dependencies: - '@fluentui/react-context-selector': 9.1.60(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-context-selector': 9.1.62(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6482,25 +7541,25 @@ packages: - scheduler dev: false - /@fluentui/react-switch@9.1.83(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-UZfB3J3+sgyU9YKlzXDQBAzF5WXf8q754eTYdfbu1Irev+1WgXwugEM0QI5aJVPmefb9Umzwfsva3HI1UVOFbQ==} + /@fluentui/react-switch@9.1.86(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-tcgkSv+VwT4QzP/wuMT472R5oZJtiUhbLnSgMWGlyuETBMDMF0Vp3SNkp8noalTyNHPnrJgylKgUuKtt3MyL1Q==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-field': 9.1.66(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-label': 9.1.70(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-field': 9.1.68(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-label': 9.1.71(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6508,8 +7567,8 @@ packages: - scheduler dev: false - /@fluentui/react-table@9.15.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-tyBVYIYFYS2HD1pYwOIFyMDb9EdUkCG2kIolHjrSByNkDwYjaQSGabupn1EH9G/eCFkSTFqGwNnqDnjYzzDqOg==} + /@fluentui/react-table@9.15.8(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-awEJcDF+LX0xCpIArGBRwUh4/4vw0rJcwVnmlujn2DoYBwasUoyL9QYZF2W5U+XnHazYBgX7Bm+JMJ7awVdSVQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' @@ -6517,20 +7576,20 @@ packages: react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-aria': 9.11.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-avatar': 9.6.27(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-checkbox': 9.2.26(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-context-selector': 9.1.60(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-radio': 9.2.21(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-aria': 9.12.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-avatar': 9.6.30(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-checkbox': 9.2.29(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-context-selector': 9.1.62(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-radio': 9.2.24(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6538,23 +7597,23 @@ packages: - scheduler dev: false - /@fluentui/react-tabs@9.4.21(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-MRBjWIh+qXXRmdYz+inUEb13kc77cl5Phm4gdBPRrXje/A78gOVb+/B2TqalPHH1GMPSpYd0BpGIvxuKJm2eYg==} + /@fluentui/react-tabs@9.4.24(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-HBy+TNI0XoC1WqLjIAWokW5HeCD59h//Cy+nHELI4xSVc3gbWDb2KLRptDLYawcDT9hsUnwxtnSXmQgnGLhH2A==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-context-selector': 9.1.60(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-context-selector': 9.1.62(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6562,29 +7621,29 @@ packages: - scheduler dev: false - /@fluentui/react-tabster@9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-WmPBeR2U3htAHKKmeL5+I8vIKyg5cRNCfrORpSpVlfZ0I/eTL+dRJJBRtTmOQ9VfPCNB7NF3VVpnR5EgcRbouw==} + /@fluentui/react-tabster@9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-R61y6/kRWjA8UP9F/wMvOBtOFM1frgiQA0zF49BfrQvwnJMFEYidaLsc1e6IkNS34IiwpsESaIIOlDMn5mUXzg==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 keyborg: 2.6.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - tabster: 7.1.3 + tabster: 8.0.0 dev: false - /@fluentui/react-tag-picker@9.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-Zjlk/FAr1wCeCJk8fIjXPK3eInimsB64PhgHTRfR2PfvgtDgly0K1cZBStsm2c6SdEkJDkNqChFyvvUiVyb8fw==} + /@fluentui/react-tag-picker@9.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-S4RRX4TMm/EwxaHIDIrTJMIv4YXa849BTQuS9WUO/QKO4dlRiC1E5LdS8jm6Fo0wQRr/MVasG6EkGJ8atm6ruw==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' @@ -6592,22 +7651,22 @@ packages: react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-aria': 9.11.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-combobox': 9.11.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-context-selector': 9.1.60(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-field': 9.1.66(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-portal': 9.4.25(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-positioning': 9.15.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-tags': 9.3.6(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-aria': 9.12.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-combobox': 9.11.8(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-context-selector': 9.1.62(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-field': 9.1.68(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-portal': 9.4.28(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-positioning': 9.15.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-tags': 9.3.9(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6615,8 +7674,8 @@ packages: - scheduler dev: false - /@fluentui/react-tags@9.3.6(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-oSkARy6deCv5oXCLlHM4Z/MaKN82jaPhUxXbgGsc//cu4JUQNc0VIXoSYf/Y9HEz9IeEV/Id2yXsBnbkl9KaJA==} + /@fluentui/react-tags@9.3.9(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-hwriI1Uj4rI5qQ0A8FrAlCHJ9pZCo8mwWM0VTKpssN5vK4nqcSpiMq91mw810+GUlNiXnTW+gZCn0RlaryCQFw==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' @@ -6624,17 +7683,17 @@ packages: react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-aria': 9.11.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-avatar': 9.6.27(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-aria': 9.12.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-avatar': 9.6.30(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6642,27 +7701,27 @@ packages: - scheduler dev: false - /@fluentui/react-teaching-popover@9.1.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-IJuOaLzAAqxK15JpJrS7KZTSV40P4fW2friNLf0vgGbvn0n4SiFlnBEmec75Mk6NDOxWEGDGVgSywQw7HXgjpA==} + /@fluentui/react-teaching-popover@9.1.8(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-idi9GeIm4Hl3pcnELhN1mxvK9eIVCqdEES1IeTSGpEUHsjGiRZCmBV+Z6upv9HSpiTM+zJnCQPXCwp7x5KDP9Q==} peerDependencies: '@types/react': '>=16.8.0 <19.0.0' '@types/react-dom': '>=16.8.0 <19.0.0' react: '>=16.8.0 <19.0.0' react-dom: '>=16.8.0 <19.0.0' dependencies: - '@fluentui/react-aria': 9.11.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-button': 9.3.81(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-context-selector': 9.1.60(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-popover': 9.9.9(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-aria': 9.12.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-button': 9.3.84(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-context-selector': 9.1.62(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-popover': 9.9.12(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6671,42 +7730,42 @@ packages: - scheduler dev: false - /@fluentui/react-text@9.4.18(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-ntKfnidKVFpqJsC/Xyn4dygAjx+/SjqJOp3UmKCZirAckCWWokwmO31v8eV8Mgf8f9tKpQu2GOvuEjI5eBBqrw==} + /@fluentui/react-text@9.4.20(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-9ulw77qtUfxmgFTIC3UwzCyw0mn9xWV16VZ3j8MzDeLOapvGUz4UnvOV8aLXIWmI7VbeEVRRcQ5eFMvL6dbhRQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@fluentui/react-textarea@9.3.76(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-nSxR+LSM86HC2KlZwAimOA+2nAKziESCvs43hDw8lPdrBsMBFm97whHvU0RMozKA8nKFPInP36TR9QlQy9f52A==} + /@fluentui/react-textarea@9.3.79(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-7nAMBINpKWgvftXvKdynppiLhv0+O97bMwoLyhUdHnBu0fJi/2yYXlsCh1RFAaBg07qc+wqdQX1TdI4ad2nluQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-field': 9.1.66(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) + '@fluentui/react-field': 9.1.68(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6721,8 +7780,8 @@ packages: '@swc/helpers': 0.5.11 dev: false - /@fluentui/react-toast@9.3.43(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-CtPKu+Xaugon4WnztQDQALrO7rkcfWrWX0MElWz3/7YZ7vWiN9hVmrjy+QuIrgtYP8sb0HhYxgNPvLV/5VMa2A==} + /@fluentui/react-toast@9.3.47(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-sFvdp8OOniYMasIIQB2kwZkezb8lx7mw14RtnPyUG/E8bo5j96uVEZWVH8nAbZGezxSi2X75WZbplla55vhJ6Q==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' @@ -6730,43 +7789,43 @@ packages: react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-aria': 9.11.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-portal': 9.4.25(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-aria': 9.12.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-motion': 9.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-portal': 9.4.28(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-transition-group: 4.4.5(react-dom@18.3.1)(react@18.3.1) dev: false - /@fluentui/react-toolbar@9.1.84(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-9L0ZnusI+uDEYxZ8mNTR2br9odIgiU3gDGXmSTQTUjdcH0vJNbbVqew6G1Gm2KCwdXjIjwPSTDOPNMbuhFiHHQ==} + /@fluentui/react-toolbar@9.1.87(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-jxi5cSw4tj++goEjz85prAJdsfRSqZhY0IV4UAhYvcQLaNaR1mqdJzjynXWHwf5SyKj7u4lsgfJ8XYibBL9/JA==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-button': 9.3.81(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-context-selector': 9.1.60(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-divider': 9.2.69(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-radio': 9.2.21(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-button': 9.3.84(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-context-selector': 9.1.62(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-divider': 9.2.70(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-radio': 9.2.24(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6774,8 +7833,8 @@ packages: - scheduler dev: false - /@fluentui/react-tooltip@9.4.28(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-zhiKRiKE2uh8wNPwJ0oTPo7lLt693wdKvFua9NryHmkNyyWleMFXa+gkF/dcXxyAh6zPuH8aNQT6rN/s738Vhw==} + /@fluentui/react-tooltip@9.4.31(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-e6DZgYWDwzt1i0guZjUIrBxuX8sQ1KZg/snJ4puM6IWpbUC2dLahBvOdJbAZopyFRwhsvP37Cey4nTrwhhDVSA==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' @@ -6783,23 +7842,23 @@ packages: react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-portal': 9.4.25(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-positioning': 9.15.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-portal': 9.4.28(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-positioning': 9.15.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@fluentui/react-tree@9.5.0(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): - resolution: {integrity: sha512-QOt37ZOpO+aZUnTjwZqqXNuDpyRodR7GEuI6Nf9fAZhw8679bDBrFdXGriawltVXXegtJ1QJFEJhbV858m0PKQ==} + /@fluentui/react-tree@9.7.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0): + resolution: {integrity: sha512-zyUW0NwuafZE1618ssOmBZidHg6Luccgmz67XO3zhv5VlVYvMnr1ci55tgyp4L1SY2P/6hVB216EVK0c7oJA6w==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' @@ -6807,21 +7866,21 @@ packages: react-dom: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-aria': 9.11.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-avatar': 9.6.27(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-button': 9.3.81(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) - '@fluentui/react-checkbox': 9.2.26(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-context-selector': 9.1.60(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-icons': 2.0.240(react@18.3.1) - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-radio': 9.2.21(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-tabster': 9.21.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-aria': 9.12.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-avatar': 9.6.30(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-button': 9.3.84(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-checkbox': 9.2.29(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-context-selector': 9.1.62(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-icons': 2.0.247(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-radio': 9.2.24(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(scheduler@0.23.0) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-tabster': 9.22.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/react-theme': 9.1.17 - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6829,33 +7888,33 @@ packages: - scheduler dev: false - /@fluentui/react-utilities@9.18.9(@types/react@18.3.2)(react@18.3.1): - resolution: {integrity: sha512-no2k8vxNiJt7SbSzB8H4aHNTcKK08Bzqu6kbwrUXMEklQxEoC+e2BJ+2nzHJUdFqR4WUq0380dDFjjrBimIiWw==} + /@fluentui/react-utilities@9.18.10(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-1yUFZrJyBO1qizHa20S35JATQwr0QoTZ5vBmov0K49BWxDpJxpiAClMpFaMlw0hj9cI7HMLFF8Y87OhUYvaheQ==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' react: '>=16.14.0 <19.0.0' dependencies: '@fluentui/keyboard-keys': 9.0.7 - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 react: 18.3.1 dev: false - /@fluentui/react-virtualizer@9.0.0-alpha.78(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-UVMfuvuLxNa5W1kUHOdAfUoctxoURx9Zz+r0Hl2mVEE6sXwoCbuy2C9xzZjppzyEta40bTRhHbxpX63stbm8Iw==} + /@fluentui/react-virtualizer@9.0.0-alpha.79(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-L2X9PKaH88VcA5LE7DxsmDZu3qy9N8fUIrvoYc4x6WXa2cAefwknvkPj/tezDvkTz3lttck5/MlEeu88qpUmtg==} peerDependencies: '@types/react': '>=16.14.0 <19.0.0' '@types/react-dom': '>=16.9.0 <19.0.0' react: '>=16.14.0 <19.0.0' react-dom: '>=16.14.0 <19.0.0' dependencies: - '@fluentui/react-jsx-runtime': 9.0.38(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.2)(react@18.3.1) - '@fluentui/react-utilities': 9.18.9(@types/react@18.3.2)(react@18.3.1) - '@griffel/react': 1.5.22(react@18.3.1) + '@fluentui/react-jsx-runtime': 9.0.39(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-shared-contexts': 9.19.0(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-utilities': 9.18.10(@types/react@18.3.3)(react@18.3.1) + '@griffel/react': 1.5.23(react@18.3.1) '@swc/helpers': 0.5.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6867,29 +7926,29 @@ packages: '@swc/helpers': 0.5.11 dev: false - /@griffel/core@1.16.0: - resolution: {integrity: sha512-7xy9sWxmyFok0chZXJ91z4VH0HdwhAPUln5Ctpg6S/WRKoPhpIg9EieiL5CRFhIp1krPIncJSes4WqaB9OKiow==} + /@griffel/core@1.17.0: + resolution: {integrity: sha512-OhLMYQ9zXVpKh3DULgK0Olsm1Xw5cvQuL7BV3UCWoJttAWGfrdIvSMxGCJ2FpWVyS/OBWoG4BTYh3oHTgxBWCQ==} dependencies: '@emotion/hash': 0.9.1 - '@griffel/style-types': 1.1.0 + '@griffel/style-types': 1.2.0 csstype: 3.1.3 rtl-css-js: 1.16.1 stylis: 4.3.2 - tslib: 2.6.2 + tslib: 2.6.3 dev: false - /@griffel/react@1.5.22(react@18.3.1): - resolution: {integrity: sha512-QZWo73e+7oh+aTxCJzCe9SNUszM0+lHG9p1LoEQ5MZdvtT8sur1M4cz+TVTTgUXqUBnHBf1TIYXvVoRxiZhy8Q==} + /@griffel/react@1.5.23(react@18.3.1): + resolution: {integrity: sha512-pOOh+h+2JibSVlRfN6rzIigkPm6HONxMHEN3IWLB3gVU7OKEQHt/EOK+1ZePMzaMILZaaFDvuwCaKCkEq6QQ/Q==} peerDependencies: react: '>=16.8.0 <19.0.0' dependencies: - '@griffel/core': 1.16.0 + '@griffel/core': 1.17.0 react: 18.3.1 - tslib: 2.6.2 + tslib: 2.6.3 dev: false - /@griffel/style-types@1.1.0: - resolution: {integrity: sha512-cINLeC14/YUHlrtL96vzCrsFr19WUO0i9DuljBtX5S7B8pMyiNf6Pw0htjroLojvfD2okhdsr9CHwpUxz1u4kw==} + /@griffel/style-types@1.2.0: + resolution: {integrity: sha512-x166MNw0vWe5l5qhinfNT4eyWOaP48iFzPyFOfIB0/BVidKTWsEe5PmqRJDDtrJFS3VHhd/tE0oM6tkEMh2tsg==} dependencies: csstype: 3.1.3 dev: false @@ -6933,7 +7992,6 @@ packages: strip-ansi-cjs: /strip-ansi@6.0.1 wrap-ansi: 8.1.0 wrap-ansi-cjs: /wrap-ansi@7.0.0 - dev: true /@istanbuljs/schema@0.1.3: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} @@ -6958,7 +8016,7 @@ packages: chalk: 4.1.2 dev: false - /@joshwooding/vite-plugin-react-docgen-typescript@0.3.1(typescript@5.4.5)(vite@5.2.11): + /@joshwooding/vite-plugin-react-docgen-typescript@0.3.1(typescript@5.5.3)(vite@5.3.2): resolution: {integrity: sha512-pdoMZ9QaPnVlSM+SdU/wgg0nyD/8wQ7y90ttO2CMCyrrm7RxveYIJ5eNfjPaoMFqW41LZra7QO9j+xV4Y18Glw==} peerDependencies: typescript: '>= 4.3.x' @@ -6970,9 +8028,9 @@ packages: glob: 7.2.3 glob-promise: 4.2.2(glob@7.2.3) magic-string: 0.27.0 - react-docgen-typescript: 2.2.2(typescript@5.4.5) - typescript: 5.4.5 - vite: 5.2.11(@types/node@18.11.19) + react-docgen-typescript: 2.2.2(typescript@5.5.3) + typescript: 5.5.3 + vite: 5.3.2(@types/node@18.11.19) dev: true /@jridgewell/gen-mapping@0.3.5: @@ -7038,7 +8096,7 @@ packages: remark-parse: 11.0.0 remark-rehype: 11.1.0 source-map: 0.7.4 - unified: 11.0.4 + unified: 11.0.5 unist-util-position-from-estree: 2.0.0 unist-util-stringify-position: 4.0.0 unist-util-visit: 5.0.0 @@ -7046,14 +8104,14 @@ packages: transitivePeerDependencies: - supports-color - /@mdx-js/react@3.0.1(@types/react@18.3.2)(react@18.3.1): + /@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==} peerDependencies: '@types/react': '>=16' react: '>=16' dependencies: '@types/mdx': 2.0.12 - '@types/react': 18.3.2 + '@types/react': 18.3.3 react: 18.3.1 dev: false @@ -7133,8 +8191,8 @@ packages: dependencies: agent-base: 7.1.1 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.4 - lru-cache: 10.2.2 + https-proxy-agent: 7.0.5 + lru-cache: 10.3.0 socks-proxy-agent: 8.0.3 transitivePeerDependencies: - supports-color @@ -7152,7 +8210,7 @@ packages: engines: {node: ^16.14.0 || >=18.0.0} dependencies: '@npmcli/promise-spawn': 7.0.2 - lru-cache: 10.2.2 + lru-cache: 10.3.0 npm-pick-manifest: 9.0.1 proc-log: 4.2.0 promise-inflight: 1.0.1 @@ -7182,7 +8240,7 @@ packages: engines: {node: ^16.14.0 || >=18.0.0} dependencies: '@npmcli/git': 5.0.7 - glob: 10.3.15 + glob: 10.4.2 hosted-git-info: 7.0.2 json-parse-even-better-errors: 3.0.2 normalize-package-data: 6.0.1 @@ -7585,24 +8643,18 @@ packages: aggregate-error: 5.0.0 dev: true - /@opentelemetry/api@1.8.0: - resolution: {integrity: sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==} - engines: {node: '>=8.0.0'} - dev: false - /@pkgjs/parseargs@0.11.0: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} requiresBuild: true - dev: true optional: true - /@playwright/test@1.44.0: - resolution: {integrity: sha512-rNX5lbNidamSUorBhB4XZ9SQTjAqfe5M+p37Z8ic0jPFBMo5iCtQz1kRWkEMg+rYOKSlVycpQmpqjSFq7LXOfg==} - engines: {node: '>=16'} + /@playwright/test@1.45.0: + resolution: {integrity: sha512-TVYsfMlGAaxeUllNkywbwek67Ncf8FRGn8ZlRdO291OL3NjG9oMbfVhyP82HQF0CZLMrYsvesqoUekxdWuF9Qw==} + engines: {node: '>=18'} hasBin: true dependencies: - playwright: 1.44.0 + playwright: 1.45.0 dev: true /@pnpm/cli-meta@5.0.1: @@ -7782,7 +8834,7 @@ packages: resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==} engines: {node: '>=12.17'} dependencies: - bole: 5.0.12 + bole: 5.0.13 ndjson: 2.0.0 /@pnpm/manifest-utils@5.0.1(@pnpm/logger@5.0.0): @@ -7926,7 +8978,7 @@ packages: /@polka/url@1.0.0-next.25: resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} - /@rollup/plugin-alias@5.1.0(rollup@4.17.2): + /@rollup/plugin-alias@5.1.0(rollup@4.18.0): resolution: {integrity: sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -7935,28 +8987,28 @@ packages: rollup: optional: true dependencies: - rollup: 4.17.2 + rollup: 4.18.0 slash: 4.0.0 dev: false - /@rollup/plugin-commonjs@25.0.7(rollup@4.17.2): - resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} - engines: {node: '>=14.0.0'} + /@rollup/plugin-commonjs@26.0.1(rollup@4.18.0): + resolution: {integrity: sha512-UnsKoZK6/aGIH6AdkptXhNvhaqftcjq3zZdT+LY5Ftms6JR06nADcDsYp5hTU9E2lbJUEOhdlY5J4DNTneM+jQ==} + engines: {node: '>=16.0.0 || 14 >= 14.17'} peerDependencies: rollup: ^2.68.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.17.2) + '@rollup/pluginutils': 5.1.0(rollup@4.18.0) commondir: 1.0.1 estree-walker: 2.0.2 - glob: 8.1.0 + glob: 10.4.2 is-reference: 1.2.1 - magic-string: 0.30.8 - rollup: 4.17.2 + magic-string: 0.30.10 + rollup: 4.18.0 - /@rollup/plugin-json@6.1.0(rollup@4.17.2): + /@rollup/plugin-json@6.1.0(rollup@4.18.0): resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -7965,10 +9017,10 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.17.2) - rollup: 4.17.2 + '@rollup/pluginutils': 5.1.0(rollup@4.18.0) + rollup: 4.18.0 - /@rollup/plugin-multi-entry@6.0.1(rollup@4.17.2): + /@rollup/plugin-multi-entry@6.0.1(rollup@4.18.0): resolution: {integrity: sha512-AXm6toPyTSfbYZWghQGbom1Uh7dHXlrGa+HoiYNhQtDUE3Q7LqoUYdVQx9E1579QWS1uOiu+cZRSE4okO7ySgw==} engines: {node: '>=14.0.0'} peerDependencies: @@ -7977,12 +9029,12 @@ packages: rollup: optional: true dependencies: - '@rollup/plugin-virtual': 3.0.2(rollup@4.17.2) + '@rollup/plugin-virtual': 3.0.2(rollup@4.18.0) matched: 5.0.1 - rollup: 4.17.2 + rollup: 4.18.0 dev: false - /@rollup/plugin-node-resolve@15.2.3(rollup@4.17.2): + /@rollup/plugin-node-resolve@15.2.3(rollup@4.18.0): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -7991,16 +9043,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.17.2) + '@rollup/pluginutils': 5.1.0(rollup@4.18.0) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 - rollup: 4.17.2 + rollup: 4.18.0 - /@rollup/plugin-replace@5.0.5(rollup@4.17.2): - resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==} + /@rollup/plugin-replace@5.0.7(rollup@4.18.0): + resolution: {integrity: sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 @@ -8008,12 +9060,12 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.17.2) - magic-string: 0.30.8 - rollup: 4.17.2 + '@rollup/pluginutils': 5.1.0(rollup@4.18.0) + magic-string: 0.30.10 + rollup: 4.18.0 dev: true - /@rollup/plugin-typescript@11.1.6(rollup@4.17.2)(typescript@5.4.5): + /@rollup/plugin-typescript@11.1.6(rollup@4.18.0)(typescript@5.5.3): resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -8026,13 +9078,13 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.17.2) + '@rollup/pluginutils': 5.1.0(rollup@4.18.0) resolve: 1.22.8 - rollup: 4.17.2 - typescript: 5.4.5 + rollup: 4.18.0 + typescript: 5.5.3 dev: true - /@rollup/plugin-virtual@3.0.2(rollup@4.17.2): + /@rollup/plugin-virtual@3.0.2(rollup@4.18.0): resolution: {integrity: sha512-10monEYsBp3scM4/ND4LNH5Rxvh3e/cVeL3jWTgZ2SrQ+BmUoQcopVQvnaMcOnykb1VkxUFuDAN+0FnpTFRy2A==} engines: {node: '>=14.0.0'} peerDependencies: @@ -8041,10 +9093,10 @@ packages: rollup: optional: true dependencies: - rollup: 4.17.2 + rollup: 4.18.0 dev: false - /@rollup/pluginutils@5.1.0(rollup@4.17.2): + /@rollup/pluginutils@5.1.0(rollup@4.18.0): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -8056,115 +9108,115 @@ packages: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 4.17.2 + rollup: 4.18.0 - /@rollup/rollup-android-arm-eabi@4.17.2: - resolution: {integrity: sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==} + /@rollup/rollup-android-arm-eabi@4.18.0: + resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} cpu: [arm] os: [android] requiresBuild: true optional: true - /@rollup/rollup-android-arm64@4.17.2: - resolution: {integrity: sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==} + /@rollup/rollup-android-arm64@4.18.0: + resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} cpu: [arm64] os: [android] requiresBuild: true optional: true - /@rollup/rollup-darwin-arm64@4.17.2: - resolution: {integrity: sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==} + /@rollup/rollup-darwin-arm64@4.18.0: + resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} cpu: [arm64] os: [darwin] requiresBuild: true optional: true - /@rollup/rollup-darwin-x64@4.17.2: - resolution: {integrity: sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==} + /@rollup/rollup-darwin-x64@4.18.0: + resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} cpu: [x64] os: [darwin] requiresBuild: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.17.2: - resolution: {integrity: sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==} + /@rollup/rollup-linux-arm-gnueabihf@4.18.0: + resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} cpu: [arm] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-arm-musleabihf@4.17.2: - resolution: {integrity: sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==} + /@rollup/rollup-linux-arm-musleabihf@4.18.0: + resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} cpu: [arm] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.17.2: - resolution: {integrity: sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==} + /@rollup/rollup-linux-arm64-gnu@4.18.0: + resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-arm64-musl@4.17.2: - resolution: {integrity: sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==} + /@rollup/rollup-linux-arm64-musl@4.18.0: + resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-powerpc64le-gnu@4.17.2: - resolution: {integrity: sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==} + /@rollup/rollup-linux-powerpc64le-gnu@4.18.0: + resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} cpu: [ppc64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.17.2: - resolution: {integrity: sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==} + /@rollup/rollup-linux-riscv64-gnu@4.18.0: + resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} cpu: [riscv64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-s390x-gnu@4.17.2: - resolution: {integrity: sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==} + /@rollup/rollup-linux-s390x-gnu@4.18.0: + resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} cpu: [s390x] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-x64-gnu@4.17.2: - resolution: {integrity: sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==} + /@rollup/rollup-linux-x64-gnu@4.18.0: + resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-x64-musl@4.17.2: - resolution: {integrity: sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==} + /@rollup/rollup-linux-x64-musl@4.18.0: + resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.17.2: - resolution: {integrity: sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==} + /@rollup/rollup-win32-arm64-msvc@4.18.0: + resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} cpu: [arm64] os: [win32] requiresBuild: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.17.2: - resolution: {integrity: sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==} + /@rollup/rollup-win32-ia32-msvc@4.18.0: + resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} cpu: [ia32] os: [win32] requiresBuild: true optional: true - /@rollup/rollup-win32-x64-msvc@4.17.2: - resolution: {integrity: sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==} + /@rollup/rollup-win32-x64-msvc@4.18.0: + resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} cpu: [x64] os: [win32] requiresBuild: true @@ -8218,6 +9270,10 @@ packages: - '@types/node' dev: true + /@shikijs/core@1.10.0: + resolution: {integrity: sha512-BZcr6FCmPfP6TXaekvujZcnkFmJHZ/Yglu97r/9VjzVndQA56/F4WjUKtJRQUnK59Wi7p/UTAOekMfCJv7jnYg==} + dev: true + /@sideway/address@4.1.5: resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} dependencies: @@ -8304,10 +9360,10 @@ packages: micromark-util-symbol: 1.1.0 dev: false - /@storybook/addon-actions@8.1.3: - resolution: {integrity: sha512-XG6clFT/lPOHEm/tHdWO3E5G28HIock2272BZNr15+DqVTRYyGRhuFQKxPb+CdRWCpT1VQnWS+L9S1+95wDlJw==} + /@storybook/addon-actions@8.1.11: + resolution: {integrity: sha512-jqYXgBgOVInStOCk//AA+dGkrfN8R7rDXA4lyu82zM59kvICtG9iqgmkSRDn0Z3zUkM+lIHZGoz0aLVQ8pxsgw==} dependencies: - '@storybook/core-events': 8.1.3 + '@storybook/core-events': 8.1.11 '@storybook/global': 5.0.0 '@types/uuid': 9.0.8 dequal: 2.0.3 @@ -8315,13 +9371,13 @@ packages: uuid: 9.0.1 dev: true - /@storybook/builder-manager@8.1.3(prettier@3.2.5): - resolution: {integrity: sha512-VIYgF6PreiteJMGlz716P27yyL/JF1dR7M2htVJij5IP2X6HUgyzFXScElKljX9fETq7vig+UZWksZ2M2Q9dYg==} + /@storybook/builder-manager@8.1.11(prettier@3.3.2): + resolution: {integrity: sha512-U7bmed4Ayg+OlJ8HPmLeGxLTHzDY7rxmxM4aAs4YL01fufYfBcjkIP9kFhJm+GJOvGm+YJEUAPe5mbM1P/bn0Q==} dependencies: '@fal-works/esbuild-plugin-global-externals': 2.1.2 - '@storybook/core-common': 8.1.3(prettier@3.2.5) - '@storybook/manager': 8.1.3 - '@storybook/node-logger': 8.1.3 + '@storybook/core-common': 8.1.11(prettier@3.3.2) + '@storybook/manager': 8.1.11 + '@storybook/node-logger': 8.1.11 '@types/ejs': 3.1.5 '@yarnpkg/esbuild-plugin-pnp': 3.0.0-rc.15(esbuild@0.20.2) browser-assert: 1.2.1 @@ -8338,8 +9394,8 @@ packages: - supports-color dev: true - /@storybook/builder-vite@8.1.3(prettier@3.2.5)(typescript@5.4.5)(vite@5.2.11): - resolution: {integrity: sha512-REfjbsBCMgYLszeyOwmDsI9o0vJSeZ3xnCPBp4DphEX4i889t+jTTxavB4yiDSaK+ALqE8Hk3wfn6AQyIWEuCg==} + /@storybook/builder-vite@8.1.11(prettier@3.3.2)(typescript@5.5.3)(vite@5.3.2): + resolution: {integrity: sha512-hG4eoNMCPgjZ2Ai+zSmk69zjsyEihe75XbJXtYfGRqjMWtz2+SAUFO54fLc2BD5svcUiTeN+ukWcTrwApyPsKg==} peerDependencies: '@preact/preset-vite': '*' typescript: '>= 4.3.x' @@ -8353,56 +9409,56 @@ packages: vite-plugin-glimmerx: optional: true dependencies: - '@storybook/channels': 8.1.3 - '@storybook/client-logger': 8.1.3 - '@storybook/core-common': 8.1.3(prettier@3.2.5) - '@storybook/core-events': 8.1.3 - '@storybook/csf-plugin': 8.1.3 - '@storybook/node-logger': 8.1.3 - '@storybook/preview': 8.1.3 - '@storybook/preview-api': 8.1.3 - '@storybook/types': 8.1.3 + '@storybook/channels': 8.1.11 + '@storybook/client-logger': 8.1.11 + '@storybook/core-common': 8.1.11(prettier@3.3.2) + '@storybook/core-events': 8.1.11 + '@storybook/csf-plugin': 8.1.11 + '@storybook/node-logger': 8.1.11 + '@storybook/preview': 8.1.11 + '@storybook/preview-api': 8.1.11 + '@storybook/types': 8.1.11 '@types/find-cache-dir': 3.2.1 browser-assert: 1.2.1 - es-module-lexer: 1.5.3 + es-module-lexer: 1.5.4 express: 4.19.2 find-cache-dir: 3.3.2 fs-extra: 11.2.0 magic-string: 0.30.10 ts-dedent: 2.2.0 - typescript: 5.4.5 - vite: 5.2.11(@types/node@18.11.19) + typescript: 5.5.3 + vite: 5.3.2(@types/node@18.11.19) transitivePeerDependencies: - encoding - prettier - supports-color dev: true - /@storybook/channels@8.1.3: - resolution: {integrity: sha512-iDoHFX3ty7vhSXegFRevJkQ6cV+QQ1JjDnoXK/SHeloMT26sn5gPtetn3ET9+6ZoFkU05Pf5d0DoywVOfumfcg==} + /@storybook/channels@8.1.11: + resolution: {integrity: sha512-fu5FTqo6duOqtJFa6gFzKbiSLJoia+8Tibn3xFfB6BeifWrH81hc+AZq0lTmHo5qax2G5t8ZN8JooHjMw6k2RA==} dependencies: - '@storybook/client-logger': 8.1.3 - '@storybook/core-events': 8.1.3 + '@storybook/client-logger': 8.1.11 + '@storybook/core-events': 8.1.11 '@storybook/global': 5.0.0 telejson: 7.2.0 tiny-invariant: 1.3.3 dev: true - /@storybook/cli@8.1.3(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-eqzjy7YOIF0WkeUPT5Mv+WKibk3z+IfP0voTKIWzYKAqZ8sD36NQV/lE7bHy0JAPw+rfw1Fq0gMOiFVcx3ZaUQ==} + /@storybook/cli@8.1.11(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-4U48w9C7mVEKrykcPcfHwJkRyCqJ28XipbElACbjIIkQEqaHaOVtP3GeKIrgkoOXe/HK3O4zKWRP2SqlVS0r4A==} hasBin: true dependencies: - '@babel/core': 7.24.5 - '@babel/types': 7.24.5 + '@babel/core': 7.24.7 + '@babel/types': 7.24.7 '@ndelangen/get-tarball': 3.0.9 - '@storybook/codemod': 8.1.3 - '@storybook/core-common': 8.1.3(prettier@3.2.5) - '@storybook/core-events': 8.1.3 - '@storybook/core-server': 8.1.3(prettier@3.2.5)(react-dom@18.3.1)(react@18.3.1) - '@storybook/csf-tools': 8.1.3 - '@storybook/node-logger': 8.1.3 - '@storybook/telemetry': 8.1.3(prettier@3.2.5) - '@storybook/types': 8.1.3 + '@storybook/codemod': 8.1.11 + '@storybook/core-common': 8.1.11(prettier@3.3.2) + '@storybook/core-events': 8.1.11 + '@storybook/core-server': 8.1.11(prettier@3.3.2)(react-dom@18.3.1)(react@18.3.1) + '@storybook/csf-tools': 8.1.11 + '@storybook/node-logger': 8.1.11 + '@storybook/telemetry': 8.1.11(prettier@3.3.2) + '@storybook/types': 8.1.11 '@types/semver': 7.5.8 '@yarnpkg/fslib': 2.10.3 '@yarnpkg/libzip': 2.3.0 @@ -8416,16 +9472,16 @@ packages: fs-extra: 11.2.0 get-npm-tarball-url: 2.1.0 giget: 1.2.3 - globby: 14.0.1 - jscodeshift: 0.15.2(@babel/preset-env@7.24.5) + globby: 14.0.2 + jscodeshift: 0.15.2(@babel/preset-env@7.24.7) leven: 3.1.0 ora: 5.4.1 - prettier: 3.2.5 + prettier: 3.3.2 prompts: 2.4.2 read-pkg-up: 7.0.1 semver: 7.6.2 strip-json-comments: 3.1.1 - tempy: 1.0.1 + tempy: 3.1.0 tiny-invariant: 1.3.3 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -8438,46 +9494,46 @@ packages: - utf-8-validate dev: true - /@storybook/client-logger@8.1.3: - resolution: {integrity: sha512-dX1jZ+HhJ8hVhAKHQ8gs/FalHjIGo5j1Xk+2UqdsGjLoBlwHIHfHzkVbzrc/gCxxXL0juisk7BzbXaz7lME0KA==} + /@storybook/client-logger@8.1.11: + resolution: {integrity: sha512-DVMh2usz3yYmlqCLCiCKy5fT8/UR9aTh+gSqwyNFkGZrIM4otC5A8eMXajXifzotQLT5SaOEnM3WzHwmpvMIEA==} dependencies: '@storybook/global': 5.0.0 dev: true - /@storybook/codemod@8.1.3: - resolution: {integrity: sha512-U21HQICKKm/xsfLKEODDphJJiBkzq5wFZzKN2DyMPd3vOfLpCWcaPsO9Pi5IX1cekyCz2o+phYt2r9aSRQUbOg==} + /@storybook/codemod@8.1.11: + resolution: {integrity: sha512-/LCozjH1IQ1TOs9UQV59BE0X6UZ9q+C0NEUz7qmJZPrwAii3FkW4l7D/fwxblpMExaoxv0oE8NQfUz49U/5Ymg==} dependencies: - '@babel/core': 7.24.5 - '@babel/preset-env': 7.24.5(@babel/core@7.24.5) - '@babel/types': 7.24.5 - '@storybook/csf': 0.1.7 - '@storybook/csf-tools': 8.1.3 - '@storybook/node-logger': 8.1.3 - '@storybook/types': 8.1.3 + '@babel/core': 7.24.7 + '@babel/preset-env': 7.24.7(@babel/core@7.24.7) + '@babel/types': 7.24.7 + '@storybook/csf': 0.1.9 + '@storybook/csf-tools': 8.1.11 + '@storybook/node-logger': 8.1.11 + '@storybook/types': 8.1.11 '@types/cross-spawn': 6.0.6 cross-spawn: 7.0.3 - globby: 14.0.1 - jscodeshift: 0.15.2(@babel/preset-env@7.24.5) + globby: 14.0.2 + jscodeshift: 0.15.2(@babel/preset-env@7.24.7) lodash: 4.17.21 - prettier: 3.2.5 - recast: 0.23.7 + prettier: 3.3.2 + recast: 0.23.9 tiny-invariant: 1.3.3 transitivePeerDependencies: - supports-color dev: true - /@storybook/core-common@8.1.3(prettier@3.2.5): - resolution: {integrity: sha512-VLG2Kg6oX0msq/Gjo+Pveqg7oLnJBClzms43/nwh6oxjJ/TFehRi3DyLjLqL+Nj726LI5lQetFZZyrsHudVskg==} + /@storybook/core-common@8.1.11(prettier@3.3.2): + resolution: {integrity: sha512-Ix0nplD4I4DrV2t9B+62jaw1baKES9UbR/Jz9LVKFF9nsua3ON0aVe73dOjMxFWBngpzBYWe+zYBTZ7aQtDH4Q==} peerDependencies: prettier: ^2 || ^3 peerDependenciesMeta: prettier: optional: true dependencies: - '@storybook/core-events': 8.1.3 - '@storybook/csf-tools': 8.1.3 - '@storybook/node-logger': 8.1.3 - '@storybook/types': 8.1.3 + '@storybook/core-events': 8.1.11 + '@storybook/csf-tools': 8.1.11 + '@storybook/node-logger': 8.1.11 + '@storybook/types': 8.1.11 '@yarnpkg/fslib': 2.10.3 '@yarnpkg/libzip': 2.3.0 chalk: 4.1.2 @@ -8489,18 +9545,18 @@ packages: find-cache-dir: 3.3.2 find-up: 5.0.0 fs-extra: 11.2.0 - glob: 10.3.15 + glob: 10.4.2 handlebars: 4.7.8 lazy-universal-dotenv: 4.0.0 node-fetch: 2.7.0 picomatch: 2.3.1 pkg-dir: 5.0.0 - prettier: 3.2.5 - prettier-fallback: /prettier@3.2.5 + prettier: 3.3.2 + prettier-fallback: /prettier@3.3.2 pretty-hrtime: 1.0.3 resolve-from: 5.0.0 semver: 7.6.2 - tempy: 1.0.1 + tempy: 3.1.0 tiny-invariant: 1.3.3 ts-dedent: 2.2.0 util: 0.12.5 @@ -8509,34 +9565,34 @@ packages: - supports-color dev: true - /@storybook/core-events@8.1.3: - resolution: {integrity: sha512-eOs4HRrsEZz2FZFlMGwPuH9CGYBK8fkUS7mcHNPv8CqoHV8d3ErvDax8zA/KGRj3S6kWJ4PzI9IGuiDVvwuxhA==} + /@storybook/core-events@8.1.11: + resolution: {integrity: sha512-vXaNe2KEW9BGlLrg0lzmf5cJ0xt+suPjWmEODH5JqBbrdZ67X6ApA2nb6WcxDQhykesWCuFN5gp1l+JuDOBi7A==} dependencies: - '@storybook/csf': 0.1.7 + '@storybook/csf': 0.1.9 ts-dedent: 2.2.0 dev: true - /@storybook/core-server@8.1.3(prettier@3.2.5)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-bOHbLI5atDFBOsFc5M0V0ikURVw+Kx/jRXGO5dnc6kr5SwW+ZfWooy1hiFKHRnI8hmVpGXcS6YqTHkUbcrAWgA==} + /@storybook/core-server@8.1.11(prettier@3.3.2)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-L6dzQTmR0np/kagNONvvlm6lSvF1FNc9js3vxsEEPnEypLbhx8bDZaHmuhmBpYUzKyUMpRVQTE/WgjHLuBBuxA==} dependencies: '@aw-web-design/x-default-browser': 1.4.126 - '@babel/core': 7.24.5 - '@babel/parser': 7.24.5 + '@babel/core': 7.24.7 + '@babel/parser': 7.24.7 '@discoveryjs/json-ext': 0.5.7 - '@storybook/builder-manager': 8.1.3(prettier@3.2.5) - '@storybook/channels': 8.1.3 - '@storybook/core-common': 8.1.3(prettier@3.2.5) - '@storybook/core-events': 8.1.3 - '@storybook/csf': 0.1.7 - '@storybook/csf-tools': 8.1.3 + '@storybook/builder-manager': 8.1.11(prettier@3.3.2) + '@storybook/channels': 8.1.11 + '@storybook/core-common': 8.1.11(prettier@3.3.2) + '@storybook/core-events': 8.1.11 + '@storybook/csf': 0.1.9 + '@storybook/csf-tools': 8.1.11 '@storybook/docs-mdx': 3.1.0-next.0 '@storybook/global': 5.0.0 - '@storybook/manager': 8.1.3 - '@storybook/manager-api': 8.1.3(react-dom@18.3.1)(react@18.3.1) - '@storybook/node-logger': 8.1.3 - '@storybook/preview-api': 8.1.3 - '@storybook/telemetry': 8.1.3(prettier@3.2.5) - '@storybook/types': 8.1.3 + '@storybook/manager': 8.1.11 + '@storybook/manager-api': 8.1.11(react-dom@18.3.1)(react@18.3.1) + '@storybook/node-logger': 8.1.11 + '@storybook/preview-api': 8.1.11 + '@storybook/telemetry': 8.1.11(prettier@3.3.2) + '@storybook/types': 8.1.11 '@types/detect-port': 1.3.5 '@types/diff': 5.2.1 '@types/node': 18.11.19 @@ -8550,8 +9606,7 @@ packages: diff: 5.2.0 express: 4.19.2 fs-extra: 11.2.0 - globby: 14.0.1 - ip: 2.0.1 + globby: 14.0.2 lodash: 4.17.21 open: 8.4.2 pretty-hrtime: 1.0.3 @@ -8564,7 +9619,7 @@ packages: util: 0.12.5 util-deprecate: 1.0.2 watchpack: 2.4.1 - ws: 8.17.0 + ws: 8.17.1 transitivePeerDependencies: - bufferutil - encoding @@ -8575,33 +9630,33 @@ packages: - utf-8-validate dev: true - /@storybook/csf-plugin@8.1.3: - resolution: {integrity: sha512-ONKhnz2j3zSa2RseBWypabTniRcs77ZWBdTrxnBqQap55tRMOAS/uCG+bgGgWlzwDskX35Kmd7XGkVOEngWSDQ==} + /@storybook/csf-plugin@8.1.11: + resolution: {integrity: sha512-hkA8gjFtSN/tabG0cuvmEqanMXtxPr3qTkp4UNSt1R6jBEgFHRG2y/KYLl367kDwOSFTT987ZgRfJJruU66Fvw==} dependencies: - '@storybook/csf-tools': 8.1.3 - unplugin: 1.10.1 + '@storybook/csf-tools': 8.1.11 + unplugin: 1.11.0 transitivePeerDependencies: - supports-color dev: true - /@storybook/csf-tools@8.1.3: - resolution: {integrity: sha512-22h6Uv7w29v8HjoFsJvAkBci9POVH0aQhlfZ4NNYkiMbgD4X4HWeD2wqob6fTKpVWP3tDaNS9FfCWHxQXFE+ag==} + /@storybook/csf-tools@8.1.11: + resolution: {integrity: sha512-6qMWAg/dBwCVIHzANM9lSHoirwqSS+wWmv+NwAs0t9S94M75IttHYxD3IyzwaSYCC5llp0EQFvtXXAuSfFbibg==} dependencies: - '@babel/generator': 7.24.5 - '@babel/parser': 7.24.5 - '@babel/traverse': 7.24.5 - '@babel/types': 7.24.5 - '@storybook/csf': 0.1.7 - '@storybook/types': 8.1.3 + '@babel/generator': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + '@storybook/csf': 0.1.9 + '@storybook/types': 8.1.11 fs-extra: 11.2.0 - recast: 0.23.7 + recast: 0.23.9 ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color dev: true - /@storybook/csf@0.1.7: - resolution: {integrity: sha512-53JeLZBibjQxi0Ep+/AJTfxlofJlxy1jXcSKENlnKxHjWEYyHQCumMP5yTFjf7vhNnMjEpV3zx6t23ssFiGRyw==} + /@storybook/csf@0.1.9: + resolution: {integrity: sha512-JlZ6v/iFn+iKohKGpYXnMeNeTiiAMeFoDhYnPLIC8GnyyIWqEI9wJYrOK9i9rxlJ8NZAH/ojGC/u/xVC41qSgQ==} dependencies: type-fest: 2.19.0 dev: true @@ -8610,13 +9665,13 @@ packages: resolution: {integrity: sha512-t4syFIeSyufieNovZbLruPt2DmRKpbwL4fERCZ1MifWDRIORCKLc4NCEHy+IqvIqd71/SJV2k4B51nF7vlJfmQ==} dev: true - /@storybook/docs-tools@8.1.3(prettier@3.2.5): - resolution: {integrity: sha512-EQIgzO5KdvEck0/20lR/znq1xCC7O1HvKd+yIkZ4bEGn2XnqWk8rmReKSOMI476rb3sn1CMIntT2BRsBUOfTOw==} + /@storybook/docs-tools@8.1.11(prettier@3.3.2): + resolution: {integrity: sha512-mEXtR9rS7Y+OdKtT/QG6JBGYR1L41mcDhIqhnk7RmYl9qJstVAegrCKWR53sPKFdTVOHU7dmu6k+BD+TqHpyyw==} dependencies: - '@storybook/core-common': 8.1.3(prettier@3.2.5) - '@storybook/core-events': 8.1.3 - '@storybook/preview-api': 8.1.3 - '@storybook/types': 8.1.3 + '@storybook/core-common': 8.1.11(prettier@3.3.2) + '@storybook/core-events': 8.1.11 + '@storybook/preview-api': 8.1.11 + '@storybook/types': 8.1.11 '@types/doctrine': 0.0.3 assert: 2.1.0 doctrine: 3.0.0 @@ -8642,30 +9697,30 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: true - /@storybook/instrumenter@8.1.3: - resolution: {integrity: sha512-FYWXt6Pb7N64I934XxciRHUhy37l//uvXyQOwxIyI9syf2ESixpWHgPKd7XjyjULa3JOA2IAEJ3BEZVpqFirog==} + /@storybook/instrumenter@8.1.11: + resolution: {integrity: sha512-r/U9hcqnodNMHuzRt1g56mWrVsDazR85Djz64M3KOwBhrTj5d46DF4/EE80w/5zR5JOrT7p8WmjJRowiVteOCQ==} dependencies: - '@storybook/channels': 8.1.3 - '@storybook/client-logger': 8.1.3 - '@storybook/core-events': 8.1.3 + '@storybook/channels': 8.1.11 + '@storybook/client-logger': 8.1.11 + '@storybook/core-events': 8.1.11 '@storybook/global': 5.0.0 - '@storybook/preview-api': 8.1.3 + '@storybook/preview-api': 8.1.11 '@vitest/utils': 1.6.0 util: 0.12.5 dev: true - /@storybook/manager-api@8.1.3(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-2OpbHK0a3Tak+Wba0ZW/b17C62hdXMFa++rzGT7KzFcVmzg8Nx464wVx2hlrNxjlfBJkHoT723irAiAwmIl2Pg==} + /@storybook/manager-api@8.1.11(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-QSgwKfAw01K9YvvZj30iGBMgQ4YaCT3vojmttuqdH5ukyXkiO7pENLJj4Y+alwUeSi0g+SJeadCI3PXySBHOGg==} dependencies: - '@storybook/channels': 8.1.3 - '@storybook/client-logger': 8.1.3 - '@storybook/core-events': 8.1.3 - '@storybook/csf': 0.1.7 + '@storybook/channels': 8.1.11 + '@storybook/client-logger': 8.1.11 + '@storybook/core-events': 8.1.11 + '@storybook/csf': 0.1.9 '@storybook/global': 5.0.0 '@storybook/icons': 1.2.9(react-dom@18.3.1)(react@18.3.1) - '@storybook/router': 8.1.3 - '@storybook/theming': 8.1.3(react-dom@18.3.1)(react@18.3.1) - '@storybook/types': 8.1.3 + '@storybook/router': 8.1.11 + '@storybook/theming': 8.1.11(react-dom@18.3.1)(react@18.3.1) + '@storybook/types': 8.1.11 dequal: 2.0.3 lodash: 4.17.21 memoizerific: 1.11.3 @@ -8677,39 +9732,39 @@ packages: - react-dom dev: true - /@storybook/manager@8.1.3: - resolution: {integrity: sha512-hmfQJJNLSqlM+jfcCXo5wnhUIugTsCxv6a+2UnRAt2AnF6J746QaV0npMThw1QG/7fi/ofaRY8hPGxgCN9uHRA==} + /@storybook/manager@8.1.11: + resolution: {integrity: sha512-e02y9dmxowo7cTKYm9am7UO6NOHoHy6Xi7xZf/UA932qLwFZUtk5pnwIEFaZWI3OQsRUCGhP+FL5zizU7uVZeg==} dev: true - /@storybook/node-logger@8.1.3: - resolution: {integrity: sha512-MpQ7Zl5n58zbFr1Yu3qgInGENoScEnfqsCxipMhj57b5SWJJ7NoOdSAWznjFFffo8NoaqxldHscuaQfzPBN9hA==} + /@storybook/node-logger@8.1.11: + resolution: {integrity: sha512-wdzFo7B2naGhS52L3n1qBkt5BfvQjs8uax6B741yKRpiGgeAN8nz8+qelkD25MbSukxvbPgDot7WJvsMU/iCzg==} dev: true - /@storybook/preview-api@8.1.3: - resolution: {integrity: sha512-2eyNVr5wLzglE7KABdXu4nu+rPjJ8gVDP9TiovgU1MHhE5rX8qbKmJ47ymWSfJT1DMvH2dPISh4/wRK3WVNjmw==} + /@storybook/preview-api@8.1.11: + resolution: {integrity: sha512-8ZChmFV56GKppCJ0hnBd/kNTfGn2gWVq1242kuet13pbJtBpvOhyq4W01e/Yo14tAPXvgz8dSnMvWLbJx4QfhQ==} dependencies: - '@storybook/channels': 8.1.3 - '@storybook/client-logger': 8.1.3 - '@storybook/core-events': 8.1.3 - '@storybook/csf': 0.1.7 + '@storybook/channels': 8.1.11 + '@storybook/client-logger': 8.1.11 + '@storybook/core-events': 8.1.11 + '@storybook/csf': 0.1.9 '@storybook/global': 5.0.0 - '@storybook/types': 8.1.3 + '@storybook/types': 8.1.11 '@types/qs': 6.9.15 dequal: 2.0.3 lodash: 4.17.21 memoizerific: 1.11.3 - qs: 6.12.1 + qs: 6.12.2 tiny-invariant: 1.3.3 ts-dedent: 2.2.0 util-deprecate: 1.0.2 dev: true - /@storybook/preview@8.1.3: - resolution: {integrity: sha512-04Aet1jrsSMuJ/pm21GJBmSAaJdPhy/fhir50jKiQTwBMgM19G0HQ1IUMHgcy85fh/DWg1/h4pxVodvWvdIZfQ==} + /@storybook/preview@8.1.11: + resolution: {integrity: sha512-K/9NZmjnL0D1BROkTNWNoPqgL2UaocALRSqCARmkBLgU2Rn/FuZgEclHkWlYo6pUrmLNK+bZ+XzpNMu12iTbpg==} dev: true - /@storybook/react-dom-shim@8.1.3(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-CTyxH/ssU5KRbUwi3ws2NWEnMS6rjat0AYyhcskdPiPU59Qm24TrSpLqO+Rgzln8w7EDFsty3lLpcPNYs+BKlQ==} + /@storybook/react-dom-shim@8.1.11(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-KVDSuipqkFjpGfldoRM5xR/N1/RNmbr+sVXqMmelr0zV2jGnexEZnoa7wRHk7IuXuivLWe8BxMxzvQWqjIa4GA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta @@ -8718,20 +9773,20 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: true - /@storybook/react-vite@8.1.3(prettier@3.2.5)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5)(vite@5.2.11): - resolution: {integrity: sha512-V4V2BAo/BV+g6BSm8Nqwqyvb4c9fdwe8c3K9TV3qPjiHgzYvSrfARl0FABNhXK9Y1PeXZp3DIRUxuxCkBN8shQ==} + /@storybook/react-vite@8.1.11(prettier@3.3.2)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3)(vite@5.3.2): + resolution: {integrity: sha512-QqkE6QKsIDthXtps9+YSBQ39O4VvU7Uu3y6WSA3IPgKTtGnmIvhwXtapjf7WQ2cNb5KY1JksFxHXbDe0i5IL4g==} engines: {node: '>=18.0.0'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta vite: ^4.0.0 || ^5.0.0 dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.1(typescript@5.4.5)(vite@5.2.11) - '@rollup/pluginutils': 5.1.0(rollup@4.17.2) - '@storybook/builder-vite': 8.1.3(prettier@3.2.5)(typescript@5.4.5)(vite@5.2.11) - '@storybook/node-logger': 8.1.3 - '@storybook/react': 8.1.3(prettier@3.2.5)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@storybook/types': 8.1.3 + '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.1(typescript@5.5.3)(vite@5.3.2) + '@rollup/pluginutils': 5.1.0(rollup@4.18.0) + '@storybook/builder-vite': 8.1.11(prettier@3.3.2)(typescript@5.5.3)(vite@5.3.2) + '@storybook/node-logger': 8.1.11 + '@storybook/react': 8.1.11(prettier@3.3.2)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3) + '@storybook/types': 8.1.11 find-up: 5.0.0 magic-string: 0.30.10 react: 18.3.1 @@ -8739,7 +9794,7 @@ packages: react-dom: 18.3.1(react@18.3.1) resolve: 1.22.8 tsconfig-paths: 4.2.0 - vite: 5.2.11(@types/node@18.11.19) + vite: 5.3.2(@types/node@18.11.19) transitivePeerDependencies: - '@preact/preset-vite' - encoding @@ -8750,8 +9805,8 @@ packages: - vite-plugin-glimmerx dev: true - /@storybook/react@8.1.3(prettier@3.2.5)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-95BytmZIpSg+QYO6glC6Oq+J0LlTTz9euL7trlYdzCpnuo6gBTaxtttSCQij4pRzRC/06tcDAK65l2JyYpiTXg==} + /@storybook/react@8.1.11(prettier@3.3.2)(react-dom@18.3.1)(react@18.3.1)(typescript@5.5.3): + resolution: {integrity: sha512-t+EYXOkgwg3ropLGS9y8gGvX5/Okffu/6JYL3YWksrBGAZSqVV4NkxCnVJZepS717SyhR0tN741gv/SxxFPJMg==} engines: {node: '>=18.0.0'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta @@ -8761,12 +9816,12 @@ packages: typescript: optional: true dependencies: - '@storybook/client-logger': 8.1.3 - '@storybook/docs-tools': 8.1.3(prettier@3.2.5) + '@storybook/client-logger': 8.1.11 + '@storybook/docs-tools': 8.1.11(prettier@3.3.2) '@storybook/global': 5.0.0 - '@storybook/preview-api': 8.1.3 - '@storybook/react-dom-shim': 8.1.3(react-dom@18.3.1)(react@18.3.1) - '@storybook/types': 8.1.3 + '@storybook/preview-api': 8.1.11 + '@storybook/react-dom-shim': 8.1.11(react-dom@18.3.1)(react@18.3.1) + '@storybook/types': 8.1.11 '@types/escodegen': 0.0.6 '@types/estree': 0.0.51 '@types/node': 18.11.19 @@ -8783,7 +9838,7 @@ packages: semver: 7.6.2 ts-dedent: 2.2.0 type-fest: 2.19.0 - typescript: 5.4.5 + typescript: 5.5.3 util-deprecate: 1.0.2 transitivePeerDependencies: - encoding @@ -8791,20 +9846,20 @@ packages: - supports-color dev: true - /@storybook/router@8.1.3: - resolution: {integrity: sha512-CVEMpRD+PDVb+oZ3Sd0SV4P9vBJhYDgYiO9Km9X1jV6iyg/CXIALlo5Rd9pT+/U8IdqI2QX3bkZBUgCFDff67w==} + /@storybook/router@8.1.11: + resolution: {integrity: sha512-nU5lsBvy0L8wBYOkjagh29ztZicDATpZNYrHuavlhQ2jznmmHdJvXKYk+VrMAbthjQ6ZBqfeeMNPR1UlnqR5Rw==} dependencies: - '@storybook/client-logger': 8.1.3 + '@storybook/client-logger': 8.1.11 memoizerific: 1.11.3 - qs: 6.12.1 + qs: 6.12.2 dev: true - /@storybook/telemetry@8.1.3(prettier@3.2.5): - resolution: {integrity: sha512-edFj0AJ3DEF8Z6Ym6ue7N8U9HZ2khAfXIcpk6RDgL/8FrpAZKC96XSEBMSnem3BLHxMi2bddQH1UTU6rKXrfBA==} + /@storybook/telemetry@8.1.11(prettier@3.3.2): + resolution: {integrity: sha512-Jqvm7HcZismKzPuebhyLECO6KjGiSk4ycbca1WUM/TUvifxCXqgoUPlHHQEEfaRdHS63/MSqtMNjLsQRLC/vNQ==} dependencies: - '@storybook/client-logger': 8.1.3 - '@storybook/core-common': 8.1.3(prettier@3.2.5) - '@storybook/csf-tools': 8.1.3 + '@storybook/client-logger': 8.1.11 + '@storybook/core-common': 8.1.11(prettier@3.3.2) + '@storybook/csf-tools': 8.1.11 chalk: 4.1.2 detect-package-manager: 2.0.1 fetch-retry: 5.0.6 @@ -8816,17 +9871,17 @@ packages: - supports-color dev: true - /@storybook/test@8.1.3(vitest@1.6.0): - resolution: {integrity: sha512-9fjigeDBUk1X7el6haYk1Lniak0Se7Ol5f7QSw/64tIbXHp6ucj06FWEK+SfWx1J9GgCdDiFGW5UMmEZOiRCXw==} + /@storybook/test@8.1.11(vitest@1.6.0): + resolution: {integrity: sha512-k+V3HemF2/I8fkRxRqM8uH8ULrpBSAAdBOtWSHWLvHguVcb2YA4g4kKo6tXBB9256QfyDW4ZiaAj0/9TMxmJPQ==} dependencies: - '@storybook/client-logger': 8.1.3 - '@storybook/core-events': 8.1.3 - '@storybook/instrumenter': 8.1.3 - '@storybook/preview-api': 8.1.3 - '@testing-library/dom': 9.3.4 + '@storybook/client-logger': 8.1.11 + '@storybook/core-events': 8.1.11 + '@storybook/instrumenter': 8.1.11 + '@storybook/preview-api': 8.1.11 + '@testing-library/dom': 10.1.0 '@testing-library/jest-dom': 6.4.5(vitest@1.6.0) - '@testing-library/user-event': 14.5.2(@testing-library/dom@9.3.4) - '@vitest/expect': 1.3.1 + '@testing-library/user-event': 14.5.2(@testing-library/dom@10.1.0) + '@vitest/expect': 1.6.0 '@vitest/spy': 1.6.0 util: 0.12.5 transitivePeerDependencies: @@ -8837,8 +9892,8 @@ packages: - vitest dev: true - /@storybook/theming@8.1.3(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-BXtD5pna4eAAxNbzZUijP6W25IFVhvANG5P96xYM+OH+5OMSdLpDANnG2qWcZumwX5JFd74KqOIuV8yIO0AYXQ==} + /@storybook/theming@8.1.11(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-Chn/opjO6Rl1isNobutYqAH2PjKNkj09YBw/8noomk6gElSa3JbUTyaG/+JCHA6OG/9kUsqoKDb5cZmAKNq/jA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta @@ -8849,118 +9904,118 @@ packages: optional: true dependencies: '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1) - '@storybook/client-logger': 8.1.3 + '@storybook/client-logger': 8.1.11 '@storybook/global': 5.0.0 memoizerific: 1.11.3 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: true - /@storybook/types@8.1.3: - resolution: {integrity: sha512-2uUC1z7heMceRPHQ4KCcZwwKjtW2YiToUODsEw0YOq6NC/Q9elZta1FABSG0Bq7XM08EiAgjyc7P9CZPJ2QxUQ==} + /@storybook/types@8.1.11: + resolution: {integrity: sha512-k9N5iRuY2+t7lVRL6xeu6diNsxO3YI3lS4Juv3RZ2K4QsE/b3yG5ElfJB8DjHDSHwRH4ORyrU71KkOCUVfvtnw==} dependencies: - '@storybook/channels': 8.1.3 + '@storybook/channels': 8.1.11 '@types/express': 4.17.21 file-system-cache: 2.3.0 dev: true - /@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.5): + /@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.7): resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.7 dev: false - /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.5): + /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.7): resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.7 dev: false - /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.5): + /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.7): resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.7 dev: false - /@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.5): + /@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.7): resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.7 dev: false - /@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.5): + /@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.7): resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.7 dev: false - /@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.5): + /@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.7): resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.7 dev: false - /@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.5): + /@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.7): resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.7 dev: false - /@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.5): + /@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.7): resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} engines: {node: '>=12'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.7 dev: false - /@svgr/babel-preset@8.1.0(@babel/core@7.24.5): + /@svgr/babel-preset@8.1.0(@babel/core@7.24.7): resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.24.5) - '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.24.5) - '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.24.5) - '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.24.5) - '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.24.5) - '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.24.5) - '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.24.5) - '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.24.7) + '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.24.7) + '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.24.7) + '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.24.7) + '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.24.7) + '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.24.7) + '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.24.7) + '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.24.7) dev: false - /@svgr/core@8.1.0(typescript@5.4.5): + /@svgr/core@8.1.0(typescript@5.5.3): resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} engines: {node: '>=14'} dependencies: - '@babel/core': 7.24.5 - '@svgr/babel-preset': 8.1.0(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@svgr/babel-preset': 8.1.0(@babel/core@7.24.7) camelcase: 6.3.0 - cosmiconfig: 8.3.6(typescript@5.4.5) + cosmiconfig: 8.3.6(typescript@5.5.3) snake-case: 3.0.4 transitivePeerDependencies: - supports-color @@ -8971,7 +10026,7 @@ packages: resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} engines: {node: '>=14'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.7 entities: 4.5.0 dev: false @@ -8981,149 +10036,149 @@ packages: peerDependencies: '@svgr/core': '*' dependencies: - '@babel/core': 7.24.5 - '@svgr/babel-preset': 8.1.0(@babel/core@7.24.5) - '@svgr/core': 8.1.0(typescript@5.4.5) + '@babel/core': 7.24.7 + '@svgr/babel-preset': 8.1.0(@babel/core@7.24.7) + '@svgr/core': 8.1.0(typescript@5.5.3) '@svgr/hast-util-to-babel-ast': 8.0.0 svg-parser: 2.0.4 transitivePeerDependencies: - supports-color dev: false - /@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.4.5): + /@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.5.3): resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==} engines: {node: '>=14'} peerDependencies: '@svgr/core': '*' dependencies: - '@svgr/core': 8.1.0(typescript@5.4.5) - cosmiconfig: 8.3.6(typescript@5.4.5) + '@svgr/core': 8.1.0(typescript@5.5.3) + cosmiconfig: 8.3.6(typescript@5.5.3) deepmerge: 4.3.1 svgo: 3.3.2 transitivePeerDependencies: - typescript dev: false - /@svgr/webpack@8.1.0(typescript@5.4.5): + /@svgr/webpack@8.1.0(typescript@5.5.3): resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} engines: {node: '>=14'} dependencies: - '@babel/core': 7.24.5 - '@babel/plugin-transform-react-constant-elements': 7.24.1(@babel/core@7.24.5) - '@babel/preset-env': 7.24.5(@babel/core@7.24.5) - '@babel/preset-react': 7.24.1(@babel/core@7.24.5) - '@babel/preset-typescript': 7.24.1(@babel/core@7.24.5) - '@svgr/core': 8.1.0(typescript@5.4.5) + '@babel/core': 7.24.7 + '@babel/plugin-transform-react-constant-elements': 7.24.7(@babel/core@7.24.7) + '@babel/preset-env': 7.24.7(@babel/core@7.24.7) + '@babel/preset-react': 7.24.7(@babel/core@7.24.7) + '@babel/preset-typescript': 7.24.7(@babel/core@7.24.7) + '@svgr/core': 8.1.0(typescript@5.5.3) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0) - '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0)(typescript@5.4.5) + '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0)(typescript@5.5.3) transitivePeerDependencies: - supports-color - typescript dev: false - /@swc/core-darwin-arm64@1.5.7: - resolution: {integrity: sha512-bZLVHPTpH3h6yhwVl395k0Mtx8v6CGhq5r4KQdAoPbADU974Mauz1b6ViHAJ74O0IVE5vyy7tD3OpkQxL/vMDQ==} + /@swc/core-darwin-arm64@1.6.6: + resolution: {integrity: sha512-5DA8NUGECcbcK1YLKJwNDKqdtTYDVnkfDU1WvQSXq/rU+bjYCLtn5gCe8/yzL7ISXA6rwqPU1RDejhbNt4ARLQ==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] requiresBuild: true optional: true - /@swc/core-darwin-x64@1.5.7: - resolution: {integrity: sha512-RpUyu2GsviwTc2qVajPL0l8nf2vKj5wzO3WkLSHAHEJbiUZk83NJrZd1RVbEknIMO7+Uyjh54hEh8R26jSByaw==} + /@swc/core-darwin-x64@1.6.6: + resolution: {integrity: sha512-2nbh/RHpweNRsJiYDFk1KcX7UtaKgzzTNUjwtvK5cp0wWrpbXmPvdlWOx3yzwoiSASDFx78242JHHXCIOlEdsw==} engines: {node: '>=10'} cpu: [x64] os: [darwin] requiresBuild: true optional: true - /@swc/core-linux-arm-gnueabihf@1.5.7: - resolution: {integrity: sha512-cTZWTnCXLABOuvWiv6nQQM0hP6ZWEkzdgDvztgHI/+u/MvtzJBN5lBQ2lue/9sSFYLMqzqff5EHKlFtrJCA9dQ==} + /@swc/core-linux-arm-gnueabihf@1.6.6: + resolution: {integrity: sha512-YgytuyUfR7b0z0SRHKV+ylr83HmgnROgeT7xryEkth6JGpAEHooCspQ4RrWTU8+WKJ7aXiZlGXPgybQ4TiS+TA==} engines: {node: '>=10'} cpu: [arm] os: [linux] requiresBuild: true optional: true - /@swc/core-linux-arm64-gnu@1.5.7: - resolution: {integrity: sha512-hoeTJFBiE/IJP30Be7djWF8Q5KVgkbDtjySmvYLg9P94bHg9TJPSQoC72tXx/oXOgXvElDe/GMybru0UxhKx4g==} + /@swc/core-linux-arm64-gnu@1.6.6: + resolution: {integrity: sha512-yGwx9fddzEE0iURqRVwKBQ4IwRHE6hNhl15WliHpi/PcYhzmYkUIpcbRXjr0dssubXAVPVnx6+jZVDSbutvnfg==} engines: {node: '>=10'} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@swc/core-linux-arm64-musl@1.5.7: - resolution: {integrity: sha512-+NDhK+IFTiVK1/o7EXdCeF2hEzCiaRSrb9zD7X2Z7inwWlxAntcSuzZW7Y6BRqGQH89KA91qYgwbnjgTQ22PiQ==} + /@swc/core-linux-arm64-musl@1.6.6: + resolution: {integrity: sha512-a6fMbqzSAsS5KCxFJyg1mD5kwN3ZFO8qQLyJ75R/htZP/eCt05jrhmOI7h2n+1HjiG332jLnZ9S8lkVE5O8Nqw==} engines: {node: '>=10'} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@swc/core-linux-x64-gnu@1.5.7: - resolution: {integrity: sha512-25GXpJmeFxKB+7pbY7YQLhWWjkYlR+kHz5I3j9WRl3Lp4v4UD67OGXwPe+DIcHqcouA1fhLhsgHJWtsaNOMBNg==} + /@swc/core-linux-x64-gnu@1.6.6: + resolution: {integrity: sha512-hRGsUKNzzZle28YF0dYIpN0bt9PceR9LaVBq7x8+l9TAaDLFbgksSxcnU/ubTtsy+WsYSYGn+A83w3xWC0O8CQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@swc/core-linux-x64-musl@1.5.7: - resolution: {integrity: sha512-0VN9Y5EAPBESmSPPsCJzplZHV26akC0sIgd3Hc/7S/1GkSMoeuVL+V9vt+F/cCuzr4VidzSkqftdP3qEIsXSpg==} + /@swc/core-linux-x64-musl@1.6.6: + resolution: {integrity: sha512-NokIUtFxJDVv3LzGeEtYMTV3j2dnGKLac59luTeq36DQLZdJQawQIdTbzzWl2jE7lxxTZme+dhsVOH9LxE3ceg==} engines: {node: '>=10'} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@swc/core-win32-arm64-msvc@1.5.7: - resolution: {integrity: sha512-RtoNnstBwy5VloNCvmvYNApkTmuCe4sNcoYWpmY7C1+bPR+6SOo8im1G6/FpNem8AR5fcZCmXHWQ+EUmRWJyuA==} + /@swc/core-win32-arm64-msvc@1.6.6: + resolution: {integrity: sha512-lzYdI4qb4k1dFG26yv+9Jaq/bUMAhgs/2JsrLncGjLof86+uj74wKYCQnbzKAsq2hDtS5DqnHnl+//J+miZfGA==} engines: {node: '>=10'} cpu: [arm64] os: [win32] requiresBuild: true optional: true - /@swc/core-win32-ia32-msvc@1.5.7: - resolution: {integrity: sha512-Xm0TfvcmmspvQg1s4+USL3x8D+YPAfX2JHygvxAnCJ0EHun8cm2zvfNBcsTlnwYb0ybFWXXY129aq1wgFC9TpQ==} + /@swc/core-win32-ia32-msvc@1.6.6: + resolution: {integrity: sha512-bvl7FMaXIJQ76WZU0ER4+RyfKIMGb6S2MgRkBhJOOp0i7VFx4WLOnrmMzaeoPJaJSkityVKAftfNh7NBzTIydQ==} engines: {node: '>=10'} cpu: [ia32] os: [win32] requiresBuild: true optional: true - /@swc/core-win32-x64-msvc@1.5.7: - resolution: {integrity: sha512-tp43WfJLCsKLQKBmjmY/0vv1slVywR5Q4qKjF5OIY8QijaEW7/8VwPyUyVoJZEnDgv9jKtUTG5PzqtIYPZGnyg==} + /@swc/core-win32-x64-msvc@1.6.6: + resolution: {integrity: sha512-WAP0JoCTfgeYKgOeYJoJV4ZS0sQUmU3OwvXa2dYYtMLF7zsNqOiW4niU7QlThBHgUv/qNZm2p6ITEgh3w1cltw==} engines: {node: '>=10'} cpu: [x64] os: [win32] requiresBuild: true optional: true - /@swc/core@1.5.7: - resolution: {integrity: sha512-U4qJRBefIJNJDRCCiVtkfa/hpiZ7w0R6kASea+/KLp+vkus3zcLSB8Ub8SvKgTIxjWpwsKcZlPf5nrv4ls46SQ==} + /@swc/core@1.6.6: + resolution: {integrity: sha512-sHfmIUPUXNrQTwFMVCY5V5Ena2GTOeaWjS2GFUpjLhAgVfP90OP67DWow7+cYrfFtqBdILHuWnjkTcd0+uPKlg==} engines: {node: '>=10'} requiresBuild: true peerDependencies: - '@swc/helpers': ^0.5.0 + '@swc/helpers': '*' peerDependenciesMeta: '@swc/helpers': optional: true dependencies: '@swc/counter': 0.1.3 - '@swc/types': 0.1.7 + '@swc/types': 0.1.9 optionalDependencies: - '@swc/core-darwin-arm64': 1.5.7 - '@swc/core-darwin-x64': 1.5.7 - '@swc/core-linux-arm-gnueabihf': 1.5.7 - '@swc/core-linux-arm64-gnu': 1.5.7 - '@swc/core-linux-arm64-musl': 1.5.7 - '@swc/core-linux-x64-gnu': 1.5.7 - '@swc/core-linux-x64-musl': 1.5.7 - '@swc/core-win32-arm64-msvc': 1.5.7 - '@swc/core-win32-ia32-msvc': 1.5.7 - '@swc/core-win32-x64-msvc': 1.5.7 + '@swc/core-darwin-arm64': 1.6.6 + '@swc/core-darwin-x64': 1.6.6 + '@swc/core-linux-arm-gnueabihf': 1.6.6 + '@swc/core-linux-arm64-gnu': 1.6.6 + '@swc/core-linux-arm64-musl': 1.6.6 + '@swc/core-linux-x64-gnu': 1.6.6 + '@swc/core-linux-x64-musl': 1.6.6 + '@swc/core-win32-arm64-msvc': 1.6.6 + '@swc/core-win32-ia32-msvc': 1.6.6 + '@swc/core-win32-x64-msvc': 1.6.6 /@swc/counter@0.1.3: resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} @@ -9131,11 +10186,11 @@ packages: /@swc/helpers@0.5.11: resolution: {integrity: sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 dev: false - /@swc/types@0.1.7: - resolution: {integrity: sha512-scHWahbHF0eyj3JsxG9CFJgFdFNaVQCNAimBlT6PzS3n/HptxqREjsm4OH6AN3lYcffZYSPxXW8ua2BEHp0lJQ==} + /@swc/types@0.1.9: + resolution: {integrity: sha512-qKnCno++jzcJ4lM4NTfYifm1EFSCeIfKiAHAfkENZAV5Kl9PjJIyd2yeeVv6c/2CckuLyv2NmRC5pv6pm2WQBg==} dependencies: '@swc/counter': 0.1.3 @@ -9146,14 +10201,14 @@ packages: defer-to-connect: 2.0.1 dev: false - /@testing-library/dom@9.3.4: - resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} - engines: {node: '>=14'} + /@testing-library/dom@10.1.0: + resolution: {integrity: sha512-wdsYKy5zupPyLCW2Je5DLHSxSfbIp6h80WoHOQc+RPtmPGA52O9x5MJEkv92Sjonpq+poOAtUKhh1kBGAXBrNA==} + engines: {node: '>=18'} dependencies: - '@babel/code-frame': 7.24.2 - '@babel/runtime': 7.24.5 + '@babel/code-frame': 7.24.7 + '@babel/runtime': 7.24.7 '@types/aria-query': 5.0.4 - aria-query: 5.1.3 + aria-query: 5.3.0 chalk: 4.1.2 dom-accessibility-api: 0.5.16 lz-string: 1.5.0 @@ -9181,24 +10236,24 @@ packages: vitest: optional: true dependencies: - '@adobe/css-tools': 4.3.3 - '@babel/runtime': 7.24.5 + '@adobe/css-tools': 4.4.0 + '@babel/runtime': 7.24.7 aria-query: 5.3.0 chalk: 3.0.0 css.escape: 1.5.1 dom-accessibility-api: 0.6.3 lodash: 4.17.21 redent: 3.0.0 - vitest: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + vitest: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.12.3) dev: true - /@testing-library/user-event@14.5.2(@testing-library/dom@9.3.4): + /@testing-library/user-event@14.5.2(@testing-library/dom@10.1.0): resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} engines: {node: '>=12', npm: '>=6'} peerDependencies: '@testing-library/dom': '>=7.21.4' dependencies: - '@testing-library/dom': 9.3.4 + '@testing-library/dom': 10.1.0 dev: true /@tootallnate/once@2.0.0: @@ -9237,7 +10292,7 @@ packages: engines: {node: ^16.14.0 || >=18.0.0} dependencies: '@tufjs/canonical-json': 2.0.0 - minimatch: 9.0.4 + minimatch: 9.0.5 dev: true /@types/acorn@4.0.6: @@ -9264,27 +10319,27 @@ packages: /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.5 + '@types/babel__traverse': 7.20.6 /@types/babel__generator@7.6.8: resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.7 /@types/babel__template@7.4.4: resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 - /@types/babel__traverse@7.20.5: - resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} + /@types/babel__traverse@7.20.6: + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.7 /@types/body-parser@1.19.5: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} @@ -9305,7 +10360,7 @@ packages: /@types/connect-history-api-fallback@1.5.4: resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} dependencies: - '@types/express-serve-static-core': 4.19.0 + '@types/express-serve-static-core': 4.19.5 '@types/node': 18.11.19 dev: false @@ -9360,8 +10415,8 @@ packages: resolution: {integrity: sha512-nv+GSx77ZtXiJzwKdsASqi+YQ5Z7vwHsTP0JY2SiQgjGckkBRKZnk8nIM+7oUZ1VCtuTz0+By4qVR7fqzp/Dfg==} dev: true - /@types/emscripten@1.39.12: - resolution: {integrity: sha512-AQImDBgudQfMqUBfrjZYilRxoHDzTBp+ejh+g1fY67eSMalwIKtBXofjpyI0JBgNpHGzxeGAR2QDya0wxW9zbA==} + /@types/emscripten@1.39.13: + resolution: {integrity: sha512-cFq+fO/isvhvmuP/+Sl4K4jtU6E23DoivtbO4r50e3odaxAiVdbfSYRDdJ4gCdxx+3aRjhphS5ZMwIH4hFy/Cw==} dev: true /@types/escodegen@0.0.6: @@ -9392,8 +10447,8 @@ packages: /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - /@types/express-serve-static-core@4.19.0: - resolution: {integrity: sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==} + /@types/express-serve-static-core@4.19.5: + resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} dependencies: '@types/node': 18.11.19 '@types/qs': 6.9.15 @@ -9404,7 +10459,7 @@ packages: resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} dependencies: '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.19.0 + '@types/express-serve-static-core': 4.19.5 '@types/qs': 6.9.15 '@types/serve-static': 1.15.7 @@ -9487,8 +10542,8 @@ packages: /@types/mdx@2.0.13: resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} - /@types/micromatch@4.0.7: - resolution: {integrity: sha512-C/FMQ8HJAZhTsDpl4wDKZdMeeW5USjgzOczUwTGbRc1ZopPgOhIEnxY2ZgUrsuyy4DwK1JVOJZKFakv3TbCKiA==} + /@types/micromatch@4.0.9: + resolution: {integrity: sha512-7V+8ncr22h4UoYRLnLXSpTxjQrNUXtWHGeMPRJt1nULXI57G9bIcpyrHlmrQ7QK24EyyuXvYcSSWAM8GA9nqCg==} dependencies: '@types/braces': 3.0.4 dev: true @@ -9507,13 +10562,6 @@ packages: resolution: {integrity: sha512-PLwiVvTBg59tGFL/8VpcGvqOu3L4OuveNvPi0EYbWchRdEVP++yRUXJPFl+CApKEq13017/4Nf7aQ5lTtHUNsA==} dev: true - /@types/node-fetch@2.6.11: - resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} - dependencies: - '@types/node': 18.11.19 - form-data: 4.0.0 - dev: false - /@types/node-forge@1.3.11: resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} dependencies: @@ -9573,30 +10621,30 @@ packages: /@types/react-dom@18.3.0: resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} dependencies: - '@types/react': 18.3.2 + '@types/react': 18.3.3 /@types/react-router-config@5.0.11: resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==} dependencies: '@types/history': 4.7.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-router': 5.1.20 /@types/react-router-dom@5.3.3: resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} dependencies: '@types/history': 4.7.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-router': 5.1.20 /@types/react-router@5.1.20: resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} dependencies: '@types/history': 4.7.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 - /@types/react@18.3.2: - resolution: {integrity: sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w==} + /@types/react@18.3.3: + resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} dependencies: '@types/prop-types': 15.7.12 csstype: 3.1.3 @@ -9604,6 +10652,10 @@ packages: /@types/resolve@1.20.2: resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + /@types/resolve@1.20.6: + resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} + dev: true + /@types/retry@0.12.0: resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} dev: false @@ -9648,20 +10700,14 @@ packages: dependencies: '@types/node': 18.11.19 - /@types/swagger-ui-dist@3.30.4: - resolution: {integrity: sha512-FeOBc7uj4/lAIh4jkBzorvmNoUU9JgSccyDIRo0E9MJw9KQfSxlwpHCyKGnU9kfV5N5dEdfpY8wm7to3nSwTmA==} + /@types/swagger-ui-dist@3.30.5: + resolution: {integrity: sha512-SrXhD9L8qeIxJzN+o1kmf3wXeVf/+Km3jIdRM1+Yq3I5b/dlF5TcGr5WCVM7I/cBYpgf43/gCPIucQ13AhICiw==} dev: true /@types/swagger-ui@3.52.4: resolution: {integrity: sha512-7NV7q8BfupqdQxr26OkM0g0YEPB9uXnKGzXadgcearvI9MoCHt3F72lPTX3fZZIlrr21DC0IK26wcDMZ37oFDA==} dev: true - /@types/tunnel@0.0.3: - resolution: {integrity: sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==} - dependencies: - '@types/node': 18.11.19 - dev: false - /@types/unist@2.0.10: resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} @@ -9672,8 +10718,8 @@ packages: resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} dev: true - /@types/vscode@1.89.0: - resolution: {integrity: sha512-TMfGKLSVxfGfoO8JfIE/neZqv7QLwS4nwPwL/NwMvxtAY2230H2I4Z5xx6836pmJvMAzqooRQ4pmLm7RUicP3A==} + /@types/vscode@1.90.0: + resolution: {integrity: sha512-oT+ZJL7qHS9Z8bs0+WKf/kQ27qWYR3trsXpq46YDjFqBsMLG4ygGGjPaJ2tyrH0wJzjOEmDyg9PDJBBhWg9pkQ==} dev: true /@types/ws@8.5.10: @@ -9690,8 +10736,8 @@ packages: dependencies: '@types/yargs-parser': 21.0.3 - /@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0)(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-6e+X0X3sFe/G/54aC3jt0txuMTURqLyekmEHViqyA2VnxhLMpvA6nqmcjIy+Cr9tLDHPssA74BP5Mx9HQIxBEA==} + /@typescript-eslint/eslint-plugin@7.15.0(@typescript-eslint/parser@7.15.0)(eslint@8.57.0)(typescript@5.5.3): + resolution: {integrity: sha512-uiNHpyjZtFrLwLDpHnzaDlP3Tt6sGMqTCiqmxaN4n4RP0EfYZDODJyddiFDF44Hjwxr5xAcaYxVKm9QKQFJFLA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -9701,24 +10747,24 @@ packages: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.9.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/scope-manager': 7.9.0 - '@typescript-eslint/type-utils': 7.9.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/utils': 7.9.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.9.0 + '@eslint-community/regexpp': 4.11.0 + '@typescript-eslint/parser': 7.15.0(eslint@8.57.0)(typescript@5.5.3) + '@typescript-eslint/scope-manager': 7.15.0 + '@typescript-eslint/type-utils': 7.15.0(eslint@8.57.0)(typescript@5.5.3) + '@typescript-eslint/utils': 7.15.0(eslint@8.57.0)(typescript@5.5.3) + '@typescript-eslint/visitor-keys': 7.15.0 eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.4.5) - typescript: 5.4.5 + ts-api-utils: 1.3.0(typescript@5.5.3) + typescript: 5.5.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-qHMJfkL5qvgQB2aLvhUSXxbK7OLnDkwPzFalg458pxQgfxKDfT1ZDbHQM/I6mDIf/svlMkj21kzKuQ2ixJlatQ==} + /@typescript-eslint/parser@7.15.0(eslint@8.57.0)(typescript@5.5.3): + resolution: {integrity: sha512-k9fYuQNnypLFcqORNClRykkGOMOj+pV6V91R4GO/l1FDGwpqmSwoOQrOHo3cGaH63e+D3ZiCAOsuS/D2c99j/A==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -9727,29 +10773,30 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 7.9.0 - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.9.0 - debug: 4.3.4 + '@typescript-eslint/scope-manager': 7.15.0 + '@typescript-eslint/types': 7.15.0 + '@typescript-eslint/typescript-estree': 7.15.0(typescript@5.5.3) + '@typescript-eslint/visitor-keys': 7.15.0 + debug: 4.3.5 eslint: 8.57.0 - typescript: 5.4.5 + typescript: 5.5.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/rule-tester@7.9.0(@eslint/eslintrc@3.1.0)(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-Oz5IB1kCUToVS0Nvkpgx5Vb89J+7iSsBAWKvfxQFWmcYpiqdStO6eRI2cAuRNrqo6uGh2sNsAji9hcv/KrHwMQ==} + /@typescript-eslint/rule-tester@7.15.0(@eslint/eslintrc@3.1.0)(eslint@8.57.0)(typescript@5.5.3): + resolution: {integrity: sha512-QyBNG3gTpUJKb+Kx0hMbfZk9K7a3VnWEcWygZyKbw6ihTt/pf7c7AaR7JNbdnrFYc0q3JOgCXdKq8JM4RsAeaA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@eslint/eslintrc': '>=2' eslint: ^8.56.0 dependencies: '@eslint/eslintrc': 3.1.0 - '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) - '@typescript-eslint/utils': 7.9.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 7.15.0(typescript@5.5.3) + '@typescript-eslint/utils': 7.15.0(eslint@8.57.0)(typescript@5.5.3) ajv: 6.12.6 eslint: 8.57.0 + json-stable-stringify-without-jsonify: 1.0.1 lodash.merge: 4.6.2 semver: 7.6.2 transitivePeerDependencies: @@ -9757,23 +10804,15 @@ packages: - typescript dev: true - /@typescript-eslint/scope-manager@6.21.0: - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - dev: true - - /@typescript-eslint/scope-manager@7.9.0: - resolution: {integrity: sha512-ZwPK4DeCDxr3GJltRz5iZejPFAAr4Wk3+2WIBaj1L5PYK5RgxExu/Y68FFVclN0y6GGwH8q+KgKRCvaTmFBbgQ==} + /@typescript-eslint/scope-manager@7.15.0: + resolution: {integrity: sha512-Q/1yrF/XbxOTvttNVPihxh1b9fxamjEoz2Os/Pe38OHwxC24CyCqXxGTOdpb4lt6HYtqw9HetA/Rf6gDGaMPlw==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/visitor-keys': 7.9.0 + '@typescript-eslint/types': 7.15.0 + '@typescript-eslint/visitor-keys': 7.15.0 - /@typescript-eslint/type-utils@7.9.0(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-6Qy8dfut0PFrFRAZsGzuLoM4hre4gjzWJB6sUvdunCYZsYemTkzZNwF1rnGea326PHPT3zn5Lmg32M/xfJfByA==} + /@typescript-eslint/type-utils@7.15.0(eslint@8.57.0)(typescript@5.5.3): + resolution: {integrity: sha512-SkgriaeV6PDvpA6253PDVep0qCqgbO1IOBiycjnXsszNTVQe5flN5wR5jiczoEoDEnAqYFSFFc9al9BSGVltkg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -9782,49 +10821,22 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) - '@typescript-eslint/utils': 7.9.0(eslint@8.57.0)(typescript@5.4.5) - debug: 4.3.4 + '@typescript-eslint/typescript-estree': 7.15.0(typescript@5.5.3) + '@typescript-eslint/utils': 7.15.0(eslint@8.57.0)(typescript@5.5.3) + debug: 4.3.5 eslint: 8.57.0 - ts-api-utils: 1.3.0(typescript@5.4.5) - typescript: 5.4.5 + ts-api-utils: 1.3.0(typescript@5.5.3) + typescript: 5.5.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@6.21.0: - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: true - - /@typescript-eslint/types@7.9.0: - resolution: {integrity: sha512-oZQD9HEWQanl9UfsbGVcZ2cGaR0YT5476xfWE0oE5kQa2sNK2frxOlkeacLOTh9po4AlUT5rtkGyYM5kew0z5w==} + /@typescript-eslint/types@7.15.0: + resolution: {integrity: sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==} engines: {node: ^18.18.0 || >=20.0.0} - /@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.5): - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.6.2 - ts-api-utils: 1.3.0(typescript@5.4.5) - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/typescript-estree@7.9.0(typescript@5.4.5): - resolution: {integrity: sha512-zBCMCkrb2YjpKV3LA0ZJubtKCDxLttxfdGmwZvTqqWevUPN0FZvSI26FalGFFUZU/9YQK/A4xcQF9o/VVaCKAg==} + /@typescript-eslint/typescript-estree@7.15.0(typescript@5.5.3): + resolution: {integrity: sha512-gjyB/rHAopL/XxfmYThQbXbzRMGhZzGw6KpcMbfe8Q3nNQKStpxnUKeXb0KiN/fFDR42Z43szs6rY7eHk0zdGQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -9832,82 +10844,55 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/visitor-keys': 7.9.0 - debug: 4.3.4 + '@typescript-eslint/types': 7.15.0 + '@typescript-eslint/visitor-keys': 7.15.0 + debug: 4.3.5 globby: 11.1.0 is-glob: 4.0.3 - minimatch: 9.0.4 - semver: 7.6.2 - ts-api-utils: 1.3.0(typescript@5.4.5) - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - - /@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.5) - eslint: 8.57.0 + minimatch: 9.0.5 semver: 7.6.2 + ts-api-utils: 1.3.0(typescript@5.5.3) + typescript: 5.5.3 transitivePeerDependencies: - supports-color - - typescript - dev: true - /@typescript-eslint/utils@7.9.0(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-5KVRQCzZajmT4Ep+NEgjXCvjuypVvYHUW7RHlXzNPuak2oWpVoD1jf5xCP0dPAuNIchjC7uQyvbdaSTFaLqSdA==} + /@typescript-eslint/utils@7.15.0(eslint@8.57.0)(typescript@5.5.3): + resolution: {integrity: sha512-hfDMDqaqOqsUVGiEPSMLR/AjTSCsmJwjpKkYQRo1FNbmW4tBwBspYDwO9eh7sKSTwMQgBw9/T4DHudPaqshRWA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@typescript-eslint/scope-manager': 7.9.0 - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.15.0 + '@typescript-eslint/types': 7.15.0 + '@typescript-eslint/typescript-estree': 7.15.0(typescript@5.5.3) eslint: 8.57.0 transitivePeerDependencies: - supports-color - typescript - /@typescript-eslint/visitor-keys@6.21.0: - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.21.0 - eslint-visitor-keys: 3.4.3 - dev: true - - /@typescript-eslint/visitor-keys@7.9.0: - resolution: {integrity: sha512-iESPx2TNLDNGQLyjKhUvIKprlP49XNEK+MvIf9nIO7ZZaZdbnfWKHnXAgufpxqfA0YryH8XToi4+CjBgVnFTSQ==} + /@typescript-eslint/visitor-keys@7.15.0: + resolution: {integrity: sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.9.0 + '@typescript-eslint/types': 7.15.0 eslint-visitor-keys: 3.4.3 /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - /@vitejs/plugin-react@4.2.1(vite@5.2.11): - resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} + /@vitejs/plugin-react@4.3.1(vite@5.3.2): + resolution: {integrity: sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.2.0 || ^5.0.0 dependencies: - '@babel/core': 7.24.5 - '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.24.7) '@types/babel__core': 7.20.5 - react-refresh: 0.14.0 - vite: 5.2.11(@types/node@18.11.19) + react-refresh: 0.14.2 + vite: 5.3.2(@types/node@18.11.19) transitivePeerDependencies: - supports-color @@ -9929,19 +10914,11 @@ packages: std-env: 3.7.0 strip-literal: 2.1.0 test-exclude: 6.0.0 - vitest: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + vitest: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) transitivePeerDependencies: - supports-color dev: true - /@vitest/expect@1.3.1: - resolution: {integrity: sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw==} - dependencies: - '@vitest/spy': 1.3.1 - '@vitest/utils': 1.3.1 - chai: 4.4.1 - dev: true - /@vitest/expect@1.6.0: resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} dependencies: @@ -9966,12 +10943,6 @@ packages: pretty-format: 29.7.0 dev: true - /@vitest/spy@1.3.1: - resolution: {integrity: sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig==} - dependencies: - tinyspy: 2.2.1 - dev: true - /@vitest/spy@1.6.0: resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} dependencies: @@ -9990,16 +10961,7 @@ packages: pathe: 1.1.2 picocolors: 1.0.1 sirv: 2.0.4 - vitest: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) - dev: true - - /@vitest/utils@1.3.1: - resolution: {integrity: sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ==} - dependencies: - diff-sequences: 29.6.3 - estree-walker: 3.0.3 - loupe: 2.3.7 - pretty-format: 29.7.0 + vitest: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0) dev: true /@vitest/utils@1.6.0: @@ -10017,25 +10979,131 @@ packages: '@volar/source-map': 1.11.1 dev: true - /@volar/source-map@1.11.1: - resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} - dependencies: - muggle-string: 0.3.1 + /@volar/language-core@2.3.4: + resolution: {integrity: sha512-wXBhY11qG6pCDAqDnbBRFIDSIwbqkWI7no+lj5+L7IlA7HRIjRP7YQLGzT0LF4lS6eHkMSsclXqy9DwYJasZTQ==} + dependencies: + '@volar/source-map': 2.3.4 + dev: true + + /@volar/source-map@1.11.1: + resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} + dependencies: + muggle-string: 0.3.1 + dev: true + + /@volar/source-map@2.3.4: + resolution: {integrity: sha512-C+t63nwcblqLIVTYXaVi/+gC8NukDaDIQI72J3R7aXGvtgaVB16c+J8Iz7/VfOy7kjYv7lf5GhBny6ACw9fTGQ==} + dev: true + + /@volar/typescript@1.11.1: + resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==} + dependencies: + '@volar/language-core': 1.11.1 + path-browserify: 1.0.1 + dev: true + + /@volar/typescript@2.3.4: + resolution: {integrity: sha512-acCvt7dZECyKcvO5geNybmrqOsu9u8n5XP1rfiYsOLYGPxvHRav9BVmEdRyZ3vvY6mNyQ1wLL5Hday4IShe17w==} + dependencies: + '@volar/language-core': 2.3.4 + path-browserify: 1.0.1 + vscode-uri: 3.0.8 + dev: true + + /@vscode/vsce-sign-alpine-arm64@2.0.2: + resolution: {integrity: sha512-E80YvqhtZCLUv3YAf9+tIbbqoinWLCO/B3j03yQPbjT3ZIHCliKZlsy1peNc4XNZ5uIb87Jn0HWx/ZbPXviuAQ==} + cpu: [arm64] + os: [alpine] + requiresBuild: true + dev: true + optional: true + + /@vscode/vsce-sign-alpine-x64@2.0.2: + resolution: {integrity: sha512-n1WC15MSMvTaeJ5KjWCzo0nzjydwxLyoHiMJHu1Ov0VWTZiddasmOQHekA47tFRycnt4FsQrlkSCTdgHppn6bw==} + cpu: [x64] + os: [alpine] + requiresBuild: true + dev: true + optional: true + + /@vscode/vsce-sign-darwin-arm64@2.0.2: + resolution: {integrity: sha512-rz8F4pMcxPj8fjKAJIfkUT8ycG9CjIp888VY/6pq6cuI2qEzQ0+b5p3xb74CJnBbSC0p2eRVoe+WgNCAxCLtzQ==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@vscode/vsce-sign-darwin-x64@2.0.2: + resolution: {integrity: sha512-MCjPrQ5MY/QVoZ6n0D92jcRb7eYvxAujG/AH2yM6lI0BspvJQxp0o9s5oiAM9r32r9tkLpiy5s2icsbwefAQIw==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@vscode/vsce-sign-linux-arm64@2.0.2: + resolution: {integrity: sha512-Ybeu7cA6+/koxszsORXX0OJk9N0GgfHq70Wqi4vv2iJCZvBrOWwcIrxKjvFtwyDgdeQzgPheH5nhLVl5eQy7WA==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@vscode/vsce-sign-linux-arm@2.0.2: + resolution: {integrity: sha512-Fkb5jpbfhZKVw3xwR6t7WYfwKZktVGNXdg1m08uEx1anO0oUPUkoQRsNm4QniL3hmfw0ijg00YA6TrxCRkPVOQ==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@vscode/vsce-sign-linux-x64@2.0.2: + resolution: {integrity: sha512-NsPPFVtLaTlVJKOiTnO8Cl78LZNWy0Q8iAg+LlBiCDEgC12Gt4WXOSs2pmcIjDYzj2kY4NwdeN1mBTaujYZaPg==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@vscode/vsce-sign-win32-arm64@2.0.2: + resolution: {integrity: sha512-wPs848ymZ3Ny+Y1Qlyi7mcT6VSigG89FWQnp2qRYCyMhdJxOpA4lDwxzlpL8fG6xC8GjQjGDkwbkWUcCobvksQ==} + cpu: [arm64] + os: [win32] + requiresBuild: true dev: true + optional: true - /@volar/typescript@1.11.1: - resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==} - dependencies: - '@volar/language-core': 1.11.1 - path-browserify: 1.0.1 + /@vscode/vsce-sign-win32-x64@2.0.2: + resolution: {integrity: sha512-pAiRN6qSAhDM5SVOIxgx+2xnoVUePHbRNC7OD2aOR3WltTKxxF25OfpK8h8UQ7A0BuRkSgREbB59DBlFk4iAeg==} + cpu: [x64] + os: [win32] + requiresBuild: true dev: true + optional: true - /@vscode/vsce@2.26.1: - resolution: {integrity: sha512-QOG6Ht7V93nhwcBxPWcG33UK0qDGEoJdg0xtVeaTN27W6PGdMJUJGTPhB/sNHUIFKwvwzv/zMAHvDgMNXbcwlA==} + /@vscode/vsce-sign@2.0.4: + resolution: {integrity: sha512-0uL32egStKYfy60IqnynAChMTbL0oqpqk0Ew0YHiIb+fayuGZWADuIPHWUcY1GCnAA+VgchOPDMxnc2R3XGWEA==} + requiresBuild: true + optionalDependencies: + '@vscode/vsce-sign-alpine-arm64': 2.0.2 + '@vscode/vsce-sign-alpine-x64': 2.0.2 + '@vscode/vsce-sign-darwin-arm64': 2.0.2 + '@vscode/vsce-sign-darwin-x64': 2.0.2 + '@vscode/vsce-sign-linux-arm': 2.0.2 + '@vscode/vsce-sign-linux-arm64': 2.0.2 + '@vscode/vsce-sign-linux-x64': 2.0.2 + '@vscode/vsce-sign-win32-arm64': 2.0.2 + '@vscode/vsce-sign-win32-x64': 2.0.2 + dev: true + + /@vscode/vsce@2.29.0: + resolution: {integrity: sha512-63+aEO8SpjE6qKiIh2Cqy/P9zC7+USElGwpEdkyPp89xIBDBr5IqeNS3zkD3mp3wZqbvHIpJsCCNu74WQirYCg==} engines: {node: '>= 16'} hasBin: true dependencies: - '@azure/identity': 4.2.1 + '@azure/identity': 4.3.0 + '@vscode/vsce-sign': 2.0.4 azure-devops-node-api: 12.5.0 chalk: 2.4.2 cheerio: 1.0.0-rc.12 @@ -10044,7 +11112,7 @@ packages: form-data: 4.0.0 glob: 7.2.3 hosted-git-info: 4.1.0 - jsonc-parser: 3.2.1 + jsonc-parser: 3.3.1 leven: 3.1.0 markdown-it: 12.3.2 mime: 1.6.0 @@ -10067,7 +11135,7 @@ packages: /@vue/compiler-core@3.4.27: resolution: {integrity: sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==} dependencies: - '@babel/parser': 7.24.5 + '@babel/parser': 7.24.7 '@vue/shared': 3.4.27 entities: 4.5.0 estree-walker: 2.0.2 @@ -10081,7 +11149,7 @@ packages: '@vue/shared': 3.4.27 dev: true - /@vue/language-core@1.8.27(typescript@5.4.5): + /@vue/language-core@1.8.27(typescript@5.5.3): resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} peerDependencies: typescript: '*' @@ -10097,7 +11165,7 @@ packages: minimatch: 9.0.4 muggle-string: 0.3.1 path-browserify: 1.0.1 - typescript: 5.4.5 + typescript: 5.5.3 vue-template-compiler: 2.7.16 dev: true @@ -10214,7 +11282,7 @@ packages: esbuild: '>=0.10.0' dependencies: esbuild: 0.20.2 - tslib: 2.6.2 + tslib: 2.6.3 dev: true /@yarnpkg/fslib@2.10.3: @@ -10229,7 +11297,7 @@ packages: resolution: {integrity: sha512-6xm38yGVIa6mKm/DUCF2zFFJhERh/QWp1ufm4cNUvxsONBmfPg8uZ9pZBdOmF6qFGr/HlT6ABBkCSx/dlEtvWg==} engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'} dependencies: - '@types/emscripten': 1.39.12 + '@types/emscripten': 1.39.13 tslib: 1.14.1 dev: true @@ -10271,12 +11339,12 @@ packages: acorn-walk: 7.2.0 dev: true - /acorn-import-assertions@1.9.0(acorn@8.11.3): - resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + /acorn-import-attributes@1.9.5(acorn@8.12.0): + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: acorn: ^8 dependencies: - acorn: 8.11.3 + acorn: 8.12.0 /acorn-jsx@5.3.2(acorn@7.4.1): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} @@ -10286,12 +11354,12 @@ packages: acorn: 7.4.1 dev: true - /acorn-jsx@5.3.2(acorn@8.11.3): + /acorn-jsx@5.3.2(acorn@8.12.0): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.11.3 + acorn: 8.12.0 /acorn-walk@7.2.0: resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} @@ -10301,6 +11369,14 @@ packages: /acorn-walk@8.3.2: resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} engines: {node: '>=0.4.0'} + dev: true + + /acorn-walk@8.3.3: + resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} + engines: {node: '>=0.4.0'} + dependencies: + acorn: 8.12.0 + dev: false /acorn@7.4.1: resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} @@ -10312,6 +11388,12 @@ packages: resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} hasBin: true + dev: true + + /acorn@8.12.0: + resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} + engines: {node: '>=0.4.0'} + hasBin: true /address@1.2.2: resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} @@ -10321,7 +11403,7 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color dev: true @@ -10330,7 +11412,7 @@ packages: resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} engines: {node: '>= 14'} dependencies: - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -10349,7 +11431,7 @@ packages: indent-string: 5.0.0 dev: true - /ajv-formats@2.1.1(ajv@8.13.0): + /ajv-formats@2.1.1(ajv@8.16.0): resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: ajv: ^8.0.0 @@ -10357,10 +11439,10 @@ packages: ajv: optional: true dependencies: - ajv: 8.13.0 + ajv: 8.16.0 dev: false - /ajv-formats@3.0.1(ajv@8.13.0): + /ajv-formats@3.0.1(ajv@8.16.0): resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} peerDependencies: ajv: ^8.0.0 @@ -10368,7 +11450,7 @@ packages: ajv: optional: true dependencies: - ajv: 8.13.0 + ajv: 8.16.0 dev: true /ajv-keywords@3.5.2(ajv@6.12.6): @@ -10378,12 +11460,12 @@ packages: dependencies: ajv: 6.12.6 - /ajv-keywords@5.1.0(ajv@8.13.0): + /ajv-keywords@5.1.0(ajv@8.16.0): resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} peerDependencies: ajv: ^8.8.2 dependencies: - ajv: 8.13.0 + ajv: 8.16.0 fast-deep-equal: 3.1.3 dev: false @@ -10395,41 +11477,41 @@ packages: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - /ajv@8.13.0: - resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} + /ajv@8.16.0: + resolution: {integrity: sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==} dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 uri-js: 4.4.1 - /algoliasearch-helper@3.19.0(algoliasearch@4.23.3): - resolution: {integrity: sha512-AaSb5DZDMZmDQyIy6lf4aL0OZGgyIdqvLIIvSuVQOIOqfhrYSY7TvotIFI2x0Q3cP3xUpTd7lI1astUC4aXBJw==} + /algoliasearch-helper@3.22.1(algoliasearch@4.24.0): + resolution: {integrity: sha512-fSxJ4YreH4kOME9CnKazbAn2tK/rvBoV37ETd6nTt4j7QfkcnW+c+F22WfuE9Q/sRpvOMnUwU/BXAVEiwW7p/w==} peerDependencies: algoliasearch: '>= 3.1 < 6' dependencies: '@algolia/events': 4.0.1 - algoliasearch: 4.23.3 + algoliasearch: 4.24.0 dev: false - /algoliasearch@4.23.3: - resolution: {integrity: sha512-Le/3YgNvjW9zxIQMRhUHuhiUjAlKY/zsdZpfq4dlLqg6mEm0nL6yk+7f2hDOtLpxsgE4jSzDmvHL7nXdBp5feg==} + /algoliasearch@4.24.0: + resolution: {integrity: sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==} dependencies: - '@algolia/cache-browser-local-storage': 4.23.3 - '@algolia/cache-common': 4.23.3 - '@algolia/cache-in-memory': 4.23.3 - '@algolia/client-account': 4.23.3 - '@algolia/client-analytics': 4.23.3 - '@algolia/client-common': 4.23.3 - '@algolia/client-personalization': 4.23.3 - '@algolia/client-search': 4.23.3 - '@algolia/logger-common': 4.23.3 - '@algolia/logger-console': 4.23.3 - '@algolia/recommend': 4.23.3 - '@algolia/requester-browser-xhr': 4.23.3 - '@algolia/requester-common': 4.23.3 - '@algolia/requester-node-http': 4.23.3 - '@algolia/transporter': 4.23.3 + '@algolia/cache-browser-local-storage': 4.24.0 + '@algolia/cache-common': 4.24.0 + '@algolia/cache-in-memory': 4.24.0 + '@algolia/client-account': 4.24.0 + '@algolia/client-analytics': 4.24.0 + '@algolia/client-common': 4.24.0 + '@algolia/client-personalization': 4.24.0 + '@algolia/client-search': 4.24.0 + '@algolia/logger-common': 4.24.0 + '@algolia/logger-console': 4.24.0 + '@algolia/recommend': 4.24.0 + '@algolia/requester-browser-xhr': 4.24.0 + '@algolia/requester-common': 4.24.0 + '@algolia/requester-node-http': 4.24.0 + '@algolia/transporter': 4.24.0 dev: false /ansi-align@3.0.1: @@ -10472,10 +11554,6 @@ packages: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} - /ansi-sequence-parser@1.1.1: - resolution: {integrity: sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==} - dev: true - /ansi-split@1.0.1: resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==} dependencies: @@ -10532,12 +11610,6 @@ packages: /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - /aria-query@5.1.3: - resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} - dependencies: - deep-equal: 2.2.3 - dev: true - /aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} dependencies: @@ -10653,7 +11725,7 @@ packages: resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} engines: {node: '>=4'} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 dev: true /astring@1.8.6: @@ -10666,25 +11738,26 @@ packages: /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: true /at-least-node@1.0.0: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} engines: {node: '>= 4.0.0'} dev: false - /autoprefixer@10.4.19(postcss@8.4.38): + /autoprefixer@10.4.19(postcss@8.4.39): resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.23.0 - caniuse-lite: 1.0.30001620 + browserslist: 4.23.1 + caniuse-lite: 1.0.30001639 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.1 - postcss: 8.4.38 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: false @@ -10709,25 +11782,25 @@ packages: typed-rest-client: 1.8.11 dev: true - /babel-core@7.0.0-bridge.0(@babel/core@7.24.5): + /babel-core@7.0.0-bridge.0(@babel/core@7.24.7): resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.7 dev: true - /babel-loader@9.1.3(@babel/core@7.24.5)(webpack@5.91.0): + /babel-loader@9.1.3(@babel/core@7.24.7)(webpack@5.92.1): resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} engines: {node: '>= 14.15.0'} peerDependencies: '@babel/core': ^7.12.0 webpack: '>=5' dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.7 find-cache-dir: 4.0.0 schema-utils: 4.2.0 - webpack: 5.91.0(@swc/core@1.5.7) + webpack: 5.92.1(@swc/core@1.6.6) dev: false /babel-plugin-dynamic-import-node@2.3.3: @@ -10745,36 +11818,36 @@ packages: resolve: 1.22.8 dev: false - /babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.24.5): + /babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.24.7): resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/compat-data': 7.24.4 - '@babel/core': 7.24.5 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.5) + '@babel/compat-data': 7.24.7 + '@babel/core': 7.24.7 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.7) semver: 6.3.1 transitivePeerDependencies: - supports-color - /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.5): + /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.7): resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.7) core-js-compat: 3.37.1 transitivePeerDependencies: - supports-color - /babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.24.5): + /babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.24.7): resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.7) transitivePeerDependencies: - supports-color @@ -10852,8 +11925,8 @@ packages: transitivePeerDependencies: - supports-color - /bole@5.0.12: - resolution: {integrity: sha512-G5H5siOlUrcyvYr7kVlQyYMWip0dZ8qa+Uiy+d9QxOvBY2eaP/g8YsJVwvf3VIMbXmYxZIAOmmsuN3rL5r6gwQ==} + /bole@5.0.13: + resolution: {integrity: sha512-JQ3xWh2nYsVUuJx7ZN4fzU3vHpzceWb7CC06LUXWwdY++Hzd7Wola7zN3Ud5XgmOVoH/6KzrdMmJokol/xtejw==} dependencies: fast-safe-stringify: 2.1.1 individual: 3.0.0 @@ -10937,6 +12010,12 @@ packages: dependencies: fill-range: 7.0.1 + /braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.1.1 + /browser-assert@1.2.1: resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} dev: true @@ -10951,15 +12030,15 @@ packages: pako: 0.2.9 dev: true - /browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + /browserslist@4.23.1: + resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001600 - electron-to-chromium: 1.4.722 + caniuse-lite: 1.0.30001639 + electron-to-chromium: 1.4.816 node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.23.0) + update-browserslist-db: 1.0.16(browserslist@4.23.1) /buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} @@ -10998,20 +12077,25 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} - /c8@9.1.0: - resolution: {integrity: sha512-mBWcT5iqNir1zIkzSPyI3NCR9EZCVI3WUD+AVO17MVWTSFNyUueXE82qTeampNtTr+ilN/5Ua3j24LgbCKjDVg==} - engines: {node: '>=14.14.0'} + /c8@10.1.2: + resolution: {integrity: sha512-Qr6rj76eSshu5CgRYvktW0uM0CFY0yi4Fd5D0duDXO6sYinyopmftUiJVuzBQxQcwQLor7JWDVRP+dUfCmzgJw==} + engines: {node: '>=18'} hasBin: true + peerDependencies: + monocart-coverage-reports: ^2 + peerDependenciesMeta: + monocart-coverage-reports: + optional: true dependencies: '@bcoe/v8-coverage': 0.2.3 '@istanbuljs/schema': 0.1.3 find-up: 5.0.0 - foreground-child: 3.1.1 + foreground-child: 3.2.1 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-reports: 3.1.7 - test-exclude: 6.0.0 - v8-to-istanbul: 9.2.0 + test-exclude: 7.0.1 + v8-to-istanbul: 9.3.0 yargs: 17.7.2 yargs-parser: 21.1.1 dev: true @@ -11027,8 +12111,8 @@ packages: dependencies: '@npmcli/fs': 3.1.1 fs-minipass: 3.0.3 - glob: 10.3.15 - lru-cache: 10.2.2 + glob: 10.4.2 + lru-cache: 10.3.0 minipass: 7.1.1 minipass-collect: 2.0.1 minipass-flush: 1.0.5 @@ -11075,7 +12159,7 @@ packages: resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} dependencies: pascal-case: 3.1.2 - tslib: 2.6.2 + tslib: 2.6.3 dev: false /camelcase-keys@6.2.2: @@ -11108,18 +12192,14 @@ packages: /caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: - browserslist: 4.23.0 - caniuse-lite: 1.0.30001600 + browserslist: 4.23.1 + caniuse-lite: 1.0.30001639 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: false - /caniuse-lite@1.0.30001600: - resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==} - - /caniuse-lite@1.0.30001620: - resolution: {integrity: sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==} - dev: false + /caniuse-lite@1.0.30001639: + resolution: {integrity: sha512-eFHflNTBIlFwP2AIKaYuBQN/apnUoKNhBdza8ZnW/h2di4LCZ4xFqYlxUxo+LQ76KFI1PGcC1QDxMbxTZpSCAg==} /ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -11241,8 +12321,8 @@ packages: engines: {node: '>=10'} dev: true - /chrome-trace-event@1.0.3: - resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + /chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} /ci-info@3.9.0: @@ -11405,6 +12485,7 @@ packages: engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 + dev: true /comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} @@ -11583,7 +12664,7 @@ packages: engines: {node: '>=12'} dev: false - /copy-webpack-plugin@11.0.0(webpack@5.91.0): + /copy-webpack-plugin@11.0.0(webpack@5.92.1): resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -11595,13 +12676,13 @@ packages: normalize-path: 3.0.0 schema-utils: 4.2.0 serialize-javascript: 6.0.2 - webpack: 5.91.0(@swc/core@1.5.7) + webpack: 5.92.1(@swc/core@1.6.6) dev: false /core-js-compat@3.37.1: resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 /core-js-pure@3.37.1: resolution: {integrity: sha512-J/r5JTHSmzTxbiYYrzXg9w1VpqrYt+gexenBE9pugeyhwPZTAEJddyiReJWsLO6uNQ8xJZFbod6XC7KKwatCiA==} @@ -11643,7 +12724,7 @@ packages: yaml: 1.10.2 dev: false - /cosmiconfig@8.3.6(typescript@5.4.5): + /cosmiconfig@8.3.6(typescript@5.5.3): resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} peerDependencies: @@ -11656,10 +12737,10 @@ packages: js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 - typescript: 5.4.5 + typescript: 5.5.3 dev: false - /cosmiconfig@9.0.0(typescript@5.4.5): + /cosmiconfig@9.0.0(typescript@5.5.3): resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} peerDependencies: @@ -11672,7 +12753,7 @@ packages: import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 - typescript: 5.4.5 + typescript: 5.5.3 dev: true /create-require@1.1.1: @@ -11704,72 +12785,73 @@ packages: engines: {node: '>=12'} dependencies: type-fest: 1.4.0 - dev: false - /cspell-config-lib@8.8.1: - resolution: {integrity: sha512-NTFfwL7Si1jp+0TINS9miXGdtPtDq95PhSbZKF9jnuBwnsnAURHCGALryLHlkRvj5JZk6dpkDfw4WxqQXdULNw==} + /cspell-config-lib@8.9.1: + resolution: {integrity: sha512-gSXAazmeX+CCpFCsNQQqHRO/nn01kMnCoB0v+7AM0Bip2iDXRl+LmUEJGNcnFaiJG3liaZ8+S5/qCDbza010VQ==} engines: {node: '>=18'} dependencies: - '@cspell/cspell-types': 8.8.1 + '@cspell/cspell-types': 8.9.1 comment-json: 4.2.3 - yaml: 2.4.2 + yaml: 2.4.5 - /cspell-dictionary@8.8.1: - resolution: {integrity: sha512-WJqCLR/icyZc0rphEO6dZZDlSIaWIXd95QjZu3agL7a1LRLjorqhVJty6WZrV4zkOLT6PPB+qcjMxcCCxIlWiw==} + /cspell-dictionary@8.9.1: + resolution: {integrity: sha512-sJy9gApLxJNE+YqWeulCTj3XC/ME4aacOHEl/SZ5bsaxkGx3KzBlzCMG7LfqUjOM8rwfBPsYO7zWPCiJQgxGPg==} engines: {node: '>=18'} dependencies: - '@cspell/cspell-pipe': 8.8.1 - '@cspell/cspell-types': 8.8.1 - cspell-trie-lib: 8.8.1 + '@cspell/cspell-pipe': 8.9.1 + '@cspell/cspell-types': 8.9.1 + cspell-trie-lib: 8.9.1 fast-equals: 5.0.1 gensequence: 7.0.0 - /cspell-gitignore@8.8.1: - resolution: {integrity: sha512-j7wbz/VT/uZ+7oL8xwtxfA05FCv41ZrEKh1aNuMa4BI1xv/VRBmv6thOTz7aq7UcDYPNr8K5VVfBlXT/SvkEvA==} + /cspell-gitignore@8.9.1: + resolution: {integrity: sha512-5RL0mnptiSlF0e+nnJBTlfyN3V/ECsig7jJ0Vw0AImaR7UdFmfxbeQmiZmealapcjhBJ7hnn9ILtemID4y4wxg==} engines: {node: '>=18'} hasBin: true dependencies: - cspell-glob: 8.8.1 + cspell-glob: 8.9.1 find-up-simple: 1.0.0 - /cspell-glob@8.8.1: - resolution: {integrity: sha512-x2rS6gJzaF3KZB6FuNkuS3Kb3ynYns0zfC0uG/QJb9V/xc0DmAjQGQhiLIDx6XmvvDvowKmyQ/kBjY/K4VjCvQ==} + /cspell-glob@8.9.1: + resolution: {integrity: sha512-b60WfczgG3NgGp5pyS4NfwSu7FEF7AmkP1btJqj17UAWsm/idUdGdOgaZazZuPgQJbcQvOlpBQP0+SEi8Jo3QA==} engines: {node: '>=18'} dependencies: - micromatch: 4.0.5 + micromatch: 4.0.7 - /cspell-grammar@8.8.1: - resolution: {integrity: sha512-YTyrutwIkiPH9t255l+BQtneGAkgE3uZXmnRHeIi6X+qdmnf61i8XYaSaO66VKQJX6VPZG18hBVMSUPZmYtoSw==} + /cspell-grammar@8.9.1: + resolution: {integrity: sha512-BqaDp3Z+baLZyb3A5h/zWESsO7e8vUaOlrDt1RRVEnpboIUnj7iNkcFmDp3s9PTpBCURlgHHs8SR/+c49aKDGg==} engines: {node: '>=18'} hasBin: true dependencies: - '@cspell/cspell-pipe': 8.8.1 - '@cspell/cspell-types': 8.8.1 + '@cspell/cspell-pipe': 8.9.1 + '@cspell/cspell-types': 8.9.1 - /cspell-io@8.8.1: - resolution: {integrity: sha512-qwKEV2kfwT9gbq6EpYt6gcEs0oe0sDPG1YJunt8niuX4YoBe7/9ZHBfUyqNOEA+sBmvI/tjY/Wy6g9mmSRaOYA==} + /cspell-io@8.9.1: + resolution: {integrity: sha512-O2F79Rzj28Mvmj4AQLkDWOXWaLnvkJhxPm/Yb3viKlbhwmL5BWUi0APbWA3dtyF+ImX1W27YrNFyvT/PGNZ5Dw==} engines: {node: '>=18'} dependencies: - '@cspell/cspell-service-bus': 8.8.1 + '@cspell/cspell-service-bus': 8.9.1 + '@cspell/url': 8.9.1 - /cspell-lib@8.8.1: - resolution: {integrity: sha512-xntkgDGwDtUehM+fZudp4GbB87a2tY29G6ZqDF7WBcQsg3eyDVK/nc9KzbIfCvdWUCrsB9p+SGBoOmjYTwcocg==} + /cspell-lib@8.9.1: + resolution: {integrity: sha512-xrtoXvSjkMcwE1yUcyjiqLFPZiK0CNQjOKKS9PQaaK7ZBoERPQ7grz05uFCYdboSXt0FhlP8tC9E5oEt+xtGCA==} engines: {node: '>=18'} dependencies: - '@cspell/cspell-bundled-dicts': 8.8.1 - '@cspell/cspell-pipe': 8.8.1 - '@cspell/cspell-resolver': 8.8.1 - '@cspell/cspell-types': 8.8.1 - '@cspell/dynamic-import': 8.8.1 - '@cspell/strong-weak-map': 8.8.1 + '@cspell/cspell-bundled-dicts': 8.9.1 + '@cspell/cspell-pipe': 8.9.1 + '@cspell/cspell-resolver': 8.9.1 + '@cspell/cspell-types': 8.9.1 + '@cspell/dynamic-import': 8.9.1 + '@cspell/strong-weak-map': 8.9.1 + '@cspell/url': 8.9.1 clear-module: 4.1.2 comment-json: 4.2.3 - cspell-config-lib: 8.8.1 - cspell-dictionary: 8.8.1 - cspell-glob: 8.8.1 - cspell-grammar: 8.8.1 - cspell-io: 8.8.1 - cspell-trie-lib: 8.8.1 + cspell-config-lib: 8.9.1 + cspell-dictionary: 8.9.1 + cspell-glob: 8.9.1 + cspell-grammar: 8.9.1 + cspell-io: 8.9.1 + cspell-trie-lib: 8.9.1 env-paths: 3.0.0 fast-equals: 5.0.1 gensequence: 7.0.0 @@ -11779,30 +12861,30 @@ packages: vscode-uri: 3.0.8 xdg-basedir: 5.1.0 - /cspell-trie-lib@8.8.1: - resolution: {integrity: sha512-S84XzQYGqKGApjVgamMp8tbHfKCeGZFxMwqedb4vxEJTYnUuCHaVPX2BK2SKaLSv/Vrd8mrJ/57sx5f8C44cFg==} + /cspell-trie-lib@8.9.1: + resolution: {integrity: sha512-rUED/lNlFcsRfkMal6+zLz7JW3/cV79KGhwxnwu1fjNS0nlLSAUGTTiAQBQSR+pU/UW+BTkmULHVuNh+DUN93w==} engines: {node: '>=18'} dependencies: - '@cspell/cspell-pipe': 8.8.1 - '@cspell/cspell-types': 8.8.1 + '@cspell/cspell-pipe': 8.9.1 + '@cspell/cspell-types': 8.9.1 gensequence: 7.0.0 - /cspell@8.8.1: - resolution: {integrity: sha512-YDJ62Q400LqxKTQV5Nk+Ub2IZGm5L0p832KbFUMy7FXDwkPLaxp3mfcLFV677FRiTcnGUtGYD+SnPkFJ2hiqsg==} + /cspell@8.9.1: + resolution: {integrity: sha512-tNUITJbyeX/JnhBtMtbZ5hDbkNIHB72iQx3Uw51sWvo8YmIhaP6ma1W8PPNteu8CSlI7r8Z412wpjyR0Mnsr6A==} engines: {node: '>=18'} hasBin: true dependencies: - '@cspell/cspell-json-reporter': 8.8.1 - '@cspell/cspell-pipe': 8.8.1 - '@cspell/cspell-types': 8.8.1 - '@cspell/dynamic-import': 8.8.1 + '@cspell/cspell-json-reporter': 8.9.1 + '@cspell/cspell-pipe': 8.9.1 + '@cspell/cspell-types': 8.9.1 + '@cspell/dynamic-import': 8.9.1 chalk: 5.3.0 chalk-template: 1.1.0 commander: 12.1.0 - cspell-gitignore: 8.8.1 - cspell-glob: 8.8.1 - cspell-io: 8.8.1 - cspell-lib: 8.8.1 + cspell-gitignore: 8.9.1 + cspell-glob: 8.9.1 + cspell-io: 8.9.1 + cspell-lib: 8.9.1 fast-glob: 3.3.2 fast-json-stable-stringify: 2.1.0 file-entry-cache: 8.0.0 @@ -11811,16 +12893,16 @@ packages: strip-ansi: 7.1.0 vscode-uri: 3.0.8 - /css-declaration-sorter@7.2.0(postcss@8.4.38): + /css-declaration-sorter@7.2.0(postcss@8.4.39): resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.0.9 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 dev: false - /css-loader@6.11.0(webpack@5.91.0): + /css-loader@6.11.0(webpack@5.92.1): resolution: {integrity: sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -11832,18 +12914,18 @@ packages: webpack: optional: true dependencies: - icss-utils: 5.1.0(postcss@8.4.38) - postcss: 8.4.38 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.38) - postcss-modules-local-by-default: 4.0.5(postcss@8.4.38) - postcss-modules-scope: 3.2.0(postcss@8.4.38) - postcss-modules-values: 4.0.0(postcss@8.4.38) + icss-utils: 5.1.0(postcss@8.4.39) + postcss: 8.4.39 + postcss-modules-extract-imports: 3.1.0(postcss@8.4.39) + postcss-modules-local-by-default: 4.0.5(postcss@8.4.39) + postcss-modules-scope: 3.2.0(postcss@8.4.39) + postcss-modules-values: 4.0.0(postcss@8.4.39) postcss-value-parser: 4.2.0 semver: 7.6.2 - webpack: 5.91.0(@swc/core@1.5.7) + webpack: 5.92.1(@swc/core@1.6.6) dev: false - /css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(webpack@5.91.0): + /css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(webpack@5.92.1): resolution: {integrity: sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -11870,12 +12952,12 @@ packages: dependencies: '@jridgewell/trace-mapping': 0.3.25 clean-css: 5.3.3 - cssnano: 6.1.2(postcss@8.4.38) + cssnano: 6.1.2(postcss@8.4.39) jest-worker: 29.7.0 - postcss: 8.4.38 + postcss: 8.4.39 schema-utils: 4.2.0 serialize-javascript: 6.0.2 - webpack: 5.91.0(@swc/core@1.5.7) + webpack: 5.92.1(@swc/core@1.6.6) dev: false /css-select@4.3.0: @@ -11927,79 +13009,79 @@ packages: hasBin: true dev: false - /cssnano-preset-advanced@6.1.2(postcss@8.4.38): + /cssnano-preset-advanced@6.1.2(postcss@8.4.39): resolution: {integrity: sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - autoprefixer: 10.4.19(postcss@8.4.38) - browserslist: 4.23.0 - cssnano-preset-default: 6.1.2(postcss@8.4.38) - postcss: 8.4.38 - postcss-discard-unused: 6.0.5(postcss@8.4.38) - postcss-merge-idents: 6.0.3(postcss@8.4.38) - postcss-reduce-idents: 6.0.3(postcss@8.4.38) - postcss-zindex: 6.0.2(postcss@8.4.38) + autoprefixer: 10.4.19(postcss@8.4.39) + browserslist: 4.23.1 + cssnano-preset-default: 6.1.2(postcss@8.4.39) + postcss: 8.4.39 + postcss-discard-unused: 6.0.5(postcss@8.4.39) + postcss-merge-idents: 6.0.3(postcss@8.4.39) + postcss-reduce-idents: 6.0.3(postcss@8.4.39) + postcss-zindex: 6.0.2(postcss@8.4.39) dev: false - /cssnano-preset-default@6.1.2(postcss@8.4.38): + /cssnano-preset-default@6.1.2(postcss@8.4.39): resolution: {integrity: sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.23.0 - css-declaration-sorter: 7.2.0(postcss@8.4.38) - cssnano-utils: 4.0.2(postcss@8.4.38) - postcss: 8.4.38 - postcss-calc: 9.0.1(postcss@8.4.38) - postcss-colormin: 6.1.0(postcss@8.4.38) - postcss-convert-values: 6.1.0(postcss@8.4.38) - postcss-discard-comments: 6.0.2(postcss@8.4.38) - postcss-discard-duplicates: 6.0.3(postcss@8.4.38) - postcss-discard-empty: 6.0.3(postcss@8.4.38) - postcss-discard-overridden: 6.0.2(postcss@8.4.38) - postcss-merge-longhand: 6.0.5(postcss@8.4.38) - postcss-merge-rules: 6.1.1(postcss@8.4.38) - postcss-minify-font-values: 6.1.0(postcss@8.4.38) - postcss-minify-gradients: 6.0.3(postcss@8.4.38) - postcss-minify-params: 6.1.0(postcss@8.4.38) - postcss-minify-selectors: 6.0.4(postcss@8.4.38) - postcss-normalize-charset: 6.0.2(postcss@8.4.38) - postcss-normalize-display-values: 6.0.2(postcss@8.4.38) - postcss-normalize-positions: 6.0.2(postcss@8.4.38) - postcss-normalize-repeat-style: 6.0.2(postcss@8.4.38) - postcss-normalize-string: 6.0.2(postcss@8.4.38) - postcss-normalize-timing-functions: 6.0.2(postcss@8.4.38) - postcss-normalize-unicode: 6.1.0(postcss@8.4.38) - postcss-normalize-url: 6.0.2(postcss@8.4.38) - postcss-normalize-whitespace: 6.0.2(postcss@8.4.38) - postcss-ordered-values: 6.0.2(postcss@8.4.38) - postcss-reduce-initial: 6.1.0(postcss@8.4.38) - postcss-reduce-transforms: 6.0.2(postcss@8.4.38) - postcss-svgo: 6.0.3(postcss@8.4.38) - postcss-unique-selectors: 6.0.4(postcss@8.4.38) - dev: false - - /cssnano-utils@4.0.2(postcss@8.4.38): + browserslist: 4.23.1 + css-declaration-sorter: 7.2.0(postcss@8.4.39) + cssnano-utils: 4.0.2(postcss@8.4.39) + postcss: 8.4.39 + postcss-calc: 9.0.1(postcss@8.4.39) + postcss-colormin: 6.1.0(postcss@8.4.39) + postcss-convert-values: 6.1.0(postcss@8.4.39) + postcss-discard-comments: 6.0.2(postcss@8.4.39) + postcss-discard-duplicates: 6.0.3(postcss@8.4.39) + postcss-discard-empty: 6.0.3(postcss@8.4.39) + postcss-discard-overridden: 6.0.2(postcss@8.4.39) + postcss-merge-longhand: 6.0.5(postcss@8.4.39) + postcss-merge-rules: 6.1.1(postcss@8.4.39) + postcss-minify-font-values: 6.1.0(postcss@8.4.39) + postcss-minify-gradients: 6.0.3(postcss@8.4.39) + postcss-minify-params: 6.1.0(postcss@8.4.39) + postcss-minify-selectors: 6.0.4(postcss@8.4.39) + postcss-normalize-charset: 6.0.2(postcss@8.4.39) + postcss-normalize-display-values: 6.0.2(postcss@8.4.39) + postcss-normalize-positions: 6.0.2(postcss@8.4.39) + postcss-normalize-repeat-style: 6.0.2(postcss@8.4.39) + postcss-normalize-string: 6.0.2(postcss@8.4.39) + postcss-normalize-timing-functions: 6.0.2(postcss@8.4.39) + postcss-normalize-unicode: 6.1.0(postcss@8.4.39) + postcss-normalize-url: 6.0.2(postcss@8.4.39) + postcss-normalize-whitespace: 6.0.2(postcss@8.4.39) + postcss-ordered-values: 6.0.2(postcss@8.4.39) + postcss-reduce-initial: 6.1.0(postcss@8.4.39) + postcss-reduce-transforms: 6.0.2(postcss@8.4.39) + postcss-svgo: 6.0.3(postcss@8.4.39) + postcss-unique-selectors: 6.0.4(postcss@8.4.39) + dev: false + + /cssnano-utils@4.0.2(postcss@8.4.39): resolution: {integrity: sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 dev: false - /cssnano@6.1.2(postcss@8.4.38): + /cssnano@6.1.2(postcss@8.4.39): resolution: {integrity: sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - cssnano-preset-default: 6.1.2(postcss@8.4.38) - lilconfig: 3.1.1 - postcss: 8.4.38 + cssnano-preset-default: 6.1.2(postcss@8.4.39) + lilconfig: 3.1.2 + postcss: 8.4.39 dev: false /csso@5.0.5: @@ -12331,8 +13413,8 @@ packages: resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} dev: false - /debounce@2.0.0: - resolution: {integrity: sha512-xRetU6gL1VJbs85Mc4FoEGSjQxzpdxRyFhe3lmWFyy2EzydIcD4xzUvRJMD+NPDfMwKNhxa3PvsIOU32luIWeA==} + /debounce@2.1.0: + resolution: {integrity: sha512-OkL3+0pPWCqoBc/nhO9u6TIQNTK44fnBnzuVtJAbp13Naxw9R6u21x+8tVTka87AhDZ3htqZ2pSSsZl9fqL2Wg==} engines: {node: '>=18'} dev: false @@ -12368,6 +13450,17 @@ packages: dependencies: ms: 2.1.2 + /debug@4.3.5: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + /decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} dev: true @@ -12394,30 +13487,6 @@ packages: type-detect: 4.0.8 dev: true - /deep-equal@2.2.3: - resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.1 - call-bind: 1.0.7 - es-get-iterator: 1.1.3 - get-intrinsic: 1.2.4 - is-arguments: 1.1.1 - is-array-buffer: 3.0.4 - is-date-object: 1.0.5 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.3 - isarray: 2.0.5 - object-is: 1.1.6 - object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 - side-channel: 1.0.6 - which-boxed-primitive: 1.0.2 - which-collection: 1.0.2 - which-typed-array: 1.1.15 - dev: true - /deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} @@ -12491,6 +13560,7 @@ packages: p-map: 4.0.0 rimraf: 3.0.2 slash: 3.0.0 + dev: false /delaunator@5.0.1: resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==} @@ -12500,6 +13570,7 @@ packages: /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} + dev: true /depd@1.1.2: resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} @@ -12560,7 +13631,7 @@ packages: hasBin: true dependencies: address: 1.2.2 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -12626,7 +13697,7 @@ packages: /dom-helpers@5.2.1: resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.7 csstype: 3.1.3 dev: false @@ -12691,7 +13762,7 @@ packages: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} dependencies: no-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.6.3 dev: false /dot-prop@6.0.1: @@ -12738,8 +13809,8 @@ packages: escape-html: 1.0.3 dev: true - /ecmarkup@18.3.1: - resolution: {integrity: sha512-ouyfwgVjtvyF9AdAQnI9krCWNE5srK90XGPym8vs6WPtjUso6Pq887DwAYBDbga9lrfwezWo5n8hGu9amYYu1g==} + /ecmarkup@19.0.0: + resolution: {integrity: sha512-ncn5LXs46jPqcQSO/XdJCOOsdAvC8xT/Yebxted4qgpYWLisY4AEdOdZ4OXKgmPXGgWBqAgCSoV0obvEBEz8Hg==} engines: {node: '>= 12 || ^11.10.1 || ^10.13 || ^8.10'} hasBin: true dependencies: @@ -12781,8 +13852,8 @@ packages: jake: 10.9.1 dev: true - /electron-to-chromium@1.4.722: - resolution: {integrity: sha512-5nLE0TWFFpZ80Crhtp4pIp8LXCztjYX41yUcV6b+bKR2PqzjskTMOOlBi1VjBHlvHwS+4gar7kNKOrsbsewEZQ==} + /electron-to-chromium@1.4.816: + resolution: {integrity: sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==} /elkjs@0.9.3: resolution: {integrity: sha512-f/ZeWvW/BCXbhGEf1Ujp29EASo/lk1FDnETgNKwJrsVvGZhUWCZyg3xLJjAsxfOmt8KjswHmI5EwCQcPMpOYhQ==} @@ -12828,8 +13899,8 @@ packages: once: 1.4.0 dev: true - /enhanced-resolve@5.16.1: - resolution: {integrity: sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw==} + /enhanced-resolve@5.17.0: + resolution: {integrity: sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==} engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.11 @@ -12941,22 +14012,8 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - /es-get-iterator@1.1.3: - resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - is-arguments: 1.1.1 - is-map: 2.0.3 - is-set: 2.0.3 - is-string: 1.0.7 - isarray: 2.0.5 - stop-iteration-iterator: 1.0.0 - dev: true - - /es-module-lexer@1.5.3: - resolution: {integrity: sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==} + /es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} /es-module-shims@1.10.0: resolution: {integrity: sha512-3PmuShQBd9d8pulTFx6L7HKgncnZ1oeSSbrEfnUasb3Tv974BAvyFtW1HLPJSkh5fCaU9JNZbBzPdbxSwg2zqA==} @@ -13001,7 +14058,7 @@ packages: peerDependencies: esbuild: '>=0.12 <1' dependencies: - debug: 4.3.4 + debug: 4.3.5 esbuild: 0.20.2 transitivePeerDependencies: - supports-color @@ -13036,6 +14093,37 @@ packages: '@esbuild/win32-arm64': 0.20.2 '@esbuild/win32-ia32': 0.20.2 '@esbuild/win32-x64': 0.20.2 + dev: true + + /esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 /escalade@3.1.2: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} @@ -13091,7 +14179,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.9.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.15.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} engines: {node: '>=4'} peerDependencies: @@ -13112,7 +14200,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 7.9.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.15.0(eslint@8.57.0)(typescript@5.5.3) debug: 3.2.7 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 @@ -13120,22 +14208,22 @@ packages: - supports-color dev: true - /eslint-plugin-deprecation@2.0.0(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-OAm9Ohzbj11/ZFyICyR5N6LbOIvQMp7ZU2zI7Ej0jIc8kiGUERXPNMfw2QqqHD1ZHtjMub3yPZILovYEYucgoQ==} + /eslint-plugin-deprecation@3.0.0(eslint@8.57.0)(typescript@5.5.3): + resolution: {integrity: sha512-JuVLdNg/uf0Adjg2tpTyYoYaMbwQNn/c78P1HcccokvhtRphgnRjZDKmhlxbxYptppex03zO76f97DD/yQHv7A==} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.0.0 typescript: ^4.2.4 || ^5.0.0 dependencies: - '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.15.0(eslint@8.57.0)(typescript@5.5.3) eslint: 8.57.0 - tslib: 2.6.2 - tsutils: 3.21.0(typescript@5.4.5) - typescript: 5.4.5 + ts-api-utils: 1.3.0(typescript@5.5.3) + tslib: 2.6.3 + typescript: 5.5.3 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.9.0)(eslint@8.57.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.15.0)(eslint@8.57.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -13145,7 +14233,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 7.9.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.15.0(eslint@8.57.0)(typescript@5.5.3) array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.2 @@ -13154,7 +14242,7 @@ packages: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.9.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.15.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -13170,13 +14258,13 @@ packages: - supports-color dev: true - /eslint-plugin-unicorn@53.0.0(eslint@8.57.0): - resolution: {integrity: sha512-kuTcNo9IwwUCfyHGwQFOK/HjJAYzbODHN3wP0PgqbW+jbXqpNWxNVpVhj2tO9SixBwuAdmal8rVcWKBxwFnGuw==} + /eslint-plugin-unicorn@54.0.0(eslint@8.57.0): + resolution: {integrity: sha512-XxYLRiYtAWiAjPv6z4JREby1TAE2byBC7wlh0V4vWDCpccOSU1KovWV//jqPXF6bq3WKxqX9rdjoRQ1EhdmNdQ==} engines: {node: '>=18.18'} peerDependencies: eslint: '>=8.56.0' dependencies: - '@babel/helper-validator-identifier': 7.24.5 + '@babel/helper-validator-identifier': 7.24.7 '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint/eslintrc': 3.1.0 ci-info: 4.0.0 @@ -13197,7 +14285,7 @@ packages: - supports-color dev: true - /eslint-plugin-vitest@0.5.4(eslint@8.57.0)(typescript@5.4.5)(vitest@1.6.0): + /eslint-plugin-vitest@0.5.4(eslint@8.57.0)(typescript@5.5.3)(vitest@1.6.0): resolution: {integrity: sha512-um+odCkccAHU53WdKAw39MY61+1x990uXjSPguUCq3VcEHdqJrOb8OTMrbYlY6f9jAKx7x98kLVlIe3RJeJqoQ==} engines: {node: ^18.0.0 || >= 20.0.0} peerDependencies: @@ -13210,9 +14298,9 @@ packages: vitest: optional: true dependencies: - '@typescript-eslint/utils': 7.9.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.15.0(eslint@8.57.0)(typescript@5.5.3) eslint: 8.57.0 - vitest: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0) + vitest: 1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.12.3) transitivePeerDependencies: - supports-color - typescript @@ -13287,12 +14375,12 @@ packages: transitivePeerDependencies: - supports-color - /espree@10.0.1: - resolution: {integrity: sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==} + /espree@10.1.0: + resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) + acorn: 8.12.0 + acorn-jsx: 5.3.2(acorn@8.12.0) eslint-visitor-keys: 4.0.0 dev: true @@ -13300,8 +14388,8 @@ packages: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) + acorn: 8.12.0 + acorn-jsx: 5.3.2(acorn@8.12.0) eslint-visitor-keys: 3.4.3 /esprima@4.0.1: @@ -13352,11 +14440,10 @@ packages: astring: 1.8.6 source-map: 0.7.4 - /estree-util-value-to-estree@3.1.1: - resolution: {integrity: sha512-5mvUrF2suuv5f5cGDnDphIy4/gW86z82kl5qG6mM9z04SEQI4FB5Apmaw/TGEf3l55nLtMs5s51dmhUzvAHQCA==} + /estree-util-value-to-estree@3.1.2: + resolution: {integrity: sha512-S0gW2+XZkmsx00tU2uJ4L9hUT7IFabbml9pHh2WQqFmAbxit++YGZne0sKJbNwkj9Wvg9E4uqWl4nCIFQMmfag==} dependencies: '@types/estree': 1.0.5 - is-plain-obj: 4.1.0 dev: false /estree-util-visit@2.0.0: @@ -13517,7 +14604,7 @@ packages: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.5 + micromatch: 4.0.7 /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -13534,6 +14621,13 @@ packages: punycode: 1.4.1 dev: false + /fast-xml-parser@4.4.0: + resolution: {integrity: sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==} + hasBin: true + dependencies: + strnum: 1.0.5 + dev: false + /fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: @@ -13585,7 +14679,7 @@ packages: dependencies: flat-cache: 4.0.1 - /file-loader@6.2.0(webpack@5.91.0): + /file-loader@6.2.0(webpack@5.92.1): resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -13593,7 +14687,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.91.0(@swc/core@1.5.7) + webpack: 5.92.1(@swc/core@1.6.6) /file-system-cache@2.3.0: resolution: {integrity: sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ==} @@ -13619,6 +14713,12 @@ packages: dependencies: to-regex-range: 5.0.1 + /fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + /finalhandler@1.2.0: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} @@ -13725,8 +14825,8 @@ packages: /flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - /flow-parser@0.236.0: - resolution: {integrity: sha512-0OEk9Gr+Yj7wjDW2KgaNYUypKau71jAfFyeLQF5iVtxqc6uJHag/MT7pmaEApf4qM7u86DkBcd4ualddYMfbLw==} + /flow-parser@0.238.3: + resolution: {integrity: sha512-hNUhucq8V6KWSX1skXUS3vnDmrRNuKWzDvEVK5b+n97uMF32zj2y8pmcLDQEqlY5u926B0GYGWT/3XhwDJfLOQ==} engines: {node: '>=0.4.0'} dev: true @@ -13746,15 +14846,14 @@ packages: is-callable: 1.2.7 dev: true - /foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + /foreground-child@3.2.1: + resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} engines: {node: '>=14'} dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 - dev: true - /fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.5)(webpack@5.91.0): + /fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.5.3)(webpack@5.92.1): resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} engines: {node: '>=10', yarn: '>=1.0.0'} peerDependencies: @@ -13768,7 +14867,7 @@ packages: vue-template-compiler: optional: true dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.7 '@types/json-schema': 7.0.15 chalk: 4.1.2 chokidar: 3.6.0 @@ -13782,8 +14881,8 @@ packages: schema-utils: 2.7.0 semver: 7.6.2 tapable: 1.1.3 - typescript: 5.4.5 - webpack: 5.91.0(@swc/core@1.5.7) + typescript: 5.5.3 + webpack: 5.92.1(@swc/core@1.6.6) dev: false /form-data-encoder@2.1.4: @@ -13798,6 +14897,7 @@ packages: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 + dev: true /format@0.2.2: resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} @@ -13992,7 +15092,7 @@ packages: consola: 3.2.3 defu: 6.1.4 node-fetch-native: 1.6.4 - nypm: 0.3.8 + nypm: 0.3.9 ohash: 1.1.3 pathe: 1.1.2 tar: 6.2.1 @@ -14038,13 +15138,25 @@ packages: engines: {node: '>=16 || 14 >=14.18'} hasBin: true dependencies: - foreground-child: 3.1.1 + foreground-child: 3.2.1 jackspeak: 2.3.6 minimatch: 9.0.4 minipass: 7.1.1 path-scurry: 1.11.1 dev: true + /glob@10.4.2: + resolution: {integrity: sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==} + engines: {node: '>=16 || 14 >=14.18'} + hasBin: true + dependencies: + foreground-child: 3.2.1 + jackspeak: 3.4.0 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 1.11.1 + /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: @@ -14055,16 +15167,6 @@ packages: once: 1.4.0 path-is-absolute: 1.0.1 - /glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - /global-directory@4.0.1: resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} engines: {node: '>=18'} @@ -14148,6 +15250,18 @@ packages: path-type: 5.0.0 slash: 5.1.0 unicorn-magic: 0.1.0 + dev: true + + /globby@14.0.2: + resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} + engines: {node: '>=18'} + dependencies: + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.2 + ignore: 5.3.1 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} @@ -14232,11 +15346,11 @@ packages: source-map: 0.6.1 wordwrap: 1.0.0 optionalDependencies: - uglify-js: 3.17.4 + uglify-js: 3.18.0 dev: true - /happy-dom@14.11.0: - resolution: {integrity: sha512-vu25dY7YJqLuTG/3ADC0FZRRF0yNBp3q2K0YTN08opXdZi8V/YzIJDNJWFiCnDIuyc+RrCIE093+H5fa9Trlxg==} + /happy-dom@14.12.3: + resolution: {integrity: sha512-vsYlEs3E9gLwA1Hp+w3qzu+RUDFf4VTT8cyKqVICoZ2k7WM++Qyd2LwzyTi5bqMJFiIC/vNpTDYuxdreENRK/g==} engines: {node: '>=16.0.0'} dependencies: entities: 4.5.0 @@ -14310,8 +15424,8 @@ packages: '@types/hast': 3.0.4 dev: false - /hast-util-raw@9.0.3: - resolution: {integrity: sha512-ICWvVOF2fq4+7CMmtCPD5CM4QKjPbHpPotE6+8tDooV0ZuyJVUzHsrNX+O5NaRbieTf0F7FfeBOMAwi6Td0+yQ==} + /hast-util-raw@9.0.4: + resolution: {integrity: sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==} dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.2 @@ -14319,7 +15433,7 @@ packages: hast-util-from-parse5: 8.0.1 hast-util-to-parse5: 8.0.0 html-void-elements: 3.0.0 - mdast-util-to-hast: 13.1.0 + mdast-util-to-hast: 13.2.0 parse5: 7.1.2 unist-util-position: 5.0.0 unist-util-visit: 5.0.0 @@ -14410,7 +15524,7 @@ packages: /history@4.10.1: resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.7 loose-envify: 1.4.0 resolve-pathname: 3.0.0 tiny-invariant: 1.3.3 @@ -14439,7 +15553,7 @@ packages: resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: - lru-cache: 10.2.2 + lru-cache: 10.3.0 dev: true /hpack.js@2.1.6: @@ -14480,7 +15594,7 @@ packages: he: 1.2.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.31.0 + terser: 5.31.1 dev: false /html-minifier-terser@7.2.0: @@ -14494,7 +15608,7 @@ packages: entities: 4.5.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.31.0 + terser: 5.31.1 dev: false /html-tags@3.3.1: @@ -14505,7 +15619,7 @@ packages: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} dev: false - /html-webpack-plugin@5.6.0(webpack@5.91.0): + /html-webpack-plugin@5.6.0(webpack@5.92.1): resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} engines: {node: '>=10.13.0'} peerDependencies: @@ -14522,7 +15636,7 @@ packages: lodash: 4.17.21 pretty-error: 4.0.0 tapable: 2.2.1 - webpack: 5.91.0(@swc/core@1.5.7) + webpack: 5.92.1(@swc/core@1.6.6) dev: false /htmlparser2@6.1.0: @@ -14579,7 +15693,7 @@ packages: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color dev: true @@ -14589,7 +15703,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.1 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -14607,7 +15721,7 @@ packages: http-proxy: 1.18.1 is-glob: 4.0.3 is-plain-obj: 3.0.0 - micromatch: 4.0.5 + micromatch: 4.0.7 transitivePeerDependencies: - debug dev: false @@ -14636,17 +15750,17 @@ packages: engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color dev: true - /https-proxy-agent@7.0.4: - resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} + /https-proxy-agent@7.0.5: + resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} engines: {node: '>= 14'} dependencies: agent-base: 7.1.1 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -14671,13 +15785,13 @@ packages: dependencies: safer-buffer: 2.1.2 - /icss-utils@5.1.0(postcss@8.4.38): + /icss-utils@5.1.0(postcss@8.4.39): resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 dev: false /ieee754@1.2.1: @@ -14687,7 +15801,7 @@ packages: resolution: {integrity: sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - minimatch: 9.0.4 + minimatch: 9.0.5 dev: true /ignore@5.3.1: @@ -14810,10 +15924,6 @@ packages: sprintf-js: 1.1.3 dev: true - /ip@2.0.1: - resolution: {integrity: sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==} - dev: true - /ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} @@ -14976,11 +16086,6 @@ packages: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} dev: true - /is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - dev: true - /is-module@1.0.0: resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} @@ -15026,6 +16131,7 @@ packages: /is-path-cwd@2.2.0: resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} engines: {node: '>=6'} + dev: false /is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} @@ -15087,11 +16193,6 @@ packages: engines: {node: '>=6'} dev: false - /is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - dev: true - /is-shared-array-buffer@1.0.3: resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} engines: {node: '>= 0.4'} @@ -15154,25 +16255,12 @@ packages: engines: {node: '>=18'} dev: true - /is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - dev: true - /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: call-bind: 1.0.7 dev: true - /is-weakset@2.0.3: - resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - dev: true - /is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} @@ -15253,6 +16341,14 @@ packages: '@pkgjs/parseargs': 0.11.0 dev: true + /jackspeak@3.4.0: + resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==} + engines: {node: '>=14'} + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + /jake@10.9.1: resolution: {integrity: sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==} engines: {node: '>=10'} @@ -15294,8 +16390,8 @@ packages: supports-color: 8.1.1 dev: false - /jiti@1.21.0: - resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + /jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true dev: false @@ -15303,8 +16399,8 @@ packages: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} dev: true - /joi@17.13.1: - resolution: {integrity: sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg==} + /joi@17.13.3: + resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} dependencies: '@hapi/hoek': 9.3.0 '@hapi/topo': 5.1.0 @@ -15336,7 +16432,7 @@ packages: resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} dev: true - /jscodeshift@0.15.2(@babel/preset-env@7.24.5): + /jscodeshift@0.15.2(@babel/preset-env@7.24.7): resolution: {integrity: sha512-FquR7Okgmc4Sd0aEDwqho3rEiKR3BdvuG9jfdHjLJ6JQoWSMpavug3AoIfnfWhxFlf+5pzQh8qjqz0DWFrNQzA==} hasBin: true peerDependencies: @@ -15345,25 +16441,25 @@ packages: '@babel/preset-env': optional: true dependencies: - '@babel/core': 7.24.5 - '@babel/parser': 7.24.5 - '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-optional-chaining': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.5) - '@babel/preset-env': 7.24.5(@babel/core@7.24.5) - '@babel/preset-flow': 7.24.6(@babel/core@7.24.5) - '@babel/preset-typescript': 7.24.1(@babel/core@7.24.5) - '@babel/register': 7.24.6(@babel/core@7.24.5) - babel-core: 7.0.0-bridge.0(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-modules-commonjs': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.24.7) + '@babel/preset-env': 7.24.7(@babel/core@7.24.7) + '@babel/preset-flow': 7.24.7(@babel/core@7.24.7) + '@babel/preset-typescript': 7.24.7(@babel/core@7.24.7) + '@babel/register': 7.24.6(@babel/core@7.24.7) + babel-core: 7.0.0-bridge.0(@babel/core@7.24.7) chalk: 4.1.2 - flow-parser: 0.236.0 + flow-parser: 0.238.3 graceful-fs: 4.2.11 - micromatch: 4.0.5 + micromatch: 4.0.7 neo-async: 2.6.2 node-dir: 0.1.17 - recast: 0.23.7 + recast: 0.23.9 temp: 0.8.4 write-file-atomic: 2.4.3 transitivePeerDependencies: @@ -15380,7 +16476,7 @@ packages: optional: true dependencies: abab: 2.0.6 - acorn: 8.11.3 + acorn: 8.12.0 acorn-globals: 6.0.0 cssom: 0.5.0 cssstyle: 2.3.0 @@ -15397,14 +16493,14 @@ packages: parse5: 6.0.1 saxes: 5.0.1 symbol-tree: 3.2.4 - tough-cookie: 4.1.3 + tough-cookie: 4.1.4 w3c-hr-time: 1.0.2 w3c-xmlserializer: 3.0.0 webidl-conversions: 7.0.0 whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 whatwg-url: 10.0.0 - ws: 8.17.0 + ws: 8.17.1 xml-name-validator: 4.0.0 transitivePeerDependencies: - bufferutil @@ -15462,8 +16558,8 @@ packages: engines: {node: '>=6'} hasBin: true - /jsonc-parser@3.2.1: - resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} + /jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} dev: true /jsonfile@4.0.0: @@ -15575,8 +16671,8 @@ packages: package-json: 8.1.1 dev: false - /launch-editor@2.6.1: - resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} + /launch-editor@2.8.0: + resolution: {integrity: sha512-vJranOAJrI/llyWGRQqiDM+adrw+k83fvmmx3+nV47g3+36xM15jE+zyZ6Ffel02+xSvuM0b2GDRosXZkbb6wA==} dependencies: picocolors: 1.0.1 shell-quote: 1.8.1 @@ -15605,8 +16701,8 @@ packages: prelude-ls: 1.2.1 type-check: 0.4.0 - /lilconfig@3.1.1: - resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + /lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} engines: {node: '>=14'} dev: false @@ -15619,6 +16715,12 @@ packages: uc.micro: 1.0.6 dev: true + /linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + dependencies: + uc.micro: 2.1.0 + dev: true + /load-json-file@6.2.0: resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} engines: {node: '>=8'} @@ -15640,8 +16742,8 @@ packages: emojis-list: 3.0.0 json5: 2.2.3 - /loader-utils@3.2.1: - resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==} + /loader-utils@3.3.1: + resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==} engines: {node: '>= 12.13.0'} dev: false @@ -15767,7 +16869,7 @@ packages: /lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 dev: false /lowercase-keys@3.0.0: @@ -15778,6 +16880,10 @@ packages: /lru-cache@10.2.2: resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} engines: {node: 14 || >=16.14} + + /lru-cache@10.3.0: + resolution: {integrity: sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==} + engines: {node: 14 || >=16.14} dev: true /lru-cache@5.1.1: @@ -15818,13 +16924,6 @@ packages: resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - - /magic-string@0.30.8: - resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 /magicast@0.3.4: resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} @@ -15909,16 +17008,22 @@ packages: uc.micro: 1.0.6 dev: true + /markdown-it@14.1.0: + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + hasBin: true + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + dev: true + /markdown-table@3.0.3: resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} dev: false - /marked@4.3.0: - resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} - engines: {node: '>= 12'} - hasBin: true - dev: true - /matched@5.0.1: resolution: {integrity: sha512-E1fhSTPRyhAlNaNvGXAgZQlq1hL0bgYMTk/6bktVlIhzUnX/SZs7296ACdVeNJE8xFNGSuvd9IpI7vSnmcqLvw==} engines: {node: '>=10'} @@ -15933,7 +17038,7 @@ packages: '@types/mdast': 4.0.4 '@types/unist': 3.0.2 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 parse-entities: 4.0.1 stringify-entities: 4.0.4 @@ -15969,8 +17074,8 @@ packages: transitivePeerDependencies: - supports-color - /mdast-util-from-markdown@2.0.0: - resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} + /mdast-util-from-markdown@2.0.1: + resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.2 @@ -15993,7 +17098,7 @@ packages: '@types/mdast': 4.0.4 devlop: 1.1.0 escape-string-regexp: 5.0.0 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 micromark-extension-frontmatter: 2.0.0 transitivePeerDependencies: @@ -16015,7 +17120,7 @@ packages: dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 micromark-util-normalize-identifier: 2.0.0 transitivePeerDependencies: @@ -16026,7 +17131,7 @@ packages: resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} dependencies: '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -16038,7 +17143,7 @@ packages: '@types/mdast': 4.0.4 devlop: 1.1.0 markdown-table: 3.0.3 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -16049,7 +17154,7 @@ packages: dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -16058,7 +17163,7 @@ packages: /mdast-util-gfm@3.0.0: resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} dependencies: - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-gfm-autolink-literal: 2.0.0 mdast-util-gfm-footnote: 2.0.0 mdast-util-gfm-strikethrough: 2.0.0 @@ -16076,7 +17181,7 @@ packages: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -16090,7 +17195,7 @@ packages: '@types/unist': 3.0.2 ccount: 2.0.1 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 parse-entities: 4.0.1 stringify-entities: 4.0.4 @@ -16103,7 +17208,7 @@ packages: /mdast-util-mdx@3.0.0: resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} dependencies: - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-mdx-expression: 2.0.0 mdast-util-mdx-jsx: 3.1.2 mdast-util-mdxjs-esm: 2.0.1 @@ -16118,7 +17223,7 @@ packages: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -16129,8 +17234,8 @@ packages: '@types/mdast': 4.0.4 unist-util-is: 6.0.0 - /mdast-util-to-hast@13.1.0: - resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} + /mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 @@ -16176,6 +17281,10 @@ packages: resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} dev: true + /mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + dev: true + /media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} @@ -16420,8 +17529,8 @@ packages: /micromark-extension-mdxjs@3.0.0: resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) + acorn: 8.12.0 + acorn-jsx: 5.3.2(acorn@8.12.0) micromark-extension-mdx-expression: 3.0.0 micromark-extension-mdx-jsx: 3.0.0 micromark-extension-mdx-md: 2.0.0 @@ -16679,7 +17788,7 @@ packages: resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} dependencies: '@types/debug': 4.1.12 - debug: 4.3.4 + debug: 4.3.5 decode-named-character-reference: 1.0.2 micromark-core-commonmark: 1.1.0 micromark-factory-space: 1.1.0 @@ -16702,7 +17811,7 @@ packages: resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} dependencies: '@types/debug': 4.1.12 - debug: 4.3.4 + debug: 4.3.5 decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.1 @@ -16721,11 +17830,11 @@ packages: transitivePeerDependencies: - supports-color - /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + /micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} engines: {node: '>=8.6'} dependencies: - braces: 3.0.2 + braces: 3.0.3 picomatch: 2.3.1 /mime-db@1.33.0: @@ -16783,7 +17892,7 @@ packages: engines: {node: '>=4'} dev: true - /mini-css-extract-plugin@2.9.0(webpack@5.91.0): + /mini-css-extract-plugin@2.9.0(webpack@5.92.1): resolution: {integrity: sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -16791,7 +17900,7 @@ packages: dependencies: schema-utils: 4.2.0 tapable: 2.2.1 - webpack: 5.91.0(@swc/core@1.5.7) + webpack: 5.92.1(@swc/core@1.6.6) dev: false /minimalistic-assert@1.0.1: @@ -16814,16 +17923,17 @@ packages: engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 + dev: true - /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + /minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 dev: true - /minimatch@9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + /minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 @@ -16892,7 +18002,10 @@ packages: /minipass@7.1.1: resolution: {integrity: sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==} engines: {node: '>=16 || 14 >=14.17'} - dev: true + + /minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} /minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} @@ -16916,29 +18029,43 @@ packages: /mlly@1.7.0: resolution: {integrity: sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==} dependencies: - acorn: 8.11.3 + acorn: 8.12.0 pathe: 1.1.2 pkg-types: 1.1.1 ufo: 1.5.3 dev: true - /monaco-editor-core@0.48.0: - resolution: {integrity: sha512-HaGsPuwG+2LA9Ya2lmU7zEh8TdA33E8kh94+RplFDq+4ZjW+pa3NlxOIZGyrNrBybvicitByY3Ys9c//NLaDVQ==} + /mlly@1.7.1: + resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} + dependencies: + acorn: 8.12.0 + pathe: 1.1.2 + pkg-types: 1.1.2 + ufo: 1.5.3 + dev: true + + /monaco-editor-core@0.50.0: + resolution: {integrity: sha512-XKdublTat9qDKwJhMbm6nnTUKA75MU7jWVooZeXcZKP0/y2jscNWQ9FpCiRtWk33Teemihx155WQ7o7xgf89eA==} dev: false - /monaco-editor-webpack-plugin@7.1.0(monaco-editor@0.46.0)(webpack@5.91.0): + /monaco-editor-webpack-plugin@7.1.0(monaco-editor@0.50.0)(webpack@5.92.1): resolution: {integrity: sha512-ZjnGINHN963JQkFqjjcBtn1XBtUATDZBMgNQhDQwd78w2ukRhFXAPNgWuacaQiDZsUr4h1rWv5Mv6eriKuOSzA==} peerDependencies: monaco-editor: '>= 0.31.0' webpack: ^4.5.0 || 5.x dependencies: loader-utils: 2.0.4 - monaco-editor: 0.46.0 - webpack: 5.91.0(@swc/core@1.5.7) + monaco-editor: 0.50.0 + webpack: 5.92.1(@swc/core@1.6.6) dev: true /monaco-editor@0.46.0: resolution: {integrity: sha512-ADwtLIIww+9FKybWscd7OCfm9odsFYHImBRI1v9AviGce55QY8raT+9ihH8jX/E/e6QVSGM+pKj4jSUSRmALNQ==} + dev: false + + /monaco-editor@0.50.0: + resolution: {integrity: sha512-8CclLCmrRRh+sul7C08BmPBP3P8wVWfBHomsTcndxg5NRCEPfu/mc2AGU8k37ajjDVXcXFc12ORAMUkmk+lkFA==} + dev: true /mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} @@ -17014,11 +18141,11 @@ packages: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} dependencies: lower-case: 2.0.2 - tslib: 2.6.2 + tslib: 2.6.3 dev: false - /node-abi@3.62.0: - resolution: {integrity: sha512-CPMcGa+y33xuL1E0TcNIu4YyaZCxnnvkVaEXrsosR3FxN+fV8xvb7Mzpb7IgKler10qeMkE6+Dp8qJhpzdq35g==} + /node-abi@3.65.0: + resolution: {integrity: sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA==} engines: {node: '>=10'} requiresBuild: true dependencies: @@ -17063,6 +18190,7 @@ packages: optional: true dependencies: whatwg-url: 5.0.0 + dev: true /node-forge@1.3.1: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} @@ -17076,7 +18204,7 @@ packages: dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.1 - glob: 10.3.15 + glob: 10.4.2 graceful-fs: 4.2.11 make-fetch-happen: 13.0.1 nopt: 7.2.1 @@ -17163,7 +18291,7 @@ packages: dependencies: hosted-git-info: 7.0.2 proc-log: 4.2.0 - semver: 7.6.2 + semver: 7.6.0 validate-npm-package-name: 5.0.1 dev: true @@ -17226,8 +18354,8 @@ packages: resolution: {integrity: sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==} dev: true - /nypm@0.3.8: - resolution: {integrity: sha512-IGWlC6So2xv6V4cIDmoV0SwwWx7zLG086gyqkyumteH2fIgCAM4nDVFB2iDRszDvmdSVW9xb1N+2KjQ6C7d4og==} + /nypm@0.3.9: + resolution: {integrity: sha512-BI2SdqqTHg2d4wJh8P9A1W+bslg33vOE9IZDY6eR2QC+Pu1iNBVZUqczrd43rJb+fMzHU7ltAYKsEFY/kHMFcw==} engines: {node: ^14.16.0 || >=16.10.0} hasBin: true dependencies: @@ -17235,6 +18363,7 @@ packages: consola: 3.2.3 execa: 8.0.1 pathe: 1.1.2 + pkg-types: 1.1.2 ufo: 1.5.3 dev: true @@ -17402,7 +18531,7 @@ packages: is-unicode-supported: 2.0.0 log-symbols: 6.0.0 stdin-discarder: 0.2.2 - string-width: 7.1.0 + string-width: 7.2.0 strip-ansi: 7.1.0 dev: true @@ -17437,7 +18566,7 @@ packages: resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - yocto-queue: 1.0.0 + yocto-queue: 1.1.1 dev: false /p-limit@5.0.0: @@ -17495,6 +18624,9 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + /package-json-from-dist@1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + /package-json@8.1.1: resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} engines: {node: '>=14.16'} @@ -17540,7 +18672,7 @@ packages: resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} dependencies: dot-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.6.3 dev: false /parent-module@1.0.1: @@ -17571,7 +18703,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -17613,7 +18745,7 @@ packages: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} dependencies: no-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.6.3 dev: false /path-absolute@1.0.1: @@ -17666,7 +18798,6 @@ packages: dependencies: lru-cache: 10.2.2 minipass: 7.1.1 - dev: true /path-temp@2.1.0: resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==} @@ -17775,6 +18906,14 @@ packages: pathe: 1.1.2 dev: true + /pkg-types@1.1.2: + resolution: {integrity: sha512-VEGf1he2DR5yowYRl0XJhWJq5ktm9gYIsH+y8sNJpHlxch7JPDaufgrsl4vYjd9hMUY8QVjoNncKbow9I7exyA==} + dependencies: + confbox: 0.1.7 + mlly: 1.7.1 + pathe: 1.1.2 + dev: true + /pkg-up@3.1.0: resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} engines: {node: '>=8'} @@ -17782,18 +18921,18 @@ packages: find-up: 3.0.0 dev: false - /playwright-core@1.44.0: - resolution: {integrity: sha512-ZTbkNpFfYcGWohvTTl+xewITm7EOuqIqex0c7dNZ+aXsbrLj0qI8XlGKfPpipjm0Wny/4Lt4CJsWJk1stVS5qQ==} - engines: {node: '>=16'} + /playwright-core@1.45.0: + resolution: {integrity: sha512-lZmHlFQ0VYSpAs43dRq1/nJ9G/6SiTI7VPqidld9TDefL9tX87bTKExWZZUF5PeRyqtXqd8fQi2qmfIedkwsNQ==} + engines: {node: '>=18'} hasBin: true dev: true - /playwright@1.44.0: - resolution: {integrity: sha512-F9b3GUCLQ3Nffrfb6dunPOkE5Mh68tR7zN32L4jCk4FjQamgesGay7/dAAe1WaMEGV04DkdJfcJzjoCKygUaRQ==} - engines: {node: '>=16'} + /playwright@1.45.0: + resolution: {integrity: sha512-4z3ac3plDfYzGB6r0Q3LF8POPR20Z8D0aXcxbJvmfMgSSq1hkcgvFRXJk9rUq5H/MJ0Ktal869hhOdI/zUTeLA==} + engines: {node: '>=18'} hasBin: true dependencies: - playwright-core: 1.44.0 + playwright-core: 1.45.0 optionalDependencies: fsevents: 2.3.2 dev: true @@ -17815,7 +18954,7 @@ packages: resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==} engines: {node: '>=10'} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.7 dev: true /possible-typed-array-names@1.0.0: @@ -17823,405 +18962,405 @@ packages: engines: {node: '>= 0.4'} dev: true - /postcss-calc@9.0.1(postcss@8.4.38): + /postcss-calc@9.0.1(postcss@8.4.39): resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.2 dependencies: - postcss: 8.4.38 - postcss-selector-parser: 6.0.16 + postcss: 8.4.39 + postcss-selector-parser: 6.1.0 postcss-value-parser: 4.2.0 dev: false - /postcss-colormin@6.1.0(postcss@8.4.38): + /postcss-colormin@6.1.0(postcss@8.4.39): resolution: {integrity: sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.38 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: false - /postcss-convert-values@6.1.0(postcss@8.4.38): + /postcss-convert-values@6.1.0(postcss@8.4.39): resolution: {integrity: sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.23.0 - postcss: 8.4.38 + browserslist: 4.23.1 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: false - /postcss-discard-comments@6.0.2(postcss@8.4.38): + /postcss-discard-comments@6.0.2(postcss@8.4.39): resolution: {integrity: sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 dev: false - /postcss-discard-duplicates@6.0.3(postcss@8.4.38): + /postcss-discard-duplicates@6.0.3(postcss@8.4.39): resolution: {integrity: sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 dev: false - /postcss-discard-empty@6.0.3(postcss@8.4.38): + /postcss-discard-empty@6.0.3(postcss@8.4.39): resolution: {integrity: sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 dev: false - /postcss-discard-overridden@6.0.2(postcss@8.4.38): + /postcss-discard-overridden@6.0.2(postcss@8.4.39): resolution: {integrity: sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 dev: false - /postcss-discard-unused@6.0.5(postcss@8.4.38): + /postcss-discard-unused@6.0.5(postcss@8.4.39): resolution: {integrity: sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.38 - postcss-selector-parser: 6.0.16 + postcss: 8.4.39 + postcss-selector-parser: 6.1.0 dev: false - /postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.4.5)(webpack@5.91.0): + /postcss-loader@7.3.4(postcss@8.4.39)(typescript@5.5.3)(webpack@5.92.1): resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} engines: {node: '>= 14.15.0'} peerDependencies: postcss: ^7.0.0 || ^8.0.1 webpack: ^5.0.0 dependencies: - cosmiconfig: 8.3.6(typescript@5.4.5) - jiti: 1.21.0 - postcss: 8.4.38 + cosmiconfig: 8.3.6(typescript@5.5.3) + jiti: 1.21.6 + postcss: 8.4.39 semver: 7.6.2 - webpack: 5.91.0(@swc/core@1.5.7) + webpack: 5.92.1(@swc/core@1.6.6) transitivePeerDependencies: - typescript dev: false - /postcss-merge-idents@6.0.3(postcss@8.4.38): + /postcss-merge-idents@6.0.3(postcss@8.4.39): resolution: {integrity: sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - cssnano-utils: 4.0.2(postcss@8.4.38) - postcss: 8.4.38 + cssnano-utils: 4.0.2(postcss@8.4.39) + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: false - /postcss-merge-longhand@6.0.5(postcss@8.4.38): + /postcss-merge-longhand@6.0.5(postcss@8.4.39): resolution: {integrity: sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 postcss-value-parser: 4.2.0 - stylehacks: 6.1.1(postcss@8.4.38) + stylehacks: 6.1.1(postcss@8.4.39) dev: false - /postcss-merge-rules@6.1.1(postcss@8.4.38): + /postcss-merge-rules@6.1.1(postcss@8.4.39): resolution: {integrity: sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 caniuse-api: 3.0.0 - cssnano-utils: 4.0.2(postcss@8.4.38) - postcss: 8.4.38 - postcss-selector-parser: 6.0.16 + cssnano-utils: 4.0.2(postcss@8.4.39) + postcss: 8.4.39 + postcss-selector-parser: 6.1.0 dev: false - /postcss-minify-font-values@6.1.0(postcss@8.4.38): + /postcss-minify-font-values@6.1.0(postcss@8.4.39): resolution: {integrity: sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-gradients@6.0.3(postcss@8.4.38): + /postcss-minify-gradients@6.0.3(postcss@8.4.39): resolution: {integrity: sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: colord: 2.9.3 - cssnano-utils: 4.0.2(postcss@8.4.38) - postcss: 8.4.38 + cssnano-utils: 4.0.2(postcss@8.4.39) + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-params@6.1.0(postcss@8.4.38): + /postcss-minify-params@6.1.0(postcss@8.4.39): resolution: {integrity: sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.23.0 - cssnano-utils: 4.0.2(postcss@8.4.38) - postcss: 8.4.38 + browserslist: 4.23.1 + cssnano-utils: 4.0.2(postcss@8.4.39) + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-selectors@6.0.4(postcss@8.4.38): + /postcss-minify-selectors@6.0.4(postcss@8.4.39): resolution: {integrity: sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.38 - postcss-selector-parser: 6.0.16 + postcss: 8.4.39 + postcss-selector-parser: 6.1.0 dev: false - /postcss-modules-extract-imports@3.1.0(postcss@8.4.38): + /postcss-modules-extract-imports@3.1.0(postcss@8.4.39): resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 dev: false - /postcss-modules-local-by-default@4.0.5(postcss@8.4.38): + /postcss-modules-local-by-default@4.0.5(postcss@8.4.39): resolution: {integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.38) - postcss: 8.4.38 - postcss-selector-parser: 6.0.16 + icss-utils: 5.1.0(postcss@8.4.39) + postcss: 8.4.39 + postcss-selector-parser: 6.1.0 postcss-value-parser: 4.2.0 dev: false - /postcss-modules-scope@3.2.0(postcss@8.4.38): + /postcss-modules-scope@3.2.0(postcss@8.4.39): resolution: {integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.38 - postcss-selector-parser: 6.0.16 + postcss: 8.4.39 + postcss-selector-parser: 6.1.0 dev: false - /postcss-modules-values@4.0.0(postcss@8.4.38): + /postcss-modules-values@4.0.0(postcss@8.4.39): resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.38) - postcss: 8.4.38 + icss-utils: 5.1.0(postcss@8.4.39) + postcss: 8.4.39 dev: false - /postcss-normalize-charset@6.0.2(postcss@8.4.38): + /postcss-normalize-charset@6.0.2(postcss@8.4.39): resolution: {integrity: sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 dev: false - /postcss-normalize-display-values@6.0.2(postcss@8.4.38): + /postcss-normalize-display-values@6.0.2(postcss@8.4.39): resolution: {integrity: sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-positions@6.0.2(postcss@8.4.38): + /postcss-normalize-positions@6.0.2(postcss@8.4.39): resolution: {integrity: sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-repeat-style@6.0.2(postcss@8.4.38): + /postcss-normalize-repeat-style@6.0.2(postcss@8.4.39): resolution: {integrity: sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-string@6.0.2(postcss@8.4.38): + /postcss-normalize-string@6.0.2(postcss@8.4.39): resolution: {integrity: sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-timing-functions@6.0.2(postcss@8.4.38): + /postcss-normalize-timing-functions@6.0.2(postcss@8.4.39): resolution: {integrity: sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-unicode@6.1.0(postcss@8.4.38): + /postcss-normalize-unicode@6.1.0(postcss@8.4.39): resolution: {integrity: sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.23.0 - postcss: 8.4.38 + browserslist: 4.23.1 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-url@6.0.2(postcss@8.4.38): + /postcss-normalize-url@6.0.2(postcss@8.4.39): resolution: {integrity: sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-whitespace@6.0.2(postcss@8.4.38): + /postcss-normalize-whitespace@6.0.2(postcss@8.4.39): resolution: {integrity: sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: false - /postcss-ordered-values@6.0.2(postcss@8.4.38): + /postcss-ordered-values@6.0.2(postcss@8.4.39): resolution: {integrity: sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - cssnano-utils: 4.0.2(postcss@8.4.38) - postcss: 8.4.38 + cssnano-utils: 4.0.2(postcss@8.4.39) + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: false - /postcss-reduce-idents@6.0.3(postcss@8.4.38): + /postcss-reduce-idents@6.0.3(postcss@8.4.39): resolution: {integrity: sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: false - /postcss-reduce-initial@6.1.0(postcss@8.4.38): + /postcss-reduce-initial@6.1.0(postcss@8.4.39): resolution: {integrity: sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 caniuse-api: 3.0.0 - postcss: 8.4.38 + postcss: 8.4.39 dev: false - /postcss-reduce-transforms@6.0.2(postcss@8.4.38): + /postcss-reduce-transforms@6.0.2(postcss@8.4.39): resolution: {integrity: sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: false - /postcss-selector-parser@6.0.16: - resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} + /postcss-selector-parser@6.1.0: + resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} engines: {node: '>=4'} dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 dev: false - /postcss-sort-media-queries@5.2.0(postcss@8.4.38): + /postcss-sort-media-queries@5.2.0(postcss@8.4.39): resolution: {integrity: sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.4.23 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 sort-css-media-queries: 2.2.0 dev: false - /postcss-svgo@6.0.3(postcss@8.4.38): + /postcss-svgo@6.0.3(postcss@8.4.39): resolution: {integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==} engines: {node: ^14 || ^16 || >= 18} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 postcss-value-parser: 4.2.0 svgo: 3.3.2 dev: false - /postcss-unique-selectors@6.0.4(postcss@8.4.38): + /postcss-unique-selectors@6.0.4(postcss@8.4.39): resolution: {integrity: sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.38 - postcss-selector-parser: 6.0.16 + postcss: 8.4.39 + postcss-selector-parser: 6.1.0 dev: false /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: false - /postcss-zindex@6.0.2(postcss@8.4.38): + /postcss-zindex@6.0.2(postcss@8.4.39): resolution: {integrity: sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 dev: false /postcss@8.4.38: @@ -18231,6 +19370,15 @@ packages: nanoid: 3.3.7 picocolors: 1.0.1 source-map-js: 1.2.0 + dev: true + + /postcss@8.4.39: + resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.1 + source-map-js: 1.2.0 /prebuild-install@7.1.2: resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} @@ -18244,7 +19392,7 @@ packages: minimist: 1.2.8 mkdirp-classic: 0.5.3 napi-build-utils: 1.0.2 - node-abi: 3.62.0 + node-abi: 3.65.0 pump: 3.0.0 rc: 1.2.8 simple-get: 4.0.1 @@ -18257,25 +19405,25 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - /prettier-plugin-organize-imports@3.2.4(prettier@3.2.5)(typescript@5.4.5): - resolution: {integrity: sha512-6m8WBhIp0dfwu0SkgfOxJqh+HpdyfqSSLfKKRZSFbDuEQXDDndb8fTpRWkUrX/uBenkex3MgnVk0J3b3Y5byog==} + /prettier-plugin-organize-imports@4.0.0(prettier@3.3.2)(typescript@5.5.3): + resolution: {integrity: sha512-vnKSdgv9aOlqKeEFGhf9SCBsTyzDSyScy1k7E0R1Uo4L0cTcOV7c1XQaT7jfXIOc/p08WLBfN2QUQA9zDSZMxA==} peerDependencies: - '@volar/vue-language-plugin-pug': ^1.0.4 - '@volar/vue-typescript': ^1.0.4 + '@vue/language-plugin-pug': ^2.0.24 prettier: '>=2.0' typescript: '>=2.9' + vue-tsc: ^2.0.24 peerDependenciesMeta: - '@volar/vue-language-plugin-pug': + '@vue/language-plugin-pug': optional: true - '@volar/vue-typescript': + vue-tsc: optional: true dependencies: - prettier: 3.2.5 - typescript: 5.4.5 + prettier: 3.3.2 + typescript: 5.5.3 dev: true - /prettier@3.2.5: - resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + /prettier@3.3.2: + resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} engines: {node: '>=14'} hasBin: true @@ -18446,6 +19594,11 @@ packages: pump: 2.0.1 dev: true + /punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + dev: true + /punycode@1.4.1: resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} dev: false @@ -18471,8 +19624,8 @@ packages: dependencies: side-channel: 1.0.6 - /qs@6.12.1: - resolution: {integrity: sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==} + /qs@6.12.2: + resolution: {integrity: sha512-x+NLUpx9SYrcwXtX7ob1gnkSems4i/mGZX5SlYxwIau6RrUSODO89TR/XDGGpn5RPWSYIB+aSfuSlV5+CmbTBg==} engines: {node: '>=0.6'} dependencies: side-channel: 1.0.6 @@ -18527,7 +19680,7 @@ packages: iconv-lite: 0.4.24 unpipe: 1.0.0 - /raw-loader@4.0.2(webpack@5.91.0): + /raw-loader@4.0.2(webpack@5.92.1): resolution: {integrity: sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -18535,7 +19688,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.91.0(@swc/core@1.5.7) + webpack: 5.92.1(@swc/core@1.6.6) dev: true /rc@1.2.8: @@ -18547,7 +19700,7 @@ packages: minimist: 1.2.8 strip-json-comments: 2.0.1 - /react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.5)(webpack@5.91.0): + /react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.5.3)(webpack@5.92.1): resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} engines: {node: '>=14'} peerDependencies: @@ -18557,22 +19710,22 @@ packages: typescript: optional: true dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.7 address: 1.2.2 - browserslist: 4.23.0 + browserslist: 4.23.1 chalk: 4.1.2 cross-spawn: 7.0.3 detect-port-alt: 1.1.6 escape-string-regexp: 4.0.0 filesize: 8.0.7 find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.57.0)(typescript@5.4.5)(webpack@5.91.0) + fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.57.0)(typescript@5.5.3)(webpack@5.92.1) global-modules: 2.0.0 globby: 11.1.0 gzip-size: 6.0.0 immer: 9.0.21 is-root: 2.1.0 - loader-utils: 3.2.1 + loader-utils: 3.3.1 open: 8.4.2 pkg-up: 3.1.0 prompts: 2.4.2 @@ -18581,33 +19734,33 @@ packages: shell-quote: 1.8.1 strip-ansi: 6.0.1 text-table: 0.2.0 - typescript: 5.4.5 - webpack: 5.91.0(@swc/core@1.5.7) + typescript: 5.5.3 + webpack: 5.92.1(@swc/core@1.6.6) transitivePeerDependencies: - eslint - supports-color - vue-template-compiler dev: false - /react-docgen-typescript@2.2.2(typescript@5.4.5): + /react-docgen-typescript@2.2.2(typescript@5.5.3): resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==} peerDependencies: typescript: '>= 4.3.x' dependencies: - typescript: 5.4.5 + typescript: 5.5.3 dev: true /react-docgen@7.0.3: resolution: {integrity: sha512-i8aF1nyKInZnANZ4uZrH49qn1paRgBZ7wZiCNBMnenlPzEv0mRl+ShpTVEI6wZNl8sSc79xZkivtgLKQArcanQ==} engines: {node: '>=16.14.0'} dependencies: - '@babel/core': 7.24.5 - '@babel/traverse': 7.24.5 - '@babel/types': 7.24.5 + '@babel/core': 7.24.7 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.5 + '@types/babel__traverse': 7.20.6 '@types/doctrine': 0.0.9 - '@types/resolve': 1.20.2 + '@types/resolve': 1.20.6 doctrine: 3.0.0 resolve: 1.22.8 strip-indent: 4.0.0 @@ -18659,7 +19812,7 @@ packages: react: ^16.6.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.7 invariant: 2.2.4 prop-types: 15.8.1 react: 18.3.1 @@ -18699,20 +19852,20 @@ packages: react: 18.3.1 dev: false - /react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@6.0.0)(webpack@5.91.0): + /react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@6.0.0)(webpack@5.92.1): resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==} engines: {node: '>=10.13.0'} peerDependencies: react-loadable: '*' webpack: '>=4.41.1 || 5.x' dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.7 react-loadable: /@docusaurus/react-loadable@6.0.0(react@18.3.1) - webpack: 5.91.0(@swc/core@1.5.7) + webpack: 5.92.1(@swc/core@1.6.6) dev: false - /react-refresh@0.14.0: - resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + /react-refresh@0.14.2: + resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} /react-router-config@5.1.1(react-router@5.3.4)(react@18.3.1): @@ -18721,7 +19874,7 @@ packages: react: '>=15' react-router: '>=5' dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.7 react: 18.3.1 react-router: 5.3.4(react@18.3.1) dev: false @@ -18731,7 +19884,7 @@ packages: peerDependencies: react: '>=15' dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.7 history: 4.10.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -18746,7 +19899,7 @@ packages: peerDependencies: react: '>=15' dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.7 history: 4.10.1 hoist-non-react-statics: 3.3.2 loose-envify: 1.4.0 @@ -18764,7 +19917,7 @@ packages: react: '>=16.6.0' react-dom: '>=16.6.0' dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.7 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -18862,15 +20015,15 @@ packages: resolution: {integrity: sha512-wnWtnywepjg/eHIgWR97R7UuM5i+qHLA195qdN9UPKvcMqfn60+67S8sPPW3vDlSEfYHoFkKU8IvpCNty3zQvQ==} engines: {node: '>=10'} - /recast@0.23.7: - resolution: {integrity: sha512-MpQlLZVpqbbxYcqEjwpRWo88sGvjOYoXptySz710RuddNMHx+wPkoNX6YyLZJlXAh5VZr1qmPrTwcTuFMh0Lag==} + /recast@0.23.9: + resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} engines: {node: '>= 4'} dependencies: ast-types: 0.16.1 esprima: 4.0.1 source-map: 0.6.1 tiny-invariant: 1.3.3 - tslib: 2.6.2 + tslib: 2.6.3 dev: true /rechoir@0.6.2: @@ -18915,7 +20068,7 @@ packages: /regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.7 /regexp-tree@0.1.27: resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} @@ -18974,7 +20127,7 @@ packages: resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} dependencies: '@types/hast': 3.0.4 - hast-util-raw: 9.0.3 + hast-util-raw: 9.0.4 vfile: 6.0.1 dev: false @@ -18989,7 +20142,7 @@ packages: '@types/mdast': 4.0.4 mdast-util-directive: 3.0.0 micromark-extension-directive: 3.0.0 - unified: 11.0.4 + unified: 11.0.5 transitivePeerDependencies: - supports-color dev: false @@ -19002,7 +20155,7 @@ packages: emoticon: 4.0.1 mdast-util-find-and-replace: 3.0.1 node-emoji: 2.1.3 - unified: 11.0.4 + unified: 11.0.5 dev: false /remark-frontmatter@5.0.0: @@ -19011,7 +20164,7 @@ packages: '@types/mdast': 4.0.4 mdast-util-frontmatter: 2.0.1 micromark-extension-frontmatter: 2.0.0 - unified: 11.0.4 + unified: 11.0.5 transitivePeerDependencies: - supports-color dev: false @@ -19024,7 +20177,7 @@ packages: micromark-extension-gfm: 3.0.0 remark-parse: 11.0.0 remark-stringify: 11.0.0 - unified: 11.0.4 + unified: 11.0.5 transitivePeerDependencies: - supports-color dev: false @@ -19041,9 +20194,9 @@ packages: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} dependencies: '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 micromark-util-types: 2.0.0 - unified: 11.0.4 + unified: 11.0.5 transitivePeerDependencies: - supports-color @@ -19052,8 +20205,8 @@ packages: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - mdast-util-to-hast: 13.1.0 - unified: 11.0.4 + mdast-util-to-hast: 13.2.0 + unified: 11.0.5 vfile: 6.0.1 /remark-stringify@11.0.0: @@ -19061,7 +20214,7 @@ packages: dependencies: '@types/mdast': 4.0.4 mdast-util-to-markdown: 2.1.0 - unified: 11.0.4 + unified: 11.0.5 dev: false /renderkid@3.0.0: @@ -19171,6 +20324,7 @@ packages: /rimraf@2.6.3: resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: glob: 7.2.3 @@ -19209,35 +20363,35 @@ packages: yargs: 17.7.2 dev: true - /rollup@4.17.2: - resolution: {integrity: sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==} + /rollup@4.18.0: + resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.17.2 - '@rollup/rollup-android-arm64': 4.17.2 - '@rollup/rollup-darwin-arm64': 4.17.2 - '@rollup/rollup-darwin-x64': 4.17.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.17.2 - '@rollup/rollup-linux-arm-musleabihf': 4.17.2 - '@rollup/rollup-linux-arm64-gnu': 4.17.2 - '@rollup/rollup-linux-arm64-musl': 4.17.2 - '@rollup/rollup-linux-powerpc64le-gnu': 4.17.2 - '@rollup/rollup-linux-riscv64-gnu': 4.17.2 - '@rollup/rollup-linux-s390x-gnu': 4.17.2 - '@rollup/rollup-linux-x64-gnu': 4.17.2 - '@rollup/rollup-linux-x64-musl': 4.17.2 - '@rollup/rollup-win32-arm64-msvc': 4.17.2 - '@rollup/rollup-win32-ia32-msvc': 4.17.2 - '@rollup/rollup-win32-x64-msvc': 4.17.2 + '@rollup/rollup-android-arm-eabi': 4.18.0 + '@rollup/rollup-android-arm64': 4.18.0 + '@rollup/rollup-darwin-arm64': 4.18.0 + '@rollup/rollup-darwin-x64': 4.18.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 + '@rollup/rollup-linux-arm-musleabihf': 4.18.0 + '@rollup/rollup-linux-arm64-gnu': 4.18.0 + '@rollup/rollup-linux-arm64-musl': 4.18.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 + '@rollup/rollup-linux-riscv64-gnu': 4.18.0 + '@rollup/rollup-linux-s390x-gnu': 4.18.0 + '@rollup/rollup-linux-x64-gnu': 4.18.0 + '@rollup/rollup-linux-x64-musl': 4.18.0 + '@rollup/rollup-win32-arm64-msvc': 4.18.0 + '@rollup/rollup-win32-ia32-msvc': 4.18.0 + '@rollup/rollup-win32-x64-msvc': 4.18.0 fsevents: 2.3.3 /rtl-css-js@1.16.1: resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.7 dev: false /rtl-detect@1.1.2: @@ -19251,7 +20405,7 @@ packages: dependencies: escalade: 3.1.2 picocolors: 1.0.1 - postcss: 8.4.38 + postcss: 8.4.39 strip-json-comments: 3.1.1 dev: false @@ -19266,7 +20420,7 @@ packages: /rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 /sade@1.8.1: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} @@ -19310,8 +20464,8 @@ packages: /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - /sax@1.3.0: - resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + /sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} /saxes@5.0.1: resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} @@ -19353,13 +20507,13 @@ packages: engines: {node: '>= 12.13.0'} dependencies: '@types/json-schema': 7.0.15 - ajv: 8.13.0 - ajv-formats: 2.1.1(ajv@8.13.0) - ajv-keywords: 5.1.0(ajv@8.13.0) + ajv: 8.16.0 + ajv-formats: 2.1.1(ajv@8.16.0) + ajv-keywords: 5.1.0(ajv@8.16.0) dev: false - /search-insights@2.13.0: - resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} + /search-insights@2.14.0: + resolution: {integrity: sha512-OLN6MsPMCghDOqlCtsIsYgtsC0pnwVTyT9Mu6A3ewOj1DxvzZF6COrn2g86E/c05xbktB0XN04m/t1Z+n+fTGw==} dev: false /section-matter@1.0.0: @@ -19544,13 +20698,10 @@ packages: rechoir: 0.6.2 dev: false - /shiki@0.14.7: - resolution: {integrity: sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==} + /shiki@1.10.0: + resolution: {integrity: sha512-YD2sXQ+TMD/F9BimV9Jn0wj35pqOvywvOG/3PB6hGHyGKlM7TJ9tyJ02jOb2kF8F0HfJwKNYrh3sW7jEcuRlXA==} dependencies: - ansi-sequence-parser: 1.1.1 - jsonc-parser: 3.2.1 - vscode-oniguruma: 1.7.0 - vscode-textmate: 8.0.0 + '@shikijs/core': 1.10.0 dev: true /side-channel@1.0.6: @@ -19614,15 +20765,15 @@ packages: /sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - /sitemap@7.1.1: - resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==} + /sitemap@7.1.2: + resolution: {integrity: sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==} engines: {node: '>=12.0.0', npm: '>=5.6.0'} hasBin: true dependencies: '@types/node': 17.0.45 '@types/sax': 1.2.7 arg: 5.0.2 - sax: 1.3.0 + sax: 1.4.1 dev: false /skin-tone@2.0.0: @@ -19654,7 +20805,7 @@ packages: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} dependencies: dot-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.6.3 dev: false /sockjs@0.3.24: @@ -19670,7 +20821,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.1 - debug: 4.3.4 + debug: 4.3.5 socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -19746,7 +20897,7 @@ packages: /spdy-transport@3.0.0: resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} dependencies: - debug: 4.3.4 + debug: 4.3.5 detect-node: 2.1.0 hpack.js: 2.1.6 obuf: 1.1.2 @@ -19760,7 +20911,7 @@ packages: resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} engines: {node: '>=6.0.0'} dependencies: - debug: 4.3.4 + debug: 4.3.5 handle-thing: 2.0.1 http-deceiver: 1.2.7 select-hose: 2.0.0 @@ -19820,13 +20971,6 @@ packages: engines: {node: '>=18'} dev: true - /stop-iteration-iterator@1.0.0: - resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} - engines: {node: '>= 0.4'} - dependencies: - internal-slot: 1.0.7 - dev: true - /stoppable@1.1.0: resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} engines: {node: '>=4', npm: '>=6'} @@ -19867,8 +21011,8 @@ packages: emoji-regex: 9.2.2 strip-ansi: 7.1.0 - /string-width@7.1.0: - resolution: {integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==} + /string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} dependencies: emoji-regex: 10.3.0 @@ -20000,6 +21144,10 @@ packages: js-tokens: 9.0.0 dev: true + /strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + dev: false + /style-to-object@0.4.4: resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} dependencies: @@ -20010,15 +21158,15 @@ packages: dependencies: inline-style-parser: 0.2.3 - /stylehacks@6.1.1(postcss@8.4.38): + /stylehacks@6.1.1(postcss@8.4.39): resolution: {integrity: sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.23.0 - postcss: 8.4.38 - postcss-selector-parser: 6.0.16 + browserslist: 4.23.1 + postcss: 8.4.39 + postcss-selector-parser: 6.1.0 dev: false /stylis@4.2.0: @@ -20068,27 +21216,27 @@ packages: picocolors: 1.0.1 dev: false - /swagger-ui-dist@5.17.10: - resolution: {integrity: sha512-fp8SYeEK216KS1/noDvursUOGojEbkvtckOpOmAGZUjlx/ma7VLD2PLQwyermjlzFrlHI5uCt1V+M1C3qBvRyQ==} + /swagger-ui-dist@5.17.14: + resolution: {integrity: sha512-CVbSfaLpstV65OnSjbXfVd6Sta3q3F7Cj/yYuvHMp1P90LztOLs6PfUnKEVAeiIVQt9u2SaPwv0LiH/OyMjHRw==} dev: false - /swc-loader@0.2.6(@swc/core@1.5.7)(webpack@5.91.0): + /swc-loader@0.2.6(@swc/core@1.6.6)(webpack@5.92.1): resolution: {integrity: sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==} peerDependencies: '@swc/core': ^1.2.147 webpack: '>=2' dependencies: - '@swc/core': 1.5.7 + '@swc/core': 1.6.6 '@swc/counter': 0.1.3 - webpack: 5.91.0(@swc/core@1.5.7) + webpack: 5.92.1(@swc/core@1.6.6) dev: true /symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true - /syncpack@12.3.2(typescript@5.4.5): - resolution: {integrity: sha512-ePvaDfasxF8mwaPItN6urmABaH6FPT3/vJU+2DHt24j8EIKjgz6NCxXDx2bTXJXZ4QcEFwvoiu3EqaJsVrHvUg==} + /syncpack@12.3.3(typescript@5.5.3): + resolution: {integrity: sha512-r154Rk8YtJA0My8Nu5v4e58n3y85atG4WlxekTQ/DT4toqiMtprqn5LrHuNVAhbpsOfUHPv6EFMj9k+FdDvgDA==} engines: {node: '>=16'} hasBin: true dependencies: @@ -20096,7 +21244,7 @@ packages: chalk: 5.3.0 chalk-template: 1.1.0 commander: 12.0.0 - cosmiconfig: 9.0.0(typescript@5.4.5) + cosmiconfig: 9.0.0(typescript@5.5.3) effect: 3.0.3 enquirer: 2.4.1 fast-check: 3.17.2 @@ -20123,11 +21271,11 @@ packages: wordwrapjs: 4.0.1 dev: true - /tabster@7.1.3: - resolution: {integrity: sha512-H8I4avK9+PqKCFEFIn5mu3Mz+yPntRrupz+O0LxkMJJ2NPyDj55pyiXwrErDhAm9kyrZFk55n7T0tycni85jmg==} + /tabster@8.0.0: + resolution: {integrity: sha512-82pqhDwH3uq7hVcy1nOo7lyYgCJcVUPqb30hvoHtX8DQ5pxEtRz9+FqVcW5w7J6kTjNBBu7cwKvuMy9qoeQt1g==} dependencies: keyborg: 2.6.0 - tslib: 2.6.2 + tslib: 2.6.3 dev: false /tapable@1.1.3: @@ -20179,9 +21327,9 @@ packages: memoizerific: 1.11.3 dev: true - /temp-dir@2.0.0: - resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} - engines: {node: '>=8'} + /temp-dir@3.0.0: + resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} + engines: {node: '>=14.16'} dev: true /temp@0.8.4: @@ -20191,18 +21339,41 @@ packages: rimraf: 2.6.3 dev: true - /tempy@1.0.1: - resolution: {integrity: sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==} - engines: {node: '>=10'} + /tempy@3.1.0: + resolution: {integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==} + engines: {node: '>=14.16'} dependencies: - del: 6.1.1 - is-stream: 2.0.1 - temp-dir: 2.0.0 - type-fest: 0.16.0 - unique-string: 2.0.0 + is-stream: 3.0.0 + temp-dir: 3.0.0 + type-fest: 2.19.0 + unique-string: 3.0.0 dev: true - /terser-webpack-plugin@5.3.10(@swc/core@1.5.7)(webpack@5.91.0): + /terser-webpack-plugin@5.3.10(@swc/core@1.6.6)(webpack@5.92.1): + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + '@swc/core': 1.6.6 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.31.1 + webpack: 5.92.1(@swc/core@1.6.6) + + /terser-webpack-plugin@5.3.10(webpack@5.92.1): resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -20219,20 +21390,19 @@ packages: optional: true dependencies: '@jridgewell/trace-mapping': 0.3.25 - '@swc/core': 1.5.7 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.31.0 - webpack: 5.91.0(@swc/core@1.5.7) + terser: 5.31.1 + webpack: 5.92.1 - /terser@5.31.0: - resolution: {integrity: sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==} + /terser@5.31.1: + resolution: {integrity: sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==} engines: {node: '>=10'} hasBin: true dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.11.3 + acorn: 8.12.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -20245,6 +21415,15 @@ packages: minimatch: 3.1.2 dev: true + /test-exclude@7.0.1: + resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} + engines: {node: '>=18'} + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 10.4.2 + minimatch: 9.0.5 + dev: true + /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} @@ -20313,8 +21492,8 @@ packages: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} - /tough-cookie@4.1.3: - resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} + /tough-cookie@4.1.4: + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} engines: {node: '>=6'} dependencies: psl: 1.9.0 @@ -20325,6 +21504,7 @@ packages: /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + dev: true /tr46@3.0.0: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} @@ -20339,19 +21519,19 @@ packages: /trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - /ts-api-utils@1.3.0(typescript@5.4.5): + /ts-api-utils@1.3.0(typescript@5.5.3): resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.4.5 + typescript: 5.5.3 /ts-dedent@2.2.0: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} - /ts-node@10.9.2(@types/node@18.11.19)(typescript@5.4.5): + /ts-node@10.9.2(@types/node@18.11.19)(typescript@5.5.3): resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -20377,7 +21557,7 @@ packages: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.4.5 + typescript: 5.5.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -20408,25 +21588,15 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - - /tsutils@3.21.0(typescript@5.4.5): - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - dependencies: - tslib: 1.14.1 - typescript: 5.4.5 - dev: true + /tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} - /tsx@4.10.5: - resolution: {integrity: sha512-twDSbf7Gtea4I2copqovUiNTEDrT8XNFXsuHpfGbdpW/z9ZW4fTghzzhAG0WfrCuJmJiOEY1nLIjq4u3oujRWQ==} + /tsx@4.16.0: + resolution: {integrity: sha512-MPgN+CuY+4iKxGoJNPv+1pyo5YWZAQ5XfsyobUG+zoKG7IkvCPLZDEyoIb8yLS2FcWci1nlxAqmvPlFWD5AFiQ==} engines: {node: '>=18.0.0'} hasBin: true dependencies: - esbuild: 0.20.2 + esbuild: 0.21.5 get-tsconfig: 4.7.5 optionalDependencies: fsevents: 2.3.3 @@ -20437,7 +21607,7 @@ packages: engines: {node: ^16.14.0 || >=18.0.0} dependencies: '@tufjs/models': 2.0.1 - debug: 4.3.4 + debug: 4.3.5 make-fetch-happen: 13.0.1 transitivePeerDependencies: - supports-color @@ -20454,6 +21624,7 @@ packages: /tunnel@0.0.6: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} + dev: true /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} @@ -20466,11 +21637,6 @@ packages: engines: {node: '>=4'} dev: true - /type-fest@0.16.0: - resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} - engines: {node: '>=10'} - dev: true - /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} @@ -20492,7 +21658,6 @@ packages: /type-fest@1.4.0: resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} engines: {node: '>=10'} - dev: false /type-fest@2.19.0: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} @@ -20552,7 +21717,7 @@ packages: /typed-rest-client@1.8.11: resolution: {integrity: sha512-5UvfMpd1oelmUPRbbaVnq+rHP7ng2cE4qoQkQeAqxRL6PklkxsM0g32/HL0yfvruK6ojQ5x8EE+HF4YV6DtuCA==} dependencies: - qs: 6.12.1 + qs: 6.12.2 tunnel: 0.0.6 underscore: 1.13.6 dev: true @@ -20563,30 +21728,32 @@ packages: is-typedarray: 1.0.0 dev: false - /typedoc-plugin-markdown@4.0.2(typedoc@0.25.13): - resolution: {integrity: sha512-4MV3M+0lsmIaXuDBzeqLYemZqwTQDWQow+o8zdT9hC7KFu06GaFo2uUEbkjE6pgZA9hnkOTtzRVd0R9YJWcH8A==} + /typedoc-plugin-markdown@4.1.1(typedoc@0.26.3): + resolution: {integrity: sha512-ZQv8FXn1TBZAvhWMgOL8hE472rwv1dzSr/KIIUGPmdNXybeS6jmK7d1OwKhorLuGbPDQGl6U97BwfkFTcydAkw==} + engines: {node: '>= 18'} peerDependencies: - typedoc: 0.25.x + typedoc: 0.26.x dependencies: - typedoc: 0.25.13(typescript@5.4.5) + typedoc: 0.26.3(typescript@5.5.3) dev: true - /typedoc@0.25.13(typescript@5.4.5): - resolution: {integrity: sha512-pQqiwiJ+Z4pigfOnnysObszLiU3mVLWAExSPf+Mu06G/qsc3wzbuM56SZQvONhHLncLUhYzOVkjFFpFfL5AzhQ==} - engines: {node: '>= 16'} + /typedoc@0.26.3(typescript@5.5.3): + resolution: {integrity: sha512-6d2Sw9disvvpdk4K7VNjKr5/3hzijtfQVHRthhDqJgnhMHy1wQz4yPMJVKXElvnZhFr0nkzo+GzjXDTRV5yLpg==} + engines: {node: '>= 18'} hasBin: true peerDependencies: - typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x + typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x dependencies: lunr: 2.3.9 - marked: 4.3.0 - minimatch: 9.0.4 - shiki: 0.14.7 - typescript: 5.4.5 + markdown-it: 14.1.0 + minimatch: 9.0.5 + shiki: 1.10.0 + typescript: 5.5.3 + yaml: 2.4.5 dev: true - /typescript-eslint@7.9.0(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-7iTn9c10teHHCys5Ud/yaJntXZrjt3h2mrx3feJGBOLgQkF3TB1X89Xs3aVQ/GgdXRAXpk2bPTdpRwHP4YkUow==} + /typescript-eslint@7.15.0(eslint@8.57.0)(typescript@5.5.3): + resolution: {integrity: sha512-Ta40FhMXBCwHura4X4fncaCVkVcnJ9jnOq5+Lp4lN8F4DzHZtOwZdRvVBiNUGznUDHPwdGnrnwxmUOU2fFQqFA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -20595,11 +21762,11 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 7.9.0(@typescript-eslint/parser@7.9.0)(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/parser': 7.9.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/utils': 7.9.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/eslint-plugin': 7.15.0(@typescript-eslint/parser@7.15.0)(eslint@8.57.0)(typescript@5.5.3) + '@typescript-eslint/parser': 7.15.0(eslint@8.57.0)(typescript@5.5.3) + '@typescript-eslint/utils': 7.15.0(eslint@8.57.0)(typescript@5.5.3) eslint: 8.57.0 - typescript: 5.4.5 + typescript: 5.5.3 transitivePeerDependencies: - supports-color dev: true @@ -20610,8 +21777,8 @@ packages: hasBin: true dev: true - /typescript@5.4.5: - resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + /typescript@5.5.3: + resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==} engines: {node: '>=14.17'} hasBin: true @@ -20629,12 +21796,16 @@ packages: resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} dev: true + /uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + dev: true + /ufo@1.5.3: resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} dev: true - /uglify-js@3.17.4: - resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + /uglify-js@3.18.0: + resolution: {integrity: sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==} engines: {node: '>=0.8.0'} hasBin: true requiresBuild: true @@ -20682,8 +21853,8 @@ packages: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} - /unified@11.0.4: - resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==} + /unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} dependencies: '@types/unist': 3.0.2 bail: 2.0.2 @@ -20718,7 +21889,6 @@ packages: engines: {node: '>=12'} dependencies: crypto-random-string: 4.0.0 - dev: false /unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} @@ -20794,14 +21964,14 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - /unplugin@1.10.1: - resolution: {integrity: sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg==} + /unplugin@1.11.0: + resolution: {integrity: sha512-3r7VWZ/webh0SGgJScpWl2/MRCZK5d3ZYFcNaeci/GQ7Teop7zf0Nl2pUuz7G21BwPd9pcUPOC5KmJ2L3WgC5g==} engines: {node: '>=14.0.0'} dependencies: - acorn: 8.11.3 + acorn: 8.12.0 chokidar: 3.6.0 webpack-sources: 3.2.3 - webpack-virtual-modules: 0.6.1 + webpack-virtual-modules: 0.6.2 dev: true /untildify@4.0.0: @@ -20809,13 +21979,13 @@ packages: engines: {node: '>=8'} dev: true - /update-browserslist-db@1.0.13(browserslist@4.23.0): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + /update-browserslist-db@1.0.16(browserslist@4.23.1): + resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 escalade: 3.1.2 picocolors: 1.0.1 @@ -20848,7 +22018,7 @@ packages: resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} dev: true - /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.91.0): + /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.92.1): resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -20858,11 +22028,11 @@ packages: file-loader: optional: true dependencies: - file-loader: 6.2.0(webpack@5.91.0) + file-loader: 6.2.0(webpack@5.92.1) loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 - webpack: 5.91.0(@swc/core@1.5.7) + webpack: 5.92.1(@swc/core@1.6.6) dev: false /url-parse@1.5.10: @@ -20872,7 +22042,7 @@ packages: requires-port: 1.0.0 dev: true - /use-disposable@1.0.2(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1): + /use-disposable@1.0.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-UMaXVlV77dWOu4GqAFNjRzHzowYKUKbJBQfCexvahrYeIz4OkUYUjna4Tjjdf92NH8Nm8J7wEfFRgTIwYjO5jg==} peerDependencies: '@types/react': '>=16.8.0 <19.0.0' @@ -20880,7 +22050,7 @@ packages: react: '>=16.8.0 <19.0.0' react-dom: '>=16.8.0 <19.0.0' dependencies: - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -20941,8 +22111,8 @@ packages: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true - /v8-to-istanbul@9.2.0: - resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} + /v8-to-istanbul@9.3.0: + resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} engines: {node: '>=10.12.0'} dependencies: '@jridgewell/trace-mapping': 0.3.25 @@ -21016,8 +22186,8 @@ packages: - terser dev: true - /vite-plugin-checker@0.6.4(eslint@8.57.0)(typescript@5.4.5)(vite@5.2.11): - resolution: {integrity: sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==} + /vite-plugin-checker@0.7.0(eslint@8.57.0)(typescript@5.5.3)(vite@5.3.2): + resolution: {integrity: sha512-F3MdUORNLcPC0oDB9zxmPDhUC8X/3fzDShU5Izk4bqE4uTgxbQdOuOCa99bS6OSyWVC0uhHG4yAtWUXM2jOx9A==} engines: {node: '>=14.16'} peerDependencies: eslint: '>=7' @@ -21028,7 +22198,7 @@ packages: vite: '>=2.0.0' vls: '*' vti: '*' - vue-tsc: '>=1.3.9' + vue-tsc: '>=2.0.0' peerDependenciesMeta: eslint: optional: true @@ -21047,7 +22217,8 @@ packages: vue-tsc: optional: true dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.7 + '@volar/typescript': 2.3.4 ansi-escapes: 4.3.2 chalk: 4.1.2 chokidar: 3.6.0 @@ -21056,18 +22227,17 @@ packages: fast-glob: 3.3.2 fs-extra: 11.2.0 npm-run-path: 4.0.1 - semver: 7.6.2 strip-ansi: 6.0.1 tiny-invariant: 1.3.3 - typescript: 5.4.5 - vite: 5.2.11(@types/node@18.11.19) + typescript: 5.5.3 + vite: 5.3.2(@types/node@18.11.19) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 dev: true - /vite-plugin-dts@3.9.1(@types/node@18.11.19)(typescript@5.4.5)(vite@5.2.11): + /vite-plugin-dts@3.9.1(@types/node@18.11.19)(typescript@5.5.3)(vite@5.3.2): resolution: {integrity: sha512-rVp2KM9Ue22NGWB8dNtWEr+KekN3rIgz1tWD050QnRGlriUCmaDwa7qA5zDEjbXg5lAXhYMSBJtx3q3hQIJZSg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -21078,14 +22248,14 @@ packages: optional: true dependencies: '@microsoft/api-extractor': 7.43.0(@types/node@18.11.19) - '@rollup/pluginutils': 5.1.0(rollup@4.17.2) - '@vue/language-core': 1.8.27(typescript@5.4.5) + '@rollup/pluginutils': 5.1.0(rollup@4.18.0) + '@vue/language-core': 1.8.27(typescript@5.5.3) debug: 4.3.4 kolorist: 1.8.0 magic-string: 0.30.10 - typescript: 5.4.5 - vite: 5.2.11(@types/node@18.11.19) - vue-tsc: 1.8.27(typescript@5.4.5) + typescript: 5.5.3 + vite: 5.3.2(@types/node@18.11.19) + vue-tsc: 1.8.27(typescript@5.5.3) transitivePeerDependencies: - '@types/node' - rollup @@ -21123,11 +22293,47 @@ packages: '@types/node': 18.11.19 esbuild: 0.20.2 postcss: 8.4.38 - rollup: 4.17.2 + rollup: 4.18.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /vite@5.3.2(@types/node@18.11.19): + resolution: {integrity: sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 18.11.19 + esbuild: 0.21.5 + postcss: 8.4.39 + rollup: 4.18.0 optionalDependencies: fsevents: 2.3.3 - /vitest@1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.11.0): + /vitest@1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0): resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -21163,7 +22369,6 @@ packages: chai: 4.4.1 debug: 4.3.4 execa: 8.0.1 - happy-dom: 14.11.0 local-pkg: 0.5.0 magic-string: 0.30.10 pathe: 1.1.2 @@ -21185,6 +22390,64 @@ packages: - terser dev: true + /vitest@1.6.0(@types/node@18.11.19)(@vitest/ui@1.6.0)(happy-dom@14.12.3): + resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 1.6.0 + '@vitest/ui': 1.6.0 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/node': 18.11.19 + '@vitest/expect': 1.6.0 + '@vitest/runner': 1.6.0 + '@vitest/snapshot': 1.6.0 + '@vitest/spy': 1.6.0 + '@vitest/ui': 1.6.0(vitest@1.6.0) + '@vitest/utils': 1.6.0 + acorn-walk: 8.3.2 + chai: 4.4.1 + debug: 4.3.4 + execa: 8.0.1 + happy-dom: 14.12.3 + local-pkg: 0.5.0 + magic-string: 0.30.10 + pathe: 1.1.2 + picocolors: 1.0.1 + std-env: 3.7.0 + strip-literal: 2.1.0 + tinybench: 2.8.0 + tinypool: 0.8.4 + vite: 5.3.2(@types/node@18.11.19) + vite-node: 1.6.0(@types/node@18.11.19) + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + /vscode-jsonrpc@6.0.0: resolution: {integrity: sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==} engines: {node: '>=8.0.0 || >=10.0.0'} @@ -21249,18 +22512,10 @@ packages: vscode-languageserver-protocol: 3.17.5 dev: false - /vscode-oniguruma@1.7.0: - resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} - dev: true - /vscode-oniguruma@2.0.1: resolution: {integrity: sha512-poJU8iHIWnC3vgphJnrLZyI3YdqRlR27xzqDmpPXYzA93R4Gk8z7T6oqDzDoHjoikA2aS82crdXFkjELCdJsjQ==} dev: true - /vscode-textmate@8.0.0: - resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} - dev: true - /vscode-textmate@9.0.0: resolution: {integrity: sha512-Cl65diFGxz7gpwbav10HqiY/eVYTO1sjQpmRmV991Bj7wAoOAjGQ97PpQcXorDE2Uc4hnGWLY17xme+5t6MlSg==} dev: true @@ -21275,16 +22530,16 @@ packages: he: 1.2.0 dev: true - /vue-tsc@1.8.27(typescript@5.4.5): + /vue-tsc@1.8.27(typescript@5.5.3): resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} hasBin: true peerDependencies: typescript: '*' dependencies: '@volar/typescript': 1.11.1 - '@vue/language-core': 1.8.27(typescript@5.4.5) + '@vue/language-core': 1.8.27(typescript@5.5.3) semver: 7.6.2 - typescript: 5.4.5 + typescript: 5.5.3 dev: true /w3c-hr-time@1.0.2: @@ -21329,6 +22584,7 @@ packages: /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + dev: true /webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} @@ -21341,8 +22597,8 @@ packages: hasBin: true dependencies: '@discoveryjs/json-ext': 0.5.7 - acorn: 8.11.3 - acorn-walk: 8.3.2 + acorn: 8.12.0 + acorn-walk: 8.3.3 commander: 7.2.0 debounce: 1.2.1 escape-string-regexp: 4.0.0 @@ -21351,13 +22607,13 @@ packages: opener: 1.5.2 picocolors: 1.0.1 sirv: 2.0.4 - ws: 7.5.9 + ws: 7.5.10 transitivePeerDependencies: - bufferutil - utf-8-validate dev: false - /webpack-dev-middleware@5.3.4(webpack@5.91.0): + /webpack-dev-middleware@5.3.4(webpack@5.92.1): resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -21368,10 +22624,10 @@ packages: mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.2.0 - webpack: 5.91.0(@swc/core@1.5.7) + webpack: 5.92.1(@swc/core@1.6.6) dev: false - /webpack-dev-server@4.15.2(webpack@5.91.0): + /webpack-dev-server@4.15.2(webpack@5.92.1): resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==} engines: {node: '>= 12.13.0'} hasBin: true @@ -21403,7 +22659,7 @@ packages: html-entities: 2.5.2 http-proxy-middleware: 2.0.6(@types/express@4.17.21) ipaddr.js: 2.2.0 - launch-editor: 2.6.1 + launch-editor: 2.8.0 open: 8.4.2 p-retry: 4.6.2 rimraf: 3.0.2 @@ -21412,9 +22668,9 @@ packages: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack: 5.91.0(@swc/core@1.5.7) - webpack-dev-middleware: 5.3.4(webpack@5.91.0) - ws: 8.17.0 + webpack: 5.92.1(@swc/core@1.6.6) + webpack-dev-middleware: 5.3.4(webpack@5.92.1) + ws: 8.17.1 transitivePeerDependencies: - bufferutil - debug @@ -21434,12 +22690,12 @@ packages: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} - /webpack-virtual-modules@0.6.1: - resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} + /webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} dev: true - /webpack@5.91.0(@swc/core@1.5.7): - resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} + /webpack@5.92.1: + resolution: {integrity: sha512-JECQ7IwJb+7fgUFBlrJzbyu3GEuNBcdqr1LD7IbSzwkSmIevTm8PF+wej3Oxuz/JFBUZ6O1o43zsPkwm1C4TmA==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -21453,12 +22709,51 @@ packages: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/wasm-edit': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 - acorn: 8.11.3 - acorn-import-assertions: 1.9.0(acorn@8.11.3) - browserslist: 4.23.0 - chrome-trace-event: 1.0.3 - enhanced-resolve: 5.16.1 - es-module-lexer: 1.5.3 + acorn: 8.12.0 + acorn-import-attributes: 1.9.5(acorn@8.12.0) + browserslist: 4.23.1 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.17.0 + es-module-lexer: 1.5.4 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(webpack@5.92.1) + watchpack: 2.4.1 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + /webpack@5.92.1(@swc/core@1.6.6): + resolution: {integrity: sha512-JECQ7IwJb+7fgUFBlrJzbyu3GEuNBcdqr1LD7IbSzwkSmIevTm8PF+wej3Oxuz/JFBUZ6O1o43zsPkwm1C4TmA==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.5 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/wasm-edit': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + acorn: 8.12.0 + acorn-import-attributes: 1.9.5(acorn@8.12.0) + browserslist: 4.23.1 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.17.0 + es-module-lexer: 1.5.4 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -21469,7 +22764,7 @@ packages: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.5.7)(webpack@5.91.0) + terser-webpack-plugin: 5.3.10(@swc/core@1.6.6)(webpack@5.92.1) watchpack: 2.4.1 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -21477,7 +22772,7 @@ packages: - esbuild - uglify-js - /webpackbar@5.0.2(webpack@5.91.0): + /webpackbar@5.0.2(webpack@5.92.1): resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==} engines: {node: '>=12'} peerDependencies: @@ -21487,7 +22782,7 @@ packages: consola: 2.15.3 pretty-time: 1.1.0 std-env: 3.7.0 - webpack: 5.91.0(@swc/core@1.5.7) + webpack: 5.92.1(@swc/core@1.6.6) dev: false /websocket-driver@0.7.4: @@ -21537,6 +22832,7 @@ packages: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 + dev: true /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} @@ -21548,16 +22844,6 @@ packages: is-symbol: 1.0.4 dev: true - /which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} - dependencies: - is-map: 2.0.3 - is-set: 2.0.3 - is-weakmap: 2.0.2 - is-weakset: 2.0.3 - dev: true - /which-typed-array@1.1.15: resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} engines: {node: '>= 0.4'} @@ -21689,8 +22975,8 @@ packages: js-yaml: 4.1.0 write-file-atomic: 5.0.1 - /ws@7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + /ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} engines: {node: '>=8.3.0'} peerDependencies: bufferutil: ^4.0.1 @@ -21702,8 +22988,8 @@ packages: optional: true dev: false - /ws@8.17.0: - resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==} + /ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -21722,7 +23008,7 @@ packages: resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} hasBin: true dependencies: - sax: 1.3.0 + sax: 1.4.1 dev: false /xml-name-validator@4.0.0: @@ -21734,12 +23020,14 @@ packages: resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} engines: {node: '>=4.0.0'} dependencies: - sax: 1.3.0 + sax: 1.4.1 xmlbuilder: 11.0.1 + dev: true /xmlbuilder@11.0.1: resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} engines: {node: '>=4.0'} + dev: true /xmlbuilder@15.1.1: resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} @@ -21770,8 +23058,8 @@ packages: engines: {node: '>= 6'} dev: false - /yaml@2.4.2: - resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==} + /yaml@2.4.5: + resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} engines: {node: '>= 14'} hasBin: true @@ -21816,6 +23104,12 @@ packages: /yocto-queue@1.0.0: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} + dev: true + + /yocto-queue@1.1.1: + resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} + engines: {node: '>=12.20'} + dev: false /z-schema@5.0.5: resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} @@ -21835,7 +23129,3 @@ packages: /zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false From ee3af888299fe2c6e7caa04f0dc5ef2e8b381ab6 Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Mon, 1 Jul 2024 15:57:54 -0700 Subject: [PATCH 41/42] fix --- .../lib/common-types/versions.tsp | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/typespec-azure-resource-manager/lib/common-types/versions.tsp b/packages/typespec-azure-resource-manager/lib/common-types/versions.tsp index 46bf12cdba..fdd1d06df5 100644 --- a/packages/typespec-azure-resource-manager/lib/common-types/versions.tsp +++ b/packages/typespec-azure-resource-manager/lib/common-types/versions.tsp @@ -3,6 +3,7 @@ using TypeSpec.Versioning; @versioned(Versions) namespace Azure.ResourceManager.CommonTypes; +@CommonTypes.Private.armCommonTypesVersions @doc("The Azure Resource Manager common-types versions.") enum Versions { @doc("The Azure Resource Manager v3 common types.") From 732575f96204df30ee84bf381464e7e33e3614f5 Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Mon, 1 Jul 2024 15:59:31 -0700 Subject: [PATCH 42/42] fix --- .../lib/common-types/versions.tsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/typespec-azure-resource-manager/lib/common-types/versions.tsp b/packages/typespec-azure-resource-manager/lib/common-types/versions.tsp index fdd1d06df5..a30fe01666 100644 --- a/packages/typespec-azure-resource-manager/lib/common-types/versions.tsp +++ b/packages/typespec-azure-resource-manager/lib/common-types/versions.tsp @@ -3,7 +3,7 @@ using TypeSpec.Versioning; @versioned(Versions) namespace Azure.ResourceManager.CommonTypes; -@CommonTypes.Private.armCommonTypesVersions +@Azure.ResourceManager.CommonTypes.Private.armCommonTypesVersions @doc("The Azure Resource Manager common-types versions.") enum Versions { @doc("The Azure Resource Manager v3 common types.")