azure-kusto-data 5.2.0 → 5.2.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.
@@ -6,18 +6,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
6
6
  };
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.KustoClient = void 0;
9
- const uuid_1 = require("uuid");
10
- const security_1 = __importDefault(require("./security"));
11
- const response_1 = require("./response");
12
- const connectionBuilder_1 = __importDefault(require("./connectionBuilder"));
13
- const clientRequestProperties_1 = __importDefault(require("./clientRequestProperties"));
14
- const errors_1 = require("./errors");
9
+ const core_util_1 = require("@azure/core-util");
15
10
  const axios_1 = __importDefault(require("axios"));
16
11
  const http_1 = __importDefault(require("http"));
17
12
  const https_1 = __importDefault(require("https"));
18
- const core_util_1 = require("@azure/core-util");
19
- const kustoTrustedEndpoints_1 = require("./kustoTrustedEndpoints");
13
+ const uuid_1 = require("uuid");
14
+ const clientRequestProperties_1 = __importDefault(require("./clientRequestProperties"));
20
15
  const cloudSettings_1 = __importDefault(require("./cloudSettings"));
16
+ const connectionBuilder_1 = __importDefault(require("./connectionBuilder"));
17
+ const errors_1 = require("./errors");
18
+ const kustoTrustedEndpoints_1 = require("./kustoTrustedEndpoints");
19
+ const response_1 = require("./response");
20
+ const security_1 = __importDefault(require("./security"));
21
21
  const timeUtils_1 = require("./timeUtils");
22
22
  const COMMAND_TIMEOUT_IN_MILLISECS = (0, timeUtils_1.toMilliseconds)(0, 10, 30);
23
23
  const QUERY_TIMEOUT_IN_MILLISECS = (0, timeUtils_1.toMilliseconds)(0, 4, 30);
@@ -51,11 +51,12 @@ class KustoClient {
51
51
  [ExecutionType.QueryV1]: `${this.cluster}/v1/rest/query`,
52
52
  };
53
53
  this.aadHelper = new security_1.default(this.connectionString);
