@azure/web-pubsub 1.1.4-alpha.20241031.1 → 1.1.4-alpha.20241112.1

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/generated/models/mappers.ts","../src/generated/models/parameters.ts","../src/generated/operations/healthApi.ts","../src/generated/operations/webPubSub.ts","../src/generated/generatedClient.ts","../src/tracing.ts","../src/utils.ts","../src/groupClient.ts","../src/webPubSubCredentialPolicy.ts","../src/logger.ts","../src/parseConnectionString.ts","../src/reverseProxyPolicy.ts","../src/hubClient.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\n\nexport const AddToGroupsRequest: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"AddToGroupsRequest\",\n modelProperties: {\n groups: {\n serializedName: \"groups\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\",\n },\n },\n },\n },\n filter: {\n serializedName: \"filter\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const ErrorDetail: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ErrorDetail\",\n modelProperties: {\n code: {\n serializedName: \"code\",\n type: {\n name: \"String\",\n },\n },\n message: {\n serializedName: \"message\",\n type: {\n name: \"String\",\n },\n },\n target: {\n serializedName: \"target\",\n type: {\n name: \"String\",\n },\n },\n details: {\n serializedName: \"details\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ErrorDetail\",\n },\n },\n },\n },\n inner: {\n serializedName: \"inner\",\n type: {\n name: \"Composite\",\n className: \"InnerError\",\n },\n },\n },\n },\n};\n\nexport const InnerError: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"InnerError\",\n modelProperties: {\n code: {\n serializedName: \"code\",\n type: {\n name: \"String\",\n },\n },\n inner: {\n serializedName: \"inner\",\n type: {\n name: \"Composite\",\n className: \"InnerError\",\n },\n },\n },\n },\n};\n\nexport const ClientTokenResponse: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ClientTokenResponse\",\n modelProperties: {\n token: {\n serializedName: \"token\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const RemoveFromGroupsRequest: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RemoveFromGroupsRequest\",\n modelProperties: {\n groups: {\n serializedName: \"groups\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\",\n },\n },\n },\n },\n filter: {\n serializedName: \"filter\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const WebPubSubAddConnectionsToGroupsExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubAddConnectionsToGroupsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubCloseAllConnectionsExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubCloseAllConnectionsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubGenerateClientTokenExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubGenerateClientTokenExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubRemoveConnectionsFromGroupsExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubRemoveConnectionsFromGroupsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubSendToAllExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubSendToAllExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const WebPubSubCloseConnectionExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubCloseConnectionExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubConnectionExistsExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubConnectionExistsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubSendToConnectionExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubSendToConnectionExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubRemoveConnectionFromAllGroupsExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubRemoveConnectionFromAllGroupsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubGroupExistsExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubGroupExistsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubCloseGroupConnectionsExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubCloseGroupConnectionsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubSendToGroupExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubSendToGroupExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubRemoveConnectionFromGroupExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubRemoveConnectionFromGroupExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubAddConnectionToGroupExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubAddConnectionToGroupExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubRevokePermissionExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubRevokePermissionExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubCheckPermissionExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubCheckPermissionExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubGrantPermissionExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubGrantPermissionExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubUserExistsExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubUserExistsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const WebPubSubCloseUserConnectionsExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubCloseUserConnectionsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubSendToUserExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubSendToUserExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const WebPubSubRemoveUserFromAllGroupsExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubRemoveUserFromAllGroupsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubRemoveUserFromGroupExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubRemoveUserFromGroupExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubAddUserToGroupExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubAddUserToGroupExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport {\n OperationURLParameter,\n OperationQueryParameter,\n OperationParameter,\n} from \"@azure/core-client\";\nimport {\n AddToGroupsRequest as AddToGroupsRequestMapper,\n RemoveFromGroupsRequest as RemoveFromGroupsRequestMapper,\n} from \"../models/mappers\";\n\nexport const endpoint: OperationURLParameter = {\n parameterPath: \"endpoint\",\n mapper: {\n serializedName: \"endpoint\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n skipEncoding: true,\n};\n\nexport const apiVersion: OperationQueryParameter = {\n parameterPath: \"apiVersion\",\n mapper: {\n defaultValue: \"2024-01-01\",\n isConstant: true,\n serializedName: \"api-version\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const contentType: OperationParameter = {\n parameterPath: [\"options\", \"contentType\"],\n mapper: {\n defaultValue: \"application/json\",\n isConstant: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const groupsToAdd: OperationParameter = {\n parameterPath: \"groupsToAdd\",\n mapper: AddToGroupsRequestMapper,\n};\n\nexport const accept: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/json\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const hub: OperationURLParameter = {\n parameterPath: \"hub\",\n mapper: {\n constraints: {\n Pattern: new RegExp(\"^[A-Za-z][A-Za-z0-9_`,.[\\\\]]{0,127}$\"),\n },\n serializedName: \"hub\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const excluded: OperationQueryParameter = {\n parameterPath: [\"options\", \"excluded\"],\n mapper: {\n serializedName: \"excluded\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\",\n },\n },\n },\n },\n collectionFormat: \"Multi\",\n};\n\nexport const reason: OperationQueryParameter = {\n parameterPath: [\"options\", \"reason\"],\n mapper: {\n serializedName: \"reason\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const accept1: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/json, text/json\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const userId: OperationQueryParameter = {\n parameterPath: [\"options\", \"userId\"],\n mapper: {\n serializedName: \"userId\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const roles: OperationQueryParameter = {\n parameterPath: [\"options\", \"roles\"],\n mapper: {\n serializedName: \"role\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\",\n },\n },\n },\n },\n collectionFormat: \"Multi\",\n};\n\nexport const expirationTimeInMinutes: OperationQueryParameter = {\n parameterPath: [\"options\", \"expirationTimeInMinutes\"],\n mapper: {\n defaultValue: 60,\n constraints: {\n InclusiveMinimum: 1,\n },\n serializedName: \"minutesToExpire\",\n type: {\n name: \"Number\",\n },\n },\n};\n\nexport const groups: OperationQueryParameter = {\n parameterPath: [\"options\", \"groups\"],\n mapper: {\n serializedName: \"group\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\",\n },\n },\n },\n },\n collectionFormat: \"Multi\",\n};\n\nexport const clientType: OperationQueryParameter = {\n parameterPath: [\"options\", \"clientType\"],\n mapper: {\n defaultValue: \"Default\",\n serializedName: \"clientType\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const groupsToRemove: OperationParameter = {\n parameterPath: \"groupsToRemove\",\n mapper: RemoveFromGroupsRequestMapper,\n};\n\nexport const contentType1: OperationParameter = {\n parameterPath: \"contentType\",\n mapper: {\n serializedName: \"Content-Type\",\n required: true,\n type: {\n name: \"Enum\",\n allowedValues: [\"application/json\", \"application/octet-stream\"],\n },\n },\n};\n\nexport const message: OperationParameter = {\n parameterPath: \"message\",\n mapper: {\n serializedName: \"message\",\n required: true,\n type: {\n name: \"Stream\",\n },\n },\n};\n\nexport const accept2: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/json\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const contentType2: OperationParameter = {\n parameterPath: \"contentType\",\n mapper: {\n defaultValue: \"text/plain\",\n isConstant: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const message1: OperationParameter = {\n parameterPath: \"message\",\n mapper: {\n serializedName: \"message\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const accept3: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/json\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const excludedConnections: OperationQueryParameter = {\n parameterPath: [\"options\", \"excludedConnections\"],\n mapper: {\n serializedName: \"excluded\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\",\n },\n },\n },\n },\n collectionFormat: \"Multi\",\n};\n\nexport const filter: OperationQueryParameter = {\n parameterPath: [\"options\", \"filter\"],\n mapper: {\n serializedName: \"filter\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const messageTtlSeconds: OperationQueryParameter = {\n parameterPath: [\"options\", \"messageTtlSeconds\"],\n mapper: {\n constraints: {\n InclusiveMaximum: 300,\n InclusiveMinimum: 0,\n },\n serializedName: \"messageTtlSeconds\",\n type: {\n name: \"Number\",\n },\n },\n};\n\nexport const connectionId: OperationURLParameter = {\n parameterPath: \"connectionId\",\n mapper: {\n constraints: {\n MinLength: 1,\n },\n serializedName: \"connectionId\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const group: OperationURLParameter = {\n parameterPath: \"group\",\n mapper: {\n constraints: {\n Pattern: new RegExp(\"^(?!\\\\s+$).+$\"),\n MaxLength: 1024,\n MinLength: 1,\n },\n serializedName: \"group\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const permission: OperationURLParameter = {\n parameterPath: \"permission\",\n mapper: {\n serializedName: \"permission\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const targetName: OperationQueryParameter = {\n parameterPath: [\"options\", \"targetName\"],\n mapper: {\n serializedName: \"targetName\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const userId1: OperationURLParameter = {\n parameterPath: \"userId\",\n mapper: {\n constraints: {\n MinLength: 1,\n },\n serializedName: \"userId\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { HealthApi } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { GeneratedClient } from \"../generatedClient\";\nimport { HealthApiGetServiceStatusOptionalParams } from \"../models\";\n\n/** Class containing HealthApi operations. */\nexport class HealthApiImpl implements HealthApi {\n private readonly client: GeneratedClient;\n\n /**\n * Initialize a new instance of the class HealthApi class.\n * @param client Reference to the service client\n */\n constructor(client: GeneratedClient) {\n this.client = client;\n }\n\n /**\n * Get service health status.\n * @param options The options parameters.\n */\n getServiceStatus(\n options?: HealthApiGetServiceStatusOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { options },\n getServiceStatusOperationSpec,\n );\n }\n}\n// Operation Specifications\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst getServiceStatusOperationSpec: coreClient.OperationSpec = {\n path: \"/api/health\",\n httpMethod: \"HEAD\",\n responses: { 200: {}, default: {} },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint],\n serializer,\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { WebPubSub } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as coreRestPipeline from \"@azure/core-rest-pipeline\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { GeneratedClient } from \"../generatedClient\";\nimport {\n AddToGroupsRequest,\n WebPubSubAddConnectionsToGroupsOptionalParams,\n WebPubSubCloseAllConnectionsOptionalParams,\n WebPubSubGenerateClientTokenOptionalParams,\n WebPubSubGenerateClientTokenResponse,\n RemoveFromGroupsRequest,\n WebPubSubRemoveConnectionsFromGroupsOptionalParams,\n ContentType,\n WebPubSubSendToAll$binaryOptionalParams,\n WebPubSubSendToAll$textOptionalParams,\n WebPubSubCloseConnectionOptionalParams,\n WebPubSubConnectionExistsOptionalParams,\n WebPubSubSendToConnection$binaryOptionalParams,\n WebPubSubSendToConnection$textOptionalParams,\n WebPubSubRemoveConnectionFromAllGroupsOptionalParams,\n WebPubSubGroupExistsOptionalParams,\n WebPubSubCloseGroupConnectionsOptionalParams,\n WebPubSubSendToGroup$binaryOptionalParams,\n WebPubSubSendToGroup$textOptionalParams,\n WebPubSubRemoveConnectionFromGroupOptionalParams,\n WebPubSubAddConnectionToGroupOptionalParams,\n WebPubSubPermission,\n WebPubSubRevokePermissionOptionalParams,\n WebPubSubCheckPermissionOptionalParams,\n WebPubSubGrantPermissionOptionalParams,\n WebPubSubUserExistsOptionalParams,\n WebPubSubCloseUserConnectionsOptionalParams,\n WebPubSubSendToUser$binaryOptionalParams,\n WebPubSubSendToUser$textOptionalParams,\n WebPubSubRemoveUserFromAllGroupsOptionalParams,\n WebPubSubRemoveUserFromGroupOptionalParams,\n WebPubSubAddUserToGroupOptionalParams,\n} from \"../models\";\n\n/** Class containing WebPubSub operations. */\nexport class WebPubSubImpl implements WebPubSub {\n private readonly client: GeneratedClient;\n\n /**\n * Initialize a new instance of the class WebPubSub class.\n * @param client Reference to the service client\n */\n constructor(client: GeneratedClient) {\n this.client = client;\n }\n\n /**\n * Add filtered connections to multiple groups.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param groupsToAdd Target groups and connection filter.\n * @param options The options parameters.\n */\n addConnectionsToGroups(\n hub: string,\n groupsToAdd: AddToGroupsRequest,\n options?: WebPubSubAddConnectionsToGroupsOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, groupsToAdd, options },\n addConnectionsToGroupsOperationSpec,\n );\n }\n\n /**\n * Close the connections in the hub.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param options The options parameters.\n */\n closeAllConnections(\n hub: string,\n options?: WebPubSubCloseAllConnectionsOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, options },\n closeAllConnectionsOperationSpec,\n );\n }\n\n /**\n * Generate token for the client to connect Azure Web PubSub service.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param options The options parameters.\n */\n generateClientToken(\n hub: string,\n options?: WebPubSubGenerateClientTokenOptionalParams,\n ): Promise<WebPubSubGenerateClientTokenResponse> {\n return this.client.sendOperationRequest(\n { hub, options },\n generateClientTokenOperationSpec,\n );\n }\n\n /**\n * Remove filtered connections from multiple groups.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param groupsToRemove Target groups and connection filter.\n * @param options The options parameters.\n */\n removeConnectionsFromGroups(\n hub: string,\n groupsToRemove: RemoveFromGroupsRequest,\n options?: WebPubSubRemoveConnectionsFromGroupsOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, groupsToRemove, options },\n removeConnectionsFromGroupsOperationSpec,\n );\n }\n\n /**\n * Broadcast content inside request body to all the connected client connections.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToAll(\n hub: string,\n contentType: ContentType,\n message: coreRestPipeline.RequestBodyType,\n options?: WebPubSubSendToAll$binaryOptionalParams,\n ): Promise<void>;\n /**\n * Broadcast content inside request body to all the connected client connections.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToAll(\n hub: string,\n contentType: \"text/plain\",\n message: string,\n options?: WebPubSubSendToAll$textOptionalParams,\n ): Promise<void>;\n /**\n * Broadcast content inside request body to all the connected client connections.\n * @param args Includes all the parameters for this operation.\n */\n sendToAll(\n ...args:\n | [\n string,\n ContentType,\n coreRestPipeline.RequestBodyType,\n WebPubSubSendToAll$binaryOptionalParams?,\n ]\n | [string, \"text/plain\", string, WebPubSubSendToAll$textOptionalParams?]\n ): Promise<void> {\n let operationSpec: coreClient.OperationSpec;\n let operationArguments: coreClient.OperationArguments;\n let options;\n if (\n args[1] === \"application/json\" ||\n args[1] === \"application/octet-stream\"\n ) {\n operationSpec = sendToAll$binaryOperationSpec;\n operationArguments = {\n hub: args[0],\n contentType: args[1],\n message: args[2],\n options: args[3],\n };\n options = args[3];\n } else if (args[1] === \"text/plain\") {\n operationSpec = sendToAll$textOperationSpec;\n operationArguments = {\n hub: args[0],\n contentType: args[1],\n message: args[2],\n options: args[3],\n };\n options = args[3];\n } else {\n throw new TypeError(\n `\"contentType\" must be a valid value but instead was \"${args[1]}\".`,\n );\n }\n operationArguments.options = options || {};\n return this.client.sendOperationRequest(operationArguments, operationSpec);\n }\n\n /**\n * Close the client connection.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param connectionId Target connection Id.\n * @param options The options parameters.\n */\n closeConnection(\n hub: string,\n connectionId: string,\n options?: WebPubSubCloseConnectionOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, connectionId, options },\n closeConnectionOperationSpec,\n );\n }\n\n /**\n * Check if the connection with the given connectionId exists.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param connectionId The connection Id.\n * @param options The options parameters.\n */\n connectionExists(\n hub: string,\n connectionId: string,\n options?: WebPubSubConnectionExistsOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, connectionId, options },\n connectionExistsOperationSpec,\n );\n }\n\n /**\n * Send content inside request body to the specific connection.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param connectionId The connection Id.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToConnection(\n hub: string,\n connectionId: string,\n contentType: ContentType,\n message: coreRestPipeline.RequestBodyType,\n options?: WebPubSubSendToConnection$binaryOptionalParams,\n ): Promise<void>;\n /**\n * Send content inside request body to the specific connection.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param connectionId The connection Id.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToConnection(\n hub: string,\n connectionId: string,\n contentType: \"text/plain\",\n message: string,\n options?: WebPubSubSendToConnection$textOptionalParams,\n ): Promise<void>;\n /**\n * Send content inside request body to the specific connection.\n * @param args Includes all the parameters for this operation.\n */\n sendToConnection(\n ...args:\n | [\n string,\n string,\n ContentType,\n coreRestPipeline.RequestBodyType,\n WebPubSubSendToConnection$binaryOptionalParams?,\n ]\n | [\n string,\n string,\n \"text/plain\",\n string,\n WebPubSubSendToConnection$textOptionalParams?,\n ]\n ): Promise<void> {\n let operationSpec: coreClient.OperationSpec;\n let operationArguments: coreClient.OperationArguments;\n let options;\n if (\n args[2] === \"application/json\" ||\n args[2] === \"application/octet-stream\"\n ) {\n operationSpec = sendToConnection$binaryOperationSpec;\n operationArguments = {\n hub: args[0],\n connectionId: args[1],\n contentType: args[2],\n message: args[3],\n options: args[4],\n };\n options = args[4];\n } else if (args[2] === \"text/plain\") {\n operationSpec = sendToConnection$textOperationSpec;\n operationArguments = {\n hub: args[0],\n connectionId: args[1],\n contentType: args[2],\n message: args[3],\n options: args[4],\n };\n options = args[4];\n } else {\n throw new TypeError(\n `\"contentType\" must be a valid value but instead was \"${args[2]}\".`,\n );\n }\n operationArguments.options = options || {};\n return this.client.sendOperationRequest(operationArguments, operationSpec);\n }\n\n /**\n * Remove a connection from all groups.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param connectionId Target connection Id.\n * @param options The options parameters.\n */\n removeConnectionFromAllGroups(\n hub: string,\n connectionId: string,\n options?: WebPubSubRemoveConnectionFromAllGroupsOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, connectionId, options },\n removeConnectionFromAllGroupsOperationSpec,\n );\n }\n\n /**\n * Check if there are any client connections inside the given group\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param options The options parameters.\n */\n groupExists(\n hub: string,\n group: string,\n options?: WebPubSubGroupExistsOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, group, options },\n groupExistsOperationSpec,\n );\n }\n\n /**\n * Close connections in the specific group.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param options The options parameters.\n */\n closeGroupConnections(\n hub: string,\n group: string,\n options?: WebPubSubCloseGroupConnectionsOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, group, options },\n closeGroupConnectionsOperationSpec,\n );\n }\n\n /**\n * Send content inside request body to a group of connections.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToGroup(\n hub: string,\n group: string,\n contentType: ContentType,\n message: coreRestPipeline.RequestBodyType,\n options?: WebPubSubSendToGroup$binaryOptionalParams,\n ): Promise<void>;\n /**\n * Send content inside request body to a group of connections.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToGroup(\n hub: string,\n group: string,\n contentType: \"text/plain\",\n message: string,\n options?: WebPubSubSendToGroup$textOptionalParams,\n ): Promise<void>;\n /**\n * Send content inside request body to a group of connections.\n * @param args Includes all the parameters for this operation.\n */\n sendToGroup(\n ...args:\n | [\n string,\n string,\n ContentType,\n coreRestPipeline.RequestBodyType,\n WebPubSubSendToGroup$binaryOptionalParams?,\n ]\n | [\n string,\n string,\n \"text/plain\",\n string,\n WebPubSubSendToGroup$textOptionalParams?,\n ]\n ): Promise<void> {\n let operationSpec: coreClient.OperationSpec;\n let operationArguments: coreClient.OperationArguments;\n let options;\n if (\n args[2] === \"application/json\" ||\n args[2] === \"application/octet-stream\"\n ) {\n operationSpec = sendToGroup$binaryOperationSpec;\n operationArguments = {\n hub: args[0],\n group: args[1],\n contentType: args[2],\n message: args[3],\n options: args[4],\n };\n options = args[4];\n } else if (args[2] === \"text/plain\") {\n operationSpec = sendToGroup$textOperationSpec;\n operationArguments = {\n hub: args[0],\n group: args[1],\n contentType: args[2],\n message: args[3],\n options: args[4],\n };\n options = args[4];\n } else {\n throw new TypeError(\n `\"contentType\" must be a valid value but instead was \"${args[2]}\".`,\n );\n }\n operationArguments.options = options || {};\n return this.client.sendOperationRequest(operationArguments, operationSpec);\n }\n\n /**\n * Remove a connection from the target group.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param connectionId Target connection Id.\n * @param options The options parameters.\n */\n removeConnectionFromGroup(\n hub: string,\n group: string,\n connectionId: string,\n options?: WebPubSubRemoveConnectionFromGroupOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, group, connectionId, options },\n removeConnectionFromGroupOperationSpec,\n );\n }\n\n /**\n * Add a connection to the target group.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param connectionId Target connection Id\n * @param options The options parameters.\n */\n addConnectionToGroup(\n hub: string,\n group: string,\n connectionId: string,\n options?: WebPubSubAddConnectionToGroupOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, group, connectionId, options },\n addConnectionToGroupOperationSpec,\n );\n }\n\n /**\n * Revoke permission for the connection.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param permission The permission: current supported actions are joinLeaveGroup and sendToGroup.\n * @param connectionId Target connection Id.\n * @param options The options parameters.\n */\n revokePermission(\n hub: string,\n permission: WebPubSubPermission,\n connectionId: string,\n options?: WebPubSubRevokePermissionOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, permission, connectionId, options },\n revokePermissionOperationSpec,\n );\n }\n\n /**\n * Check if a connection has permission to the specified action.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param permission The permission: current supported actions are joinLeaveGroup and sendToGroup.\n * @param connectionId Target connection Id.\n * @param options The options parameters.\n */\n checkPermission(\n hub: string,\n permission: WebPubSubPermission,\n connectionId: string,\n options?: WebPubSubCheckPermissionOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, permission, connectionId, options },\n checkPermissionOperationSpec,\n );\n }\n\n /**\n * Grant permission to the connection.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param permission The permission: current supported actions are joinLeaveGroup and sendToGroup.\n * @param connectionId Target connection Id.\n * @param options The options parameters.\n */\n grantPermission(\n hub: string,\n permission: WebPubSubPermission,\n connectionId: string,\n options?: WebPubSubGrantPermissionOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, permission, connectionId, options },\n grantPermissionOperationSpec,\n );\n }\n\n /**\n * Check if there are any client connections connected for the given user.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param userId Target user Id.\n * @param options The options parameters.\n */\n userExists(\n hub: string,\n userId: string,\n options?: WebPubSubUserExistsOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, userId, options },\n userExistsOperationSpec,\n );\n }\n\n /**\n * Close connections for the specific user.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param userId The user Id.\n * @param options The options parameters.\n */\n closeUserConnections(\n hub: string,\n userId: string,\n options?: WebPubSubCloseUserConnectionsOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, userId, options },\n closeUserConnectionsOperationSpec,\n );\n }\n\n /**\n * Send content inside request body to the specific user.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param userId The user Id.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToUser(\n hub: string,\n userId: string,\n contentType: ContentType,\n message: coreRestPipeline.RequestBodyType,\n options?: WebPubSubSendToUser$binaryOptionalParams,\n ): Promise<void>;\n /**\n * Send content inside request body to the specific user.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param userId The user Id.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToUser(\n hub: string,\n userId: string,\n contentType: \"text/plain\",\n message: string,\n options?: WebPubSubSendToUser$textOptionalParams,\n ): Promise<void>;\n /**\n * Send content inside request body to the specific user.\n * @param args Includes all the parameters for this operation.\n */\n sendToUser(\n ...args:\n | [\n string,\n string,\n ContentType,\n coreRestPipeline.RequestBodyType,\n WebPubSubSendToUser$binaryOptionalParams?,\n ]\n | [\n string,\n string,\n \"text/plain\",\n string,\n WebPubSubSendToUser$textOptionalParams?,\n ]\n ): Promise<void> {\n let operationSpec: coreClient.OperationSpec;\n let operationArguments: coreClient.OperationArguments;\n let options;\n if (\n args[2] === \"application/json\" ||\n args[2] === \"application/octet-stream\"\n ) {\n operationSpec = sendToUser$binaryOperationSpec;\n operationArguments = {\n hub: args[0],\n userId: args[1],\n contentType: args[2],\n message: args[3],\n options: args[4],\n };\n options = args[4];\n } else if (args[2] === \"text/plain\") {\n operationSpec = sendToUser$textOperationSpec;\n operationArguments = {\n hub: args[0],\n userId: args[1],\n contentType: args[2],\n message: args[3],\n options: args[4],\n };\n options = args[4];\n } else {\n throw new TypeError(\n `\"contentType\" must be a valid value but instead was \"${args[2]}\".`,\n );\n }\n operationArguments.options = options || {};\n return this.client.sendOperationRequest(operationArguments, operationSpec);\n }\n\n /**\n * Remove a user from all groups.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param userId Target user Id.\n * @param options The options parameters.\n */\n removeUserFromAllGroups(\n hub: string,\n userId: string,\n options?: WebPubSubRemoveUserFromAllGroupsOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, userId, options },\n removeUserFromAllGroupsOperationSpec,\n );\n }\n\n /**\n * Remove a user from the target group.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param userId Target user Id.\n * @param options The options parameters.\n */\n removeUserFromGroup(\n hub: string,\n group: string,\n userId: string,\n options?: WebPubSubRemoveUserFromGroupOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, group, userId, options },\n removeUserFromGroupOperationSpec,\n );\n }\n\n /**\n * Add a user to the target group.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param userId Target user Id.\n * @param options The options parameters.\n */\n addUserToGroup(\n hub: string,\n group: string,\n userId: string,\n options?: WebPubSubAddUserToGroupOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, group, userId, options },\n addUserToGroupOperationSpec,\n );\n }\n}\n// Operation Specifications\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst addConnectionsToGroupsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/:addToGroups\",\n httpMethod: \"POST\",\n responses: {\n 200: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubAddConnectionsToGroupsExceptionHeaders,\n },\n },\n requestBody: Parameters.groupsToAdd,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub],\n headerParameters: [Parameters.contentType, Parameters.accept],\n mediaType: \"json\",\n serializer,\n};\nconst closeAllConnectionsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/:closeConnections\",\n httpMethod: \"POST\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubCloseAllConnectionsExceptionHeaders,\n },\n },\n queryParameters: [\n Parameters.apiVersion,\n Parameters.excluded,\n Parameters.reason,\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst generateClientTokenOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/:generateToken\",\n httpMethod: \"POST\",\n responses: {\n 200: {\n bodyMapper: Mappers.ClientTokenResponse,\n },\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubGenerateClientTokenExceptionHeaders,\n },\n },\n queryParameters: [\n Parameters.apiVersion,\n Parameters.userId,\n Parameters.roles,\n Parameters.expirationTimeInMinutes,\n Parameters.groups,\n Parameters.clientType,\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub],\n headerParameters: [Parameters.accept1],\n serializer,\n};\nconst removeConnectionsFromGroupsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/:removeFromGroups\",\n httpMethod: \"POST\",\n responses: {\n 200: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper:\n Mappers.WebPubSubRemoveConnectionsFromGroupsExceptionHeaders,\n },\n },\n requestBody: Parameters.groupsToRemove,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub],\n headerParameters: [Parameters.contentType, Parameters.accept],\n mediaType: \"json\",\n serializer,\n};\nconst sendToAll$binaryOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToAllExceptionHeaders,\n },\n },\n requestBody: Parameters.message,\n queryParameters: [\n Parameters.apiVersion,\n Parameters.excludedConnections,\n Parameters.filter,\n Parameters.messageTtlSeconds,\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub],\n headerParameters: [Parameters.contentType1, Parameters.accept2],\n mediaType: \"binary\",\n serializer,\n};\nconst sendToAll$textOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToAllExceptionHeaders,\n },\n },\n requestBody: Parameters.message1,\n queryParameters: [\n Parameters.apiVersion,\n Parameters.excludedConnections,\n Parameters.filter,\n Parameters.messageTtlSeconds,\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub],\n headerParameters: [Parameters.contentType2, Parameters.accept3],\n mediaType: \"text\",\n serializer,\n};\nconst closeConnectionOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/connections/{connectionId}\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubCloseConnectionExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion, Parameters.reason],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.connectionId],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst connectionExistsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/connections/{connectionId}\",\n httpMethod: \"HEAD\",\n responses: {\n 200: {},\n 404: {},\n default: {\n headersMapper: Mappers.WebPubSubConnectionExistsExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.connectionId],\n serializer,\n};\nconst sendToConnection$binaryOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/connections/{connectionId}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToConnectionExceptionHeaders,\n },\n },\n requestBody: Parameters.message,\n queryParameters: [Parameters.apiVersion, Parameters.messageTtlSeconds],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.connectionId],\n headerParameters: [Parameters.contentType1, Parameters.accept2],\n mediaType: \"binary\",\n serializer,\n};\nconst sendToConnection$textOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/connections/{connectionId}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToConnectionExceptionHeaders,\n },\n },\n requestBody: Parameters.message1,\n queryParameters: [Parameters.apiVersion, Parameters.messageTtlSeconds],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.connectionId],\n headerParameters: [Parameters.contentType2, Parameters.accept3],\n mediaType: \"text\",\n serializer,\n};\nconst removeConnectionFromAllGroupsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/connections/{connectionId}/groups\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper:\n Mappers.WebPubSubRemoveConnectionFromAllGroupsExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.connectionId],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst groupExistsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/groups/{group}\",\n httpMethod: \"HEAD\",\n responses: {\n 200: {},\n 404: {},\n default: {\n headersMapper: Mappers.WebPubSubGroupExistsExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.group],\n serializer,\n};\nconst closeGroupConnectionsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/groups/{group}/:closeConnections\",\n httpMethod: \"POST\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubCloseGroupConnectionsExceptionHeaders,\n },\n },\n queryParameters: [\n Parameters.apiVersion,\n Parameters.excluded,\n Parameters.reason,\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.group],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst sendToGroup$binaryOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/groups/{group}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToGroupExceptionHeaders,\n },\n },\n requestBody: Parameters.message,\n queryParameters: [\n Parameters.apiVersion,\n Parameters.excludedConnections,\n Parameters.filter,\n Parameters.messageTtlSeconds,\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.group],\n headerParameters: [Parameters.contentType1, Parameters.accept2],\n mediaType: \"binary\",\n serializer,\n};\nconst sendToGroup$textOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/groups/{group}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToGroupExceptionHeaders,\n },\n },\n requestBody: Parameters.message1,\n queryParameters: [\n Parameters.apiVersion,\n Parameters.excludedConnections,\n Parameters.filter,\n Parameters.messageTtlSeconds,\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.group],\n headerParameters: [Parameters.contentType2, Parameters.accept3],\n mediaType: \"text\",\n serializer,\n};\nconst removeConnectionFromGroupOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/groups/{group}/connections/{connectionId}\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubRemoveConnectionFromGroupExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.connectionId,\n Parameters.group,\n ],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst addConnectionToGroupOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/groups/{group}/connections/{connectionId}\",\n httpMethod: \"PUT\",\n responses: {\n 200: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubAddConnectionToGroupExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.connectionId,\n Parameters.group,\n ],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst revokePermissionOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/permissions/{permission}/connections/{connectionId}\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubRevokePermissionExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion, Parameters.targetName],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.connectionId,\n Parameters.permission,\n ],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst checkPermissionOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/permissions/{permission}/connections/{connectionId}\",\n httpMethod: \"HEAD\",\n responses: {\n 200: {},\n 404: {},\n default: {\n headersMapper: Mappers.WebPubSubCheckPermissionExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion, Parameters.targetName],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.connectionId,\n Parameters.permission,\n ],\n serializer,\n};\nconst grantPermissionOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/permissions/{permission}/connections/{connectionId}\",\n httpMethod: \"PUT\",\n responses: {\n 200: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubGrantPermissionExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion, Parameters.targetName],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.connectionId,\n Parameters.permission,\n ],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst userExistsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}\",\n httpMethod: \"HEAD\",\n responses: {\n 200: {},\n 404: {},\n default: {\n headersMapper: Mappers.WebPubSubUserExistsExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.userId1],\n serializer,\n};\nconst closeUserConnectionsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}/:closeConnections\",\n httpMethod: \"POST\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubCloseUserConnectionsExceptionHeaders,\n },\n },\n queryParameters: [\n Parameters.apiVersion,\n Parameters.excluded,\n Parameters.reason,\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.userId1],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst sendToUser$binaryOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToUserExceptionHeaders,\n },\n },\n requestBody: Parameters.message,\n queryParameters: [\n Parameters.apiVersion,\n Parameters.filter,\n Parameters.messageTtlSeconds,\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.userId1],\n headerParameters: [Parameters.contentType1, Parameters.accept2],\n mediaType: \"binary\",\n serializer,\n};\nconst sendToUser$textOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToUserExceptionHeaders,\n },\n },\n requestBody: Parameters.message1,\n queryParameters: [\n Parameters.apiVersion,\n Parameters.filter,\n Parameters.messageTtlSeconds,\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.userId1],\n headerParameters: [Parameters.contentType2, Parameters.accept3],\n mediaType: \"text\",\n serializer,\n};\nconst removeUserFromAllGroupsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}/groups\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubRemoveUserFromAllGroupsExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.userId1],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst removeUserFromGroupOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}/groups/{group}\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubRemoveUserFromGroupExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.group,\n Parameters.userId1,\n ],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst addUserToGroupOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}/groups/{group}\",\n httpMethod: \"PUT\",\n responses: {\n 200: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubAddUserToGroupExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.group,\n Parameters.userId1,\n ],\n headerParameters: [Parameters.accept],\n serializer,\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\nimport {\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n} from \"@azure/core-rest-pipeline\";\nimport { HealthApiImpl, WebPubSubImpl } from \"./operations\";\nimport { HealthApi, WebPubSub } from \"./operationsInterfaces\";\nimport { GeneratedClientOptionalParams } from \"./models\";\n\n/** @internal */\nexport class GeneratedClient extends coreClient.ServiceClient {\n endpoint: string;\n apiVersion: string;\n\n /**\n * Initializes a new instance of the GeneratedClient class.\n * @param endpoint HTTP or HTTPS endpoint for the Web PubSub service instance.\n * @param options The parameter options\n */\n constructor(endpoint: string, options?: GeneratedClientOptionalParams) {\n if (endpoint === undefined) {\n throw new Error(\"'endpoint' cannot be null\");\n }\n\n // Initializing default values for options\n if (!options) {\n options = {};\n }\n const defaults: GeneratedClientOptionalParams = {\n requestContentType: \"application/json; charset=utf-8\",\n };\n\n const packageDetails = `azsdk-js-web-pubsub/1.1.3`;\n const userAgentPrefix =\n options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`\n : `${packageDetails}`;\n\n const optionsWithDefaults = {\n ...defaults,\n ...options,\n userAgentOptions: {\n userAgentPrefix,\n },\n endpoint: options.endpoint ?? options.baseUri ?? \"{endpoint}\",\n };\n super(optionsWithDefaults);\n // Parameter assignments\n this.endpoint = endpoint;\n\n // Assigning values to Constant parameters\n this.apiVersion = options.apiVersion || \"2024-01-01\";\n this.healthApi = new HealthApiImpl(this);\n this.webPubSub = new WebPubSubImpl(this);\n this.addCustomApiVersionPolicy(options.apiVersion);\n }\n\n /** A function that adds a policy that sets the api-version (or equivalent) to reflect the library version. */\n private addCustomApiVersionPolicy(apiVersion?: string) {\n if (!apiVersion) {\n return;\n }\n const apiVersionPolicy = {\n name: \"CustomApiVersionPolicy\",\n async sendRequest(\n request: PipelineRequest,\n next: SendRequest,\n ): Promise<PipelineResponse> {\n const param = request.url.split(\"?\");\n if (param.length > 1) {\n const newParams = param[1].split(\"&\").map((item) => {\n if (item.indexOf(\"api-version\") > -1) {\n return \"api-version=\" + apiVersion;\n } else {\n return item;\n }\n });\n request.url = param[0] + \"?\" + newParams.join(\"&\");\n }\n return next(request);\n },\n };\n this.pipeline.addPolicy(apiVersionPolicy);\n }\n\n healthApi: HealthApi;\n webPubSub: WebPubSub;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createTracingClient } from \"@azure/core-tracing\";\n\n/** @internal */\nexport const tracingClient = createTracingClient({\n namespace: \"Microsoft.WebPubSub\",\n packageName: \"@azure/web-pubsub\",\n});\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { RequestBodyType } from \"@azure/core-rest-pipeline\";\n\nfunction isRequestBody(obj: unknown): obj is RequestBodyType {\n return (\n typeof obj === \"function\" ||\n (typeof obj === \"object\" &&\n obj != null &&\n (obj.constructor.name === \"ArrayBuffer\" ||\n obj.constructor.name === \"Blob\" ||\n ArrayBuffer.isView(obj)))\n );\n}\n\nexport interface TextPlainPayload {\n contentType: \"text/plain\";\n payload: string;\n}\n\nexport interface JsonPayload {\n contentType: \"application/json\";\n payload: string;\n}\n\nexport interface BinaryPayload {\n contentType: \"application/octet-stream\";\n payload: RequestBodyType;\n}\n\nexport type Payload = TextPlainPayload | JsonPayload | BinaryPayload;\n\nexport function getPayloadForMessage(message: unknown, options: Record<string, any>): Payload {\n if (options?.contentType === \"text/plain\") {\n if (typeof message !== \"string\") {\n throw new TypeError(\"Message must be a string.\");\n }\n return { contentType: \"text/plain\", payload: message };\n } else if (isRequestBody(message)) {\n return { contentType: \"application/octet-stream\", payload: message };\n } else {\n return { contentType: \"application/json\", payload: JSON.stringify(message) };\n }\n}\n\nfunction formatNullAndUndefined(input: unknown): string | unknown {\n if (input === null || input === undefined) {\n return \"null\";\n }\n\n return input;\n}\n\nfunction escapeQuotesIfString(input: unknown, previous: string): string | unknown {\n let result = input;\n\n if (typeof input === \"string\") {\n result = input.replace(/'/g, \"''\");\n // check if we need to escape this literal\n if (!previous.trim().endsWith(\"'\")) {\n result = `'${result}'`;\n }\n }\n\n return result;\n}\n\n/**\n * Escapes an odata filter expression to avoid errors with quoting string literals.\n * Example usage:\n * ```ts\n * const userId = \"vic's\";\n * const anonymous = null;\n * const length = 3\n * const filter = odata`userId eq ${anonymous} or userId eq ${userId} or length(userId) > ${length}`;\n * ```\n * @param strings - Array of strings for the expression\n * @param values - Array of values for the expression\n */\nexport function odata(strings: TemplateStringsArray, ...values: unknown[]): string {\n const results = [];\n for (let i = 0; i < strings.length; i++) {\n results.push(strings[i]);\n if (i < values.length) {\n if (values[i] === null || values[i] === undefined) {\n results.push(formatNullAndUndefined(values[i]));\n } else {\n results.push(escapeQuotesIfString(values[i], strings[i]));\n }\n }\n }\n return results.join(\"\");\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n CommonClientOptions,\n FullOperationResponse,\n OperationOptions,\n} from \"@azure/core-client\";\nimport type { RequestBodyType } from \"@azure/core-rest-pipeline\";\nimport { RestError } from \"@azure/core-rest-pipeline\";\nimport type { GeneratedClient } from \"./generated/generatedClient\";\nimport { tracingClient } from \"./tracing\";\nimport { getPayloadForMessage } from \"./utils\";\nimport type { JSONTypes } from \"./hubClient\";\n\n/**\n * Options for constructing a GroupAdmin client.\n */\nexport interface GroupAdminClientOptions extends CommonClientOptions {}\n\n/**\n * Options for adding a connection to a group.\n */\nexport interface GroupAddConnectionOptions extends OperationOptions {}\n\n/**\n * Options for adding a user to a group.\n */\nexport interface GroupAddUserOptions extends OperationOptions {}\n\n/**\n * Options for checking if a user is in a group\n */\nexport interface GroupHasUserOptions extends OperationOptions {}\n\n/**\n * Options for removing a user from a group\n */\nexport interface GroupRemoveUserOptions extends OperationOptions {}\n\n/**\n * Options for removing a connection from a group\n */\nexport interface GroupRemoveConnectionOptions extends OperationOptions {}\n\n/**\n * Options for sending messages to a group.\n */\nexport interface GroupSendToAllOptions extends OperationOptions {\n /**\n * Connection ids to exclude from receiving this message.\n */\n excludedConnections?: string[];\n /**\n * The filter syntax to filter out the connections to send the messages to following OData filter syntax.\n * Examples:\n * * Exclude connections from `user1` and `user2`: `userId ne 'user1' and userId ne 'user2'`\n * * Exclude connections in `group1`: `not('group1' in groups)`\n * Details about `filter` syntax please see [OData filter syntax for Azure Web PubSub](https://aka.ms/awps/filter-syntax).\n */\n filter?: string;\n /**\n * The time-to-live (TTL) value in seconds for messages sent to the service.\n * 0 is the default value, which means the message never expires.\n * 300 is the maximum value.\n * If this parameter is non-zero, messages that are not consumed by the client within the specified TTL will be dropped by the service.\n * This parameter can help when the client's bandwidth is limited.\n */\n messageTtlSeconds?: number;\n}\n\n/**\n * Options for sending text messages to a group..\n */\nexport interface GroupSendTextToAllOptions extends GroupSendToAllOptions {\n /**\n * The content will be sent to the clients in plain text.\n */\n contentType: \"text/plain\";\n}\n\n/**\n * Options for closing all connections to a group.\n */\nexport interface GroupCloseAllConnectionsOptions extends OperationOptions {\n /**\n * Reason the connection is being closed.\n */\n reason?: string;\n}\n\nexport interface WebPubSubGroup {\n /**\n * The name of this group\n */\n readonly groupName: string;\n\n /**\n * The name of the hub this group belongs to\n */\n readonly hubName: string;\n\n /**\n * The Web PubSub API version being used by this client\n */\n readonly apiVersion: string;\n\n /**\n * The Web PubSub endpoint this client is connected to\n */\n readonly endpoint: string;\n\n /**\n * Add a specific connection to this group\n *\n * @param connectionId - The connection id to add to this group\n * @param options - Additional options\n */\n addConnection(connectionId: string, options?: GroupAddConnectionOptions): Promise<void>;\n\n /**\n * Remove a specific connection from this group\n *\n * @param connectionId - The connection id to remove from this group\n * @param options - Additional options\n */\n removeConnection(connectionId: string, options?: GroupRemoveConnectionOptions): Promise<void>;\n\n /**\n * Close all connections to the group\n *\n * @param options - Additional options\n */\n closeAllConnections(options?: GroupCloseAllConnectionsOptions): Promise<void>;\n\n /**\n * Add a user to this group\n *\n * @param username - The user name to add\n * @param options - Additional options\n */\n addUser(username: string, options?: GroupAddUserOptions): Promise<void>;\n\n /**\n * Remove a user from this group\n *\n * @param username - The user name to remove\n * @param options - Additional options\n */\n removeUser(username: string, options?: GroupRemoveUserOptions): Promise<void>;\n\n /**\n * Send a text message to every connection in this group\n *\n * @param message - The message to send\n * @param options - Additional options\n */\n sendToAll(message: string, options: GroupSendTextToAllOptions): Promise<void>;\n /**\n * Send a json message to every connection in this group\n *\n * @param message - The message to send\n * @param options - Additional options\n */\n sendToAll(message: JSONTypes, options?: GroupSendToAllOptions): Promise<void>;\n /**\n * Send a binary message to every connection in this group\n *\n * @param message - The binary message to send\n * @param options - Additional options\n */\n sendToAll(message: RequestBodyType, options?: GroupSendToAllOptions): Promise<void>;\n}\n\n/**\n * @hidden\n */\nexport class WebPubSubGroupImpl implements WebPubSubGroup {\n private client!: GeneratedClient;\n\n /**\n * The name of this group\n */\n public readonly groupName: string;\n\n /**\n * The name of the hub this group belongs to\n */\n public readonly hubName: string;\n\n /**\n * The Web PubSub API version being used by this client\n */\n public readonly apiVersion: string = \"2020-10-01\";\n\n /**\n * The Web PubSub endpoint this client is connected to\n */\n public endpoint!: string;\n\n /**\n * @internal\n */\n constructor(client: GeneratedClient, hubName: string, groupName: string) {\n this.client = client;\n this.groupName = groupName;\n this.hubName = hubName;\n }\n /**\n * Add a specific connection to this group\n *\n * @param connectionId - The connection id to add to this group\n * @param options - Additional options\n */\n public async addConnection(\n connectionId: string,\n options: GroupAddConnectionOptions = {},\n ): Promise<void> {\n let response: FullOperationResponse | undefined;\n function onResponse(rawResponse: FullOperationResponse, flatResponse: unknown): void {\n response = rawResponse;\n if (options.onResponse) {\n options.onResponse(rawResponse, flatResponse);\n }\n }\n\n return tracingClient.withSpan(\n \"WebPubSubGroupClient.addConnection\",\n options,\n async (updatedOptions) => {\n await this.client.webPubSub.addConnectionToGroup(\n this.hubName,\n this.groupName,\n connectionId,\n {\n ...updatedOptions,\n onResponse,\n },\n );\n\n if (response!.status === 404) {\n throw new RestError(`Connection id '${connectionId}' doesn't exist`, {\n statusCode: response?.status,\n request: response?.request,\n response: response,\n });\n }\n },\n );\n }\n\n /**\n * Remove a specific connection from this group\n *\n * @param connectionId - The connection id to remove from this group\n * @param options - Additional options\n */\n public async removeConnection(\n connectionId: string,\n options: GroupRemoveConnectionOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubGroupClient.removeConnection\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.removeConnectionFromGroup(\n this.hubName,\n this.groupName,\n connectionId,\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Close all connections to this group\n *\n * @param options - Additional options\n */\n public async closeAllConnections(options: GroupCloseAllConnectionsOptions = {}): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubGroupClient.closeAllConnections\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.closeGroupConnections(\n this.hubName,\n this.groupName,\n updatedOptions,\n );\n },\n );\n }\n /**\n * Add a user to this group\n *\n * @param username - The user name to add\n * @param options - Additional options\n */\n public async addUser(username: string, options: GroupAddUserOptions = {}): Promise<void> {\n return tracingClient.withSpan(\"WebPubSubGroupClient.addUser\", options, (updatedOptions) => {\n return this.client.webPubSub.addUserToGroup(\n this.hubName,\n this.groupName,\n username,\n updatedOptions,\n );\n });\n }\n\n /**\n * Remove a user from this group\n *\n * @param username - The user name to remove\n * @param options - Additional options\n */\n public async removeUser(username: string, options: GroupRemoveUserOptions = {}): Promise<void> {\n return tracingClient.withSpan(\"WebPubSubGroupClient.removeUser\", options, (updatedOptions) => {\n return this.client.webPubSub.removeUserFromGroup(\n this.hubName,\n this.groupName,\n username,\n updatedOptions,\n );\n });\n }\n\n /**\n * Send a text message to every connection in this group\n *\n * @param message - The message to send\n * @param options - Additional options\n */\n public async sendToAll(message: string, options: GroupSendTextToAllOptions): Promise<void>;\n /**\n * Send a json message to every connection in this group\n *\n * @param message - The message to send\n * @param options - Additional options\n */\n public async sendToAll(message: JSONTypes, options?: GroupSendToAllOptions): Promise<void>;\n /**\n * Send a binary message to every connection in this group\n *\n * @param message - The binary message to send\n * @param options - Additional options\n */\n public async sendToAll(message: RequestBodyType, options?: GroupSendToAllOptions): Promise<void>;\n\n public async sendToAll(\n message: JSONTypes | RequestBodyType,\n options: GroupSendToAllOptions | GroupSendTextToAllOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\"WebPubSubGroupClient.sendToAll\", options, (updatedOptions) => {\n const { contentType, payload } = getPayloadForMessage(message, updatedOptions);\n return this.client.webPubSub.sendToGroup(\n this.hubName,\n this.groupName,\n contentType,\n payload as any,\n updatedOptions,\n );\n });\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { KeyCredential } from \"@azure/core-auth\";\nimport type {\n PipelineResponse,\n PipelineRequest,\n SendRequest,\n PipelinePolicy,\n} from \"@azure/core-rest-pipeline\";\n\nimport jwt from \"jsonwebtoken\";\n\n/**\n * The programmatic identifier of the webPubSubKeyCredentialPolicy.\n */\nexport const webPubSubKeyCredentialPolicyName = \"webPubSubKeyCredentialPolicy\";\n\n/**\n * Create an HTTP pipeline policy to authenticate a request\n * using an `AzureKeyCredential` for Text Analytics\n * @internal\n */\nexport function webPubSubKeyCredentialPolicy(credential: KeyCredential): PipelinePolicy {\n return {\n name: webPubSubKeyCredentialPolicyName,\n sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n const bearerToken = jwt.sign({}, credential.key, {\n audience: request.url,\n expiresIn: \"1h\",\n algorithm: \"HS256\",\n });\n request.headers.set(\"Authorization\", `Bearer ${bearerToken}`);\n return next(request);\n },\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createClientLogger } from \"@azure/logger\";\n\n/**\n * The `@azure/logger` configuration for this package.\n */\nexport const logger = createClientLogger(\"web-pubsub\");\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { AzureKeyCredential } from \"@azure/core-auth\";\n\ninterface ParsedConnectionString {\n credential: AzureKeyCredential;\n endpoint: string;\n}\n\nexport function parseConnectionString(conn: string): ParsedConnectionString {\n const parsed: { [id: string]: string } = {};\n\n conn.split(\";\").forEach((i) => {\n const assignmentPos = i.indexOf(\"=\");\n if (assignmentPos === -1) return;\n const key = i.substring(0, assignmentPos).toLowerCase();\n const value = i.substring(assignmentPos + 1);\n parsed[key] = value;\n });\n\n let endpointPart = parsed[\"endpoint\"];\n if (!endpointPart) throw new TypeError(\"connection string missing endpoint\");\n if (!endpointPart.startsWith(\"http\")) {\n endpointPart = `https://${endpointPart}`;\n }\n const key = parsed[\"accesskey\"];\n if (!key) throw new TypeError(\"connection string missing access key\");\n const credential = new AzureKeyCredential(key);\n const port = parsed[\"port\"];\n const url = new URL(endpointPart);\n url.port = port;\n const endpoint = url.toString();\n url.port = \"\";\n\n return { credential, endpoint };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n PipelineResponse,\n PipelineRequest,\n SendRequest,\n PipelinePolicy,\n} from \"@azure/core-rest-pipeline\";\n\nexport const webPubSubReverseProxyPolicyName = \"webPubSubReverseProxyPolicy\";\n\n/**\n * Create an HTTP pipeline policy to use a reverse proxy.\n * This is generally going to be an Azure APIM endpoint.\n * @internal\n */\nexport function webPubSubReverseProxyPolicy(endpoint: string): PipelinePolicy {\n const rpEndpointUrl = new URL(endpoint);\n return {\n name: webPubSubReverseProxyPolicyName,\n sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n const parsedUrl = new URL(request.url);\n parsedUrl.host = rpEndpointUrl.host;\n request.url = parsedUrl.toString();\n return next(request);\n },\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n CommonClientOptions,\n FullOperationResponse,\n OperationOptions,\n} from \"@azure/core-client\";\nimport type { RequestBodyType } from \"@azure/core-rest-pipeline\";\nimport { RestError } from \"@azure/core-rest-pipeline\";\nimport { GeneratedClient } from \"./generated/generatedClient\";\nimport type {\n WebPubSubGroup,\n GroupAddConnectionOptions,\n GroupRemoveConnectionOptions,\n} from \"./groupClient\";\nimport { WebPubSubGroupImpl } from \"./groupClient\";\nimport type { AzureKeyCredential, TokenCredential } from \"@azure/core-auth\";\nimport { isTokenCredential } from \"@azure/core-auth\";\nimport { webPubSubKeyCredentialPolicy } from \"./webPubSubCredentialPolicy\";\nimport { tracingClient } from \"./tracing\";\nimport { logger } from \"./logger\";\nimport { parseConnectionString } from \"./parseConnectionString\";\nimport jwt from \"jsonwebtoken\";\nimport { getPayloadForMessage } from \"./utils\";\nimport type {\n GeneratedClientOptionalParams,\n AddToGroupsRequest,\n RemoveFromGroupsRequest,\n} from \"./generated\";\nimport { webPubSubReverseProxyPolicy } from \"./reverseProxyPolicy\";\n\n/**\n * Options for closing a connection to a hub.\n */\nexport interface HubCloseConnectionOptions extends OperationOptions {\n /**\n * Reason the connection is being closed.\n */\n reason?: string;\n}\n\n/**\n * Options for closing all connections to a hub.\n */\nexport interface HubCloseAllConnectionsOptions extends OperationOptions {\n /**\n * Reason the connection is being closed.\n */\n reason?: string;\n}\n\n/**\n * Options for closing all of a user's connections to a hub.\n */\nexport interface HubCloseUserConnectionsOptions extends OperationOptions {\n /**\n * Reason the connection is being closed.\n */\n reason?: string;\n}\n\n/**\n * Options for sending messages to hubs.\n */\nexport interface HubSendToAllOptions extends OperationOptions {\n /**\n * Connection ids to exclude from receiving this message.\n */\n excludedConnections?: string[];\n /**\n * The filter syntax to filter out the connections to send the messages to following OData filter syntax.\n * Examples:\n * * Exclude connections from `user1` and `user2`: `userId ne 'user1' and userId ne 'user2'`\n * * Exclude connections in `group1`: `not('group1' in groups)`\n * Details about `filter` syntax please see [OData filter syntax for Azure Web PubSub](https://aka.ms/awps/filter-syntax).\n */\n filter?: string;\n /**\n * The time-to-live (TTL) value in seconds for messages sent to the service.\n * 0 is the default value, which means the message never expires.\n * 300 is the maximum value.\n * If this parameter is non-zero, messages that are not consumed by the client within the specified TTL will be dropped by the service.\n * This parameter can help when the client's bandwidth is limited.\n */\n messageTtlSeconds?: number;\n}\n\n/**\n * Options for sending text messages to hubs.\n */\nexport interface HubSendTextToAllOptions extends HubSendToAllOptions {\n /**\n * The content will be sent to the clients in plain text.\n */\n contentType: \"text/plain\";\n}\n\n/**\n * Types which can be serialized and sent as JSON.\n */\nexport type JSONTypes = string | number | boolean | object;\n\n/**\n * Options for constructing a HubAdmin client.\n */\nexport interface WebPubSubServiceClientOptions extends CommonClientOptions {\n /**\n * Reverse proxy endpoint (for example, your Azure API management endpoint)\n */\n reverseProxyEndpoint?: string;\n /**\n * Options to configure the logging options.\n */\n loggingOptions?: WebPubSubServiceClientLogOptions;\n}\n\n/**\n * Options to configure the logging options.\n */\nexport declare interface WebPubSubServiceClientLogOptions {\n /**\n * Header names whose values will be logged when logging is enabled.\n * Defaults include a list of well-known safe headers. Any headers\n * specified in this field will be added to that list. Any other values will\n * be written to logs as \"REDACTED\".\n */\n additionalAllowedHeaderNames?: string[];\n /**\n * Query string names whose values will be logged when logging is enabled. By default no\n * query string values are logged.\n */\n additionalAllowedQueryParameters?: string[];\n}\n\n/**\n * Options for checking if a connection exists.\n */\nexport interface HasConnectionOptions extends OperationOptions {}\n\n/**\n * Options for checking if a group exists.\n */\nexport interface HubHasGroupOptions extends OperationOptions {}\n\n/**\n * Options for checking if a user exists.\n */\nexport interface HubHasUserOptions extends OperationOptions {}\n\n/**\n * Options for removing a user from all groups.\n */\nexport interface HubRemoveUserFromAllGroupsOptions extends HubCloseConnectionOptions {}\n\n/**\n * Options for sending a message to a specific connection.\n */\nexport interface HubSendToConnectionOptions extends OperationOptions {\n /**\n * The time-to-live (TTL) value in seconds for messages sent to the service.\n * 0 is the default value, which means the message never expires.\n * 300 is the maximum value.\n * If this parameter is non-zero, messages that are not consumed by the client within the specified TTL will be dropped by the service.\n * This parameter can help when the client's bandwidth is limited.\n */\n messageTtlSeconds?: number;\n}\n\n/**\n * Options for sending a text message to a connection.\n */\nexport interface HubSendTextToConnectionOptions extends HubSendToConnectionOptions {\n contentType: \"text/plain\";\n}\n\n/**\n * Options for sending a message to a user.\n */\nexport interface HubSendToUserOptions extends OperationOptions {\n /**\n * The filter syntax to filter out the connections to send the messages to following OData filter syntax.\n * Examples:\n * * Exclude connections in `group1`: `not('group1' in groups)`\n * * Send to connections in `group1` or `group2`: `'group1' in groups or `group2` in groups`\n * Details about `filter` syntax please see [OData filter syntax for Azure Web PubSub](https://aka.ms/awps/filter-syntax).\n */\n filter?: string;\n /**\n * The time-to-live (TTL) value in seconds for messages sent to the service.\n * 0 is the default value, which means the message never expires.\n * 300 is the maximum value.\n * If this parameter is non-zero, messages that are not consumed by the client within the specified TTL will be dropped by the service.\n * This parameter can help when the client's bandwidth is limited.\n */\n messageTtlSeconds?: number;\n}\n\n/**\n * Options for sending a text message to a user.\n */\nexport interface HubSendTextToUserOptions extends HubSendToUserOptions {\n /**\n * The content will be sent to the clients in plain text.\n */\n contentType: \"text/plain\";\n}\n\nexport type Permission = \"joinLeaveGroup\" | \"sendToGroup\";\n\n/**\n * Options for grant permissions to a connection\n */\nexport interface HubGrantPermissionOptions extends OperationOptions {\n /**\n * The meaning of the target depends on the specific permission.\n * For joinLeaveGroup and sendToGroup, targetName is a required parameter standing for the group name.\n */\n targetName?: string;\n}\n\n/**\n * Options for revoke permissions from a connection\n */\nexport interface HubRevokePermissionOptions extends OperationOptions {\n /**\n * The meaning of the target depends on the specific permission.\n * For joinLeaveGroup and sendToGroup, targetName is a required parameter standing for the group name.\n */\n targetName?: string;\n}\n\n/**\n * Options for checking if a connection has the specified permission\n */\nexport interface HubHasPermissionOptions extends OperationOptions {\n /**\n * The meaning of the target depends on the specific permission.\n * For joinLeaveGroup and sendToGroup, targetName is a required parameter standing for the group name.\n */\n targetName?: string;\n}\n\n/**\n * The type of client endpoint that is being requested.\n */\nexport type WebPubSubClientProtocol = \"default\" | \"mqtt\";\n\n/**\n * Options for generating a token to connect a client to the Azure Web Pubsub service.\n */\nexport interface GenerateClientTokenOptions extends OperationOptions {\n /**\n * The userId for the client.\n */\n userId?: string;\n\n /**\n * The roles that the connection with the generated token will have.\n * Roles give the client initial permissions to leave, join, or publish to groups when using PubSub subprotocol\n * * `webpubsub.joinLeaveGroup`: the client can join or leave any group\n * * `webpubsub.sendToGroup`: the client can send messages to any group\n * * `webpubsub.joinLeaveGroup.<group>`: the client can join or leave group `<group>`\n * * `webpubsub.sendToGroup.<group>`: the client can send messages to group `<group>`\n *\n * {@link https://azure.github.io/azure-webpubsub/references/pubsub-websocket-subprotocol#permissions}\n */\n roles?: string[];\n\n /**\n * Minutes until the token expires.\n */\n expirationTimeInMinutes?: number;\n\n /**\n * The groups to join when the client connects\n */\n groups?: string[];\n\n /**\n * The protocol type of the client\n * * `default`: Default WebPubSub Client. Example Client Connection URL: _wss://exampleHost.com/client/hubs/exampleHub_\n * * `mqtt`: MQTT Client. Example Client Connection URL: _wss://exampleHost.com/client/mqtt/hubs/exampleHub_\n */\n clientProtocol?: WebPubSubClientProtocol;\n}\n\n/**\n * A response containing the client token.\n */\nexport interface ClientTokenResponse {\n /**\n * The client token.\n */\n token: string;\n /**\n * The URL client connects to\n */\n baseUrl: string;\n /**\n * The URL client connects to with access_token query string\n */\n url: string;\n}\n\n/**\n * Client for connecting to a Web PubSub hub\n */\nexport class WebPubSubServiceClient {\n private readonly client: GeneratedClient;\n private credential!: AzureKeyCredential | TokenCredential;\n private readonly clientOptions?: WebPubSubServiceClientOptions;\n\n /**\n * The name of the hub this client is connected to\n */\n public readonly hubName: string;\n /**\n * The Web PubSub API version being used by this client\n */\n public readonly apiVersion: string = \"2024-01-01\";\n\n /**\n * The Web PubSub endpoint this client is connected to\n */\n public endpoint!: string;\n\n /**\n * Creates an instance of a WebPubSubServiceClient for sending messages and managing groups, connections, and users.\n *\n * Example usage:\n * ```ts\n * import { WebPubSubServiceClient } from \"@azure/web-pubsub\";\n * const connectionString = process.env['WEB_PUBSUB_CONNECTION_STRING'];\n * const client = new WebPubSubServiceClient(connectionString, 'chat');\n * ```\n *\n * @param connectionString - The connection string\n * @param hubName - The name of the hub to connect to. If omitted, '_default' is used.\n * @param options - Options to configure the http pipeline\n */\n constructor(connectionString: string, hubName: string, options?: WebPubSubServiceClientOptions);\n\n /**\n * Creates an instance of a WebPubSubServiceClient for sending messages and managing groups, connections, and users.\n *\n * Example usage:\n * ```ts\n * import { WebPubSubServiceClient, AzureKeyCredential } from \"@azure/web-pubsub\";\n * const cred = new AzureKeyCredential(\"<your web pubsub api key>\");\n * const endpoint = \"https://xxxx.webpubsubdev.azure.com\"\n * const client = new WebPubSubServiceClient(endpoint, cred, 'chat');\n * ```\n *\n * @param endpoint - The endpoint to connect to\n * @param credential - An AzureKeyCredential holding your service key\n * @param hubName - The name of the hub to connect to.\n * @param options - Options to configure the http pipeline\n */\n constructor(\n endpoint: string,\n credential: AzureKeyCredential | TokenCredential,\n hubName: string,\n options?: WebPubSubServiceClientOptions,\n );\n constructor(\n endpointOrConnectionString: string,\n credsOrHubName?: AzureKeyCredential | TokenCredential | string,\n hubNameOrOpts?: string | WebPubSubServiceClientOptions,\n opts?: WebPubSubServiceClientOptions,\n ) {\n // unpack constructor arguments\n if (typeof credsOrHubName === \"object\") {\n this.endpoint = endpointOrConnectionString;\n this.hubName = hubNameOrOpts as string;\n this.clientOptions = opts;\n this.credential = credsOrHubName;\n } else {\n const parsedCs = parseConnectionString(endpointOrConnectionString);\n this.endpoint = parsedCs.endpoint;\n this.credential = parsedCs.credential;\n this.hubName = credsOrHubName as string;\n this.clientOptions = hubNameOrOpts as WebPubSubServiceClientOptions;\n }\n\n const internalPipelineOptions: GeneratedClientOptionalParams = {\n ...this.clientOptions,\n ...{\n apiVersion: this.apiVersion,\n loggingOptions: {\n additionalAllowedHeaderNames:\n this.clientOptions?.loggingOptions?.additionalAllowedHeaderNames,\n additionalAllowedQueryParameters:\n this.clientOptions?.loggingOptions?.additionalAllowedQueryParameters,\n logger: logger.info,\n },\n },\n ...(isTokenCredential(this.credential)\n ? {\n credential: this.credential,\n credentialScopes: [\"https://webpubsub.azure.com/.default\"],\n }\n : {}),\n };\n\n this.client = new GeneratedClient(this.endpoint, internalPipelineOptions);\n\n if (!isTokenCredential(this.credential)) {\n this.client.pipeline.addPolicy(webPubSubKeyCredentialPolicy(this.credential));\n }\n\n if (this.clientOptions?.reverseProxyEndpoint) {\n this.client.pipeline.addPolicy(\n webPubSubReverseProxyPolicy(this.clientOptions?.reverseProxyEndpoint),\n );\n }\n }\n\n /**\n * Get a client for a group\n * @param groupName - The name of the group to connect to.\n */\n public group(groupName: string): WebPubSubGroup {\n return new WebPubSubGroupImpl(this.client, this.hubName, groupName);\n }\n\n /**\n * Broadcast a text message to all connections on this hub.\n *\n * @param message - The text message to send\n * @param options - Additional options\n */\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n public async sendToAll(message: string, options: HubSendTextToAllOptions): Promise<void>;\n /**\n * Broadcast a JSON message to all connections on this hub.\n *\n * @param message - The JSON message to send\n * @param options - Additional options\n */\n public async sendToAll(message: JSONTypes, options?: HubSendToAllOptions): Promise<void>;\n /**\n * Broadcast a binary message to all connections on this hub.\n *\n * @param message - The message to send\n * @param options - Additional options\n */\n public async sendToAll(message: RequestBodyType, options?: HubSendToAllOptions): Promise<void>;\n\n public async sendToAll(\n message: RequestBodyType | JSONTypes,\n options: HubSendToAllOptions | HubSendTextToAllOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\"WebPubSubServiceClient.sendToAll\", options, (updatedOptions) => {\n const { contentType, payload } = getPayloadForMessage(message, updatedOptions);\n return this.client.webPubSub.sendToAll(\n this.hubName,\n contentType,\n payload as any,\n updatedOptions,\n );\n });\n }\n\n /**\n * Send a text message to a specific user\n *\n * @param username - User name to send to\n * @param message - The text message to send\n * @param options - Additional options\n */\n public async sendToUser(\n username: string,\n message: string,\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: HubSendTextToUserOptions,\n ): Promise<void>;\n\n /**\n * Send a JSON message to a specific user\n *\n * @param username - User name to send to\n * @param message - The josn message to send\n * @param options - Additional options\n */\n public async sendToUser(\n username: string,\n message: JSONTypes,\n options?: HubSendToUserOptions,\n ): Promise<void>;\n\n /**\n * Send a binary message to a specific user\n *\n * @param username - The user name to send to\n * @param message - The binary message to send\n * @param options - Additional options\n */\n public async sendToUser(\n username: string,\n message: RequestBodyType,\n options?: HubSendToUserOptions | HubSendTextToUserOptions,\n ): Promise<void>;\n public async sendToUser(\n username: string,\n message: RequestBodyType | JSONTypes,\n options: HubSendToUserOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.sendToUser\",\n options,\n (updatedOptions) => {\n const { contentType, payload } = getPayloadForMessage(message, updatedOptions);\n return this.client.webPubSub.sendToUser(\n this.hubName,\n username,\n contentType,\n payload as any,\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Send a text message to a specific connection\n *\n * @param connectionId - Connection id to send to\n * @param message - The text message\n * @param options - Additional options\n */\n public async sendToConnection(\n connectionId: string,\n message: string,\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: HubSendTextToConnectionOptions,\n ): Promise<void>;\n\n /**\n * Send a binary message to a specific connection\n *\n * @param connectionId - Connection id to send to\n * @param message - The JSON message\n * @param options - Additional options\n */\n public async sendToConnection(\n connectionId: string,\n message: JSONTypes,\n options?: HubSendToConnectionOptions,\n ): Promise<void>;\n\n /**\n * Send a binary message to a specific connection\n *\n * @param connectionId - Connection id to send to\n * @param message - The binary message\n * @param options - Additional options\n */\n public async sendToConnection(\n connectionId: string,\n message: RequestBodyType,\n options?: HubSendToConnectionOptions | HubSendTextToConnectionOptions,\n ): Promise<void>;\n public async sendToConnection(\n connectionId: string,\n message: RequestBodyType | JSONTypes,\n options: HubSendToConnectionOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.sendToConnection\",\n options,\n (updatedOptions) => {\n const { contentType, payload } = getPayloadForMessage(message, updatedOptions);\n\n return this.client.webPubSub.sendToConnection(\n this.hubName,\n connectionId,\n contentType,\n payload as any,\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Check if a specific connection is connected to this hub\n *\n * @param connectionId - Connection id to check\n * @param options - Additional options\n */\n public async connectionExists(\n connectionId: string,\n options: HasConnectionOptions = {},\n ): Promise<boolean> {\n let response: FullOperationResponse | undefined;\n function onResponse(rawResponse: FullOperationResponse, flatResponse: unknown): void {\n response = rawResponse;\n if (options.onResponse) {\n options.onResponse(rawResponse, flatResponse);\n }\n }\n\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.connectionExists\",\n options,\n async (updatedOptions) => {\n await this.client.webPubSub.connectionExists(this.hubName, connectionId, {\n ...updatedOptions,\n onResponse,\n });\n\n if (response!.status === 200) {\n return true;\n } else if (response!.status === 404) {\n return false;\n } else {\n // this is sad - wish this was handled by autorest.\n throw new RestError(response!.bodyAsText!, {\n statusCode: response?.status,\n request: response?.request,\n response: response,\n });\n }\n },\n );\n }\n\n /**\n * Close a specific connection to this hub\n *\n * @param connectionId - Connection id to close\n * @param options - Additional options\n */\n public async closeConnection(\n connectionId: string,\n options: HubCloseConnectionOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.closeConnection\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.closeConnection(this.hubName, connectionId, updatedOptions);\n },\n );\n }\n\n /**\n * Close all connections to this hub\n *\n * @param options - Additional options\n */\n public async closeAllConnections(options: HubCloseAllConnectionsOptions = {}): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.closeAllConnections\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.closeAllConnections(this.hubName, updatedOptions);\n },\n );\n }\n\n /**\n * Close all connections with the given user id\n *\n * @param user - User id to close\n * @param options - Additional options\n */\n public async closeUserConnections(\n userId: string,\n options: HubCloseUserConnectionsOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.closeUserConnections\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.closeUserConnections(this.hubName, userId, updatedOptions);\n },\n );\n }\n\n /**\n * Remove a specific user from all groups they are joined to\n * @param userId - The user id to remove from all groups\n * @param options - Additional options\n */\n public async removeUserFromAllGroups(\n userId: string,\n options: HubCloseConnectionOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.removeUserFromAllGroups\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.removeUserFromAllGroups(this.hubName, userId, updatedOptions);\n },\n );\n }\n\n /**\n * Remove a specific connection from all groups they are joined to\n * @param connectionId - The connection id to remove from all groups\n * @param options - Additional options\n */\n public async removeConnectionFromAllGroups(\n connectionId: string,\n options: HubCloseConnectionOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.removeConnectionFromAllGroups\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.removeConnectionFromAllGroups(\n this.hubName,\n connectionId,\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Add filtered connections to multiple groups\n * @param groups - A list of groups which target connections will be added into\n * @param filter - An OData filter which target connections satisfy\n * @param options - Additional options\n */\n public async addConnectionsToGroups(\n groups: string[],\n filter: string,\n options: GroupAddConnectionOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.addConnectionsToGroups\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.addConnectionsToGroups(\n this.hubName,\n {\n groups: groups,\n filter: filter,\n } as AddToGroupsRequest,\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Remove filtered connections from multiple groups\n * @param groups - A list of groups which target connections will be removed from\n * @param filter - An OData filter which target connections satisfy\n * @param options - Additional options\n */\n public async removeConnectionsFromGroups(\n groups: string[],\n filter: string,\n options: GroupRemoveConnectionOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.removeConnectionsFromGroups\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.removeConnectionsFromGroups(\n this.hubName,\n {\n groups: groups,\n filter: filter,\n } as RemoveFromGroupsRequest,\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Check if a particular group exists (i.e. has active connections).\n *\n * @param groupName - The group name to check for\n * @param options - Additional options\n */\n public async groupExists(groupName: string, options: HubHasGroupOptions = {}): Promise<boolean> {\n let response: FullOperationResponse | undefined;\n function onResponse(rawResponse: FullOperationResponse, flatResponse: unknown): void {\n response = rawResponse;\n if (options.onResponse) {\n options.onResponse(rawResponse, flatResponse);\n }\n }\n\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.groupExists\",\n options,\n async (updatedOptions) => {\n await this.client.webPubSub.groupExists(this.hubName, groupName, {\n ...updatedOptions,\n onResponse,\n });\n\n if (response!.status === 200) {\n return true;\n } else if (response!.status === 404) {\n return false;\n } else {\n throw new RestError(response!.bodyAsText!, {\n statusCode: response?.status,\n request: response?.request,\n response: response,\n });\n }\n },\n );\n }\n\n /**\n * Check if a particular user is connected to this hub.\n *\n * @param username - The user name to check for\n * @param options - Additional options\n */\n public async userExists(username: string, options: HubHasUserOptions = {}): Promise<boolean> {\n let response: FullOperationResponse | undefined;\n function onResponse(rawResponse: FullOperationResponse, flatResponse: unknown): void {\n response = rawResponse;\n if (options.onResponse) {\n options.onResponse(rawResponse, flatResponse);\n }\n }\n\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.userExists\",\n options,\n async (updatedOptions) => {\n await this.client.webPubSub.userExists(this.hubName, username, {\n ...updatedOptions,\n onResponse,\n });\n\n if (response!.status === 200) {\n return true;\n } else if (response!.status === 404) {\n return false;\n } else {\n // this is sad - wish this was handled by autorest.\n throw new RestError(response!.bodyAsText!, {\n statusCode: response?.status,\n request: response?.request,\n response: response,\n });\n }\n },\n );\n }\n\n /**\n * Grant permissions to a connection\n *\n * @param connectionId - The connection id to grant permissions to\n * @param Permission - The permission to grant\n * @param options - Additional options\n */\n public async grantPermission(\n connectionId: string,\n permission: Permission,\n options: HubGrantPermissionOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.grantPermission\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.grantPermission(\n this.hubName,\n permission,\n connectionId,\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Revoke permissions from a connection\n *\n * @param connectionId - The connection id to revoke permissions from\n * @param Permission - The permission to revoke\n * @param options - Additional options\n */\n public async revokePermission(\n connectionId: string,\n permission: Permission,\n options: HubRevokePermissionOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.revokePermission\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.revokePermission(\n this.hubName,\n permission,\n connectionId,\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Check if the connection has the specified permission\n *\n * @param connectionId - The connection id to check permission\n * @param Permission - The permission to check\n * @param options - Additional options\n */\n public async hasPermission(\n connectionId: string,\n permission: Permission,\n options: HubHasPermissionOptions = {},\n ): Promise<boolean> {\n let response: FullOperationResponse | undefined;\n function onResponse(rawResponse: FullOperationResponse, flatResponse: unknown): void {\n response = rawResponse;\n if (options.onResponse) {\n options.onResponse(rawResponse, flatResponse);\n }\n }\n\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.hasPermission\",\n options,\n async (updatedOptions) => {\n await this.client.webPubSub.checkPermission(this.hubName, permission, connectionId, {\n ...updatedOptions,\n onResponse,\n });\n\n if (response!.status === 200) {\n return true;\n } else if (response!.status === 404) {\n return false;\n } else {\n // this is sad - wish this was handled by autorest.\n throw new RestError(response!.bodyAsText!, {\n statusCode: response?.status,\n request: response?.request,\n response: response,\n });\n }\n },\n );\n }\n\n /**\n * Generate a token for a client to connect to the Azure Web PubSub service.\n *\n * @param options - Additional options\n */\n public async getClientAccessToken(\n options: GenerateClientTokenOptions = {},\n ): Promise<ClientTokenResponse> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.getClientAccessToken\",\n options,\n async (updatedOptions) => {\n const endpoint = this.endpoint.endsWith(\"/\") ? this.endpoint : this.endpoint + \"/\";\n const clientEndpoint = endpoint.replace(/(http)(s?:\\/\\/)/gi, \"ws$2\");\n const clientProtocol = updatedOptions.clientProtocol;\n const clientPath =\n clientProtocol && clientProtocol === \"mqtt\"\n ? `clients/mqtt/hubs/${this.hubName}`\n : `client/hubs/${this.hubName}`;\n const baseUrl = clientEndpoint + clientPath;\n\n let token: string;\n if (isTokenCredential(this.credential)) {\n const response = await this.client.webPubSub.generateClientToken(\n this.hubName,\n updatedOptions,\n );\n token = response.token!;\n } else {\n const key = this.credential.key;\n const audience = endpoint + clientPath;\n const payload = {\n role: updatedOptions?.roles,\n \"webpubsub.group\": updatedOptions?.groups,\n };\n const signOptions: jwt.SignOptions = {\n audience: audience,\n expiresIn:\n updatedOptions?.expirationTimeInMinutes === undefined\n ? \"1h\"\n : `${updatedOptions.expirationTimeInMinutes}m`,\n algorithm: \"HS256\",\n };\n if (updatedOptions?.userId) {\n signOptions.subject = updatedOptions?.userId;\n }\n token = jwt.sign(payload, key, signOptions);\n }\n\n return {\n token,\n baseUrl,\n url: `${baseUrl}?access_token=${token}`,\n };\n },\n );\n }\n}\n"],"names":["AddToGroupsRequestMapper","RemoveFromGroupsRequestMapper","serializer","coreClient","Parameters.apiVersion","Parameters.endpoint","Mappers.ErrorDetail","Mappers.WebPubSubAddConnectionsToGroupsExceptionHeaders","Parameters.groupsToAdd","Parameters.hub","Parameters.contentType","Parameters.accept","Mappers.WebPubSubCloseAllConnectionsExceptionHeaders","Parameters.excluded","Parameters.reason","Mappers.ClientTokenResponse","Mappers.WebPubSubGenerateClientTokenExceptionHeaders","Parameters.userId","Parameters.roles","Parameters.expirationTimeInMinutes","Parameters.groups","Parameters.clientType","Parameters.accept1","Mappers.WebPubSubRemoveConnectionsFromGroupsExceptionHeaders","Parameters.groupsToRemove","Mappers.WebPubSubSendToAllExceptionHeaders","Parameters.message","Parameters.excludedConnections","Parameters.filter","Parameters.messageTtlSeconds","Parameters.contentType1","Parameters.accept2","Parameters.message1","Parameters.contentType2","Parameters.accept3","Mappers.WebPubSubCloseConnectionExceptionHeaders","Parameters.connectionId","Mappers.WebPubSubConnectionExistsExceptionHeaders","Mappers.WebPubSubSendToConnectionExceptionHeaders","Mappers.WebPubSubRemoveConnectionFromAllGroupsExceptionHeaders","Mappers.WebPubSubGroupExistsExceptionHeaders","Parameters.group","Mappers.WebPubSubCloseGroupConnectionsExceptionHeaders","Mappers.WebPubSubSendToGroupExceptionHeaders","Mappers.WebPubSubRemoveConnectionFromGroupExceptionHeaders","Mappers.WebPubSubAddConnectionToGroupExceptionHeaders","Mappers.WebPubSubRevokePermissionExceptionHeaders","Parameters.targetName","Parameters.permission","Mappers.WebPubSubCheckPermissionExceptionHeaders","Mappers.WebPubSubGrantPermissionExceptionHeaders","Mappers.WebPubSubUserExistsExceptionHeaders","Parameters.userId1","Mappers.WebPubSubCloseUserConnectionsExceptionHeaders","Mappers.WebPubSubSendToUserExceptionHeaders","Mappers.WebPubSubRemoveUserFromAllGroupsExceptionHeaders","Mappers.WebPubSubRemoveUserFromGroupExceptionHeaders","Mappers.WebPubSubAddUserToGroupExceptionHeaders","createTracingClient","RestError","createClientLogger","AzureKeyCredential","isTokenCredential"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;AAMG;AAII,MAAM,kBAAkB,GAA+B;AAC5D,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,eAAe,EAAE;AACf,YAAA,MAAM,EAAE;AACN,gBAAA,cAAc,EAAE,QAAQ;AACxB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,OAAO,EAAE;AACP,wBAAA,IAAI,EAAE;AACJ,4BAAA,IAAI,EAAE,QAAQ;AACf,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,cAAc,EAAE,QAAQ;AACxB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEM,MAAM,WAAW,GAA+B;AACrD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,eAAe,EAAE;AACf,YAAA,IAAI,EAAE;AACJ,gBAAA,cAAc,EAAE,MAAM;AACtB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,SAAS;AACzB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,cAAc,EAAE,QAAQ;AACxB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,SAAS;AACzB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,OAAO,EAAE;AACP,wBAAA,IAAI,EAAE;AACJ,4BAAA,IAAI,EAAE,WAAW;AACjB,4BAAA,SAAS,EAAE,aAAa;AACzB,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,KAAK,EAAE;AACL,gBAAA,cAAc,EAAE,OAAO;AACvB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,SAAS,EAAE,YAAY;AACxB,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEM,MAAM,UAAU,GAA+B;AACpD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,eAAe,EAAE;AACf,YAAA,IAAI,EAAE;AACJ,gBAAA,cAAc,EAAE,MAAM;AACtB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACD,YAAA,KAAK,EAAE;AACL,gBAAA,cAAc,EAAE,OAAO;AACvB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,SAAS,EAAE,YAAY;AACxB,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEM,MAAM,mBAAmB,GAA+B;AAC7D,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,eAAe,EAAE;AACf,YAAA,KAAK,EAAE;AACL,gBAAA,cAAc,EAAE,OAAO;AACvB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEM,MAAM,uBAAuB,GAA+B;AACjE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,yBAAyB;AACpC,QAAA,eAAe,EAAE;AACf,YAAA,MAAM,EAAE;AACN,gBAAA,cAAc,EAAE,QAAQ;AACxB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,OAAO,EAAE;AACP,wBAAA,IAAI,EAAE;AACJ,4BAAA,IAAI,EAAE,QAAQ;AACf,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,cAAc,EAAE,QAAQ;AACxB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEM,MAAM,+CAA+C,GAC1D;AACE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,iDAAiD;AAC5D,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEI,MAAM,4CAA4C,GACvD;AACE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,8CAA8C;AACzD,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEI,MAAM,4CAA4C,GACvD;AACE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,8CAA8C;AACzD,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEI,MAAM,oDAAoD,GAC/D;AACE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,sDAAsD;AACjE,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEI,MAAM,kCAAkC,GAA+B;AAC5E,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,oCAAoC;AAC/C,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEM,MAAM,wCAAwC,GACnD;AACE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,0CAA0C;AACrD,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEI,MAAM,yCAAyC,GACpD;AACE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,2CAA2C;AACtD,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEI,MAAM,yCAAyC,GACpD;AACE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,2CAA2C;AACtD,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEI,MAAM,sDAAsD,GACjE;AACE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,wDAAwD;AACnE,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEI,MAAM,oCAAoC,GAC/C;AACE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,sCAAsC;AACjD,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEI,MAAM,8CAA8C,GACzD;AACE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,gDAAgD;AAC3D,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEI,MAAM,oCAAoC,GAC/C;AACE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,sCAAsC;AACjD,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEI,MAAM,kDAAkD,GAC7D;AACE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,oDAAoD;AAC/D,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEI,MAAM,6CAA6C,GACxD;AACE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,+CAA+C;AAC1D,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEI,MAAM,yCAAyC,GACpD;AACE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,2CAA2C;AACtD,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEI,MAAM,wCAAwC,GACnD;AACE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,0CAA0C;AACrD,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEI,MAAM,wCAAwC,GACnD;AACE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,0CAA0C;AACrD,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEI,MAAM,mCAAmC,GAA+B;AAC7E,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,qCAAqC;AAChD,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEM,MAAM,6CAA6C,GACxD;AACE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,+CAA+C;AAC1D,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEI,MAAM,mCAAmC,GAA+B;AAC7E,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,qCAAqC;AAChD,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEM,MAAM,gDAAgD,GAC3D;AACE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,kDAAkD;AAC7D,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEI,MAAM,4CAA4C,GACvD;AACE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,8CAA8C;AACzD,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAEI,MAAM,uCAAuC,GAClD;AACE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,yCAAyC;AACpD,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5fH;;;;;;AAMG;AAYI,MAAM,QAAQ,GAA0B;AAC7C,IAAA,aAAa,EAAE,UAAU;AACzB,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,UAAU;AAC1B,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;AACD,IAAA,YAAY,EAAE,IAAI;CACnB;AAEM,MAAM,UAAU,GAA4B;AACjD,IAAA,aAAa,EAAE,YAAY;AAC3B,IAAA,MAAM,EAAE;AACN,QAAA,YAAY,EAAE,YAAY;AAC1B,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,cAAc,EAAE,aAAa;AAC7B,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;CACF;AAEM,MAAM,WAAW,GAAuB;AAC7C,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC;AACzC,IAAA,MAAM,EAAE;AACN,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,cAAc,EAAE,cAAc;AAC9B,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;CACF;AAEM,MAAM,WAAW,GAAuB;AAC7C,IAAA,aAAa,EAAE,aAAa;AAC5B,IAAA,MAAM,EAAEA,kBAAwB;CACjC;AAEM,MAAM,MAAM,GAAuB;AACxC,IAAA,aAAa,EAAE,QAAQ;AACvB,IAAA,MAAM,EAAE;AACN,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;CACF;AAEM,MAAM,GAAG,GAA0B;AACxC,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,MAAM,EAAE;AACN,QAAA,WAAW,EAAE;AACX,YAAA,OAAO,EAAE,IAAI,MAAM,CAAC,sCAAsC,CAAC;AAC5D,SAAA;AACD,QAAA,cAAc,EAAE,KAAK;AACrB,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;CACF;AAEM,MAAM,QAAQ,GAA4B;AAC/C,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;AACtC,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,UAAU;AAC1B,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,OAAO,EAAE;AACP,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,gBAAgB,EAAE,OAAO;CAC1B;AAEM,MAAM,MAAM,GAA4B;AAC7C,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;AACpC,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;CACF;AAEM,MAAM,OAAO,GAAuB;AACzC,IAAA,aAAa,EAAE,QAAQ;AACvB,IAAA,MAAM,EAAE;AACN,QAAA,YAAY,EAAE,6BAA6B;AAC3C,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;CACF;AAEM,MAAM,MAAM,GAA4B;AAC7C,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;AACpC,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;CACF;AAEM,MAAM,KAAK,GAA4B;AAC5C,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;AACnC,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,MAAM;AACtB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,OAAO,EAAE;AACP,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,gBAAgB,EAAE,OAAO;CAC1B;AAEM,MAAM,uBAAuB,GAA4B;AAC9D,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,yBAAyB,CAAC;AACrD,IAAA,MAAM,EAAE;AACN,QAAA,YAAY,EAAE,EAAE;AAChB,QAAA,WAAW,EAAE;AACX,YAAA,gBAAgB,EAAE,CAAC;AACpB,SAAA;AACD,QAAA,cAAc,EAAE,iBAAiB;AACjC,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;CACF;AAEM,MAAM,MAAM,GAA4B;AAC7C,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;AACpC,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,OAAO;AACvB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,OAAO,EAAE;AACP,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,gBAAgB,EAAE,OAAO;CAC1B;AAEM,MAAM,UAAU,GAA4B;AACjD,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;AACxC,IAAA,MAAM,EAAE;AACN,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,cAAc,EAAE,YAAY;AAC5B,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;CACF;AAEM,MAAM,cAAc,GAAuB;AAChD,IAAA,aAAa,EAAE,gBAAgB;AAC/B,IAAA,MAAM,EAAEC,uBAA6B;CACtC;AAEM,MAAM,YAAY,GAAuB;AAC9C,IAAA,aAAa,EAAE,aAAa;AAC5B,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,cAAc;AAC9B,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,aAAa,EAAE,CAAC,kBAAkB,EAAE,0BAA0B,CAAC;AAChE,SAAA;AACF,KAAA;CACF;AAEM,MAAM,OAAO,GAAuB;AACzC,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;CACF;AAEM,MAAM,OAAO,GAAuB;AACzC,IAAA,aAAa,EAAE,QAAQ;AACvB,IAAA,MAAM,EAAE;AACN,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;CACF;AAEM,MAAM,YAAY,GAAuB;AAC9C,IAAA,aAAa,EAAE,aAAa;AAC5B,IAAA,MAAM,EAAE;AACN,QAAA,YAAY,EAAE,YAAY;AAC1B,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,cAAc,EAAE,cAAc;AAC9B,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;CACF;AAEM,MAAM,QAAQ,GAAuB;AAC1C,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;CACF;AAEM,MAAM,OAAO,GAAuB;AACzC,IAAA,aAAa,EAAE,QAAQ;AACvB,IAAA,MAAM,EAAE;AACN,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;CACF;AAEM,MAAM,mBAAmB,GAA4B;AAC1D,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,qBAAqB,CAAC;AACjD,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,UAAU;AAC1B,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,OAAO,EAAE;AACP,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,gBAAgB,EAAE,OAAO;CAC1B;AAEM,MAAM,MAAM,GAA4B;AAC7C,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;AACpC,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;CACF;AAEM,MAAM,iBAAiB,GAA4B;AACxD,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,mBAAmB,CAAC;AAC/C,IAAA,MAAM,EAAE;AACN,QAAA,WAAW,EAAE;AACX,YAAA,gBAAgB,EAAE,GAAG;AACrB,YAAA,gBAAgB,EAAE,CAAC;AACpB,SAAA;AACD,QAAA,cAAc,EAAE,mBAAmB;AACnC,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;CACF;AAEM,MAAM,YAAY,GAA0B;AACjD,IAAA,aAAa,EAAE,cAAc;AAC7B,IAAA,MAAM,EAAE;AACN,QAAA,WAAW,EAAE;AACX,YAAA,SAAS,EAAE,CAAC;AACb,SAAA;AACD,QAAA,cAAc,EAAE,cAAc;AAC9B,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;CACF;AAEM,MAAM,KAAK,GAA0B;AAC1C,IAAA,aAAa,EAAE,OAAO;AACtB,IAAA,MAAM,EAAE;AACN,QAAA,WAAW,EAAE;AACX,YAAA,OAAO,EAAE,IAAI,MAAM,CAAC,eAAe,CAAC;AACpC,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,SAAS,EAAE,CAAC;AACb,SAAA;AACD,QAAA,cAAc,EAAE,OAAO;AACvB,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;CACF;AAEM,MAAM,UAAU,GAA0B;AAC/C,IAAA,aAAa,EAAE,YAAY;AAC3B,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,YAAY;AAC5B,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;CACF;AAEM,MAAM,UAAU,GAA4B;AACjD,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;AACxC,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,YAAY;AAC5B,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;CACF;AAEM,MAAM,OAAO,GAA0B;AAC5C,IAAA,aAAa,EAAE,QAAQ;AACvB,IAAA,MAAM,EAAE;AACN,QAAA,WAAW,EAAE;AACX,YAAA,SAAS,EAAE,CAAC;AACb,SAAA;AACD,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;CACF;;AChXD;;;;;;AAMG;AASH;MACa,aAAa,CAAA;AAGxB;;;AAGG;AACH,IAAA,WAAA,CAAY,MAAuB,EAAA;AACjC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAGtB;;;AAGG;AACH,IAAA,gBAAgB,CACd,OAAiD,EAAA;AAEjD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,OAAO,EAAE,EACX,6BAA6B,CAC9B;;AAEJ;AACD;AACA,MAAMC,YAAU,GAAGC,qBAAU,CAAC,gBAAgB,CAAC,OAAO,cAAc,KAAK,CAAC;AAE1E,MAAM,6BAA6B,GAA6B;AAC9D,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;AACnC,IAAA,eAAe,EAAE,CAACC,UAAqB,CAAC;AACxC,IAAA,aAAa,EAAE,CAACC,QAAmB,CAAC;gBACpCH,YAAU;CACX;;AClDD;;;;;;AAMG;AA2CH;MACa,aAAa,CAAA;AAGxB;;;AAGG;AACH,IAAA,WAAA,CAAY,MAAuB,EAAA;AACjC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAGtB;;;;;;AAMG;AACH,IAAA,sBAAsB,CACpB,GAAW,EACX,WAA+B,EAC/B,OAAuD,EAAA;AAEvD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,EAC7B,mCAAmC,CACpC;;AAGH;;;;;AAKG;IACH,mBAAmB,CACjB,GAAW,EACX,OAAoD,EAAA;AAEpD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,GAAG,EAAE,OAAO,EAAE,EAChB,gCAAgC,CACjC;;AAGH;;;;;AAKG;IACH,mBAAmB,CACjB,GAAW,EACX,OAAoD,EAAA;AAEpD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,GAAG,EAAE,OAAO,EAAE,EAChB,gCAAgC,CACjC;;AAGH;;;;;;AAMG;AACH,IAAA,2BAA2B,CACzB,GAAW,EACX,cAAuC,EACvC,OAA4D,EAAA;AAE5D,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,EAChC,wCAAwC,CACzC;;AA+BH;;;AAGG;IACH,SAAS,CACP,GAAG,IAOuE,EAAA;AAE1E,QAAA,IAAI,aAAuC;AAC3C,QAAA,IAAI,kBAAiD;AACrD,QAAA,IAAI,OAAO;AACX,QAAA,IACE,IAAI,CAAC,CAAC,CAAC,KAAK,kBAAkB;AAC9B,YAAA,IAAI,CAAC,CAAC,CAAC,KAAK,0BAA0B,EACtC;YACA,aAAa,GAAG,6BAA6B;AAC7C,YAAA,kBAAkB,GAAG;AACnB,gBAAA,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AACZ,gBAAA,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;AACpB,gBAAA,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAChB,gBAAA,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;aACjB;AACD,YAAA,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;;AACZ,aAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;YACnC,aAAa,GAAG,2BAA2B;AAC3C,YAAA,kBAAkB,GAAG;AACnB,gBAAA,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AACZ,gBAAA,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;AACpB,gBAAA,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAChB,gBAAA,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;aACjB;AACD,YAAA,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;;aACZ;YACL,MAAM,IAAI,SAAS,CACjB,CAAwD,qDAAA,EAAA,IAAI,CAAC,CAAC,CAAC,CAAI,EAAA,CAAA,CACpE;;AAEH,QAAA,kBAAkB,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE;QAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,aAAa,CAAC;;AAG5E;;;;;;AAMG;AACH,IAAA,eAAe,CACb,GAAW,EACX,YAAoB,EACpB,OAAgD,EAAA;AAEhD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,EAC9B,4BAA4B,CAC7B;;AAGH;;;;;;AAMG;AACH,IAAA,gBAAgB,CACd,GAAW,EACX,YAAoB,EACpB,OAAiD,EAAA;AAEjD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,EAC9B,6BAA6B,CAC9B;;AAmCH;;;AAGG;IACH,gBAAgB,CACd,GAAG,IAcE,EAAA;AAEL,QAAA,IAAI,aAAuC;AAC3C,QAAA,IAAI,kBAAiD;AACrD,QAAA,IAAI,OAAO;AACX,QAAA,IACE,IAAI,CAAC,CAAC,CAAC,KAAK,kBAAkB;AAC9B,YAAA,IAAI,CAAC,CAAC,CAAC,KAAK,0BAA0B,EACtC;YACA,aAAa,GAAG,oCAAoC;AACpD,YAAA,kBAAkB,GAAG;AACnB,gBAAA,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AACZ,gBAAA,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;AACrB,gBAAA,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;AACpB,gBAAA,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAChB,gBAAA,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;aACjB;AACD,YAAA,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;;AACZ,aAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;YACnC,aAAa,GAAG,kCAAkC;AAClD,YAAA,kBAAkB,GAAG;AACnB,gBAAA,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AACZ,gBAAA,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;AACrB,gBAAA,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;AACpB,gBAAA,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAChB,gBAAA,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;aACjB;AACD,YAAA,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;;aACZ;YACL,MAAM,IAAI,SAAS,CACjB,CAAwD,qDAAA,EAAA,IAAI,CAAC,CAAC,CAAC,CAAI,EAAA,CAAA,CACpE;;AAEH,QAAA,kBAAkB,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE;QAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,aAAa,CAAC;;AAG5E;;;;;;AAMG;AACH,IAAA,6BAA6B,CAC3B,GAAW,EACX,YAAoB,EACpB,OAA8D,EAAA;AAE9D,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,EAC9B,0CAA0C,CAC3C;;AAGH;;;;;;AAMG;AACH,IAAA,WAAW,CACT,GAAW,EACX,KAAa,EACb,OAA4C,EAAA;AAE5C,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EACvB,wBAAwB,CACzB;;AAGH;;;;;;AAMG;AACH,IAAA,qBAAqB,CACnB,GAAW,EACX,KAAa,EACb,OAAsD,EAAA;AAEtD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EACvB,kCAAkC,CACnC;;AAmCH;;;AAGG;IACH,WAAW,CACT,GAAG,IAcE,EAAA;AAEL,QAAA,IAAI,aAAuC;AAC3C,QAAA,IAAI,kBAAiD;AACrD,QAAA,IAAI,OAAO;AACX,QAAA,IACE,IAAI,CAAC,CAAC,CAAC,KAAK,kBAAkB;AAC9B,YAAA,IAAI,CAAC,CAAC,CAAC,KAAK,0BAA0B,EACtC;YACA,aAAa,GAAG,+BAA+B;AAC/C,YAAA,kBAAkB,GAAG;AACnB,gBAAA,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AACZ,gBAAA,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACd,gBAAA,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;AACpB,gBAAA,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAChB,gBAAA,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;aACjB;AACD,YAAA,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;;AACZ,aAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;YACnC,aAAa,GAAG,6BAA6B;AAC7C,YAAA,kBAAkB,GAAG;AACnB,gBAAA,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AACZ,gBAAA,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACd,gBAAA,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;AACpB,gBAAA,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAChB,gBAAA,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;aACjB;AACD,YAAA,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;;aACZ;YACL,MAAM,IAAI,SAAS,CACjB,CAAwD,qDAAA,EAAA,IAAI,CAAC,CAAC,CAAC,CAAI,EAAA,CAAA,CACpE;;AAEH,QAAA,kBAAkB,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE;QAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,aAAa,CAAC;;AAG5E;;;;;;;AAOG;AACH,IAAA,yBAAyB,CACvB,GAAW,EACX,KAAa,EACb,YAAoB,EACpB,OAA0D,EAAA;AAE1D,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,EACrC,sCAAsC,CACvC;;AAGH;;;;;;;AAOG;AACH,IAAA,oBAAoB,CAClB,GAAW,EACX,KAAa,EACb,YAAoB,EACpB,OAAqD,EAAA;AAErD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,EACrC,iCAAiC,CAClC;;AAGH;;;;;;;AAOG;AACH,IAAA,gBAAgB,CACd,GAAW,EACX,UAA+B,EAC/B,YAAoB,EACpB,OAAiD,EAAA;AAEjD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,EAC1C,6BAA6B,CAC9B;;AAGH;;;;;;;AAOG;AACH,IAAA,eAAe,CACb,GAAW,EACX,UAA+B,EAC/B,YAAoB,EACpB,OAAgD,EAAA;AAEhD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,EAC1C,4BAA4B,CAC7B;;AAGH;;;;;;;AAOG;AACH,IAAA,eAAe,CACb,GAAW,EACX,UAA+B,EAC/B,YAAoB,EACpB,OAAgD,EAAA;AAEhD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,EAC1C,4BAA4B,CAC7B;;AAGH;;;;;;AAMG;AACH,IAAA,UAAU,CACR,GAAW,EACX,MAAc,EACd,OAA2C,EAAA;AAE3C,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EACxB,uBAAuB,CACxB;;AAGH;;;;;;AAMG;AACH,IAAA,oBAAoB,CAClB,GAAW,EACX,MAAc,EACd,OAAqD,EAAA;AAErD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EACxB,iCAAiC,CAClC;;AAmCH;;;AAGG;IACH,UAAU,CACR,GAAG,IAcE,EAAA;AAEL,QAAA,IAAI,aAAuC;AAC3C,QAAA,IAAI,kBAAiD;AACrD,QAAA,IAAI,OAAO;AACX,QAAA,IACE,IAAI,CAAC,CAAC,CAAC,KAAK,kBAAkB;AAC9B,YAAA,IAAI,CAAC,CAAC,CAAC,KAAK,0BAA0B,EACtC;YACA,aAAa,GAAG,8BAA8B;AAC9C,YAAA,kBAAkB,GAAG;AACnB,gBAAA,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AACZ,gBAAA,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AACf,gBAAA,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;AACpB,gBAAA,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAChB,gBAAA,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;aACjB;AACD,YAAA,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;;AACZ,aAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;YACnC,aAAa,GAAG,4BAA4B;AAC5C,YAAA,kBAAkB,GAAG;AACnB,gBAAA,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AACZ,gBAAA,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AACf,gBAAA,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;AACpB,gBAAA,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAChB,gBAAA,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;aACjB;AACD,YAAA,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;;aACZ;YACL,MAAM,IAAI,SAAS,CACjB,CAAwD,qDAAA,EAAA,IAAI,CAAC,CAAC,CAAC,CAAI,EAAA,CAAA,CACpE;;AAEH,QAAA,kBAAkB,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE;QAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,aAAa,CAAC;;AAG5E;;;;;;AAMG;AACH,IAAA,uBAAuB,CACrB,GAAW,EACX,MAAc,EACd,OAAwD,EAAA;AAExD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EACxB,oCAAoC,CACrC;;AAGH;;;;;;;AAOG;AACH,IAAA,mBAAmB,CACjB,GAAW,EACX,KAAa,EACb,MAAc,EACd,OAAoD,EAAA;AAEpD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAC/B,gCAAgC,CACjC;;AAGH;;;;;;;AAOG;AACH,IAAA,cAAc,CACZ,GAAW,EACX,KAAa,EACb,MAAc,EACd,OAA+C,EAAA;AAE/C,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAC/B,2BAA2B,CAC5B;;AAEJ;AACD;AACA,MAAM,UAAU,GAAGC,qBAAU,CAAC,gBAAgB,CAAC,OAAO,cAAc,KAAK,CAAC;AAE1E,MAAM,mCAAmC,GAA6B;AACpE,IAAA,IAAI,EAAE,8BAA8B;AACpC,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,UAAU,EAAEG,WAAmB;YAC/B,aAAa,EAAEC,+CAAuD;AACvE,SAAA;AACF,KAAA;IACD,WAAW,EAAEC,WAAsB;AACnC,IAAA,eAAe,EAAE,CAACJ,UAAqB,CAAC;IACxC,aAAa,EAAE,CAACC,QAAmB,EAAEI,GAAc,CAAC;IACpD,gBAAgB,EAAE,CAACC,WAAsB,EAAEC,MAAiB,CAAC;AAC7D,IAAA,SAAS,EAAE,MAAM;IACjB,UAAU;CACX;AACD,MAAM,gCAAgC,GAA6B;AACjE,IAAA,IAAI,EAAE,mCAAmC;AACzC,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,UAAU,EAAEL,WAAmB;YAC/B,aAAa,EAAEM,4CAAoD;AACpE,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAAR,UAAqB;AACrB,QAAAS,QAAmB;AACnB,QAAAC,MAAiB;AAClB,KAAA;IACD,aAAa,EAAE,CAACT,QAAmB,EAAEI,GAAc,CAAC;AACpD,IAAA,gBAAgB,EAAE,CAACE,MAAiB,CAAC;IACrC,UAAU;CACX;AACD,MAAM,gCAAgC,GAA6B;AACjE,IAAA,IAAI,EAAE,gCAAgC;AACtC,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE;YACH,UAAU,EAAEI,mBAA2B;AACxC,SAAA;AACD,QAAA,OAAO,EAAE;YACP,UAAU,EAAET,WAAmB;YAC/B,aAAa,EAAEU,4CAAoD;AACpE,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAAZ,UAAqB;AACrB,QAAAa,MAAiB;AACjB,QAAAC,KAAgB;AAChB,QAAAC,uBAAkC;AAClC,QAAAC,MAAiB;AACjB,QAAAC,UAAqB;AACtB,KAAA;IACD,aAAa,EAAE,CAAChB,QAAmB,EAAEI,GAAc,CAAC;AACpD,IAAA,gBAAgB,EAAE,CAACa,OAAkB,CAAC;IACtC,UAAU;CACX;AACD,MAAM,wCAAwC,GAA6B;AACzE,IAAA,IAAI,EAAE,mCAAmC;AACzC,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,UAAU,EAAEhB,WAAmB;YAC/B,aAAa,EACXiB,oDAA4D;AAC/D,SAAA;AACF,KAAA;IACD,WAAW,EAAEC,cAAyB;AACtC,IAAA,eAAe,EAAE,CAACpB,UAAqB,CAAC;IACxC,aAAa,EAAE,CAACC,QAAmB,EAAEI,GAAc,CAAC;IACpD,gBAAgB,EAAE,CAACC,WAAsB,EAAEC,MAAiB,CAAC;AAC7D,IAAA,SAAS,EAAE,MAAM;IACjB,UAAU;CACX;AACD,MAAM,6BAA6B,GAA6B;AAC9D,IAAA,IAAI,EAAE,uBAAuB;AAC7B,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,UAAU,EAAEL,WAAmB;YAC/B,aAAa,EAAEmB,kCAA0C;AAC1D,SAAA;AACF,KAAA;IACD,WAAW,EAAEC,OAAkB;AAC/B,IAAA,eAAe,EAAE;AACf,QAAAtB,UAAqB;AACrB,QAAAuB,mBAA8B;AAC9B,QAAAC,MAAiB;AACjB,QAAAC,iBAA4B;AAC7B,KAAA;IACD,aAAa,EAAE,CAACxB,QAAmB,EAAEI,GAAc,CAAC;IACpD,gBAAgB,EAAE,CAACqB,YAAuB,EAAEC,OAAkB,CAAC;AAC/D,IAAA,SAAS,EAAE,QAAQ;IACnB,UAAU;CACX;AACD,MAAM,2BAA2B,GAA6B;AAC5D,IAAA,IAAI,EAAE,uBAAuB;AAC7B,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,UAAU,EAAEzB,WAAmB;YAC/B,aAAa,EAAEmB,kCAA0C;AAC1D,SAAA;AACF,KAAA;IACD,WAAW,EAAEO,QAAmB;AAChC,IAAA,eAAe,EAAE;AACf,QAAA5B,UAAqB;AACrB,QAAAuB,mBAA8B;AAC9B,QAAAC,MAAiB;AACjB,QAAAC,iBAA4B;AAC7B,KAAA;IACD,aAAa,EAAE,CAACxB,QAAmB,EAAEI,GAAc,CAAC;IACpD,gBAAgB,EAAE,CAACwB,YAAuB,EAAEC,OAAkB,CAAC;AAC/D,IAAA,SAAS,EAAE,MAAM;IACjB,UAAU;CACX;AACD,MAAM,4BAA4B,GAA6B;AAC7D,IAAA,IAAI,EAAE,4CAA4C;AAClD,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,UAAU,EAAE5B,WAAmB;YAC/B,aAAa,EAAE6B,wCAAgD;AAChE,SAAA;AACF,KAAA;IACD,eAAe,EAAE,CAAC/B,UAAqB,EAAEU,MAAiB,CAAC;AAC3D,IAAA,aAAa,EAAE,CAACT,QAAmB,EAAEI,GAAc,EAAE2B,YAAuB,CAAC;AAC7E,IAAA,gBAAgB,EAAE,CAACzB,MAAiB,CAAC;IACrC,UAAU;CACX;AACD,MAAM,6BAA6B,GAA6B;AAC9D,IAAA,IAAI,EAAE,4CAA4C;AAClD,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,aAAa,EAAE0B,yCAAiD;AACjE,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE,CAACjC,UAAqB,CAAC;AACxC,IAAA,aAAa,EAAE,CAACC,QAAmB,EAAEI,GAAc,EAAE2B,YAAuB,CAAC;IAC7E,UAAU;CACX;AACD,MAAM,oCAAoC,GAA6B;AACrE,IAAA,IAAI,EAAE,kDAAkD;AACxD,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,UAAU,EAAE9B,WAAmB;YAC/B,aAAa,EAAEgC,yCAAiD;AACjE,SAAA;AACF,KAAA;IACD,WAAW,EAAEZ,OAAkB;IAC/B,eAAe,EAAE,CAACtB,UAAqB,EAAEyB,iBAA4B,CAAC;AACtE,IAAA,aAAa,EAAE,CAACxB,QAAmB,EAAEI,GAAc,EAAE2B,YAAuB,CAAC;IAC7E,gBAAgB,EAAE,CAACN,YAAuB,EAAEC,OAAkB,CAAC;AAC/D,IAAA,SAAS,EAAE,QAAQ;IACnB,UAAU;CACX;AACD,MAAM,kCAAkC,GAA6B;AACnE,IAAA,IAAI,EAAE,kDAAkD;AACxD,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,UAAU,EAAEzB,WAAmB;YAC/B,aAAa,EAAEgC,yCAAiD;AACjE,SAAA;AACF,KAAA;IACD,WAAW,EAAEN,QAAmB;IAChC,eAAe,EAAE,CAAC5B,UAAqB,EAAEyB,iBAA4B,CAAC;AACtE,IAAA,aAAa,EAAE,CAACxB,QAAmB,EAAEI,GAAc,EAAE2B,YAAuB,CAAC;IAC7E,gBAAgB,EAAE,CAACH,YAAuB,EAAEC,OAAkB,CAAC;AAC/D,IAAA,SAAS,EAAE,MAAM;IACjB,UAAU;CACX;AACD,MAAM,0CAA0C,GAA6B;AAC3E,IAAA,IAAI,EAAE,mDAAmD;AACzD,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,UAAU,EAAE5B,WAAmB;YAC/B,aAAa,EACXiC,sDAA8D;AACjE,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE,CAACnC,UAAqB,CAAC;AACxC,IAAA,aAAa,EAAE,CAACC,QAAmB,EAAEI,GAAc,EAAE2B,YAAuB,CAAC;AAC7E,IAAA,gBAAgB,EAAE,CAACzB,MAAiB,CAAC;IACrC,UAAU;CACX;AACD,MAAM,wBAAwB,GAA6B;AACzD,IAAA,IAAI,EAAE,gCAAgC;AACtC,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,aAAa,EAAE6B,oCAA4C;AAC5D,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE,CAACpC,UAAqB,CAAC;AACxC,IAAA,aAAa,EAAE,CAACC,QAAmB,EAAEI,GAAc,EAAEgC,KAAgB,CAAC;IACtE,UAAU;CACX;AACD,MAAM,kCAAkC,GAA6B;AACnE,IAAA,IAAI,EAAE,kDAAkD;AACxD,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,UAAU,EAAEnC,WAAmB;YAC/B,aAAa,EAAEoC,8CAAsD;AACtE,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAAtC,UAAqB;AACrB,QAAAS,QAAmB;AACnB,QAAAC,MAAiB;AAClB,KAAA;AACD,IAAA,aAAa,EAAE,CAACT,QAAmB,EAAEI,GAAc,EAAEgC,KAAgB,CAAC;AACtE,IAAA,gBAAgB,EAAE,CAAC9B,MAAiB,CAAC;IACrC,UAAU;CACX;AACD,MAAM,+BAA+B,GAA6B;AAChE,IAAA,IAAI,EAAE,sCAAsC;AAC5C,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,UAAU,EAAEL,WAAmB;YAC/B,aAAa,EAAEqC,oCAA4C;AAC5D,SAAA;AACF,KAAA;IACD,WAAW,EAAEjB,OAAkB;AAC/B,IAAA,eAAe,EAAE;AACf,QAAAtB,UAAqB;AACrB,QAAAuB,mBAA8B;AAC9B,QAAAC,MAAiB;AACjB,QAAAC,iBAA4B;AAC7B,KAAA;AACD,IAAA,aAAa,EAAE,CAACxB,QAAmB,EAAEI,GAAc,EAAEgC,KAAgB,CAAC;IACtE,gBAAgB,EAAE,CAACX,YAAuB,EAAEC,OAAkB,CAAC;AAC/D,IAAA,SAAS,EAAE,QAAQ;IACnB,UAAU;CACX;AACD,MAAM,6BAA6B,GAA6B;AAC9D,IAAA,IAAI,EAAE,sCAAsC;AAC5C,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,UAAU,EAAEzB,WAAmB;YAC/B,aAAa,EAAEqC,oCAA4C;AAC5D,SAAA;AACF,KAAA;IACD,WAAW,EAAEX,QAAmB;AAChC,IAAA,eAAe,EAAE;AACf,QAAA5B,UAAqB;AACrB,QAAAuB,mBAA8B;AAC9B,QAAAC,MAAiB;AACjB,QAAAC,iBAA4B;AAC7B,KAAA;AACD,IAAA,aAAa,EAAE,CAACxB,QAAmB,EAAEI,GAAc,EAAEgC,KAAgB,CAAC;IACtE,gBAAgB,EAAE,CAACR,YAAuB,EAAEC,OAAkB,CAAC;AAC/D,IAAA,SAAS,EAAE,MAAM;IACjB,UAAU;CACX;AACD,MAAM,sCAAsC,GAA6B;AACvE,IAAA,IAAI,EAAE,2DAA2D;AACjE,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,UAAU,EAAE5B,WAAmB;YAC/B,aAAa,EAAEsC,kDAA0D;AAC1E,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE,CAACxC,UAAqB,CAAC;AACxC,IAAA,aAAa,EAAE;AACb,QAAAC,QAAmB;AACnB,QAAAI,GAAc;AACd,QAAA2B,YAAuB;AACvB,QAAAK,KAAgB;AACjB,KAAA;AACD,IAAA,gBAAgB,EAAE,CAAC9B,MAAiB,CAAC;IACrC,UAAU;CACX;AACD,MAAM,iCAAiC,GAA6B;AAClE,IAAA,IAAI,EAAE,2DAA2D;AACjE,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,UAAU,EAAEL,WAAmB;YAC/B,aAAa,EAAEuC,6CAAqD;AACrE,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE,CAACzC,UAAqB,CAAC;AACxC,IAAA,aAAa,EAAE;AACb,QAAAC,QAAmB;AACnB,QAAAI,GAAc;AACd,QAAA2B,YAAuB;AACvB,QAAAK,KAAgB;AACjB,KAAA;AACD,IAAA,gBAAgB,EAAE,CAAC9B,MAAiB,CAAC;IACrC,UAAU;CACX;AACD,MAAM,6BAA6B,GAA6B;AAC9D,IAAA,IAAI,EAAE,qEAAqE;AAC3E,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,UAAU,EAAEL,WAAmB;YAC/B,aAAa,EAAEwC,yCAAiD;AACjE,SAAA;AACF,KAAA;IACD,eAAe,EAAE,CAAC1C,UAAqB,EAAE2C,UAAqB,CAAC;AAC/D,IAAA,aAAa,EAAE;AACb,QAAA1C,QAAmB;AACnB,QAAAI,GAAc;AACd,QAAA2B,YAAuB;AACvB,QAAAY,UAAqB;AACtB,KAAA;AACD,IAAA,gBAAgB,EAAE,CAACrC,MAAiB,CAAC;IACrC,UAAU;CACX;AACD,MAAM,4BAA4B,GAA6B;AAC7D,IAAA,IAAI,EAAE,qEAAqE;AAC3E,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,aAAa,EAAEsC,wCAAgD;AAChE,SAAA;AACF,KAAA;IACD,eAAe,EAAE,CAAC7C,UAAqB,EAAE2C,UAAqB,CAAC;AAC/D,IAAA,aAAa,EAAE;AACb,QAAA1C,QAAmB;AACnB,QAAAI,GAAc;AACd,QAAA2B,YAAuB;AACvB,QAAAY,UAAqB;AACtB,KAAA;IACD,UAAU;CACX;AACD,MAAM,4BAA4B,GAA6B;AAC7D,IAAA,IAAI,EAAE,qEAAqE;AAC3E,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,UAAU,EAAE1C,WAAmB;YAC/B,aAAa,EAAE4C,wCAAgD;AAChE,SAAA;AACF,KAAA;IACD,eAAe,EAAE,CAAC9C,UAAqB,EAAE2C,UAAqB,CAAC;AAC/D,IAAA,aAAa,EAAE;AACb,QAAA1C,QAAmB;AACnB,QAAAI,GAAc;AACd,QAAA2B,YAAuB;AACvB,QAAAY,UAAqB;AACtB,KAAA;AACD,IAAA,gBAAgB,EAAE,CAACrC,MAAiB,CAAC;IACrC,UAAU;CACX;AACD,MAAM,uBAAuB,GAA6B;AACxD,IAAA,IAAI,EAAE,gCAAgC;AACtC,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,aAAa,EAAEwC,mCAA2C;AAC3D,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE,CAAC/C,UAAqB,CAAC;AACxC,IAAA,aAAa,EAAE,CAACC,QAAmB,EAAEI,GAAc,EAAE2C,OAAkB,CAAC;IACxE,UAAU;CACX;AACD,MAAM,iCAAiC,GAA6B;AAClE,IAAA,IAAI,EAAE,kDAAkD;AACxD,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,UAAU,EAAE9C,WAAmB;YAC/B,aAAa,EAAE+C,6CAAqD;AACrE,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAAjD,UAAqB;AACrB,QAAAS,QAAmB;AACnB,QAAAC,MAAiB;AAClB,KAAA;AACD,IAAA,aAAa,EAAE,CAACT,QAAmB,EAAEI,GAAc,EAAE2C,OAAkB,CAAC;AACxE,IAAA,gBAAgB,EAAE,CAACzC,MAAiB,CAAC;IACrC,UAAU;CACX;AACD,MAAM,8BAA8B,GAA6B;AAC/D,IAAA,IAAI,EAAE,sCAAsC;AAC5C,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,UAAU,EAAEL,WAAmB;YAC/B,aAAa,EAAEgD,mCAA2C;AAC3D,SAAA;AACF,KAAA;IACD,WAAW,EAAE5B,OAAkB;AAC/B,IAAA,eAAe,EAAE;AACf,QAAAtB,UAAqB;AACrB,QAAAwB,MAAiB;AACjB,QAAAC,iBAA4B;AAC7B,KAAA;AACD,IAAA,aAAa,EAAE,CAACxB,QAAmB,EAAEI,GAAc,EAAE2C,OAAkB,CAAC;IACxE,gBAAgB,EAAE,CAACtB,YAAuB,EAAEC,OAAkB,CAAC;AAC/D,IAAA,SAAS,EAAE,QAAQ;IACnB,UAAU;CACX;AACD,MAAM,4BAA4B,GAA6B;AAC7D,IAAA,IAAI,EAAE,sCAAsC;AAC5C,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,UAAU,EAAEzB,WAAmB;YAC/B,aAAa,EAAEgD,mCAA2C;AAC3D,SAAA;AACF,KAAA;IACD,WAAW,EAAEtB,QAAmB;AAChC,IAAA,eAAe,EAAE;AACf,QAAA5B,UAAqB;AACrB,QAAAwB,MAAiB;AACjB,QAAAC,iBAA4B;AAC7B,KAAA;AACD,IAAA,aAAa,EAAE,CAACxB,QAAmB,EAAEI,GAAc,EAAE2C,OAAkB,CAAC;IACxE,gBAAgB,EAAE,CAACnB,YAAuB,EAAEC,OAAkB,CAAC;AAC/D,IAAA,SAAS,EAAE,MAAM;IACjB,UAAU;CACX;AACD,MAAM,oCAAoC,GAA6B;AACrE,IAAA,IAAI,EAAE,uCAAuC;AAC7C,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,UAAU,EAAE5B,WAAmB;YAC/B,aAAa,EAAEiD,gDAAwD;AACxE,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE,CAACnD,UAAqB,CAAC;AACxC,IAAA,aAAa,EAAE,CAACC,QAAmB,EAAEI,GAAc,EAAE2C,OAAkB,CAAC;AACxE,IAAA,gBAAgB,EAAE,CAACzC,MAAiB,CAAC;IACrC,UAAU;CACX;AACD,MAAM,gCAAgC,GAA6B;AACjE,IAAA,IAAI,EAAE,+CAA+C;AACrD,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,UAAU,EAAEL,WAAmB;YAC/B,aAAa,EAAEkD,4CAAoD;AACpE,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE,CAACpD,UAAqB,CAAC;AACxC,IAAA,aAAa,EAAE;AACb,QAAAC,QAAmB;AACnB,QAAAI,GAAc;AACd,QAAAgC,KAAgB;AAChB,QAAAW,OAAkB;AACnB,KAAA;AACD,IAAA,gBAAgB,EAAE,CAACzC,MAAiB,CAAC;IACrC,UAAU;CACX;AACD,MAAM,2BAA2B,GAA6B;AAC5D,IAAA,IAAI,EAAE,+CAA+C;AACrD,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,OAAO,EAAE;YACP,UAAU,EAAEL,WAAmB;YAC/B,aAAa,EAAEmD,uCAA+C;AAC/D,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE,CAACrD,UAAqB,CAAC;AACxC,IAAA,aAAa,EAAE;AACb,QAAAC,QAAmB;AACnB,QAAAI,GAAc;AACd,QAAAgC,KAAgB;AAChB,QAAAW,OAAkB;AACnB,KAAA;AACD,IAAA,gBAAgB,EAAE,CAACzC,MAAiB,CAAC;IACrC,UAAU;CACX;;AC7uCD;;;;;;AAMG;AAYH;AACa,MAAA,eAAgB,SAAQR,qBAAU,CAAC,aAAa,CAAA;AAI3D;;;;AAIG;IACH,WAAY,CAAA,QAAgB,EAAE,OAAuC,EAAA;;AACnE,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC1B,YAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC;;;QAI9C,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,GAAG,EAAE;;AAEd,QAAA,MAAM,QAAQ,GAAkC;AAC9C,YAAA,kBAAkB,EAAE,iCAAiC;SACtD;QAED,MAAM,cAAc,GAAG,CAAA,yBAAA,CAA2B;QAClD,MAAM,eAAe,GACnB,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC;cACjD,GAAG,OAAO,CAAC,gBAAgB,CAAC,eAAe,CAAI,CAAA,EAAA,cAAc,CAAE;AACjE,cAAE,CAAA,EAAG,cAAc,CAAA,CAAE;AAEzB,QAAA,MAAM,mBAAmB,GACpB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,QAAQ,GACR,OAAO,CAAA,EAAA,EACV,gBAAgB,EAAE;gBAChB,eAAe;AAChB,aAAA,EACD,QAAQ,EAAE,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,CAAC,QAAQ,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,OAAO,CAAC,OAAO,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,YAAY,GAC9D;QACD,KAAK,CAAC,mBAAmB,CAAC;;AAE1B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;QAGxB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,YAAY;QACpD,IAAI,CAAC,SAAS,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC;AACxC,QAAA,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,UAAU,CAAC;;;AAI5C,IAAA,yBAAyB,CAAC,UAAmB,EAAA;QACnD,IAAI,CAAC,UAAU,EAAE;YACf;;AAEF,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA,IAAI,EAAE,wBAAwB;AAC9B,YAAA,MAAM,WAAW,CACf,OAAwB,EACxB,IAAiB,EAAA;gBAEjB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AACpC,gBAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,oBAAA,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;wBACjD,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE;4BACpC,OAAO,cAAc,GAAG,UAAU;;6BAC7B;AACL,4BAAA,OAAO,IAAI;;AAEf,qBAAC,CAAC;AACF,oBAAA,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;;AAEpD,gBAAA,OAAO,IAAI,CAAC,OAAO,CAAC;aACrB;SACF;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC;;AAK5C;;AChGD;AACA;AAIA;AACO,MAAM,aAAa,GAAGuD,+BAAmB,CAAC;AAC/C,IAAA,SAAS,EAAE,qBAAqB;AAChC,IAAA,WAAW,EAAE,mBAAmB;AACjC,CAAA,CAAC;;ACTF;AACA;AAIA,SAAS,aAAa,CAAC,GAAY,EAAA;AACjC,IAAA,QACE,OAAO,GAAG,KAAK,UAAU;SACxB,OAAO,GAAG,KAAK,QAAQ;AACtB,YAAA,GAAG,IAAI,IAAI;AACX,aAAC,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,aAAa;AACrC,gBAAA,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM;gBAC/B,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAEjC;AAmBgB,SAAA,oBAAoB,CAAC,OAAgB,EAAE,OAA4B,EAAA;IACjF,IAAI,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,WAAW,MAAK,YAAY,EAAE;AACzC,QAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC/B,YAAA,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC;;QAElD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE;;AACjD,SAAA,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE;QACjC,OAAO,EAAE,WAAW,EAAE,0BAA0B,EAAE,OAAO,EAAE,OAAO,EAAE;;SAC/D;AACL,QAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;;AAEhF;AAEA,SAAS,sBAAsB,CAAC,KAAc,EAAA;IAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AACzC,QAAA,OAAO,MAAM;;AAGf,IAAA,OAAO,KAAK;AACd;AAEA,SAAS,oBAAoB,CAAC,KAAc,EAAE,QAAgB,EAAA;IAC5D,IAAI,MAAM,GAAG,KAAK;AAElB,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;;QAElC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAClC,YAAA,MAAM,GAAG,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA,CAAG;;;AAI1B,IAAA,OAAO,MAAM;AACf;AAEA;;;;;;;;;;;AAWG;SACa,KAAK,CAAC,OAA6B,EAAE,GAAG,MAAiB,EAAA;IACvE,MAAM,OAAO,GAAG,EAAE;AAClB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACvC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE;AACrB,YAAA,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;gBACjD,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;;iBAC1C;AACL,gBAAA,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;;;;AAI/D,IAAA,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AACzB;;AC7FA;AACA;AA6KA;;AAEG;MACU,kBAAkB,CAAA;AAuB7B;;AAEG;AACH,IAAA,WAAA,CAAY,MAAuB,EAAE,OAAe,EAAE,SAAiB,EAAA;AAbvE;;AAEG;QACa,IAAU,CAAA,UAAA,GAAW,YAAY;AAW/C,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;;AAExB;;;;;AAKG;AACI,IAAA,MAAM,aAAa,CACxB,YAAoB,EACpB,UAAqC,EAAE,EAAA;AAEvC,QAAA,IAAI,QAA2C;AAC/C,QAAA,SAAS,UAAU,CAAC,WAAkC,EAAE,YAAqB,EAAA;YAC3E,QAAQ,GAAG,WAAW;AACtB,YAAA,IAAI,OAAO,CAAC,UAAU,EAAE;AACtB,gBAAA,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,YAAY,CAAC;;;AAIjD,QAAA,OAAO,aAAa,CAAC,QAAQ,CAC3B,oCAAoC,EACpC,OAAO,EACP,OAAO,cAAc,KAAI;YACvB,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAC9C,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,SAAS,EACd,YAAY,kCAEP,cAAc,CAAA,EAAA,EACjB,UAAU,EAAA,CAAA,CAEb;AAED,YAAA,IAAI,QAAS,CAAC,MAAM,KAAK,GAAG,EAAE;AAC5B,gBAAA,MAAM,IAAIC,0BAAS,CAAC,CAAkB,eAAA,EAAA,YAAY,iBAAiB,EAAE;AACnE,oBAAA,UAAU,EAAE,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,CAAE,MAAM;AAC5B,oBAAA,OAAO,EAAE,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,CAAE,OAAO;AAC1B,oBAAA,QAAQ,EAAE,QAAQ;AACnB,iBAAA,CAAC;;AAEN,SAAC,CACF;;AAGH;;;;;AAKG;AACI,IAAA,MAAM,gBAAgB,CAC3B,YAAoB,EACpB,UAAwC,EAAE,EAAA;QAE1C,OAAO,aAAa,CAAC,QAAQ,CAC3B,uCAAuC,EACvC,OAAO,EACP,CAAC,cAAc,KAAI;YACjB,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,yBAAyB,CACpD,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,SAAS,EACd,YAAY,EACZ,cAAc,CACf;AACH,SAAC,CACF;;AAGH;;;;AAIG;AACI,IAAA,MAAM,mBAAmB,CAAC,OAAA,GAA2C,EAAE,EAAA;QAC5E,OAAO,aAAa,CAAC,QAAQ,CAC3B,0CAA0C,EAC1C,OAAO,EACP,CAAC,cAAc,KAAI;AACjB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAChD,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,SAAS,EACd,cAAc,CACf;AACH,SAAC,CACF;;AAEH;;;;;AAKG;AACI,IAAA,MAAM,OAAO,CAAC,QAAgB,EAAE,UAA+B,EAAE,EAAA;QACtE,OAAO,aAAa,CAAC,QAAQ,CAAC,8BAA8B,EAAE,OAAO,EAAE,CAAC,cAAc,KAAI;YACxF,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CACzC,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,SAAS,EACd,QAAQ,EACR,cAAc,CACf;AACH,SAAC,CAAC;;AAGJ;;;;;AAKG;AACI,IAAA,MAAM,UAAU,CAAC,QAAgB,EAAE,UAAkC,EAAE,EAAA;QAC5E,OAAO,aAAa,CAAC,QAAQ,CAAC,iCAAiC,EAAE,OAAO,EAAE,CAAC,cAAc,KAAI;YAC3F,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAC9C,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,SAAS,EACd,QAAQ,EACR,cAAc,CACf;AACH,SAAC,CAAC;;AAyBG,IAAA,MAAM,SAAS,CACpB,OAAoC,EACpC,UAA6D,EAAE,EAAA;QAE/D,OAAO,aAAa,CAAC,QAAQ,CAAC,gCAAgC,EAAE,OAAO,EAAE,CAAC,cAAc,KAAI;AAC1F,YAAA,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC,OAAO,EAAE,cAAc,CAAC;YAC9E,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CACtC,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,SAAS,EACd,WAAW,EACX,OAAc,EACd,cAAc,CACf;AACH,SAAC,CAAC;;AAEL;;AC5WD;AACA;AAYA;;AAEG;AACI,MAAM,gCAAgC,GAAG,8BAA8B;AAE9E;;;;AAIG;AACG,SAAU,4BAA4B,CAAC,UAAyB,EAAA;IACpE,OAAO;AACL,QAAA,IAAI,EAAE,gCAAgC;QACtC,WAAW,CAAC,OAAwB,EAAE,IAAiB,EAAA;YACrD,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,GAAG,EAAE;gBAC/C,QAAQ,EAAE,OAAO,CAAC,GAAG;AACrB,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,SAAS,EAAE,OAAO;AACnB,aAAA,CAAC;YACF,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAU,OAAA,EAAA,WAAW,CAAE,CAAA,CAAC;AAC7D,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC;SACrB;KACF;AACH;;ACpCA;AACA;AAIA;;AAEG;AACI,MAAM,MAAM,GAAGC,2BAAkB,CAAC,YAAY,CAAC;;ACRtD;AACA;AASM,SAAU,qBAAqB,CAAC,IAAY,EAAA;IAChD,MAAM,MAAM,GAA6B,EAAE;IAE3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;QAC5B,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;QACpC,IAAI,aAAa,KAAK,CAAC,CAAC;YAAE;AAC1B,QAAA,MAAM,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,WAAW,EAAE;QACvD,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,GAAG,CAAC,CAAC;AAC5C,QAAA,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK;AACrB,KAAC,CAAC;AAEF,IAAA,IAAI,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC;AACrC,IAAA,IAAI,CAAC,YAAY;AAAE,QAAA,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC;IAC5E,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AACpC,QAAA,YAAY,GAAG,CAAA,QAAA,EAAW,YAAY,CAAA,CAAE;;AAE1C,IAAA,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC;AAC/B,IAAA,IAAI,CAAC,GAAG;AAAE,QAAA,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC;AACrE,IAAA,MAAM,UAAU,GAAG,IAAIC,2BAAkB,CAAC,GAAG,CAAC;AAC9C,IAAA,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;AAC3B,IAAA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC;AACjC,IAAA,GAAG,CAAC,IAAI,GAAG,IAAI;AACf,IAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE;AAC/B,IAAA,GAAG,CAAC,IAAI,GAAG,EAAE;AAEb,IAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE;AACjC;;ACpCA;AACA;AASO,MAAM,+BAA+B,GAAG,6BAA6B;AAE5E;;;;AAIG;AACG,SAAU,2BAA2B,CAAC,QAAgB,EAAA;AAC1D,IAAA,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC;IACvC,OAAO;AACL,QAAA,IAAI,EAAE,+BAA+B;QACrC,WAAW,CAAC,OAAwB,EAAE,IAAiB,EAAA;YACrD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;AACtC,YAAA,SAAS,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI;AACnC,YAAA,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,QAAQ,EAAE;AAClC,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC;SACrB;KACF;AACH;;AC5BA;AACA;AAgTA;;AAEG;MACU,sBAAsB,CAAA;AAyDjC,IAAA,WAAA,CACE,0BAAkC,EAClC,cAA8D,EAC9D,aAAsD,EACtD,IAAoC,EAAA;;AApDtC;;AAEG;QACa,IAAU,CAAA,UAAA,GAAW,YAAY;;AAoD/C,QAAA,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;AACtC,YAAA,IAAI,CAAC,QAAQ,GAAG,0BAA0B;AAC1C,YAAA,IAAI,CAAC,OAAO,GAAG,aAAuB;AACtC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,YAAA,IAAI,CAAC,UAAU,GAAG,cAAc;;aAC3B;AACL,YAAA,MAAM,QAAQ,GAAG,qBAAqB,CAAC,0BAA0B,CAAC;AAClE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ;AACjC,YAAA,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU;AACrC,YAAA,IAAI,CAAC,OAAO,GAAG,cAAwB;AACvC,YAAA,IAAI,CAAC,aAAa,GAAG,aAA8C;;AAGrE,QAAA,MAAM,uBAAuB,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACxB,IAAI,CAAC,aAAa,CAClB,EAAA;YACD,UAAU,EAAE,IAAI,CAAC,UAAU;AAC3B,YAAA,cAAc,EAAE;gBACd,4BAA4B,EAC1B,MAAA,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,cAAc,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,4BAA4B;gBAClE,gCAAgC,EAC9B,MAAA,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,cAAc,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,gCAAgC;gBACtE,MAAM,EAAE,MAAM,CAAC,IAAI;AACpB,aAAA;AACF,SAAA,CAAA,GACGC,0BAAiB,CAAC,IAAI,CAAC,UAAU;AACnC,cAAE;gBACE,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,gBAAgB,EAAE,CAAC,sCAAsC,CAAC;AAC3D;AACH,cAAE,EAAE,EACP;AAED,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,uBAAuB,CAAC;QAEzE,IAAI,CAACA,0BAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,4BAA4B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;;AAG/E,QAAA,IAAI,MAAA,IAAI,CAAC,aAAa,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,oBAAoB,EAAE;AAC5C,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAC5B,2BAA2B,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,0CAAE,oBAAoB,CAAC,CACtE;;;AAIL;;;AAGG;AACI,IAAA,KAAK,CAAC,SAAiB,EAAA;AAC5B,QAAA,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;;AA0B9D,IAAA,MAAM,SAAS,CACpB,OAAoC,EACpC,UAAyD,EAAE,EAAA;QAE3D,OAAO,aAAa,CAAC,QAAQ,CAAC,kCAAkC,EAAE,OAAO,EAAE,CAAC,cAAc,KAAI;AAC5F,YAAA,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC,OAAO,EAAE,cAAc,CAAC;AAC9E,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CACpC,IAAI,CAAC,OAAO,EACZ,WAAW,EACX,OAAc,EACd,cAAc,CACf;AACH,SAAC,CAAC;;IA0CG,MAAM,UAAU,CACrB,QAAgB,EAChB,OAAoC,EACpC,UAAgC,EAAE,EAAA;QAElC,OAAO,aAAa,CAAC,QAAQ,CAC3B,mCAAmC,EACnC,OAAO,EACP,CAAC,cAAc,KAAI;AACjB,YAAA,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC,OAAO,EAAE,cAAc,CAAC;YAC9E,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CACrC,IAAI,CAAC,OAAO,EACZ,QAAQ,EACR,WAAW,EACX,OAAc,EACd,cAAc,CACf;AACH,SAAC,CACF;;IA0CI,MAAM,gBAAgB,CAC3B,YAAoB,EACpB,OAAoC,EACpC,UAAsC,EAAE,EAAA;QAExC,OAAO,aAAa,CAAC,QAAQ,CAC3B,yCAAyC,EACzC,OAAO,EACP,CAAC,cAAc,KAAI;AACjB,YAAA,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC,OAAO,EAAE,cAAc,CAAC;YAE9E,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAC3C,IAAI,CAAC,OAAO,EACZ,YAAY,EACZ,WAAW,EACX,OAAc,EACd,cAAc,CACf;AACH,SAAC,CACF;;AAGH;;;;;AAKG;AACI,IAAA,MAAM,gBAAgB,CAC3B,YAAoB,EACpB,UAAgC,EAAE,EAAA;AAElC,QAAA,IAAI,QAA2C;AAC/C,QAAA,SAAS,UAAU,CAAC,WAAkC,EAAE,YAAqB,EAAA;YAC3E,QAAQ,GAAG,WAAW;AACtB,YAAA,IAAI,OAAO,CAAC,UAAU,EAAE;AACtB,gBAAA,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,YAAY,CAAC;;;AAIjD,QAAA,OAAO,aAAa,CAAC,QAAQ,CAC3B,yCAAyC,EACzC,OAAO,EACP,OAAO,cAAc,KAAI;AACvB,YAAA,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAClE,cAAc,CACjB,EAAA,EAAA,UAAU,IACV;AAEF,YAAA,IAAI,QAAS,CAAC,MAAM,KAAK,GAAG,EAAE;AAC5B,gBAAA,OAAO,IAAI;;AACN,iBAAA,IAAI,QAAS,CAAC,MAAM,KAAK,GAAG,EAAE;AACnC,gBAAA,OAAO,KAAK;;iBACP;;AAEL,gBAAA,MAAM,IAAIH,0BAAS,CAAC,QAAS,CAAC,UAAW,EAAE;AACzC,oBAAA,UAAU,EAAE,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,CAAE,MAAM;AAC5B,oBAAA,OAAO,EAAE,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,CAAE,OAAO;AAC1B,oBAAA,QAAQ,EAAE,QAAQ;AACnB,iBAAA,CAAC;;AAEN,SAAC,CACF;;AAGH;;;;;AAKG;AACI,IAAA,MAAM,eAAe,CAC1B,YAAoB,EACpB,UAAqC,EAAE,EAAA;QAEvC,OAAO,aAAa,CAAC,QAAQ,CAC3B,wCAAwC,EACxC,OAAO,EACP,CAAC,cAAc,KAAI;AACjB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,cAAc,CAAC;AAC1F,SAAC,CACF;;AAGH;;;;AAIG;AACI,IAAA,MAAM,mBAAmB,CAAC,OAAA,GAAyC,EAAE,EAAA;QAC1E,OAAO,aAAa,CAAC,QAAQ,CAC3B,4CAA4C,EAC5C,OAAO,EACP,CAAC,cAAc,KAAI;AACjB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC;AAChF,SAAC,CACF;;AAGH;;;;;AAKG;AACI,IAAA,MAAM,oBAAoB,CAC/B,MAAc,EACd,UAA0C,EAAE,EAAA;QAE5C,OAAO,aAAa,CAAC,QAAQ,CAC3B,6CAA6C,EAC7C,OAAO,EACP,CAAC,cAAc,KAAI;AACjB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC;AACzF,SAAC,CACF;;AAGH;;;;AAIG;AACI,IAAA,MAAM,uBAAuB,CAClC,MAAc,EACd,UAAqC,EAAE,EAAA;QAEvC,OAAO,aAAa,CAAC,QAAQ,CAC3B,gDAAgD,EAChD,OAAO,EACP,CAAC,cAAc,KAAI;AACjB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC;AAC5F,SAAC,CACF;;AAGH;;;;AAIG;AACI,IAAA,MAAM,6BAA6B,CACxC,YAAoB,EACpB,UAAqC,EAAE,EAAA;QAEvC,OAAO,aAAa,CAAC,QAAQ,CAC3B,sDAAsD,EACtD,OAAO,EACP,CAAC,cAAc,KAAI;AACjB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,6BAA6B,CACxD,IAAI,CAAC,OAAO,EACZ,YAAY,EACZ,cAAc,CACf;AACH,SAAC,CACF;;AAGH;;;;;AAKG;IACI,MAAM,sBAAsB,CACjC,MAAgB,EAChB,MAAc,EACd,UAAqC,EAAE,EAAA;QAEvC,OAAO,aAAa,CAAC,QAAQ,CAC3B,+CAA+C,EAC/C,OAAO,EACP,CAAC,cAAc,KAAI;YACjB,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,sBAAsB,CACjD,IAAI,CAAC,OAAO,EACZ;AACE,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,MAAM,EAAE,MAAM;aACO,EACvB,cAAc,CACf;AACH,SAAC,CACF;;AAGH;;;;;AAKG;IACI,MAAM,2BAA2B,CACtC,MAAgB,EAChB,MAAc,EACd,UAAwC,EAAE,EAAA;QAE1C,OAAO,aAAa,CAAC,QAAQ,CAC3B,oDAAoD,EACpD,OAAO,EACP,CAAC,cAAc,KAAI;YACjB,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,2BAA2B,CACtD,IAAI,CAAC,OAAO,EACZ;AACE,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,MAAM,EAAE,MAAM;aACY,EAC5B,cAAc,CACf;AACH,SAAC,CACF;;AAGH;;;;;AAKG;AACI,IAAA,MAAM,WAAW,CAAC,SAAiB,EAAE,UAA8B,EAAE,EAAA;AAC1E,QAAA,IAAI,QAA2C;AAC/C,QAAA,SAAS,UAAU,CAAC,WAAkC,EAAE,YAAqB,EAAA;YAC3E,QAAQ,GAAG,WAAW;AACtB,YAAA,IAAI,OAAO,CAAC,UAAU,EAAE;AACtB,gBAAA,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,YAAY,CAAC;;;AAIjD,QAAA,OAAO,aAAa,CAAC,QAAQ,CAC3B,oCAAoC,EACpC,OAAO,EACP,OAAO,cAAc,KAAI;AACvB,YAAA,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAC1D,cAAc,CACjB,EAAA,EAAA,UAAU,IACV;AAEF,YAAA,IAAI,QAAS,CAAC,MAAM,KAAK,GAAG,EAAE;AAC5B,gBAAA,OAAO,IAAI;;AACN,iBAAA,IAAI,QAAS,CAAC,MAAM,KAAK,GAAG,EAAE;AACnC,gBAAA,OAAO,KAAK;;iBACP;AACL,gBAAA,MAAM,IAAIA,0BAAS,CAAC,QAAS,CAAC,UAAW,EAAE;AACzC,oBAAA,UAAU,EAAE,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,CAAE,MAAM;AAC5B,oBAAA,OAAO,EAAE,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,CAAE,OAAO;AAC1B,oBAAA,QAAQ,EAAE,QAAQ;AACnB,iBAAA,CAAC;;AAEN,SAAC,CACF;;AAGH;;;;;AAKG;AACI,IAAA,MAAM,UAAU,CAAC,QAAgB,EAAE,UAA6B,EAAE,EAAA;AACvE,QAAA,IAAI,QAA2C;AAC/C,QAAA,SAAS,UAAU,CAAC,WAAkC,EAAE,YAAqB,EAAA;YAC3E,QAAQ,GAAG,WAAW;AACtB,YAAA,IAAI,OAAO,CAAC,UAAU,EAAE;AACtB,gBAAA,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,YAAY,CAAC;;;AAIjD,QAAA,OAAO,aAAa,CAAC,QAAQ,CAC3B,mCAAmC,EACnC,OAAO,EACP,OAAO,cAAc,KAAI;AACvB,YAAA,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACxD,cAAc,CACjB,EAAA,EAAA,UAAU,IACV;AAEF,YAAA,IAAI,QAAS,CAAC,MAAM,KAAK,GAAG,EAAE;AAC5B,gBAAA,OAAO,IAAI;;AACN,iBAAA,IAAI,QAAS,CAAC,MAAM,KAAK,GAAG,EAAE;AACnC,gBAAA,OAAO,KAAK;;iBACP;;AAEL,gBAAA,MAAM,IAAIA,0BAAS,CAAC,QAAS,CAAC,UAAW,EAAE;AACzC,oBAAA,UAAU,EAAE,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,CAAE,MAAM;AAC5B,oBAAA,OAAO,EAAE,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,CAAE,OAAO;AAC1B,oBAAA,QAAQ,EAAE,QAAQ;AACnB,iBAAA,CAAC;;AAEN,SAAC,CACF;;AAGH;;;;;;AAMG;IACI,MAAM,eAAe,CAC1B,YAAoB,EACpB,UAAsB,EACtB,UAAqC,EAAE,EAAA;QAEvC,OAAO,aAAa,CAAC,QAAQ,CAC3B,wCAAwC,EACxC,OAAO,EACP,CAAC,cAAc,KAAI;AACjB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAC1C,IAAI,CAAC,OAAO,EACZ,UAAU,EACV,YAAY,EACZ,cAAc,CACf;AACH,SAAC,CACF;;AAGH;;;;;;AAMG;IACI,MAAM,gBAAgB,CAC3B,YAAoB,EACpB,UAAsB,EACtB,UAAsC,EAAE,EAAA;QAExC,OAAO,aAAa,CAAC,QAAQ,CAC3B,yCAAyC,EACzC,OAAO,EACP,CAAC,cAAc,KAAI;AACjB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAC3C,IAAI,CAAC,OAAO,EACZ,UAAU,EACV,YAAY,EACZ,cAAc,CACf;AACH,SAAC,CACF;;AAGH;;;;;;AAMG;IACI,MAAM,aAAa,CACxB,YAAoB,EACpB,UAAsB,EACtB,UAAmC,EAAE,EAAA;AAErC,QAAA,IAAI,QAA2C;AAC/C,QAAA,SAAS,UAAU,CAAC,WAAkC,EAAE,YAAqB,EAAA;YAC3E,QAAQ,GAAG,WAAW;AACtB,YAAA,IAAI,OAAO,CAAC,UAAU,EAAE;AACtB,gBAAA,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,YAAY,CAAC;;;AAIjD,QAAA,OAAO,aAAa,CAAC,QAAQ,CAC3B,sCAAsC,EACtC,OAAO,EACP,OAAO,cAAc,KAAI;YACvB,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAC7E,cAAc,CACjB,EAAA,EAAA,UAAU,IACV;AAEF,YAAA,IAAI,QAAS,CAAC,MAAM,KAAK,GAAG,EAAE;AAC5B,gBAAA,OAAO,IAAI;;AACN,iBAAA,IAAI,QAAS,CAAC,MAAM,KAAK,GAAG,EAAE;AACnC,gBAAA,OAAO,KAAK;;iBACP;;AAEL,gBAAA,MAAM,IAAIA,0BAAS,CAAC,QAAS,CAAC,UAAW,EAAE;AACzC,oBAAA,UAAU,EAAE,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,CAAE,MAAM;AAC5B,oBAAA,OAAO,EAAE,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,CAAE,OAAO;AAC1B,oBAAA,QAAQ,EAAE,QAAQ;AACnB,iBAAA,CAAC;;AAEN,SAAC,CACF;;AAGH;;;;AAIG;AACI,IAAA,MAAM,oBAAoB,CAC/B,OAAA,GAAsC,EAAE,EAAA;AAExC,QAAA,OAAO,aAAa,CAAC,QAAQ,CAC3B,6CAA6C,EAC7C,OAAO,EACP,OAAO,cAAc,KAAI;YACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,GAAG;YAClF,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC;AACpE,YAAA,MAAM,cAAc,GAAG,cAAc,CAAC,cAAc;AACpD,YAAA,MAAM,UAAU,GACd,cAAc,IAAI,cAAc,KAAK;AACnC,kBAAE,CAAA,kBAAA,EAAqB,IAAI,CAAC,OAAO,CAAE;AACrC,kBAAE,CAAe,YAAA,EAAA,IAAI,CAAC,OAAO,EAAE;AACnC,YAAA,MAAM,OAAO,GAAG,cAAc,GAAG,UAAU;AAE3C,YAAA,IAAI,KAAa;AACjB,YAAA,IAAIG,0BAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACtC,gBAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAC9D,IAAI,CAAC,OAAO,EACZ,cAAc,CACf;AACD,gBAAA,KAAK,GAAG,QAAQ,CAAC,KAAM;;iBAClB;AACL,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG;AAC/B,gBAAA,MAAM,QAAQ,GAAG,QAAQ,GAAG,UAAU;AACtC,gBAAA,MAAM,OAAO,GAAG;AACd,oBAAA,IAAI,EAAE,cAAc,KAAA,IAAA,IAAd,cAAc,KAAd,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,cAAc,CAAE,KAAK;AAC3B,oBAAA,iBAAiB,EAAE,cAAc,KAAA,IAAA,IAAd,cAAc,KAAd,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,cAAc,CAAE,MAAM;iBAC1C;AACD,gBAAA,MAAM,WAAW,GAAoB;AACnC,oBAAA,QAAQ,EAAE,QAAQ;oBAClB,SAAS,EACP,CAAA,cAAc,KAAd,IAAA,IAAA,cAAc,uBAAd,cAAc,CAAE,uBAAuB,MAAK;AAC1C,0BAAE;AACF,0BAAE,CAAA,EAAG,cAAc,CAAC,uBAAuB,CAAG,CAAA,CAAA;AAClD,oBAAA,SAAS,EAAE,OAAO;iBACnB;gBACD,IAAI,cAAc,aAAd,cAAc,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAd,cAAc,CAAE,MAAM,EAAE;oBAC1B,WAAW,CAAC,OAAO,GAAG,cAAc,KAAA,IAAA,IAAd,cAAc,KAAd,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,cAAc,CAAE,MAAM;;gBAE9C,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,CAAC;;YAG7C,OAAO;gBACL,KAAK;gBACL,OAAO;AACP,gBAAA,GAAG,EAAE,CAAA,EAAG,OAAO,CAAA,cAAA,EAAiB,KAAK,CAAE,CAAA;aACxC;AACH,SAAC,CACF;;AAEJ;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../src/generated/models/mappers.ts","../src/generated/models/parameters.ts","../src/generated/operations/healthApi.ts","../src/generated/operations/webPubSub.ts","../src/generated/generatedClient.ts","../src/tracing.ts","../src/utils.ts","../src/groupClient.ts","../src/webPubSubCredentialPolicy.ts","../src/logger.ts","../src/parseConnectionString.ts","../src/reverseProxyPolicy.ts","../src/hubClient.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\n\nexport const AddToGroupsRequest: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"AddToGroupsRequest\",\n modelProperties: {\n groups: {\n serializedName: \"groups\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\",\n },\n },\n },\n },\n filter: {\n serializedName: \"filter\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const ErrorDetail: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ErrorDetail\",\n modelProperties: {\n code: {\n serializedName: \"code\",\n type: {\n name: \"String\",\n },\n },\n message: {\n serializedName: \"message\",\n type: {\n name: \"String\",\n },\n },\n target: {\n serializedName: \"target\",\n type: {\n name: \"String\",\n },\n },\n details: {\n serializedName: \"details\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ErrorDetail\",\n },\n },\n },\n },\n inner: {\n serializedName: \"inner\",\n type: {\n name: \"Composite\",\n className: \"InnerError\",\n },\n },\n },\n },\n};\n\nexport const InnerError: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"InnerError\",\n modelProperties: {\n code: {\n serializedName: \"code\",\n type: {\n name: \"String\",\n },\n },\n inner: {\n serializedName: \"inner\",\n type: {\n name: \"Composite\",\n className: \"InnerError\",\n },\n },\n },\n },\n};\n\nexport const ClientTokenResponse: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ClientTokenResponse\",\n modelProperties: {\n token: {\n serializedName: \"token\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const RemoveFromGroupsRequest: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RemoveFromGroupsRequest\",\n modelProperties: {\n groups: {\n serializedName: \"groups\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\",\n },\n },\n },\n },\n filter: {\n serializedName: \"filter\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const WebPubSubAddConnectionsToGroupsExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubAddConnectionsToGroupsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubCloseAllConnectionsExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubCloseAllConnectionsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubGenerateClientTokenExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubGenerateClientTokenExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubRemoveConnectionsFromGroupsExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubRemoveConnectionsFromGroupsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubSendToAllExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubSendToAllExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const WebPubSubCloseConnectionExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubCloseConnectionExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubConnectionExistsExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubConnectionExistsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubSendToConnectionExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubSendToConnectionExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubRemoveConnectionFromAllGroupsExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubRemoveConnectionFromAllGroupsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubGroupExistsExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubGroupExistsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubCloseGroupConnectionsExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubCloseGroupConnectionsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubSendToGroupExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubSendToGroupExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubRemoveConnectionFromGroupExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubRemoveConnectionFromGroupExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubAddConnectionToGroupExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubAddConnectionToGroupExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubRevokePermissionExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubRevokePermissionExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubCheckPermissionExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubCheckPermissionExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubGrantPermissionExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubGrantPermissionExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubUserExistsExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubUserExistsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const WebPubSubCloseUserConnectionsExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubCloseUserConnectionsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubSendToUserExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubSendToUserExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const WebPubSubRemoveUserFromAllGroupsExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubRemoveUserFromAllGroupsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubRemoveUserFromGroupExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubRemoveUserFromGroupExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n\nexport const WebPubSubAddUserToGroupExceptionHeaders: coreClient.CompositeMapper =\n {\n type: {\n name: \"Composite\",\n className: \"WebPubSubAddUserToGroupExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n };\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport {\n OperationURLParameter,\n OperationQueryParameter,\n OperationParameter,\n} from \"@azure/core-client\";\nimport {\n AddToGroupsRequest as AddToGroupsRequestMapper,\n RemoveFromGroupsRequest as RemoveFromGroupsRequestMapper,\n} from \"../models/mappers\";\n\nexport const endpoint: OperationURLParameter = {\n parameterPath: \"endpoint\",\n mapper: {\n serializedName: \"endpoint\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n skipEncoding: true,\n};\n\nexport const apiVersion: OperationQueryParameter = {\n parameterPath: \"apiVersion\",\n mapper: {\n defaultValue: \"2024-01-01\",\n isConstant: true,\n serializedName: \"api-version\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const contentType: OperationParameter = {\n parameterPath: [\"options\", \"contentType\"],\n mapper: {\n defaultValue: \"application/json\",\n isConstant: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const groupsToAdd: OperationParameter = {\n parameterPath: \"groupsToAdd\",\n mapper: AddToGroupsRequestMapper,\n};\n\nexport const accept: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/json\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const hub: OperationURLParameter = {\n parameterPath: \"hub\",\n mapper: {\n constraints: {\n Pattern: new RegExp(\"^[A-Za-z][A-Za-z0-9_`,.[\\\\]]{0,127}$\"),\n },\n serializedName: \"hub\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const excluded: OperationQueryParameter = {\n parameterPath: [\"options\", \"excluded\"],\n mapper: {\n serializedName: \"excluded\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\",\n },\n },\n },\n },\n collectionFormat: \"Multi\",\n};\n\nexport const reason: OperationQueryParameter = {\n parameterPath: [\"options\", \"reason\"],\n mapper: {\n serializedName: \"reason\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const accept1: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/json, text/json\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const userId: OperationQueryParameter = {\n parameterPath: [\"options\", \"userId\"],\n mapper: {\n serializedName: \"userId\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const roles: OperationQueryParameter = {\n parameterPath: [\"options\", \"roles\"],\n mapper: {\n serializedName: \"role\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\",\n },\n },\n },\n },\n collectionFormat: \"Multi\",\n};\n\nexport const expirationTimeInMinutes: OperationQueryParameter = {\n parameterPath: [\"options\", \"expirationTimeInMinutes\"],\n mapper: {\n defaultValue: 60,\n constraints: {\n InclusiveMinimum: 1,\n },\n serializedName: \"minutesToExpire\",\n type: {\n name: \"Number\",\n },\n },\n};\n\nexport const groups: OperationQueryParameter = {\n parameterPath: [\"options\", \"groups\"],\n mapper: {\n serializedName: \"group\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\",\n },\n },\n },\n },\n collectionFormat: \"Multi\",\n};\n\nexport const clientType: OperationQueryParameter = {\n parameterPath: [\"options\", \"clientType\"],\n mapper: {\n defaultValue: \"Default\",\n serializedName: \"clientType\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const groupsToRemove: OperationParameter = {\n parameterPath: \"groupsToRemove\",\n mapper: RemoveFromGroupsRequestMapper,\n};\n\nexport const contentType1: OperationParameter = {\n parameterPath: \"contentType\",\n mapper: {\n serializedName: \"Content-Type\",\n required: true,\n type: {\n name: \"Enum\",\n allowedValues: [\"application/json\", \"application/octet-stream\"],\n },\n },\n};\n\nexport const message: OperationParameter = {\n parameterPath: \"message\",\n mapper: {\n serializedName: \"message\",\n required: true,\n type: {\n name: \"Stream\",\n },\n },\n};\n\nexport const accept2: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/json\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const contentType2: OperationParameter = {\n parameterPath: \"contentType\",\n mapper: {\n defaultValue: \"text/plain\",\n isConstant: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const message1: OperationParameter = {\n parameterPath: \"message\",\n mapper: {\n serializedName: \"message\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const accept3: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/json\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const excludedConnections: OperationQueryParameter = {\n parameterPath: [\"options\", \"excludedConnections\"],\n mapper: {\n serializedName: \"excluded\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\",\n },\n },\n },\n },\n collectionFormat: \"Multi\",\n};\n\nexport const filter: OperationQueryParameter = {\n parameterPath: [\"options\", \"filter\"],\n mapper: {\n serializedName: \"filter\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const messageTtlSeconds: OperationQueryParameter = {\n parameterPath: [\"options\", \"messageTtlSeconds\"],\n mapper: {\n constraints: {\n InclusiveMaximum: 300,\n InclusiveMinimum: 0,\n },\n serializedName: \"messageTtlSeconds\",\n type: {\n name: \"Number\",\n },\n },\n};\n\nexport const connectionId: OperationURLParameter = {\n parameterPath: \"connectionId\",\n mapper: {\n constraints: {\n MinLength: 1,\n },\n serializedName: \"connectionId\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const group: OperationURLParameter = {\n parameterPath: \"group\",\n mapper: {\n constraints: {\n Pattern: new RegExp(\"^(?!\\\\s+$).+$\"),\n MaxLength: 1024,\n MinLength: 1,\n },\n serializedName: \"group\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const permission: OperationURLParameter = {\n parameterPath: \"permission\",\n mapper: {\n serializedName: \"permission\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const targetName: OperationQueryParameter = {\n parameterPath: [\"options\", \"targetName\"],\n mapper: {\n serializedName: \"targetName\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const userId1: OperationURLParameter = {\n parameterPath: \"userId\",\n mapper: {\n constraints: {\n MinLength: 1,\n },\n serializedName: \"userId\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { HealthApi } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { GeneratedClient } from \"../generatedClient\";\nimport { HealthApiGetServiceStatusOptionalParams } from \"../models\";\n\n/** Class containing HealthApi operations. */\nexport class HealthApiImpl implements HealthApi {\n private readonly client: GeneratedClient;\n\n /**\n * Initialize a new instance of the class HealthApi class.\n * @param client Reference to the service client\n */\n constructor(client: GeneratedClient) {\n this.client = client;\n }\n\n /**\n * Get service health status.\n * @param options The options parameters.\n */\n getServiceStatus(\n options?: HealthApiGetServiceStatusOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { options },\n getServiceStatusOperationSpec,\n );\n }\n}\n// Operation Specifications\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst getServiceStatusOperationSpec: coreClient.OperationSpec = {\n path: \"/api/health\",\n httpMethod: \"HEAD\",\n responses: { 200: {}, default: {} },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint],\n serializer,\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { WebPubSub } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as coreRestPipeline from \"@azure/core-rest-pipeline\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { GeneratedClient } from \"../generatedClient\";\nimport {\n AddToGroupsRequest,\n WebPubSubAddConnectionsToGroupsOptionalParams,\n WebPubSubCloseAllConnectionsOptionalParams,\n WebPubSubGenerateClientTokenOptionalParams,\n WebPubSubGenerateClientTokenResponse,\n RemoveFromGroupsRequest,\n WebPubSubRemoveConnectionsFromGroupsOptionalParams,\n ContentType,\n WebPubSubSendToAll$binaryOptionalParams,\n WebPubSubSendToAll$textOptionalParams,\n WebPubSubCloseConnectionOptionalParams,\n WebPubSubConnectionExistsOptionalParams,\n WebPubSubSendToConnection$binaryOptionalParams,\n WebPubSubSendToConnection$textOptionalParams,\n WebPubSubRemoveConnectionFromAllGroupsOptionalParams,\n WebPubSubGroupExistsOptionalParams,\n WebPubSubCloseGroupConnectionsOptionalParams,\n WebPubSubSendToGroup$binaryOptionalParams,\n WebPubSubSendToGroup$textOptionalParams,\n WebPubSubRemoveConnectionFromGroupOptionalParams,\n WebPubSubAddConnectionToGroupOptionalParams,\n WebPubSubPermission,\n WebPubSubRevokePermissionOptionalParams,\n WebPubSubCheckPermissionOptionalParams,\n WebPubSubGrantPermissionOptionalParams,\n WebPubSubUserExistsOptionalParams,\n WebPubSubCloseUserConnectionsOptionalParams,\n WebPubSubSendToUser$binaryOptionalParams,\n WebPubSubSendToUser$textOptionalParams,\n WebPubSubRemoveUserFromAllGroupsOptionalParams,\n WebPubSubRemoveUserFromGroupOptionalParams,\n WebPubSubAddUserToGroupOptionalParams,\n} from \"../models\";\n\n/** Class containing WebPubSub operations. */\nexport class WebPubSubImpl implements WebPubSub {\n private readonly client: GeneratedClient;\n\n /**\n * Initialize a new instance of the class WebPubSub class.\n * @param client Reference to the service client\n */\n constructor(client: GeneratedClient) {\n this.client = client;\n }\n\n /**\n * Add filtered connections to multiple groups.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param groupsToAdd Target groups and connection filter.\n * @param options The options parameters.\n */\n addConnectionsToGroups(\n hub: string,\n groupsToAdd: AddToGroupsRequest,\n options?: WebPubSubAddConnectionsToGroupsOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, groupsToAdd, options },\n addConnectionsToGroupsOperationSpec,\n );\n }\n\n /**\n * Close the connections in the hub.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param options The options parameters.\n */\n closeAllConnections(\n hub: string,\n options?: WebPubSubCloseAllConnectionsOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, options },\n closeAllConnectionsOperationSpec,\n );\n }\n\n /**\n * Generate token for the client to connect Azure Web PubSub service.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param options The options parameters.\n */\n generateClientToken(\n hub: string,\n options?: WebPubSubGenerateClientTokenOptionalParams,\n ): Promise<WebPubSubGenerateClientTokenResponse> {\n return this.client.sendOperationRequest(\n { hub, options },\n generateClientTokenOperationSpec,\n );\n }\n\n /**\n * Remove filtered connections from multiple groups.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param groupsToRemove Target groups and connection filter.\n * @param options The options parameters.\n */\n removeConnectionsFromGroups(\n hub: string,\n groupsToRemove: RemoveFromGroupsRequest,\n options?: WebPubSubRemoveConnectionsFromGroupsOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, groupsToRemove, options },\n removeConnectionsFromGroupsOperationSpec,\n );\n }\n\n /**\n * Broadcast content inside request body to all the connected client connections.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToAll(\n hub: string,\n contentType: ContentType,\n message: coreRestPipeline.RequestBodyType,\n options?: WebPubSubSendToAll$binaryOptionalParams,\n ): Promise<void>;\n /**\n * Broadcast content inside request body to all the connected client connections.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToAll(\n hub: string,\n contentType: \"text/plain\",\n message: string,\n options?: WebPubSubSendToAll$textOptionalParams,\n ): Promise<void>;\n /**\n * Broadcast content inside request body to all the connected client connections.\n * @param args Includes all the parameters for this operation.\n */\n sendToAll(\n ...args:\n | [\n string,\n ContentType,\n coreRestPipeline.RequestBodyType,\n WebPubSubSendToAll$binaryOptionalParams?,\n ]\n | [string, \"text/plain\", string, WebPubSubSendToAll$textOptionalParams?]\n ): Promise<void> {\n let operationSpec: coreClient.OperationSpec;\n let operationArguments: coreClient.OperationArguments;\n let options;\n if (\n args[1] === \"application/json\" ||\n args[1] === \"application/octet-stream\"\n ) {\n operationSpec = sendToAll$binaryOperationSpec;\n operationArguments = {\n hub: args[0],\n contentType: args[1],\n message: args[2],\n options: args[3],\n };\n options = args[3];\n } else if (args[1] === \"text/plain\") {\n operationSpec = sendToAll$textOperationSpec;\n operationArguments = {\n hub: args[0],\n contentType: args[1],\n message: args[2],\n options: args[3],\n };\n options = args[3];\n } else {\n throw new TypeError(\n `\"contentType\" must be a valid value but instead was \"${args[1]}\".`,\n );\n }\n operationArguments.options = options || {};\n return this.client.sendOperationRequest(operationArguments, operationSpec);\n }\n\n /**\n * Close the client connection.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param connectionId Target connection Id.\n * @param options The options parameters.\n */\n closeConnection(\n hub: string,\n connectionId: string,\n options?: WebPubSubCloseConnectionOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, connectionId, options },\n closeConnectionOperationSpec,\n );\n }\n\n /**\n * Check if the connection with the given connectionId exists.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param connectionId The connection Id.\n * @param options The options parameters.\n */\n connectionExists(\n hub: string,\n connectionId: string,\n options?: WebPubSubConnectionExistsOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, connectionId, options },\n connectionExistsOperationSpec,\n );\n }\n\n /**\n * Send content inside request body to the specific connection.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param connectionId The connection Id.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToConnection(\n hub: string,\n connectionId: string,\n contentType: ContentType,\n message: coreRestPipeline.RequestBodyType,\n options?: WebPubSubSendToConnection$binaryOptionalParams,\n ): Promise<void>;\n /**\n * Send content inside request body to the specific connection.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param connectionId The connection Id.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToConnection(\n hub: string,\n connectionId: string,\n contentType: \"text/plain\",\n message: string,\n options?: WebPubSubSendToConnection$textOptionalParams,\n ): Promise<void>;\n /**\n * Send content inside request body to the specific connection.\n * @param args Includes all the parameters for this operation.\n */\n sendToConnection(\n ...args:\n | [\n string,\n string,\n ContentType,\n coreRestPipeline.RequestBodyType,\n WebPubSubSendToConnection$binaryOptionalParams?,\n ]\n | [\n string,\n string,\n \"text/plain\",\n string,\n WebPubSubSendToConnection$textOptionalParams?,\n ]\n ): Promise<void> {\n let operationSpec: coreClient.OperationSpec;\n let operationArguments: coreClient.OperationArguments;\n let options;\n if (\n args[2] === \"application/json\" ||\n args[2] === \"application/octet-stream\"\n ) {\n operationSpec = sendToConnection$binaryOperationSpec;\n operationArguments = {\n hub: args[0],\n connectionId: args[1],\n contentType: args[2],\n message: args[3],\n options: args[4],\n };\n options = args[4];\n } else if (args[2] === \"text/plain\") {\n operationSpec = sendToConnection$textOperationSpec;\n operationArguments = {\n hub: args[0],\n connectionId: args[1],\n contentType: args[2],\n message: args[3],\n options: args[4],\n };\n options = args[4];\n } else {\n throw new TypeError(\n `\"contentType\" must be a valid value but instead was \"${args[2]}\".`,\n );\n }\n operationArguments.options = options || {};\n return this.client.sendOperationRequest(operationArguments, operationSpec);\n }\n\n /**\n * Remove a connection from all groups.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param connectionId Target connection Id.\n * @param options The options parameters.\n */\n removeConnectionFromAllGroups(\n hub: string,\n connectionId: string,\n options?: WebPubSubRemoveConnectionFromAllGroupsOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, connectionId, options },\n removeConnectionFromAllGroupsOperationSpec,\n );\n }\n\n /**\n * Check if there are any client connections inside the given group\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param options The options parameters.\n */\n groupExists(\n hub: string,\n group: string,\n options?: WebPubSubGroupExistsOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, group, options },\n groupExistsOperationSpec,\n );\n }\n\n /**\n * Close connections in the specific group.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param options The options parameters.\n */\n closeGroupConnections(\n hub: string,\n group: string,\n options?: WebPubSubCloseGroupConnectionsOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, group, options },\n closeGroupConnectionsOperationSpec,\n );\n }\n\n /**\n * Send content inside request body to a group of connections.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToGroup(\n hub: string,\n group: string,\n contentType: ContentType,\n message: coreRestPipeline.RequestBodyType,\n options?: WebPubSubSendToGroup$binaryOptionalParams,\n ): Promise<void>;\n /**\n * Send content inside request body to a group of connections.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToGroup(\n hub: string,\n group: string,\n contentType: \"text/plain\",\n message: string,\n options?: WebPubSubSendToGroup$textOptionalParams,\n ): Promise<void>;\n /**\n * Send content inside request body to a group of connections.\n * @param args Includes all the parameters for this operation.\n */\n sendToGroup(\n ...args:\n | [\n string,\n string,\n ContentType,\n coreRestPipeline.RequestBodyType,\n WebPubSubSendToGroup$binaryOptionalParams?,\n ]\n | [\n string,\n string,\n \"text/plain\",\n string,\n WebPubSubSendToGroup$textOptionalParams?,\n ]\n ): Promise<void> {\n let operationSpec: coreClient.OperationSpec;\n let operationArguments: coreClient.OperationArguments;\n let options;\n if (\n args[2] === \"application/json\" ||\n args[2] === \"application/octet-stream\"\n ) {\n operationSpec = sendToGroup$binaryOperationSpec;\n operationArguments = {\n hub: args[0],\n group: args[1],\n contentType: args[2],\n message: args[3],\n options: args[4],\n };\n options = args[4];\n } else if (args[2] === \"text/plain\") {\n operationSpec = sendToGroup$textOperationSpec;\n operationArguments = {\n hub: args[0],\n group: args[1],\n contentType: args[2],\n message: args[3],\n options: args[4],\n };\n options = args[4];\n } else {\n throw new TypeError(\n `\"contentType\" must be a valid value but instead was \"${args[2]}\".`,\n );\n }\n operationArguments.options = options || {};\n return this.client.sendOperationRequest(operationArguments, operationSpec);\n }\n\n /**\n * Remove a connection from the target group.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param connectionId Target connection Id.\n * @param options The options parameters.\n */\n removeConnectionFromGroup(\n hub: string,\n group: string,\n connectionId: string,\n options?: WebPubSubRemoveConnectionFromGroupOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, group, connectionId, options },\n removeConnectionFromGroupOperationSpec,\n );\n }\n\n /**\n * Add a connection to the target group.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param connectionId Target connection Id\n * @param options The options parameters.\n */\n addConnectionToGroup(\n hub: string,\n group: string,\n connectionId: string,\n options?: WebPubSubAddConnectionToGroupOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, group, connectionId, options },\n addConnectionToGroupOperationSpec,\n );\n }\n\n /**\n * Revoke permission for the connection.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param permission The permission: current supported actions are joinLeaveGroup and sendToGroup.\n * @param connectionId Target connection Id.\n * @param options The options parameters.\n */\n revokePermission(\n hub: string,\n permission: WebPubSubPermission,\n connectionId: string,\n options?: WebPubSubRevokePermissionOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, permission, connectionId, options },\n revokePermissionOperationSpec,\n );\n }\n\n /**\n * Check if a connection has permission to the specified action.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param permission The permission: current supported actions are joinLeaveGroup and sendToGroup.\n * @param connectionId Target connection Id.\n * @param options The options parameters.\n */\n checkPermission(\n hub: string,\n permission: WebPubSubPermission,\n connectionId: string,\n options?: WebPubSubCheckPermissionOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, permission, connectionId, options },\n checkPermissionOperationSpec,\n );\n }\n\n /**\n * Grant permission to the connection.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param permission The permission: current supported actions are joinLeaveGroup and sendToGroup.\n * @param connectionId Target connection Id.\n * @param options The options parameters.\n */\n grantPermission(\n hub: string,\n permission: WebPubSubPermission,\n connectionId: string,\n options?: WebPubSubGrantPermissionOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, permission, connectionId, options },\n grantPermissionOperationSpec,\n );\n }\n\n /**\n * Check if there are any client connections connected for the given user.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param userId Target user Id.\n * @param options The options parameters.\n */\n userExists(\n hub: string,\n userId: string,\n options?: WebPubSubUserExistsOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, userId, options },\n userExistsOperationSpec,\n );\n }\n\n /**\n * Close connections for the specific user.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param userId The user Id.\n * @param options The options parameters.\n */\n closeUserConnections(\n hub: string,\n userId: string,\n options?: WebPubSubCloseUserConnectionsOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, userId, options },\n closeUserConnectionsOperationSpec,\n );\n }\n\n /**\n * Send content inside request body to the specific user.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param userId The user Id.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToUser(\n hub: string,\n userId: string,\n contentType: ContentType,\n message: coreRestPipeline.RequestBodyType,\n options?: WebPubSubSendToUser$binaryOptionalParams,\n ): Promise<void>;\n /**\n * Send content inside request body to the specific user.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param userId The user Id.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToUser(\n hub: string,\n userId: string,\n contentType: \"text/plain\",\n message: string,\n options?: WebPubSubSendToUser$textOptionalParams,\n ): Promise<void>;\n /**\n * Send content inside request body to the specific user.\n * @param args Includes all the parameters for this operation.\n */\n sendToUser(\n ...args:\n | [\n string,\n string,\n ContentType,\n coreRestPipeline.RequestBodyType,\n WebPubSubSendToUser$binaryOptionalParams?,\n ]\n | [\n string,\n string,\n \"text/plain\",\n string,\n WebPubSubSendToUser$textOptionalParams?,\n ]\n ): Promise<void> {\n let operationSpec: coreClient.OperationSpec;\n let operationArguments: coreClient.OperationArguments;\n let options;\n if (\n args[2] === \"application/json\" ||\n args[2] === \"application/octet-stream\"\n ) {\n operationSpec = sendToUser$binaryOperationSpec;\n operationArguments = {\n hub: args[0],\n userId: args[1],\n contentType: args[2],\n message: args[3],\n options: args[4],\n };\n options = args[4];\n } else if (args[2] === \"text/plain\") {\n operationSpec = sendToUser$textOperationSpec;\n operationArguments = {\n hub: args[0],\n userId: args[1],\n contentType: args[2],\n message: args[3],\n options: args[4],\n };\n options = args[4];\n } else {\n throw new TypeError(\n `\"contentType\" must be a valid value but instead was \"${args[2]}\".`,\n );\n }\n operationArguments.options = options || {};\n return this.client.sendOperationRequest(operationArguments, operationSpec);\n }\n\n /**\n * Remove a user from all groups.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param userId Target user Id.\n * @param options The options parameters.\n */\n removeUserFromAllGroups(\n hub: string,\n userId: string,\n options?: WebPubSubRemoveUserFromAllGroupsOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, userId, options },\n removeUserFromAllGroupsOperationSpec,\n );\n }\n\n /**\n * Remove a user from the target group.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param userId Target user Id.\n * @param options The options parameters.\n */\n removeUserFromGroup(\n hub: string,\n group: string,\n userId: string,\n options?: WebPubSubRemoveUserFromGroupOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, group, userId, options },\n removeUserFromGroupOperationSpec,\n );\n }\n\n /**\n * Add a user to the target group.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param userId Target user Id.\n * @param options The options parameters.\n */\n addUserToGroup(\n hub: string,\n group: string,\n userId: string,\n options?: WebPubSubAddUserToGroupOptionalParams,\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, group, userId, options },\n addUserToGroupOperationSpec,\n );\n }\n}\n// Operation Specifications\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst addConnectionsToGroupsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/:addToGroups\",\n httpMethod: \"POST\",\n responses: {\n 200: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubAddConnectionsToGroupsExceptionHeaders,\n },\n },\n requestBody: Parameters.groupsToAdd,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub],\n headerParameters: [Parameters.contentType, Parameters.accept],\n mediaType: \"json\",\n serializer,\n};\nconst closeAllConnectionsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/:closeConnections\",\n httpMethod: \"POST\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubCloseAllConnectionsExceptionHeaders,\n },\n },\n queryParameters: [\n Parameters.apiVersion,\n Parameters.excluded,\n Parameters.reason,\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst generateClientTokenOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/:generateToken\",\n httpMethod: \"POST\",\n responses: {\n 200: {\n bodyMapper: Mappers.ClientTokenResponse,\n },\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubGenerateClientTokenExceptionHeaders,\n },\n },\n queryParameters: [\n Parameters.apiVersion,\n Parameters.userId,\n Parameters.roles,\n Parameters.expirationTimeInMinutes,\n Parameters.groups,\n Parameters.clientType,\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub],\n headerParameters: [Parameters.accept1],\n serializer,\n};\nconst removeConnectionsFromGroupsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/:removeFromGroups\",\n httpMethod: \"POST\",\n responses: {\n 200: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper:\n Mappers.WebPubSubRemoveConnectionsFromGroupsExceptionHeaders,\n },\n },\n requestBody: Parameters.groupsToRemove,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub],\n headerParameters: [Parameters.contentType, Parameters.accept],\n mediaType: \"json\",\n serializer,\n};\nconst sendToAll$binaryOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToAllExceptionHeaders,\n },\n },\n requestBody: Parameters.message,\n queryParameters: [\n Parameters.apiVersion,\n Parameters.excludedConnections,\n Parameters.filter,\n Parameters.messageTtlSeconds,\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub],\n headerParameters: [Parameters.contentType1, Parameters.accept2],\n mediaType: \"binary\",\n serializer,\n};\nconst sendToAll$textOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToAllExceptionHeaders,\n },\n },\n requestBody: Parameters.message1,\n queryParameters: [\n Parameters.apiVersion,\n Parameters.excludedConnections,\n Parameters.filter,\n Parameters.messageTtlSeconds,\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub],\n headerParameters: [Parameters.contentType2, Parameters.accept3],\n mediaType: \"text\",\n serializer,\n};\nconst closeConnectionOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/connections/{connectionId}\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubCloseConnectionExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion, Parameters.reason],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.connectionId],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst connectionExistsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/connections/{connectionId}\",\n httpMethod: \"HEAD\",\n responses: {\n 200: {},\n 404: {},\n default: {\n headersMapper: Mappers.WebPubSubConnectionExistsExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.connectionId],\n serializer,\n};\nconst sendToConnection$binaryOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/connections/{connectionId}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToConnectionExceptionHeaders,\n },\n },\n requestBody: Parameters.message,\n queryParameters: [Parameters.apiVersion, Parameters.messageTtlSeconds],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.connectionId],\n headerParameters: [Parameters.contentType1, Parameters.accept2],\n mediaType: \"binary\",\n serializer,\n};\nconst sendToConnection$textOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/connections/{connectionId}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToConnectionExceptionHeaders,\n },\n },\n requestBody: Parameters.message1,\n queryParameters: [Parameters.apiVersion, Parameters.messageTtlSeconds],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.connectionId],\n headerParameters: [Parameters.contentType2, Parameters.accept3],\n mediaType: \"text\",\n serializer,\n};\nconst removeConnectionFromAllGroupsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/connections/{connectionId}/groups\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper:\n Mappers.WebPubSubRemoveConnectionFromAllGroupsExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.connectionId],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst groupExistsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/groups/{group}\",\n httpMethod: \"HEAD\",\n responses: {\n 200: {},\n 404: {},\n default: {\n headersMapper: Mappers.WebPubSubGroupExistsExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.group],\n serializer,\n};\nconst closeGroupConnectionsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/groups/{group}/:closeConnections\",\n httpMethod: \"POST\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubCloseGroupConnectionsExceptionHeaders,\n },\n },\n queryParameters: [\n Parameters.apiVersion,\n Parameters.excluded,\n Parameters.reason,\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.group],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst sendToGroup$binaryOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/groups/{group}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToGroupExceptionHeaders,\n },\n },\n requestBody: Parameters.message,\n queryParameters: [\n Parameters.apiVersion,\n Parameters.excludedConnections,\n Parameters.filter,\n Parameters.messageTtlSeconds,\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.group],\n headerParameters: [Parameters.contentType1, Parameters.accept2],\n mediaType: \"binary\",\n serializer,\n};\nconst sendToGroup$textOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/groups/{group}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToGroupExceptionHeaders,\n },\n },\n requestBody: Parameters.message1,\n queryParameters: [\n Parameters.apiVersion,\n Parameters.excludedConnections,\n Parameters.filter,\n Parameters.messageTtlSeconds,\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.group],\n headerParameters: [Parameters.contentType2, Parameters.accept3],\n mediaType: \"text\",\n serializer,\n};\nconst removeConnectionFromGroupOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/groups/{group}/connections/{connectionId}\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubRemoveConnectionFromGroupExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.connectionId,\n Parameters.group,\n ],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst addConnectionToGroupOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/groups/{group}/connections/{connectionId}\",\n httpMethod: \"PUT\",\n responses: {\n 200: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubAddConnectionToGroupExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.connectionId,\n Parameters.group,\n ],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst revokePermissionOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/permissions/{permission}/connections/{connectionId}\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubRevokePermissionExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion, Parameters.targetName],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.connectionId,\n Parameters.permission,\n ],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst checkPermissionOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/permissions/{permission}/connections/{connectionId}\",\n httpMethod: \"HEAD\",\n responses: {\n 200: {},\n 404: {},\n default: {\n headersMapper: Mappers.WebPubSubCheckPermissionExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion, Parameters.targetName],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.connectionId,\n Parameters.permission,\n ],\n serializer,\n};\nconst grantPermissionOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/permissions/{permission}/connections/{connectionId}\",\n httpMethod: \"PUT\",\n responses: {\n 200: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubGrantPermissionExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion, Parameters.targetName],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.connectionId,\n Parameters.permission,\n ],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst userExistsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}\",\n httpMethod: \"HEAD\",\n responses: {\n 200: {},\n 404: {},\n default: {\n headersMapper: Mappers.WebPubSubUserExistsExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.userId1],\n serializer,\n};\nconst closeUserConnectionsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}/:closeConnections\",\n httpMethod: \"POST\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubCloseUserConnectionsExceptionHeaders,\n },\n },\n queryParameters: [\n Parameters.apiVersion,\n Parameters.excluded,\n Parameters.reason,\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.userId1],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst sendToUser$binaryOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToUserExceptionHeaders,\n },\n },\n requestBody: Parameters.message,\n queryParameters: [\n Parameters.apiVersion,\n Parameters.filter,\n Parameters.messageTtlSeconds,\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.userId1],\n headerParameters: [Parameters.contentType1, Parameters.accept2],\n mediaType: \"binary\",\n serializer,\n};\nconst sendToUser$textOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToUserExceptionHeaders,\n },\n },\n requestBody: Parameters.message1,\n queryParameters: [\n Parameters.apiVersion,\n Parameters.filter,\n Parameters.messageTtlSeconds,\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.userId1],\n headerParameters: [Parameters.contentType2, Parameters.accept3],\n mediaType: \"text\",\n serializer,\n};\nconst removeUserFromAllGroupsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}/groups\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubRemoveUserFromAllGroupsExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.userId1],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst removeUserFromGroupOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}/groups/{group}\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubRemoveUserFromGroupExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.group,\n Parameters.userId1,\n ],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst addUserToGroupOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}/groups/{group}\",\n httpMethod: \"PUT\",\n responses: {\n 200: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubAddUserToGroupExceptionHeaders,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.group,\n Parameters.userId1,\n ],\n headerParameters: [Parameters.accept],\n serializer,\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\nimport {\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n} from \"@azure/core-rest-pipeline\";\nimport { HealthApiImpl, WebPubSubImpl } from \"./operations\";\nimport { HealthApi, WebPubSub } from \"./operationsInterfaces\";\nimport { GeneratedClientOptionalParams } from \"./models\";\n\n/** @internal */\nexport class GeneratedClient extends coreClient.ServiceClient {\n endpoint: string;\n apiVersion: string;\n\n /**\n * Initializes a new instance of the GeneratedClient class.\n * @param endpoint HTTP or HTTPS endpoint for the Web PubSub service instance.\n * @param options The parameter options\n */\n constructor(endpoint: string, options?: GeneratedClientOptionalParams) {\n if (endpoint === undefined) {\n throw new Error(\"'endpoint' cannot be null\");\n }\n\n // Initializing default values for options\n if (!options) {\n options = {};\n }\n const defaults: GeneratedClientOptionalParams = {\n requestContentType: \"application/json; charset=utf-8\",\n };\n\n const packageDetails = `azsdk-js-web-pubsub/1.1.3`;\n const userAgentPrefix =\n options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`\n : `${packageDetails}`;\n\n const optionsWithDefaults = {\n ...defaults,\n ...options,\n userAgentOptions: {\n userAgentPrefix,\n },\n endpoint: options.endpoint ?? options.baseUri ?? \"{endpoint}\",\n };\n super(optionsWithDefaults);\n // Parameter assignments\n this.endpoint = endpoint;\n\n // Assigning values to Constant parameters\n this.apiVersion = options.apiVersion || \"2024-01-01\";\n this.healthApi = new HealthApiImpl(this);\n this.webPubSub = new WebPubSubImpl(this);\n this.addCustomApiVersionPolicy(options.apiVersion);\n }\n\n /** A function that adds a policy that sets the api-version (or equivalent) to reflect the library version. */\n private addCustomApiVersionPolicy(apiVersion?: string) {\n if (!apiVersion) {\n return;\n }\n const apiVersionPolicy = {\n name: \"CustomApiVersionPolicy\",\n async sendRequest(\n request: PipelineRequest,\n next: SendRequest,\n ): Promise<PipelineResponse> {\n const param = request.url.split(\"?\");\n if (param.length > 1) {\n const newParams = param[1].split(\"&\").map((item) => {\n if (item.indexOf(\"api-version\") > -1) {\n return \"api-version=\" + apiVersion;\n } else {\n return item;\n }\n });\n request.url = param[0] + \"?\" + newParams.join(\"&\");\n }\n return next(request);\n },\n };\n this.pipeline.addPolicy(apiVersionPolicy);\n }\n\n healthApi: HealthApi;\n webPubSub: WebPubSub;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createTracingClient } from \"@azure/core-tracing\";\n\n/** @internal */\nexport const tracingClient = createTracingClient({\n namespace: \"Microsoft.WebPubSub\",\n packageName: \"@azure/web-pubsub\",\n});\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { RequestBodyType } from \"@azure/core-rest-pipeline\";\n\nfunction isRequestBody(obj: unknown): obj is RequestBodyType {\n return (\n typeof obj === \"function\" ||\n (typeof obj === \"object\" &&\n obj != null &&\n (obj.constructor.name === \"ArrayBuffer\" ||\n obj.constructor.name === \"Blob\" ||\n ArrayBuffer.isView(obj)))\n );\n}\n\nexport interface TextPlainPayload {\n contentType: \"text/plain\";\n payload: string;\n}\n\nexport interface JsonPayload {\n contentType: \"application/json\";\n payload: string;\n}\n\nexport interface BinaryPayload {\n contentType: \"application/octet-stream\";\n payload: RequestBodyType;\n}\n\nexport type Payload = TextPlainPayload | JsonPayload | BinaryPayload;\n\nexport function getPayloadForMessage(message: unknown, options: Record<string, any>): Payload {\n if (options?.contentType === \"text/plain\") {\n if (typeof message !== \"string\") {\n throw new TypeError(\"Message must be a string.\");\n }\n return { contentType: \"text/plain\", payload: message };\n } else if (isRequestBody(message)) {\n return { contentType: \"application/octet-stream\", payload: message };\n } else {\n return { contentType: \"application/json\", payload: JSON.stringify(message) };\n }\n}\n\nfunction formatNullAndUndefined(input: unknown): string | unknown {\n if (input === null || input === undefined) {\n return \"null\";\n }\n\n return input;\n}\n\nfunction escapeQuotesIfString(input: unknown, previous: string): string | unknown {\n let result = input;\n\n if (typeof input === \"string\") {\n result = input.replace(/'/g, \"''\");\n // check if we need to escape this literal\n if (!previous.trim().endsWith(\"'\")) {\n result = `'${result}'`;\n }\n }\n\n return result;\n}\n\n/**\n * Escapes an odata filter expression to avoid errors with quoting string literals.\n * Example usage:\n * ```ts\n * const userId = \"vic's\";\n * const anonymous = null;\n * const length = 3\n * const filter = odata`userId eq ${anonymous} or userId eq ${userId} or length(userId) > ${length}`;\n * ```\n * @param strings - Array of strings for the expression\n * @param values - Array of values for the expression\n */\nexport function odata(strings: TemplateStringsArray, ...values: unknown[]): string {\n const results = [];\n for (let i = 0; i < strings.length; i++) {\n results.push(strings[i]);\n if (i < values.length) {\n if (values[i] === null || values[i] === undefined) {\n results.push(formatNullAndUndefined(values[i]));\n } else {\n results.push(escapeQuotesIfString(values[i], strings[i]));\n }\n }\n }\n return results.join(\"\");\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n CommonClientOptions,\n FullOperationResponse,\n OperationOptions,\n} from \"@azure/core-client\";\nimport type { RequestBodyType } from \"@azure/core-rest-pipeline\";\nimport { RestError } from \"@azure/core-rest-pipeline\";\nimport type { GeneratedClient } from \"./generated/generatedClient\";\nimport { tracingClient } from \"./tracing\";\nimport { getPayloadForMessage } from \"./utils\";\nimport type { JSONTypes } from \"./hubClient\";\n\n/**\n * Options for constructing a GroupAdmin client.\n */\nexport interface GroupAdminClientOptions extends CommonClientOptions {}\n\n/**\n * Options for adding a connection to a group.\n */\nexport interface GroupAddConnectionOptions extends OperationOptions {}\n\n/**\n * Options for adding a user to a group.\n */\nexport interface GroupAddUserOptions extends OperationOptions {}\n\n/**\n * Options for checking if a user is in a group\n */\nexport interface GroupHasUserOptions extends OperationOptions {}\n\n/**\n * Options for removing a user from a group\n */\nexport interface GroupRemoveUserOptions extends OperationOptions {}\n\n/**\n * Options for removing a connection from a group\n */\nexport interface GroupRemoveConnectionOptions extends OperationOptions {}\n\n/**\n * Options for sending messages to a group.\n */\nexport interface GroupSendToAllOptions extends OperationOptions {\n /**\n * Connection ids to exclude from receiving this message.\n */\n excludedConnections?: string[];\n /**\n * The filter syntax to filter out the connections to send the messages to following OData filter syntax.\n * Examples:\n * * Exclude connections from `user1` and `user2`: `userId ne 'user1' and userId ne 'user2'`\n * * Exclude connections in `group1`: `not('group1' in groups)`\n * Details about `filter` syntax please see [OData filter syntax for Azure Web PubSub](https://aka.ms/awps/filter-syntax).\n */\n filter?: string;\n /**\n * The time-to-live (TTL) value in seconds for messages sent to the service.\n * 0 is the default value, which means the message never expires.\n * 300 is the maximum value.\n * If this parameter is non-zero, messages that are not consumed by the client within the specified TTL will be dropped by the service.\n * This parameter can help when the client's bandwidth is limited.\n */\n messageTtlSeconds?: number;\n}\n\n/**\n * Options for sending text messages to a group..\n */\nexport interface GroupSendTextToAllOptions extends GroupSendToAllOptions {\n /**\n * The content will be sent to the clients in plain text.\n */\n contentType: \"text/plain\";\n}\n\n/**\n * Options for closing all connections to a group.\n */\nexport interface GroupCloseAllConnectionsOptions extends OperationOptions {\n /**\n * Reason the connection is being closed.\n */\n reason?: string;\n}\n\nexport interface WebPubSubGroup {\n /**\n * The name of this group\n */\n readonly groupName: string;\n\n /**\n * The name of the hub this group belongs to\n */\n readonly hubName: string;\n\n /**\n * The Web PubSub API version being used by this client\n */\n readonly apiVersion: string;\n\n /**\n * The Web PubSub endpoint this client is connected to\n */\n readonly endpoint: string;\n\n /**\n * Add a specific connection to this group\n *\n * @param connectionId - The connection id to add to this group\n * @param options - Additional options\n */\n addConnection(connectionId: string, options?: GroupAddConnectionOptions): Promise<void>;\n\n /**\n * Remove a specific connection from this group\n *\n * @param connectionId - The connection id to remove from this group\n * @param options - Additional options\n */\n removeConnection(connectionId: string, options?: GroupRemoveConnectionOptions): Promise<void>;\n\n /**\n * Close all connections to the group\n *\n * @param options - Additional options\n */\n closeAllConnections(options?: GroupCloseAllConnectionsOptions): Promise<void>;\n\n /**\n * Add a user to this group\n *\n * @param username - The user name to add\n * @param options - Additional options\n */\n addUser(username: string, options?: GroupAddUserOptions): Promise<void>;\n\n /**\n * Remove a user from this group\n *\n * @param username - The user name to remove\n * @param options - Additional options\n */\n removeUser(username: string, options?: GroupRemoveUserOptions): Promise<void>;\n\n /**\n * Send a text message to every connection in this group\n *\n * @param message - The message to send\n * @param options - Additional options\n */\n sendToAll(message: string, options: GroupSendTextToAllOptions): Promise<void>;\n /**\n * Send a json message to every connection in this group\n *\n * @param message - The message to send\n * @param options - Additional options\n */\n sendToAll(message: JSONTypes, options?: GroupSendToAllOptions): Promise<void>;\n /**\n * Send a binary message to every connection in this group\n *\n * @param message - The binary message to send\n * @param options - Additional options\n */\n sendToAll(message: RequestBodyType, options?: GroupSendToAllOptions): Promise<void>;\n}\n\n/**\n * @hidden\n */\nexport class WebPubSubGroupImpl implements WebPubSubGroup {\n private client!: GeneratedClient;\n\n /**\n * The name of this group\n */\n public readonly groupName: string;\n\n /**\n * The name of the hub this group belongs to\n */\n public readonly hubName: string;\n\n /**\n * The Web PubSub API version being used by this client\n */\n public readonly apiVersion: string = \"2020-10-01\";\n\n /**\n * The Web PubSub endpoint this client is connected to\n */\n public endpoint!: string;\n\n /**\n * @internal\n */\n constructor(client: GeneratedClient, hubName: string, groupName: string) {\n this.client = client;\n this.groupName = groupName;\n this.hubName = hubName;\n }\n /**\n * Add a specific connection to this group\n *\n * @param connectionId - The connection id to add to this group\n * @param options - Additional options\n */\n public async addConnection(\n connectionId: string,\n options: GroupAddConnectionOptions = {},\n ): Promise<void> {\n let response: FullOperationResponse | undefined;\n function onResponse(rawResponse: FullOperationResponse, flatResponse: unknown): void {\n response = rawResponse;\n if (options.onResponse) {\n options.onResponse(rawResponse, flatResponse);\n }\n }\n\n return tracingClient.withSpan(\n \"WebPubSubGroupClient.addConnection\",\n options,\n async (updatedOptions) => {\n await this.client.webPubSub.addConnectionToGroup(\n this.hubName,\n this.groupName,\n connectionId,\n {\n ...updatedOptions,\n onResponse,\n },\n );\n\n if (response!.status === 404) {\n throw new RestError(`Connection id '${connectionId}' doesn't exist`, {\n statusCode: response?.status,\n request: response?.request,\n response: response,\n });\n }\n },\n );\n }\n\n /**\n * Remove a specific connection from this group\n *\n * @param connectionId - The connection id to remove from this group\n * @param options - Additional options\n */\n public async removeConnection(\n connectionId: string,\n options: GroupRemoveConnectionOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubGroupClient.removeConnection\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.removeConnectionFromGroup(\n this.hubName,\n this.groupName,\n connectionId,\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Close all connections to this group\n *\n * @param options - Additional options\n */\n public async closeAllConnections(options: GroupCloseAllConnectionsOptions = {}): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubGroupClient.closeAllConnections\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.closeGroupConnections(\n this.hubName,\n this.groupName,\n updatedOptions,\n );\n },\n );\n }\n /**\n * Add a user to this group\n *\n * @param username - The user name to add\n * @param options - Additional options\n */\n public async addUser(username: string, options: GroupAddUserOptions = {}): Promise<void> {\n return tracingClient.withSpan(\"WebPubSubGroupClient.addUser\", options, (updatedOptions) => {\n return this.client.webPubSub.addUserToGroup(\n this.hubName,\n this.groupName,\n username,\n updatedOptions,\n );\n });\n }\n\n /**\n * Remove a user from this group\n *\n * @param username - The user name to remove\n * @param options - Additional options\n */\n public async removeUser(username: string, options: GroupRemoveUserOptions = {}): Promise<void> {\n return tracingClient.withSpan(\"WebPubSubGroupClient.removeUser\", options, (updatedOptions) => {\n return this.client.webPubSub.removeUserFromGroup(\n this.hubName,\n this.groupName,\n username,\n updatedOptions,\n );\n });\n }\n\n /**\n * Send a text message to every connection in this group\n *\n * @param message - The message to send\n * @param options - Additional options\n */\n public async sendToAll(message: string, options: GroupSendTextToAllOptions): Promise<void>;\n /**\n * Send a json message to every connection in this group\n *\n * @param message - The message to send\n * @param options - Additional options\n */\n public async sendToAll(message: JSONTypes, options?: GroupSendToAllOptions): Promise<void>;\n /**\n * Send a binary message to every connection in this group\n *\n * @param message - The binary message to send\n * @param options - Additional options\n */\n public async sendToAll(message: RequestBodyType, options?: GroupSendToAllOptions): Promise<void>;\n\n public async sendToAll(\n message: JSONTypes | RequestBodyType,\n options: GroupSendToAllOptions | GroupSendTextToAllOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\"WebPubSubGroupClient.sendToAll\", options, (updatedOptions) => {\n const { contentType, payload } = getPayloadForMessage(message, updatedOptions);\n return this.client.webPubSub.sendToGroup(\n this.hubName,\n this.groupName,\n contentType,\n payload as any,\n updatedOptions,\n );\n });\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { KeyCredential } from \"@azure/core-auth\";\nimport type {\n PipelineResponse,\n PipelineRequest,\n SendRequest,\n PipelinePolicy,\n} from \"@azure/core-rest-pipeline\";\n\nimport jwt from \"jsonwebtoken\";\n\n/**\n * The programmatic identifier of the webPubSubKeyCredentialPolicy.\n */\nexport const webPubSubKeyCredentialPolicyName = \"webPubSubKeyCredentialPolicy\";\n\n/**\n * Create an HTTP pipeline policy to authenticate a request\n * using an `AzureKeyCredential` for Text Analytics\n * @internal\n */\nexport function webPubSubKeyCredentialPolicy(credential: KeyCredential): PipelinePolicy {\n return {\n name: webPubSubKeyCredentialPolicyName,\n sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n const bearerToken = jwt.sign({}, credential.key, {\n audience: request.url,\n expiresIn: \"1h\",\n algorithm: \"HS256\",\n });\n request.headers.set(\"Authorization\", `Bearer ${bearerToken}`);\n return next(request);\n },\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createClientLogger } from \"@azure/logger\";\n\n/**\n * The `@azure/logger` configuration for this package.\n */\nexport const logger = createClientLogger(\"web-pubsub\");\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { AzureKeyCredential } from \"@azure/core-auth\";\n\ninterface ParsedConnectionString {\n credential: AzureKeyCredential;\n endpoint: string;\n}\n\nexport function parseConnectionString(conn: string): ParsedConnectionString {\n const parsed: { [id: string]: string } = {};\n\n conn.split(\";\").forEach((i) => {\n const assignmentPos = i.indexOf(\"=\");\n if (assignmentPos === -1) return;\n const key = i.substring(0, assignmentPos).toLowerCase();\n const value = i.substring(assignmentPos + 1);\n parsed[key] = value;\n });\n\n let endpointPart = parsed[\"endpoint\"];\n if (!endpointPart) throw new TypeError(\"connection string missing endpoint\");\n if (!endpointPart.startsWith(\"http\")) {\n endpointPart = `https://${endpointPart}`;\n }\n const key = parsed[\"accesskey\"];\n if (!key) throw new TypeError(\"connection string missing access key\");\n const credential = new AzureKeyCredential(key);\n const port = parsed[\"port\"];\n const url = new URL(endpointPart);\n url.port = port;\n const endpoint = url.toString();\n url.port = \"\";\n\n return { credential, endpoint };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n PipelineResponse,\n PipelineRequest,\n SendRequest,\n PipelinePolicy,\n} from \"@azure/core-rest-pipeline\";\n\nexport const webPubSubReverseProxyPolicyName = \"webPubSubReverseProxyPolicy\";\n\n/**\n * Create an HTTP pipeline policy to use a reverse proxy.\n * This is generally going to be an Azure APIM endpoint.\n * @internal\n */\nexport function webPubSubReverseProxyPolicy(endpoint: string): PipelinePolicy {\n const rpEndpointUrl = new URL(endpoint);\n return {\n name: webPubSubReverseProxyPolicyName,\n sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n const parsedUrl = new URL(request.url);\n parsedUrl.host = rpEndpointUrl.host;\n request.url = parsedUrl.toString();\n return next(request);\n },\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n CommonClientOptions,\n FullOperationResponse,\n OperationOptions,\n} from \"@azure/core-client\";\nimport type { RequestBodyType } from \"@azure/core-rest-pipeline\";\nimport { RestError } from \"@azure/core-rest-pipeline\";\nimport { GeneratedClient } from \"./generated/generatedClient\";\nimport type {\n WebPubSubGroup,\n GroupAddConnectionOptions,\n GroupRemoveConnectionOptions,\n} from \"./groupClient\";\nimport { WebPubSubGroupImpl } from \"./groupClient\";\nimport type { AzureKeyCredential, TokenCredential } from \"@azure/core-auth\";\nimport { isTokenCredential } from \"@azure/core-auth\";\nimport { webPubSubKeyCredentialPolicy } from \"./webPubSubCredentialPolicy\";\nimport { tracingClient } from \"./tracing\";\nimport { logger } from \"./logger\";\nimport { parseConnectionString } from \"./parseConnectionString\";\nimport jwt from \"jsonwebtoken\";\nimport { getPayloadForMessage } from \"./utils\";\nimport type {\n GeneratedClientOptionalParams,\n AddToGroupsRequest,\n RemoveFromGroupsRequest,\n} from \"./generated\";\nimport { webPubSubReverseProxyPolicy } from \"./reverseProxyPolicy\";\n\n/**\n * Options for closing a connection to a hub.\n */\nexport interface HubCloseConnectionOptions extends OperationOptions {\n /**\n * Reason the connection is being closed.\n */\n reason?: string;\n}\n\n/**\n * Options for closing all connections to a hub.\n */\nexport interface HubCloseAllConnectionsOptions extends OperationOptions {\n /**\n * Reason the connection is being closed.\n */\n reason?: string;\n}\n\n/**\n * Options for closing all of a user's connections to a hub.\n */\nexport interface HubCloseUserConnectionsOptions extends OperationOptions {\n /**\n * Reason the connection is being closed.\n */\n reason?: string;\n}\n\n/**\n * Options for sending messages to hubs.\n */\nexport interface HubSendToAllOptions extends OperationOptions {\n /**\n * Connection ids to exclude from receiving this message.\n */\n excludedConnections?: string[];\n /**\n * The filter syntax to filter out the connections to send the messages to following OData filter syntax.\n * Examples:\n * * Exclude connections from `user1` and `user2`: `userId ne 'user1' and userId ne 'user2'`\n * * Exclude connections in `group1`: `not('group1' in groups)`\n * Details about `filter` syntax please see [OData filter syntax for Azure Web PubSub](https://aka.ms/awps/filter-syntax).\n */\n filter?: string;\n /**\n * The time-to-live (TTL) value in seconds for messages sent to the service.\n * 0 is the default value, which means the message never expires.\n * 300 is the maximum value.\n * If this parameter is non-zero, messages that are not consumed by the client within the specified TTL will be dropped by the service.\n * This parameter can help when the client's bandwidth is limited.\n */\n messageTtlSeconds?: number;\n}\n\n/**\n * Options for sending text messages to hubs.\n */\nexport interface HubSendTextToAllOptions extends HubSendToAllOptions {\n /**\n * The content will be sent to the clients in plain text.\n */\n contentType: \"text/plain\";\n}\n\n/**\n * Types which can be serialized and sent as JSON.\n */\nexport type JSONTypes = string | number | boolean | object;\n\n/**\n * Options for constructing a HubAdmin client.\n */\nexport interface WebPubSubServiceClientOptions extends CommonClientOptions {\n /**\n * Reverse proxy endpoint (for example, your Azure API management endpoint)\n */\n reverseProxyEndpoint?: string;\n /**\n * Options to configure the logging options.\n */\n loggingOptions?: WebPubSubServiceClientLogOptions;\n}\n\n/**\n * Options to configure the logging options.\n */\nexport declare interface WebPubSubServiceClientLogOptions {\n /**\n * Header names whose values will be logged when logging is enabled.\n * Defaults include a list of well-known safe headers. Any headers\n * specified in this field will be added to that list. Any other values will\n * be written to logs as \"REDACTED\".\n */\n additionalAllowedHeaderNames?: string[];\n /**\n * Query string names whose values will be logged when logging is enabled. By default no\n * query string values are logged.\n */\n additionalAllowedQueryParameters?: string[];\n}\n\n/**\n * Options for checking if a connection exists.\n */\nexport interface HasConnectionOptions extends OperationOptions {}\n\n/**\n * Options for checking if a group exists.\n */\nexport interface HubHasGroupOptions extends OperationOptions {}\n\n/**\n * Options for checking if a user exists.\n */\nexport interface HubHasUserOptions extends OperationOptions {}\n\n/**\n * Options for removing a user from all groups.\n */\nexport interface HubRemoveUserFromAllGroupsOptions extends HubCloseConnectionOptions {}\n\n/**\n * Options for sending a message to a specific connection.\n */\nexport interface HubSendToConnectionOptions extends OperationOptions {\n /**\n * The time-to-live (TTL) value in seconds for messages sent to the service.\n * 0 is the default value, which means the message never expires.\n * 300 is the maximum value.\n * If this parameter is non-zero, messages that are not consumed by the client within the specified TTL will be dropped by the service.\n * This parameter can help when the client's bandwidth is limited.\n */\n messageTtlSeconds?: number;\n}\n\n/**\n * Options for sending a text message to a connection.\n */\nexport interface HubSendTextToConnectionOptions extends HubSendToConnectionOptions {\n contentType: \"text/plain\";\n}\n\n/**\n * Options for sending a message to a user.\n */\nexport interface HubSendToUserOptions extends OperationOptions {\n /**\n * The filter syntax to filter out the connections to send the messages to following OData filter syntax.\n * Examples:\n * * Exclude connections in `group1`: `not('group1' in groups)`\n * * Send to connections in `group1` or `group2`: `'group1' in groups or `group2` in groups`\n * Details about `filter` syntax please see [OData filter syntax for Azure Web PubSub](https://aka.ms/awps/filter-syntax).\n */\n filter?: string;\n /**\n * The time-to-live (TTL) value in seconds for messages sent to the service.\n * 0 is the default value, which means the message never expires.\n * 300 is the maximum value.\n * If this parameter is non-zero, messages that are not consumed by the client within the specified TTL will be dropped by the service.\n * This parameter can help when the client's bandwidth is limited.\n */\n messageTtlSeconds?: number;\n}\n\n/**\n * Options for sending a text message to a user.\n */\nexport interface HubSendTextToUserOptions extends HubSendToUserOptions {\n /**\n * The content will be sent to the clients in plain text.\n */\n contentType: \"text/plain\";\n}\n\nexport type Permission = \"joinLeaveGroup\" | \"sendToGroup\";\n\n/**\n * Options for grant permissions to a connection\n */\nexport interface HubGrantPermissionOptions extends OperationOptions {\n /**\n * The meaning of the target depends on the specific permission.\n * For joinLeaveGroup and sendToGroup, targetName is a required parameter standing for the group name.\n */\n targetName?: string;\n}\n\n/**\n * Options for revoke permissions from a connection\n */\nexport interface HubRevokePermissionOptions extends OperationOptions {\n /**\n * The meaning of the target depends on the specific permission.\n * For joinLeaveGroup and sendToGroup, targetName is a required parameter standing for the group name.\n */\n targetName?: string;\n}\n\n/**\n * Options for checking if a connection has the specified permission\n */\nexport interface HubHasPermissionOptions extends OperationOptions {\n /**\n * The meaning of the target depends on the specific permission.\n * For joinLeaveGroup and sendToGroup, targetName is a required parameter standing for the group name.\n */\n targetName?: string;\n}\n\n/**\n * The type of client endpoint that is being requested.\n */\nexport type WebPubSubClientProtocol = \"default\" | \"mqtt\" | \"socketio\";\n\n/**\n * Options for generating a token to connect a client to the Azure Web Pubsub service.\n */\nexport interface GenerateClientTokenOptions extends OperationOptions {\n /**\n * The userId for the client.\n */\n userId?: string;\n\n /**\n * The roles that the connection with the generated token will have.\n * Roles give the client initial permissions to leave, join, or publish to groups when using PubSub subprotocol\n * * `webpubsub.joinLeaveGroup`: the client can join or leave any group\n * * `webpubsub.sendToGroup`: the client can send messages to any group\n * * `webpubsub.joinLeaveGroup.<group>`: the client can join or leave group `<group>`\n * * `webpubsub.sendToGroup.<group>`: the client can send messages to group `<group>`\n *\n * {@link https://azure.github.io/azure-webpubsub/references/pubsub-websocket-subprotocol#permissions}\n */\n roles?: string[];\n\n /**\n * Minutes until the token expires.\n */\n expirationTimeInMinutes?: number;\n\n /**\n * The groups to join when the client connects\n */\n groups?: string[];\n\n /**\n * The protocol type of the client\n * * `default`: Default WebPubSub Client. Example Client Connection URL: _wss://exampleHost.com/client/hubs/exampleHub_\n * * `mqtt`: MQTT Client. Example Client Connection URL: _wss://exampleHost.com/client/mqtt/hubs/exampleHub_\n */\n clientProtocol?: WebPubSubClientProtocol;\n}\n\n/**\n * A response containing the client token.\n */\nexport interface ClientTokenResponse {\n /**\n * The client token.\n */\n token: string;\n /**\n * The URL client connects to\n */\n baseUrl: string;\n /**\n * The URL client connects to with access_token query string\n */\n url: string;\n}\n\n/**\n * Client for connecting to a Web PubSub hub\n */\nexport class WebPubSubServiceClient {\n private readonly client: GeneratedClient;\n private credential!: AzureKeyCredential | TokenCredential;\n private readonly clientOptions?: WebPubSubServiceClientOptions;\n\n /**\n * The name of the hub this client is connected to\n */\n public readonly hubName: string;\n /**\n * The Web PubSub API version being used by this client\n */\n public readonly apiVersion: string = \"2024-01-01\";\n\n /**\n * The Web PubSub endpoint this client is connected to\n */\n public endpoint!: string;\n\n /**\n * Creates an instance of a WebPubSubServiceClient for sending messages and managing groups, connections, and users.\n *\n * Example usage:\n * ```ts\n * import { WebPubSubServiceClient } from \"@azure/web-pubsub\";\n * const connectionString = process.env['WEB_PUBSUB_CONNECTION_STRING'];\n * const client = new WebPubSubServiceClient(connectionString, 'chat');\n * ```\n *\n * @param connectionString - The connection string\n * @param hubName - The name of the hub to connect to. If omitted, '_default' is used.\n * @param options - Options to configure the http pipeline\n */\n constructor(connectionString: string, hubName: string, options?: WebPubSubServiceClientOptions);\n\n /**\n * Creates an instance of a WebPubSubServiceClient for sending messages and managing groups, connections, and users.\n *\n * Example usage:\n * ```ts\n * import { WebPubSubServiceClient, AzureKeyCredential } from \"@azure/web-pubsub\";\n * const cred = new AzureKeyCredential(\"<your web pubsub api key>\");\n * const endpoint = \"https://xxxx.webpubsubdev.azure.com\"\n * const client = new WebPubSubServiceClient(endpoint, cred, 'chat');\n * ```\n *\n * @param endpoint - The endpoint to connect to\n * @param credential - An AzureKeyCredential holding your service key\n * @param hubName - The name of the hub to connect to.\n * @param options - Options to configure the http pipeline\n */\n constructor(\n endpoint: string,\n credential: AzureKeyCredential | TokenCredential,\n hubName: string,\n options?: WebPubSubServiceClientOptions,\n );\n constructor(\n endpointOrConnectionString: string,\n credsOrHubName?: AzureKeyCredential | TokenCredential | string,\n hubNameOrOpts?: string | WebPubSubServiceClientOptions,\n opts?: WebPubSubServiceClientOptions,\n ) {\n // unpack constructor arguments\n if (typeof credsOrHubName === \"object\") {\n this.endpoint = endpointOrConnectionString;\n this.hubName = hubNameOrOpts as string;\n this.clientOptions = opts;\n this.credential = credsOrHubName;\n } else {\n const parsedCs = parseConnectionString(endpointOrConnectionString);\n this.endpoint = parsedCs.endpoint;\n this.credential = parsedCs.credential;\n this.hubName = credsOrHubName as string;\n this.clientOptions = hubNameOrOpts as WebPubSubServiceClientOptions;\n }\n\n const internalPipelineOptions: GeneratedClientOptionalParams = {\n ...this.clientOptions,\n ...{\n apiVersion: this.apiVersion,\n loggingOptions: {\n additionalAllowedHeaderNames:\n this.clientOptions?.loggingOptions?.additionalAllowedHeaderNames,\n additionalAllowedQueryParameters:\n this.clientOptions?.loggingOptions?.additionalAllowedQueryParameters,\n logger: logger.info,\n },\n },\n ...(isTokenCredential(this.credential)\n ? {\n credential: this.credential,\n credentialScopes: [\"https://webpubsub.azure.com/.default\"],\n }\n : {}),\n };\n\n this.client = new GeneratedClient(this.endpoint, internalPipelineOptions);\n\n if (!isTokenCredential(this.credential)) {\n this.client.pipeline.addPolicy(webPubSubKeyCredentialPolicy(this.credential));\n }\n\n if (this.clientOptions?.reverseProxyEndpoint) {\n this.client.pipeline.addPolicy(\n webPubSubReverseProxyPolicy(this.clientOptions?.reverseProxyEndpoint),\n );\n }\n }\n\n /**\n * Get a client for a group\n * @param groupName - The name of the group to connect to.\n */\n public group(groupName: string): WebPubSubGroup {\n return new WebPubSubGroupImpl(this.client, this.hubName, groupName);\n }\n\n /**\n * Broadcast a text message to all connections on this hub.\n *\n * @param message - The text message to send\n * @param options - Additional options\n */\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n public async sendToAll(message: string, options: HubSendTextToAllOptions): Promise<void>;\n /**\n * Broadcast a JSON message to all connections on this hub.\n *\n * @param message - The JSON message to send\n * @param options - Additional options\n */\n public async sendToAll(message: JSONTypes, options?: HubSendToAllOptions): Promise<void>;\n /**\n * Broadcast a binary message to all connections on this hub.\n *\n * @param message - The message to send\n * @param options - Additional options\n */\n public async sendToAll(message: RequestBodyType, options?: HubSendToAllOptions): Promise<void>;\n\n public async sendToAll(\n message: RequestBodyType | JSONTypes,\n options: HubSendToAllOptions | HubSendTextToAllOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\"WebPubSubServiceClient.sendToAll\", options, (updatedOptions) => {\n const { contentType, payload } = getPayloadForMessage(message, updatedOptions);\n return this.client.webPubSub.sendToAll(\n this.hubName,\n contentType,\n payload as any,\n updatedOptions,\n );\n });\n }\n\n /**\n * Send a text message to a specific user\n *\n * @param username - User name to send to\n * @param message - The text message to send\n * @param options - Additional options\n */\n public async sendToUser(\n username: string,\n message: string,\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: HubSendTextToUserOptions,\n ): Promise<void>;\n\n /**\n * Send a JSON message to a specific user\n *\n * @param username - User name to send to\n * @param message - The josn message to send\n * @param options - Additional options\n */\n public async sendToUser(\n username: string,\n message: JSONTypes,\n options?: HubSendToUserOptions,\n ): Promise<void>;\n\n /**\n * Send a binary message to a specific user\n *\n * @param username - The user name to send to\n * @param message - The binary message to send\n * @param options - Additional options\n */\n public async sendToUser(\n username: string,\n message: RequestBodyType,\n options?: HubSendToUserOptions | HubSendTextToUserOptions,\n ): Promise<void>;\n public async sendToUser(\n username: string,\n message: RequestBodyType | JSONTypes,\n options: HubSendToUserOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.sendToUser\",\n options,\n (updatedOptions) => {\n const { contentType, payload } = getPayloadForMessage(message, updatedOptions);\n return this.client.webPubSub.sendToUser(\n this.hubName,\n username,\n contentType,\n payload as any,\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Send a text message to a specific connection\n *\n * @param connectionId - Connection id to send to\n * @param message - The text message\n * @param options - Additional options\n */\n public async sendToConnection(\n connectionId: string,\n message: string,\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: HubSendTextToConnectionOptions,\n ): Promise<void>;\n\n /**\n * Send a binary message to a specific connection\n *\n * @param connectionId - Connection id to send to\n * @param message - The JSON message\n * @param options - Additional options\n */\n public async sendToConnection(\n connectionId: string,\n message: JSONTypes,\n options?: HubSendToConnectionOptions,\n ): Promise<void>;\n\n /**\n * Send a binary message to a specific connection\n *\n * @param connectionId - Connection id to send to\n * @param message - The binary message\n * @param options - Additional options\n */\n public async sendToConnection(\n connectionId: string,\n message: RequestBodyType,\n options?: HubSendToConnectionOptions | HubSendTextToConnectionOptions,\n ): Promise<void>;\n public async sendToConnection(\n connectionId: string,\n message: RequestBodyType | JSONTypes,\n options: HubSendToConnectionOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.sendToConnection\",\n options,\n (updatedOptions) => {\n const { contentType, payload } = getPayloadForMessage(message, updatedOptions);\n\n return this.client.webPubSub.sendToConnection(\n this.hubName,\n connectionId,\n contentType,\n payload as any,\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Check if a specific connection is connected to this hub\n *\n * @param connectionId - Connection id to check\n * @param options - Additional options\n */\n public async connectionExists(\n connectionId: string,\n options: HasConnectionOptions = {},\n ): Promise<boolean> {\n let response: FullOperationResponse | undefined;\n function onResponse(rawResponse: FullOperationResponse, flatResponse: unknown): void {\n response = rawResponse;\n if (options.onResponse) {\n options.onResponse(rawResponse, flatResponse);\n }\n }\n\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.connectionExists\",\n options,\n async (updatedOptions) => {\n await this.client.webPubSub.connectionExists(this.hubName, connectionId, {\n ...updatedOptions,\n onResponse,\n });\n\n if (response!.status === 200) {\n return true;\n } else if (response!.status === 404) {\n return false;\n } else {\n // this is sad - wish this was handled by autorest.\n throw new RestError(response!.bodyAsText!, {\n statusCode: response?.status,\n request: response?.request,\n response: response,\n });\n }\n },\n );\n }\n\n /**\n * Close a specific connection to this hub\n *\n * @param connectionId - Connection id to close\n * @param options - Additional options\n */\n public async closeConnection(\n connectionId: string,\n options: HubCloseConnectionOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.closeConnection\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.closeConnection(this.hubName, connectionId, updatedOptions);\n },\n );\n }\n\n /**\n * Close all connections to this hub\n *\n * @param options - Additional options\n */\n public async closeAllConnections(options: HubCloseAllConnectionsOptions = {}): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.closeAllConnections\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.closeAllConnections(this.hubName, updatedOptions);\n },\n );\n }\n\n /**\n * Close all connections with the given user id\n *\n * @param user - User id to close\n * @param options - Additional options\n */\n public async closeUserConnections(\n userId: string,\n options: HubCloseUserConnectionsOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.closeUserConnections\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.closeUserConnections(this.hubName, userId, updatedOptions);\n },\n );\n }\n\n /**\n * Remove a specific user from all groups they are joined to\n * @param userId - The user id to remove from all groups\n * @param options - Additional options\n */\n public async removeUserFromAllGroups(\n userId: string,\n options: HubCloseConnectionOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.removeUserFromAllGroups\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.removeUserFromAllGroups(this.hubName, userId, updatedOptions);\n },\n );\n }\n\n /**\n * Remove a specific connection from all groups they are joined to\n * @param connectionId - The connection id to remove from all groups\n * @param options - Additional options\n */\n public async removeConnectionFromAllGroups(\n connectionId: string,\n options: HubCloseConnectionOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.removeConnectionFromAllGroups\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.removeConnectionFromAllGroups(\n this.hubName,\n connectionId,\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Add filtered connections to multiple groups\n * @param groups - A list of groups which target connections will be added into\n * @param filter - An OData filter which target connections satisfy\n * @param options - Additional options\n */\n public async addConnectionsToGroups(\n groups: string[],\n filter: string,\n options: GroupAddConnectionOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.addConnectionsToGroups\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.addConnectionsToGroups(\n this.hubName,\n {\n groups: groups,\n filter: filter,\n } as AddToGroupsRequest,\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Remove filtered connections from multiple groups\n * @param groups - A list of groups which target connections will be removed from\n * @param filter - An OData filter which target connections satisfy\n * @param options - Additional options\n */\n public async removeConnectionsFromGroups(\n groups: string[],\n filter: string,\n options: GroupRemoveConnectionOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.removeConnectionsFromGroups\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.removeConnectionsFromGroups(\n this.hubName,\n {\n groups: groups,\n filter: filter,\n } as RemoveFromGroupsRequest,\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Check if a particular group exists (i.e. has active connections).\n *\n * @param groupName - The group name to check for\n * @param options - Additional options\n */\n public async groupExists(groupName: string, options: HubHasGroupOptions = {}): Promise<boolean> {\n let response: FullOperationResponse | undefined;\n function onResponse(rawResponse: FullOperationResponse, flatResponse: unknown): void {\n response = rawResponse;\n if (options.onResponse) {\n options.onResponse(rawResponse, flatResponse);\n }\n }\n\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.groupExists\",\n options,\n async (updatedOptions) => {\n await this.client.webPubSub.groupExists(this.hubName, groupName, {\n ...updatedOptions,\n onResponse,\n });\n\n if (response!.status === 200) {\n return true;\n } else if (response!.status === 404) {\n return false;\n } else {\n throw new RestError(response!.bodyAsText!, {\n statusCode: response?.status,\n request: response?.request,\n response: response,\n });\n }\n },\n );\n }\n\n /**\n * Check if a particular user is connected to this hub.\n *\n * @param username - The user name to check for\n * @param options - Additional options\n */\n public async userExists(username: string, options: HubHasUserOptions = {}): Promise<boolean> {\n let response: FullOperationResponse | undefined;\n function onResponse(rawResponse: FullOperationResponse, flatResponse: unknown): void {\n response = rawResponse;\n if (options.onResponse) {\n options.onResponse(rawResponse, flatResponse);\n }\n }\n\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.userExists\",\n options,\n async (updatedOptions) => {\n await this.client.webPubSub.userExists(this.hubName, username, {\n ...updatedOptions,\n onResponse,\n });\n\n if (response!.status === 200) {\n return true;\n } else if (response!.status === 404) {\n return false;\n } else {\n // this is sad - wish this was handled by autorest.\n throw new RestError(response!.bodyAsText!, {\n statusCode: response?.status,\n request: response?.request,\n response: response,\n });\n }\n },\n );\n }\n\n /**\n * Grant permissions to a connection\n *\n * @param connectionId - The connection id to grant permissions to\n * @param Permission - The permission to grant\n * @param options - Additional options\n */\n public async grantPermission(\n connectionId: string,\n permission: Permission,\n options: HubGrantPermissionOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.grantPermission\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.grantPermission(\n this.hubName,\n permission,\n connectionId,\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Revoke permissions from a connection\n *\n * @param connectionId - The connection id to revoke permissions from\n * @param Permission - The permission to revoke\n * @param options - Additional options\n */\n public async revokePermission(\n connectionId: string,\n permission: Permission,\n options: HubRevokePermissionOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.revokePermission\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.revokePermission(\n this.hubName,\n permission,\n connectionId,\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Check if the connection has the specified permission\n *\n * @param connectionId - The connection id to check permission\n * @param Permission - The permission to check\n * @param options - Additional options\n */\n public async hasPermission(\n connectionId: string,\n permission: Permission,\n options: HubHasPermissionOptions = {},\n ): Promise<boolean> {\n let response: FullOperationResponse | undefined;\n function onResponse(rawResponse: FullOperationResponse, flatResponse: unknown): void {\n response = rawResponse;\n if (options.onResponse) {\n options.onResponse(rawResponse, flatResponse);\n }\n }\n\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.hasPermission\",\n options,\n async (updatedOptions) => {\n await this.client.webPubSub.checkPermission(this.hubName, permission, connectionId, {\n ...updatedOptions,\n onResponse,\n });\n\n if (response!.status === 200) {\n return true;\n } else if (response!.status === 404) {\n return false;\n } else {\n // this is sad - wish this was handled by autorest.\n throw new RestError(response!.bodyAsText!, {\n statusCode: response?.status,\n request: response?.request,\n response: response,\n });\n }\n },\n );\n }\n\n /**\n * Generate a token for a client to connect to the Azure Web PubSub service.\n *\n * @param options - Additional options\n */\n public async getClientAccessToken(\n options: GenerateClientTokenOptions = {},\n ): Promise<ClientTokenResponse> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.getClientAccessToken\",\n options,\n async (updatedOptions) => {\n const endpoint = this.endpoint.endsWith(\"/\") ? this.endpoint : this.endpoint + \"/\";\n const clientEndpoint = endpoint.replace(/(http)(s?:\\/\\/)/gi, \"ws$2\");\n const clientProtocol = updatedOptions.clientProtocol;\n let clientPath = `client/hubs/${this.hubName}`;\n switch (clientProtocol) {\n case \"mqtt\":\n clientPath = `clients/mqtt/hubs/${this.hubName}`;\n break;\n case \"socketio\":\n clientPath = `clients/socketio/hubs/${this.hubName}`;\n }\n const baseUrl = clientEndpoint + clientPath;\n\n let token: string;\n if (isTokenCredential(this.credential)) {\n const response = await this.client.webPubSub.generateClientToken(\n this.hubName,\n updatedOptions,\n );\n token = response.token!;\n } else {\n const key = this.credential.key;\n const audience = endpoint + clientPath;\n const payload = {\n role: updatedOptions?.roles,\n \"webpubsub.group\": updatedOptions?.groups,\n };\n const signOptions: jwt.SignOptions = {\n audience: audience,\n expiresIn:\n updatedOptions?.expirationTimeInMinutes === undefined\n ? \"1h\"\n : `${updatedOptions.expirationTimeInMinutes}m`,\n algorithm: \"HS256\",\n };\n if (updatedOptions?.userId) {\n signOptions.subject = updatedOptions?.userId;\n }\n token = jwt.sign(payload, key, signOptions);\n }\n\n return {\n token,\n baseUrl,\n url: `${baseUrl}?access_token=${token}`,\n };\n },\n );\n }\n}\n"],"names":["AddToGroupsRequestMapper","RemoveFromGroupsRequestMapper","serializer","coreClient","Parameters.apiVersion","Parameters.endpoint","Mappers.ErrorDetail","Mappers.WebPubSubAddConnectionsToGroupsExceptionHeaders","Parameters.groupsToAdd","Parameters.hub","Parameters.contentType","Parameters.accept","Mappers.WebPubSubCloseAllConnectionsExceptionHeaders","Parameters.excluded","Parameters.reason","Mappers.ClientTokenResponse","Mappers.WebPubSubGenerateClientTokenExceptionHeaders","Parameters.userId","Parameters.roles","Parameters.expirationTimeInMinutes","Parameters.groups","Parameters.clientType","Parameters.accept1","Mappers.WebPubSubRemoveConnectionsFromGroupsExceptionHeaders","Parameters.groupsToRemove","Mappers.WebPubSubSendToAllExceptionHeaders","Parameters.message","Parameters.excludedConnections","Parameters.filter","Parameters.messageTtlSeconds","Parameters.contentType1","Parameters.accept2","Parameters.message1","Parameters.contentType2","Parameters.accept3","Mappers.WebPubSubCloseConnectionExceptionHeaders","Parameters.connectionId","Mappers.WebPubSubConnectionExistsExceptionHeaders","Mappers.WebPubSubSendToConnectionExceptionHeaders","Mappers.WebPubSubRemoveConnectionFromAllGroupsExceptionHeaders","Mappers.WebPubSubGroupExistsExceptionHeaders","Parameters.group","Mappers.WebPubSubCloseGroupConnectionsExceptionHeaders","Mappers.WebPubSubSendToGroupExceptionHeaders","Mappers.WebPubSubRemoveConnectionFromGroupExceptionHeaders","Mappers.WebPubSubAddConnectionToGroupExceptionHeaders","Mappers.WebPubSubRevokePermissionExceptionHeaders","Parameters.targetName","Parameters.permission","Mappers.WebPubSubCheckPermissionExceptionHeaders","Mappers.WebPubSubGrantPermissionExceptionHeaders","Mappers.WebPubSubUserExistsExceptionHeaders","Parameters.userId1","Mappers.WebPubSubCloseUserConnectionsExceptionHeaders","Mappers.WebPubSubSendToUserExceptionHeaders","Mappers.WebPubSubRemoveUserFromAllGroupsExceptionHeaders","Mappers.WebPubSubRemoveUserFromGroupExceptionHeaders","Mappers.WebPubSubAddUserToGroupExceptionHeaders","createTracingClient","RestError","createClientLogger","AzureKeyCredential","isTokenCredential"],"mappings":"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"}