diff --git a/tools/tsp-client/CHANGELOG.md b/tools/tsp-client/CHANGELOG.md index 650b6e9570a..b745fdb65c8 100644 --- a/tools/tsp-client/CHANGELOG.md +++ b/tools/tsp-client/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased - 0.10.0 +- Copy the package.json + package-lock.json directly under TempTypeSpecFiles/. (#8583) +- Only show compile diagnostics if the `--debug` flag is passed to the command. - Increase minimum node version to "^18.19.0 || >=20.6.0", to ensure API import.meta.resolve() is available. (#8765) ## 2024-07-23 - 0.9.4 @@ -86,4 +88,4 @@ ## 2023-10-20 - 0.1.0 -- Initial Release \ No newline at end of file +- Initial Release diff --git a/tools/tsp-client/package-lock.json b/tools/tsp-client/package-lock.json index 1a49a29e8a3..f655025ad11 100644 --- a/tools/tsp-client/package-lock.json +++ b/tools/tsp-client/package-lock.json @@ -1,12 +1,12 @@ { "name": "@azure-tools/typespec-client-generator-cli", - "version": "0.9.4", + "version": "0.10.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@azure-tools/typespec-client-generator-cli", - "version": "0.9.4", + "version": "0.10.0", "license": "MIT", "dependencies": { "@autorest/csharp": "https://aka.ms/azsdk/openapi-to-typespec-csharp", diff --git a/tools/tsp-client/src/index.ts b/tools/tsp-client/src/index.ts index 717b7cd8586..7bc3e6926e5 100644 --- a/tools/tsp-client/src/index.ts +++ b/tools/tsp-client/src/index.ts @@ -172,14 +172,14 @@ async function syncTspFiles(outputDir: string, localSpecRepo?: string) { try { const emitterLockPath = joinPaths(repoRoot, "eng", "emitter-package-lock.json"); - await cp(emitterLockPath, joinPaths(srcDir, "package-lock.json"), { recursive: true }); + await cp(emitterLockPath, joinPaths(tempRoot, "package-lock.json"), { recursive: true }); } catch (err) { Logger.debug(`Ran into the following error when looking for emitter-package-lock.json: ${err}`); Logger.debug("Will attempt look for emitter-package.json..."); } try { const emitterPath = joinPaths(repoRoot, "eng", "emitter-package.json"); - await cp(emitterPath, joinPaths(srcDir, "package.json"), { recursive: true }); + await cp(emitterPath, joinPaths(tempRoot, "package.json"), { recursive: true }); } catch (err) { throw new Error(`Ran into the following error: ${err}\nTo continue using tsp-client, please provide a valid emitter-package.json file in the eng/ directory of the repository.`); } @@ -213,7 +213,7 @@ async function generate({ const args: string[] = []; try { // Check if package-lock.json exists, if it does, we'll install dependencies through `npm ci` - await stat(joinPaths(srcDir, "package-lock.json")); + await stat(joinPaths(tempRoot, "package-lock.json")); args.push("ci"); } catch (err) { // If package-lock.json doesn't exist, we'll attempt to install dependencies through `npm install` diff --git a/tools/tsp-client/test/examples/sdk/contosowidgetmanager/contosowidgetmanager-rest/tsp-location.yaml b/tools/tsp-client/test/examples/sdk/contosowidgetmanager/contosowidgetmanager-rest/tsp-location.yaml index ceb4066a4a7..16c83134f74 100644 --- a/tools/tsp-client/test/examples/sdk/contosowidgetmanager/contosowidgetmanager-rest/tsp-location.yaml +++ b/tools/tsp-client/test/examples/sdk/contosowidgetmanager/contosowidgetmanager-rest/tsp-location.yaml @@ -1,5 +1,5 @@ directory: specification/contosowidgetmanager/Contoso.WidgetManager commit: db63bea839f5648462c94e685d5cc96f8e8b38ba repo: Azure/azure-rest-api-specs -additionalDirectories: -- specification/contosowidgetmanager/Contoso.WidgetManager.Shared/ +additionalDirectories: +- specification/contosowidgetmanager/Contoso.WidgetManager.Shared/ \ No newline at end of file diff --git a/tools/tsp-client/test/examples/specification/convert/client.tsp b/tools/tsp-client/test/examples/specification/convert/client.tsp new file mode 100644 index 00000000000..352b776a124 --- /dev/null +++ b/tools/tsp-client/test/examples/specification/convert/client.tsp @@ -0,0 +1,35 @@ +import "./main.tsp"; +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; +using AzureSphereManagementClient; + +#suppress "deprecated" "@flattenProperty decorator is not recommended to use." +@@flattenProperty(Catalog.properties); + +#suppress "deprecated" "@flattenProperty decorator is not recommended to use." +@@flattenProperty(Certificate.properties); + +#suppress "deprecated" "@flattenProperty decorator is not recommended to use." +@@flattenProperty(Image.properties); + +#suppress "deprecated" "@flattenProperty decorator is not recommended to use." +@@flattenProperty(Deployment.properties); + +#suppress "deprecated" "@flattenProperty decorator is not recommended to use." +@@flattenProperty(DeviceGroup.properties); + +#suppress "deprecated" "@flattenProperty decorator is not recommended to use." +@@flattenProperty(Device.properties); + +#suppress "deprecated" "@flattenProperty decorator is not recommended to use." +@@flattenProperty(Product.properties); + +#suppress "deprecated" "@flattenProperty decorator is not recommended to use." +@@flattenProperty(ProductUpdate.properties); + +#suppress "deprecated" "@flattenProperty decorator is not recommended to use." +@@flattenProperty(DeviceGroupUpdate.properties); + +#suppress "deprecated" "@flattenProperty decorator is not recommended to use." +@@flattenProperty(DeviceUpdate.properties); diff --git a/tools/tsp-client/test/examples/specification/convert/main.tsp b/tools/tsp-client/test/examples/specification/convert/main.tsp index 8a4e587af83..be24a7b4b1e 100644 --- a/tools/tsp-client/test/examples/specification/convert/main.tsp +++ b/tools/tsp-client/test/examples/specification/convert/main.tsp @@ -1,9 +1,20 @@ +/** + * PLEASE DO NOT REMOVE - USED FOR CONVERTER METRICS + * Generated by package: @autorest/openapi-to-typespec + * Version: 0.8.2 + * Date: 2024-07-27T03:29:14.741Z + */ import "@typespec/rest"; import "@typespec/http"; import "./routes.tsp"; using TypeSpec.Rest; using TypeSpec.Http; +using TypeSpec.Versioning; +/** + * Azure Sphere resource management API. + */ +@useAuth(AadOauth2Auth<["user_impersonation"]>) @service({ title: "AzureSphereManagementClient", }) @@ -15,10 +26,15 @@ using TypeSpec.Http; $host: string, } ) -@doc("Azure Sphere resource management API.") namespace AzureSphereManagementClient; -@doc("The available API versions.") +/** + * The available API versions. + */ enum Versions { + /** + * The 2024-04-01 API version. + */ + @useDependency(Azure.Core.Versions.v1_0_Preview_1) v2024_04_01: "2024-04-01", } diff --git a/tools/tsp-client/test/examples/specification/convert/models.tsp b/tools/tsp-client/test/examples/specification/convert/models.tsp index 6f03469e46e..4b6fedf4062 100644 --- a/tools/tsp-client/test/examples/specification/convert/models.tsp +++ b/tools/tsp-client/test/examples/specification/convert/models.tsp @@ -7,663 +7,1157 @@ using TypeSpec.Http; namespace AzureSphereManagementClient; -enum Origin { - user, - system, - `user,system`, +/** + * The intended executor of the operation; as in Resource Based Access Control + * (RBAC) and audit logs UX. Default value is "user,system" + */ +union Origin { + string, + user: "user", + system: "system", + `user,system`: "user,system", } -enum ActionType { - Internal, +/** + * Enum. Indicates the action type. "Internal" refers to actions that are for + * internal only APIs. + */ +union ActionType { + string, + Internal: "Internal", } -enum ProvisioningState { - @doc("Resource has been created.") Succeeded, - @doc("Resource creation failed.") Failed, - @doc("Resource creation was canceled.") Canceled, - @doc("The resource is being provisioned") Provisioning, - @doc("The resource is being updated") Updating, - @doc("The resource is being deleted") Deleting, - @doc("The resource create request has been accepted") Accepted, +/** + * Provisioning state of resource. + */ +union ProvisioningState { + string, + + /** + * Resource has been created. + */ + Succeeded: "Succeeded", + + /** + * Resource creation failed. + */ + Failed: "Failed", + + /** + * Resource creation was canceled. + */ + Canceled: "Canceled", + + /** + * The resource is being provisioned + */ + Provisioning: "Provisioning", + + /** + * The resource is being updated + */ + Updating: "Updating", + + /** + * The resource is being deleted + */ + Deleting: "Deleting", + + /** + * The resource create request has been accepted + */ + Accepted: "Accepted", } -enum CreatedByType { - User, - Application, - ManagedIdentity, - Key, +/** + * The type of identity that created the resource. + */ +union CreatedByType { + string, + User: "User", + Application: "Application", + ManagedIdentity: "ManagedIdentity", + Key: "Key", } -enum CertificateStatus { - @doc("Certificate is active") Active, - @doc("Certificate is inactive") Inactive, - @doc("Certificate has expired") Expired, - @doc("Certificate has been revoked") Revoked, +/** + * Certificate status values. + */ +union CertificateStatus { + string, + + /** + * Certificate is active + */ + Active: "Active", + + /** + * Certificate is inactive + */ + Inactive: "Inactive", + + /** + * Certificate has expired + */ + Expired: "Expired", + + /** + * Certificate has been revoked + */ + Revoked: "Revoked", } -enum RegionalDataBoundary { - @doc("No data boundary") None, - @doc("EU data boundary") EU, +/** + * Regional data boundary values. + */ +union RegionalDataBoundary { + string, + + /** + * No data boundary + */ + None: "None", + + /** + * EU data boundary + */ + EU: "EU", } -enum ImageType { - @doc("Invalid image.") InvalidImageType, - @doc("One Bl image type") OneBl, - @doc("Pluton image type") PlutonRuntime, - @doc("Wifi firmware image type") WifiFirmware, - @doc("Security monitor image type") SecurityMonitor, - @doc("Normal world loader image type") NormalWorldLoader, - @doc("Normal world dtb image type") NormalWorldDtb, - @doc("Normal world kernel image type") NormalWorldKernel, - @doc("Root FS image type") RootFs, - @doc("Services image type") Services, - @doc("Applications image type") Applications, - @doc("FW config image type") FwConfig, - @doc("Boot manifest image type") BootManifest, - @doc("Nwfs image type") Nwfs, - @doc("Trusted key store image type") TrustedKeystore, - @doc("Policy image type") Policy, - @doc("Customer board config image type") CustomerBoardConfig, - @doc("Update certificate store image type") UpdateCertStore, - @doc("Base system update manifest image type") BaseSystemUpdateManifest, - @doc("Firmware update manifest image type") FirmwareUpdateManifest, - @doc("Customer update manifest image type") CustomerUpdateManifest, - @doc("Recovery manifest image type") RecoveryManifest, - @doc("manifest set image type") ManifestSet, - @doc("Other image type") Other, +/** + * Image type values. + */ +union ImageType { + string, + + /** + * Invalid image. + */ + InvalidImageType: "InvalidImageType", + + /** + * One Bl image type + */ + OneBl: "OneBl", + + /** + * Pluton image type + */ + PlutonRuntime: "PlutonRuntime", + + /** + * Wifi firmware image type + */ + WifiFirmware: "WifiFirmware", + + /** + * Security monitor image type + */ + SecurityMonitor: "SecurityMonitor", + + /** + * Normal world loader image type + */ + NormalWorldLoader: "NormalWorldLoader", + + /** + * Normal world dtb image type + */ + NormalWorldDtb: "NormalWorldDtb", + + /** + * Normal world kernel image type + */ + NormalWorldKernel: "NormalWorldKernel", + + /** + * Root FS image type + */ + RootFs: "RootFs", + + /** + * Services image type + */ + Services: "Services", + + /** + * Applications image type + */ + Applications: "Applications", + + /** + * FW config image type + */ + FwConfig: "FwConfig", + + /** + * Boot manifest image type + */ + BootManifest: "BootManifest", + + /** + * Nwfs image type + */ + Nwfs: "Nwfs", + + /** + * Trusted key store image type + */ + TrustedKeystore: "TrustedKeystore", + + /** + * Policy image type + */ + Policy: "Policy", + + /** + * Customer board config image type + */ + CustomerBoardConfig: "CustomerBoardConfig", + + /** + * Update certificate store image type + */ + UpdateCertStore: "UpdateCertStore", + + /** + * Base system update manifest image type + */ + BaseSystemUpdateManifest: "BaseSystemUpdateManifest", + + /** + * Firmware update manifest image type + */ + FirmwareUpdateManifest: "FirmwareUpdateManifest", + + /** + * Customer update manifest image type + */ + CustomerUpdateManifest: "CustomerUpdateManifest", + + /** + * Recovery manifest image type + */ + RecoveryManifest: "RecoveryManifest", + + /** + * manifest set image type + */ + ManifestSet: "ManifestSet", + + /** + * Other image type + */ + Other: "Other", } -enum OSFeedType { - @doc("Retail OS feed type.") Retail, - @doc("Retail evaluation OS feed type.") RetailEval, +/** + * OS feed type values. + */ +union OSFeedType { + string, + + /** + * Retail OS feed type. + */ + Retail: "Retail", + + /** + * Retail evaluation OS feed type. + */ + RetailEval: "RetailEval", } -enum UpdatePolicy { - @doc("Update all policy.") UpdateAll, - @doc("No update for 3rd party app policy.") No3rdPartyAppUpdates, +/** + * Update policy values. + */ +union UpdatePolicy { + string, + + /** + * Update all policy. + */ + UpdateAll: "UpdateAll", + + /** + * No update for 3rd party app policy. + */ + No3rdPartyAppUpdates: "No3rdPartyAppUpdates", } -enum AllowCrashDumpCollection { - @doc("Crash dump collection enabled") Enabled, - @doc("Crash dump collection disabled") Disabled, +/** + * Allow crash dumps values. + */ +union AllowCrashDumpCollection { + string, + + /** + * Crash dump collection enabled + */ + Enabled: "Enabled", + + /** + * Crash dump collection disabled + */ + Disabled: "Disabled", } -enum CapabilityType { - @doc("Application development capability") ApplicationDevelopment, - @doc("Field servicing capability") FieldServicing, +/** + * Capability image type + */ +union CapabilityType { + string, + + /** + * Application development capability + */ + ApplicationDevelopment: "ApplicationDevelopment", + + /** + * Field servicing capability + */ + FieldServicing: "FieldServicing", } -@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. -""") +/** + * A list of REST API operations supported by an Azure Resource Provider. It + * contains an URL link to get the next set of results. + */ model OperationListResult is Azure.Core.Page; -@doc(""" -Details of a REST API operation, returned from the Resource Provider Operations -API -""") +/** + * 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\" -""") + /** + * 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 ARM/control-plane operations. -""") + /** + * Whether the operation applies to data-plane. This is "true" for data-plane + * operations and "false" for ARM/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\" -""") + /** + * 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(""" -Enum. Indicates the action type. \"Internal\" refers to actions that are for -internal only APIs. -""") + /** + * Enum. Indicates the action type. "Internal" refers to actions that are for + * internal only APIs. + */ @visibility("read") actionType?: ActionType; } -@doc("Localized display information for this particular operation.") +/** + * Localized display information for this particular 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". + */ @visibility("read") provider?: string; - @doc(""" -The localized friendly name of the resource type related to this operation. -E.g. \"Virtual Machines\" or \"Job Schedule Collections\". -""") + /** + * The localized friendly name of the resource type related to this operation. + * E.g. "Virtual Machines" or "Job Schedule Collections". + */ @visibility("read") resource?: string; - @doc(""" -The concise, localized friendly name for the operation; suitable for dropdowns. -E.g. \"Create or Update Virtual Machine\", \"Restart Virtual Machine\". -""") + /** + * The concise, localized friendly name for the operation; suitable for dropdowns. + * E.g. "Create or Update Virtual Machine", "Restart Virtual Machine". + */ @visibility("read") 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. + */ @visibility("read") description?: string; } -@doc(""" -Common error response for all Azure Resource Manager APIs to return error -details for failed operations. (This also follows the OData error response -format.). -""") +/** + * Common error response for all Azure Resource Manager APIs to return error + * details for failed operations. (This also follows the OData error response + * format.). + */ @error model ErrorResponse { - @doc("The error object.") + /** + * The error object. + */ error?: ErrorDetail; } -@doc("The error detail.") +/** + * 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; - @doc("The error details.") + /** + * The error details. + */ @visibility("read") + @OpenAPI.extension("x-ms-identifiers", ["message", "target"]) details?: ErrorDetail[]; - @doc("The error additional info.") + /** + * The error additional info. + */ @visibility("read") + @OpenAPI.extension("x-ms-identifiers", []) additionalInfo?: ErrorAdditionalInfo[]; } -@doc("The resource management error additional info.") +/** + * 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?: Record; } -@doc("The response of a Catalog list operation.") +/** + * The response of a Catalog list operation. + */ model CatalogListResult is Azure.Core.Page; -@doc("An Azure Sphere catalog") +/** + * An Azure Sphere catalog + */ model Catalog extends TrackedResource { - @doc("The resource-specific properties for this resource.") + /** + * The resource-specific properties for this resource. + */ @visibility("read", "create") properties?: CatalogProperties; } -@doc("Catalog properties") +/** + * Catalog properties + */ model CatalogProperties { - @doc("The Azure Sphere tenant ID associated with the catalog.") + /** + * The Azure Sphere tenant ID associated with the catalog. + */ @visibility("read") tenantId?: string; - @doc("The status of the last operation.") + /** + * The status of the last operation. + */ @visibility("read") provisioningState?: ProvisioningState; } -@doc(""" -The resource model definition for an Azure Resource Manager tracked top level -resource which has 'tags' and a 'location' -""") +/** + * The resource model definition for an Azure Resource Manager tracked top level + * resource which has 'tags' and a 'location' + */ model TrackedResource extends Resource { - @doc("Resource tags.") + /** + * Resource tags. + */ @visibility("read", "create", "update") tags?: Record; - @doc("The geo-location where the resource lives") + /** + * The geo-location where the resource lives + */ @visibility("read", "create") location: string; } -@doc(""" -Common fields that are returned in the response for all Azure Resource Manager -resources -""") +/** + * Common fields that are returned in the response for all Azure Resource Manager + * resources + */ 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} + */ @visibility("read") id?: string; - @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; } -@doc("Metadata pertaining to creation and last modification of the resource.") +/** + * Metadata pertaining to creation and last modification of the resource. + */ model SystemData { - @doc("The identity that created the resource.") + /** + * The identity that created the resource. + */ createdBy?: string; - @doc("The type of identity that created the resource.") + /** + * The type of identity that created the resource. + */ createdByType?: CreatedByType; - @doc("The timestamp of resource creation (UTC).") + /** + * The timestamp of resource creation (UTC). + */ // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. createdAt?: utcDateTime; - @doc("The identity that last modified the resource.") + /** + * The identity that last modified the resource. + */ lastModifiedBy?: string; - @doc("The type of identity that last modified the resource.") + /** + * The type of identity that last modified the resource. + */ lastModifiedByType?: CreatedByType; - @doc("The timestamp of resource last modification (UTC)") + /** + * The timestamp of resource last modification (UTC) + */ // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. lastModifiedAt?: utcDateTime; } -@doc("The type used for update operations of the Catalog.") +/** + * The type used for update operations of the Catalog. + */ model CatalogUpdate { - @doc("Resource tags.") + /** + * Resource tags. + */ tags?: Record; } -@doc("The response of a Certificate list operation.") +/** + * The response of a Certificate list operation. + */ model CertificateListResult is Azure.Core.Page; -@doc("An certificate resource belonging to a catalog resource.") +/** + * An certificate resource belonging to a catalog resource. + */ model Certificate extends ProxyResource { - @doc("The resource-specific properties for this resource.") + /** + * The resource-specific properties for this resource. + */ @visibility("read", "create") properties?: CertificateProperties; } -@doc("The properties of certificate") +/** + * The properties of certificate + */ model CertificateProperties { - @doc("The certificate as a UTF-8 encoded base 64 string.") + /** + * The certificate as a UTF-8 encoded base 64 string. + */ @visibility("read") certificate?: string; - @doc("The certificate status.") + /** + * The certificate status. + */ @visibility("read") status?: CertificateStatus; - @doc("The certificate subject.") + /** + * The certificate subject. + */ @visibility("read") subject?: string; - @doc("The certificate thumbprint.") + /** + * The certificate thumbprint. + */ @visibility("read") thumbprint?: string; - @doc("The certificate expiry date.") + /** + * The certificate expiry date. + */ @visibility("read") // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. expiryUtc?: utcDateTime; - @doc("The certificate not before date.") + /** + * The certificate not before date. + */ @visibility("read") // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. notBeforeUtc?: utcDateTime; - @doc("The status of the last operation.") + /** + * The status of the last operation. + */ @visibility("read") provisioningState?: ProvisioningState; } -@doc(""" -The resource model definition for a Azure Resource Manager proxy resource. It -will not have tags and a location -""") +/** + * The resource model definition for a Azure Resource Manager proxy resource. It + * will not have tags and a location + */ model ProxyResource extends Resource {} -@doc("The certificate chain response.") +/** + * The certificate chain response. + */ model CertificateChainResponse { - @doc("The certificate chain.") + /** + * The certificate chain. + */ @visibility("read") certificateChain?: string; } -@doc("Request for the proof of possession nonce") +/** + * Request for the proof of possession nonce + */ model ProofOfPossessionNonceRequest { - @doc("The proof of possession nonce") + /** + * The proof of possession nonce + */ proofOfPossessionNonce: string; } -@doc("Result of the action to generate a proof of possession nonce") +/** + * Result of the action to generate a proof of possession nonce + */ model ProofOfPossessionNonceResponse extends CertificateProperties {} -@doc("Response to the action call for count devices in a catalog.") +/** + * Response to the action call for count devices in a catalog. + */ model CountDevicesResponse extends CountElementsResponse {} -@doc("Response of the count for elements.") +/** + * Response of the count for elements. + */ model CountElementsResponse { - @doc("Number of children resources in parent resource.") + /** + * Number of children resources in parent resource. + */ value: int32; } -@doc("The response of a Image list operation.") +/** + * The response of a Image list operation. + */ model ImageListResult is Azure.Core.Page; -@doc("An image resource belonging to a catalog resource.") +/** + * An image resource belonging to a catalog resource. + */ model Image extends ProxyResource { - @doc("The resource-specific properties for this resource.") + /** + * The resource-specific properties for this resource. + */ @visibility("read", "create") properties?: ImageProperties; } -@doc("The properties of image") +/** + * The properties of image + */ model ImageProperties { - @doc(""" -Image as a UTF-8 encoded base 64 string on image create. This field contains -the image URI on image reads. -""") + /** + * Image as a UTF-8 encoded base 64 string on image create. This field contains + * the image URI on image reads. + */ @visibility("read", "create") image?: string; - @doc("Image ID") + /** + * Image ID + */ @visibility("read", "create") imageId?: string; - @doc("Image name") + /** + * Image name + */ @visibility("read") imageName?: string; - @doc("Regional data boundary for an image") + /** + * Regional data boundary for an image + */ @visibility("read", "create") regionalDataBoundary?: RegionalDataBoundary; - @doc("Location the image") + /** + * Location the image + */ @visibility("read") uri?: string; - @doc("The image description.") + /** + * The image description. + */ @visibility("read") description?: string; - @doc("The image component id.") + /** + * The image component id. + */ @visibility("read") componentId?: string; - @doc("The image type.") + /** + * The image type. + */ @visibility("read") imageType?: ImageType; - @doc("The status of the last operation.") + /** + * The status of the last operation. + */ @visibility("read") provisioningState?: ProvisioningState; } -@doc("The response of a Deployment list operation.") +/** + * The response of a Deployment list operation. + */ model DeploymentListResult is Azure.Core.Page; -@doc("An deployment resource belonging to a device group resource.") +/** + * An deployment resource belonging to a device group resource. + */ model Deployment extends ProxyResource { - @doc("The resource-specific properties for this resource.") + /** + * The resource-specific properties for this resource. + */ @visibility("read", "create") properties?: DeploymentProperties; } -@doc("The properties of deployment") +/** + * The properties of deployment + */ model DeploymentProperties { - @doc("Deployment ID") + /** + * Deployment ID + */ @visibility("read", "create") deploymentId?: string; - @doc("Images deployed") + /** + * Images deployed + */ @visibility("read", "create") deployedImages?: Image[]; - @doc("Deployment date UTC") + /** + * Deployment date UTC + */ @visibility("read") // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. deploymentDateUtc?: utcDateTime; - @doc("The status of the last operation.") + /** + * The status of the last operation. + */ @visibility("read") provisioningState?: ProvisioningState; } -@doc("Request of the action to list device groups for a catalog.") +/** + * Request of the action to list device groups for a catalog. + */ model ListDeviceGroupsRequest { - @doc("Device Group name.") + /** + * Device Group name. + */ deviceGroupName?: string; } -@doc("The response of a DeviceGroup list operation.") +/** + * The response of a DeviceGroup list operation. + */ model DeviceGroupListResult is Azure.Core.Page; -@doc("An device group resource belonging to a product resource.") +/** + * An device group resource belonging to a product resource. + */ model DeviceGroup extends ProxyResource { - @doc("The resource-specific properties for this resource.") + /** + * The resource-specific properties for this resource. + */ @visibility("read", "create") properties?: DeviceGroupProperties; } -@doc("The properties of deviceGroup") +/** + * The properties of deviceGroup + */ model DeviceGroupProperties { - @doc("Description of the device group.") + /** + * Description of the device group. + */ description?: string; - @doc("Operating system feed type of the device group.") + /** + * Operating system feed type of the device group. + */ osFeedType?: OSFeedType; - @doc("Update policy of the device group.") + /** + * Update policy of the device group. + */ updatePolicy?: UpdatePolicy; - @doc("Flag to define if the user allows for crash dump collection.") + /** + * Flag to define if the user allows for crash dump collection. + */ allowCrashDumpsCollection?: AllowCrashDumpCollection; - @doc("Regional data boundary for the device group.") + /** + * Regional data boundary for the device group. + */ regionalDataBoundary?: RegionalDataBoundary; - @doc("Deployment status for the device group.") + /** + * Deployment status for the device group. + */ @visibility("read") hasDeployment?: boolean; - @doc("The status of the last operation.") + /** + * The status of the last operation. + */ @visibility("read") provisioningState?: ProvisioningState; } -@doc("Paged collection of DeviceInsight items") +/** + * Paged collection of DeviceInsight items + */ model PagedDeviceInsight is Azure.Core.Page; -@doc("Device insight report.") +/** + * Device insight report. + */ model DeviceInsight { - @doc("Device ID") + /** + * Device ID + */ deviceId: string; - @doc("Event description") + /** + * Event description + */ description: string; - @doc("Event start timestamp") + /** + * Event start timestamp + */ // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. startTimestampUtc: utcDateTime; - @doc("Event end timestamp") + /** + * Event end timestamp + */ // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. endTimestampUtc: utcDateTime; - @doc("Event category") + /** + * Event category + */ eventCategory: string; - @doc("Event class") + /** + * Event class + */ eventClass: string; - @doc("Event type") + /** + * Event type + */ eventType: string; - @doc("Event count") + /** + * Event count + */ eventCount: int32; } -@doc("The response of a Device list operation.") +/** + * The response of a Device list operation. + */ model DeviceListResult is Azure.Core.Page; -@doc("An device resource belonging to a device group resource.") +/** + * An device resource belonging to a device group resource. + */ model Device extends ProxyResource { - @doc("The resource-specific properties for this resource.") + /** + * The resource-specific properties for this resource. + */ @visibility("read", "create") properties?: DeviceProperties; } -@doc("The properties of device") +/** + * The properties of device + */ model DeviceProperties { - @doc("Device ID") + /** + * Device ID + */ @visibility("read", "create") deviceId?: string; - @doc("SKU of the chip") + /** + * SKU of the chip + */ @visibility("read") chipSku?: string; - @doc("OS version available for installation when update requested") + /** + * OS version available for installation when update requested + */ @visibility("read") lastAvailableOsVersion?: string; - @doc("OS version running on device when update requested") + /** + * OS version running on device when update requested + */ @visibility("read") lastInstalledOsVersion?: string; - @doc("Time when update requested and new OS version available") + /** + * Time when update requested and new OS version available + */ @visibility("read") // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. lastOsUpdateUtc?: utcDateTime; - @doc("Time when update was last requested") + /** + * Time when update was last requested + */ @visibility("read") // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. lastUpdateRequestUtc?: utcDateTime; - @doc("The status of the last operation.") + /** + * The status of the last operation. + */ @visibility("read") provisioningState?: ProvisioningState; } -@doc("The response of a Product list operation.") +/** + * The response of a Product list operation. + */ model ProductListResult is Azure.Core.Page; -@doc("An product resource belonging to a catalog resource.") +/** + * An product resource belonging to a catalog resource. + */ model Product extends ProxyResource { - @doc("The resource-specific properties for this resource.") + /** + * The resource-specific properties for this resource. + */ @visibility("read", "create") properties?: ProductProperties; } -@doc("The properties of product") +/** + * The properties of product + */ model ProductProperties { - @doc("Description of the product") + /** + * Description of the product + */ description?: string; - @doc("The status of the last operation.") + /** + * The status of the last operation. + */ @visibility("read") provisioningState?: ProvisioningState; } -@doc("The type used for update operations of the Product.") +/** + * The type used for update operations of the Product. + */ model ProductUpdate { - @doc("The updatable properties of the Product.") + /** + * The updatable properties of the Product. + */ properties?: ProductUpdateProperties; } -@doc("The updatable properties of the Product.") +/** + * The updatable properties of the Product. + */ model ProductUpdateProperties { - @doc("Description of the product") + /** + * Description of the product + */ description?: string; } -@doc("The type used for update operations of the DeviceGroup.") +/** + * The type used for update operations of the DeviceGroup. + */ model DeviceGroupUpdate { - @doc("The updatable properties of the DeviceGroup.") + /** + * The updatable properties of the DeviceGroup. + */ properties?: DeviceGroupUpdateProperties; } -@doc("The updatable properties of the DeviceGroup.") +/** + * The updatable properties of the DeviceGroup. + */ model DeviceGroupUpdateProperties { - @doc("Description of the device group.") + /** + * Description of the device group. + */ description?: string; - @doc("Operating system feed type of the device group.") + /** + * Operating system feed type of the device group. + */ osFeedType?: OSFeedType; - @doc("Update policy of the device group.") + /** + * Update policy of the device group. + */ updatePolicy?: UpdatePolicy; - @doc("Flag to define if the user allows for crash dump collection.") + /** + * Flag to define if the user allows for crash dump collection. + */ allowCrashDumpsCollection?: AllowCrashDumpCollection; - @doc("Regional data boundary for the device group.") + /** + * Regional data boundary for the device group. + */ regionalDataBoundary?: RegionalDataBoundary; } -@doc("Request to the action call to bulk claim devices.") +/** + * Request to the action call to bulk claim devices. + */ model ClaimDevicesRequest { - @doc("Device identifiers of the devices to be claimed.") + /** + * Device identifiers of the devices to be claimed. + */ deviceIdentifiers: string[]; } -@doc("The type used for update operations of the Device.") +/** + * The type used for update operations of the Device. + */ model DeviceUpdate { - @doc("The updatable properties of the Device.") + /** + * The updatable properties of the Device. + */ properties?: DeviceUpdateProperties; } -@doc("The updatable properties of the Device.") +/** + * The updatable properties of the Device. + */ model DeviceUpdateProperties { - @doc("Device group id") + /** + * Device group id + */ deviceGroupId?: string; } -@doc("Request of the action to create a signed device capability image") +/** + * Request of the action to create a signed device capability image + */ model GenerateCapabilityImageRequest { - @doc("List of capabilities to create") + /** + * List of capabilities to create + */ capabilities: CapabilityType[]; } -@doc("Signed device capability image response") +/** + * Signed device capability image response + */ model SignedCapabilityImageResponse { - @doc("The signed device capability image as a UTF-8 encoded base 64 string.") + /** + * The signed device capability image as a UTF-8 encoded base 64 string. + */ @visibility("read") image?: string; } -@doc("Response to the action call for count devices in a catalog (preview API).") +/** + * Response to the action call for count devices in a catalog (preview API). + */ model CountDeviceResponse extends CountElementsResponse {} diff --git a/tools/tsp-client/test/examples/specification/convert/routes.tsp b/tools/tsp-client/test/examples/specification/convert/routes.tsp index e4919fe7ec3..fb81ebe45d3 100644 --- a/tools/tsp-client/test/examples/specification/convert/routes.tsp +++ b/tools/tsp-client/test/examples/specification/convert/routes.tsp @@ -8,19 +8,25 @@ using TypeSpec.Http; namespace AzureSphereManagementClient; interface OperationsOperations { - @doc("List the operations for the provider") + /** + * List the operations for the provider + */ @route("/providers/Microsoft.AzureSphere/operations") @get - List is Azure.Core.Foundations.Operation<{}, OperationListResult>; + list is Azure.Core.Foundations.Operation<{}, OperationListResult>; } interface CatalogsOperations { - @doc("List Catalog resources by subscription ID") + /** + * List Catalog resources by subscription ID + */ @route("/subscriptions/{subscriptionId}/providers/Microsoft.AzureSphere/catalogs") @get - ListBySubscription is Azure.Core.Foundations.Operation< + listBySubscription is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; @@ -28,17 +34,23 @@ interface CatalogsOperations { CatalogListResult >; - @doc("List Catalog resources by resource group") + /** + * List Catalog resources by resource group + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs") @get - ListByResourceGroup is Azure.Core.Foundations.Operation< + listByResourceGroup is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path @@ -47,23 +59,31 @@ interface CatalogsOperations { CatalogListResult >; - @doc("Get a Catalog") + /** + * Get a Catalog + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}") @get - Get is Azure.Core.Foundations.Operation< + get is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; @@ -71,79 +91,107 @@ interface CatalogsOperations { Catalog >; - @doc("Create a Catalog") + /** + * Create a Catalog + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}") @put - CreateOrUpdate is Azure.Core.Foundations.Operation< + createOrUpdate is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Resource create parameters.") + /** + * Resource create parameters. + */ @body resource: Catalog; }, Catalog >; - @doc("Update a Catalog") + /** + * Update a Catalog + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}") @patch - Update is Azure.Core.Foundations.Operation< + update is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("The resource properties to be updated.") + /** + * The resource properties to be updated. + */ @body properties: CatalogUpdate; }, Catalog >; - @doc("Delete a Catalog") + /** + * Delete a Catalog + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}") @delete - Delete is Azure.Core.Foundations.Operation< + delete is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; @@ -151,23 +199,31 @@ interface CatalogsOperations { void >; - @doc("Counts devices in catalog.") + /** + * Counts devices in catalog. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/countDevices") @post - CountDevices is Azure.Core.Foundations.Operation< + countDevices is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; @@ -175,39 +231,55 @@ interface CatalogsOperations { CountDevicesResponse >; - @doc("Lists deployments for catalog.") + /** + * Lists deployments for catalog. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/listDeployments") @post - ListDeployments is Azure.Core.Foundations.Operation< + listDeployments is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Filter the result list using the given expression") + /** + * Filter the result list using the given expression + */ @query("$filter") filter?: string; - @doc("The number of result items to return.") + /** + * The number of result items to return. + */ @query("$top") top?: int32; - @doc("The number of result items to skip.") + /** + * The number of result items to skip. + */ @query("$skip") skip?: int32; - @doc("The maximum number of result items per page.") + /** + * The maximum number of result items per page. + */ @query("$maxpagesize") maxpagesize?: int32; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; @@ -215,83 +287,117 @@ interface CatalogsOperations { DeploymentListResult >; - @doc("List the device groups for the catalog.") + /** + * List the device groups for the catalog. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/listDeviceGroups") @post - ListDeviceGroups is Azure.Core.Foundations.Operation< + listDeviceGroups is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Filter the result list using the given expression") + /** + * Filter the result list using the given expression + */ @query("$filter") filter?: string; - @doc("The number of result items to return.") + /** + * The number of result items to return. + */ @query("$top") top?: int32; - @doc("The number of result items to skip.") + /** + * The number of result items to skip. + */ @query("$skip") skip?: int32; - @doc("The maximum number of result items per page.") + /** + * The maximum number of result items per page. + */ @query("$maxpagesize") maxpagesize?: int32; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("List device groups for catalog.") + /** + * List device groups for catalog. + */ @body listDeviceGroupsRequest: ListDeviceGroupsRequest; }, DeviceGroupListResult >; - @doc("Lists device insights for catalog.") + /** + * Lists device insights for catalog. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/listDeviceInsights") @post - ListDeviceInsights is Azure.Core.Foundations.Operation< + listDeviceInsights is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Filter the result list using the given expression") + /** + * Filter the result list using the given expression + */ @query("$filter") filter?: string; - @doc("The number of result items to return.") + /** + * The number of result items to return. + */ @query("$top") top?: int32; - @doc("The number of result items to skip.") + /** + * The number of result items to skip. + */ @query("$skip") skip?: int32; - @doc("The maximum number of result items per page.") + /** + * The maximum number of result items per page. + */ @query("$maxpagesize") maxpagesize?: int32; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; @@ -299,39 +405,55 @@ interface CatalogsOperations { PagedDeviceInsight >; - @doc("Lists devices for catalog.") + /** + * Lists devices for catalog. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/listDevices") @post - ListDevices is Azure.Core.Foundations.Operation< + listDevices is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Filter the result list using the given expression") + /** + * Filter the result list using the given expression + */ @query("$filter") filter?: string; - @doc("The number of result items to return.") + /** + * The number of result items to return. + */ @query("$top") top?: int32; - @doc("The number of result items to skip.") + /** + * The number of result items to skip. + */ @query("$skip") skip?: int32; - @doc("The maximum number of result items per page.") + /** + * The maximum number of result items per page. + */ @query("$maxpagesize") maxpagesize?: int32; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; @@ -339,28 +461,38 @@ interface CatalogsOperations { DeviceListResult >; - @doc("Creates an image. Use this action when the image ID is unknown.") + /** + * Creates an image. Use this action when the image ID is unknown. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/uploadImage") @post - UploadImage is Azure.Core.Foundations.Operation< + uploadImage is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Image upload request body.") + /** + * Image upload request body. + */ @body uploadImageRequest: Image; }, @@ -369,39 +501,55 @@ interface CatalogsOperations { } interface CertificatesOperations { - @doc("List Certificate resources by Catalog") + /** + * List Certificate resources by Catalog + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/certificates") @get - ListByCatalog is Azure.Core.Foundations.Operation< + listByCatalog is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Filter the result list using the given expression") + /** + * Filter the result list using the given expression + */ @query("$filter") filter?: string; - @doc("The number of result items to return.") + /** + * The number of result items to return. + */ @query("$top") top?: int32; - @doc("The number of result items to skip.") + /** + * The number of result items to skip. + */ @query("$skip") skip?: int32; - @doc("The maximum number of result items per page.") + /** + * The maximum number of result items per page. + */ @query("$maxpagesize") maxpagesize?: int32; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; @@ -409,97 +557,123 @@ interface CertificatesOperations { CertificateListResult >; - @doc("Get a Certificate") + /** + * Get a Certificate + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/certificates/{serialNumber}") @get - Get is Azure.Core.Foundations.Operation< + get is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc(""" -Serial number of the certificate. Use '.default' to get current active -certificate. -""") + /** + * Serial number of the certificate. Use '.default' to get current active + * certificate. + */ @path serialNumber: string; }, Certificate >; - @doc("Retrieves cert chain.") + /** + * Retrieves cert chain. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/certificates/{serialNumber}/retrieveCertChain") @post - RetrieveCertChain is Azure.Core.Foundations.Operation< + retrieveCertChain is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc(""" -Serial number of the certificate. Use '.default' to get current active -certificate. -""") + /** + * Serial number of the certificate. Use '.default' to get current active + * certificate. + */ @path serialNumber: string; }, CertificateChainResponse >; - @doc("Gets the proof of possession nonce.") + /** + * Gets the proof of possession nonce. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/certificates/{serialNumber}/retrieveProofOfPossessionNonce") @post - RetrieveProofOfPossessionNonce is Azure.Core.Foundations.Operation< + retrieveProofOfPossessionNonce is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc(""" -Serial number of the certificate. Use '.default' to get current active -certificate. -""") + /** + * Serial number of the certificate. Use '.default' to get current active + * certificate. + */ @path serialNumber: string; - @doc("Proof of possession nonce request body ") + /** + * Proof of possession nonce request body + */ @body proofOfPossessionNonceRequest: ProofOfPossessionNonceRequest; }, @@ -508,39 +682,55 @@ certificate. } interface ImagesOperations { - @doc("List Image resources by Catalog") + /** + * List Image resources by Catalog + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/images") @get - ListByCatalog is Azure.Core.Foundations.Operation< + listByCatalog is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Filter the result list using the given expression") + /** + * Filter the result list using the given expression + */ @query("$filter") filter?: string; - @doc("The number of result items to return.") + /** + * The number of result items to return. + */ @query("$top") top?: int32; - @doc("The number of result items to skip.") + /** + * The number of result items to skip. + */ @query("$skip") skip?: int32; - @doc("The maximum number of result items per page.") + /** + * The maximum number of result items per page. + */ @query("$maxpagesize") maxpagesize?: int32; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; @@ -548,88 +738,120 @@ interface ImagesOperations { ImageListResult >; - @doc("Get a Image") + /** + * Get a Image + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/images/{imageName}") @get - Get is Azure.Core.Foundations.Operation< + get is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Image name. Use an image GUID for GA versions of the API.") + /** + * Image name. Use an image GUID for GA versions of the API. + */ @path imageName: string; }, Image >; - @doc("Create a Image") + /** + * Create a Image + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/images/{imageName}") @put - CreateOrUpdate is Azure.Core.Foundations.Operation< + createOrUpdate is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Image name. Use an image GUID for GA versions of the API.") + /** + * Image name. Use an image GUID for GA versions of the API. + */ @path imageName: string; - @doc("Resource create parameters.") + /** + * Resource create parameters. + */ @body resource: Image; }, Image >; - @doc("Delete a Image") + /** + * Delete a Image + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/images/{imageName}") @delete - Delete is Azure.Core.Foundations.Operation< + delete is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Image name. Use an image GUID for GA versions of the API.") + /** + * Image name. Use an image GUID for GA versions of the API. + */ @path imageName: string; }, @@ -638,23 +860,31 @@ interface ImagesOperations { } interface ProductsOperations { - @doc("List Product resources by Catalog") + /** + * List Product resources by Catalog + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/products") @get - ListByCatalog is Azure.Core.Foundations.Operation< + listByCatalog is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; @@ -662,31 +892,39 @@ interface ProductsOperations { ProductListResult >; - @doc(""" -Get a Product. '.default' and '.unassigned' are system defined values and -cannot be used for product name. -""") + /** + * Get a Product. '.default' and '.unassigned' are system defined values and + * cannot be used for product name. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/products/{productName}") @get - Get is Azure.Core.Foundations.Operation< + get is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Name of product.") + /** + * Name of product. + */ @pattern("^[\\w][\\w\\s]{1,48}[\\w]$|^\\.default$|^\\.unassigned$") @path productName: string; @@ -694,103 +932,131 @@ cannot be used for product name. Product >; - @doc(""" -Create a Product. '.default' and '.unassigned' are system defined values and -cannot be used for product name. -""") + /** + * Create a Product. '.default' and '.unassigned' are system defined values and + * cannot be used for product name. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/products/{productName}") @put - CreateOrUpdate is Azure.Core.Foundations.Operation< + createOrUpdate is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Name of product.") + /** + * Name of product. + */ @pattern("^[\\w][\\w\\s]{1,48}[\\w]$|^\\.default$|^\\.unassigned$") @path productName: string; - @doc("Resource create parameters.") + /** + * Resource create parameters. + */ @body resource: Product; }, Product >; - @doc(""" -Update a Product. '.default' and '.unassigned' are system defined values and -cannot be used for product name. -""") + /** + * Update a Product. '.default' and '.unassigned' are system defined values and + * cannot be used for product name. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/products/{productName}") @patch - Update is Azure.Core.Foundations.Operation< + update is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Name of product.") + /** + * Name of product. + */ @pattern("^[\\w][\\w\\s]{1,48}[\\w]$|^\\.default$|^\\.unassigned$") @path productName: string; - @doc("The resource properties to be updated.") + /** + * The resource properties to be updated. + */ @body properties: ProductUpdate; }, Product | void >; - @doc(""" -Delete a Product. '.default' and '.unassigned' are system defined values and -cannot be used for product name' -""") + /** + * Delete a Product. '.default' and '.unassigned' are system defined values and + * cannot be used for product name' + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/products/{productName}") @delete - Delete is Azure.Core.Foundations.Operation< + delete is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Name of product.") + /** + * Name of product. + */ @pattern("^[\\w][\\w\\s]{1,48}[\\w]$|^\\.default$|^\\.unassigned$") @path productName: string; @@ -798,31 +1064,39 @@ cannot be used for product name' void >; - @doc(""" -Counts devices in product. '.default' and '.unassigned' are system defined -values and cannot be used for product name. -""") + /** + * Counts devices in product. '.default' and '.unassigned' are system defined + * values and cannot be used for product name. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/products/{productName}/countDevices") @post - CountDevices is Azure.Core.Foundations.Operation< + countDevices is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Name of product.") + /** + * Name of product. + */ @pattern("^[\\w][\\w\\s]{1,48}[\\w]$|^\\.default$|^\\.unassigned$") @path productName: string; @@ -830,31 +1104,39 @@ values and cannot be used for product name. CountDevicesResponse >; - @doc(""" -Generates default device groups for the product. '.default' and '.unassigned' -are system defined values and cannot be used for product name. -""") + /** + * Generates default device groups for the product. '.default' and '.unassigned' + * are system defined values and cannot be used for product name. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/products/{productName}/generateDefaultDeviceGroups") @post - GenerateDefaultDeviceGroups is Azure.Core.Foundations.Operation< + generateDefaultDeviceGroups is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Name of product.") + /** + * Name of product. + */ @pattern("^[\\w][\\w\\s]{1,48}[\\w]$|^\\.default$|^\\.unassigned$") @path productName: string; @@ -864,47 +1146,63 @@ are system defined values and cannot be used for product name. } interface DeviceGroupsOperations { - @doc(""" -List DeviceGroup resources by Product. '.default' and '.unassigned' are system -defined values and cannot be used for product name. -""") + /** + * List DeviceGroup resources by Product. '.default' and '.unassigned' are system + * defined values and cannot be used for product name. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/products/{productName}/deviceGroups") @get - ListByProduct is Azure.Core.Foundations.Operation< + listByProduct is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Filter the result list using the given expression") + /** + * Filter the result list using the given expression + */ @query("$filter") filter?: string; - @doc("The number of result items to return.") + /** + * The number of result items to return. + */ @query("$top") top?: int32; - @doc("The number of result items to skip.") + /** + * The number of result items to skip. + */ @query("$skip") skip?: int32; - @doc("The maximum number of result items per page.") + /** + * The maximum number of result items per page. + */ @query("$maxpagesize") maxpagesize?: int32; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Name of product.") + /** + * Name of product. + */ @pattern("^[\\w][\\w\\s]{1,48}[\\w]$|^\\.default$|^\\.unassigned$") @path productName: string; @@ -912,36 +1210,46 @@ defined values and cannot be used for product name. DeviceGroupListResult >; - @doc(""" -Get a DeviceGroup. '.default' and '.unassigned' are system defined values and -cannot be used for product or device group name. -""") + /** + * Get a DeviceGroup. '.default' and '.unassigned' are system defined values and + * cannot be used for product or device group name. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/products/{productName}/deviceGroups/{deviceGroupName}") @get - Get is Azure.Core.Foundations.Operation< + get is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Name of product.") + /** + * Name of product. + */ @pattern("^[\\w][\\w\\s]{1,48}[\\w]$|^\\.default$|^\\.unassigned$") @path productName: string; - @doc("Name of device group.") + /** + * Name of device group. + */ @pattern("^[A-Za-z0-9]{1,2}$|^[A-Za-z0-9][A-Za-z0-9\\s]{1,48}[A-Za-z0-9]$|^\\.default$|^\\.unassigned$") @path deviceGroupName: string; @@ -949,118 +1257,152 @@ cannot be used for product or device group name. DeviceGroup >; - @doc(""" -Create a DeviceGroup. '.default' and '.unassigned' are system defined values -and cannot be used for product or device group name. -""") + /** + * Create a DeviceGroup. '.default' and '.unassigned' are system defined values + * and cannot be used for product or device group name. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/products/{productName}/deviceGroups/{deviceGroupName}") @put - CreateOrUpdate is Azure.Core.Foundations.Operation< + createOrUpdate is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Name of product.") + /** + * Name of product. + */ @pattern("^[\\w][\\w\\s]{1,48}[\\w]$|^\\.default$|^\\.unassigned$") @path productName: string; - @doc("Name of device group.") + /** + * Name of device group. + */ @pattern("^[A-Za-z0-9]{1,2}$|^[A-Za-z0-9][A-Za-z0-9\\s]{1,48}[A-Za-z0-9]$|^\\.default$|^\\.unassigned$") @path deviceGroupName: string; - @doc("Resource create parameters.") + /** + * Resource create parameters. + */ @body resource: DeviceGroup; }, DeviceGroup >; - @doc(""" -Update a DeviceGroup. '.default' and '.unassigned' are system defined values -and cannot be used for product or device group name. -""") + /** + * Update a DeviceGroup. '.default' and '.unassigned' are system defined values + * and cannot be used for product or device group name. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/products/{productName}/deviceGroups/{deviceGroupName}") @patch - Update is Azure.Core.Foundations.Operation< + update is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Name of product.") + /** + * Name of product. + */ @pattern("^[\\w][\\w\\s]{1,48}[\\w]$|^\\.default$|^\\.unassigned$") @path productName: string; - @doc("Name of device group.") + /** + * Name of device group. + */ @pattern("^[A-Za-z0-9]{1,2}$|^[A-Za-z0-9][A-Za-z0-9\\s]{1,48}[A-Za-z0-9]$|^\\.default$|^\\.unassigned$") @path deviceGroupName: string; - @doc("The resource properties to be updated.") + /** + * The resource properties to be updated. + */ @body properties: DeviceGroupUpdate; }, DeviceGroup | void >; - @doc(""" -Delete a DeviceGroup. '.default' and '.unassigned' are system defined values -and cannot be used for product or device group name. -""") + /** + * Delete a DeviceGroup. '.default' and '.unassigned' are system defined values + * and cannot be used for product or device group name. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/products/{productName}/deviceGroups/{deviceGroupName}") @delete - Delete is Azure.Core.Foundations.Operation< + delete is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Name of product.") + /** + * Name of product. + */ @pattern("^[\\w][\\w\\s]{1,48}[\\w]$|^\\.default$|^\\.unassigned$") @path productName: string; - @doc("Name of device group.") + /** + * Name of device group. + */ @pattern("^[A-Za-z0-9]{1,2}$|^[A-Za-z0-9][A-Za-z0-9\\s]{1,48}[A-Za-z0-9]$|^\\.default$|^\\.unassigned$") @path deviceGroupName: string; @@ -1068,77 +1410,99 @@ and cannot be used for product or device group name. void >; - @doc(""" -Bulk claims the devices. Use '.unassigned' or '.default' for the device group -and product names when bulk claiming devices to a catalog only. -""") + /** + * Bulk claims the devices. Use '.unassigned' or '.default' for the device group + * and product names when bulk claiming devices to a catalog only. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/products/{productName}/deviceGroups/{deviceGroupName}/claimDevices") @post - ClaimDevices is Azure.Core.Foundations.Operation< + claimDevices is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Name of product.") + /** + * Name of product. + */ @pattern("^[\\w][\\w\\s]{1,48}[\\w]$|^\\.default$|^\\.unassigned$") @path productName: string; - @doc("Name of device group.") + /** + * Name of device group. + */ @pattern("^[A-Za-z0-9]{1,2}$|^[A-Za-z0-9][A-Za-z0-9\\s]{1,48}[A-Za-z0-9]$|^\\.default$|^\\.unassigned$") @path deviceGroupName: string; - @doc("Bulk claim devices request body.") + /** + * Bulk claim devices request body. + */ @body claimDevicesRequest: ClaimDevicesRequest; }, void >; - @doc(""" -Counts devices in device group. '.default' and '.unassigned' are system defined -values and cannot be used for product or device group name. -""") + /** + * Counts devices in device group. '.default' and '.unassigned' are system defined + * values and cannot be used for product or device group name. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/products/{productName}/deviceGroups/{deviceGroupName}/countDevices") @post - CountDevices is Azure.Core.Foundations.Operation< + countDevices is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Name of product.") + /** + * Name of product. + */ @pattern("^[\\w][\\w\\s]{1,48}[\\w]$|^\\.default$|^\\.unassigned$") @path productName: string; - @doc("Name of device group.") + /** + * Name of device group. + */ @pattern("^[A-Za-z0-9]{1,2}$|^[A-Za-z0-9][A-Za-z0-9\\s]{1,48}[A-Za-z0-9]$|^\\.default$|^\\.unassigned$") @path deviceGroupName: string; @@ -1148,52 +1512,70 @@ values and cannot be used for product or device group name. } interface DeploymentsOperations { - @doc(""" -List Deployment resources by DeviceGroup. '.default' and '.unassigned' are -system defined values and cannot be used for product or device group name. -""") + /** + * List Deployment resources by DeviceGroup. '.default' and '.unassigned' are + * system defined values and cannot be used for product or device group name. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/products/{productName}/deviceGroups/{deviceGroupName}/deployments") @get - ListByDeviceGroup is Azure.Core.Foundations.Operation< + listByDeviceGroup is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Filter the result list using the given expression") + /** + * Filter the result list using the given expression + */ @query("$filter") filter?: string; - @doc("The number of result items to return.") + /** + * The number of result items to return. + */ @query("$top") top?: int32; - @doc("The number of result items to skip.") + /** + * The number of result items to skip. + */ @query("$skip") skip?: int32; - @doc("The maximum number of result items per page.") + /** + * The maximum number of result items per page. + */ @query("$maxpagesize") maxpagesize?: int32; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Name of product.") + /** + * Name of product. + */ @pattern("^[\\w][\\w\\s]{1,48}[\\w]$|^\\.default$|^\\.unassigned$") @path productName: string; - @doc("Name of device group.") + /** + * Name of device group. + */ @pattern("^[A-Za-z0-9]{1,2}$|^[A-Za-z0-9][A-Za-z0-9\\s]{1,48}[A-Za-z0-9]$|^\\.default$|^\\.unassigned$") @path deviceGroupName: string; @@ -1201,136 +1583,168 @@ system defined values and cannot be used for product or device group name. DeploymentListResult >; - @doc(""" -Get a Deployment. '.default' and '.unassigned' are system defined values and -cannot be used for product or device group name. -""") + /** + * Get a Deployment. '.default' and '.unassigned' are system defined values and + * cannot be used for product or device group name. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/products/{productName}/deviceGroups/{deviceGroupName}/deployments/{deploymentName}") @get - Get is Azure.Core.Foundations.Operation< + get is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Name of product.") + /** + * Name of product. + */ @pattern("^[\\w][\\w\\s]{1,48}[\\w]$|^\\.default$|^\\.unassigned$") @path productName: string; - @doc("Name of device group.") + /** + * Name of device group. + */ @pattern("^[A-Za-z0-9]{1,2}$|^[A-Za-z0-9][A-Za-z0-9\\s]{1,48}[A-Za-z0-9]$|^\\.default$|^\\.unassigned$") @path deviceGroupName: string; - @doc(""" -Deployment name. Use .default for deployment creation and to get the current -deployment for the associated device group. -""") + /** + * Deployment name. Use .default for deployment creation and to get the current + * deployment for the associated device group. + */ @path deploymentName: string; }, Deployment >; - @doc(""" -Create a Deployment. '.default' and '.unassigned' are system defined values and -cannot be used for product or device group name. -""") + /** + * Create a Deployment. '.default' and '.unassigned' are system defined values and + * cannot be used for product or device group name. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/products/{productName}/deviceGroups/{deviceGroupName}/deployments/{deploymentName}") @put - CreateOrUpdate is Azure.Core.Foundations.Operation< + createOrUpdate is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Name of product.") + /** + * Name of product. + */ @pattern("^[\\w][\\w\\s]{1,48}[\\w]$|^\\.default$|^\\.unassigned$") @path productName: string; - @doc("Name of device group.") + /** + * Name of device group. + */ @pattern("^[A-Za-z0-9]{1,2}$|^[A-Za-z0-9][A-Za-z0-9\\s]{1,48}[A-Za-z0-9]$|^\\.default$|^\\.unassigned$") @path deviceGroupName: string; - @doc(""" -Deployment name. Use .default for deployment creation and to get the current -deployment for the associated device group. -""") + /** + * Deployment name. Use .default for deployment creation and to get the current + * deployment for the associated device group. + */ @path deploymentName: string; - @doc("Resource create parameters.") + /** + * Resource create parameters. + */ @body resource: Deployment; }, Deployment >; - @doc(""" -Delete a Deployment. '.default' and '.unassigned' are system defined values and -cannot be used for product or device group name. -""") + /** + * Delete a Deployment. '.default' and '.unassigned' are system defined values and + * cannot be used for product or device group name. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/products/{productName}/deviceGroups/{deviceGroupName}/deployments/{deploymentName}") @delete - Delete is Azure.Core.Foundations.Operation< + delete is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Name of product.") + /** + * Name of product. + */ @pattern("^[\\w][\\w\\s]{1,48}[\\w]$|^\\.default$|^\\.unassigned$") @path productName: string; - @doc("Name of device group.") + /** + * Name of device group. + */ @pattern("^[A-Za-z0-9]{1,2}$|^[A-Za-z0-9][A-Za-z0-9\\s]{1,48}[A-Za-z0-9]$|^\\.default$|^\\.unassigned$") @path deviceGroupName: string; - @doc(""" -Deployment name. Use .default for deployment creation and to get the current -deployment for the associated device group. -""") + /** + * Deployment name. Use .default for deployment creation and to get the current + * deployment for the associated device group. + */ @path deploymentName: string; }, @@ -1339,36 +1753,46 @@ deployment for the associated device group. } interface DevicesOperations { - @doc(""" -List Device resources by DeviceGroup. '.default' and '.unassigned' are system -defined values and cannot be used for product or device group name. -""") + /** + * List Device resources by DeviceGroup. '.default' and '.unassigned' are system + * defined values and cannot be used for product or device group name. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/products/{productName}/deviceGroups/{deviceGroupName}/devices") @get - ListByDeviceGroup is Azure.Core.Foundations.Operation< + listByDeviceGroup is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Name of product.") + /** + * Name of product. + */ @pattern("^[\\w][\\w\\s]{1,48}[\\w]$|^\\.default$|^\\.unassigned$") @path productName: string; - @doc("Name of device group.") + /** + * Name of device group. + */ @pattern("^[A-Za-z0-9]{1,2}$|^[A-Za-z0-9][A-Za-z0-9\\s]{1,48}[A-Za-z0-9]$|^\\.default$|^\\.unassigned$") @path deviceGroupName: string; @@ -1376,41 +1800,53 @@ defined values and cannot be used for product or device group name. DeviceListResult >; - @doc(""" -Get a Device. Use '.unassigned' or '.default' for the device group and product -names when a device does not belong to a device group and product. -""") + /** + * Get a Device. Use '.unassigned' or '.default' for the device group and product + * names when a device does not belong to a device group and product. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/products/{productName}/deviceGroups/{deviceGroupName}/devices/{deviceName}") @get - Get is Azure.Core.Foundations.Operation< + get is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Name of product.") + /** + * Name of product. + */ @pattern("^[\\w][\\w\\s]{1,48}[\\w]$|^\\.default$|^\\.unassigned$") @path productName: string; - @doc("Name of device group.") + /** + * Name of device group. + */ @pattern("^[A-Za-z0-9]{1,2}$|^[A-Za-z0-9][A-Za-z0-9\\s]{1,48}[A-Za-z0-9]$|^\\.default$|^\\.unassigned$") @path deviceGroupName: string; - @doc("Device name") + /** + * Device name + */ @pattern("^[a-zA-Z0-9-]{128}$") @path deviceName: string; @@ -1418,130 +1854,172 @@ names when a device does not belong to a device group and product. Device >; - @doc(""" -Create a Device. Use '.unassigned' or '.default' for the device group and -product names to claim a device to the catalog only. -""") + /** + * Create a Device. Use '.unassigned' or '.default' for the device group and + * product names to claim a device to the catalog only. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/products/{productName}/deviceGroups/{deviceGroupName}/devices/{deviceName}") @put - CreateOrUpdate is Azure.Core.Foundations.Operation< + createOrUpdate is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Name of product.") + /** + * Name of product. + */ @pattern("^[\\w][\\w\\s]{1,48}[\\w]$|^\\.default$|^\\.unassigned$") @path productName: string; - @doc("Name of device group.") + /** + * Name of device group. + */ @pattern("^[A-Za-z0-9]{1,2}$|^[A-Za-z0-9][A-Za-z0-9\\s]{1,48}[A-Za-z0-9]$|^\\.default$|^\\.unassigned$") @path deviceGroupName: string; - @doc("Device name") + /** + * Device name + */ @pattern("^[a-zA-Z0-9-]{128}$") @path deviceName: string; - @doc("Resource create parameters.") + /** + * Resource create parameters. + */ @body resource: Device; }, Device >; - @doc(""" -Update a Device. Use '.unassigned' or '.default' for the device group and -product names to move a device to the catalog level. -""") + /** + * Update a Device. Use '.unassigned' or '.default' for the device group and + * product names to move a device to the catalog level. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/products/{productName}/deviceGroups/{deviceGroupName}/devices/{deviceName}") @patch - Update is Azure.Core.Foundations.Operation< + update is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Name of product.") + /** + * Name of product. + */ @pattern("^[\\w][\\w\\s]{1,48}[\\w]$|^\\.default$|^\\.unassigned$") @path productName: string; - @doc("Name of device group.") + /** + * Name of device group. + */ @pattern("^[A-Za-z0-9]{1,2}$|^[A-Za-z0-9][A-Za-z0-9\\s]{1,48}[A-Za-z0-9]$|^\\.default$|^\\.unassigned$") @path deviceGroupName: string; - @doc("Device name") + /** + * Device name + */ @pattern("^[a-zA-Z0-9-]{128}$") @path deviceName: string; - @doc("The resource properties to be updated.") + /** + * The resource properties to be updated. + */ @body properties: DeviceUpdate; }, Device | void >; - @doc("Delete a Device") + /** + * Delete a Device + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/products/{productName}/deviceGroups/{deviceGroupName}/devices/{deviceName}") @delete - Delete is Azure.Core.Foundations.Operation< + delete is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Name of product.") + /** + * Name of product. + */ @pattern("^[\\w][\\w\\s]{1,48}[\\w]$|^\\.default$|^\\.unassigned$") @path productName: string; - @doc("Name of device group.") + /** + * Name of device group. + */ @pattern("^[A-Za-z0-9]{1,2}$|^[A-Za-z0-9][A-Za-z0-9\\s]{1,48}[A-Za-z0-9]$|^\\.default$|^\\.unassigned$") @path deviceGroupName: string; - @doc("Device name") + /** + * Device name + */ @pattern("^[a-zA-Z0-9-]{128}$") @path deviceName: string; @@ -1549,47 +2027,61 @@ product names to move a device to the catalog level. void >; - @doc(""" -Generates the capability image for the device. Use '.unassigned' or '.default' -for the device group and product names to generate the image for a device that -does not belong to a specific device group and product. -""") + /** + * Generates the capability image for the device. Use '.unassigned' or '.default' + * for the device group and product names to generate the image for a device that + * does not belong to a specific device group and product. + */ @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureSphere/catalogs/{catalogName}/products/{productName}/deviceGroups/{deviceGroupName}/devices/{deviceName}/generateCapabilityImage") @post - GenerateCapabilityImage is Azure.Core.Foundations.Operation< + generateCapabilityImage is Azure.Core.Foundations.Operation< { - @doc("The ID of the target subscription.") + /** + * The ID of the target subscription. + */ @minLength(1) @path subscriptionId: string; - @doc("The name of the resource group. The name is case insensitive.") + /** + * The name of the resource group. The name is case insensitive. + */ @maxLength(90) @minLength(1) @path resourceGroupName: string; - @doc("Name of catalog") + /** + * Name of catalog + */ @pattern("^[A-Za-z0-9_-]{1,50}$") @path catalogName: string; - @doc("Name of product.") + /** + * Name of product. + */ @pattern("^[\\w][\\w\\s]{1,48}[\\w]$|^\\.default$|^\\.unassigned$") @path productName: string; - @doc("Name of device group.") + /** + * Name of device group. + */ @pattern("^[A-Za-z0-9]{1,2}$|^[A-Za-z0-9][A-Za-z0-9\\s]{1,48}[A-Za-z0-9]$|^\\.default$|^\\.unassigned$") @path deviceGroupName: string; - @doc("Device name") + /** + * Device name + */ @pattern("^[a-zA-Z0-9-]{128}$") @path deviceName: string; - @doc("Generate capability image request body.") + /** + * Generate capability image request body. + */ @body generateDeviceCapabilityRequest: GenerateCapabilityImageRequest; }, diff --git a/tools/tsp-client/test/examples/specification/convert/tspconfig.yaml b/tools/tsp-client/test/examples/specification/convert/tspconfig.yaml index fb405fa4492..ca5603dc70c 100644 --- a/tools/tsp-client/test/examples/specification/convert/tspconfig.yaml +++ b/tools/tsp-client/test/examples/specification/convert/tspconfig.yaml @@ -1,5 +1,12 @@ emit: - "@azure-tools/typespec-autorest" + +options: + "@azure-tools/typespec-autorest": + azure-resource-provider-folder: "data-plane" + emitter-output-dir: "{project-root}/.." + examples-directory: "{project-root}/examples" + output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/openapi.json" # Uncomment this line and add "@azure-tools/typespec-python" to your package.json to generate Python code # "@azure-tools/typespec-python": # "basic-setup-py": true diff --git a/tools/tsp-client/test/run_commands.ts b/tools/tsp-client/test/run_commands.ts index 6ef688826e6..65380d2c692 100644 --- a/tools/tsp-client/test/run_commands.ts +++ b/tools/tsp-client/test/run_commands.ts @@ -51,12 +51,15 @@ async function main() { "https://github.com/Azure/azure-rest-api-specs/blob/db63bea839f5648462c94e685d5cc96f8e8b38ba/specification/contosowidgetmanager/Contoso.WidgetManager/tspconfig.yaml"; const emitterPackageJson = resolve("./test/utils/emitter-package.json"); + const emitterPackageLockJson = resolve("./test/utils/emitter-package-lock.json"); // Copy the emitter-package.json to the eng directory at the root of the repo const repoRoot = await getRepoRoot("."); await cp(emitterPackageJson, join(repoRoot, "eng/emitter-package.json")); console.log("emitter-package.json ---------------> copied successfully"); + await cp(emitterPackageLockJson, join(repoRoot, "eng/emitter-package-lock.json")); + console.log("emitter-package-lock.json ---------------> copied successfully"); // Run the init command await runCommand(baseDir, ["init", "-c", tspConfig, "-o", examplesDir]); @@ -75,6 +78,8 @@ async function main() { await unlink(join(repoRoot, "eng/emitter-package.json")); console.log("emitter-package.json ---------------> deleted successfully"); + await unlink(join(repoRoot, "eng/emitter-package-lock.json")); + console.log("emitter-package-lock.json ---------------> deleted successfully"); } main().catch((e) => { diff --git a/tools/tsp-client/test/utils/emitter-package-lock.json b/tools/tsp-client/test/utils/emitter-package-lock.json new file mode 100644 index 00000000000..4b3121a3b57 --- /dev/null +++ b/tools/tsp-client/test/utils/emitter-package-lock.json @@ -0,0 +1,1145 @@ +{ + "name": "utils", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "@azure-tools/typespec-azure-rulesets": "0.43.0", + "@azure-tools/typespec-ts": "0.30.0" + } + }, + "node_modules/@azure-tools/rlc-common": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/@azure-tools/rlc-common/-/rlc-common-0.30.0.tgz", + "integrity": "sha512-VkjGcUomfJ42mQZGDQpiymyPfBT3FXuUc3lx8trMzeeJ/NlnTunq5pjkcu1F8e2vqty8xIz6+cc4328q6sT7Zw==", + "dependencies": { + "handlebars": "^4.7.7", + "lodash": "^4.17.21", + "ts-morph": "^15.1.0" + } + }, + "node_modules/@azure-tools/typespec-azure-core": { + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-core/-/typespec-azure-core-0.43.0.tgz", + "integrity": "sha512-B1r0i3segJ7RuNXxcAMBy8H2t+jTkaf74dkyUWD0HIFPkhETN0uR59nuor+s+LoLU8yI4JypOFSNZt6e1rod8w==", + "peer": true, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@typespec/compiler": "~0.57.0", + "@typespec/http": "~0.57.0", + "@typespec/rest": "~0.57.0" + } + }, + "node_modules/@azure-tools/typespec-azure-resource-manager": { + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-resource-manager/-/typespec-azure-resource-manager-0.43.0.tgz", + "integrity": "sha512-0GQL+/o1u+PAB63FpYz3sy3ZgZvCtk5T4sDAnICnV23v2YWIONDMUfxxd0x40xJbY6PkcwwHDpBLNMqajf2H6A==", + "peer": true, + "dependencies": { + "change-case": "~5.4.4", + "pluralize": "^8.0.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@azure-tools/typespec-azure-core": "~0.43.0", + "@typespec/compiler": "~0.57.0", + "@typespec/http": "~0.57.0", + "@typespec/openapi": "~0.57.0", + "@typespec/rest": "~0.57.0", + "@typespec/versioning": "~0.57.0" + } + }, + "node_modules/@azure-tools/typespec-azure-rulesets": { + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-rulesets/-/typespec-azure-rulesets-0.43.0.tgz", + "integrity": "sha512-yh0dNQIM4hRDWATh/tkONP991uMxFDHY8BkC0eWtIpfTjQTuR2PlGhrLgMxHT2Q5cCusfkNWeFvKDYlxKeoFLA==", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@azure-tools/typespec-azure-core": "~0.43.0", + "@azure-tools/typespec-azure-resource-manager": "~0.43.0", + "@azure-tools/typespec-client-generator-core": "~0.43.0", + "@typespec/compiler": "~0.57.0" + } + }, + "node_modules/@azure-tools/typespec-client-generator-core": { + "version": "0.43.2", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.43.2.tgz", + "integrity": "sha512-UAVV30BtTQBiXmBoQ3SyvmiuBDYoqWFIn7G96hjojpwXpE6D5ba0y5LascMuF1b65eAhGnnf974DElJE9DGepQ==", + "peer": true, + "dependencies": { + "change-case": "~5.4.4", + "pluralize": "^8.0.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@azure-tools/typespec-azure-core": "~0.43.0", + "@typespec/compiler": "~0.57.0", + "@typespec/http": "~0.57.0", + "@typespec/rest": "~0.57.0", + "@typespec/versioning": "~0.57.0" + } + }, + "node_modules/@azure-tools/typespec-ts": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-ts/-/typespec-ts-0.30.0.tgz", + "integrity": "sha512-gO6AIbeML2tVRs9SS98i4tnpJRd/dVno0XKV0IRzG9kY3zErRMOUwmVfxC0aXhbu3I9Vu6TCh590nstVLpNFvA==", + "dependencies": { + "@azure-tools/rlc-common": "^0.30.0", + "fs-extra": "^11.1.0", + "lodash": "^4.17.21", + "prettier": "^3.1.0", + "ts-morph": "^15.1.0", + "tslib": "^2.3.1" + }, + "peerDependencies": { + "@azure-tools/typespec-azure-core": ">=0.43.0 <1.0.0", + "@azure-tools/typespec-client-generator-core": ">=0.43.0 <1.0.0", + "@typespec/compiler": ">=0.57.0 <1.0.0", + "@typespec/http": ">=0.57.0 <1.0.0", + "@typespec/rest": ">=0.57.0 <1.0.0", + "@typespec/versioning": ">=0.57.0 <1.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "peer": true, + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "peer": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "peer": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ts-morph/common": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.16.0.tgz", + "integrity": "sha512-SgJpzkTgZKLKqQniCjLaE3c2L2sdL7UShvmTmPBejAKd2OKV/yfMpQ2IWpAuA+VY5wy7PkSUaEObIqEK6afFuw==", + "dependencies": { + "fast-glob": "^3.2.11", + "minimatch": "^5.1.0", + "mkdirp": "^1.0.4", + "path-browserify": "^1.0.1" + } + }, + "node_modules/@typespec/compiler": { + "version": "0.57.0", + "resolved": "https://registry.npmjs.org/@typespec/compiler/-/compiler-0.57.0.tgz", + "integrity": "sha512-Z5L7J90Ol21IbzU+rBD2wzKy2vJ2Yg2FIzi+yB5rtb7/c4oBea/CgEByMVHBtT7uw45ZXJpHOiepuGSPVXw2EA==", + "peer": true, + "dependencies": { + "@babel/code-frame": "~7.24.2", + "ajv": "~8.13.0", + "change-case": "~5.4.4", + "globby": "~14.0.1", + "mustache": "~4.2.0", + "picocolors": "~1.0.1", + "prettier": "~3.2.5", + "prompts": "~2.4.2", + "semver": "^7.6.2", + "vscode-languageserver": "~9.0.1", + "vscode-languageserver-textdocument": "~1.0.11", + "yaml": "~2.4.2", + "yargs": "~17.7.2" + }, + "bin": { + "tsp": "cmd/tsp.js", + "tsp-server": "cmd/tsp-server.js" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@typespec/compiler/node_modules/prettier": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "peer": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/@typespec/http": { + "version": "0.57.0", + "resolved": "https://registry.npmjs.org/@typespec/http/-/http-0.57.0.tgz", + "integrity": "sha512-k3bWOTPNqlRB3/TmrXVBtObmxj2J20l2FnhGXvs+tjdtbXLxCQWmvQz6xlne9nkLAtWVB/pQRUn+oMJfhWta3w==", + "peer": true, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@typespec/compiler": "~0.57.0" + } + }, + "node_modules/@typespec/openapi": { + "version": "0.57.0", + "resolved": "https://registry.npmjs.org/@typespec/openapi/-/openapi-0.57.0.tgz", + "integrity": "sha512-35wK/BqjOXSlhWuGMwoYN3FSgIYFOKtw8ot4ErcgmxAGuKaS2GkUhZvtQJXUn2ByU0Fl4jqslPmTz8SEcz7rbw==", + "peer": true, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@typespec/compiler": "~0.57.0", + "@typespec/http": "~0.57.0" + } + }, + "node_modules/@typespec/rest": { + "version": "0.57.0", + "resolved": "https://registry.npmjs.org/@typespec/rest/-/rest-0.57.0.tgz", + "integrity": "sha512-mZj76Kf+cmH38pYA6LT8Zz7QjuR3fdQo5bc8pXhKMwLq9vRqNLz6Z9InbOeo8zY+xP0GfUwEU9kXczmCc8gyRA==", + "peer": true, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@typespec/compiler": "~0.57.0", + "@typespec/http": "~0.57.0" + } + }, + "node_modules/@typespec/versioning": { + "version": "0.57.0", + "resolved": "https://registry.npmjs.org/@typespec/versioning/-/versioning-0.57.0.tgz", + "integrity": "sha512-kk6zCNSwcqqYB9isNNagTy+Zv6wEIRA4NkcZ/X1riTj2zhJwKsIFNXQWm1yxpZn+BY4+1QtuaQHuBLo8HbgR/w==", + "peer": true, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@typespec/compiler": "~0.57.0" + } + }, + "node_modules/ajv": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", + "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "peer": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "peer": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/change-case": { + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.4.4.tgz", + "integrity": "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==", + "peer": true + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "peer": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/code-block-writer": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-11.0.3.tgz", + "integrity": "sha512-NiujjUFB4SwScJq2bwbYUtXbZhBSlY6vYzm++3Q6oC+U+injTqfPYFK8wS9COOmb2lueqp0ZRB4nK1VYeHgNyw==" + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "peer": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "peer": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "peer": true + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "peer": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "peer": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "peer": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", + "peer": true, + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "peer": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "peer": true + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "peer": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "peer": true, + "bin": { + "mustache": "bin/mustache" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "peer": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prettier": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "peer": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "peer": true + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "peer": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "peer": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "peer": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-morph": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-15.1.0.tgz", + "integrity": "sha512-RBsGE2sDzUXFTnv8Ba22QfeuKbgvAGJFuTN7HfmIRUkgT/NaVLfDM/8OFm2NlFkGlWEXdpW5OaFIp1jvqdDuOg==", + "dependencies": { + "@ts-morph/common": "~0.16.0", + "code-block-writer": "^11.0.0" + } + }, + "node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + }, + "node_modules/uglify-js": { + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.0.tgz", + "integrity": "sha512-wNKHUY2hYYkf6oSFfhwwiHo4WCHzHmzcXsqXYTN9ja3iApYIFbb2U6ics9hBcYLHcYGQoAlwnZlTrf3oF+BL/Q==", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "peer": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "peer": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vscode-jsonrpc": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", + "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/vscode-languageserver": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", + "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", + "peer": true, + "dependencies": { + "vscode-languageserver-protocol": "3.17.5" + }, + "bin": { + "installServerIntoExtension": "bin/installServerIntoExtension" + } + }, + "node_modules/vscode-languageserver-protocol": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", + "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", + "peer": true, + "dependencies": { + "vscode-jsonrpc": "8.2.0", + "vscode-languageserver-types": "3.17.5" + } + }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz", + "integrity": "sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==", + "peer": true + }, + "node_modules/vscode-languageserver-types": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", + "peer": true + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yaml": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", + "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", + "peer": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "peer": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "peer": true, + "engines": { + "node": ">=12" + } + } + } +}