54
- const headers = {
54
+ let headers = {
55
55
  Accept: "application/json",
56
- "Accept-Encoding": "gzip,deflate",
57
- Connection: "Keep-Alive",
58
56
  };
57
+ if (core_util_1.isNode) {
58
+ headers = Object.assign(Object.assign({}, headers), { "Accept-Encoding": "gzip,deflate", Connection: "Keep-Alive" });
59
+ }
59
60
  const axiosProps = {
60
61
  headers,
61
62
  validateStatus: (status) => status === 200,
@@ -171,7 +172,7 @@ class KustoClient {
171
172
  return db;
172
173
  }
173
174
  async _doRequest(endpoint, executionType, headers, payload, timeout, properties) {
174
- var _a;
175
+ var _a, _b, _c;
175
176
  // replace non-ascii characters with ? in headers
176
177
  for (const key of Object.keys(headers)) {
177
178
  headers[key] = headers[key].replace(/[^\x00-\x7F]+/g, "?");
@@ -191,6 +192,11 @@ class KustoClient {
191
192
  if ((_a = error === null || error === void 0 ? void 0 : error.config) === null || _a === void 0 ? void 0 : _a.headers) {
192
193
  error.config.headers.Authorization = "<REDACTED>";
193
194
  }
195
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
196
+ if ((_c = (_b = error === null || error === void 0 ? void 0 : error.response) === null || _b === void 0 ? void 0 : _b.request) === null || _c === void 0 ? void 0 : _c._header) {
197
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
198
+ error.response.request._header = "<REDACTED>";
199
+ }
194
200
  if (error.response && error.response.status === 429) {
195
201
  throw new errors_1.ThrottlingError("POST request failed with status 429 (Too Many Requests)", error);
196
202
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { v4 as uuidv4 } from \"uuid\";\nimport AadHelper from \"./security\";\nimport { KustoResponseDataSet, KustoResponseDataSetV1, KustoResponseDataSetV2, V1, V2Frames } from \"./response\";\nimport ConnectionStringBuilder from \"./connectionBuilder\";\nimport ClientRequestProperties from \"./clientRequestProperties\";\nimport { ThrottlingError } from \"./errors\";\nimport axios, { AxiosInstance, AxiosRequestConfig } from \"axios\";\nimport http from \"http\";\nimport https from \"https\";\nimport { isNode } from \"@azure/core-util\";\nimport { kustoTrustedEndpoints } from \"./kustoTrustedEndpoints\";\nimport CloudSettings from \"./cloudSettings\";\nimport { toMilliseconds } from \"./timeUtils\";\nimport { KustoHeaders } from \"./clientDetails\";\n\nconst COMMAND_TIMEOUT_IN_MILLISECS = toMilliseconds(0, 10, 30);\nconst QUERY_TIMEOUT_IN_MILLISECS = toMilliseconds(0, 4, 30);\nconst CLIENT_SERVER_DELTA_IN_MILLISECS = toMilliseconds(0, 0, 30);\nconst MGMT_PREFIX = \".\";\n\nenum ExecutionType {\n Mgmt = \"mgmt\",\n Query = \"query\",\n Ingest = \"ingest\",\n QueryV1 = \"queryv1\",\n}\n\nexport type RequestEntity = { query: string } | { stream: any } | { blob: string };\n\nexport class KustoClient {\n connectionString: ConnectionStringBuilder;\n cluster: string;\n defaultDatabase?: string;\n endpoints: { [key in ExecutionType]: string };\n aadHelper: AadHelper;\n axiosInstance: AxiosInstance;\n cancelToken = axios.CancelToken.source();\n private _isClosed: boolean = false;\n\n constructor(kcsb: string | ConnectionStringBuilder) {\n this.connectionString = typeof kcsb === \"string\" ? new ConnectionStringBuilder(kcsb) : kcsb;\n if (!this.connectionString.dataSource) {\n throw new Error(\"Cluster url is required\");\n }\n const url = new URL(this.connectionString.dataSource);\n this.cluster = url.toString();\n if (this.cluster.endsWith(\"/\")) {\n this.cluster = this.cluster.slice(0, -1);\n }\n this.defaultDatabase = this.connectionString.initialCatalog;\n this.endpoints = {\n [ExecutionType.Mgmt]: `${this.cluster}/v1/rest/mgmt`,\n [ExecutionType.Query]: `${this.cluster}/v2/rest/query`,\n [ExecutionType.Ingest]: `${this.cluster}/v1/rest/ingest`,\n [ExecutionType.QueryV1]: `${this.cluster}/v1/rest/query`,\n };\n this.aadHelper = new AadHelper(this.connectionString);\n const headers = {\n Accept: \"application/json\",\n \"Accept-Encoding\": \"gzip,deflate\",\n Connection: \"Keep-Alive\",\n };\n const axiosProps: AxiosRequestConfig = {\n headers,\n validateStatus: (status: number) => status === 200,\n maxBodyLength: Infinity,\n maxContentLength: Infinity,\n maxRedirects: 0,\n };\n // http and https are Node modules and are not found in browsers\n if (isNode) {\n // keepAlive pools and reuses TCP connections, so it's faster\n axiosProps.httpAgent = new http.Agent({ keepAlive: true });\n axiosProps.httpsAgent = new https.Agent({ keepAlive: true });\n }\n axiosProps.cancelToken = this.cancelToken.token;\n\n this.axiosInstance = axios.create(axiosProps);\n }\n\n async execute(db: string | null, query: string, properties?: ClientRequestProperties) {\n query = query.trim();\n if (query.startsWith(MGMT_PREFIX)) {\n return this.executeMgmt(db, query, properties);\n }\n\n return this.executeQuery(db, query, properties);\n }\n\n async executeQuery(db: string | null, query: string, properties?: ClientRequestProperties) {\n return this._execute(this.endpoints[ExecutionType.Query], ExecutionType.Query, db, { query }, properties);\n }\n\n async executeQueryV1(db: string | null, query: string, properties?: ClientRequestProperties) {\n return this._execute(this.endpoints[ExecutionType.QueryV1], ExecutionType.QueryV1, db, { query }, properties);\n }\n\n async executeMgmt(db: string | null, query: string, properties?: ClientRequestProperties) {\n return this._execute(this.endpoints[ExecutionType.Mgmt], ExecutionType.Mgmt, db, { query }, properties);\n }\n\n async executeStreamingIngest(\n db: string | null,\n table: string,\n stream: any,\n streamFormat: any,\n mappingName: string | null,\n blob?: string,\n clientRequestId?: string\n ): Promise<KustoResponseDataSet> {\n let endpoint = `${this.endpoints[ExecutionType.Ingest]}/${this.getDb(db)}/${table}?streamFormat=${streamFormat}`;\n if (mappingName != null) {\n endpoint += `&mappingName=${mappingName}`;\n }\n\n if (blob) {\n endpoint += `&sourceKind=uri`;\n }\n\n let properties: ClientRequestProperties | null = null;\n if (clientRequestId) {\n properties = new ClientRequestProperties();\n properties.clientRequestId = clientRequestId;\n }\n\n return this._execute(endpoint, ExecutionType.Ingest, db, blob ? { blob } : { stream }, properties);\n }\n\n async _execute(\n endpoint: string,\n executionType: ExecutionType,\n db: string | null,\n entity: RequestEntity,\n properties?: ClientRequestProperties | null\n ): Promise<KustoResponseDataSet> {\n this.ensureOpen();\n kustoTrustedEndpoints.validateTrustedEndpoint(endpoint, (await CloudSettings.getCloudInfoForCluster(this.cluster)).LoginEndpoint);\n db = this.getDb(db);\n const headers: { [header: string]: string } = {};\n\n let payload: { db: string; csl: string; properties?: any };\n let clientRequestPrefix = \"\";\n\n const timeout = this._getClientTimeout(executionType, properties);\n let payloadContent: any = \"\";\n if (\"query\" in entity) {\n payload = {\n db,\n csl: entity.query,\n };\n\n if (properties != null) {\n payload.properties = properties.toJSON();\n }\n\n payloadContent = JSON.stringify(payload);\n\n headers[\"Content-Type\"] = \"application/json; charset=utf-8\";\n clientRequestPrefix = \"KNC.execute;\";\n } else if (\"stream\" in entity) {\n payloadContent = entity.stream;\n clientRequestPrefix = \"KNC.executeStreamingIngest;\";\n if (isNode) {\n headers[\"Content-Encoding\"] = \"gzip\";\n headers[\"Content-Type\"] = \"application/octet-stream\";\n } else {\n headers[\"Content-Type\"] = \"application/json\";\n }\n } else if (\"blob\" in entity) {\n payloadContent = {\n sourceUri: entity.blob,\n };\n clientRequestPrefix = \"KNC.executeStreamingIngestFromBlob;\";\n headers[\"Content-Type\"] = \"application/json\";\n } else {\n throw new Error(\"Invalid parameters - expected query or streaming ingest\");\n }\n\n let kustoHeaders = this.connectionString.clientDetails().getHeaders();\n kustoHeaders[\"x-ms-client-request-id\"] = `${clientRequestPrefix}${uuidv4()}`;\n\n if (properties != null) {\n kustoHeaders = {\n ...kustoHeaders,\n ...properties.getHeaders(),\n };\n }\n\n for (const key of Object.keys(kustoHeaders) as Iterable<keyof KustoHeaders>) {\n if (kustoHeaders[key]) {\n headers[key] = kustoHeaders[key] as string;\n }\n }\n\n const authHeader = await this.aadHelper.getAuthHeader();\n if (authHeader != null) {\n headers.Authorization = authHeader;\n }\n\n return this._doRequest(endpoint, executionType, headers, payloadContent, timeout, properties);\n }\n\n private getDb(db: string | null) {\n if (db == null) {\n if (this.defaultDatabase == null) {\n throw new Error(\"No database provided, and no default database specified in connection string\");\n }\n db = this.defaultDatabase;\n }\n return db;\n }\n\n async _doRequest(\n endpoint: string,\n executionType: ExecutionType,\n headers: { [header: string]: string },\n payload: any,\n timeout: number,\n properties?: ClientRequestProperties | null\n ): Promise<KustoResponseDataSet> {\n // replace non-ascii characters with ? in headers\n for (const key of Object.keys(headers)) {\n headers[key] = headers[key].replace(/[^\\x00-\\x7F]+/g, \"?\");\n }\n\n const axiosConfig: AxiosRequestConfig = {\n headers,\n timeout,\n };\n\n let axiosResponse;\n try {\n axiosResponse = await this.axiosInstance.post(endpoint, payload, axiosConfig);\n } catch (error: unknown) {\n if (axios.isAxiosError(error)) {\n // Since it's impossible to modify the error request object, the only way to censor the Authorization header is to remove it.\n error.request = undefined;\n if (error?.config?.headers) {\n error.config.headers.Authorization = \"<REDACTED>\";\n }\n if (error.response && error.response.status === 429) {\n throw new ThrottlingError(\"POST request failed with status 429 (Too Many Requests)\", error);\n }\n }\n throw error;\n }\n\n return this._parseResponse(axiosResponse.data, executionType, properties, axiosResponse.status);\n }\n\n _parseResponse(response: any, executionType: ExecutionType, properties?: ClientRequestProperties | null, status?: number): KustoResponseDataSet {\n const { raw } = properties || {};\n if (raw === true || executionType === ExecutionType.Ingest) {\n return response;\n }\n\n let kustoResponse = null;\n try {\n if (executionType === ExecutionType.Query) {\n kustoResponse = new KustoResponseDataSetV2(response as V2Frames);\n } else {\n kustoResponse = new KustoResponseDataSetV1(response as V1);\n }\n } catch (ex) {\n throw new Error(`Failed to parse response ({${status}}) with the following error [${ex}].`);\n }\n if (kustoResponse.getErrorsCount().errors > 0) {\n throw new Error(`Kusto request had errors. ${kustoResponse.getExceptions()}`);\n }\n return kustoResponse;\n }\n\n _getClientTimeout(executionType: ExecutionType, properties?: ClientRequestProperties | null): number {\n if (properties != null) {\n const clientTimeout = properties.getClientTimeout();\n if (clientTimeout) {\n return clientTimeout;\n }\n\n const serverTimeout = properties.getTimeout();\n if (serverTimeout) {\n return serverTimeout + CLIENT_SERVER_DELTA_IN_MILLISECS;\n }\n }\n\n return executionType === ExecutionType.Query || executionType === ExecutionType.QueryV1 ? QUERY_TIMEOUT_IN_MILLISECS : COMMAND_TIMEOUT_IN_MILLISECS;\n }\n\n public close() {\n if (!this._isClosed) {\n this.cancelToken.cancel(\"Client Closed\");\n }\n this._isClosed = true;\n }\n\n ensureOpen() {\n if (this._isClosed) {\n throw new Error(\"Client is closed\");\n }\n }\n}\n\nexport default KustoClient;\n"]}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { isNode } from \"@azure/core-util\";\nimport axios, { AxiosInstance, AxiosRequestConfig, RawAxiosRequestHeaders } from \"axios\";\nimport http from \"http\";\nimport https from \"https\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { KustoHeaders } from \"./clientDetails\";\nimport ClientRequestProperties from \"./clientRequestProperties\";\nimport CloudSettings from \"./cloudSettings\";\nimport ConnectionStringBuilder from \"./connectionBuilder\";\nimport { ThrottlingError } from \"./errors\";\nimport { kustoTrustedEndpoints } from \"./kustoTrustedEndpoints\";\nimport { KustoResponseDataSet, KustoResponseDataSetV1, KustoResponseDataSetV2, V1, V2Frames } from \"./response\";\nimport AadHelper from \"./security\";\nimport { toMilliseconds } from \"./timeUtils\";\n\nconst COMMAND_TIMEOUT_IN_MILLISECS = toMilliseconds(0, 10, 30);\nconst QUERY_TIMEOUT_IN_MILLISECS = toMilliseconds(0, 4, 30);\nconst CLIENT_SERVER_DELTA_IN_MILLISECS = toMilliseconds(0, 0, 30);\nconst MGMT_PREFIX = \".\";\n\nenum ExecutionType {\n Mgmt = \"mgmt\",\n Query = \"query\",\n Ingest = \"ingest\",\n QueryV1 = \"queryv1\",\n}\n\nexport type RequestEntity = { query: string } | { stream: any } | { blob: string };\n\nexport class KustoClient {\n connectionString: ConnectionStringBuilder;\n cluster: string;\n defaultDatabase?: string;\n endpoints: { [key in ExecutionType]: string };\n aadHelper: AadHelper;\n axiosInstance: AxiosInstance;\n cancelToken = axios.CancelToken.source();\n private _isClosed: boolean = false;\n\n constructor(kcsb: string | ConnectionStringBuilder) {\n this.connectionString = typeof kcsb === \"string\" ? new ConnectionStringBuilder(kcsb) : kcsb;\n if (!this.connectionString.dataSource) {\n throw new Error(\"Cluster url is required\");\n }\n const url = new URL(this.connectionString.dataSource);\n this.cluster = url.toString();\n if (this.cluster.endsWith(\"/\")) {\n this.cluster = this.cluster.slice(0, -1);\n }\n this.defaultDatabase = this.connectionString.initialCatalog;\n this.endpoints = {\n [ExecutionType.Mgmt]: `${this.cluster}/v1/rest/mgmt`,\n [ExecutionType.Query]: `${this.cluster}/v2/rest/query`,\n [ExecutionType.Ingest]: `${this.cluster}/v1/rest/ingest`,\n [ExecutionType.QueryV1]: `${this.cluster}/v1/rest/query`,\n };\n this.aadHelper = new AadHelper(this.connectionString);\n\n let headers: RawAxiosRequestHeaders = {\n Accept: \"application/json\",\n };\n\n if (isNode) {\n headers = {\n ...headers,\n \"Accept-Encoding\": \"gzip,deflate\",\n Connection: \"Keep-Alive\",\n };\n }\n const axiosProps: AxiosRequestConfig = {\n headers,\n validateStatus: (status: number) => status === 200,\n maxBodyLength: Infinity,\n maxContentLength: Infinity,\n maxRedirects: 0,\n };\n // http and https are Node modules and are not found in browsers\n if (isNode) {\n // keepAlive pools and reuses TCP connections, so it's faster\n axiosProps.httpAgent = new http.Agent({ keepAlive: true });\n axiosProps.httpsAgent = new https.Agent({ keepAlive: true });\n }\n axiosProps.cancelToken = this.cancelToken.token;\n\n this.axiosInstance = axios.create(axiosProps);\n }\n\n async execute(db: string | null, query: string, properties?: ClientRequestProperties): Promise<KustoResponseDataSet> {\n query = query.trim();\n if (query.startsWith(MGMT_PREFIX)) {\n return this.executeMgmt(db, query, properties);\n }\n\n return this.executeQuery(db, query, properties);\n }\n\n async executeQuery(db: string | null, query: string, properties?: ClientRequestProperties): Promise<KustoResponseDataSet> {\n return this._execute(this.endpoints[ExecutionType.Query], ExecutionType.Query, db, { query }, properties);\n }\n\n async executeQueryV1(db: string | null, query: string, properties?: ClientRequestProperties): Promise<KustoResponseDataSet> {\n return this._execute(this.endpoints[ExecutionType.QueryV1], ExecutionType.QueryV1, db, { query }, properties);\n }\n\n async executeMgmt(db: string | null, query: string, properties?: ClientRequestProperties): Promise<KustoResponseDataSet> {\n return this._execute(this.endpoints[ExecutionType.Mgmt], ExecutionType.Mgmt, db, { query }, properties);\n }\n\n async executeStreamingIngest(\n db: string | null,\n table: string,\n stream: any,\n streamFormat: any,\n mappingName: string | null,\n blob?: string,\n clientRequestId?: string\n ): Promise<KustoResponseDataSet> {\n let endpoint = `${this.endpoints[ExecutionType.Ingest]}/${this.getDb(db)}/${table}?streamFormat=${streamFormat}`;\n if (mappingName != null) {\n endpoint += `&mappingName=${mappingName}`;\n }\n\n if (blob) {\n endpoint += `&sourceKind=uri`;\n }\n\n let properties: ClientRequestProperties | null = null;\n if (clientRequestId) {\n properties = new ClientRequestProperties();\n properties.clientRequestId = clientRequestId;\n }\n\n return this._execute(endpoint, ExecutionType.Ingest, db, blob ? { blob } : { stream }, properties);\n }\n\n async _execute(\n endpoint: string,\n executionType: ExecutionType,\n db: string | null,\n entity: RequestEntity,\n properties?: ClientRequestProperties | null\n ): Promise<KustoResponseDataSet> {\n this.ensureOpen();\n kustoTrustedEndpoints.validateTrustedEndpoint(endpoint, (await CloudSettings.getCloudInfoForCluster(this.cluster)).LoginEndpoint);\n db = this.getDb(db);\n const headers: { [header: string]: string } = {};\n\n let payload: { db: string; csl: string; properties?: any };\n let clientRequestPrefix = \"\";\n\n const timeout = this._getClientTimeout(executionType, properties);\n let payloadContent: any = \"\";\n if (\"query\" in entity) {\n payload = {\n db,\n csl: entity.query,\n };\n\n if (properties != null) {\n payload.properties = properties.toJSON();\n }\n\n payloadContent = JSON.stringify(payload);\n\n headers[\"Content-Type\"] = \"application/json; charset=utf-8\";\n clientRequestPrefix = \"KNC.execute;\";\n } else if (\"stream\" in entity) {\n payloadContent = entity.stream;\n clientRequestPrefix = \"KNC.executeStreamingIngest;\";\n if (isNode) {\n headers[\"Content-Encoding\"] = \"gzip\";\n headers[\"Content-Type\"] = \"application/octet-stream\";\n } else {\n headers[\"Content-Type\"] = \"application/json\";\n }\n } else if (\"blob\" in entity) {\n payloadContent = {\n sourceUri: entity.blob,\n };\n clientRequestPrefix = \"KNC.executeStreamingIngestFromBlob;\";\n headers[\"Content-Type\"] = \"application/json\";\n } else {\n throw new Error(\"Invalid parameters - expected query or streaming ingest\");\n }\n\n let kustoHeaders = this.connectionString.clientDetails().getHeaders();\n kustoHeaders[\"x-ms-client-request-id\"] = `${clientRequestPrefix}${uuidv4()}`;\n\n if (properties != null) {\n kustoHeaders = {\n ...kustoHeaders,\n ...properties.getHeaders(),\n };\n }\n\n for (const key of Object.keys(kustoHeaders) as Iterable<keyof KustoHeaders>) {\n if (kustoHeaders[key]) {\n headers[key] = kustoHeaders[key] as string;\n }\n }\n\n const authHeader = await this.aadHelper.getAuthHeader();\n if (authHeader != null) {\n headers.Authorization = authHeader;\n }\n\n return this._doRequest(endpoint, executionType, headers, payloadContent, timeout, properties);\n }\n\n private getDb(db: string | null) {\n if (db == null) {\n if (this.defaultDatabase == null) {\n throw new Error(\"No database provided, and no default database specified in connection string\");\n }\n db = this.defaultDatabase;\n }\n return db;\n }\n\n async _doRequest(\n endpoint: string,\n executionType: ExecutionType,\n headers: { [header: string]: string },\n payload: any,\n timeout: number,\n properties?: ClientRequestProperties | null\n ): Promise<KustoResponseDataSet> {\n // replace non-ascii characters with ? in headers\n for (const key of Object.keys(headers)) {\n headers[key] = headers[key].replace(/[^\\x00-\\x7F]+/g, \"?\");\n }\n\n const axiosConfig: AxiosRequestConfig = {\n headers,\n timeout,\n };\n\n let axiosResponse;\n try {\n axiosResponse = await this.axiosInstance.post(endpoint, payload, axiosConfig);\n } catch (error: unknown) {\n if (axios.isAxiosError(error)) {\n // Since it's impossible to modify the error request object, the only way to censor the Authorization header is to remove it.\n error.request = undefined;\n if (error?.config?.headers) {\n error.config.headers.Authorization = \"<REDACTED>\";\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (error?.response?.request?._header) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n error.response.request._header = \"<REDACTED>\";\n }\n if (error.response && error.response.status === 429) {\n throw new ThrottlingError(\"POST request failed with status 429 (Too Many Requests)\", error);\n }\n }\n throw error;\n }\n\n return this._parseResponse(axiosResponse.data, executionType, properties, axiosResponse.status);\n }\n\n _parseResponse(response: any, executionType: ExecutionType, properties?: ClientRequestProperties | null, status?: number): KustoResponseDataSet {\n const { raw } = properties || {};\n if (raw === true || executionType === ExecutionType.Ingest) {\n return response;\n }\n\n let kustoResponse = null;\n try {\n if (executionType === ExecutionType.Query) {\n kustoResponse = new KustoResponseDataSetV2(response as V2Frames);\n } else {\n kustoResponse = new KustoResponseDataSetV1(response as V1);\n }\n } catch (ex) {\n throw new Error(`Failed to parse response ({${status}}) with the following error [${ex}].`);\n }\n if (kustoResponse.getErrorsCount().errors > 0) {\n throw new Error(`Kusto request had errors. ${kustoResponse.getExceptions()}`);\n }\n return kustoResponse;\n }\n\n _getClientTimeout(executionType: ExecutionType, properties?: ClientRequestProperties | null): number {\n if (properties != null) {\n const clientTimeout = properties.getClientTimeout();\n if (clientTimeout) {\n return clientTimeout;\n }\n\n const serverTimeout = properties.getTimeout();\n if (serverTimeout) {\n return serverTimeout + CLIENT_SERVER_DELTA_IN_MILLISECS;\n }\n }\n\n return executionType === ExecutionType.Query || executionType === ExecutionType.QueryV1 ? QUERY_TIMEOUT_IN_MILLISECS : COMMAND_TIMEOUT_IN_MILLISECS;\n }\n\n public close(): void {\n if (!this._isClosed) {\n this.cancelToken.cancel(\"Client Closed\");\n }\n this._isClosed = true;\n }\n\n ensureOpen() {\n if (this._isClosed) {\n throw new Error(\"Client is closed\");\n }\n }\n}\n\nexport default KustoClient;\n"]}
@@ -7,6 +7,7 @@ exports.CloudSettings = void 0;
7
7
  // Copyright (c) Microsoft Corporation.
8
8
  // Licensed under the MIT License.
9
9
  const axios_1 = __importDefault(require("axios"));
10
+ const core_util_1 = require("@azure/core-util");
10
11
  /**
11
12
  * This class holds data for all cloud instances, and returns the specific data instance by parsing the dns suffix from a URL
12
13
  */
@@ -57,12 +58,15 @@ class CloudSettings {
57
58
  }
58
59
  }
59
60
  catch (ex) {
60
- if (axios_1.default.isAxiosError(ex) && ((_a = ex.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
61
- // For now as long not all proxies implement the metadata endpoint, if no endpoint exists return public cloud data
62
- this.cloudCache[kustoUri] = this.defaultCloudInfo;
63
- }
64
- else {
65
- throw new Error(`Failed to get cloud info for cluster ${kustoUri} - ${ex}`);
61
+ if (axios_1.default.isAxiosError(ex)) {
62
+ // Axios library has a bug in browser, not propagating the status code, see: https://github.com/axios/axios/issues/5330
63
+ if ((((_a = ex.response) === null || _a === void 0 ? void 0 : _a.status) === 404 && core_util_1.isNode) || (ex.code === axios_1.default.AxiosError.ERR_NETWORK && !core_util_1.isNode)) {
64
+ // For now as long not all proxies implement the metadata endpoint, if no endpoint exists return public cloud data
65
+ this.cloudCache[kustoUri] = this.defaultCloudInfo;
66
+ }
67
+ else {
68
+ throw new Error(`Failed to get cloud info for cluster ${kustoUri} - ${ex}`);
69
+ }
66
70
  }
67
71
  }
68
72
  return this.cloudCache[kustoUri];
@@ -1 +1 @@
1
- {"version":3,"file":"cloudSettings.js","sourceRoot":"","sources":["../../src/cloudSettings.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport axios from \"axios\";\n\nexport type CloudInfo = {\n LoginEndpoint: string;\n LoginMfaRequired: boolean;\n KustoClientAppId: string;\n KustoClientRedirectUri: string;\n KustoServiceResourceId: string;\n FirstPartyAuthorityUrl: string;\n};\n\n/**\n * This class holds data for all cloud instances, and returns the specific data instance by parsing the dns suffix from a URL\n */\nclass CloudSettings {\n METADATA_ENDPOINT = \"/v1/rest/auth/metadata\";\n defaultCloudInfo: CloudInfo = {\n LoginEndpoint: process.env.AadAuthorityUri || \"https://login.microsoftonline.com\",\n LoginMfaRequired: false,\n KustoClientAppId: \"db662dc1-0cfe-4e1c-a843-19a68e65be58\",\n KustoClientRedirectUri: \"https://microsoft/kustoclient\",\n KustoServiceResourceId: \"https://kusto.kusto.windows.net\",\n FirstPartyAuthorityUrl: \"https://login.microsoftonline.com/f8cdef31-a31e-4b4a-93e4-5f571e91255a\",\n };\n cloudCache: { [kustoUri: string]: CloudInfo } = {};\n\n writeToCache(url: string, info?: CloudInfo) {\n this.cloudCache[this.normalizeUrl(url)] = info ?? this.defaultCloudInfo;\n }\n\n getFromCache = (kustoUri: string) => this.cloudCache[this.normalizeUrl(kustoUri)];\n\n deleteFromCache = (kustoUri: string) => delete this.cloudCache[this.normalizeUrl(kustoUri)];\n\n async getCloudInfoForCluster(kustoUri: string): Promise<CloudInfo> {\n kustoUri = this.normalizeUrl(kustoUri);\n if (kustoUri in this.cloudCache) {\n return this.cloudCache[kustoUri];\n }\n\n try {\n const response = await axios.get<{ AzureAD: CloudInfo | undefined }>(kustoUri + this.METADATA_ENDPOINT, {\n headers: {\n \"Cache-Control\": \"no-cache\",\n // Disable caching - it's being cached in memory (Service returns max-age).\n // The original motivation for this is due to a CORS issue in Ibiza due to a dynamic subdomain.\n // The first dynamic subdomain is attached to the cache and for some reason isn't invalidated\n // when there is a new subdomain. It causes the request failure due to CORS.\n // Example:\n // Access to XMLHttpRequest at 'https://safrankecc.canadacentral.kusto.windows.net/v1/rest/auth/metadata' from origin\n // 'https://sandbox-46-11.reactblade.portal.azure.net' has been blocked by CORS policy: The 'Access-Control-Allow-Origin' header has a value\n // 'https://sandbox-46-10.reactblade.portal.azure.net' that is not equal to the supplied origin.\n },\n maxRedirects: 0,\n });\n if (response.status === 200) {\n this.cloudCache[kustoUri] = response.data.AzureAD || this.defaultCloudInfo;\n } else {\n throw new Error(`Kusto returned an invalid cloud metadata response - ${response}`);\n }\n } catch (ex) {\n if (axios.isAxiosError(ex) && ex.response?.status === 404) {\n // For now as long not all proxies implement the metadata endpoint, if no endpoint exists return public cloud data\n this.cloudCache[kustoUri] = this.defaultCloudInfo;\n } else {\n throw new Error(`Failed to get cloud info for cluster ${kustoUri} - ${ex}`);\n }\n }\n return this.cloudCache[kustoUri];\n }\n\n private normalizeUrl(kustoUri: string) {\n const url = new URL(kustoUri);\n const urlString = url.toString();\n if (urlString.endsWith(\"/\")) {\n return urlString.slice(0, urlString.length - 1);\n }\n return urlString;\n }\n\n static getAuthorityUri(cloudInfo: CloudInfo, authorityId?: string): string {\n return cloudInfo.LoginEndpoint + \"/\" + (authorityId || \"organizations\");\n }\n}\n\nconst cloudSettings = new CloudSettings();\nexport { cloudSettings as CloudSettings };\nexport default cloudSettings;\n"]}
1
+ {"version":3,"file":"cloudSettings.js","sourceRoot":"","sources":["../../src/cloudSettings.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport axios from \"axios\";\nimport { isNode } from \"@azure/core-util\";\n\nexport type CloudInfo = {\n LoginEndpoint: string;\n LoginMfaRequired: boolean;\n KustoClientAppId: string;\n KustoClientRedirectUri: string;\n KustoServiceResourceId: string;\n FirstPartyAuthorityUrl: string;\n};\n\n/**\n * This class holds data for all cloud instances, and returns the specific data instance by parsing the dns suffix from a URL\n */\nclass CloudSettings {\n METADATA_ENDPOINT = \"/v1/rest/auth/metadata\";\n defaultCloudInfo: CloudInfo = {\n LoginEndpoint: process.env.AadAuthorityUri || \"https://login.microsoftonline.com\",\n LoginMfaRequired: false,\n KustoClientAppId: \"db662dc1-0cfe-4e1c-a843-19a68e65be58\",\n KustoClientRedirectUri: \"https://microsoft/kustoclient\",\n KustoServiceResourceId: \"https://kusto.kusto.windows.net\",\n FirstPartyAuthorityUrl: \"https://login.microsoftonline.com/f8cdef31-a31e-4b4a-93e4-5f571e91255a\",\n };\n cloudCache: { [kustoUri: string]: CloudInfo } = {};\n\n writeToCache(url: string, info?: CloudInfo) {\n this.cloudCache[this.normalizeUrl(url)] = info ?? this.defaultCloudInfo;\n }\n\n getFromCache = (kustoUri: string) => this.cloudCache[this.normalizeUrl(kustoUri)];\n\n deleteFromCache = (kustoUri: string) => delete this.cloudCache[this.normalizeUrl(kustoUri)];\n\n async getCloudInfoForCluster(kustoUri: string): Promise<CloudInfo> {\n kustoUri = this.normalizeUrl(kustoUri);\n if (kustoUri in this.cloudCache) {\n return this.cloudCache[kustoUri];\n }\n\n try {\n const response = await axios.get<{ AzureAD: CloudInfo | undefined }>(kustoUri + this.METADATA_ENDPOINT, {\n headers: {\n \"Cache-Control\": \"no-cache\",\n // Disable caching - it's being cached in memory (Service returns max-age).\n // The original motivation for this is due to a CORS issue in Ibiza due to a dynamic subdomain.\n // The first dynamic subdomain is attached to the cache and for some reason isn't invalidated\n // when there is a new subdomain. It causes the request failure due to CORS.\n // Example:\n // Access to XMLHttpRequest at 'https://safrankecc.canadacentral.kusto.windows.net/v1/rest/auth/metadata' from origin\n // 'https://sandbox-46-11.reactblade.portal.azure.net' has been blocked by CORS policy: The 'Access-Control-Allow-Origin' header has a value\n // 'https://sandbox-46-10.reactblade.portal.azure.net' that is not equal to the supplied origin.\n },\n maxRedirects: 0,\n });\n if (response.status === 200) {\n this.cloudCache[kustoUri] = response.data.AzureAD || this.defaultCloudInfo;\n } else {\n throw new Error(`Kusto returned an invalid cloud metadata response - ${response}`);\n }\n } catch (ex) {\n if (axios.isAxiosError(ex)) {\n // Axios library has a bug in browser, not propagating the status code, see: https://github.com/axios/axios/issues/5330\n if ((ex.response?.status === 404 && isNode) || (ex.code === axios.AxiosError.ERR_NETWORK && !isNode)) {\n // For now as long not all proxies implement the metadata endpoint, if no endpoint exists return public cloud data\n this.cloudCache[kustoUri] = this.defaultCloudInfo;\n } else {\n throw new Error(`Failed to get cloud info for cluster ${kustoUri} - ${ex}`);\n }\n }\n }\n return this.cloudCache[kustoUri];\n }\n\n private normalizeUrl(kustoUri: string) {\n const url = new URL(kustoUri);\n const urlString = url.toString();\n if (urlString.endsWith(\"/\")) {\n return urlString.slice(0, urlString.length - 1);\n }\n return urlString;\n }\n\n static getAuthorityUri(cloudInfo: CloudInfo, authorityId?: string): string {\n return cloudInfo.LoginEndpoint + \"/\" + (authorityId || \"organizations\");\n }\n}\n\nconst cloudSettings = new CloudSettings();\nexport { cloudSettings as CloudSettings };\nexport default cloudSettings;\n"]}
@@ -73,8 +73,8 @@ class KustoConnectionStringBuilder extends connectionBuilderBase_1.default {
73
73
  return kcsb;
74
74
  }
75
75
  }
76
+ exports.KustoConnectionStringBuilder = KustoConnectionStringBuilder;
76
77
  KustoConnectionStringBuilder.DefaultDatabaseName = "NetDefaultDB";
77
78
  KustoConnectionStringBuilder.SecretReplacement = "****";
78
- exports.KustoConnectionStringBuilder = KustoConnectionStringBuilder;
79
79
  exports.default = KustoConnectionStringBuilder;
80
80
  //# sourceMappingURL=connectionBuilder.browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connectionBuilder.browser.js","sourceRoot":"","sources":["../../src/connectionBuilder.browser.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { DeviceCodeInfo, InteractiveBrowserCredentialInBrowserOptions, InteractiveBrowserCredentialNodeOptions, TokenCredential } from \"@azure/identity\";\nimport KustoConnectionStringBuilderBase from \"./connectionBuilderBase\";\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\n\nexport class KustoConnectionStringBuilder extends KustoConnectionStringBuilderBase {\n static readonly DefaultDatabaseName = \"NetDefaultDB\";\n static readonly SecretReplacement = \"****\";\n\n static withAadUserPasswordAuthentication(\n _connectionString: string,\n _userId: string,\n _password: string,\n _authorityId?: string\n ): KustoConnectionStringBuilder {\n throw new Error(\"Not supported in browser - use withUserPrompt instead\");\n }\n\n static withAadApplicationKeyAuthentication(\n _connectionString: string,\n _aadAppId: string,\n _appKey: string,\n _authorityId?: string\n ): KustoConnectionStringBuilder {\n throw new Error(\"Not supported in browser - use withUserPrompt instead\");\n }\n\n static withAadApplicationCertificateAuthentication(\n _connectionString: string,\n _aadAppId: string,\n _applicationCertificatePrivateKey?: string,\n _authorityId?: string,\n _applicationCertificateSendX5c?: boolean,\n _applicationCertificatePath?: string\n ): KustoConnectionStringBuilder {\n throw new Error(\"Not supported in browser - use withUserPrompt instead\");\n }\n\n static withAadDeviceAuthentication(\n _connectionString: string,\n _authorityId?: string,\n _deviceCodeCallback?: (response: DeviceCodeInfo) => void\n ): KustoConnectionStringBuilder {\n throw new Error(\"Not supported in browser - use withUserPrompt instead\");\n }\n\n static withSystemManagedIdentity(_connectionString: string, _authorityId?: string, _timeoutMs?: number): KustoConnectionStringBuilder {\n throw new Error(\"Not supported in browser - use withUserPrompt instead\");\n }\n\n static withUserManagedIdentity(_connectionString: string, _msiClientId: string, _authorityId?: string, _timeoutMs?: number): KustoConnectionStringBuilder {\n throw new Error(\"Not supported in browser - use withUserPrompt instead\");\n }\n\n static withAzLoginIdentity(_connectionString: string, _authorityId?: string, _timeoutMs?: number): KustoConnectionStringBuilder {\n throw new Error(\"Not supported in browser - use withUserPrompt instead\");\n }\n\n static withAccessToken(connectionString: string, accessToken: string): KustoConnectionStringBuilder {\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n kcsb.aadFederatedSecurity = true;\n\n kcsb.accessToken = accessToken;\n\n return kcsb;\n }\n\n static withTokenProvider(connectionString: string, tokenProvider: () => Promise<string>): KustoConnectionStringBuilder {\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n kcsb.aadFederatedSecurity = true;\n\n kcsb.tokenProvider = tokenProvider;\n\n return kcsb;\n }\n\n static withUserPrompt(\n connectionString: string,\n interactiveCredentialOptions: InteractiveBrowserCredentialNodeOptions | InteractiveBrowserCredentialInBrowserOptions,\n timeoutMs?: number\n ): KustoConnectionStringBuilder {\n if (!interactiveCredentialOptions) {\n throw new Error(\n \"Invalid parameters - You must provide interactiveCredentialOptions={clientId: string, redirectUri:string} to authenticate with user prompt in browser.\"\n );\n }\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n const { redirectUri, clientId, tenantId } = interactiveCredentialOptions as InteractiveBrowserCredentialInBrowserOptions;\n if (!clientId) {\n throw new Error(\"Invalid parameters - You must provide your SPA application client id to authenticate against\");\n }\n\n if (!redirectUri) {\n throw new Error(\"Invalid parameters - You must provide a redirectUri registered on the SPA app\");\n }\n\n if (tenantId) {\n kcsb.authorityId = tenantId;\n } else {\n interactiveCredentialOptions.tenantId = kcsb.authorityId;\n }\n\n kcsb.interactiveCredentialOptions = interactiveCredentialOptions;\n kcsb.aadFederatedSecurity = true;\n kcsb.applicationClientId = clientId;\n kcsb.useUserPromptAuth = true;\n\n kcsb.timeoutMs = timeoutMs;\n\n return kcsb;\n }\n\n static withTokenCredential(connectionString: string, credential: TokenCredential): KustoConnectionStringBuilder {\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n kcsb.tokenCredential = credential;\n\n return kcsb;\n }\n}\n\nexport default KustoConnectionStringBuilder;\n"]}
1
+ {"version":3,"file":"connectionBuilder.browser.js","sourceRoot":"","sources":["../../src/connectionBuilder.browser.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { DeviceCodeInfo, InteractiveBrowserCredentialInBrowserOptions, InteractiveBrowserCredentialNodeOptions, TokenCredential } from \"@azure/identity\";\nimport KustoConnectionStringBuilderBase from \"./connectionBuilderBase\";\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\n\nexport class KustoConnectionStringBuilder extends KustoConnectionStringBuilderBase {\n static readonly DefaultDatabaseName = \"NetDefaultDB\";\n static readonly SecretReplacement = \"****\";\n\n static withAadUserPasswordAuthentication(\n _connectionString: string,\n _userId: string,\n _password: string,\n _authorityId?: string\n ): KustoConnectionStringBuilder {\n throw new Error(\"Not supported in browser - use withUserPrompt instead\");\n }\n\n static withAadApplicationKeyAuthentication(\n _connectionString: string,\n _aadAppId: string,\n _appKey: string,\n _authorityId?: string\n ): KustoConnectionStringBuilder {\n throw new Error(\"Not supported in browser - use withUserPrompt instead\");\n }\n\n static withAadApplicationCertificateAuthentication(\n _connectionString: string,\n _aadAppId: string,\n _applicationCertificatePrivateKey?: string,\n _authorityId?: string,\n _applicationCertificateSendX5c?: boolean,\n _applicationCertificatePath?: string\n ): KustoConnectionStringBuilder {\n throw new Error(\"Not supported in browser - use withUserPrompt instead\");\n }\n\n static withAadDeviceAuthentication(\n _connectionString: string,\n _authorityId?: string,\n _deviceCodeCallback?: (response: DeviceCodeInfo) => void\n ): KustoConnectionStringBuilder {\n throw new Error(\"Not supported in browser - use withUserPrompt instead\");\n }\n\n static withSystemManagedIdentity(_connectionString: string, _authorityId?: string, _timeoutMs?: number): KustoConnectionStringBuilder {\n throw new Error(\"Not supported in browser - use withUserPrompt instead\");\n }\n\n static withUserManagedIdentity(_connectionString: string, _msiClientId: string, _authorityId?: string, _timeoutMs?: number): KustoConnectionStringBuilder {\n throw new Error(\"Not supported in browser - use withUserPrompt instead\");\n }\n\n static withAzLoginIdentity(_connectionString: string, _authorityId?: string, _timeoutMs?: number): KustoConnectionStringBuilder {\n throw new Error(\"Not supported in browser - use withUserPrompt instead\");\n }\n\n static withAccessToken(connectionString: string, accessToken: string): KustoConnectionStringBuilder {\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n kcsb.aadFederatedSecurity = true;\n\n kcsb.accessToken = accessToken;\n\n return kcsb;\n }\n\n static withTokenProvider(connectionString: string, tokenProvider: () => Promise<string>): KustoConnectionStringBuilder {\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n kcsb.aadFederatedSecurity = true;\n\n kcsb.tokenProvider = tokenProvider;\n\n return kcsb;\n }\n\n static withUserPrompt(\n connectionString: string,\n interactiveCredentialOptions: InteractiveBrowserCredentialNodeOptions | InteractiveBrowserCredentialInBrowserOptions,\n timeoutMs?: number\n ): KustoConnectionStringBuilder {\n if (!interactiveCredentialOptions) {\n throw new Error(\n \"Invalid parameters - You must provide interactiveCredentialOptions={clientId: string, redirectUri:string} to authenticate with user prompt in browser.\"\n );\n }\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n const { redirectUri, clientId, tenantId } = interactiveCredentialOptions as InteractiveBrowserCredentialInBrowserOptions;\n if (!clientId) {\n throw new Error(\"Invalid parameters - You must provide your SPA application client id to authenticate against\");\n }\n\n if (!redirectUri) {\n throw new Error(\"Invalid parameters - You must provide a redirectUri registered on the SPA app\");\n }\n\n if (tenantId) {\n kcsb.authorityId = tenantId;\n } else {\n interactiveCredentialOptions.tenantId = kcsb.authorityId;\n }\n\n kcsb.interactiveCredentialOptions = interactiveCredentialOptions;\n kcsb.aadFederatedSecurity = true;\n kcsb.applicationClientId = clientId;\n kcsb.useUserPromptAuth = true;\n\n kcsb.timeoutMs = timeoutMs;\n\n return kcsb;\n }\n\n static withTokenCredential(connectionString: string, credential: TokenCredential): KustoConnectionStringBuilder {\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n kcsb.tokenCredential = credential;\n\n return kcsb;\n }\n}\n\nexport default KustoConnectionStringBuilder;\n"]}
@@ -140,8 +140,8 @@ class KustoConnectionStringBuilder extends connectionBuilderBase_1.KustoConnecti
140
140
  return kcsb;
141
141
  }
142
142
  }
143
+ exports.KustoConnectionStringBuilder = KustoConnectionStringBuilder;
143
144
  KustoConnectionStringBuilder.DefaultDatabaseName = "NetDefaultDB";
144
145
  KustoConnectionStringBuilder.SecretReplacement = "****";
145
- exports.KustoConnectionStringBuilder = KustoConnectionStringBuilder;
146
146
  exports.default = KustoConnectionStringBuilder;
147
147
  //# sourceMappingURL=connectionBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connectionBuilder.js","sourceRoot":"","sources":["../../src/connectionBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { DeviceCodeInfo, InteractiveBrowserCredentialInBrowserOptions, InteractiveBrowserCredentialNodeOptions, TokenCredential } from \"@azure/identity\";\nimport { KustoConnectionStringBuilderBase } from \"./connectionBuilderBase\";\n\n/*\n * A builder for Kusto connection strings\n * For browsers use withUserPrompt or provide the token yourself using withTokenProvider\n */\nexport class KustoConnectionStringBuilder extends KustoConnectionStringBuilderBase {\n static readonly DefaultDatabaseName = \"NetDefaultDB\";\n static readonly SecretReplacement = \"****\";\n\n static withAadUserPasswordAuthentication(connectionString: string, userId: string, password: string, authorityId?: string): KustoConnectionStringBuilder {\n if (userId.trim().length === 0) throw new Error(\"Invalid user\");\n if (password.trim().length === 0) throw new Error(\"Invalid password\");\n\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n kcsb.aadFederatedSecurity = true;\n kcsb.aadUserId = userId;\n kcsb.password = password;\n if (authorityId) {\n kcsb.authorityId = authorityId;\n }\n\n return kcsb;\n }\n\n static withAadApplicationKeyAuthentication(connectionString: string, aadAppId: string, appKey: string, authorityId?: string): KustoConnectionStringBuilder {\n if (aadAppId.trim().length === 0) throw new Error(\"Invalid app id\");\n if (appKey.trim().length === 0) throw new Error(\"Invalid app key\");\n\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n kcsb.aadFederatedSecurity = true;\n kcsb.applicationClientId = aadAppId;\n kcsb.applicationKey = appKey;\n if (authorityId) {\n kcsb.authorityId = authorityId;\n }\n\n return kcsb;\n }\n\n static withAadApplicationCertificateAuthentication(\n connectionString: string,\n aadAppId: string,\n applicationCertificatePrivateKey?: string,\n authorityId?: string,\n applicationCertificateSendX5c?: boolean,\n applicationCertificatePrivatePath?: string\n ): KustoConnectionStringBuilder {\n if (aadAppId.trim().length === 0) throw new Error(\"Invalid app id\");\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n if (!applicationCertificatePrivatePath) {\n if (!applicationCertificatePrivateKey) {\n throw new Error(\"withAadApplicationCertificateAuthentication should specify either a cert key or a path\");\n }\n\n if (applicationCertificatePrivateKey.trim().length === 0) throw new Error(\"Invalid certificate key\");\n kcsb.applicationCertificatePrivateKey = applicationCertificatePrivateKey;\n } else {\n if (applicationCertificatePrivateKey) {\n throw new Error(\"withAadApplicationCertificateAuthentication should specify either a cert key or a path\");\n }\n\n kcsb.applicationCertificatePath = applicationCertificatePrivatePath;\n }\n\n kcsb.aadFederatedSecurity = true;\n kcsb.applicationClientId = aadAppId;\n kcsb.applicationCertificateSendX5c = applicationCertificateSendX5c;\n if (authorityId) {\n kcsb.authorityId = authorityId;\n }\n\n return kcsb;\n }\n\n static withAadDeviceAuthentication(\n connectionString: string,\n authorityId?: string,\n deviceCodeCallback?: (response: DeviceCodeInfo) => void\n ): KustoConnectionStringBuilder {\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n kcsb.aadFederatedSecurity = true;\n if (authorityId) {\n kcsb.authorityId = authorityId;\n }\n kcsb.deviceCodeCallback = deviceCodeCallback;\n kcsb.useDeviceCodeAuth = true;\n\n return kcsb;\n }\n\n private static withAadManagedIdentities(\n connectionString: string,\n msiClientId?: string,\n authorityId?: string,\n timeoutMs?: number\n ): KustoConnectionStringBuilder {\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n kcsb.aadFederatedSecurity = true;\n if (authorityId) {\n kcsb.authorityId = authorityId;\n }\n kcsb.msiClientId = msiClientId;\n kcsb.timeoutMs = timeoutMs;\n kcsb.useManagedIdentityAuth = true;\n\n return kcsb;\n }\n\n static withSystemManagedIdentity(connectionString: string, authorityId?: string, timeoutMs?: number): KustoConnectionStringBuilder {\n return this.withAadManagedIdentities(connectionString, undefined, authorityId, timeoutMs);\n }\n\n static withUserManagedIdentity(connectionString: string, msiClientId: string, authorityId?: string, timeoutMs?: number): KustoConnectionStringBuilder {\n return this.withAadManagedIdentities(connectionString, msiClientId, authorityId, timeoutMs);\n }\n\n static withAzLoginIdentity(connectionString: string, authorityId?: string, timeoutMs?: number): KustoConnectionStringBuilder {\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n kcsb.aadFederatedSecurity = true;\n\n kcsb.useAzLoginAuth = true;\n if (authorityId) {\n kcsb.authorityId = authorityId;\n }\n kcsb.timeoutMs = timeoutMs;\n\n return kcsb;\n }\n\n static withAccessToken(connectionString: string, accessToken: string): KustoConnectionStringBuilder {\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n kcsb.aadFederatedSecurity = true;\n\n kcsb.accessToken = accessToken;\n\n return kcsb;\n }\n\n static withTokenProvider(connectionString: string, tokenProvider: () => Promise<string>): KustoConnectionStringBuilder {\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n kcsb.aadFederatedSecurity = true;\n\n kcsb.tokenProvider = tokenProvider;\n\n return kcsb;\n }\n\n /**\n * Use InteractiveBrowserCredentialNodeOptions in Node.JS and InteractiveBrowserCredentialInBrowserOptions in browser\n * For browser cors issue: you need to visit your app registration and update the redirect URI you're using to the type spa (for \"single page application\").\n * See: https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/identity/identity/test/manual/interactive-browser-credential\n */\n static withUserPrompt(\n connectionString: string,\n options?: InteractiveBrowserCredentialNodeOptions | InteractiveBrowserCredentialInBrowserOptions,\n timeoutMs?: number\n ): KustoConnectionStringBuilder {\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n const { tenantId, clientId } = (options as InteractiveBrowserCredentialNodeOptions) || {};\n if (clientId) {\n throw new Error(\"clientId should be empty as it is retrived from the service management endpoint\");\n }\n\n kcsb.aadFederatedSecurity = true;\n kcsb.useUserPromptAuth = true;\n if (tenantId) {\n kcsb.authorityId = tenantId;\n } else if (options) {\n options.tenantId = kcsb.authorityId;\n }\n\n kcsb.timeoutMs = timeoutMs;\n\n return kcsb;\n }\n\n static withTokenCredential(connectionString: string, credential: TokenCredential): KustoConnectionStringBuilder {\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n kcsb.tokenCredential = credential;\n\n return kcsb;\n }\n}\n\nexport default KustoConnectionStringBuilder;\n"]}
1
+ {"version":3,"file":"connectionBuilder.js","sourceRoot":"","sources":["../../src/connectionBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { DeviceCodeInfo, InteractiveBrowserCredentialInBrowserOptions, InteractiveBrowserCredentialNodeOptions, TokenCredential } from \"@azure/identity\";\nimport { KustoConnectionStringBuilderBase } from \"./connectionBuilderBase\";\n\n/*\n * A builder for Kusto connection strings\n * For browsers use withUserPrompt or provide the token yourself using withTokenProvider\n */\nexport class KustoConnectionStringBuilder extends KustoConnectionStringBuilderBase {\n static readonly DefaultDatabaseName = \"NetDefaultDB\";\n static readonly SecretReplacement = \"****\";\n\n static withAadUserPasswordAuthentication(connectionString: string, userId: string, password: string, authorityId?: string): KustoConnectionStringBuilder {\n if (userId.trim().length === 0) throw new Error(\"Invalid user\");\n if (password.trim().length === 0) throw new Error(\"Invalid password\");\n\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n kcsb.aadFederatedSecurity = true;\n kcsb.aadUserId = userId;\n kcsb.password = password;\n if (authorityId) {\n kcsb.authorityId = authorityId;\n }\n\n return kcsb;\n }\n\n static withAadApplicationKeyAuthentication(connectionString: string, aadAppId: string, appKey: string, authorityId?: string): KustoConnectionStringBuilder {\n if (aadAppId.trim().length === 0) throw new Error(\"Invalid app id\");\n if (appKey.trim().length === 0) throw new Error(\"Invalid app key\");\n\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n kcsb.aadFederatedSecurity = true;\n kcsb.applicationClientId = aadAppId;\n kcsb.applicationKey = appKey;\n if (authorityId) {\n kcsb.authorityId = authorityId;\n }\n\n return kcsb;\n }\n\n static withAadApplicationCertificateAuthentication(\n connectionString: string,\n aadAppId: string,\n applicationCertificatePrivateKey?: string,\n authorityId?: string,\n applicationCertificateSendX5c?: boolean,\n applicationCertificatePrivatePath?: string\n ): KustoConnectionStringBuilder {\n if (aadAppId.trim().length === 0) throw new Error(\"Invalid app id\");\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n if (!applicationCertificatePrivatePath) {\n if (!applicationCertificatePrivateKey) {\n throw new Error(\"withAadApplicationCertificateAuthentication should specify either a cert key or a path\");\n }\n\n if (applicationCertificatePrivateKey.trim().length === 0) throw new Error(\"Invalid certificate key\");\n kcsb.applicationCertificatePrivateKey = applicationCertificatePrivateKey;\n } else {\n if (applicationCertificatePrivateKey) {\n throw new Error(\"withAadApplicationCertificateAuthentication should specify either a cert key or a path\");\n }\n\n kcsb.applicationCertificatePath = applicationCertificatePrivatePath;\n }\n\n kcsb.aadFederatedSecurity = true;\n kcsb.applicationClientId = aadAppId;\n kcsb.applicationCertificateSendX5c = applicationCertificateSendX5c;\n if (authorityId) {\n kcsb.authorityId = authorityId;\n }\n\n return kcsb;\n }\n\n static withAadDeviceAuthentication(\n connectionString: string,\n authorityId?: string,\n deviceCodeCallback?: (response: DeviceCodeInfo) => void\n ): KustoConnectionStringBuilder {\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n kcsb.aadFederatedSecurity = true;\n if (authorityId) {\n kcsb.authorityId = authorityId;\n }\n kcsb.deviceCodeCallback = deviceCodeCallback;\n kcsb.useDeviceCodeAuth = true;\n\n return kcsb;\n }\n\n private static withAadManagedIdentities(\n connectionString: string,\n msiClientId?: string,\n authorityId?: string,\n timeoutMs?: number\n ): KustoConnectionStringBuilder {\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n kcsb.aadFederatedSecurity = true;\n if (authorityId) {\n kcsb.authorityId = authorityId;\n }\n kcsb.msiClientId = msiClientId;\n kcsb.timeoutMs = timeoutMs;\n kcsb.useManagedIdentityAuth = true;\n\n return kcsb;\n }\n\n static withSystemManagedIdentity(connectionString: string, authorityId?: string, timeoutMs?: number): KustoConnectionStringBuilder {\n return this.withAadManagedIdentities(connectionString, undefined, authorityId, timeoutMs);\n }\n\n static withUserManagedIdentity(connectionString: string, msiClientId: string, authorityId?: string, timeoutMs?: number): KustoConnectionStringBuilder {\n return this.withAadManagedIdentities(connectionString, msiClientId, authorityId, timeoutMs);\n }\n\n static withAzLoginIdentity(connectionString: string, authorityId?: string, timeoutMs?: number): KustoConnectionStringBuilder {\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n kcsb.aadFederatedSecurity = true;\n\n kcsb.useAzLoginAuth = true;\n if (authorityId) {\n kcsb.authorityId = authorityId;\n }\n kcsb.timeoutMs = timeoutMs;\n\n return kcsb;\n }\n\n static withAccessToken(connectionString: string, accessToken: string): KustoConnectionStringBuilder {\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n kcsb.aadFederatedSecurity = true;\n\n kcsb.accessToken = accessToken;\n\n return kcsb;\n }\n\n static withTokenProvider(connectionString: string, tokenProvider: () => Promise<string>): KustoConnectionStringBuilder {\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n kcsb.aadFederatedSecurity = true;\n\n kcsb.tokenProvider = tokenProvider;\n\n return kcsb;\n }\n\n /**\n * Use InteractiveBrowserCredentialNodeOptions in Node.JS and InteractiveBrowserCredentialInBrowserOptions in browser\n * For browser cors issue: you need to visit your app registration and update the redirect URI you're using to the type spa (for \"single page application\").\n * See: https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/identity/identity/test/manual/interactive-browser-credential\n */\n static withUserPrompt(\n connectionString: string,\n options?: InteractiveBrowserCredentialNodeOptions | InteractiveBrowserCredentialInBrowserOptions,\n timeoutMs?: number\n ): KustoConnectionStringBuilder {\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n const { tenantId, clientId } = (options as InteractiveBrowserCredentialNodeOptions) || {};\n if (clientId) {\n throw new Error(\"clientId should be empty as it is retrived from the service management endpoint\");\n }\n\n kcsb.aadFederatedSecurity = true;\n kcsb.useUserPromptAuth = true;\n if (tenantId) {\n kcsb.authorityId = tenantId;\n } else if (options) {\n options.tenantId = kcsb.authorityId;\n }\n\n kcsb.timeoutMs = timeoutMs;\n\n return kcsb;\n }\n\n static withTokenCredential(connectionString: string, credential: TokenCredential): KustoConnectionStringBuilder {\n const kcsb = new KustoConnectionStringBuilder(connectionString);\n kcsb.tokenCredential = credential;\n\n return kcsb;\n }\n}\n\nexport default KustoConnectionStringBuilder;\n"]}
@@ -131,8 +131,8 @@ class KustoConnectionStringBuilderBase {
131
131
  return Object.assign({}, other);
132
132
  }
133
133
  }
