@azure-rest/core-client 1.0.0-alpha.20220415.2 → 1.0.0-alpha.20220421.2

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 CHANGED
@@ -5,7 +5,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var coreRestPipeline = require('@azure/core-rest-pipeline');
6
6
  var coreAuth = require('@azure/core-auth');
7
7
  var coreUtil = require('@azure/core-util');
8
- var url = require('url');
9
8
 
10
9
  // Copyright (c) Microsoft Corporation.
11
10
  // Licensed under the MIT license.
@@ -97,6 +96,7 @@ function keyCredentialAuthenticationPolicy(credential, apiKeyHeaderName) {
97
96
  }
98
97
 
99
98
  // Copyright (c) Microsoft Corporation.
99
+ // Licensed under the MIT license.
100
100
  const apiVersionPolicyName = "ApiVersionPolicy";
101
101
  /**
102
102
  * Creates a policy that sets the apiVersion as a query parameter on every request
@@ -108,9 +108,9 @@ function apiVersionPolicy(options) {
108
108
  name: apiVersionPolicyName,
109
109
  sendRequest: (req, next) => {
110
110
  if (options.apiVersion) {
111
- const url$1 = new url.URL(req.url);
112
- url$1.searchParams.append("api-version", options.apiVersion);
113
- req.url = url$1.toString();
111
+ const url = new URL(req.url);
112
+ url.searchParams.append("api-version", options.apiVersion);
113
+ req.url = url.toString();
114
114
  }
115
115
  return next(req);
116
116
  },
@@ -399,6 +399,7 @@ function isBinaryContentType(contentType) {
399
399
  }
400
400
 
401
401
  // Copyright (c) Microsoft Corporation.
402
+ // Licensed under the MIT license.
402
403
  /**
403
404
  * Builds the request url, filling in query and path parameters
404
405
  * @param baseUrl - base url which can be a template url
@@ -414,17 +415,17 @@ function buildRequestUrl(baseUrl, routePath, pathParameters, options = {}) {
414
415
  baseUrl = buildBaseUrl(baseUrl, options);
415
416
  routePath = buildRoutePath(routePath, pathParameters, options);
416
417
  const requestUrl = appendQueryParams(`${baseUrl}/${routePath}`, options);
417
- const url$1 = new url.URL(requestUrl);
418
- return (url$1
418
+ const url = new URL(requestUrl);
419
+ return (url
419
420
  .toString()
420
421
  // Remove double forward slashes
421
422
  .replace(/([^:]\/)\/+/g, "$1"));
422
423
  }
423
- function appendQueryParams(url$1, options = {}) {
424
+ function appendQueryParams(url, options = {}) {
424
425
  if (!options.queryParameters) {
425
- return url$1;
426
+ return url;
426
427
  }
427
- let parsedUrl = new url.URL(url$1);
428
+ let parsedUrl = new URL(url);
428
429
  const queryParams = options.queryParameters;
429
430
  for (const key of Object.keys(queryParams)) {
430
431
  const param = queryParams[key];
@@ -447,7 +448,7 @@ function skipQueryParameterEncoding(url) {
447
448
  return url;
448
449
  }
449
450
  const searchPieces = [];
450
- for (let [name, value] of url.searchParams) {
451
+ for (const [name, value] of url.searchParams) {
451
452
  // QUIRK: searchParams.get retrieves the values decoded
452
453
  searchPieces.push(`${name}=${value}`);
453
454
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/typeGuards.ts","../src/certificateCredential.ts","../src/restError.ts","../src/keyCredentialAuthenticationPolicy.ts","../src/apiVersionPolicy.ts","../src/clientHelpers.ts","../src/helpers/isReadableStream.ts","../src/helpers/getBinaryBody.ts","../src/sendRequest.ts","../src/urlHelpers.ts","../src/getClient.ts"],"sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * Helper TypeGuard that checks if something is defined or not.\n * @param thing - Anything\n * @internal\n */\nexport function isDefined<T>(thing: T | undefined | null): thing is T {\n return typeof thing !== \"undefined\" && thing !== null;\n}\n\n/**\n * Helper TypeGuard that checks if the input is an object with the specified properties.\n * @param thing - Anything.\n * @param properties - The name of the properties that should appear in the object.\n * @internal\n */\nexport function isObjectWithProperties<Thing extends unknown, PropertyName extends string>(\n thing: Thing,\n properties: PropertyName[]\n): thing is Thing & Record<PropertyName, unknown> {\n if (!isDefined(thing) || typeof thing !== \"object\") {\n return false;\n }\n\n for (const property of properties) {\n if (!objectHasProperty(thing, property)) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Helper TypeGuard that checks if the input is an object with the specified property.\n * @param thing - Any object.\n * @param property - The name of the property that should appear in the object.\n * @internal\n */\nfunction objectHasProperty<Thing extends unknown, PropertyName extends string>(\n thing: Thing,\n property: PropertyName\n): thing is Thing & Record<PropertyName, unknown> {\n return typeof thing === \"object\" && property in (thing as Record<string, unknown>);\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { isObjectWithProperties } from \"./typeGuards\";\n\n/**\n * Represents a certificate credential for authentication.\n */\nexport interface CertificateCredential {\n /**\n * Certificate used to authenticate\n */\n cert: string;\n /**\n * Certificate key\n */\n certKey: string;\n}\n\n/**\n * Tests an object to determine whether it implements CertificateCredential.\n *\n * @param credential - The assumed CertificateCredential to be tested.\n */\nexport function isCertificateCredential(credential: unknown): credential is CertificateCredential {\n return (\n isObjectWithProperties(credential, [\"certKey\", \"cert\"]) &&\n typeof credential.cert === \"string\" &&\n typeof credential.certKey === \"string\"\n );\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { PipelineResponse, RestError, createHttpHeaders } from \"@azure/core-rest-pipeline\";\nimport { PathUncheckedResponse } from \"./common\";\n\n/**\n * Creates a rest error from a PathUnchecked response\n */\nexport function createRestError(message: string, response: PathUncheckedResponse): RestError {\n return new RestError(message, {\n statusCode: statusCodeToNumber(response.status),\n request: response.request,\n response: toPipelineResponse(response),\n });\n}\n\nfunction toPipelineResponse(response: PathUncheckedResponse): PipelineResponse {\n return {\n headers: createHttpHeaders(response.headers),\n request: response.request,\n status: statusCodeToNumber(response.status) ?? -1,\n };\n}\n\nfunction statusCodeToNumber(statusCode: string): number | undefined {\n const status = Number.parseInt(statusCode);\n\n return Number.isNaN(status) ? undefined : status;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { KeyCredential } from \"@azure/core-auth\";\nimport {\n PipelinePolicy,\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n} from \"@azure/core-rest-pipeline\";\n\n/**\n * The programmatic identifier of the bearerTokenAuthenticationPolicy.\n */\nexport const keyCredentialAuthenticationPolicyName = \"keyCredentialAuthenticationPolicy\";\n\nexport function keyCredentialAuthenticationPolicy(\n credential: KeyCredential,\n apiKeyHeaderName: string\n): PipelinePolicy {\n return {\n name: keyCredentialAuthenticationPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n request.headers.set(apiKeyHeaderName, credential.key);\n return next(request);\n },\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { PipelinePolicy } from \"@azure/core-rest-pipeline\";\nimport { ClientOptions } from \"./common\";\nimport { URL } from \"./url\";\n\nexport const apiVersionPolicyName = \"ApiVersionPolicy\";\n\n/**\n * Creates a policy that sets the apiVersion as a query parameter on every request\n * @param options - Client options\n * @returns Pipeline policy that sets the apiVersion as a query parameter on every request\n */\nexport function apiVersionPolicy(options: ClientOptions): PipelinePolicy {\n return {\n name: apiVersionPolicyName,\n sendRequest: (req, next) => {\n if (options.apiVersion) {\n const url = new URL(req.url);\n url.searchParams.append(\"api-version\", options.apiVersion);\n req.url = url.toString();\n }\n\n return next(req);\n },\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n HttpClient,\n Pipeline,\n bearerTokenAuthenticationPolicy,\n createDefaultHttpClient,\n createEmptyPipeline,\n decompressResponsePolicy,\n exponentialRetryPolicy,\n formDataPolicy,\n logPolicy,\n proxyPolicy,\n redirectPolicy,\n setClientRequestIdPolicy,\n systemErrorRetryPolicy,\n throttlingRetryPolicy,\n userAgentPolicy,\n} from \"@azure/core-rest-pipeline\";\nimport { isNode } from \"@azure/core-util\";\nimport { KeyCredential, TokenCredential, isTokenCredential } from \"@azure/core-auth\";\nimport { ClientOptions } from \"./common\";\nimport { keyCredentialAuthenticationPolicy } from \"./keyCredentialAuthenticationPolicy\";\nimport { apiVersionPolicy } from \"./apiVersionPolicy\";\n\nlet cachedHttpClient: HttpClient | undefined;\n\n/**\n * Creates a default rest pipeline to re-use accross Rest Level Clients\n */\nexport function createDefaultPipeline(\n baseUrl: string,\n credential?: TokenCredential | KeyCredential,\n options: ClientOptions = {}\n): Pipeline {\n const pipeline = createEmptyPipeline();\n\n if (isNode) {\n pipeline.addPolicy(proxyPolicy(options.proxyOptions));\n pipeline.addPolicy(decompressResponsePolicy());\n }\n\n pipeline.addPolicy(formDataPolicy());\n pipeline.addPolicy(userAgentPolicy(options.userAgentOptions));\n pipeline.addPolicy(setClientRequestIdPolicy());\n pipeline.addPolicy(throttlingRetryPolicy(), { phase: \"Retry\" });\n pipeline.addPolicy(systemErrorRetryPolicy(options.retryOptions), { phase: \"Retry\" });\n pipeline.addPolicy(exponentialRetryPolicy(options.retryOptions), { phase: \"Retry\" });\n pipeline.addPolicy(redirectPolicy(options.redirectOptions), { afterPhase: \"Retry\" });\n pipeline.addPolicy(logPolicy(), { afterPhase: \"Retry\" });\n\n pipeline.addPolicy(apiVersionPolicy(options));\n\n if (credential) {\n if (isTokenCredential(credential)) {\n const tokenPolicy = bearerTokenAuthenticationPolicy({\n credential,\n scopes: options.credentials?.scopes ?? `${baseUrl}/.default`,\n });\n pipeline.addPolicy(tokenPolicy);\n } else if (isKeyCredential(credential)) {\n if (!options.credentials?.apiKeyHeaderName) {\n throw new Error(`Missing API Key Header Name`);\n }\n const keyPolicy = keyCredentialAuthenticationPolicy(\n credential,\n options.credentials?.apiKeyHeaderName\n );\n pipeline.addPolicy(keyPolicy);\n }\n }\n\n return pipeline;\n}\n\nfunction isKeyCredential(credential: any): credential is KeyCredential {\n return (credential as KeyCredential).key !== undefined;\n}\n\nexport function getCachedDefaultHttpsClient(): HttpClient {\n if (!cachedHttpClient) {\n cachedHttpClient = createDefaultHttpClient();\n }\n\n return cachedHttpClient;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * Checks if the body is a ReadableStream supported by Node\n * @internal\n */\nexport function isReadableStream(body: unknown): body is NodeJS.ReadableStream {\n return Boolean(body) && typeof (body as any).pipe === \"function\";\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * Converts a string representing binary content into a Uint8Array\n */\nexport function stringToBinaryArray(content: string): Uint8Array {\n const arr = new Uint8Array(content.length);\n for (let i = 0; i < content.length; i++) {\n arr[i] = content.charCodeAt(i);\n }\n\n return arr;\n}\n\n/**\n * Converts binary content to its string representation\n */\nexport function binaryArrayToString(content: Uint8Array): string {\n let decodedBody = \"\";\n for (const element of content) {\n decodedBody += String.fromCharCode(element);\n }\n\n return decodedBody;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n FormDataMap,\n HttpClient,\n HttpMethods,\n Pipeline,\n PipelineRequest,\n PipelineResponse,\n RawHttpHeaders,\n RequestBodyType,\n RestError,\n createHttpHeaders,\n createPipelineRequest,\n} from \"@azure/core-rest-pipeline\";\nimport { getCachedDefaultHttpsClient } from \"./clientHelpers\";\nimport { isReadableStream } from \"./helpers/isReadableStream\";\nimport { HttpResponse, RequestParameters } from \"./common\";\nimport { binaryArrayToString, stringToBinaryArray } from \"./helpers/getBinaryBody\";\n\n/**\n * Helper function to send request used by the client\n * @param method - method to use to send the request\n * @param url - url to send the request to\n * @param pipeline - pipeline with the policies to run when sending the request\n * @param options - request options\n * @param customHttpClient - a custom HttpClient to use when making the request\n * @returns returns and HttpResponse\n */\nexport async function sendRequest(\n method: HttpMethods,\n url: string,\n pipeline: Pipeline,\n options: RequestParameters = {},\n customHttpClient?: HttpClient\n): Promise<HttpResponse> {\n const httpClient = customHttpClient ?? getCachedDefaultHttpsClient();\n const request = buildPipelineRequest(method, url, options);\n const response = await pipeline.sendRequest(httpClient, request);\n const rawHeaders: RawHttpHeaders = response.headers.toJSON();\n\n const parsedBody: RequestBodyType | undefined = getResponseBody(response, options);\n\n return {\n request,\n headers: rawHeaders,\n status: `${response.status}`,\n body: parsedBody,\n };\n}\n\n/**\n * Helper function to send request used by the client\n * @param method - method to use to send the request\n * @param url - url to send the request to\n * @param pipeline - pipeline with the policies to run when sending the request\n * @param options - request options\n * @param customHttpClient - a custom HttpClient to use when making the request\n * @returns returns and HttpResponse\n */\nexport async function sendRequestAsStream<\n TResponse extends HttpResponse & {\n body: NodeJS.ReadableStream | ReadableStream<Uint8Array> | undefined;\n }\n>(\n method: HttpMethods,\n url: string,\n pipeline: Pipeline,\n options: RequestParameters = {},\n customHttpClient?: HttpClient\n): Promise<TResponse> {\n const httpClient = customHttpClient ?? getCachedDefaultHttpsClient();\n const request = buildPipelineRequest(method, url, { ...options, responseAsStream: true });\n const response = await pipeline.sendRequest(httpClient, request);\n const rawHeaders: RawHttpHeaders = response.headers.toJSON();\n\n const parsedBody = response.browserStreamBody ?? response.readableStreamBody;\n\n return {\n request,\n headers: rawHeaders,\n status: `${response.status}`,\n body: parsedBody,\n } as TResponse;\n}\n\n/**\n * Function to determine the content-type of a body\n * this is used if an explicit content-type is not provided\n * @param body - body in the request\n * @returns returns the content-type\n */\nfunction getContentType(body: any): string {\n if (ArrayBuffer.isView(body)) {\n return \"application/octet-stream\";\n }\n\n // By default return json\n return \"application/json; charset=UTF-8\";\n}\n\nexport interface InternalRequestParameters extends RequestParameters {\n responseAsStream?: boolean;\n}\n\nfunction buildPipelineRequest(\n method: HttpMethods,\n url: string,\n options: InternalRequestParameters = {}\n): PipelineRequest {\n const { body, formData } = getRequestBody(options.body, options.contentType);\n const hasContent = body !== undefined || formData !== undefined;\n\n const headers = createHttpHeaders({\n ...(options.headers ? options.headers : {}),\n accept: options.accept ?? \"application/json\",\n ...(hasContent && {\n \"content-type\": options.contentType ?? getContentType(options.body),\n }),\n });\n\n return createPipelineRequest({\n url,\n method,\n body,\n formData,\n headers,\n allowInsecureConnection: options.allowInsecureConnection,\n enableBrowserStreams: true,\n streamResponseStatusCodes: options.responseAsStream\n ? new Set([Number.POSITIVE_INFINITY])\n : undefined,\n });\n}\n\ninterface RequestBody {\n body?: RequestBodyType;\n formData?: FormDataMap;\n}\n\n/**\n * Prepares the body before sending the request\n */\nfunction getRequestBody(body?: unknown, contentType: string = \"\"): RequestBody {\n if (body === undefined) {\n return { body: undefined };\n }\n\n if (isReadableStream(body)) {\n return { body };\n }\n\n if (!contentType && typeof body === \"string\") {\n return { body };\n }\n\n const firstType = contentType.split(\";\")[0];\n\n if (firstType === \"application/json\") {\n return { body: JSON.stringify(body) };\n }\n\n if (ArrayBuffer.isView(body)) {\n if (body instanceof Uint8Array) {\n return { body: binaryArrayToString(body) };\n } else {\n return { body: JSON.stringify(body) };\n }\n }\n\n switch (firstType) {\n case \"multipart/form-data\":\n return isFormData(body)\n ? { formData: processFormData(body) }\n : { body: JSON.stringify(body) };\n case \"text/plain\":\n return { body: String(body) };\n default:\n if (typeof body === \"string\") {\n return { body };\n }\n return { body: JSON.stringify(body) };\n }\n}\n\nfunction isFormData(body: unknown): body is FormDataMap {\n return body instanceof Object && Object.keys(body).length > 0;\n}\n\n/**\n * Checks if binary data is in Uint8Array format, if so decode it to a binary string\n * to send over the wire\n */\nfunction processFormData(formData?: FormDataMap) {\n if (!formData) {\n return formData;\n }\n\n const processedFormData: FormDataMap = {};\n\n for (const element in formData) {\n const item = formData[element];\n if (item instanceof Uint8Array) {\n processedFormData[element] = binaryArrayToString(item);\n } else {\n processedFormData[element] = item;\n }\n }\n\n return processedFormData;\n}\n\n/**\n * Prepares the response body\n */\nfunction getResponseBody(\n response: PipelineResponse,\n requestOptions: RequestParameters\n): RequestBodyType | undefined {\n // Set the default response type\n const contentType = response.headers.get(\"content-type\") ?? \"\";\n const firstType = contentType.split(\";\")[0];\n const bodyToParse: string = response.bodyAsText ?? \"\";\n\n if (firstType === \"text/plain\") {\n return String(bodyToParse);\n }\n\n /**\n * If we know from options or from the content type that we are receiving binary content,\n * encode it into a UInt8Array\n */\n if (requestOptions.binaryResponse || isBinaryContentType(firstType)) {\n return stringToBinaryArray(bodyToParse);\n }\n\n // Default to \"application/json\" and fallback to string;\n try {\n return bodyToParse ? JSON.parse(bodyToParse) : undefined;\n } catch (error) {\n // If we were supposed to get a JSON object and failed to\n // parse, throw a parse error\n if (firstType === \"application/json\") {\n throw createParseError(response, error);\n }\n\n // We are not sure how to handle the response so we return it as\n // plain text.\n return String(bodyToParse);\n }\n}\n\nfunction createParseError(response: PipelineResponse, err: any): RestError {\n const msg = `Error \"${err}\" occurred while parsing the response body - ${response.bodyAsText}.`;\n const errCode = err.code ?? RestError.PARSE_ERROR;\n return new RestError(msg, {\n code: errCode,\n statusCode: response.status,\n request: response.request,\n response: response,\n });\n}\n\nfunction isBinaryContentType(contentType: string) {\n return [\n \"application/octet-stream\",\n \"application/x-rdp\",\n \"image/bmp\",\n \"image/gif\",\n \"image/jpeg\",\n \"image/png\",\n \"application/pdf\",\n \"application/zip\",\n ].includes(contentType);\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { RequestParameters } from \"./common\";\nimport { URL } from \"./url\";\n\n/**\n * Builds the request url, filling in query and path parameters\n * @param baseUrl - base url which can be a template url\n * @param routePath - path to append to the baseUrl\n * @param pathParameters - values of the path parameters\n * @param options - request parameters including query parameters\n * @returns a full url with path and query parameters\n */\nexport function buildRequestUrl(\n baseUrl: string,\n routePath: string,\n pathParameters: string[],\n options: RequestParameters = {}\n): string {\n if (routePath.startsWith(\"https://\") || routePath.startsWith(\"http://\")) {\n return routePath;\n }\n baseUrl = buildBaseUrl(baseUrl, options);\n routePath = buildRoutePath(routePath, pathParameters, options);\n const requestUrl = appendQueryParams(`${baseUrl}/${routePath}`, options);\n const url = new URL(requestUrl);\n\n return (\n url\n .toString()\n // Remove double forward slashes\n .replace(/([^:]\\/)\\/+/g, \"$1\")\n );\n}\n\nfunction appendQueryParams(url: string, options: RequestParameters = {}) {\n if (!options.queryParameters) {\n return url;\n }\n let parsedUrl = new URL(url);\n const queryParams = options.queryParameters;\n for (const key of Object.keys(queryParams)) {\n const param = queryParams[key] as any;\n if (param === undefined || param === null) {\n continue;\n }\n if (!param.toString || typeof param.toString !== \"function\") {\n throw new Error(`Query parameters must be able to be represented as string, ${key} can't`);\n }\n const value = param.toISOString !== undefined ? param.toISOString() : param.toString();\n parsedUrl.searchParams.append(key, value);\n }\n\n if (options.skipUrlEncoding) {\n parsedUrl = skipQueryParameterEncoding(parsedUrl);\n }\n return parsedUrl.toString();\n}\n\nfunction skipQueryParameterEncoding(url: URL) {\n if (!url) {\n return url;\n }\n const searchPieces: string[] = [];\n for (let [name, value] of url.searchParams) {\n // QUIRK: searchParams.get retrieves the values decoded\n searchPieces.push(`${name}=${value}`);\n }\n // QUIRK: we have to set search manually as searchParams will encode comma when it shouldn't.\n url.search = searchPieces.length ? `?${searchPieces.join(\"&\")}` : \"\";\n return url;\n}\n\nexport function buildBaseUrl(baseUrl: string, options: RequestParameters): string {\n if (!options.pathParameters) {\n return baseUrl;\n }\n const pathParams = options.pathParameters;\n for (const [key, param] of Object.entries(pathParams)) {\n if (param === undefined || param === null) {\n throw new Error(`Path parameters ${key} must not be undefined or null`);\n }\n if (!param.toString || typeof param.toString !== \"function\") {\n throw new Error(`Path parameters must be able to be represented as string, ${key} can't`);\n }\n let value = param.toISOString !== undefined ? param.toISOString() : String(param);\n if (!options.skipUrlEncoding) {\n value = encodeURIComponent(param);\n }\n baseUrl = replaceAll(baseUrl, `{${key}}`, value) ?? \"\";\n }\n return baseUrl;\n}\n\nfunction buildRoutePath(\n routePath: string,\n pathParameters: string[],\n options: RequestParameters = {}\n) {\n for (const pathParam of pathParameters) {\n let value = pathParam;\n if (!options.skipUrlEncoding) {\n value = encodeURIComponent(pathParam);\n }\n\n routePath = routePath.replace(/{([^/]+)}/, value);\n }\n return routePath;\n}\n\n/**\n * Replace all of the instances of searchValue in value with the provided replaceValue.\n * @param value - The value to search and replace in.\n * @param searchValue - The value to search for in the value argument.\n * @param replaceValue - The value to replace searchValue with in the value argument.\n * @returns The value where each instance of searchValue was replaced with replacedValue.\n */\nexport function replaceAll(\n value: string | undefined,\n searchValue: string,\n replaceValue: string\n): string | undefined {\n return !value || !searchValue ? value : value.split(searchValue).join(replaceValue || \"\");\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { KeyCredential, TokenCredential, isTokenCredential } from \"@azure/core-auth\";\nimport { isCertificateCredential } from \"./certificateCredential\";\nimport { HttpClient, HttpMethods, Pipeline, PipelineOptions } from \"@azure/core-rest-pipeline\";\nimport { createDefaultPipeline } from \"./clientHelpers\";\nimport {\n Client,\n ClientOptions,\n HttpBrowserStreamResponse,\n HttpNodeStreamResponse,\n RequestParameters,\n StreamableMethod,\n} from \"./common\";\nimport { sendRequest, sendRequestAsStream } from \"./sendRequest\";\nimport { buildRequestUrl } from \"./urlHelpers\";\n\n/**\n * Creates a client with a default pipeline\n * @param baseUrl - Base endpoint for the client\n * @param options - Client options\n */\nexport function getClient(baseUrl: string, options?: ClientOptions): Client;\n/**\n * Creates a client with a default pipeline\n * @param baseUrl - Base endpoint for the client\n * @param credentials - Credentials to authenticate the requests\n * @param options - Client options\n */\nexport function getClient(\n baseUrl: string,\n credentials?: TokenCredential | KeyCredential,\n options?: ClientOptions\n): Client;\nexport function getClient(\n baseUrl: string,\n credentialsOrPipelineOptions?: (TokenCredential | KeyCredential) | ClientOptions,\n clientOptions: ClientOptions = {}\n): Client {\n let credentials: TokenCredential | KeyCredential | undefined;\n if (credentialsOrPipelineOptions) {\n if (isCredential(credentialsOrPipelineOptions)) {\n credentials = credentialsOrPipelineOptions;\n } else {\n clientOptions = credentialsOrPipelineOptions ?? {};\n }\n }\n\n const pipeline = createDefaultPipeline(baseUrl, credentials, clientOptions);\n if (clientOptions.additionalPolicies?.length) {\n for (const { policy, position } of clientOptions.additionalPolicies) {\n // Sign happens after Retry and is commonly needed to occur\n // before policies that intercept post-retry.\n const afterPhase = position === \"perRetry\" ? \"Sign\" : undefined;\n pipeline.addPolicy(policy, {\n afterPhase,\n });\n }\n }\n\n const { allowInsecureConnection, httpClient } = clientOptions;\n const client = (path: string, ...args: Array<any>) => {\n const getUrl = (requestOptions: RequestParameters) =>\n buildRequestUrl(baseUrl, path, args, { allowInsecureConnection, ...requestOptions });\n\n return {\n get: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"GET\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient\n );\n },\n post: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"POST\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient\n );\n },\n put: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"PUT\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient\n );\n },\n patch: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"PATCH\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient\n );\n },\n delete: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"DELETE\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient\n );\n },\n head: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"HEAD\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient\n );\n },\n options: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"OPTIONS\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient\n );\n },\n trace: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"TRACE\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient\n );\n },\n };\n };\n\n return {\n path: client,\n pathUnchecked: client,\n pipeline,\n };\n}\n\nfunction buildOperation(\n method: HttpMethods,\n url: string,\n pipeline: Pipeline,\n options: RequestParameters,\n allowInsecureConnection?: boolean,\n httpClient?: HttpClient\n): StreamableMethod {\n return {\n then: function (onFulfilled, onrejected) {\n return sendRequest(\n method,\n url,\n pipeline,\n { allowInsecureConnection, ...options },\n httpClient\n ).then(onFulfilled, onrejected);\n },\n async asBrowserStream() {\n return sendRequestAsStream<HttpBrowserStreamResponse>(\n method,\n url,\n pipeline,\n { allowInsecureConnection, ...options },\n httpClient\n );\n },\n async asNodeStream() {\n return sendRequestAsStream<HttpNodeStreamResponse>(\n method,\n url,\n pipeline,\n { allowInsecureConnection, ...options },\n httpClient\n );\n },\n };\n}\n\nfunction isCredential(\n param: (TokenCredential | KeyCredential) | PipelineOptions\n): param is TokenCredential | KeyCredential {\n if (\n (param as KeyCredential).key !== undefined ||\n isTokenCredential(param) ||\n isCertificateCredential(param)\n ) {\n return true;\n }\n\n return false;\n}\n"],"names":["RestError","createHttpHeaders","url","URL","createEmptyPipeline","isNode","proxyPolicy","decompressResponsePolicy","formDataPolicy","userAgentPolicy","setClientRequestIdPolicy","throttlingRetryPolicy","systemErrorRetryPolicy","exponentialRetryPolicy","redirectPolicy","logPolicy","isTokenCredential","bearerTokenAuthenticationPolicy","createDefaultHttpClient","createPipelineRequest"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/typeGuards.ts","../src/certificateCredential.ts","../src/restError.ts","../src/keyCredentialAuthenticationPolicy.ts","../src/apiVersionPolicy.ts","../src/clientHelpers.ts","../src/helpers/isReadableStream.ts","../src/helpers/getBinaryBody.ts","../src/sendRequest.ts","../src/urlHelpers.ts","../src/getClient.ts"],"sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * Helper TypeGuard that checks if something is defined or not.\n * @param thing - Anything\n * @internal\n */\nexport function isDefined<T>(thing: T | undefined | null): thing is T {\n return typeof thing !== \"undefined\" && thing !== null;\n}\n\n/**\n * Helper TypeGuard that checks if the input is an object with the specified properties.\n * @param thing - Anything.\n * @param properties - The name of the properties that should appear in the object.\n * @internal\n */\nexport function isObjectWithProperties<Thing extends unknown, PropertyName extends string>(\n thing: Thing,\n properties: PropertyName[]\n): thing is Thing & Record<PropertyName, unknown> {\n if (!isDefined(thing) || typeof thing !== \"object\") {\n return false;\n }\n\n for (const property of properties) {\n if (!objectHasProperty(thing, property)) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Helper TypeGuard that checks if the input is an object with the specified property.\n * @param thing - Any object.\n * @param property - The name of the property that should appear in the object.\n * @internal\n */\nfunction objectHasProperty<Thing extends unknown, PropertyName extends string>(\n thing: Thing,\n property: PropertyName\n): thing is Thing & Record<PropertyName, unknown> {\n return typeof thing === \"object\" && property in (thing as Record<string, unknown>);\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { isObjectWithProperties } from \"./typeGuards\";\n\n/**\n * Represents a certificate credential for authentication.\n */\nexport interface CertificateCredential {\n /**\n * Certificate used to authenticate\n */\n cert: string;\n /**\n * Certificate key\n */\n certKey: string;\n}\n\n/**\n * Tests an object to determine whether it implements CertificateCredential.\n *\n * @param credential - The assumed CertificateCredential to be tested.\n */\nexport function isCertificateCredential(credential: unknown): credential is CertificateCredential {\n return (\n isObjectWithProperties(credential, [\"certKey\", \"cert\"]) &&\n typeof credential.cert === \"string\" &&\n typeof credential.certKey === \"string\"\n );\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { PipelineResponse, RestError, createHttpHeaders } from \"@azure/core-rest-pipeline\";\nimport { PathUncheckedResponse } from \"./common\";\n\n/**\n * Creates a rest error from a PathUnchecked response\n */\nexport function createRestError(message: string, response: PathUncheckedResponse): RestError {\n return new RestError(message, {\n statusCode: statusCodeToNumber(response.status),\n request: response.request,\n response: toPipelineResponse(response),\n });\n}\n\nfunction toPipelineResponse(response: PathUncheckedResponse): PipelineResponse {\n return {\n headers: createHttpHeaders(response.headers),\n request: response.request,\n status: statusCodeToNumber(response.status) ?? -1,\n };\n}\n\nfunction statusCodeToNumber(statusCode: string): number | undefined {\n const status = Number.parseInt(statusCode);\n\n return Number.isNaN(status) ? undefined : status;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { KeyCredential } from \"@azure/core-auth\";\nimport {\n PipelinePolicy,\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n} from \"@azure/core-rest-pipeline\";\n\n/**\n * The programmatic identifier of the bearerTokenAuthenticationPolicy.\n */\nexport const keyCredentialAuthenticationPolicyName = \"keyCredentialAuthenticationPolicy\";\n\nexport function keyCredentialAuthenticationPolicy(\n credential: KeyCredential,\n apiKeyHeaderName: string\n): PipelinePolicy {\n return {\n name: keyCredentialAuthenticationPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n request.headers.set(apiKeyHeaderName, credential.key);\n return next(request);\n },\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { PipelinePolicy } from \"@azure/core-rest-pipeline\";\nimport { ClientOptions } from \"./common\";\n\nexport const apiVersionPolicyName = \"ApiVersionPolicy\";\n\n/**\n * Creates a policy that sets the apiVersion as a query parameter on every request\n * @param options - Client options\n * @returns Pipeline policy that sets the apiVersion as a query parameter on every request\n */\nexport function apiVersionPolicy(options: ClientOptions): PipelinePolicy {\n return {\n name: apiVersionPolicyName,\n sendRequest: (req, next) => {\n if (options.apiVersion) {\n const url = new URL(req.url);\n url.searchParams.append(\"api-version\", options.apiVersion);\n req.url = url.toString();\n }\n\n return next(req);\n },\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n HttpClient,\n Pipeline,\n bearerTokenAuthenticationPolicy,\n createDefaultHttpClient,\n createEmptyPipeline,\n decompressResponsePolicy,\n exponentialRetryPolicy,\n formDataPolicy,\n logPolicy,\n proxyPolicy,\n redirectPolicy,\n setClientRequestIdPolicy,\n systemErrorRetryPolicy,\n throttlingRetryPolicy,\n userAgentPolicy,\n} from \"@azure/core-rest-pipeline\";\nimport { isNode } from \"@azure/core-util\";\nimport { KeyCredential, TokenCredential, isTokenCredential } from \"@azure/core-auth\";\nimport { ClientOptions } from \"./common\";\nimport { keyCredentialAuthenticationPolicy } from \"./keyCredentialAuthenticationPolicy\";\nimport { apiVersionPolicy } from \"./apiVersionPolicy\";\n\nlet cachedHttpClient: HttpClient | undefined;\n\n/**\n * Creates a default rest pipeline to re-use accross Rest Level Clients\n */\nexport function createDefaultPipeline(\n baseUrl: string,\n credential?: TokenCredential | KeyCredential,\n options: ClientOptions = {}\n): Pipeline {\n const pipeline = createEmptyPipeline();\n\n if (isNode) {\n pipeline.addPolicy(proxyPolicy(options.proxyOptions));\n pipeline.addPolicy(decompressResponsePolicy());\n }\n\n pipeline.addPolicy(formDataPolicy());\n pipeline.addPolicy(userAgentPolicy(options.userAgentOptions));\n pipeline.addPolicy(setClientRequestIdPolicy());\n pipeline.addPolicy(throttlingRetryPolicy(), { phase: \"Retry\" });\n pipeline.addPolicy(systemErrorRetryPolicy(options.retryOptions), { phase: \"Retry\" });\n pipeline.addPolicy(exponentialRetryPolicy(options.retryOptions), { phase: \"Retry\" });\n pipeline.addPolicy(redirectPolicy(options.redirectOptions), { afterPhase: \"Retry\" });\n pipeline.addPolicy(logPolicy(), { afterPhase: \"Retry\" });\n\n pipeline.addPolicy(apiVersionPolicy(options));\n\n if (credential) {\n if (isTokenCredential(credential)) {\n const tokenPolicy = bearerTokenAuthenticationPolicy({\n credential,\n scopes: options.credentials?.scopes ?? `${baseUrl}/.default`,\n });\n pipeline.addPolicy(tokenPolicy);\n } else if (isKeyCredential(credential)) {\n if (!options.credentials?.apiKeyHeaderName) {\n throw new Error(`Missing API Key Header Name`);\n }\n const keyPolicy = keyCredentialAuthenticationPolicy(\n credential,\n options.credentials?.apiKeyHeaderName\n );\n pipeline.addPolicy(keyPolicy);\n }\n }\n\n return pipeline;\n}\n\nfunction isKeyCredential(credential: any): credential is KeyCredential {\n return (credential as KeyCredential).key !== undefined;\n}\n\nexport function getCachedDefaultHttpsClient(): HttpClient {\n if (!cachedHttpClient) {\n cachedHttpClient = createDefaultHttpClient();\n }\n\n return cachedHttpClient;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * Checks if the body is a ReadableStream supported by Node\n * @internal\n */\nexport function isReadableStream(body: unknown): body is NodeJS.ReadableStream {\n return Boolean(body) && typeof (body as any).pipe === \"function\";\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * Converts a string representing binary content into a Uint8Array\n */\nexport function stringToBinaryArray(content: string): Uint8Array {\n const arr = new Uint8Array(content.length);\n for (let i = 0; i < content.length; i++) {\n arr[i] = content.charCodeAt(i);\n }\n\n return arr;\n}\n\n/**\n * Converts binary content to its string representation\n */\nexport function binaryArrayToString(content: Uint8Array): string {\n let decodedBody = \"\";\n for (const element of content) {\n decodedBody += String.fromCharCode(element);\n }\n\n return decodedBody;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n FormDataMap,\n HttpClient,\n HttpMethods,\n Pipeline,\n PipelineRequest,\n PipelineResponse,\n RawHttpHeaders,\n RequestBodyType,\n RestError,\n createHttpHeaders,\n createPipelineRequest,\n} from \"@azure/core-rest-pipeline\";\nimport { getCachedDefaultHttpsClient } from \"./clientHelpers\";\nimport { isReadableStream } from \"./helpers/isReadableStream\";\nimport { HttpResponse, RequestParameters } from \"./common\";\nimport { binaryArrayToString, stringToBinaryArray } from \"./helpers/getBinaryBody\";\n\n/**\n * Helper function to send request used by the client\n * @param method - method to use to send the request\n * @param url - url to send the request to\n * @param pipeline - pipeline with the policies to run when sending the request\n * @param options - request options\n * @param customHttpClient - a custom HttpClient to use when making the request\n * @returns returns and HttpResponse\n */\nexport async function sendRequest(\n method: HttpMethods,\n url: string,\n pipeline: Pipeline,\n options: RequestParameters = {},\n customHttpClient?: HttpClient\n): Promise<HttpResponse> {\n const httpClient = customHttpClient ?? getCachedDefaultHttpsClient();\n const request = buildPipelineRequest(method, url, options);\n const response = await pipeline.sendRequest(httpClient, request);\n const rawHeaders: RawHttpHeaders = response.headers.toJSON();\n\n const parsedBody: RequestBodyType | undefined = getResponseBody(response, options);\n\n return {\n request,\n headers: rawHeaders,\n status: `${response.status}`,\n body: parsedBody,\n };\n}\n\n/**\n * Helper function to send request used by the client\n * @param method - method to use to send the request\n * @param url - url to send the request to\n * @param pipeline - pipeline with the policies to run when sending the request\n * @param options - request options\n * @param customHttpClient - a custom HttpClient to use when making the request\n * @returns returns and HttpResponse\n */\nexport async function sendRequestAsStream<\n TResponse extends HttpResponse & {\n body: NodeJS.ReadableStream | ReadableStream<Uint8Array> | undefined;\n }\n>(\n method: HttpMethods,\n url: string,\n pipeline: Pipeline,\n options: RequestParameters = {},\n customHttpClient?: HttpClient\n): Promise<TResponse> {\n const httpClient = customHttpClient ?? getCachedDefaultHttpsClient();\n const request = buildPipelineRequest(method, url, { ...options, responseAsStream: true });\n const response = await pipeline.sendRequest(httpClient, request);\n const rawHeaders: RawHttpHeaders = response.headers.toJSON();\n\n const parsedBody = response.browserStreamBody ?? response.readableStreamBody;\n\n return {\n request,\n headers: rawHeaders,\n status: `${response.status}`,\n body: parsedBody,\n } as TResponse;\n}\n\n/**\n * Function to determine the content-type of a body\n * this is used if an explicit content-type is not provided\n * @param body - body in the request\n * @returns returns the content-type\n */\nfunction getContentType(body: any): string {\n if (ArrayBuffer.isView(body)) {\n return \"application/octet-stream\";\n }\n\n // By default return json\n return \"application/json; charset=UTF-8\";\n}\n\nexport interface InternalRequestParameters extends RequestParameters {\n responseAsStream?: boolean;\n}\n\nfunction buildPipelineRequest(\n method: HttpMethods,\n url: string,\n options: InternalRequestParameters = {}\n): PipelineRequest {\n const { body, formData } = getRequestBody(options.body, options.contentType);\n const hasContent = body !== undefined || formData !== undefined;\n\n const headers = createHttpHeaders({\n ...(options.headers ? options.headers : {}),\n accept: options.accept ?? \"application/json\",\n ...(hasContent && {\n \"content-type\": options.contentType ?? getContentType(options.body),\n }),\n });\n\n return createPipelineRequest({\n url,\n method,\n body,\n formData,\n headers,\n allowInsecureConnection: options.allowInsecureConnection,\n enableBrowserStreams: true,\n streamResponseStatusCodes: options.responseAsStream\n ? new Set([Number.POSITIVE_INFINITY])\n : undefined,\n });\n}\n\ninterface RequestBody {\n body?: RequestBodyType;\n formData?: FormDataMap;\n}\n\n/**\n * Prepares the body before sending the request\n */\nfunction getRequestBody(body?: unknown, contentType: string = \"\"): RequestBody {\n if (body === undefined) {\n return { body: undefined };\n }\n\n if (isReadableStream(body)) {\n return { body };\n }\n\n if (!contentType && typeof body === \"string\") {\n return { body };\n }\n\n const firstType = contentType.split(\";\")[0];\n\n if (firstType === \"application/json\") {\n return { body: JSON.stringify(body) };\n }\n\n if (ArrayBuffer.isView(body)) {\n if (body instanceof Uint8Array) {\n return { body: binaryArrayToString(body) };\n } else {\n return { body: JSON.stringify(body) };\n }\n }\n\n switch (firstType) {\n case \"multipart/form-data\":\n return isFormData(body)\n ? { formData: processFormData(body) }\n : { body: JSON.stringify(body) };\n case \"text/plain\":\n return { body: String(body) };\n default:\n if (typeof body === \"string\") {\n return { body };\n }\n return { body: JSON.stringify(body) };\n }\n}\n\nfunction isFormData(body: unknown): body is FormDataMap {\n return body instanceof Object && Object.keys(body).length > 0;\n}\n\n/**\n * Checks if binary data is in Uint8Array format, if so decode it to a binary string\n * to send over the wire\n */\nfunction processFormData(formData?: FormDataMap) {\n if (!formData) {\n return formData;\n }\n\n const processedFormData: FormDataMap = {};\n\n for (const element in formData) {\n const item = formData[element];\n if (item instanceof Uint8Array) {\n processedFormData[element] = binaryArrayToString(item);\n } else {\n processedFormData[element] = item;\n }\n }\n\n return processedFormData;\n}\n\n/**\n * Prepares the response body\n */\nfunction getResponseBody(\n response: PipelineResponse,\n requestOptions: RequestParameters\n): RequestBodyType | undefined {\n // Set the default response type\n const contentType = response.headers.get(\"content-type\") ?? \"\";\n const firstType = contentType.split(\";\")[0];\n const bodyToParse: string = response.bodyAsText ?? \"\";\n\n if (firstType === \"text/plain\") {\n return String(bodyToParse);\n }\n\n /**\n * If we know from options or from the content type that we are receiving binary content,\n * encode it into a UInt8Array\n */\n if (requestOptions.binaryResponse || isBinaryContentType(firstType)) {\n return stringToBinaryArray(bodyToParse);\n }\n\n // Default to \"application/json\" and fallback to string;\n try {\n return bodyToParse ? JSON.parse(bodyToParse) : undefined;\n } catch (error: any) {\n // If we were supposed to get a JSON object and failed to\n // parse, throw a parse error\n if (firstType === \"application/json\") {\n throw createParseError(response, error);\n }\n\n // We are not sure how to handle the response so we return it as\n // plain text.\n return String(bodyToParse);\n }\n}\n\nfunction createParseError(response: PipelineResponse, err: any): RestError {\n const msg = `Error \"${err}\" occurred while parsing the response body - ${response.bodyAsText}.`;\n const errCode = err.code ?? RestError.PARSE_ERROR;\n return new RestError(msg, {\n code: errCode,\n statusCode: response.status,\n request: response.request,\n response: response,\n });\n}\n\nfunction isBinaryContentType(contentType: string) {\n return [\n \"application/octet-stream\",\n \"application/x-rdp\",\n \"image/bmp\",\n \"image/gif\",\n \"image/jpeg\",\n \"image/png\",\n \"application/pdf\",\n \"application/zip\",\n ].includes(contentType);\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { RequestParameters } from \"./common\";\n\n/**\n * Builds the request url, filling in query and path parameters\n * @param baseUrl - base url which can be a template url\n * @param routePath - path to append to the baseUrl\n * @param pathParameters - values of the path parameters\n * @param options - request parameters including query parameters\n * @returns a full url with path and query parameters\n */\nexport function buildRequestUrl(\n baseUrl: string,\n routePath: string,\n pathParameters: string[],\n options: RequestParameters = {}\n): string {\n if (routePath.startsWith(\"https://\") || routePath.startsWith(\"http://\")) {\n return routePath;\n }\n baseUrl = buildBaseUrl(baseUrl, options);\n routePath = buildRoutePath(routePath, pathParameters, options);\n const requestUrl = appendQueryParams(`${baseUrl}/${routePath}`, options);\n const url = new URL(requestUrl);\n\n return (\n url\n .toString()\n // Remove double forward slashes\n .replace(/([^:]\\/)\\/+/g, \"$1\")\n );\n}\n\nfunction appendQueryParams(url: string, options: RequestParameters = {}) {\n if (!options.queryParameters) {\n return url;\n }\n let parsedUrl = new URL(url);\n const queryParams = options.queryParameters;\n for (const key of Object.keys(queryParams)) {\n const param = queryParams[key] as any;\n if (param === undefined || param === null) {\n continue;\n }\n if (!param.toString || typeof param.toString !== \"function\") {\n throw new Error(`Query parameters must be able to be represented as string, ${key} can't`);\n }\n const value = param.toISOString !== undefined ? param.toISOString() : param.toString();\n parsedUrl.searchParams.append(key, value);\n }\n\n if (options.skipUrlEncoding) {\n parsedUrl = skipQueryParameterEncoding(parsedUrl);\n }\n return parsedUrl.toString();\n}\n\nfunction skipQueryParameterEncoding(url: URL) {\n if (!url) {\n return url;\n }\n const searchPieces: string[] = [];\n for (const [name, value] of url.searchParams) {\n // QUIRK: searchParams.get retrieves the values decoded\n searchPieces.push(`${name}=${value}`);\n }\n // QUIRK: we have to set search manually as searchParams will encode comma when it shouldn't.\n url.search = searchPieces.length ? `?${searchPieces.join(\"&\")}` : \"\";\n return url;\n}\n\nexport function buildBaseUrl(baseUrl: string, options: RequestParameters): string {\n if (!options.pathParameters) {\n return baseUrl;\n }\n const pathParams = options.pathParameters;\n for (const [key, param] of Object.entries(pathParams)) {\n if (param === undefined || param === null) {\n throw new Error(`Path parameters ${key} must not be undefined or null`);\n }\n if (!param.toString || typeof param.toString !== \"function\") {\n throw new Error(`Path parameters must be able to be represented as string, ${key} can't`);\n }\n let value = param.toISOString !== undefined ? param.toISOString() : String(param);\n if (!options.skipUrlEncoding) {\n value = encodeURIComponent(param);\n }\n baseUrl = replaceAll(baseUrl, `{${key}}`, value) ?? \"\";\n }\n return baseUrl;\n}\n\nfunction buildRoutePath(\n routePath: string,\n pathParameters: string[],\n options: RequestParameters = {}\n) {\n for (const pathParam of pathParameters) {\n let value = pathParam;\n if (!options.skipUrlEncoding) {\n value = encodeURIComponent(pathParam);\n }\n\n routePath = routePath.replace(/{([^/]+)}/, value);\n }\n return routePath;\n}\n\n/**\n * Replace all of the instances of searchValue in value with the provided replaceValue.\n * @param value - The value to search and replace in.\n * @param searchValue - The value to search for in the value argument.\n * @param replaceValue - The value to replace searchValue with in the value argument.\n * @returns The value where each instance of searchValue was replaced with replacedValue.\n */\nexport function replaceAll(\n value: string | undefined,\n searchValue: string,\n replaceValue: string\n): string | undefined {\n return !value || !searchValue ? value : value.split(searchValue).join(replaceValue || \"\");\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { KeyCredential, TokenCredential, isTokenCredential } from \"@azure/core-auth\";\nimport { isCertificateCredential } from \"./certificateCredential\";\nimport { HttpClient, HttpMethods, Pipeline, PipelineOptions } from \"@azure/core-rest-pipeline\";\nimport { createDefaultPipeline } from \"./clientHelpers\";\nimport {\n Client,\n ClientOptions,\n HttpBrowserStreamResponse,\n HttpNodeStreamResponse,\n RequestParameters,\n StreamableMethod,\n} from \"./common\";\nimport { sendRequest, sendRequestAsStream } from \"./sendRequest\";\nimport { buildRequestUrl } from \"./urlHelpers\";\n\n/**\n * Creates a client with a default pipeline\n * @param baseUrl - Base endpoint for the client\n * @param options - Client options\n */\nexport function getClient(baseUrl: string, options?: ClientOptions): Client;\n/**\n * Creates a client with a default pipeline\n * @param baseUrl - Base endpoint for the client\n * @param credentials - Credentials to authenticate the requests\n * @param options - Client options\n */\nexport function getClient(\n baseUrl: string,\n credentials?: TokenCredential | KeyCredential,\n options?: ClientOptions\n): Client;\nexport function getClient(\n baseUrl: string,\n credentialsOrPipelineOptions?: (TokenCredential | KeyCredential) | ClientOptions,\n clientOptions: ClientOptions = {}\n): Client {\n let credentials: TokenCredential | KeyCredential | undefined;\n if (credentialsOrPipelineOptions) {\n if (isCredential(credentialsOrPipelineOptions)) {\n credentials = credentialsOrPipelineOptions;\n } else {\n clientOptions = credentialsOrPipelineOptions ?? {};\n }\n }\n\n const pipeline = createDefaultPipeline(baseUrl, credentials, clientOptions);\n if (clientOptions.additionalPolicies?.length) {\n for (const { policy, position } of clientOptions.additionalPolicies) {\n // Sign happens after Retry and is commonly needed to occur\n // before policies that intercept post-retry.\n const afterPhase = position === \"perRetry\" ? \"Sign\" : undefined;\n pipeline.addPolicy(policy, {\n afterPhase,\n });\n }\n }\n\n const { allowInsecureConnection, httpClient } = clientOptions;\n const client = (path: string, ...args: Array<any>) => {\n const getUrl = (requestOptions: RequestParameters) =>\n buildRequestUrl(baseUrl, path, args, { allowInsecureConnection, ...requestOptions });\n\n return {\n get: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"GET\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient\n );\n },\n post: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"POST\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient\n );\n },\n put: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"PUT\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient\n );\n },\n patch: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"PATCH\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient\n );\n },\n delete: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"DELETE\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient\n );\n },\n head: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"HEAD\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient\n );\n },\n options: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"OPTIONS\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient\n );\n },\n trace: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"TRACE\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient\n );\n },\n };\n };\n\n return {\n path: client,\n pathUnchecked: client,\n pipeline,\n };\n}\n\nfunction buildOperation(\n method: HttpMethods,\n url: string,\n pipeline: Pipeline,\n options: RequestParameters,\n allowInsecureConnection?: boolean,\n httpClient?: HttpClient\n): StreamableMethod {\n return {\n then: function (onFulfilled, onrejected) {\n return sendRequest(\n method,\n url,\n pipeline,\n { allowInsecureConnection, ...options },\n httpClient\n ).then(onFulfilled, onrejected);\n },\n async asBrowserStream() {\n return sendRequestAsStream<HttpBrowserStreamResponse>(\n method,\n url,\n pipeline,\n { allowInsecureConnection, ...options },\n httpClient\n );\n },\n async asNodeStream() {\n return sendRequestAsStream<HttpNodeStreamResponse>(\n method,\n url,\n pipeline,\n { allowInsecureConnection, ...options },\n httpClient\n );\n },\n };\n}\n\nfunction isCredential(\n param: (TokenCredential | KeyCredential) | PipelineOptions\n): param is TokenCredential | KeyCredential {\n if (\n (param as KeyCredential).key !== undefined ||\n isTokenCredential(param) ||\n isCertificateCredential(param)\n ) {\n return true;\n }\n\n return false;\n}\n"],"names":["RestError","createHttpHeaders","createEmptyPipeline","isNode","proxyPolicy","decompressResponsePolicy","formDataPolicy","userAgentPolicy","setClientRequestIdPolicy","throttlingRetryPolicy","systemErrorRetryPolicy","exponentialRetryPolicy","redirectPolicy","logPolicy","isTokenCredential","bearerTokenAuthenticationPolicy","createDefaultHttpClient","createPipelineRequest"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
- import { URL } from "./url";
4
3
  export const apiVersionPolicyName = "ApiVersionPolicy";
5
4
  /**
6
5
  * Creates a policy that sets the apiVersion as a query parameter on every request
@@ -1 +1 @@
1
- {"version":3,"file":"apiVersionPolicy.js","sourceRoot":"","sources":["../../src/apiVersionPolicy.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAIlC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAAkB,CAAC;AAEvD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAsB;IACrD,OAAO;QACL,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACzB,IAAI,OAAO,CAAC,UAAU,EAAE;gBACtB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC7B,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC3D,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;aAC1B;YAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { PipelinePolicy } from \"@azure/core-rest-pipeline\";\nimport { ClientOptions } from \"./common\";\nimport { URL } from \"./url\";\n\nexport const apiVersionPolicyName = \"ApiVersionPolicy\";\n\n/**\n * Creates a policy that sets the apiVersion as a query parameter on every request\n * @param options - Client options\n * @returns Pipeline policy that sets the apiVersion as a query parameter on every request\n */\nexport function apiVersionPolicy(options: ClientOptions): PipelinePolicy {\n return {\n name: apiVersionPolicyName,\n sendRequest: (req, next) => {\n if (options.apiVersion) {\n const url = new URL(req.url);\n url.searchParams.append(\"api-version\", options.apiVersion);\n req.url = url.toString();\n }\n\n return next(req);\n },\n };\n}\n"]}
1
+ {"version":3,"file":"apiVersionPolicy.js","sourceRoot":"","sources":["../../src/apiVersionPolicy.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAKlC,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAAkB,CAAC;AAEvD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAsB;IACrD,OAAO;QACL,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACzB,IAAI,OAAO,CAAC,UAAU,EAAE;gBACtB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC7B,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC3D,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;aAC1B;YAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { PipelinePolicy } from \"@azure/core-rest-pipeline\";\nimport { ClientOptions } from \"./common\";\n\nexport const apiVersionPolicyName = \"ApiVersionPolicy\";\n\n/**\n * Creates a policy that sets the apiVersion as a query parameter on every request\n * @param options - Client options\n * @returns Pipeline policy that sets the apiVersion as a query parameter on every request\n */\nexport function apiVersionPolicy(options: ClientOptions): PipelinePolicy {\n return {\n name: apiVersionPolicyName,\n sendRequest: (req, next) => {\n if (options.apiVersion) {\n const url = new URL(req.url);\n url.searchParams.append(\"api-version\", options.apiVersion);\n req.url = url.toString();\n }\n\n return next(req);\n },\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"sendRequest.js","sourceRoot":"","sources":["../../src/sendRequest.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n FormDataMap,\n HttpClient,\n HttpMethods,\n Pipeline,\n PipelineRequest,\n PipelineResponse,\n RawHttpHeaders,\n RequestBodyType,\n RestError,\n createHttpHeaders,\n createPipelineRequest,\n} from \"@azure/core-rest-pipeline\";\nimport { getCachedDefaultHttpsClient } from \"./clientHelpers\";\nimport { isReadableStream } from \"./helpers/isReadableStream\";\nimport { HttpResponse, RequestParameters } from \"./common\";\nimport { binaryArrayToString, stringToBinaryArray } from \"./helpers/getBinaryBody\";\n\n/**\n * Helper function to send request used by the client\n * @param method - method to use to send the request\n * @param url - url to send the request to\n * @param pipeline - pipeline with the policies to run when sending the request\n * @param options - request options\n * @param customHttpClient - a custom HttpClient to use when making the request\n * @returns returns and HttpResponse\n */\nexport async function sendRequest(\n method: HttpMethods,\n url: string,\n pipeline: Pipeline,\n options: RequestParameters = {},\n customHttpClient?: HttpClient\n): Promise<HttpResponse> {\n const httpClient = customHttpClient ?? getCachedDefaultHttpsClient();\n const request = buildPipelineRequest(method, url, options);\n const response = await pipeline.sendRequest(httpClient, request);\n const rawHeaders: RawHttpHeaders = response.headers.toJSON();\n\n const parsedBody: RequestBodyType | undefined = getResponseBody(response, options);\n\n return {\n request,\n headers: rawHeaders,\n status: `${response.status}`,\n body: parsedBody,\n };\n}\n\n/**\n * Helper function to send request used by the client\n * @param method - method to use to send the request\n * @param url - url to send the request to\n * @param pipeline - pipeline with the policies to run when sending the request\n * @param options - request options\n * @param customHttpClient - a custom HttpClient to use when making the request\n * @returns returns and HttpResponse\n */\nexport async function sendRequestAsStream<\n TResponse extends HttpResponse & {\n body: NodeJS.ReadableStream | ReadableStream<Uint8Array> | undefined;\n }\n>(\n method: HttpMethods,\n url: string,\n pipeline: Pipeline,\n options: RequestParameters = {},\n customHttpClient?: HttpClient\n): Promise<TResponse> {\n const httpClient = customHttpClient ?? getCachedDefaultHttpsClient();\n const request = buildPipelineRequest(method, url, { ...options, responseAsStream: true });\n const response = await pipeline.sendRequest(httpClient, request);\n const rawHeaders: RawHttpHeaders = response.headers.toJSON();\n\n const parsedBody = response.browserStreamBody ?? response.readableStreamBody;\n\n return {\n request,\n headers: rawHeaders,\n status: `${response.status}`,\n body: parsedBody,\n } as TResponse;\n}\n\n/**\n * Function to determine the content-type of a body\n * this is used if an explicit content-type is not provided\n * @param body - body in the request\n * @returns returns the content-type\n */\nfunction getContentType(body: any): string {\n if (ArrayBuffer.isView(body)) {\n return \"application/octet-stream\";\n }\n\n // By default return json\n return \"application/json; charset=UTF-8\";\n}\n\nexport interface InternalRequestParameters extends RequestParameters {\n responseAsStream?: boolean;\n}\n\nfunction buildPipelineRequest(\n method: HttpMethods,\n url: string,\n options: InternalRequestParameters = {}\n): PipelineRequest {\n const { body, formData } = getRequestBody(options.body, options.contentType);\n const hasContent = body !== undefined || formData !== undefined;\n\n const headers = createHttpHeaders({\n ...(options.headers ? options.headers : {}),\n accept: options.accept ?? \"application/json\",\n ...(hasContent && {\n \"content-type\": options.contentType ?? getContentType(options.body),\n }),\n });\n\n return createPipelineRequest({\n url,\n method,\n body,\n formData,\n headers,\n allowInsecureConnection: options.allowInsecureConnection,\n enableBrowserStreams: true,\n streamResponseStatusCodes: options.responseAsStream\n ? new Set([Number.POSITIVE_INFINITY])\n : undefined,\n });\n}\n\ninterface RequestBody {\n body?: RequestBodyType;\n formData?: FormDataMap;\n}\n\n/**\n * Prepares the body before sending the request\n */\nfunction getRequestBody(body?: unknown, contentType: string = \"\"): RequestBody {\n if (body === undefined) {\n return { body: undefined };\n }\n\n if (isReadableStream(body)) {\n return { body };\n }\n\n if (!contentType && typeof body === \"string\") {\n return { body };\n }\n\n const firstType = contentType.split(\";\")[0];\n\n if (firstType === \"application/json\") {\n return { body: JSON.stringify(body) };\n }\n\n if (ArrayBuffer.isView(body)) {\n if (body instanceof Uint8Array) {\n return { body: binaryArrayToString(body) };\n } else {\n return { body: JSON.stringify(body) };\n }\n }\n\n switch (firstType) {\n case \"multipart/form-data\":\n return isFormData(body)\n ? { formData: processFormData(body) }\n : { body: JSON.stringify(body) };\n case \"text/plain\":\n return { body: String(body) };\n default:\n if (typeof body === \"string\") {\n return { body };\n }\n return { body: JSON.stringify(body) };\n }\n}\n\nfunction isFormData(body: unknown): body is FormDataMap {\n return body instanceof Object && Object.keys(body).length > 0;\n}\n\n/**\n * Checks if binary data is in Uint8Array format, if so decode it to a binary string\n * to send over the wire\n */\nfunction processFormData(formData?: FormDataMap) {\n if (!formData) {\n return formData;\n }\n\n const processedFormData: FormDataMap = {};\n\n for (const element in formData) {\n const item = formData[element];\n if (item instanceof Uint8Array) {\n processedFormData[element] = binaryArrayToString(item);\n } else {\n processedFormData[element] = item;\n }\n }\n\n return processedFormData;\n}\n\n/**\n * Prepares the response body\n */\nfunction getResponseBody(\n response: PipelineResponse,\n requestOptions: RequestParameters\n): RequestBodyType | undefined {\n // Set the default response type\n const contentType = response.headers.get(\"content-type\") ?? \"\";\n const firstType = contentType.split(\";\")[0];\n const bodyToParse: string = response.bodyAsText ?? \"\";\n\n if (firstType === \"text/plain\") {\n return String(bodyToParse);\n }\n\n /**\n * If we know from options or from the content type that we are receiving binary content,\n * encode it into a UInt8Array\n */\n if (requestOptions.binaryResponse || isBinaryContentType(firstType)) {\n return stringToBinaryArray(bodyToParse);\n }\n\n // Default to \"application/json\" and fallback to string;\n try {\n return bodyToParse ? JSON.parse(bodyToParse) : undefined;\n } catch (error) {\n // If we were supposed to get a JSON object and failed to\n // parse, throw a parse error\n if (firstType === \"application/json\") {\n throw createParseError(response, error);\n }\n\n // We are not sure how to handle the response so we return it as\n // plain text.\n return String(bodyToParse);\n }\n}\n\nfunction createParseError(response: PipelineResponse, err: any): RestError {\n const msg = `Error \"${err}\" occurred while parsing the response body - ${response.bodyAsText}.`;\n const errCode = err.code ?? RestError.PARSE_ERROR;\n return new RestError(msg, {\n code: errCode,\n statusCode: response.status,\n request: response.request,\n response: response,\n });\n}\n\nfunction isBinaryContentType(contentType: string) {\n return [\n \"application/octet-stream\",\n \"application/x-rdp\",\n \"image/bmp\",\n \"image/gif\",\n \"image/jpeg\",\n \"image/png\",\n \"application/pdf\",\n \"application/zip\",\n ].includes(contentType);\n}\n"]}
1
+ {"version":3,"file":"sendRequest.js","sourceRoot":"","sources":["../../src/sendRequest.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n FormDataMap,\n HttpClient,\n HttpMethods,\n Pipeline,\n PipelineRequest,\n PipelineResponse,\n RawHttpHeaders,\n RequestBodyType,\n RestError,\n createHttpHeaders,\n createPipelineRequest,\n} from \"@azure/core-rest-pipeline\";\nimport { getCachedDefaultHttpsClient } from \"./clientHelpers\";\nimport { isReadableStream } from \"./helpers/isReadableStream\";\nimport { HttpResponse, RequestParameters } from \"./common\";\nimport { binaryArrayToString, stringToBinaryArray } from \"./helpers/getBinaryBody\";\n\n/**\n * Helper function to send request used by the client\n * @param method - method to use to send the request\n * @param url - url to send the request to\n * @param pipeline - pipeline with the policies to run when sending the request\n * @param options - request options\n * @param customHttpClient - a custom HttpClient to use when making the request\n * @returns returns and HttpResponse\n */\nexport async function sendRequest(\n method: HttpMethods,\n url: string,\n pipeline: Pipeline,\n options: RequestParameters = {},\n customHttpClient?: HttpClient\n): Promise<HttpResponse> {\n const httpClient = customHttpClient ?? getCachedDefaultHttpsClient();\n const request = buildPipelineRequest(method, url, options);\n const response = await pipeline.sendRequest(httpClient, request);\n const rawHeaders: RawHttpHeaders = response.headers.toJSON();\n\n const parsedBody: RequestBodyType | undefined = getResponseBody(response, options);\n\n return {\n request,\n headers: rawHeaders,\n status: `${response.status}`,\n body: parsedBody,\n };\n}\n\n/**\n * Helper function to send request used by the client\n * @param method - method to use to send the request\n * @param url - url to send the request to\n * @param pipeline - pipeline with the policies to run when sending the request\n * @param options - request options\n * @param customHttpClient - a custom HttpClient to use when making the request\n * @returns returns and HttpResponse\n */\nexport async function sendRequestAsStream<\n TResponse extends HttpResponse & {\n body: NodeJS.ReadableStream | ReadableStream<Uint8Array> | undefined;\n }\n>(\n method: HttpMethods,\n url: string,\n pipeline: Pipeline,\n options: RequestParameters = {},\n customHttpClient?: HttpClient\n): Promise<TResponse> {\n const httpClient = customHttpClient ?? getCachedDefaultHttpsClient();\n const request = buildPipelineRequest(method, url, { ...options, responseAsStream: true });\n const response = await pipeline.sendRequest(httpClient, request);\n const rawHeaders: RawHttpHeaders = response.headers.toJSON();\n\n const parsedBody = response.browserStreamBody ?? response.readableStreamBody;\n\n return {\n request,\n headers: rawHeaders,\n status: `${response.status}`,\n body: parsedBody,\n } as TResponse;\n}\n\n/**\n * Function to determine the content-type of a body\n * this is used if an explicit content-type is not provided\n * @param body - body in the request\n * @returns returns the content-type\n */\nfunction getContentType(body: any): string {\n if (ArrayBuffer.isView(body)) {\n return \"application/octet-stream\";\n }\n\n // By default return json\n return \"application/json; charset=UTF-8\";\n}\n\nexport interface InternalRequestParameters extends RequestParameters {\n responseAsStream?: boolean;\n}\n\nfunction buildPipelineRequest(\n method: HttpMethods,\n url: string,\n options: InternalRequestParameters = {}\n): PipelineRequest {\n const { body, formData } = getRequestBody(options.body, options.contentType);\n const hasContent = body !== undefined || formData !== undefined;\n\n const headers = createHttpHeaders({\n ...(options.headers ? options.headers : {}),\n accept: options.accept ?? \"application/json\",\n ...(hasContent && {\n \"content-type\": options.contentType ?? getContentType(options.body),\n }),\n });\n\n return createPipelineRequest({\n url,\n method,\n body,\n formData,\n headers,\n allowInsecureConnection: options.allowInsecureConnection,\n enableBrowserStreams: true,\n streamResponseStatusCodes: options.responseAsStream\n ? new Set([Number.POSITIVE_INFINITY])\n : undefined,\n });\n}\n\ninterface RequestBody {\n body?: RequestBodyType;\n formData?: FormDataMap;\n}\n\n/**\n * Prepares the body before sending the request\n */\nfunction getRequestBody(body?: unknown, contentType: string = \"\"): RequestBody {\n if (body === undefined) {\n return { body: undefined };\n }\n\n if (isReadableStream(body)) {\n return { body };\n }\n\n if (!contentType && typeof body === \"string\") {\n return { body };\n }\n\n const firstType = contentType.split(\";\")[0];\n\n if (firstType === \"application/json\") {\n return { body: JSON.stringify(body) };\n }\n\n if (ArrayBuffer.isView(body)) {\n if (body instanceof Uint8Array) {\n return { body: binaryArrayToString(body) };\n } else {\n return { body: JSON.stringify(body) };\n }\n }\n\n switch (firstType) {\n case \"multipart/form-data\":\n return isFormData(body)\n ? { formData: processFormData(body) }\n : { body: JSON.stringify(body) };\n case \"text/plain\":\n return { body: String(body) };\n default:\n if (typeof body === \"string\") {\n return { body };\n }\n return { body: JSON.stringify(body) };\n }\n}\n\nfunction isFormData(body: unknown): body is FormDataMap {\n return body instanceof Object && Object.keys(body).length > 0;\n}\n\n/**\n * Checks if binary data is in Uint8Array format, if so decode it to a binary string\n * to send over the wire\n */\nfunction processFormData(formData?: FormDataMap) {\n if (!formData) {\n return formData;\n }\n\n const processedFormData: FormDataMap = {};\n\n for (const element in formData) {\n const item = formData[element];\n if (item instanceof Uint8Array) {\n processedFormData[element] = binaryArrayToString(item);\n } else {\n processedFormData[element] = item;\n }\n }\n\n return processedFormData;\n}\n\n/**\n * Prepares the response body\n */\nfunction getResponseBody(\n response: PipelineResponse,\n requestOptions: RequestParameters\n): RequestBodyType | undefined {\n // Set the default response type\n const contentType = response.headers.get(\"content-type\") ?? \"\";\n const firstType = contentType.split(\";\")[0];\n const bodyToParse: string = response.bodyAsText ?? \"\";\n\n if (firstType === \"text/plain\") {\n return String(bodyToParse);\n }\n\n /**\n * If we know from options or from the content type that we are receiving binary content,\n * encode it into a UInt8Array\n */\n if (requestOptions.binaryResponse || isBinaryContentType(firstType)) {\n return stringToBinaryArray(bodyToParse);\n }\n\n // Default to \"application/json\" and fallback to string;\n try {\n return bodyToParse ? JSON.parse(bodyToParse) : undefined;\n } catch (error: any) {\n // If we were supposed to get a JSON object and failed to\n // parse, throw a parse error\n if (firstType === \"application/json\") {\n throw createParseError(response, error);\n }\n\n // We are not sure how to handle the response so we return it as\n // plain text.\n return String(bodyToParse);\n }\n}\n\nfunction createParseError(response: PipelineResponse, err: any): RestError {\n const msg = `Error \"${err}\" occurred while parsing the response body - ${response.bodyAsText}.`;\n const errCode = err.code ?? RestError.PARSE_ERROR;\n return new RestError(msg, {\n code: errCode,\n statusCode: response.status,\n request: response.request,\n response: response,\n });\n}\n\nfunction isBinaryContentType(contentType: string) {\n return [\n \"application/octet-stream\",\n \"application/x-rdp\",\n \"image/bmp\",\n \"image/gif\",\n \"image/jpeg\",\n \"image/png\",\n \"application/pdf\",\n \"application/zip\",\n ].includes(contentType);\n}\n"]}
@@ -1,6 +1,5 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
- import { URL } from "./url";
4
3
  /**
5
4
  * Builds the request url, filling in query and path parameters
6
5
  * @param baseUrl - base url which can be a template url
@@ -49,7 +48,7 @@ function skipQueryParameterEncoding(url) {
49
48
  return url;
50
49
  }
51
50
  const searchPieces = [];
52
- for (let [name, value] of url.searchParams) {
51
+ for (const [name, value] of url.searchParams) {
53
52
  // QUIRK: searchParams.get retrieves the values decoded
54
53
  searchPieces.push(`${name}=${value}`);
55
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"urlHelpers.js","sourceRoot":"","sources":["../../src/urlHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { RequestParameters } from \"./common\";\nimport { URL } from \"./url\";\n\n/**\n * Builds the request url, filling in query and path parameters\n * @param baseUrl - base url which can be a template url\n * @param routePath - path to append to the baseUrl\n * @param pathParameters - values of the path parameters\n * @param options - request parameters including query parameters\n * @returns a full url with path and query parameters\n */\nexport function buildRequestUrl(\n baseUrl: string,\n routePath: string,\n pathParameters: string[],\n options: RequestParameters = {}\n): string {\n if (routePath.startsWith(\"https://\") || routePath.startsWith(\"http://\")) {\n return routePath;\n }\n baseUrl = buildBaseUrl(baseUrl, options);\n routePath = buildRoutePath(routePath, pathParameters, options);\n const requestUrl = appendQueryParams(`${baseUrl}/${routePath}`, options);\n const url = new URL(requestUrl);\n\n return (\n url\n .toString()\n // Remove double forward slashes\n .replace(/([^:]\\/)\\/+/g, \"$1\")\n );\n}\n\nfunction appendQueryParams(url: string, options: RequestParameters = {}) {\n if (!options.queryParameters) {\n return url;\n }\n let parsedUrl = new URL(url);\n const queryParams = options.queryParameters;\n for (const key of Object.keys(queryParams)) {\n const param = queryParams[key] as any;\n if (param === undefined || param === null) {\n continue;\n }\n if (!param.toString || typeof param.toString !== \"function\") {\n throw new Error(`Query parameters must be able to be represented as string, ${key} can't`);\n }\n const value = param.toISOString !== undefined ? param.toISOString() : param.toString();\n parsedUrl.searchParams.append(key, value);\n }\n\n if (options.skipUrlEncoding) {\n parsedUrl = skipQueryParameterEncoding(parsedUrl);\n }\n return parsedUrl.toString();\n}\n\nfunction skipQueryParameterEncoding(url: URL) {\n if (!url) {\n return url;\n }\n const searchPieces: string[] = [];\n for (let [name, value] of url.searchParams) {\n // QUIRK: searchParams.get retrieves the values decoded\n searchPieces.push(`${name}=${value}`);\n }\n // QUIRK: we have to set search manually as searchParams will encode comma when it shouldn't.\n url.search = searchPieces.length ? `?${searchPieces.join(\"&\")}` : \"\";\n return url;\n}\n\nexport function buildBaseUrl(baseUrl: string, options: RequestParameters): string {\n if (!options.pathParameters) {\n return baseUrl;\n }\n const pathParams = options.pathParameters;\n for (const [key, param] of Object.entries(pathParams)) {\n if (param === undefined || param === null) {\n throw new Error(`Path parameters ${key} must not be undefined or null`);\n }\n if (!param.toString || typeof param.toString !== \"function\") {\n throw new Error(`Path parameters must be able to be represented as string, ${key} can't`);\n }\n let value = param.toISOString !== undefined ? param.toISOString() : String(param);\n if (!options.skipUrlEncoding) {\n value = encodeURIComponent(param);\n }\n baseUrl = replaceAll(baseUrl, `{${key}}`, value) ?? \"\";\n }\n return baseUrl;\n}\n\nfunction buildRoutePath(\n routePath: string,\n pathParameters: string[],\n options: RequestParameters = {}\n) {\n for (const pathParam of pathParameters) {\n let value = pathParam;\n if (!options.skipUrlEncoding) {\n value = encodeURIComponent(pathParam);\n }\n\n routePath = routePath.replace(/{([^/]+)}/, value);\n }\n return routePath;\n}\n\n/**\n * Replace all of the instances of searchValue in value with the provided replaceValue.\n * @param value - The value to search and replace in.\n * @param searchValue - The value to search for in the value argument.\n * @param replaceValue - The value to replace searchValue with in the value argument.\n * @returns The value where each instance of searchValue was replaced with replacedValue.\n */\nexport function replaceAll(\n value: string | undefined,\n searchValue: string,\n replaceValue: string\n): string | undefined {\n return !value || !searchValue ? value : value.split(searchValue).join(replaceValue || \"\");\n}\n"]}
1
+ {"version":3,"file":"urlHelpers.js","sourceRoot":"","sources":["../../src/urlHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { RequestParameters } from \"./common\";\n\n/**\n * Builds the request url, filling in query and path parameters\n * @param baseUrl - base url which can be a template url\n * @param routePath - path to append to the baseUrl\n * @param pathParameters - values of the path parameters\n * @param options - request parameters including query parameters\n * @returns a full url with path and query parameters\n */\nexport function buildRequestUrl(\n baseUrl: string,\n routePath: string,\n pathParameters: string[],\n options: RequestParameters = {}\n): string {\n if (routePath.startsWith(\"https://\") || routePath.startsWith(\"http://\")) {\n return routePath;\n }\n baseUrl = buildBaseUrl(baseUrl, options);\n routePath = buildRoutePath(routePath, pathParameters, options);\n const requestUrl = appendQueryParams(`${baseUrl}/${routePath}`, options);\n const url = new URL(requestUrl);\n\n return (\n url\n .toString()\n // Remove double forward slashes\n .replace(/([^:]\\/)\\/+/g, \"$1\")\n );\n}\n\nfunction appendQueryParams(url: string, options: RequestParameters = {}) {\n if (!options.queryParameters) {\n return url;\n }\n let parsedUrl = new URL(url);\n const queryParams = options.queryParameters;\n for (const key of Object.keys(queryParams)) {\n const param = queryParams[key] as any;\n if (param === undefined || param === null) {\n continue;\n }\n if (!param.toString || typeof param.toString !== \"function\") {\n throw new Error(`Query parameters must be able to be represented as string, ${key} can't`);\n }\n const value = param.toISOString !== undefined ? param.toISOString() : param.toString();\n parsedUrl.searchParams.append(key, value);\n }\n\n if (options.skipUrlEncoding) {\n parsedUrl = skipQueryParameterEncoding(parsedUrl);\n }\n return parsedUrl.toString();\n}\n\nfunction skipQueryParameterEncoding(url: URL) {\n if (!url) {\n return url;\n }\n const searchPieces: string[] = [];\n for (const [name, value] of url.searchParams) {\n // QUIRK: searchParams.get retrieves the values decoded\n searchPieces.push(`${name}=${value}`);\n }\n // QUIRK: we have to set search manually as searchParams will encode comma when it shouldn't.\n url.search = searchPieces.length ? `?${searchPieces.join(\"&\")}` : \"\";\n return url;\n}\n\nexport function buildBaseUrl(baseUrl: string, options: RequestParameters): string {\n if (!options.pathParameters) {\n return baseUrl;\n }\n const pathParams = options.pathParameters;\n for (const [key, param] of Object.entries(pathParams)) {\n if (param === undefined || param === null) {\n throw new Error(`Path parameters ${key} must not be undefined or null`);\n }\n if (!param.toString || typeof param.toString !== \"function\") {\n throw new Error(`Path parameters must be able to be represented as string, ${key} can't`);\n }\n let value = param.toISOString !== undefined ? param.toISOString() : String(param);\n if (!options.skipUrlEncoding) {\n value = encodeURIComponent(param);\n }\n baseUrl = replaceAll(baseUrl, `{${key}}`, value) ?? \"\";\n }\n return baseUrl;\n}\n\nfunction buildRoutePath(\n routePath: string,\n pathParameters: string[],\n options: RequestParameters = {}\n) {\n for (const pathParam of pathParameters) {\n let value = pathParam;\n if (!options.skipUrlEncoding) {\n value = encodeURIComponent(pathParam);\n }\n\n routePath = routePath.replace(/{([^/]+)}/, value);\n }\n return routePath;\n}\n\n/**\n * Replace all of the instances of searchValue in value with the provided replaceValue.\n * @param value - The value to search and replace in.\n * @param searchValue - The value to search for in the value argument.\n * @param replaceValue - The value to replace searchValue with in the value argument.\n * @returns The value where each instance of searchValue was replaced with replacedValue.\n */\nexport function replaceAll(\n value: string | undefined,\n searchValue: string,\n replaceValue: string\n): string | undefined {\n return !value || !searchValue ? value : value.split(searchValue).join(replaceValue || \"\");\n}\n"]}
package/package.json CHANGED
@@ -1,12 +1,11 @@
1
1
  {
2
2
  "name": "@azure-rest/core-client",
3
- "version": "1.0.0-alpha.20220415.2",
3
+ "version": "1.0.0-alpha.20220421.2",
4
4
  "description": "Core library for interfacing with AutoRest rest level generated code",
5
5
  "sdk-type": "client",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist-esm/src/index.js",
8
8
  "browser": {
9
- "./dist-esm/src/url.js": "./dist-esm/src/url.browser.js",
10
9
  "./dist-esm/src/helpers/isReadableStream.js": "./dist-esm/src/helpers/isReadableStream.browser.js"
11
10
  },
12
11
  "types": "types/latest/core-client-rest.d.ts",
@@ -65,7 +64,7 @@
65
64
  "devDependencies": {
66
65
  "@azure/dev-tool": ">=1.0.0-alpha <1.0.0-alphb",
67
66
  "@azure/eslint-plugin-azure-sdk": ">=3.0.0-alpha <3.0.0-alphb",
68
- "@microsoft/api-extractor": "^7.18.11",
67
+ "@microsoft/api-extractor": "7.18.11",
69
68
  "@types/chai": "^4.1.6",
70
69
  "@types/mocha": "^7.0.2",
71
70
  "@types/node": "^12.0.0",
@@ -90,6 +89,6 @@
90
89
  "prettier": "^2.5.1",
91
90
  "rimraf": "^3.0.0",
92
91
  "sinon": "^9.0.2",
93
- "typescript": "~4.2.0"
92
+ "typescript": "~4.6.0"
94
93
  }
95
94
  }
@@ -1,6 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
3
- const url = URL;
4
- const urlSearchParams = URLSearchParams;
5
- export { url as URL, urlSearchParams as URLSearchParams };
6
- //# sourceMappingURL=url.browser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"url.browser.js","sourceRoot":"","sources":["../../src/url.browser.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,MAAM,GAAG,GAAG,GAAG,CAAC;AAChB,MAAM,eAAe,GAAG,eAAe,CAAC;AAExC,OAAO,EAAE,GAAG,IAAI,GAAG,EAAE,eAAe,IAAI,eAAe,EAAE,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nconst url = URL;\nconst urlSearchParams = URLSearchParams;\n\nexport { url as URL, urlSearchParams as URLSearchParams };\n"]}
@@ -1,4 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
3
- export { URL, URLSearchParams } from "url";
4
- //# sourceMappingURL=url.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/url.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport { URL, URLSearchParams } from \"url\";\n"]}