@azure/web-pubsub 1.1.3-alpha.20240528.1 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +393 -375
- package/dist/index.js.map +1 -1
- package/dist-esm/src/generated/generatedClient.js +4 -4
- package/dist-esm/src/generated/generatedClient.js.map +1 -1
- package/dist-esm/src/generated/generatedClientContext.js +1 -1
- package/dist-esm/src/generated/generatedClientContext.js.map +1 -1
- package/dist-esm/src/generated/models/index.js +8 -0
- package/dist-esm/src/generated/models/index.js.map +1 -1
- package/dist-esm/src/generated/models/mappers.js +160 -160
- package/dist-esm/src/generated/models/mappers.js.map +1 -1
- package/dist-esm/src/generated/models/parameters.js +106 -96
- package/dist-esm/src/generated/models/parameters.js.map +1 -1
- package/dist-esm/src/generated/operations/healthApi.js +1 -1
- package/dist-esm/src/generated/operations/healthApi.js.map +1 -1
- package/dist-esm/src/generated/operations/webPubSub.js +108 -107
- package/dist-esm/src/generated/operations/webPubSub.js.map +1 -1
- package/dist-esm/src/generated/operationsInterfaces/healthApi.js.map +1 -1
- package/dist-esm/src/generated/operationsInterfaces/webPubSub.js.map +1 -1
- package/dist-esm/src/hubClient.js +15 -8
- package/dist-esm/src/hubClient.js.map +1 -1
- package/dist-esm/src/index.js.map +1 -1
- package/dist-esm/test/hubs.spec.js +11 -0
- package/dist-esm/test/hubs.spec.js.map +1 -1
- package/dist-esm/test/integration.spec.js +3 -3
- package/dist-esm/test/integration.spec.js.map +1 -1
- package/dist-esm/test/testEnv.js +0 -3
- package/dist-esm/test/testEnv.js.map +1 -1
- package/package.json +4 -4
- package/types/web-pubsub.d.ts +11 -0
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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: \"2023-07-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 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 ],\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 || \"2023-07-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 { 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 { CommonClientOptions, FullOperationResponse, OperationOptions } from \"@azure/core-client\";\nimport { RestError, RequestBodyType } from \"@azure/core-rest-pipeline\";\nimport { GeneratedClient } from \"./generated/generatedClient\";\nimport { tracingClient } from \"./tracing\";\nimport { getPayloadForMessage } from \"./utils\";\nimport { 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 { KeyCredential } from \"@azure/core-auth\";\nimport {\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 {\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 { CommonClientOptions, FullOperationResponse, OperationOptions } from \"@azure/core-client\";\nimport { RestError, RequestBodyType } from \"@azure/core-rest-pipeline\";\nimport { GeneratedClient } from \"./generated/generatedClient\";\nimport {\n WebPubSubGroup,\n WebPubSubGroupImpl,\n GroupAddConnectionOptions,\n GroupRemoveConnectionOptions,\n} from \"./groupClient\";\nimport { AzureKeyCredential, TokenCredential, 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 {\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 */\n// eslint-disable-next-line @typescript-eslint/ban-types\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 * 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/**\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 = \"2023-07-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 baseUrl = `${clientEndpoint}client/hubs/${this.hubName}`;\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}client/hubs/${this.hubName}`;\n const payload = { role: options?.roles, \"webpubsub.group\": options?.groups };\n const signOptions: jwt.SignOptions = {\n audience: audience,\n expiresIn:\n options?.expirationTimeInMinutes === undefined\n ? \"1h\"\n : `${options.expirationTimeInMinutes}m`,\n algorithm: \"HS256\",\n };\n if (options?.userId) {\n signOptions.subject = options?.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.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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"}
|
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 { 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 { CommonClientOptions, FullOperationResponse, OperationOptions } from \"@azure/core-client\";\nimport { RestError, RequestBodyType } from \"@azure/core-rest-pipeline\";\nimport { GeneratedClient } from \"./generated/generatedClient\";\nimport { tracingClient } from \"./tracing\";\nimport { getPayloadForMessage } from \"./utils\";\nimport { 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 { KeyCredential } from \"@azure/core-auth\";\nimport {\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 {\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 { CommonClientOptions, FullOperationResponse, OperationOptions } from \"@azure/core-client\";\nimport { RestError, RequestBodyType } from \"@azure/core-rest-pipeline\";\nimport { GeneratedClient } from \"./generated/generatedClient\";\nimport {\n WebPubSubGroup,\n WebPubSubGroupImpl,\n GroupAddConnectionOptions,\n GroupRemoveConnectionOptions,\n} from \"./groupClient\";\nimport { AzureKeyCredential, TokenCredential, 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 {\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 */\n// eslint-disable-next-line @typescript-eslint/ban-types\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":"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"}
|