134
+ exports.KustoConnectionStringBuilderBase = KustoConnectionStringBuilderBase;
134
135
  KustoConnectionStringBuilderBase.DefaultDatabaseName = "NetDefaultDB";
135
136
  KustoConnectionStringBuilderBase.SecretReplacement = "****";
136
- exports.KustoConnectionStringBuilderBase = KustoConnectionStringBuilderBase;
137
137
  exports.default = KustoConnectionStringBuilderBase;
138
138
  //# sourceMappingURL=connectionBuilderBase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connectionBuilderBase.js","sourceRoot":"","sources":["../../src/connectionBuilderBase.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { DeviceCodeInfo, InteractiveBrowserCredentialInBrowserOptions, InteractiveBrowserCredentialNodeOptions, TokenCredential } from \"@azure/identity\";\nimport { KeyOfType } from \"./typeUtilts\";\nimport { ClientDetails } from \"./clientDetails\";\n\ninterface MappingType {\n mappedTo: string;\n validNames: string[];\n isSecret?: boolean;\n isBool?: boolean;\n}\n\ntype KcsbMappedKeys = KeyOfType<KustoConnectionStringBuilderBase, string | boolean | undefined>;\n\n// This type gurantess that we don't have properties in KeywordMapping that don't exist in KustoConnectionStringBuilder\ntype KeywordMappingRecordType = Partial<Record<KcsbMappedKeys, MappingType>>;\n\nexport const KeywordMapping: KeywordMappingRecordType = Object.freeze<Readonly<KeywordMappingRecordType>>({\n dataSource: {\n mappedTo: \"Data Source\",\n validNames: [\"data source\", \"addr\", \"address\", \"network address\", \"server\"],\n },\n aadFederatedSecurity: {\n mappedTo: \"AAD Federated Security\",\n validNames: [\"aad federated security\", \"federated security\", \"federated\", \"fed\", \"aadfed\"],\n isBool: true,\n },\n initialCatalog: {\n mappedTo: \"Initial Catalog\",\n validNames: [\"initial catalog\", \"database\"],\n },\n aadUserId: {\n mappedTo: \"AAD User ID\",\n validNames: [\"aad user id\"],\n },\n password: {\n mappedTo: \"Password\",\n validNames: [\"password\", \"pwd\"],\n isSecret: true,\n },\n applicationClientId: {\n mappedTo: \"Application Client Id\",\n validNames: [\"application client id\", \"appclientid\"],\n },\n applicationKey: {\n mappedTo: \"Application Key\",\n validNames: [\"application key\", \"appkey\"],\n isSecret: true,\n },\n applicationCertificatePrivateKey: {\n mappedTo: \"Application Certificate PrivateKey\",\n validNames: [\"Application Certificate PrivateKey\"],\n isSecret: true,\n },\n applicationCertificateSendX5c: {\n mappedTo: \"Application Certificate x5c\",\n validNames: [\"application certificate x5c\", \"Application Certificate Send Public Certificate\", \"Application Certificate SendX5c\", \"SendX5c\"],\n isBool: true,\n },\n authorityId: {\n mappedTo: \"Authority Id\",\n validNames: [\"authority id\", \"authorityid\", \"authority\", \"tenantid\", \"tenant\", \"tid\"],\n },\n});\n\nconst getPropName = (key: string): [string, MappingType] => {\n const _key = key.trim().toLowerCase();\n\n for (const keyword of Object.keys(KeywordMapping)) {\n const k = KeywordMapping[keyword as KcsbMappedKeys];\n if (!k) {\n continue;\n }\n if (k.validNames.map((n) => n.trim().toLowerCase()).indexOf(_key) >= 0) {\n return [keyword, k];\n }\n }\n throw new Error(\"Failed to get prop: \" + key);\n};\n\nexport abstract class KustoConnectionStringBuilderBase {\n static readonly DefaultDatabaseName = \"NetDefaultDB\";\n static readonly SecretReplacement = \"****\";\n\n dataSource?: string;\n aadFederatedSecurity?: boolean;\n initialCatalog?: string;\n aadUserId?: string;\n password?: string;\n applicationClientId?: string;\n msiClientId?: string;\n applicationKey?: string;\n applicationCertificatePrivateKey?: string;\n applicationCertificateSendX5c?: boolean;\n authorityId: string = \"organizations\";\n deviceCodeCallback?: (response: DeviceCodeInfo) => void;\n tokenProvider?: () => Promise<string>;\n timeoutMs?: number;\n accessToken?: string;\n useDeviceCodeAuth?: boolean;\n useUserPromptAuth?: boolean;\n useAzLoginAuth?: boolean;\n useManagedIdentityAuth?: boolean;\n interactiveCredentialOptions?: InteractiveBrowserCredentialNodeOptions | InteractiveBrowserCredentialInBrowserOptions;\n tokenCredential?: TokenCredential;\n\n // discarded from to mapped names for security\n applicationCertificatePath?: string;\n public applicationNameForTracing: string | null = null;\n public userNameForTracing: string | null = null;\n\n constructor(connectionString: string) {\n if (connectionString.trim().length === 0) throw new Error(\"Missing connection string\");\n\n if (connectionString.endsWith(\"/\") || connectionString.endsWith(\"\\\\\")) {\n connectionString = connectionString.slice(0, -1);\n }\n\n if (!!connectionString && connectionString.split(\";\")[0].indexOf(\"=\") === -1) {\n connectionString = \"Data Source=\" + connectionString;\n }\n\n const params = connectionString.split(\";\");\n for (const item of params) {\n const kvp = item.split(\"=\");\n const [mappingTypeName, mappingType] = getPropName(kvp[0]);\n if (mappingType.isBool) {\n this[mappingTypeName as KeyOfType<KustoConnectionStringBuilderBase, boolean | undefined>] = kvp[1].trim().toLowerCase() === \"true\";\n } else {\n this[mappingTypeName as KeyOfType<KustoConnectionStringBuilderBase, string | undefined>] = kvp[1]?.trim();\n }\n }\n\n if (!this.initialCatalog) {\n this.initialCatalog = KustoConnectionStringBuilderBase.DefaultDatabaseName;\n }\n }\n\n public clientDetails(): ClientDetails {\n return new ClientDetails(this.applicationNameForTracing, this.userNameForTracing);\n }\n\n /**\n * Sets the connector details for tracing purposes.\n *\n * @param name The name of the connector\n * @param version The version of the connector\n * @param appName? The name of the containing application\n * @param appVersion?? The version of the containing application\n * @param sendUser Whether to send the username\n * @param overrideUser?? Override the username ( if sendUser is True )\n * @param additionalFields? Additional fields to add to the header\n */\n public setConnectorDetails(\n name: string,\n version: string,\n appName?: string,\n appVersion?: string,\n sendUser: boolean = false,\n overrideUser?: string,\n additionalFields?: [string, string][]\n ): void {\n const clientDetails = ClientDetails.setConnectorDetails(name, version, appName, appVersion, sendUser, overrideUser, additionalFields);\n\n this.applicationNameForTracing = clientDetails.applicationNameForTracing;\n this.userNameForTracing = clientDetails.userNameForTracing;\n }\n\n toString(removeSecrets: boolean = true): string {\n return Object.entries(KeywordMapping)\n .map(([key, mappingType]) => {\n const value = this[key as KcsbMappedKeys];\n if (!mappingType || value === undefined) {\n return \"\";\n }\n if (mappingType.isSecret && removeSecrets) {\n return `${mappingType.mappedTo}=${KustoConnectionStringBuilderBase.SecretReplacement}`;\n }\n\n return `${mappingType.mappedTo}=${value.toString()}`;\n })\n .filter((x) => x !== \"\")\n .join(\";\");\n }\n\n static fromExisting(other: KustoConnectionStringBuilderBase): KustoConnectionStringBuilderBase {\n return Object.assign({}, other);\n }\n}\n\nexport default KustoConnectionStringBuilderBase;\n"]}
1
+ {"version":3,"file":"connectionBuilderBase.js","sourceRoot":"","sources":["../../src/connectionBuilderBase.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAIlC,mDAAgD;AAcnC,QAAA,cAAc,GAA6B,MAAM,CAAC,MAAM,CAAqC;IACtG,UAAU,EAAE;QACR,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,CAAC;KAC9E;IACD,oBAAoB,EAAE;QAClB,QAAQ,EAAE,wBAAwB;QAClC,UAAU,EAAE,CAAC,wBAAwB,EAAE,oBAAoB,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC;QAC1F,MAAM,EAAE,IAAI;KACf;IACD,cAAc,EAAE;QACZ,QAAQ,EAAE,iBAAiB;QAC3B,UAAU,EAAE,CAAC,iBAAiB,EAAE,UAAU,CAAC;KAC9C;IACD,SAAS,EAAE;QACP,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,CAAC,aAAa,CAAC;KAC9B;IACD,QAAQ,EAAE;QACN,QAAQ,EAAE,UAAU;QACpB,UAAU,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC;QAC/B,QAAQ,EAAE,IAAI;KACjB;IACD,mBAAmB,EAAE;QACjB,QAAQ,EAAE,uBAAuB;QACjC,UAAU,EAAE,CAAC,uBAAuB,EAAE,aAAa,CAAC;KACvD;IACD,cAAc,EAAE;QACZ,QAAQ,EAAE,iBAAiB;QAC3B,UAAU,EAAE,CAAC,iBAAiB,EAAE,QAAQ,CAAC;QACzC,QAAQ,EAAE,IAAI;KACjB;IACD,gCAAgC,EAAE;QAC9B,QAAQ,EAAE,oCAAoC;QAC9C,UAAU,EAAE,CAAC,oCAAoC,CAAC;QAClD,QAAQ,EAAE,IAAI;KACjB;IACD,6BAA6B,EAAE;QAC3B,QAAQ,EAAE,6BAA6B;QACvC,UAAU,EAAE,CAAC,6BAA6B,EAAE,iDAAiD,EAAE,iCAAiC,EAAE,SAAS,CAAC;QAC5I,MAAM,EAAE,IAAI;KACf;IACD,WAAW,EAAE;QACT,QAAQ,EAAE,cAAc;QACxB,UAAU,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC;KACxF;CACJ,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,CAAC,GAAW,EAAyB,EAAE;IACvD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAEtC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,sBAAc,CAAC,EAAE;QAC/C,MAAM,CAAC,GAAG,sBAAc,CAAC,OAAyB,CAAC,CAAC;QACpD,IAAI,CAAC,CAAC,EAAE;YACJ,SAAS;SACZ;QACD,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACpE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;SACvB;KACJ;IACD,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,GAAG,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAsB,gCAAgC;IA+BlD,YAAY,gBAAwB;;QAjBpC,gBAAW,GAAW,eAAe,CAAC;QAc/B,8BAAyB,GAAkB,IAAI,CAAC;QAChD,uBAAkB,GAAkB,IAAI,CAAC;QAG5C,IAAI,gBAAgB,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAEvF,IAAI,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACnE,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACpD;QAED,IAAI,CAAC,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YAC1E,gBAAgB,GAAG,cAAc,GAAG,gBAAgB,CAAC;SACxD;QAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3C,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,IAAI,WAAW,CAAC,MAAM,EAAE;gBACpB,IAAI,CAAC,eAAmF,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;aACtI;iBAAM;gBACH,IAAI,CAAC,eAAkF,CAAC,GAAG,MAAA,GAAG,CAAC,CAAC,CAAC,0CAAE,IAAI,EAAE,CAAC;aAC7G;SACJ;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,cAAc,GAAG,gCAAgC,CAAC,mBAAmB,CAAC;SAC9E;IACL,CAAC;IAEM,aAAa;QAChB,OAAO,IAAI,6BAAa,CAAC,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACtF,CAAC;IAED;;;;;;;;;;OAUG;IACI,mBAAmB,CACtB,IAAY,EACZ,OAAe,EACf,OAAgB,EAChB,UAAmB,EACnB,WAAoB,KAAK,EACzB,YAAqB,EACrB,gBAAqC;QAErC,MAAM,aAAa,GAAG,6BAAa,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;QAEtI,IAAI,CAAC,yBAAyB,GAAG,aAAa,CAAC,yBAAyB,CAAC;QACzE,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC,kBAAkB,CAAC;IAC/D,CAAC;IAED,QAAQ,CAAC,gBAAyB,IAAI;QAClC,OAAO,MAAM,CAAC,OAAO,CAAC,sBAAc,CAAC;aAChC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,EAAE;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAqB,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,IAAI,KAAK,KAAK,SAAS,EAAE;gBACrC,OAAO,EAAE,CAAC;aACb;YACD,IAAI,WAAW,CAAC,QAAQ,IAAI,aAAa,EAAE;gBACvC,OAAO,GAAG,WAAW,CAAC,QAAQ,IAAI,gCAAgC,CAAC,iBAAiB,EAAE,CAAC;aAC1F;YAED,OAAO,GAAG,WAAW,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;QACzD,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;aACvB,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,KAAuC;QACvD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;;AA3GL,4EA4GC;AA3GmB,oDAAmB,GAAG,cAAc,AAAjB,CAAkB;AACrC,kDAAiB,GAAG,MAAM,AAAT,CAAU;AA4G/C,kBAAe,gCAAgC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { DeviceCodeInfo, InteractiveBrowserCredentialInBrowserOptions, InteractiveBrowserCredentialNodeOptions, TokenCredential } from \"@azure/identity\";\nimport { KeyOfType } from \"./typeUtilts\";\nimport { ClientDetails } from \"./clientDetails\";\n\ninterface MappingType {\n mappedTo: string;\n validNames: string[];\n isSecret?: boolean;\n isBool?: boolean;\n}\n\ntype KcsbMappedKeys = KeyOfType<KustoConnectionStringBuilderBase, string | boolean | undefined>;\n\n// This type gurantess that we don't have properties in KeywordMapping that don't exist in KustoConnectionStringBuilder\ntype KeywordMappingRecordType = Partial<Record<KcsbMappedKeys, MappingType>>;\n\nexport const KeywordMapping: KeywordMappingRecordType = Object.freeze<Readonly<KeywordMappingRecordType>>({\n dataSource: {\n mappedTo: \"Data Source\",\n validNames: [\"data source\", \"addr\", \"address\", \"network address\", \"server\"],\n },\n aadFederatedSecurity: {\n mappedTo: \"AAD Federated Security\",\n validNames: [\"aad federated security\", \"federated security\", \"federated\", \"fed\", \"aadfed\"],\n isBool: true,\n },\n initialCatalog: {\n mappedTo: \"Initial Catalog\",\n validNames: [\"initial catalog\", \"database\"],\n },\n aadUserId: {\n mappedTo: \"AAD User ID\",\n validNames: [\"aad user id\"],\n },\n password: {\n mappedTo: \"Password\",\n validNames: [\"password\", \"pwd\"],\n isSecret: true,\n },\n applicationClientId: {\n mappedTo: \"Application Client Id\",\n validNames: [\"application client id\", \"appclientid\"],\n },\n applicationKey: {\n mappedTo: \"Application Key\",\n validNames: [\"application key\", \"appkey\"],\n isSecret: true,\n },\n applicationCertificatePrivateKey: {\n mappedTo: \"Application Certificate PrivateKey\",\n validNames: [\"Application Certificate PrivateKey\"],\n isSecret: true,\n },\n applicationCertificateSendX5c: {\n mappedTo: \"Application Certificate x5c\",\n validNames: [\"application certificate x5c\", \"Application Certificate Send Public Certificate\", \"Application Certificate SendX5c\", \"SendX5c\"],\n isBool: true,\n },\n authorityId: {\n mappedTo: \"Authority Id\",\n validNames: [\"authority id\", \"authorityid\", \"authority\", \"tenantid\", \"tenant\", \"tid\"],\n },\n});\n\nconst getPropName = (key: string): [string, MappingType] => {\n const _key = key.trim().toLowerCase();\n\n for (const keyword of Object.keys(KeywordMapping)) {\n const k = KeywordMapping[keyword as KcsbMappedKeys];\n if (!k) {\n continue;\n }\n if (k.validNames.map((n) => n.trim().toLowerCase()).indexOf(_key) >= 0) {\n return [keyword, k];\n }\n }\n throw new Error(\"Failed to get prop: \" + key);\n};\n\nexport abstract class KustoConnectionStringBuilderBase {\n static readonly DefaultDatabaseName = \"NetDefaultDB\";\n static readonly SecretReplacement = \"****\";\n\n dataSource?: string;\n aadFederatedSecurity?: boolean;\n initialCatalog?: string;\n aadUserId?: string;\n password?: string;\n applicationClientId?: string;\n msiClientId?: string;\n applicationKey?: string;\n applicationCertificatePrivateKey?: string;\n applicationCertificateSendX5c?: boolean;\n authorityId: string = \"organizations\";\n deviceCodeCallback?: (response: DeviceCodeInfo) => void;\n tokenProvider?: () => Promise<string>;\n timeoutMs?: number;\n accessToken?: string;\n useDeviceCodeAuth?: boolean;\n useUserPromptAuth?: boolean;\n useAzLoginAuth?: boolean;\n useManagedIdentityAuth?: boolean;\n interactiveCredentialOptions?: InteractiveBrowserCredentialNodeOptions | InteractiveBrowserCredentialInBrowserOptions;\n tokenCredential?: TokenCredential;\n\n // discarded from to mapped names for security\n applicationCertificatePath?: string;\n public applicationNameForTracing: string | null = null;\n public userNameForTracing: string | null = null;\n\n constructor(connectionString: string) {\n if (connectionString.trim().length === 0) throw new Error(\"Missing connection string\");\n\n if (connectionString.endsWith(\"/\") || connectionString.endsWith(\"\\\\\")) {\n connectionString = connectionString.slice(0, -1);\n }\n\n if (!!connectionString && connectionString.split(\";\")[0].indexOf(\"=\") === -1) {\n connectionString = \"Data Source=\" + connectionString;\n }\n\n const params = connectionString.split(\";\");\n for (const item of params) {\n const kvp = item.split(\"=\");\n const [mappingTypeName, mappingType] = getPropName(kvp[0]);\n if (mappingType.isBool) {\n this[mappingTypeName as KeyOfType<KustoConnectionStringBuilderBase, boolean | undefined>] = kvp[1].trim().toLowerCase() === \"true\";\n } else {\n this[mappingTypeName as KeyOfType<KustoConnectionStringBuilderBase, string | undefined>] = kvp[1]?.trim();\n }\n }\n\n if (!this.initialCatalog) {\n this.initialCatalog = KustoConnectionStringBuilderBase.DefaultDatabaseName;\n }\n }\n\n public clientDetails(): ClientDetails {\n return new ClientDetails(this.applicationNameForTracing, this.userNameForTracing);\n }\n\n /**\n * Sets the connector details for tracing purposes.\n *\n * @param name The name of the connector\n * @param version The version of the connector\n * @param appName? The name of the containing application\n * @param appVersion?? The version of the containing application\n * @param sendUser Whether to send the username\n * @param overrideUser?? Override the username ( if sendUser is True )\n * @param additionalFields? Additional fields to add to the header\n */\n public setConnectorDetails(\n name: string,\n version: string,\n appName?: string,\n appVersion?: string,\n sendUser: boolean = false,\n overrideUser?: string,\n additionalFields?: [string, string][]\n ): void {\n const clientDetails = ClientDetails.setConnectorDetails(name, version, appName, appVersion, sendUser, overrideUser, additionalFields);\n\n this.applicationNameForTracing = clientDetails.applicationNameForTracing;\n this.userNameForTracing = clientDetails.userNameForTracing;\n }\n\n toString(removeSecrets: boolean = true): string {\n return Object.entries(KeywordMapping)\n .map(([key, mappingType]) => {\n const value = this[key as KcsbMappedKeys];\n if (!mappingType || value === undefined) {\n return \"\";\n }\n if (mappingType.isSecret && removeSecrets) {\n return `${mappingType.mappedTo}=${KustoConnectionStringBuilderBase.SecretReplacement}`;\n }\n\n return `${mappingType.mappedTo}=${value.toString()}`;\n })\n .filter((x) => x !== \"\")\n .join(\";\");\n }\n\n static fromExisting(other: KustoConnectionStringBuilderBase): KustoConnectionStringBuilderBase {\n return Object.assign({}, other);\n }\n}\n\nexport default KustoConnectionStringBuilderBase;\n"]}
@@ -28,7 +28,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  return (mod && mod.__esModule) ? mod : { "default": mod };
29
29
  };
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
- exports.TimeUtils = exports.MatchRule = exports.kustoTrustedEndpoints = exports.KustoResponseDataSet = exports.KustoDataErrors = exports.KustoConnectionStringBuilder = exports.CloudSettings = exports.ClientRequestProperties = exports.Client = void 0;
31
+ exports.TimeUtils = exports.MatchRule = exports.kustoTrustedEndpoints = exports.KustoResultTable = exports.KustoResultRow = exports.KustoResultColumn = exports.KustoResponseDataSet = exports.KustoDataErrors = exports.KustoConnectionStringBuilder = exports.CloudSettings = exports.ClientRequestProperties = exports.Client = void 0;
32
32
  const client_1 = __importDefault(require("./client"));
33
33
  exports.Client = client_1.default;
34
34
  const clientRequestProperties_1 = __importDefault(require("./clientRequestProperties"));
@@ -42,6 +42,10 @@ exports.KustoDataErrors = KustoDataErrors;
42
42
  const kustoTrustedEndpoints_1 = require("./kustoTrustedEndpoints");
43
43
  Object.defineProperty(exports, "kustoTrustedEndpoints", { enumerable: true, get: function () { return kustoTrustedEndpoints_1.kustoTrustedEndpoints; } });
44
44
  Object.defineProperty(exports, "MatchRule", { enumerable: true, get: function () { return kustoTrustedEndpoints_1.MatchRule; } });
45
+ const models_1 = require("./models");
46
+ Object.defineProperty(exports, "KustoResultColumn", { enumerable: true, get: function () { return models_1.KustoResultColumn; } });
47
+ Object.defineProperty(exports, "KustoResultRow", { enumerable: true, get: function () { return models_1.KustoResultRow; } });
48
+ Object.defineProperty(exports, "KustoResultTable", { enumerable: true, get: function () { return models_1.KustoResultTable; } });
45
49
  const response_1 = require("./response");
46
50
  Object.defineProperty(exports, "KustoResponseDataSet", { enumerable: true, get: function () { return response_1.KustoResponseDataSet; } });
47
51
  const timeUtils_1 = require("./timeUtils");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAElC,sDAAmC;AAYhB,iBAZZ,gBAAW,CAYO;AAXzB,wFAAgE;AAY5D,kCAZG,iCAAuB,CAYH;AAX3B,oEAA4C;AAYxC,wBAZG,uBAAa,CAYH;AAXjB,4EAA+D;AAY3D,uCAZG,2BAA4B,CAYH;AAXhC,0DAA4C;AAYxC,0CAAe;AAXnB,mEAA2E;AAavE,sGAbK,6CAAqB,OAaL;AACrB,0FAd4B,iCAAS,OAc5B;AAbb,yCAAkD;AAW9C,qGAXK,+BAAoB,OAWL;AAVxB,2CAA6C;AAE7C,MAAM,SAAS,GAAG,EAAE,cAAc,EAAd,0BAAc,EAAE,CAAC;AAWjC,8BAAS","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport KustoClient from \"./client\";\nimport ClientRequestProperties from \"./clientRequestProperties\";\nimport CloudSettings from \"./cloudSettings\";\nimport KustoConnectionStringBuilder from \"./connectionBuilder\";\nimport * as KustoDataErrors from \"./errors\";\nimport { kustoTrustedEndpoints, MatchRule } from \"./kustoTrustedEndpoints\";\nimport { KustoResponseDataSet } from \"./response\";\nimport { toMilliseconds } from \"./timeUtils\";\n\nconst TimeUtils = { toMilliseconds };\n\nexport {\n KustoClient as Client,\n ClientRequestProperties,\n CloudSettings,\n KustoConnectionStringBuilder,\n KustoDataErrors,\n KustoResponseDataSet,\n kustoTrustedEndpoints,\n MatchRule,\n TimeUtils,\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAElC,sDAAmC;AAahB,iBAbZ,gBAAW,CAaO;AAZzB,wFAAgE;AAa5D,kCAbG,iCAAuB,CAaH;AAZ3B,oEAA4C;AAaxC,wBAbG,uBAAa,CAaH;AAZjB,4EAA+D;AAa3D,uCAbG,2BAA4B,CAaH;AAZhC,0DAA4C;AAaxC,0CAAe;AAZnB,mEAA2E;AAiBvE,sGAjBK,6CAAqB,OAiBL;AACrB,0FAlB4B,iCAAS,OAkB5B;AAjBb,qCAA+E;AAa3E,kGAbK,0BAAiB,OAaL;AACjB,+FAdwB,uBAAc,OAcxB;AACd,iGAfwC,yBAAgB,OAexC;AAdpB,yCAAkD;AAW9C,qGAXK,+BAAoB,OAWL;AAVxB,2CAA6C;AAE7C,MAAM,SAAS,GAAG,EAAE,cAAc,EAAd,0BAAc,EAAE,CAAC;AAcjC,8BAAS","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport KustoClient from \"./client\";\nimport ClientRequestProperties from \"./clientRequestProperties\";\nimport CloudSettings from \"./cloudSettings\";\nimport KustoConnectionStringBuilder from \"./connectionBuilder\";\nimport * as KustoDataErrors from \"./errors\";\nimport { kustoTrustedEndpoints, MatchRule } from \"./kustoTrustedEndpoints\";\nimport { KustoResultColumn, KustoResultRow, KustoResultTable } from \"./models\";\nimport { KustoResponseDataSet } from \"./response\";\nimport { toMilliseconds } from \"./timeUtils\";\n\nconst TimeUtils = { toMilliseconds };\n\nexport {\n KustoClient as Client,\n ClientRequestProperties,\n CloudSettings,\n KustoConnectionStringBuilder,\n KustoDataErrors,\n KustoResponseDataSet,\n KustoResultColumn,\n KustoResultRow,\n KustoResultTable,\n kustoTrustedEndpoints,\n MatchRule,\n TimeUtils,\n};\n"]}
@@ -10,7 +10,7 @@ var WellKnownDataSet;
10
10
  WellKnownDataSet["QueryCompletionInformation"] = "QueryCompletionInformation";
11
11
  WellKnownDataSet["TableOfContents"] = "TableOfContents";
12
12
  WellKnownDataSet["QueryProperties"] = "QueryProperties";
13
- })(WellKnownDataSet = exports.WellKnownDataSet || (exports.WellKnownDataSet = {}));
13
+ })(WellKnownDataSet || (exports.WellKnownDataSet = WellKnownDataSet = {}));
14
14
  const defaultDatetimeParser = (t) => new Date(t);
15
15
  const defaultTimespanParser = timeUtils_1.parseKustoTimestampToMillis;
16
16
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { parseKustoTimestampToMillis } from \"./timeUtils\";\n\nexport enum WellKnownDataSet {\n PrimaryResult = \"PrimaryResult\",\n QueryCompletionInformation = \"QueryCompletionInformation\",\n TableOfContents = \"TableOfContents\",\n QueryProperties = \"QueryProperties\",\n}\n\ntype DateTimeParser = (value: string) => any;\ntype TimeSpanParser = (value: string) => any;\n\nconst defaultDatetimeParser: DateTimeParser = (t: string) => new Date(t);\nconst defaultTimespanParser: TimeSpanParser = parseKustoTimestampToMillis;\n\nexport interface Table {\n TableKind?: string;\n TableName: string;\n TableId?: number;\n Columns: Column[];\n Rows: any[][];\n}\n\ninterface Column {\n ColumnName: string;\n ColumnType?: string;\n DateType?: string;\n}\n\n/**\n * Represents a Kusto result row.\n * Use `dateTimeParser` and `timeSpanParser` to customize the parsing of the `datetime` and `timespan` types.\n * By default, `datetime` is parsed to a `Date` object and `timespan` is parsed to a number representing the number of milliseconds, as returned by subtracting two `Date` objects.\n */\nexport class KustoResultRow {\n columns: KustoResultColumn[];\n raw: { [ord: number]: any };\n\n [column: string]: any;\n\n constructor(\n columns: KustoResultColumn[],\n row: { [ord: number]: any },\n dateTimeParser: DateTimeParser = defaultDatetimeParser,\n timeSpanParser: TimeSpanParser = defaultTimespanParser\n ) {\n this.columns = columns.sort((a, b) => a.ordinal - b.ordinal);\n this.raw = row;\n\n for (const col of this.columns) {\n if (col.name == null) {\n continue;\n }\n let value = row[col.ordinal];\n\n if (col.type != null) {\n switch (col.type.toLowerCase()) {\n case \"datetime\":\n value = dateTimeParser(value);\n break;\n case \"timespan\":\n value = timeSpanParser(value);\n break;\n }\n this[col.name] = row[col.ordinal];\n }\n\n this[col.name] = value;\n }\n }\n\n *values() {\n for (let i = 0; i < this.columns.length; i++) {\n yield this.raw[i];\n }\n }\n\n getValueAt(index: number) {\n return this[this.columns[index].name as string];\n }\n\n /**\n * @deprecated use the compliant toJSON() instead\n */\n toJson() {\n return this.toJSON();\n }\n\n toJSON<T = Record<string, any>>(): T {\n const obj: Record<string, any> = {};\n\n for (const col of this.columns) {\n obj[col.name as string] = this[col.name as string];\n }\n\n return obj as T;\n }\n\n toString() {\n return JSON.stringify(this.toJSON());\n }\n}\n\nexport class KustoResultColumn {\n name: string | null;\n type: string | null;\n ordinal: number;\n\n constructor(columnObj: { ColumnName?: string; ColumnType?: string; DateType?: string }, ordinal: number) {\n this.name = columnObj.ColumnName ?? null;\n // TODO: should validate type? should coarse value to type?\n this.type = (columnObj.ColumnType || columnObj.DateType) ?? null;\n this.ordinal = ordinal;\n }\n}\n\nexport class KustoResultTable {\n name: string;\n id?: number;\n kind?: string;\n columns: KustoResultColumn[];\n readonly _rows: any[];\n private _dateTimeParser: DateTimeParser = defaultDatetimeParser;\n private _timeSpanParser: TimeSpanParser = defaultTimespanParser;\n\n [row: number]: any;\n\n constructor(tableObj: Table) {\n this.name = tableObj.TableName;\n if (tableObj.TableId !== undefined) {\n this.id = tableObj.TableId;\n }\n\n if (tableObj.TableKind) {\n this.kind = tableObj.TableKind;\n }\n\n this.columns = tableObj.Columns.map((item, index) => new KustoResultColumn(item, index));\n this._rows = tableObj.Rows;\n\n if (this._rows && this._rows.length > 0) {\n for (let i = 0; i < tableObj.Rows.length; i++) {\n Object.defineProperty(this, i, { get: () => new KustoResultRow(this.columns, this._rows[i]) });\n }\n }\n }\n\n get timeSpanParser(): TimeSpanParser {\n return this._timeSpanParser;\n }\n\n set timeSpanParser(value: TimeSpanParser) {\n this._timeSpanParser = value;\n }\n get dateTimeParser(): DateTimeParser {\n return this._dateTimeParser;\n }\n\n set dateTimeParser(value: DateTimeParser) {\n this._dateTimeParser = value;\n }\n\n *rows() {\n for (const row of this._rows) {\n yield new KustoResultRow(this.columns, row, this._dateTimeParser, this._timeSpanParser);\n }\n }\n\n /**\n * @deprecated use the compliant toJSON() instead\n */\n toJson() {\n return this.toJSON();\n }\n\n toJSON<T = Record<string, any>>(): {\n name: string;\n data: T[];\n } {\n const table: {\n name: string;\n data: T[];\n } = {\n name: this.name,\n data: [],\n };\n for (const row of this.rows()) {\n table.data.push(row.toJSON<T>());\n }\n\n return table;\n }\n\n toString() {\n return JSON.stringify(this.toJSON());\n }\n}\n"]}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { parseKustoTimestampToMillis } from \"./timeUtils\";\n\nexport enum WellKnownDataSet {\n PrimaryResult = \"PrimaryResult\",\n QueryCompletionInformation = \"QueryCompletionInformation\",\n TableOfContents = \"TableOfContents\",\n QueryProperties = \"QueryProperties\",\n}\n\ntype DateTimeParser = (value: string) => any;\ntype TimeSpanParser = (value: string) => any;\n\nconst defaultDatetimeParser: DateTimeParser = (t: string) => new Date(t);\nconst defaultTimespanParser: TimeSpanParser = parseKustoTimestampToMillis;\n\nexport interface Table {\n TableKind?: string;\n TableName: string;\n TableId?: number;\n Columns: Column[];\n Rows: any[][];\n}\n\ninterface Column {\n ColumnName: string;\n ColumnType?: string;\n DateType?: string;\n}\n\n/**\n * Represents a Kusto result row.\n * Use `dateTimeParser` and `timeSpanParser` to customize the parsing of the `datetime` and `timespan` types.\n * By default, `datetime` is parsed to a `Date` object and `timespan` is parsed to a number representing the number of milliseconds, as returned by subtracting two `Date` objects.\n */\nexport class KustoResultRow {\n columns: KustoResultColumn[];\n raw: { [ord: number]: any };\n\n [column: string]: any;\n\n constructor(\n columns: KustoResultColumn[],\n row: { [ord: number]: any },\n dateTimeParser: DateTimeParser = defaultDatetimeParser,\n timeSpanParser: TimeSpanParser = defaultTimespanParser\n ) {\n this.columns = columns.sort((a, b) => a.ordinal - b.ordinal);\n this.raw = row;\n\n for (const col of this.columns) {\n if (col.name == null) {\n continue;\n }\n let value = row[col.ordinal];\n\n if (col.type != null) {\n switch (col.type.toLowerCase()) {\n case \"datetime\":\n value = dateTimeParser(value);\n break;\n case \"timespan\":\n value = timeSpanParser(value);\n break;\n }\n this[col.name] = row[col.ordinal];\n }\n\n this[col.name] = value;\n }\n }\n\n *values() {\n for (let i = 0; i < this.columns.length; i++) {\n yield this.raw[i];\n }\n }\n\n getValueAt(index: number) {\n return this[this.columns[index].name as string];\n }\n\n /**\n * @deprecated use the compliant toJSON() instead\n */\n toJson() {\n return this.toJSON();\n }\n\n toJSON<T = Record<string, any>>(): T {\n const obj: Record<string, any> = {};\n\n for (const col of this.columns) {\n obj[col.name as string] = this[col.name as string];\n }\n\n return obj as T;\n }\n\n toString() {\n return JSON.stringify(this.toJSON());\n }\n}\n\nexport class KustoResultColumn {\n name: string | null;\n type: string | null;\n ordinal: number;\n\n constructor(columnObj: { ColumnName?: string; ColumnType?: string; DateType?: string }, ordinal: number) {\n this.name = columnObj.ColumnName ?? null;\n // TODO: should validate type? should coarse value to type?\n this.type = (columnObj.ColumnType || columnObj.DateType) ?? null;\n this.ordinal = ordinal;\n }\n}\n\nexport class KustoResultTable {\n name: string;\n id?: number;\n kind?: string;\n columns: KustoResultColumn[];\n readonly _rows: any[];\n private _dateTimeParser: DateTimeParser = defaultDatetimeParser;\n private _timeSpanParser: TimeSpanParser = defaultTimespanParser;\n\n [row: number]: any;\n\n constructor(tableObj: Table) {\n this.name = tableObj.TableName;\n if (tableObj.TableId !== undefined) {\n this.id = tableObj.TableId;\n }\n\n if (tableObj.TableKind) {\n this.kind = tableObj.TableKind;\n }\n\n this.columns = tableObj.Columns.map((item, index) => new KustoResultColumn(item, index));\n this._rows = tableObj.Rows;\n\n if (this._rows && this._rows.length > 0) {\n for (let i = 0; i < tableObj.Rows.length; i++) {\n Object.defineProperty(this, i, { get: () => new KustoResultRow(this.columns, this._rows[i]) });\n }\n }\n }\n\n get timeSpanParser(): TimeSpanParser {\n return this._timeSpanParser;\n }\n\n set timeSpanParser(value: TimeSpanParser) {\n this._timeSpanParser = value;\n }\n get dateTimeParser(): DateTimeParser {\n return this._dateTimeParser;\n }\n\n set dateTimeParser(value: DateTimeParser) {\n this._dateTimeParser = value;\n }\n\n *rows() {\n for (const row of this._rows) {\n yield new KustoResultRow(this.columns, row, this._dateTimeParser, this._timeSpanParser);\n }\n }\n\n /**\n * @deprecated use the compliant toJSON() instead\n */\n toJson() {\n return this.toJSON();\n }\n\n toJSON<T = Record<string, any>>(): {\n name: string;\n data: T[];\n } {\n const table: {\n name: string;\n data: T[];\n } = {\n name: this.name,\n data: [],\n };\n for (const row of this.rows()) {\n table.data.push(row.toJSON<T>());\n }\n\n return table;\n }\n\n toString() {\n return JSON.stringify(this.toJSON());\n }\n}\n"]}
@@ -4,5 +4,5 @@
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.SDK_VERSION = void 0;
6
6
  // SDK_VERSION should be updated in all 3 package.json and lerna.json(by running lerna version)
7
- exports.SDK_VERSION = "5.0.4";
7
+ exports.SDK_VERSION = "5.2.1";
8
8
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,+FAA+F;AAClF,QAAA,WAAW,GAAG,OAAO,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n// SDK_VERSION should be updated in all 3 package.json and lerna.json(by running lerna version)\nexport const SDK_VERSION = \"5.0.4\";\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,+FAA+F;AAClF,QAAA,WAAW,GAAG,OAAO,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n// SDK_VERSION should be updated in all 3 package.json and lerna.json(by running lerna version)\nexport const SDK_VERSION = \"5.2.1\";\n"]}
@@ -17,6 +17,7 @@
17
17
  ".kustodev.windows.net",
18
18
  ".kustomfa.windows.net",
19
19
  ".playfabapi.com",
20
+ ".azureplayfab.com",
20
21
  ".playfab.com",
21
22
  ".kusto.data.microsoft.com",
22
23
  ".kusto.fabric.microsoft.com"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "azure-kusto-data",
3
- "version": "5.2.0",
3
+ "version": "5.2.2",
4
4
  "description": "Azure Data Explorer Query SDK",
5
5
  "module": "dist-esm/src/index.js",
6
6
  "types": "./types/src/index.d.ts",
@@ -59,8 +59,7 @@
59
59
  "@azure/identity": "^2.1.0",
60
60
  "@azure/msal-common": "^7.3.0",
61
61
  "@types/uuid": "^8.3.4",
62
- "axios": "^0.27.2",
63
- "crypto-browserify": "^3.12.0",
62
+ "axios": "^1.6.0",
64
63
  "follow-redirects": "^1.15.1",
65
64
  "https-browserify": "^1.0.0",
66
65
  "stream-http": "^3.2.0",
@@ -69,5 +68,5 @@
69
68
  "overrides": {
70
69
  "jsonwebtoken": "^9.0.0"
71
70
  },
72
- "gitHead": "0d653678b2a70173739b6b140fc3a6e9e3b8bd78"
71
+ "gitHead": "d6df72edb3a570c59a87af9337ea4c894fb998fc"
73
72
  }
@@ -1,8 +1,8 @@
1
- import AadHelper from "./security";
2
- import { KustoResponseDataSet } from "./response";
3
- import ConnectionStringBuilder from "./connectionBuilder";
4
- import ClientRequestProperties from "./clientRequestProperties";
5
1
  import { AxiosInstance } from "axios";
2
+ import ClientRequestProperties from "./clientRequestProperties";
3
+ import ConnectionStringBuilder from "./connectionBuilder";
4
+ import { KustoResponseDataSet } from "./response";
5
+ import AadHelper from "./security";
6
6
  declare enum ExecutionType {
7
7
  Mgmt = "mgmt",
8
8
  Query = "query",
@@ -4,10 +4,11 @@ import CloudSettings from "./cloudSettings";
4
4
  import KustoConnectionStringBuilder from "./connectionBuilder";
5
5
  import * as KustoDataErrors from "./errors";
6
6
  import { kustoTrustedEndpoints, MatchRule } from "./kustoTrustedEndpoints";
7
+ import { KustoResultColumn, KustoResultRow, KustoResultTable } from "./models";
7
8
  import { KustoResponseDataSet } from "./response";
8
9
  import { toMilliseconds } from "./timeUtils";
9
10
  declare const TimeUtils: {
10
11
  toMilliseconds: typeof toMilliseconds;
11
12
  };
12
- export { KustoClient as Client, ClientRequestProperties, CloudSettings, KustoConnectionStringBuilder, KustoDataErrors, KustoResponseDataSet, kustoTrustedEndpoints, MatchRule, TimeUtils, };
13
+ export { KustoClient as Client, ClientRequestProperties, CloudSettings, KustoConnectionStringBuilder, KustoDataErrors, KustoResponseDataSet, KustoResultColumn, KustoResultRow, KustoResultTable, kustoTrustedEndpoints, MatchRule, TimeUtils, };
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1,2 @@
1
- export declare const SDK_VERSION = "5.0.4";
1
+ export declare const SDK_VERSION = "5.2.1";
2
2
  //# sourceMappingURL=version.d.ts.map