diff --git a/.licenses/npm/@actions/cache.dep.yml b/.licenses/npm/@actions/cache.dep.yml index 8ff5e01..c2d23e2 100644 Binary files a/.licenses/npm/@actions/cache.dep.yml and b/.licenses/npm/@actions/cache.dep.yml differ diff --git a/.licenses/npm/@azure/core-http.dep.yml b/.licenses/npm/@azure/core-http.dep.yml index f1b9d8c..6a2bfc5 100644 Binary files a/.licenses/npm/@azure/core-http.dep.yml and b/.licenses/npm/@azure/core-http.dep.yml differ diff --git a/.licenses/npm/@azure/core-lro.dep.yml b/.licenses/npm/@azure/core-lro.dep.yml index fc3276f..d454075 100644 Binary files a/.licenses/npm/@azure/core-lro.dep.yml and b/.licenses/npm/@azure/core-lro.dep.yml differ diff --git a/.licenses/npm/@azure/core-paging.dep.yml b/.licenses/npm/@azure/core-paging.dep.yml index 97cc7d3..72d23ac 100644 Binary files a/.licenses/npm/@azure/core-paging.dep.yml and b/.licenses/npm/@azure/core-paging.dep.yml differ diff --git a/.licenses/npm/@azure/core-tracing.dep.yml b/.licenses/npm/@azure/core-tracing.dep.yml index 605bff8..a4649e8 100644 Binary files a/.licenses/npm/@azure/core-tracing.dep.yml and b/.licenses/npm/@azure/core-tracing.dep.yml differ diff --git a/.licenses/npm/@azure/logger.dep.yml b/.licenses/npm/@azure/logger.dep.yml index e25bc86..978e29a 100644 Binary files a/.licenses/npm/@azure/logger.dep.yml and b/.licenses/npm/@azure/logger.dep.yml differ diff --git a/.licenses/npm/@azure/ms-rest-js.dep.yml b/.licenses/npm/@azure/ms-rest-js.dep.yml index f344b93..fb2116f 100644 Binary files a/.licenses/npm/@azure/ms-rest-js.dep.yml and b/.licenses/npm/@azure/ms-rest-js.dep.yml differ diff --git a/.licenses/npm/@azure/storage-blob.dep.yml b/.licenses/npm/@azure/storage-blob.dep.yml index aa36621..7b187d0 100644 Binary files a/.licenses/npm/@azure/storage-blob.dep.yml and b/.licenses/npm/@azure/storage-blob.dep.yml differ diff --git a/.licenses/npm/@opencensus/web-types.dep.yml b/.licenses/npm/@opencensus/web-types.dep.yml deleted file mode 100644 index 9c2ac25..0000000 Binary files a/.licenses/npm/@opencensus/web-types.dep.yml and /dev/null differ diff --git a/.licenses/npm/@opentelemetry/api.dep.yml b/.licenses/npm/@opentelemetry/api.dep.yml index fe739bc..5674e02 100644 Binary files a/.licenses/npm/@opentelemetry/api.dep.yml and b/.licenses/npm/@opentelemetry/api.dep.yml differ diff --git a/.licenses/npm/@types/node-fetch.dep.yml b/.licenses/npm/@types/node-fetch.dep.yml index c0e4aca..094ab27 100644 Binary files a/.licenses/npm/@types/node-fetch.dep.yml and b/.licenses/npm/@types/node-fetch.dep.yml differ diff --git a/.licenses/npm/@types/tunnel.dep.yml b/.licenses/npm/@types/tunnel.dep.yml index 22d9afd..b3636b0 100644 Binary files a/.licenses/npm/@types/tunnel.dep.yml and b/.licenses/npm/@types/tunnel.dep.yml differ diff --git a/.licenses/npm/form-data-4.0.0.dep.yml b/.licenses/npm/form-data-4.0.0.dep.yml new file mode 100644 index 0000000..ced7212 Binary files /dev/null and b/.licenses/npm/form-data-4.0.0.dep.yml differ diff --git a/.licenses/npm/node-fetch.dep.yml b/.licenses/npm/node-fetch.dep.yml index 0139d5f..90a8db3 100644 Binary files a/.licenses/npm/node-fetch.dep.yml and b/.licenses/npm/node-fetch.dep.yml differ diff --git a/.licenses/npm/tr46.dep.yml b/.licenses/npm/tr46.dep.yml new file mode 100644 index 0000000..3bacc6e Binary files /dev/null and b/.licenses/npm/tr46.dep.yml differ diff --git a/.licenses/npm/tslib-2.3.0.dep.yml b/.licenses/npm/tslib-2.3.1.dep.yml similarity index 99% rename from .licenses/npm/tslib-2.3.0.dep.yml rename to .licenses/npm/tslib-2.3.1.dep.yml index 04c29f1..a6d5be4 100644 Binary files a/.licenses/npm/tslib-2.3.0.dep.yml and b/.licenses/npm/tslib-2.3.1.dep.yml differ diff --git a/.licenses/npm/webidl-conversions.dep.yml b/.licenses/npm/webidl-conversions.dep.yml new file mode 100644 index 0000000..48c1f22 Binary files /dev/null and b/.licenses/npm/webidl-conversions.dep.yml differ diff --git a/.licenses/npm/whatwg-url.dep.yml b/.licenses/npm/whatwg-url.dep.yml new file mode 100644 index 0000000..bca799c Binary files /dev/null and b/.licenses/npm/whatwg-url.dep.yml differ diff --git a/dist/cleanup/index.js b/dist/cleanup/index.js index ea9bbe6..0a20472 100644 --- a/dist/cleanup/index.js +++ b/dist/cleanup/index.js @@ -1023,10 +1023,10 @@ function createTempDirectory() { }); } exports.createTempDirectory = createTempDirectory; -function getArchiveFileSizeIsBytes(filePath) { +function getArchiveFileSizeInBytes(filePath) { return fs.statSync(filePath).size; } -exports.getArchiveFileSizeIsBytes = getArchiveFileSizeIsBytes; +exports.getArchiveFileSizeInBytes = getArchiveFileSizeInBytes; function resolvePaths(patterns) { var e_1, _a; var _b; @@ -1249,16 +1249,24 @@ module.exports = toComparators */ Object.defineProperty(exports, "__esModule", { value: true }); exports.PropagationAPI = void 0; +var global_utils_1 = __webpack_require__(525); var NoopTextMapPropagator_1 = __webpack_require__(918); var TextMapPropagator_1 = __webpack_require__(881); -var global_utils_1 = __webpack_require__(525); +var context_helpers_1 = __webpack_require__(483); +var utils_1 = __webpack_require__(112); +var diag_1 = __webpack_require__(118); var API_NAME = 'propagation'; +var NOOP_TEXT_MAP_PROPAGATOR = new NoopTextMapPropagator_1.NoopTextMapPropagator(); /** * Singleton object which represents the entry point to the OpenTelemetry Propagation API */ var PropagationAPI = /** @class */ (function () { /** Empty private constructor prevents end users from constructing a new instance of the API */ function PropagationAPI() { + this.createBaggage = utils_1.createBaggage; + this.getBaggage = context_helpers_1.getBaggage; + this.setBaggage = context_helpers_1.setBaggage; + this.deleteBaggage = context_helpers_1.deleteBaggage; } /** Get the singleton instance of the Propagator API */ PropagationAPI.getInstance = function () { @@ -1268,11 +1276,12 @@ var PropagationAPI = /** @class */ (function () { return this._instance; }; /** - * Set the current propagator. Returns the initialized propagator + * Set the current propagator. + * + * @returns true if the propagator was successfully registered, else false */ PropagationAPI.prototype.setGlobalPropagator = function (propagator) { - global_utils_1.registerGlobal(API_NAME, propagator); - return propagator; + return global_utils_1.registerGlobal(API_NAME, propagator, diag_1.DiagAPI.instance()); }; /** * Inject context into a carrier to be propagated inter-process @@ -1304,10 +1313,10 @@ var PropagationAPI = /** @class */ (function () { }; /** Remove the global propagator */ PropagationAPI.prototype.disable = function () { - global_utils_1.unregisterGlobal(API_NAME); + global_utils_1.unregisterGlobal(API_NAME, diag_1.DiagAPI.instance()); }; PropagationAPI.prototype._getGlobalPropagator = function () { - return global_utils_1.getGlobal(API_NAME) || NoopTextMapPropagator_1.NOOP_TEXT_MAP_PROPAGATOR; + return global_utils_1.getGlobal(API_NAME) || NOOP_TEXT_MAP_PROPAGATOR; }; return PropagationAPI; }()); @@ -1807,27 +1816,21 @@ module.exports = SemVer /* 68 */, /* 69 */, /* 70 */ -/***/ (function(__unusedmodule, exports) { +/***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=trace_state.js.map + +exports.URL = __webpack_require__(782).interface; +exports.serializeURL = __webpack_require__(936).serializeURL; +exports.serializeURLOrigin = __webpack_require__(936).serializeURLOrigin; +exports.basicURLParse = __webpack_require__(936).basicURLParse; +exports.setTheUsername = __webpack_require__(936).setTheUsername; +exports.setThePassword = __webpack_require__(936).setThePassword; +exports.serializeHost = __webpack_require__(936).serializeHost; +exports.serializeInteger = __webpack_require__(936).serializeInteger; +exports.parseURL = __webpack_require__(936).parseURL; + /***/ }), /* 71 */ @@ -1866,17 +1869,16 @@ if (typeof Symbol === undefined || !Symbol.asyncIterator) { * See the License for the specific language governing permissions and * limitations under the License. */ -var __spreadArrays = (this && this.__spreadArrays) || function () { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; +var __spreadArray = (this && this.__spreadArray) || function (to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ContextAPI = void 0; var NoopContextManager_1 = __webpack_require__(425); var global_utils_1 = __webpack_require__(525); +var diag_1 = __webpack_require__(118); var API_NAME = 'context'; var NOOP_CONTEXT_MANAGER = new NoopContextManager_1.NoopContextManager(); /** @@ -1894,11 +1896,12 @@ var ContextAPI = /** @class */ (function () { return this._instance; }; /** - * Set the current context manager. Returns the initialized context manager + * Set the current context manager. + * + * @returns true if the context manager was successfully registered, else false */ ContextAPI.prototype.setGlobalContextManager = function (contextManager) { - global_utils_1.registerGlobal(API_NAME, contextManager); - return contextManager; + return global_utils_1.registerGlobal(API_NAME, contextManager, diag_1.DiagAPI.instance()); }; /** * Get the currently active context @@ -1920,17 +1923,16 @@ var ContextAPI = /** @class */ (function () { for (var _i = 3; _i < arguments.length; _i++) { args[_i - 3] = arguments[_i]; } - return (_a = this._getContextManager()).with.apply(_a, __spreadArrays([context, fn, thisArg], args)); + return (_a = this._getContextManager()).with.apply(_a, __spreadArray([context, fn, thisArg], args)); }; /** * Bind a context to a target function or event emitter * - * @param target function or event emitter to bind * @param context context to bind to the event emitter or function. Defaults to the currently active context + * @param target function or event emitter to bind */ - ContextAPI.prototype.bind = function (target, context) { - if (context === void 0) { context = this.active(); } - return this._getContextManager().bind(target, context); + ContextAPI.prototype.bind = function (context, target) { + return this._getContextManager().bind(context, target); }; ContextAPI.prototype._getContextManager = function () { return global_utils_1.getGlobal(API_NAME) || NOOP_CONTEXT_MANAGER; @@ -1938,7 +1940,7 @@ var ContextAPI = /** @class */ (function () { /** Disable and remove the global context manager */ ContextAPI.prototype.disable = function () { this._getContextManager().disable(); - global_utils_1.unregisterGlobal(API_NAME); + global_utils_1.unregisterGlobal(API_NAME, diag_1.DiagAPI.instance()); }; return ContextAPI; }()); @@ -3634,7 +3636,64 @@ exports.AbortSignal = AbortSignal; /* 109 */, /* 110 */, /* 111 */, -/* 112 */, +/* 112 */ +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.baggageEntryMetadataFromString = exports.createBaggage = void 0; +var diag_1 = __webpack_require__(118); +var baggage_impl_1 = __webpack_require__(666); +var symbol_1 = __webpack_require__(561); +var diag = diag_1.DiagAPI.instance(); +/** + * Create a new Baggage with optional entries + * + * @param entries An array of baggage entries the new baggage should contain + */ +function createBaggage(entries) { + if (entries === void 0) { entries = {}; } + return new baggage_impl_1.BaggageImpl(new Map(Object.entries(entries))); +} +exports.createBaggage = createBaggage; +/** + * Create a serializable BaggageEntryMetadata object from a string. + * + * @param str string metadata. Format is currently not defined by the spec and has no special meaning. + * + */ +function baggageEntryMetadataFromString(str) { + if (typeof str !== 'string') { + diag.error("Cannot create baggage metadata from unknown type: " + typeof str); + str = ''; + } + return { + __TYPE__: symbol_1.baggageEntryMetadataSymbol, + toString: function () { + return str; + }, + }; +} +exports.baggageEntryMetadataFromString = baggageEntryMetadataFromString; +//# sourceMappingURL=utils.js.map + +/***/ }), /* 113 */, /* 114 */ /***/ (function(__unusedmodule, exports, __webpack_require__) { @@ -3795,7 +3854,7 @@ function uploadChunk(httpClient, resourceUrl, openStream, start, end) { function uploadFile(httpClient, cacheId, archivePath, options) { return __awaiter(this, void 0, void 0, function* () { // Upload Chunks - const fileSize = fs.statSync(archivePath).size; + const fileSize = utils.getArchiveFileSizeInBytes(archivePath); const resourceUrl = getCacheApiUrl(`caches/${cacheId.toString()}`); const fd = fs.openSync(archivePath, 'r'); const uploadOptions = options_1.getUploadOptions(options); @@ -3845,7 +3904,7 @@ function saveCache(cacheId, archivePath, options) { yield uploadFile(httpClient, cacheId, archivePath, options); // Commit Cache core.debug('Commiting cache'); - const cacheSize = utils.getArchiveFileSizeIsBytes(archivePath); + const cacheSize = utils.getArchiveFileSizeInBytes(archivePath); core.info(`Cache Size: ~${Math.round(cacheSize / (1024 * 1024))} MB (${cacheSize} B)`); const commitCacheResponse = yield commitCache(httpClient, cacheId, cacheSize); if (!requestUtils_1.isSuccessStatusCode(commitCacheResponse.statusCode)) { @@ -3883,6 +3942,7 @@ exports.saveCache = saveCache; */ Object.defineProperty(exports, "__esModule", { value: true }); exports.DiagAPI = void 0; +var ComponentLogger_1 = __webpack_require__(362); var logLevelLogger_1 = __webpack_require__(673); var types_1 = __webpack_require__(545); var global_utils_1 = __webpack_require__(525); @@ -3913,7 +3973,7 @@ var DiagAPI = /** @class */ (function () { var self = this; // DiagAPI specific functions self.setLogger = function (logger, logLevel) { - var _a; + var _a, _b; if (logLevel === void 0) { logLevel = types_1.DiagLogLevel.INFO; } if (logger === self) { // There isn't much we can do here. @@ -3921,12 +3981,23 @@ var DiagAPI = /** @class */ (function () { // Try to log to self. If a logger was previously registered it will receive the log. var err = new Error('Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation'); self.error((_a = err.stack) !== null && _a !== void 0 ? _a : err.message); - return; + return false; } - global_utils_1.registerGlobal('diag', logLevelLogger_1.createLogLevelDiagLogger(logLevel, logger), true); + var oldLogger = global_utils_1.getGlobal('diag'); + var newLogger = logLevelLogger_1.createLogLevelDiagLogger(logLevel, logger); + // There already is an logger registered. We'll let it know before overwriting it. + if (oldLogger) { + var stack = (_b = new Error().stack) !== null && _b !== void 0 ? _b : ''; + oldLogger.warn("Current logger will be overwritten from " + stack); + newLogger.warn("Current logger will overwrite one already registered from " + stack); + } + return global_utils_1.registerGlobal('diag', newLogger, self, true); }; self.disable = function () { - global_utils_1.unregisterGlobal(API_NAME); + global_utils_1.unregisterGlobal(API_NAME, self); + }; + self.createComponentLogger = function (options) { + return new ComponentLogger_1.DiagComponentLogger(options); }; self.verbose = _logProxy('verbose'); self.debug = _logProxy('debug'); @@ -4489,7 +4560,7 @@ module.exports = require("child_process"); /* 130 */, /* 131 */, /* 132 */ -/***/ (function(__unusedmodule, exports, __webpack_require__) { +/***/ (function(__unusedmodule, exports) { "use strict"; @@ -4509,109 +4580,15 @@ module.exports = require("child_process"); * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); -exports.ROOT_CONTEXT = exports.createContextKey = exports.setBaggage = exports.getBaggage = exports.isInstrumentationSuppressed = exports.unsuppressInstrumentation = exports.suppressInstrumentation = exports.getSpanContext = exports.setSpanContext = exports.setSpan = exports.getSpan = void 0; -var NoopSpan_1 = __webpack_require__(767); -/** - * span key - */ -var SPAN_KEY = createContextKey('OpenTelemetry Context Key SPAN'); -/** - * Shared key for indicating if instrumentation should be suppressed beyond - * this current scope. - */ -var SUPPRESS_INSTRUMENTATION_KEY = createContextKey('OpenTelemetry Context Key SUPPRESS_INSTRUMENTATION'); -/** - * Baggage key - */ -var BAGGAGE_KEY = createContextKey('OpenTelemetry Baggage Key'); -/** - * Return the span if one exists - * - * @param context context to get span from - */ -function getSpan(context) { - return context.getValue(SPAN_KEY) || undefined; -} -exports.getSpan = getSpan; -/** - * Set the span on a context - * - * @param context context to use as parent - * @param span span to set active - */ -function setSpan(context, span) { - return context.setValue(SPAN_KEY, span); -} -exports.setSpan = setSpan; -/** - * Wrap span context in a NoopSpan and set as span in a new - * context - * - * @param context context to set active span on - * @param spanContext span context to be wrapped - */ -function setSpanContext(context, spanContext) { - return setSpan(context, new NoopSpan_1.NoopSpan(spanContext)); -} -exports.setSpanContext = setSpanContext; -/** - * Get the span context of the span if it exists. - * - * @param context context to get values from - */ -function getSpanContext(context) { - var _a; - return (_a = getSpan(context)) === null || _a === void 0 ? void 0 : _a.context(); -} -exports.getSpanContext = getSpanContext; -/** - * Sets value on context to indicate that instrumentation should - * be suppressed beyond this current scope. - * - * @param context context to set the suppress instrumentation value on. - */ -function suppressInstrumentation(context) { - return context.setValue(SUPPRESS_INSTRUMENTATION_KEY, true); -} -exports.suppressInstrumentation = suppressInstrumentation; -/** - * Sets value on context to indicate that instrumentation should - * no-longer be suppressed beyond this current scope. - * - * @param context context to set the suppress instrumentation value on. - */ -function unsuppressInstrumentation(context) { - return context.setValue(SUPPRESS_INSTRUMENTATION_KEY, false); -} -exports.unsuppressInstrumentation = unsuppressInstrumentation; -/** - * Return current suppress instrumentation value for the given context, - * if it exists. - * - * @param context context check for the suppress instrumentation value. - */ -function isInstrumentationSuppressed(context) { - return Boolean(context.getValue(SUPPRESS_INSTRUMENTATION_KEY)); -} -exports.isInstrumentationSuppressed = isInstrumentationSuppressed; -/** - * @param {Context} Context that manage all context values - * @returns {Baggage} Extracted baggage from the context - */ -function getBaggage(context) { - return context.getValue(BAGGAGE_KEY) || undefined; -} -exports.getBaggage = getBaggage; -/** - * @param {Context} Context that manage all context values - * @param {Baggage} baggage that will be set in the actual context - */ -function setBaggage(context, baggage) { - return context.setValue(BAGGAGE_KEY, baggage); -} -exports.setBaggage = setBaggage; +exports.ROOT_CONTEXT = exports.createContextKey = void 0; /** Get a key to uniquely identify a context value */ function createContextKey(description) { + // The specification states that for the same input, multiple calls should + // return different keys. Due to the nature of the JS dependency management + // system, this creates problems where multiple versions of some package + // could hold different keys for the same property. + // + // Therefore, we use Symbol.for which returns the same key for the same input. return Symbol.for(description); } exports.createContextKey = createContextKey; @@ -4667,7 +4644,7 @@ exports.ROOT_CONTEXT = new BaseContext(); Object.defineProperty(exports, "__esModule", { value: true }); exports.VERSION = void 0; // this is autogenerated file, see scripts/version-update.js -exports.VERSION = '1.0.0-rc.0'; +exports.VERSION = '1.0.3'; //# sourceMappingURL=version.js.map /***/ }), @@ -4980,318 +4957,7 @@ module.exports = parseOptions /***/ }), -/* 144 */ -/***/ (function(module) { - -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ -/* global global, define, System, Reflect, Promise */ -var __extends; -var __assign; -var __rest; -var __decorate; -var __param; -var __metadata; -var __awaiter; -var __generator; -var __exportStar; -var __values; -var __read; -var __spread; -var __spreadArrays; -var __spreadArray; -var __await; -var __asyncGenerator; -var __asyncDelegator; -var __asyncValues; -var __makeTemplateObject; -var __importStar; -var __importDefault; -var __classPrivateFieldGet; -var __classPrivateFieldSet; -var __createBinding; -(function (factory) { - var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; - if (typeof define === "function" && define.amd) { - define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); }); - } - else if ( true && typeof module.exports === "object") { - factory(createExporter(root, createExporter(module.exports))); - } - else { - factory(createExporter(root)); - } - function createExporter(exports, previous) { - if (exports !== root) { - if (typeof Object.create === "function") { - Object.defineProperty(exports, "__esModule", { value: true }); - } - else { - exports.__esModule = true; - } - } - return function (id, v) { return exports[id] = previous ? previous(id, v) : v; }; - } -}) -(function (exporter) { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - - __extends = function (d, b) { - if (typeof b !== "function" && b !== null) - throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - - __rest = function (s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) - t[p[i]] = s[p[i]]; - } - return t; - }; - - __decorate = function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; - }; - - __param = function (paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } - }; - - __metadata = function (metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); - }; - - __awaiter = function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - - __generator = function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } - }; - - __exportStar = function(m, o) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); - }; - - __createBinding = Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); - }) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; - }); - - __values = function (o) { - var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; - if (m) return m.call(o); - if (o && typeof o.length === "number") return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; - throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); - }; - - __read = function (o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; - }; - - /** @deprecated */ - __spread = function () { - for (var ar = [], i = 0; i < arguments.length; i++) - ar = ar.concat(__read(arguments[i])); - return ar; - }; - - /** @deprecated */ - __spreadArrays = function () { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; - }; - - __spreadArray = function (to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || from); - }; - - __await = function (v) { - return this instanceof __await ? (this.v = v, this) : new __await(v); - }; - - __asyncGenerator = function (thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; - function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } - function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } - function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } - function fulfill(value) { resume("next", value); } - function reject(value) { resume("throw", value); } - function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } - }; - - __asyncDelegator = function (o) { - var i, p; - return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; - function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } - }; - - __asyncValues = function (o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } - }; - - __makeTemplateObject = function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; - }; - - var __setModuleDefault = Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - }) : function(o, v) { - o["default"] = v; - }; - - __importStar = function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; - }; - - __importDefault = function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; - }; - - __classPrivateFieldGet = function (receiver, state, kind, f) { - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); - return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); - }; - - __classPrivateFieldSet = function (receiver, state, value, kind, f) { - if (kind === "m") throw new TypeError("Private method is not writable"); - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); - return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; - }; - - exporter("__extends", __extends); - exporter("__assign", __assign); - exporter("__rest", __rest); - exporter("__decorate", __decorate); - exporter("__param", __param); - exporter("__metadata", __metadata); - exporter("__awaiter", __awaiter); - exporter("__generator", __generator); - exporter("__exportStar", __exportStar); - exporter("__createBinding", __createBinding); - exporter("__values", __values); - exporter("__read", __read); - exporter("__spread", __spread); - exporter("__spreadArrays", __spreadArrays); - exporter("__spreadArray", __spreadArray); - exporter("__await", __await); - exporter("__asyncGenerator", __asyncGenerator); - exporter("__asyncDelegator", __asyncDelegator); - exporter("__asyncValues", __asyncValues); - exporter("__makeTemplateObject", __makeTemplateObject); - exporter("__importStar", __importStar); - exporter("__importDefault", __importDefault); - exporter("__classPrivateFieldGet", __classPrivateFieldGet); - exporter("__classPrivateFieldSet", __classPrivateFieldSet); -}); - - -/***/ }), +/* 144 */, /* 145 */ /***/ (function(__unusedmodule, exports) { @@ -5354,7 +5020,202 @@ exports.fromPromise = function (fn) { /***/ }), /* 148 */, -/* 149 */, +/* 149 */ +/***/ (function(module) { + +"use strict"; + + +var conversions = {}; +module.exports = conversions; + +function sign(x) { + return x < 0 ? -1 : 1; +} + +function evenRound(x) { + // Round x to the nearest integer, choosing the even integer if it lies halfway between two. + if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor) + return Math.floor(x); + } else { + return Math.round(x); + } +} + +function createNumberConversion(bitLength, typeOpts) { + if (!typeOpts.unsigned) { + --bitLength; + } + const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength); + const upperBound = Math.pow(2, bitLength) - 1; + + const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength); + const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1); + + return function(V, opts) { + if (!opts) opts = {}; + + let x = +V; + + if (opts.enforceRange) { + if (!Number.isFinite(x)) { + throw new TypeError("Argument is not a finite number"); + } + + x = sign(x) * Math.floor(Math.abs(x)); + if (x < lowerBound || x > upperBound) { + throw new TypeError("Argument is not in byte range"); + } + + return x; + } + + if (!isNaN(x) && opts.clamp) { + x = evenRound(x); + + if (x < lowerBound) x = lowerBound; + if (x > upperBound) x = upperBound; + return x; + } + + if (!Number.isFinite(x) || x === 0) { + return 0; + } + + x = sign(x) * Math.floor(Math.abs(x)); + x = x % moduloVal; + + if (!typeOpts.unsigned && x >= moduloBound) { + return x - moduloVal; + } else if (typeOpts.unsigned) { + if (x < 0) { + x += moduloVal; + } else if (x === -0) { // don't return negative zero + return 0; + } + } + + return x; + } +} + +conversions["void"] = function () { + return undefined; +}; + +conversions["boolean"] = function (val) { + return !!val; +}; + +conversions["byte"] = createNumberConversion(8, { unsigned: false }); +conversions["octet"] = createNumberConversion(8, { unsigned: true }); + +conversions["short"] = createNumberConversion(16, { unsigned: false }); +conversions["unsigned short"] = createNumberConversion(16, { unsigned: true }); + +conversions["long"] = createNumberConversion(32, { unsigned: false }); +conversions["unsigned long"] = createNumberConversion(32, { unsigned: true }); + +conversions["long long"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 }); +conversions["unsigned long long"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 }); + +conversions["double"] = function (V) { + const x = +V; + + if (!Number.isFinite(x)) { + throw new TypeError("Argument is not a finite floating-point value"); + } + + return x; +}; + +conversions["unrestricted double"] = function (V) { + const x = +V; + + if (isNaN(x)) { + throw new TypeError("Argument is NaN"); + } + + return x; +}; + +// not quite valid, but good enough for JS +conversions["float"] = conversions["double"]; +conversions["unrestricted float"] = conversions["unrestricted double"]; + +conversions["DOMString"] = function (V, opts) { + if (!opts) opts = {}; + + if (opts.treatNullAsEmptyString && V === null) { + return ""; + } + + return String(V); +}; + +conversions["ByteString"] = function (V, opts) { + const x = String(V); + let c = undefined; + for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) { + if (c > 255) { + throw new TypeError("Argument is not a valid bytestring"); + } + } + + return x; +}; + +conversions["USVString"] = function (V) { + const S = String(V); + const n = S.length; + const U = []; + for (let i = 0; i < n; ++i) { + const c = S.charCodeAt(i); + if (c < 0xD800 || c > 0xDFFF) { + U.push(String.fromCodePoint(c)); + } else if (0xDC00 <= c && c <= 0xDFFF) { + U.push(String.fromCodePoint(0xFFFD)); + } else { + if (i === n - 1) { + U.push(String.fromCodePoint(0xFFFD)); + } else { + const d = S.charCodeAt(i + 1); + if (0xDC00 <= d && d <= 0xDFFF) { + const a = c & 0x3FF; + const b = d & 0x3FF; + U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b)); + ++i; + } else { + U.push(String.fromCodePoint(0xFFFD)); + } + } + } + } + + return U.join(''); +}; + +conversions["Date"] = function (V, opts) { + if (!(V instanceof Date)) { + throw new TypeError("Argument is not a Date object"); + } + if (isNaN(V)) { + return undefined; + } + + return V; +}; + +conversions["RegExp"] = function (V, opts) { + if (!(V instanceof RegExp)) { + V = new RegExp(V); + } + + return V; +}; + + +/***/ }), /* 150 */, /* 151 */ /***/ (function(__unusedmodule, exports, __webpack_require__) { @@ -5377,10 +5238,12 @@ exports.fromPromise = function (fn) { * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); -exports.NOOP_TRACER = exports.NoopTracer = void 0; -var context_1 = __webpack_require__(132); -var NoopSpan_1 = __webpack_require__(767); +exports.NoopTracer = void 0; +var context_1 = __webpack_require__(77); +var context_utils_1 = __webpack_require__(720); +var NonRecordingSpan_1 = __webpack_require__(437); var spancontext_utils_1 = __webpack_require__(629); +var context = context_1.ContextAPI.getInstance(); /** * No-op implementations of {@link Tracer}. */ @@ -5391,17 +5254,41 @@ var NoopTracer = /** @class */ (function () { NoopTracer.prototype.startSpan = function (name, options, context) { var root = Boolean(options === null || options === void 0 ? void 0 : options.root); if (root) { - return new NoopSpan_1.NoopSpan(); + return new NonRecordingSpan_1.NonRecordingSpan(); } - var parentFromContext = context && context_1.getSpanContext(context); + var parentFromContext = context && context_utils_1.getSpanContext(context); if (isSpanContext(parentFromContext) && spancontext_utils_1.isSpanContextValid(parentFromContext)) { - return new NoopSpan_1.NoopSpan(parentFromContext); + return new NonRecordingSpan_1.NonRecordingSpan(parentFromContext); } else { - return new NoopSpan_1.NoopSpan(); + return new NonRecordingSpan_1.NonRecordingSpan(); } }; + NoopTracer.prototype.startActiveSpan = function (name, arg2, arg3, arg4) { + var opts; + var ctx; + var fn; + if (arguments.length < 2) { + return; + } + else if (arguments.length === 2) { + fn = arg2; + } + else if (arguments.length === 3) { + opts = arg2; + fn = arg3; + } + else { + opts = arg2; + ctx = arg3; + fn = arg4; + } + var parentContext = ctx !== null && ctx !== void 0 ? ctx : context.active(); + var span = this.startSpan(name, opts, parentContext); + var contextWithSpanSet = context_utils_1.setSpan(parentContext, span); + return context.with(contextWithSpanSet, fn, undefined, span); + }; return NoopTracer; }()); exports.NoopTracer = NoopTracer; @@ -5411,7 +5298,6 @@ function isSpanContext(spanContext) { typeof spanContext['traceId'] === 'string' && typeof spanContext['traceFlags'] === 'number'); } -exports.NOOP_TRACER = new NoopTracer(); //# sourceMappingURL=NoopTracer.js.map /***/ }), @@ -5646,7 +5532,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); -exports.NOOP_TRACER_PROVIDER = exports.NoopTracerProvider = void 0; +exports.NoopTracerProvider = void 0; var NoopTracer_1 = __webpack_require__(151); /** * An implementation of the {@link TracerProvider} which returns an impotent @@ -5658,12 +5544,11 @@ var NoopTracerProvider = /** @class */ (function () { function NoopTracerProvider() { } NoopTracerProvider.prototype.getTracer = function (_name, _version) { - return NoopTracer_1.NOOP_TRACER; + return new NoopTracer_1.NoopTracer(); }; return NoopTracerProvider; }()); exports.NoopTracerProvider = NoopTracerProvider; -exports.NOOP_TRACER_PROVIDER = new NoopTracerProvider(); //# sourceMappingURL=NoopTracerProvider.js.map /***/ }), @@ -6108,7 +5993,30 @@ exports.default = _default; /* 204 */, /* 205 */, /* 206 */, -/* 207 */, +/* 207 */ +/***/ (function(__unusedmodule, exports) { + +"use strict"; + +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=trace_state.js.map + +/***/ }), /* 208 */, /* 209 */, /* 210 */ @@ -6151,99 +6059,99 @@ module.exports = require("punycode"); /***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.run = void 0; -const core = __importStar(__webpack_require__(470)); -const gpg = __importStar(__webpack_require__(884)); -const constants = __importStar(__webpack_require__(694)); -const util_1 = __webpack_require__(322); -const cache_1 = __webpack_require__(913); -function removePrivateKeyFromKeychain() { - return __awaiter(this, void 0, void 0, function* () { - if (core.getInput(constants.INPUT_GPG_PRIVATE_KEY, { required: false })) { - core.info('Removing private key from keychain'); - try { - const keyFingerprint = core.getState(constants.STATE_GPG_PRIVATE_KEY_FINGERPRINT); - yield gpg.deleteKey(keyFingerprint); - } - catch (error) { - core.setFailed(`Failed to remove private key due to: ${error.message}`); - } - } - }); -} -/** - * Check given input and run a save process for the specified package manager - * @returns Promise that will be resolved when the save process finishes - */ -function saveCache() { - return __awaiter(this, void 0, void 0, function* () { - const jobStatus = util_1.isJobStatusSuccess(); - const cache = core.getInput(constants.INPUT_CACHE); - return jobStatus && cache ? cache_1.save(cache) : Promise.resolve(); - }); -} -/** - * The save process is best-effort, and it should not make the workflow fail - * even though this process throws an error. - * @param promise the promise to ignore error from - * @returns Promise that will ignore error reported by the given promise - */ -function ignoreError(promise) { - return __awaiter(this, void 0, void 0, function* () { - return new Promise(resolve => { - promise - .catch(error => { - core.warning(error); - resolve(void 0); - }) - .then(resolve); - }); - }); -} -function run() { - return __awaiter(this, void 0, void 0, function* () { - yield removePrivateKeyFromKeychain(); - yield ignoreError(saveCache()); - }); -} -exports.run = run; -if (require.main === require.cache[eval('__filename')]) { - run(); -} -else { - // https://nodejs.org/api/modules.html#modules_accessing_the_main_module - core.info('the script is loaded as a module, so skipping the execution'); -} + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.run = void 0; +const core = __importStar(__webpack_require__(470)); +const gpg = __importStar(__webpack_require__(884)); +const constants = __importStar(__webpack_require__(694)); +const util_1 = __webpack_require__(322); +const cache_1 = __webpack_require__(913); +function removePrivateKeyFromKeychain() { + return __awaiter(this, void 0, void 0, function* () { + if (core.getInput(constants.INPUT_GPG_PRIVATE_KEY, { required: false })) { + core.info('Removing private key from keychain'); + try { + const keyFingerprint = core.getState(constants.STATE_GPG_PRIVATE_KEY_FINGERPRINT); + yield gpg.deleteKey(keyFingerprint); + } + catch (error) { + core.setFailed(`Failed to remove private key due to: ${error.message}`); + } + } + }); +} +/** + * Check given input and run a save process for the specified package manager + * @returns Promise that will be resolved when the save process finishes + */ +function saveCache() { + return __awaiter(this, void 0, void 0, function* () { + const jobStatus = util_1.isJobStatusSuccess(); + const cache = core.getInput(constants.INPUT_CACHE); + return jobStatus && cache ? cache_1.save(cache) : Promise.resolve(); + }); +} +/** + * The save process is best-effort, and it should not make the workflow fail + * even though this process throws an error. + * @param promise the promise to ignore error from + * @returns Promise that will ignore error reported by the given promise + */ +function ignoreError(promise) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise(resolve => { + promise + .catch(error => { + core.warning(error); + resolve(void 0); + }) + .then(resolve); + }); + }); +} +function run() { + return __awaiter(this, void 0, void 0, function* () { + yield removePrivateKeyFromKeychain(); + yield ignoreError(saveCache()); + }); +} +exports.run = run; +if (require.main === require.cache[eval('__filename')]) { + run(); +} +else { + // https://nodejs.org/api/modules.html#modules_accessing_the_main_module + core.info('the script is loaded as a module, so skipping the execution'); +} /***/ }), @@ -6938,7 +6846,7 @@ function downloadCacheHttpClient(archiveLocation, archivePath) { const contentLengthHeader = downloadResponse.message.headers['content-length']; if (contentLengthHeader) { const expectedLength = parseInt(contentLengthHeader); - const actualLength = utils.getArchiveFileSizeIsBytes(archivePath); + const actualLength = utils.getArchiveFileSizeInBytes(archivePath); if (actualLength !== expectedLength) { throw new Error(`Incomplete download. Expected file size: ${expectedLength}, actual file size: ${actualLength}`); } @@ -7012,7 +6920,213 @@ exports.downloadCacheStorageSDK = downloadCacheStorageSDK; /* 253 */, /* 254 */, /* 255 */, -/* 256 */, +/* 256 */ +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +const usm = __webpack_require__(936); + +exports.implementation = class URLImpl { + constructor(constructorArgs) { + const url = constructorArgs[0]; + const base = constructorArgs[1]; + + let parsedBase = null; + if (base !== undefined) { + parsedBase = usm.basicURLParse(base); + if (parsedBase === "failure") { + throw new TypeError("Invalid base URL"); + } + } + + const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase }); + if (parsedURL === "failure") { + throw new TypeError("Invalid URL"); + } + + this._url = parsedURL; + + // TODO: query stuff + } + + get href() { + return usm.serializeURL(this._url); + } + + set href(v) { + const parsedURL = usm.basicURLParse(v); + if (parsedURL === "failure") { + throw new TypeError("Invalid URL"); + } + + this._url = parsedURL; + } + + get origin() { + return usm.serializeURLOrigin(this._url); + } + + get protocol() { + return this._url.scheme + ":"; + } + + set protocol(v) { + usm.basicURLParse(v + ":", { url: this._url, stateOverride: "scheme start" }); + } + + get username() { + return this._url.username; + } + + set username(v) { + if (usm.cannotHaveAUsernamePasswordPort(this._url)) { + return; + } + + usm.setTheUsername(this._url, v); + } + + get password() { + return this._url.password; + } + + set password(v) { + if (usm.cannotHaveAUsernamePasswordPort(this._url)) { + return; + } + + usm.setThePassword(this._url, v); + } + + get host() { + const url = this._url; + + if (url.host === null) { + return ""; + } + + if (url.port === null) { + return usm.serializeHost(url.host); + } + + return usm.serializeHost(url.host) + ":" + usm.serializeInteger(url.port); + } + + set host(v) { + if (this._url.cannotBeABaseURL) { + return; + } + + usm.basicURLParse(v, { url: this._url, stateOverride: "host" }); + } + + get hostname() { + if (this._url.host === null) { + return ""; + } + + return usm.serializeHost(this._url.host); + } + + set hostname(v) { + if (this._url.cannotBeABaseURL) { + return; + } + + usm.basicURLParse(v, { url: this._url, stateOverride: "hostname" }); + } + + get port() { + if (this._url.port === null) { + return ""; + } + + return usm.serializeInteger(this._url.port); + } + + set port(v) { + if (usm.cannotHaveAUsernamePasswordPort(this._url)) { + return; + } + + if (v === "") { + this._url.port = null; + } else { + usm.basicURLParse(v, { url: this._url, stateOverride: "port" }); + } + } + + get pathname() { + if (this._url.cannotBeABaseURL) { + return this._url.path[0]; + } + + if (this._url.path.length === 0) { + return ""; + } + + return "/" + this._url.path.join("/"); + } + + set pathname(v) { + if (this._url.cannotBeABaseURL) { + return; + } + + this._url.path = []; + usm.basicURLParse(v, { url: this._url, stateOverride: "path start" }); + } + + get search() { + if (this._url.query === null || this._url.query === "") { + return ""; + } + + return "?" + this._url.query; + } + + set search(v) { + // TODO: query stuff + + const url = this._url; + + if (v === "") { + url.query = null; + return; + } + + const input = v[0] === "?" ? v.substring(1) : v; + url.query = ""; + usm.basicURLParse(input, { url, stateOverride: "query" }); + } + + get hash() { + if (this._url.fragment === null || this._url.fragment === "") { + return ""; + } + + return "#" + this._url.fragment; + } + + set hash(v) { + if (v === "") { + this._url.fragment = null; + return; + } + + const input = v[0] === "#" ? v.substring(1) : v; + this._url.fragment = ""; + usm.basicURLParse(input, { url: this._url, stateOverride: "fragment" }); + } + + toJSON() { + return this.href; + } +}; + + +/***/ }), /* 257 */ /***/ (function(module, __unusedexports, __webpack_require__) { @@ -7820,318 +7934,7 @@ module.exports = intersects /***/ }), /* 260 */, /* 261 */, -/* 262 */ -/***/ (function(module) { - -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ -/* global global, define, System, Reflect, Promise */ -var __extends; -var __assign; -var __rest; -var __decorate; -var __param; -var __metadata; -var __awaiter; -var __generator; -var __exportStar; -var __values; -var __read; -var __spread; -var __spreadArrays; -var __spreadArray; -var __await; -var __asyncGenerator; -var __asyncDelegator; -var __asyncValues; -var __makeTemplateObject; -var __importStar; -var __importDefault; -var __classPrivateFieldGet; -var __classPrivateFieldSet; -var __createBinding; -(function (factory) { - var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; - if (typeof define === "function" && define.amd) { - define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); }); - } - else if ( true && typeof module.exports === "object") { - factory(createExporter(root, createExporter(module.exports))); - } - else { - factory(createExporter(root)); - } - function createExporter(exports, previous) { - if (exports !== root) { - if (typeof Object.create === "function") { - Object.defineProperty(exports, "__esModule", { value: true }); - } - else { - exports.__esModule = true; - } - } - return function (id, v) { return exports[id] = previous ? previous(id, v) : v; }; - } -}) -(function (exporter) { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - - __extends = function (d, b) { - if (typeof b !== "function" && b !== null) - throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - - __rest = function (s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) - t[p[i]] = s[p[i]]; - } - return t; - }; - - __decorate = function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; - }; - - __param = function (paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } - }; - - __metadata = function (metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); - }; - - __awaiter = function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - - __generator = function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } - }; - - __exportStar = function(m, o) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); - }; - - __createBinding = Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); - }) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; - }); - - __values = function (o) { - var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; - if (m) return m.call(o); - if (o && typeof o.length === "number") return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; - throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); - }; - - __read = function (o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; - }; - - /** @deprecated */ - __spread = function () { - for (var ar = [], i = 0; i < arguments.length; i++) - ar = ar.concat(__read(arguments[i])); - return ar; - }; - - /** @deprecated */ - __spreadArrays = function () { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; - }; - - __spreadArray = function (to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || from); - }; - - __await = function (v) { - return this instanceof __await ? (this.v = v, this) : new __await(v); - }; - - __asyncGenerator = function (thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; - function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } - function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } - function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } - function fulfill(value) { resume("next", value); } - function reject(value) { resume("throw", value); } - function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } - }; - - __asyncDelegator = function (o) { - var i, p; - return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; - function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } - }; - - __asyncValues = function (o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } - }; - - __makeTemplateObject = function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; - }; - - var __setModuleDefault = Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - }) : function(o, v) { - o["default"] = v; - }; - - __importStar = function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; - }; - - __importDefault = function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; - }; - - __classPrivateFieldGet = function (receiver, state, kind, f) { - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); - return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); - }; - - __classPrivateFieldSet = function (receiver, state, value, kind, f) { - if (kind === "m") throw new TypeError("Private method is not writable"); - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); - return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; - }; - - exporter("__extends", __extends); - exporter("__assign", __assign); - exporter("__rest", __rest); - exporter("__decorate", __decorate); - exporter("__param", __param); - exporter("__metadata", __metadata); - exporter("__awaiter", __awaiter); - exporter("__generator", __generator); - exporter("__exportStar", __exportStar); - exporter("__createBinding", __createBinding); - exporter("__values", __values); - exporter("__read", __read); - exporter("__spread", __spread); - exporter("__spreadArrays", __spreadArrays); - exporter("__spreadArray", __spreadArray); - exporter("__await", __await); - exporter("__asyncGenerator", __asyncGenerator); - exporter("__asyncDelegator", __asyncDelegator); - exporter("__asyncValues", __asyncValues); - exporter("__makeTemplateObject", __makeTemplateObject); - exporter("__importStar", __importStar); - exporter("__importDefault", __importDefault); - exporter("__classPrivateFieldGet", __classPrivateFieldGet); - exporter("__classPrivateFieldSet", __classPrivateFieldSet); -}); - - -/***/ }), +/* 262 */, /* 263 */ /***/ (function(__unusedmodule, exports, __webpack_require__) { @@ -8141,205 +7944,6 @@ var __createBinding; Object.defineProperty(exports, '__esModule', { value: true }); var api = __webpack_require__(440); -var tslib = __webpack_require__(144); - -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT license. -/** - * A no-op implementation of Span that can safely be used without side-effects. - */ -var NoOpSpan = /** @class */ (function () { - function NoOpSpan() { - } - /** - * Returns the SpanContext associated with this Span. - */ - NoOpSpan.prototype.context = function () { - return { - spanId: "", - traceId: "", - traceFlags: 0 /* NONE */ - }; - }; - /** - * Marks the end of Span execution. - * @param _endTime - The time to use as the Span's end time. Defaults to - * the current time. - */ - NoOpSpan.prototype.end = function (_endTime) { - /* Noop */ - }; - /** - * Sets an attribute on the Span - * @param _key - The attribute key - * @param _value - The attribute value - */ - NoOpSpan.prototype.setAttribute = function (_key, _value) { - return this; - }; - /** - * Sets attributes on the Span - * @param _attributes - The attributes to add - */ - NoOpSpan.prototype.setAttributes = function (_attributes) { - return this; - }; - /** - * Adds an event to the Span - * @param _name - The name of the event - * @param _attributes - The associated attributes to add for this event - */ - NoOpSpan.prototype.addEvent = function (_name, _attributes) { - return this; - }; - /** - * Sets a status on the span. Overrides the default of SpanStatusCode.OK. - * @param _status - The status to set. - */ - NoOpSpan.prototype.setStatus = function (_status) { - return this; - }; - /** - * Updates the name of the Span - * @param _name - the new Span name - */ - NoOpSpan.prototype.updateName = function (_name) { - return this; - }; - /** - * Returns whether this span will be recorded - */ - NoOpSpan.prototype.isRecording = function () { - return false; - }; - /** - * Sets exception as a span event - * @param exception - the exception the only accepted values are string or Error - * @param time - the time to set as Span's event time. If not provided, - * use the current time. - */ - NoOpSpan.prototype.recordException = function (_exception, _time) { - /* do nothing */ - }; - return NoOpSpan; -}()); - -// Copyright (c) Microsoft Corporation. -/** - * A no-op implementation of Tracer that can be used when tracing - * is disabled. - */ -var NoOpTracer = /** @class */ (function () { - function NoOpTracer() { - } - /** - * Starts a new Span. - * @param _name - The name of the span. - * @param _options - The SpanOptions used during Span creation. - */ - NoOpTracer.prototype.startSpan = function (_name, _options) { - return new NoOpSpan(); - }; - /** - * Returns the current Span from the current context, if available. - */ - NoOpTracer.prototype.getCurrentSpan = function () { - return new NoOpSpan(); - }; - /** - * Executes the given function within the context provided by a Span. - * @param _span - The span that provides the context. - * @param fn - The function to be executed. - */ - NoOpTracer.prototype.withSpan = function (_span, fn) { - return fn(); - }; - /** - * Bind a Span as the target's scope - * @param target - An object to bind the scope. - * @param _span - A specific Span to use. Otherwise, use the current one. - */ - NoOpTracer.prototype.bind = function (target, _span) { - return target; - }; - return NoOpTracer; -}()); - -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT license. -function getGlobalObject() { - return global; -} - -// Copyright (c) Microsoft Corporation. -// V1 = OpenTelemetry 0.1 -// V2 = OpenTelemetry 0.2 -// V3 = OpenTelemetry 0.6.1 -// V4 = OpenTelemetry 1.0.0-rc.0 -var GLOBAL_TRACER_VERSION = 4; -// preview5 shipped with @azure/core-tracing.tracerCache -// and didn't have smart detection for collisions -var GLOBAL_TRACER_SYMBOL = Symbol.for("@azure/core-tracing.tracerCache3"); -var cache; -function loadTracerCache() { - var globalObj = getGlobalObject(); - var existingCache = globalObj[GLOBAL_TRACER_SYMBOL]; - var setGlobalCache = true; - if (existingCache) { - if (existingCache.version === GLOBAL_TRACER_VERSION) { - cache = existingCache; - } - else { - setGlobalCache = false; - if (existingCache.tracer) { - throw new Error("Two incompatible versions of @azure/core-tracing have been loaded.\n This library is " + GLOBAL_TRACER_VERSION + ", existing is " + existingCache.version + "."); - } - } - } - if (!cache) { - cache = { - tracer: undefined, - version: GLOBAL_TRACER_VERSION - }; - } - if (setGlobalCache) { - globalObj[GLOBAL_TRACER_SYMBOL] = cache; - } -} -function getCache() { - if (!cache) { - loadTracerCache(); - } - return cache; -} - -// Copyright (c) Microsoft Corporation. -var defaultTracer; -function getDefaultTracer() { - if (!defaultTracer) { - defaultTracer = new NoOpTracer(); - } - return defaultTracer; -} -/** - * Sets the global tracer, enabling tracing for the Azure SDK. - * @param tracer - An OpenTelemetry Tracer instance. - */ -function setTracer(tracer) { - var cache = getCache(); - cache.tracer = tracer; -} -/** - * Retrieves the active tracer, or returns a - * no-op implementation if one is not set. - */ -function getTracer() { - var cache = getCache(); - if (!cache.tracer) { - return getDefaultTracer(); - } - return cache.tracer; -} // Copyright (c) Microsoft Corporation. (function (SpanKind) { @@ -8374,7 +7978,7 @@ function getTracer() { * @param context - context to get span from */ function getSpan(context) { - return api.getSpan(context); + return api.trace.getSpan(context); } /** * Set the span on a context @@ -8383,7 +7987,7 @@ function getSpan(context) { * @param span - span to set active */ function setSpan(context, span) { - return api.setSpan(context, span); + return api.trace.setSpan(context, span); } /** * Wrap span context in a NoopSpan and set as span in a new @@ -8393,7 +7997,7 @@ function setSpan(context, span) { * @param spanContext - span context to be wrapped */ function setSpanContext(context, spanContext) { - return api.setSpanContext(context, spanContext); + return api.trace.setSpanContext(context, spanContext); } /** * Get the span context of the span if it exists. @@ -8401,10 +8005,24 @@ function setSpanContext(context, spanContext) { * @param context - context to get values from */ function getSpanContext(context) { - return api.getSpanContext(context); + return api.trace.getSpanContext(context); +} +/** + * Returns true of the given {@link SpanContext} is valid. + * A valid {@link SpanContext} is one which has a valid trace ID and span ID as per the spec. + * + * @param context - the {@link SpanContext} to validate. + * + * @returns true if the {@link SpanContext} is valid, false otherwise. + */ +function isSpanContextValid(context) { + return api.trace.isSpanContextValid(context); +} +function getTracer(name, version) { + return api.trace.getTracer(name || "azure/core-tracing", version); } /** Entrypoint for context API */ -var context = api.context; +const context = api.context; (function (SpanStatusCode) { /** * The default status. @@ -8422,422 +8040,18 @@ var context = api.context; })(exports.SpanStatusCode || (exports.SpanStatusCode = {})); // Copyright (c) Microsoft Corporation. -// Licensed under the MIT license. -/** - * @internal - */ -var OpenCensusTraceStateWrapper = /** @class */ (function () { - function OpenCensusTraceStateWrapper(state) { - this._state = state; +function isTracingDisabled() { + var _a; + if (typeof process === "undefined") { + // not supported in browser for now without polyfills + return false; } - OpenCensusTraceStateWrapper.prototype.get = function (_key) { - throw new Error("Method not implemented."); - }; - OpenCensusTraceStateWrapper.prototype.set = function (_key, _value) { - throw new Error("Method not implemented."); - }; - OpenCensusTraceStateWrapper.prototype.unset = function (_key) { - throw new Error("Method not implemented"); - }; - OpenCensusTraceStateWrapper.prototype.serialize = function () { - return this._state || ""; - }; - return OpenCensusTraceStateWrapper; -}()); - -// Copyright (c) Microsoft Corporation. -/** An enumeration of canonical status codes. */ -var CanonicalCode; -(function (CanonicalCode) { - /** - * Not an error; returned on success - */ - CanonicalCode[CanonicalCode["OK"] = 0] = "OK"; - /** - * Internal errors. Means some invariants expected by underlying - * system has been broken. If you see one of these errors, - * something is very broken. - */ - CanonicalCode[CanonicalCode["INTERNAL"] = 13] = "INTERNAL"; -})(CanonicalCode || (CanonicalCode = {})); -function isWrappedSpan(span) { - return !!span && span.getWrappedSpan !== undefined; + const azureTracingDisabledValue = (_a = process.env.AZURE_TRACING_DISABLED) === null || _a === void 0 ? void 0 : _a.toLowerCase(); + if (azureTracingDisabledValue === "false" || azureTracingDisabledValue === "0") { + return false; + } + return Boolean(azureTracingDisabledValue); } -function isTracer(tracerOrSpan) { - return tracerOrSpan.getWrappedTracer !== undefined; -} -/** - * An implementation of OpenTelemetry Span that wraps an OpenCensus Span. - */ -var OpenCensusSpanWrapper = /** @class */ (function () { - function OpenCensusSpanWrapper(tracerOrSpan, name, options, context$1) { - if (name === void 0) { name = ""; } - if (options === void 0) { options = {}; } - if (isTracer(tracerOrSpan)) { - var span = getSpan(context$1 !== null && context$1 !== void 0 ? context$1 : context.active()); - var parent = isWrappedSpan(span) ? span.getWrappedSpan() : undefined; - this._span = tracerOrSpan.getWrappedTracer().startChildSpan({ - name: name, - childOf: parent - }); - this._span.start(); - if (options.links) { - for (var _i = 0, _a = options.links; _i < _a.length; _i++) { - var link = _a[_i]; - // Since there is no way to set the link relationship, leave it as Unspecified. - this._span.addLink(link.context.traceId, link.context.spanId, 0 /* LinkType.UNSPECIFIED */, link.attributes); - } - } - } - else { - this._span = tracerOrSpan; - } - } - /** - * The underlying OpenCensus Span - */ - OpenCensusSpanWrapper.prototype.getWrappedSpan = function () { - return this._span; - }; - /** - * Marks the end of Span execution. - * @param endTime - The time to use as the Span's end time. Defaults to - * the current time. - */ - OpenCensusSpanWrapper.prototype.end = function (_endTime) { - this._span.end(); - }; - /** - * Returns the SpanContext associated with this Span. - */ - OpenCensusSpanWrapper.prototype.context = function () { - var openCensusSpanContext = this._span.spanContext; - return { - spanId: openCensusSpanContext.spanId, - traceId: openCensusSpanContext.traceId, - traceFlags: openCensusSpanContext.options, - traceState: new OpenCensusTraceStateWrapper(openCensusSpanContext.traceState) - }; - }; - /** - * Sets an attribute on the Span - * @param key - The attribute key - * @param value - The attribute value - */ - OpenCensusSpanWrapper.prototype.setAttribute = function (key, value) { - this._span.addAttribute(key, value); - return this; - }; - /** - * Sets attributes on the Span - * @param attributes - The attributes to add - */ - OpenCensusSpanWrapper.prototype.setAttributes = function (attributes) { - this._span.attributes = attributes; - return this; - }; - /** - * Adds an event to the Span - * @param name - The name of the event - * @param attributes - The associated attributes to add for this event - */ - OpenCensusSpanWrapper.prototype.addEvent = function (_name, _attributes) { - throw new Error("Method not implemented."); - }; - /** - * Sets a status on the span. Overrides the default of SpanStatusCode.OK. - * @param status - The status to set. - */ - OpenCensusSpanWrapper.prototype.setStatus = function (status) { - switch (status.code) { - case exports.SpanStatusCode.ERROR: { - this._span.setStatus(CanonicalCode.INTERNAL, status.message); - break; - } - case exports.SpanStatusCode.OK: { - this._span.setStatus(CanonicalCode.OK, status.message); - break; - } - case exports.SpanStatusCode.UNSET: { - break; - } - } - return this; - }; - /** - * Updates the name of the Span - * @param name - The new Span name - */ - OpenCensusSpanWrapper.prototype.updateName = function (name) { - this._span.name = name; - return this; - }; - /** - * Returns whether this span will be recorded - */ - OpenCensusSpanWrapper.prototype.isRecording = function () { - // NoRecordSpans have an empty traceId - return !!this._span.traceId; - }; - /** - * Sets exception as a span event - * @param exception - the exception the only accepted values are string or Error - * @param time - the time to set as Span's event time. If not provided, - * use the current time. - */ - OpenCensusSpanWrapper.prototype.recordException = function (_exception, _time) { - throw new Error("Method not implemented"); - }; - return OpenCensusSpanWrapper; -}()); - -// Copyright (c) Microsoft Corporation. -/** - * An implementation of OpenTelemetry Tracer that wraps an OpenCensus Tracer. - */ -var OpenCensusTracerWrapper = /** @class */ (function () { - /** - * Create a new wrapper around a given OpenCensus Tracer. - * @param tracer - The OpenCensus Tracer to wrap. - */ - function OpenCensusTracerWrapper(tracer) { - this._tracer = tracer; - } - /** - * The wrapped OpenCensus Tracer - */ - OpenCensusTracerWrapper.prototype.getWrappedTracer = function () { - return this._tracer; - }; - /** - * Starts a new Span. - * @param name - The name of the span. - * @param options - The SpanOptions used during Span creation. - */ - OpenCensusTracerWrapper.prototype.startSpan = function (name, options) { - return new OpenCensusSpanWrapper(this, name, options); - }; - /** - * Returns the current Span from the current context, if available. - */ - OpenCensusTracerWrapper.prototype.getCurrentSpan = function () { - return undefined; - }; - /** - * Executes the given function within the context provided by a Span. - * @param _span - The span that provides the context. - * @param _fn - The function to be executed. - */ - OpenCensusTracerWrapper.prototype.withSpan = function (_span, _fn) { - throw new Error("Method not implemented."); - }; - /** - * Bind a Span as the target's scope - * @param target - An object to bind the scope. - * @param _span - A specific Span to use. Otherwise, use the current one. - */ - OpenCensusTracerWrapper.prototype.bind = function (_target, _span) { - throw new Error("Method not implemented."); - }; - return OpenCensusTracerWrapper; -}()); - -// Copyright (c) Microsoft Corporation. -/** - * A mock span useful for testing. - */ -var TestSpan = /** @class */ (function (_super) { - tslib.__extends(TestSpan, _super); - /** - * Starts a new Span. - * @param parentTracer- The tracer that created this Span - * @param name - The name of the span. - * @param context - The SpanContext this span belongs to - * @param kind - The SpanKind of this Span - * @param parentSpanId - The identifier of the parent Span - * @param startTime - The startTime of the event (defaults to now) - */ - function TestSpan(parentTracer, name, context, kind, parentSpanId, startTime) { - if (startTime === void 0) { startTime = Date.now(); } - var _this = _super.call(this) || this; - _this._tracer = parentTracer; - _this.name = name; - _this.kind = kind; - _this.startTime = startTime; - _this.parentSpanId = parentSpanId; - _this.status = { - code: exports.SpanStatusCode.OK - }; - _this.endCalled = false; - _this._context = context; - _this.attributes = {}; - return _this; - } - /** - * Returns the Tracer that created this Span - */ - TestSpan.prototype.tracer = function () { - return this._tracer; - }; - /** - * Returns the SpanContext associated with this Span. - */ - TestSpan.prototype.context = function () { - return this._context; - }; - /** - * Marks the end of Span execution. - * @param _endTime - The time to use as the Span's end time. Defaults to - * the current time. - */ - TestSpan.prototype.end = function (_endTime) { - this.endCalled = true; - }; - /** - * Sets a status on the span. Overrides the default of SpanStatusCode.OK. - * @param status - The status to set. - */ - TestSpan.prototype.setStatus = function (status) { - this.status = status; - return this; - }; - /** - * Returns whether this span will be recorded - */ - TestSpan.prototype.isRecording = function () { - return true; - }; - /** - * Sets an attribute on the Span - * @param key - The attribute key - * @param value - The attribute value - */ - TestSpan.prototype.setAttribute = function (key, value) { - this.attributes[key] = value; - return this; - }; - /** - * Sets attributes on the Span - * @param attributes - The attributes to add - */ - TestSpan.prototype.setAttributes = function (attributes) { - for (var _i = 0, _a = Object.keys(attributes); _i < _a.length; _i++) { - var key = _a[_i]; - this.attributes[key] = attributes[key]; - } - return this; - }; - return TestSpan; -}(NoOpSpan)); - -// Copyright (c) Microsoft Corporation. -/** - * A mock tracer useful for testing - */ -var TestTracer = /** @class */ (function (_super) { - tslib.__extends(TestTracer, _super); - function TestTracer() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.traceIdCounter = 0; - _this.spanIdCounter = 0; - _this.rootSpans = []; - _this.knownSpans = []; - return _this; - } - TestTracer.prototype.getNextTraceId = function () { - this.traceIdCounter++; - return String(this.traceIdCounter); - }; - TestTracer.prototype.getNextSpanId = function () { - this.spanIdCounter++; - return String(this.spanIdCounter); - }; - /** - * Returns all Spans that were created without a parent - */ - TestTracer.prototype.getRootSpans = function () { - return this.rootSpans; - }; - /** - * Returns all Spans this Tracer knows about - */ - TestTracer.prototype.getKnownSpans = function () { - return this.knownSpans; - }; - /** - * Returns all Spans where end() has not been called - */ - TestTracer.prototype.getActiveSpans = function () { - return this.knownSpans.filter(function (span) { - return !span.endCalled; - }); - }; - /** - * Return all Spans for a particular trace, grouped by their - * parent Span in a tree-like structure - * @param traceId - The traceId to return the graph for - */ - TestTracer.prototype.getSpanGraph = function (traceId) { - var traceSpans = this.knownSpans.filter(function (span) { - return span.context().traceId === traceId; - }); - var roots = []; - var nodeMap = new Map(); - for (var _i = 0, traceSpans_1 = traceSpans; _i < traceSpans_1.length; _i++) { - var span = traceSpans_1[_i]; - var spanId = span.context().spanId; - var node = { - name: span.name, - children: [] - }; - nodeMap.set(spanId, node); - if (span.parentSpanId) { - var parent = nodeMap.get(span.parentSpanId); - if (!parent) { - throw new Error("Span with name " + node.name + " has an unknown parentSpan with id " + span.parentSpanId); - } - parent.children.push(node); - } - else { - roots.push(node); - } - } - return { - roots: roots - }; - }; - /** - * Starts a new Span. - * @param name - The name of the span. - * @param options - The SpanOptions used during Span creation. - */ - TestTracer.prototype.startSpan = function (name, options, context$1) { - var parentContext = getSpanContext(context$1 || context.active()); - var traceId; - var isRootSpan = false; - if (parentContext && parentContext.traceId) { - traceId = parentContext.traceId; - } - else { - traceId = this.getNextTraceId(); - isRootSpan = true; - } - var spanContext = { - traceId: traceId, - spanId: this.getNextSpanId(), - traceFlags: 0 /* NONE */ - }; - var span = new TestSpan(this, name, spanContext, (options === null || options === void 0 ? void 0 : options.kind) || exports.SpanKind.INTERNAL, parentContext ? parentContext.spanId : undefined, options === null || options === void 0 ? void 0 : options.startTime); - this.knownSpans.push(span); - if (isRootSpan) { - this.rootSpans.push(span); - } - return span; - }; - return TestTracer; -}(NoOpTracer)); - -// Copyright (c) Microsoft Corporation. /** * Creates a function that can be used to create spans using the global tracer. * @@ -8858,22 +8072,28 @@ var TestTracer = /** @class */ (function (_super) { */ function createSpanFunction(args) { return function (operationName, operationOptions) { - var tracer = getTracer(); - var tracingOptions = (operationOptions === null || operationOptions === void 0 ? void 0 : operationOptions.tracingOptions) || {}; - var spanOptions = tslib.__assign({ kind: exports.SpanKind.INTERNAL }, tracingOptions.spanOptions); - var spanName = args.packagePrefix ? args.packagePrefix + "." + operationName : operationName; - var span = tracer.startSpan(spanName, spanOptions, tracingOptions.tracingContext); + const tracer = getTracer(); + const tracingOptions = (operationOptions === null || operationOptions === void 0 ? void 0 : operationOptions.tracingOptions) || {}; + const spanOptions = Object.assign({ kind: exports.SpanKind.INTERNAL }, tracingOptions.spanOptions); + const spanName = args.packagePrefix ? `${args.packagePrefix}.${operationName}` : operationName; + let span; + if (isTracingDisabled()) { + span = api.trace.wrapSpanContext(api.INVALID_SPAN_CONTEXT); + } + else { + span = tracer.startSpan(spanName, spanOptions, tracingOptions.tracingContext); + } if (args.namespace) { span.setAttribute("az.namespace", args.namespace); } - var newSpanOptions = tracingOptions.spanOptions || {}; + let newSpanOptions = tracingOptions.spanOptions || {}; if (span.isRecording() && args.namespace) { - newSpanOptions = tslib.__assign(tslib.__assign({}, tracingOptions.spanOptions), { attributes: tslib.__assign(tslib.__assign({}, spanOptions.attributes), { "az.namespace": args.namespace }) }); + newSpanOptions = Object.assign(Object.assign({}, tracingOptions.spanOptions), { attributes: Object.assign(Object.assign({}, spanOptions.attributes), { "az.namespace": args.namespace }) }); } - var newTracingOptions = tslib.__assign(tslib.__assign({}, tracingOptions), { spanOptions: newSpanOptions, tracingContext: setSpan(tracingOptions.tracingContext || context.active(), span) }); - var newOperationOptions = tslib.__assign(tslib.__assign({}, operationOptions), { tracingOptions: newTracingOptions }); + const newTracingOptions = Object.assign(Object.assign({}, tracingOptions), { spanOptions: newSpanOptions, tracingContext: setSpan(tracingOptions.tracingContext || context.active(), span) }); + const newOperationOptions = Object.assign(Object.assign({}, operationOptions), { tracingOptions: newTracingOptions }); return { - span: span, + span, updatedOptions: newOperationOptions }; }; @@ -8881,26 +8101,26 @@ function createSpanFunction(args) { // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -var VERSION = "00"; +const VERSION = "00"; /** * Generates a `SpanContext` given a `traceparent` header value. * @param traceParent - Serialized span context data as a `traceparent` header value. * @returns The `SpanContext` generated from the `traceparent` value. */ function extractSpanContextFromTraceParentHeader(traceParentHeader) { - var parts = traceParentHeader.split("-"); + const parts = traceParentHeader.split("-"); if (parts.length !== 4) { return; } - var version = parts[0], traceId = parts[1], spanId = parts[2], traceOptions = parts[3]; + const [version, traceId, spanId, traceOptions] = parts; if (version !== VERSION) { return; } - var traceFlags = parseInt(traceOptions, 16); - var spanContext = { - spanId: spanId, - traceId: traceId, - traceFlags: traceFlags + const traceFlags = parseInt(traceOptions, 16); + const spanContext = { + spanId, + traceId, + traceFlags }; return spanContext; } @@ -8910,7 +8130,7 @@ function extractSpanContextFromTraceParentHeader(traceParentHeader) { * @returns The `spanContext` represented as a `traceparent` value. */ function getTraceParentHeader(spanContext) { - var missingFields = []; + const missingFields = []; if (!spanContext.traceId) { missingFields.push("traceId"); } @@ -8920,19 +8140,13 @@ function getTraceParentHeader(spanContext) { if (missingFields.length) { return; } - var flags = spanContext.traceFlags || 0 /* NONE */; - var hexFlags = flags.toString(16); - var traceFlags = hexFlags.length === 1 ? "0" + hexFlags : hexFlags; + const flags = spanContext.traceFlags || 0 /* NONE */; + const hexFlags = flags.toString(16); + const traceFlags = hexFlags.length === 1 ? `0${hexFlags}` : hexFlags; // https://www.w3.org/TR/trace-context/#traceparent-header-field-values - return VERSION + "-" + spanContext.traceId + "-" + spanContext.spanId + "-" + traceFlags; + return `${VERSION}-${spanContext.traceId}-${spanContext.spanId}-${traceFlags}`; } -exports.NoOpSpan = NoOpSpan; -exports.NoOpTracer = NoOpTracer; -exports.OpenCensusSpanWrapper = OpenCensusSpanWrapper; -exports.OpenCensusTracerWrapper = OpenCensusTracerWrapper; -exports.TestSpan = TestSpan; -exports.TestTracer = TestTracer; exports.context = context; exports.createSpanFunction = createSpanFunction; exports.extractSpanContextFromTraceParentHeader = extractSpanContextFromTraceParentHeader; @@ -8940,9 +8154,9 @@ exports.getSpan = getSpan; exports.getSpanContext = getSpanContext; exports.getTraceParentHeader = getTraceParentHeader; exports.getTracer = getTracer; +exports.isSpanContextValid = isSpanContextValid; exports.setSpan = setSpan; exports.setSpanContext = setSpanContext; -exports.setTracer = setTracer; //# sourceMappingURL=index.js.map @@ -9863,116 +9077,116 @@ module.exports = satisfies /***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.isJobStatusSuccess = exports.getToolcachePath = exports.isVersionSatisfies = exports.getDownloadArchiveExtension = exports.extractJdkFile = exports.getVersionFromToolcachePath = exports.getBooleanInput = exports.getTempDir = void 0; -const os_1 = __importDefault(__webpack_require__(87)); -const path_1 = __importDefault(__webpack_require__(622)); -const fs = __importStar(__webpack_require__(747)); -const semver = __importStar(__webpack_require__(876)); -const core = __importStar(__webpack_require__(470)); -const tc = __importStar(__webpack_require__(533)); -const constants_1 = __webpack_require__(694); -function getTempDir() { - let tempDirectory = process.env['RUNNER_TEMP'] || os_1.default.tmpdir(); - return tempDirectory; -} -exports.getTempDir = getTempDir; -function getBooleanInput(inputName, defaultValue = false) { - return (core.getInput(inputName) || String(defaultValue)).toUpperCase() === 'TRUE'; -} -exports.getBooleanInput = getBooleanInput; -function getVersionFromToolcachePath(toolPath) { - if (toolPath) { - return path_1.default.basename(path_1.default.dirname(toolPath)); - } - return toolPath; -} -exports.getVersionFromToolcachePath = getVersionFromToolcachePath; -function extractJdkFile(toolPath, extension) { - return __awaiter(this, void 0, void 0, function* () { - if (!extension) { - extension = toolPath.endsWith('.tar.gz') ? 'tar.gz' : path_1.default.extname(toolPath); - if (extension.startsWith('.')) { - extension = extension.substring(1); - } - } - switch (extension) { - case 'tar.gz': - case 'tar': - return yield tc.extractTar(toolPath); - case 'zip': - return yield tc.extractZip(toolPath); - default: - return yield tc.extract7z(toolPath); - } - }); -} -exports.extractJdkFile = extractJdkFile; -function getDownloadArchiveExtension() { - return process.platform === 'win32' ? 'zip' : 'tar.gz'; -} -exports.getDownloadArchiveExtension = getDownloadArchiveExtension; -function isVersionSatisfies(range, version) { - var _a; - if (semver.valid(range)) { - // if full version with build digit is provided as a range (such as '1.2.3+4') - // we should check for exact equal via compareBuild - // since semver.satisfies doesn't handle 4th digit - const semRange = semver.parse(range); - if (semRange && ((_a = semRange.build) === null || _a === void 0 ? void 0 : _a.length) > 0) { - return semver.compareBuild(range, version) === 0; - } - } - return semver.satisfies(version, range); -} -exports.isVersionSatisfies = isVersionSatisfies; -function getToolcachePath(toolName, version, architecture) { - var _a; - const toolcacheRoot = (_a = process.env['RUNNER_TOOL_CACHE']) !== null && _a !== void 0 ? _a : ''; - const fullPath = path_1.default.join(toolcacheRoot, toolName, version, architecture); - if (fs.existsSync(fullPath)) { - return fullPath; - } - return null; -} -exports.getToolcachePath = getToolcachePath; -function isJobStatusSuccess() { - const jobStatus = core.getInput(constants_1.INPUT_JOB_STATUS); - return jobStatus === 'success'; -} -exports.isJobStatusSuccess = isJobStatusSuccess; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isJobStatusSuccess = exports.getToolcachePath = exports.isVersionSatisfies = exports.getDownloadArchiveExtension = exports.extractJdkFile = exports.getVersionFromToolcachePath = exports.getBooleanInput = exports.getTempDir = void 0; +const os_1 = __importDefault(__webpack_require__(87)); +const path_1 = __importDefault(__webpack_require__(622)); +const fs = __importStar(__webpack_require__(747)); +const semver = __importStar(__webpack_require__(876)); +const core = __importStar(__webpack_require__(470)); +const tc = __importStar(__webpack_require__(533)); +const constants_1 = __webpack_require__(694); +function getTempDir() { + let tempDirectory = process.env['RUNNER_TEMP'] || os_1.default.tmpdir(); + return tempDirectory; +} +exports.getTempDir = getTempDir; +function getBooleanInput(inputName, defaultValue = false) { + return (core.getInput(inputName) || String(defaultValue)).toUpperCase() === 'TRUE'; +} +exports.getBooleanInput = getBooleanInput; +function getVersionFromToolcachePath(toolPath) { + if (toolPath) { + return path_1.default.basename(path_1.default.dirname(toolPath)); + } + return toolPath; +} +exports.getVersionFromToolcachePath = getVersionFromToolcachePath; +function extractJdkFile(toolPath, extension) { + return __awaiter(this, void 0, void 0, function* () { + if (!extension) { + extension = toolPath.endsWith('.tar.gz') ? 'tar.gz' : path_1.default.extname(toolPath); + if (extension.startsWith('.')) { + extension = extension.substring(1); + } + } + switch (extension) { + case 'tar.gz': + case 'tar': + return yield tc.extractTar(toolPath); + case 'zip': + return yield tc.extractZip(toolPath); + default: + return yield tc.extract7z(toolPath); + } + }); +} +exports.extractJdkFile = extractJdkFile; +function getDownloadArchiveExtension() { + return process.platform === 'win32' ? 'zip' : 'tar.gz'; +} +exports.getDownloadArchiveExtension = getDownloadArchiveExtension; +function isVersionSatisfies(range, version) { + var _a; + if (semver.valid(range)) { + // if full version with build digit is provided as a range (such as '1.2.3+4') + // we should check for exact equal via compareBuild + // since semver.satisfies doesn't handle 4th digit + const semRange = semver.parse(range); + if (semRange && ((_a = semRange.build) === null || _a === void 0 ? void 0 : _a.length) > 0) { + return semver.compareBuild(range, version) === 0; + } + } + return semver.satisfies(version, range); +} +exports.isVersionSatisfies = isVersionSatisfies; +function getToolcachePath(toolName, version, architecture) { + var _a; + const toolcacheRoot = (_a = process.env['RUNNER_TOOL_CACHE']) !== null && _a !== void 0 ? _a : ''; + const fullPath = path_1.default.join(toolcacheRoot, toolName, version, architecture); + if (fs.existsSync(fullPath)) { + return fullPath; + } + return null; +} +exports.getToolcachePath = getToolcachePath; +function isJobStatusSuccess() { + const jobStatus = core.getInput(constants_1.INPUT_JOB_STATUS); + return jobStatus === 'success'; +} +exports.isJobStatusSuccess = isJobStatusSuccess; /***/ }), @@ -10025,7 +9239,6 @@ Object.defineProperty(exports, '__esModule', { value: true }); function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } -var tslib = __webpack_require__(865); var uuid = __webpack_require__(585); var tough = __webpack_require__(393); var http = __webpack_require__(605); @@ -10038,6 +9251,7 @@ var url = __webpack_require__(835); var stream = __webpack_require__(794); var logger$1 = __webpack_require__(492); var tunnel = __webpack_require__(413); +var tslib = __webpack_require__(865); var coreAuth = __webpack_require__(229); var xml2js = __webpack_require__(992); var os = __webpack_require__(87); @@ -10054,7 +9268,7 @@ function getHeaderKey(headerName) { } function isHttpHeadersLike(object) { if (object && typeof object === "object") { - var castObject = object; + const castObject = object; if (typeof castObject.rawHeaders === "function" && typeof castObject.clone === "function" && typeof castObject.get === "function" && @@ -10073,11 +9287,11 @@ function isHttpHeadersLike(object) { /** * A collection of HTTP header key/value pairs. */ -var HttpHeaders = /** @class */ (function () { - function HttpHeaders(rawHeaders) { +class HttpHeaders { + constructor(rawHeaders) { this._headersMap = {}; if (rawHeaders) { - for (var headerName in rawHeaders) { + for (const headerName in rawHeaders) { this.set(headerName, rawHeaders[headerName]); } } @@ -10088,100 +9302,104 @@ var HttpHeaders = /** @class */ (function () { * @param headerName - The name of the header to set. This value is case-insensitive. * @param headerValue - The value of the header to set. */ - HttpHeaders.prototype.set = function (headerName, headerValue) { + set(headerName, headerValue) { this._headersMap[getHeaderKey(headerName)] = { name: headerName, value: headerValue.toString() }; - }; + } /** * Get the header value for the provided header name, or undefined if no header exists in this * collection with the provided name. * @param headerName - The name of the header. */ - HttpHeaders.prototype.get = function (headerName) { - var header = this._headersMap[getHeaderKey(headerName)]; + get(headerName) { + const header = this._headersMap[getHeaderKey(headerName)]; return !header ? undefined : header.value; - }; + } /** * Get whether or not this header collection contains a header entry for the provided header name. */ - HttpHeaders.prototype.contains = function (headerName) { + contains(headerName) { return !!this._headersMap[getHeaderKey(headerName)]; - }; + } /** * Remove the header with the provided headerName. Return whether or not the header existed and * was removed. * @param headerName - The name of the header to remove. */ - HttpHeaders.prototype.remove = function (headerName) { - var result = this.contains(headerName); + remove(headerName) { + const result = this.contains(headerName); delete this._headersMap[getHeaderKey(headerName)]; return result; - }; + } /** * Get the headers that are contained this collection as an object. */ - HttpHeaders.prototype.rawHeaders = function () { - var result = {}; - for (var headerKey in this._headersMap) { - var header = this._headersMap[headerKey]; + rawHeaders() { + const result = {}; + for (const headerKey in this._headersMap) { + const header = this._headersMap[headerKey]; result[header.name.toLowerCase()] = header.value; } return result; - }; + } /** * Get the headers that are contained in this collection as an array. */ - HttpHeaders.prototype.headersArray = function () { - var headers = []; - for (var headerKey in this._headersMap) { + headersArray() { + const headers = []; + for (const headerKey in this._headersMap) { headers.push(this._headersMap[headerKey]); } return headers; - }; + } /** * Get the header names that are contained in this collection. */ - HttpHeaders.prototype.headerNames = function () { - var headerNames = []; - var headers = this.headersArray(); - for (var i = 0; i < headers.length; ++i) { + headerNames() { + const headerNames = []; + const headers = this.headersArray(); + for (let i = 0; i < headers.length; ++i) { headerNames.push(headers[i].name); } return headerNames; - }; + } /** * Get the header values that are contained in this collection. */ - HttpHeaders.prototype.headerValues = function () { - var headerValues = []; - var headers = this.headersArray(); - for (var i = 0; i < headers.length; ++i) { + headerValues() { + const headerValues = []; + const headers = this.headersArray(); + for (let i = 0; i < headers.length; ++i) { headerValues.push(headers[i].value); } return headerValues; - }; + } /** * Get the JSON object representation of this HTTP header collection. */ - HttpHeaders.prototype.toJson = function () { + toJson() { return this.rawHeaders(); - }; + } /** * Get the string representation of this HTTP header collection. */ - HttpHeaders.prototype.toString = function () { + toString() { return JSON.stringify(this.toJson()); - }; + } /** * Create a deep clone/copy of this HttpHeaders collection. */ - HttpHeaders.prototype.clone = function () { - return new HttpHeaders(this.rawHeaders()); - }; - return HttpHeaders; -}()); + clone() { + const resultPreservingCasing = {}; + for (const headerKey in this._headersMap) { + const header = this._headersMap[headerKey]; + resultPreservingCasing[header.name] = header.value; + } + return new HttpHeaders(resultPreservingCasing); + } +} // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. @@ -10199,7 +9417,7 @@ function encodeString(value) { function encodeByteArray(value) { // Buffer.from accepts | -- the TypeScript definition is off here // https://nodejs.org/api/buffer.html#buffer_class_method_buffer_from_arraybuffer_byteoffset_length - var bufferValue = value instanceof Buffer ? value : Buffer.from(value.buffer); + const bufferValue = value instanceof Buffer ? value : Buffer.from(value.buffer); return bufferValue.toString("base64"); } /** @@ -10212,11 +9430,11 @@ function decodeString(value) { // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -var Constants = { +const Constants = { /** * The core-http version */ - coreHttpVersion: "1.2.6", + coreHttpVersion: "2.2.2", /** * Specifies HTTP. */ @@ -10255,7 +9473,8 @@ var Constants = { PATCH: "PATCH" }, StatusCodes: { - TooManyRequests: 429 + TooManyRequests: 429, + ServiceUnavailable: 503 } }, /** @@ -10285,18 +9504,18 @@ var Constants = { /** * Default key used to access the XML attributes. */ -var XML_ATTRKEY = "$"; +const XML_ATTRKEY = "$"; /** * Default key used to access the XML value content. */ -var XML_CHARKEY = "_"; +const XML_CHARKEY = "_"; // Copyright (c) Microsoft Corporation. -var validUuidRegex = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/i; +const validUuidRegex = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/i; /** * A constant that indicates whether the environment is node.js or browser based. */ -var isNode = typeof process !== "undefined" && +const isNode = typeof process !== "undefined" && !!process.version && !!process.versions && !!process.versions.node; @@ -10322,7 +9541,7 @@ function encodeUri(uri) { * @returns The stripped version of Http Response. */ function stripResponse(response) { - var strippedResponse = {}; + const strippedResponse = {}; strippedResponse.body = response.bodyAsText; strippedResponse.headers = response.headers; strippedResponse.status = response.status; @@ -10336,7 +9555,7 @@ function stripResponse(response) { * @returns The stripped version of Http Request. */ function stripRequest(request) { - var strippedRequest = request.clone(); + const strippedRequest = request.clone(); if (strippedRequest.headers) { strippedRequest.headers.remove("authorization"); } @@ -10369,21 +9588,12 @@ function generateUuid() { * @returns A chain of resolved or rejected promises */ function executePromisesSequentially(promiseFactories, kickstart) { - var result = Promise.resolve(kickstart); - promiseFactories.forEach(function (promiseFactory) { + let result = Promise.resolve(kickstart); + promiseFactories.forEach((promiseFactory) => { result = result.then(promiseFactory); }); return result; } -/** - * A wrapper for setTimeout that resolves a promise after t milliseconds. - * @param t - The number of milliseconds to be delayed. - * @param value - The value to be resolved with after a timeout of t milliseconds. - * @returns Resolved promise - */ -function delay(t, value) { - return new Promise(function (resolve) { return setTimeout(function () { return resolve(value); }, t); }); -} /** * Converts a Promise to a callback. * @param promise - The Promise to be converted to a callback @@ -10396,13 +9606,13 @@ function promiseToCallback(promise) { throw new Error("The provided input is not a Promise."); } // eslint-disable-next-line @typescript-eslint/ban-types - return function (cb) { + return (cb) => { promise - .then(function (data) { + .then((data) => { // eslint-disable-next-line promise/no-callback-in-promise return cb(undefined, data); }) - .catch(function (err) { + .catch((err) => { // eslint-disable-next-line promise/no-callback-in-promise cb(err); }); @@ -10417,26 +9627,25 @@ function promiseToServiceCallback(promise) { if (typeof promise.then !== "function") { throw new Error("The provided input is not a Promise."); } - return function (cb) { + return (cb) => { promise - .then(function (data) { + .then((data) => { return process.nextTick(cb, undefined, data.parsedBody, data.request, data); }) - .catch(function (err) { + .catch((err) => { process.nextTick(cb, err); }); }; } function prepareXMLRootList(obj, elementName, xmlNamespaceKey, xmlNamespace) { - var _a, _b, _c; if (!Array.isArray(obj)) { obj = [obj]; } if (!xmlNamespaceKey || !xmlNamespace) { - return _a = {}, _a[elementName] = obj, _a; + return { [elementName]: obj }; } - var result = (_b = {}, _b[elementName] = obj, _b); - result[XML_ATTRKEY] = (_c = {}, _c[xmlNamespaceKey] = xmlNamespace, _c); + const result = { [elementName]: obj }; + result[XML_ATTRKEY] = { [xmlNamespaceKey]: xmlNamespace }; return result; } /** @@ -10445,14 +9654,14 @@ function prepareXMLRootList(obj, elementName, xmlNamespaceKey, xmlNamespace) { * @param sourceCtors - An array of source objects from which the properties need to be taken. */ function applyMixins(targetCtorParam, sourceCtors) { - var castTargetCtorParam = targetCtorParam; - sourceCtors.forEach(function (sourceCtor) { - Object.getOwnPropertyNames(sourceCtor.prototype).forEach(function (name) { + const castTargetCtorParam = targetCtorParam; + sourceCtors.forEach((sourceCtor) => { + Object.getOwnPropertyNames(sourceCtor.prototype).forEach((name) => { castTargetCtorParam.prototype[name] = sourceCtor.prototype[name]; }); }); } -var validateISODuration = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; +const validateISODuration = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; /** * Indicates whether the given string is in ISO 8601 format. * @param value - The value to be validated for ISO 8601 duration format. @@ -10502,19 +9711,18 @@ function isObject(input) { } // Copyright (c) Microsoft Corporation. -var Serializer = /** @class */ (function () { - function Serializer(modelMappers, isXML) { - if (modelMappers === void 0) { modelMappers = {}; } +class Serializer { + constructor(modelMappers = {}, isXML) { this.modelMappers = modelMappers; this.isXML = isXML; } - Serializer.prototype.validateConstraints = function (mapper, value, objectName) { - var failValidation = function (constraintName, constraintValue) { - throw new Error("\"" + objectName + "\" with value \"" + value + "\" should satisfy the constraint \"" + constraintName + "\": " + constraintValue + "."); + validateConstraints(mapper, value, objectName) { + const failValidation = (constraintName, constraintValue) => { + throw new Error(`"${objectName}" with value "${value}" should satisfy the constraint "${constraintName}": ${constraintValue}.`); }; if (mapper.constraints && value != undefined) { - var valueAsNumber = value; - var _a = mapper.constraints, ExclusiveMaximum = _a.ExclusiveMaximum, ExclusiveMinimum = _a.ExclusiveMinimum, InclusiveMaximum = _a.InclusiveMaximum, InclusiveMinimum = _a.InclusiveMinimum, MaxItems = _a.MaxItems, MaxLength = _a.MaxLength, MinItems = _a.MinItems, MinLength = _a.MinLength, MultipleOf = _a.MultipleOf, Pattern = _a.Pattern, UniqueItems = _a.UniqueItems; + const valueAsNumber = value; + const { ExclusiveMaximum, ExclusiveMinimum, InclusiveMaximum, InclusiveMinimum, MaxItems, MaxLength, MinItems, MinLength, MultipleOf, Pattern, UniqueItems } = mapper.constraints; if (ExclusiveMaximum != undefined && valueAsNumber >= ExclusiveMaximum) { failValidation("ExclusiveMaximum", ExclusiveMaximum); } @@ -10527,7 +9735,7 @@ var Serializer = /** @class */ (function () { if (InclusiveMinimum != undefined && valueAsNumber < InclusiveMinimum) { failValidation("InclusiveMinimum", InclusiveMinimum); } - var valueAsArray = value; + const valueAsArray = value; if (MaxItems != undefined && valueAsArray.length > MaxItems) { failValidation("MaxItems", MaxItems); } @@ -10544,17 +9752,17 @@ var Serializer = /** @class */ (function () { failValidation("MultipleOf", MultipleOf); } if (Pattern) { - var pattern = typeof Pattern === "string" ? new RegExp(Pattern) : Pattern; + const pattern = typeof Pattern === "string" ? new RegExp(Pattern) : Pattern; if (typeof value !== "string" || value.match(pattern) === null) { failValidation("Pattern", Pattern); } } if (UniqueItems && - valueAsArray.some(function (item, i, ar) { return ar.indexOf(item) !== i; })) { + valueAsArray.some((item, i, ar) => ar.indexOf(item) !== i)) { failValidation("UniqueItems", UniqueItems); } } - }; + } /** * Serialize the given object based on its metadata defined in the mapper * @@ -10564,16 +9772,15 @@ var Serializer = /** @class */ (function () { * @param options - additional options to deserialization * @returns A valid serialized Javascript object */ - Serializer.prototype.serialize = function (mapper, object, objectName, options) { + serialize(mapper, object, objectName, options = {}) { var _a, _b, _c; - if (options === void 0) { options = {}; } - var updatedOptions = { + const updatedOptions = { rootName: (_a = options.rootName) !== null && _a !== void 0 ? _a : "", includeRoot: (_b = options.includeRoot) !== null && _b !== void 0 ? _b : false, xmlCharKey: (_c = options.xmlCharKey) !== null && _c !== void 0 ? _c : XML_CHARKEY }; - var payload = {}; - var mapperType = mapper.type.name; + let payload = {}; + const mapperType = mapper.type.name; if (!objectName) { objectName = mapper.serializedName; } @@ -10592,15 +9799,15 @@ var Serializer = /** @class */ (function () { // true || null | undefined/null // false || X | undefined // undefined || X | undefined/null - var required = mapper.required, nullable = mapper.nullable; + const { required, nullable } = mapper; if (required && nullable && object === undefined) { - throw new Error(objectName + " cannot be undefined."); + throw new Error(`${objectName} cannot be undefined.`); } if (required && !nullable && object == undefined) { - throw new Error(objectName + " cannot be null or undefined."); + throw new Error(`${objectName} cannot be null or undefined.`); } if (!required && nullable === false && object === null) { - throw new Error(objectName + " cannot be null."); + throw new Error(`${objectName} cannot be null.`); } if (object == undefined) { payload = object; @@ -10615,7 +9822,7 @@ var Serializer = /** @class */ (function () { payload = serializeBasicTypes(mapperType, objectName, object); } else if (mapperType.match(/^Enum$/i) !== null) { - var enumMapper = mapper; + const enumMapper = mapper; payload = serializeEnumType(objectName, enumMapper.type.allowedValues, object); } else if (mapperType.match(/^(Date|DateTime|TimeSpan|DateTimeRfc1123|UnixTime)$/i) !== null) { @@ -10638,7 +9845,7 @@ var Serializer = /** @class */ (function () { } } return payload; - }; + } /** * Deserialize the given object based on its metadata defined in the mapper * @@ -10648,10 +9855,9 @@ var Serializer = /** @class */ (function () { * @param options - Controls behavior of XML parser and builder. * @returns A valid deserialized Javascript object */ - Serializer.prototype.deserialize = function (mapper, responseBody, objectName, options) { + deserialize(mapper, responseBody, objectName, options = {}) { var _a, _b, _c; - if (options === void 0) { options = {}; } - var updatedOptions = { + const updatedOptions = { rootName: (_a = options.rootName) !== null && _a !== void 0 ? _a : "", includeRoot: (_b = options.includeRoot) !== null && _b !== void 0 ? _b : false, xmlCharKey: (_c = options.xmlCharKey) !== null && _c !== void 0 ? _c : XML_CHARKEY @@ -10669,8 +9875,8 @@ var Serializer = /** @class */ (function () { } return responseBody; } - var payload; - var mapperType = mapper.type.name; + let payload; + const mapperType = mapper.type.name; if (!objectName) { objectName = mapper.serializedName; } @@ -10679,8 +9885,8 @@ var Serializer = /** @class */ (function () { } else { if (this.isXML) { - var xmlCharKey = updatedOptions.xmlCharKey; - var castResponseBody = responseBody; + const xmlCharKey = updatedOptions.xmlCharKey; + const castResponseBody = responseBody; /** * If the mapper specifies this as a non-composite type value but the responseBody contains * both header ("$" i.e., XML_ATTRKEY) and body ("#" i.e., XML_CHARKEY) properties, @@ -10734,11 +9940,10 @@ var Serializer = /** @class */ (function () { payload = mapper.defaultValue; } return payload; - }; - return Serializer; -}()); + } +} function trimEnd(str, ch) { - var len = str.length; + let len = str.length; while (len - 1 >= 0 && str[len - 1] === ch) { --len; } @@ -10749,10 +9954,10 @@ function bufferToBase64Url(buffer) { return undefined; } if (!(buffer instanceof Uint8Array)) { - throw new Error("Please provide an input of type Uint8Array for converting to Base64Url."); + throw new Error(`Please provide an input of type Uint8Array for converting to Base64Url.`); } // Uint8Array to Base64. - var str = encodeByteArray(buffer); + const str = encodeByteArray(buffer); // Base64 to Base64Url. return trimEnd(str, "=") .replace(/\+/g, "-") @@ -10771,12 +9976,11 @@ function base64UrlToByteArray(str) { return decodeString(str); } function splitSerializeName(prop) { - var classes = []; - var partialclass = ""; + const classes = []; + let partialclass = ""; if (prop) { - var subwords = prop.split("."); - for (var _i = 0, subwords_1 = subwords; _i < subwords_1.length; _i++) { - var item = subwords_1[_i]; + const subwords = prop.split("."); + for (const item of subwords) { if (item.charAt(item.length - 1) === "\\") { partialclass += item.substr(0, item.length - 1) + "."; } @@ -10808,32 +10012,32 @@ function serializeBasicTypes(typeName, objectName, value) { if (value !== null && value !== undefined) { if (typeName.match(/^Number$/i) !== null) { if (typeof value !== "number") { - throw new Error(objectName + " with value " + value + " must be of type number."); + throw new Error(`${objectName} with value ${value} must be of type number.`); } } else if (typeName.match(/^String$/i) !== null) { if (typeof value.valueOf() !== "string") { - throw new Error(objectName + " with value \"" + value + "\" must be of type string."); + throw new Error(`${objectName} with value "${value}" must be of type string.`); } } else if (typeName.match(/^Uuid$/i) !== null) { if (!(typeof value.valueOf() === "string" && isValidUuid(value))) { - throw new Error(objectName + " with value \"" + value + "\" must be of type string and a valid uuid."); + throw new Error(`${objectName} with value "${value}" must be of type string and a valid uuid.`); } } else if (typeName.match(/^Boolean$/i) !== null) { if (typeof value !== "boolean") { - throw new Error(objectName + " with value " + value + " must be of type boolean."); + throw new Error(`${objectName} with value ${value} must be of type boolean.`); } } else if (typeName.match(/^Stream$/i) !== null) { - var objectType = typeof value; + const objectType = typeof value; if (objectType !== "string" && objectType !== "function" && !(value instanceof ArrayBuffer) && !ArrayBuffer.isView(value) && !((typeof Blob === "function" || typeof Blob === "object") && value instanceof Blob)) { - throw new Error(objectName + " must be a string, Blob, ArrayBuffer, ArrayBufferView, or a function returning NodeJS.ReadableStream."); + throw new Error(`${objectName} must be a string, Blob, ArrayBuffer, ArrayBufferView, or a function returning NodeJS.ReadableStream.`); } } } @@ -10841,34 +10045,34 @@ function serializeBasicTypes(typeName, objectName, value) { } function serializeEnumType(objectName, allowedValues, value) { if (!allowedValues) { - throw new Error("Please provide a set of allowedValues to validate " + objectName + " as an Enum Type."); + throw new Error(`Please provide a set of allowedValues to validate ${objectName} as an Enum Type.`); } - var isPresent = allowedValues.some(function (item) { + const isPresent = allowedValues.some((item) => { if (typeof item.valueOf() === "string") { return item.toLowerCase() === value.toLowerCase(); } return item === value; }); if (!isPresent) { - throw new Error(value + " is not a valid value for " + objectName + ". The valid values are: " + JSON.stringify(allowedValues) + "."); + throw new Error(`${value} is not a valid value for ${objectName}. The valid values are: ${JSON.stringify(allowedValues)}.`); } return value; } function serializeByteArrayType(objectName, value) { - var returnValue = ""; + let returnValue = ""; if (value != undefined) { if (!(value instanceof Uint8Array)) { - throw new Error(objectName + " must be of type Uint8Array."); + throw new Error(`${objectName} must be of type Uint8Array.`); } returnValue = encodeByteArray(value); } return returnValue; } function serializeBase64UrlType(objectName, value) { - var returnValue = ""; + let returnValue = ""; if (value != undefined) { if (!(value instanceof Uint8Array)) { - throw new Error(objectName + " must be of type Uint8Array."); + throw new Error(`${objectName} must be of type Uint8Array.`); } returnValue = bufferToBase64Url(value) || ""; } @@ -10879,7 +10083,7 @@ function serializeDateTypes(typeName, value, objectName) { if (typeName.match(/^Date$/i) !== null) { if (!(value instanceof Date || (typeof value.valueOf() === "string" && !isNaN(Date.parse(value))))) { - throw new Error(objectName + " must be an instanceof Date or a string in ISO8601 format."); + throw new Error(`${objectName} must be an instanceof Date or a string in ISO8601 format.`); } value = value instanceof Date @@ -10889,58 +10093,57 @@ function serializeDateTypes(typeName, value, objectName) { else if (typeName.match(/^DateTime$/i) !== null) { if (!(value instanceof Date || (typeof value.valueOf() === "string" && !isNaN(Date.parse(value))))) { - throw new Error(objectName + " must be an instanceof Date or a string in ISO8601 format."); + throw new Error(`${objectName} must be an instanceof Date or a string in ISO8601 format.`); } value = value instanceof Date ? value.toISOString() : new Date(value).toISOString(); } else if (typeName.match(/^DateTimeRfc1123$/i) !== null) { if (!(value instanceof Date || (typeof value.valueOf() === "string" && !isNaN(Date.parse(value))))) { - throw new Error(objectName + " must be an instanceof Date or a string in RFC-1123 format."); + throw new Error(`${objectName} must be an instanceof Date or a string in RFC-1123 format.`); } value = value instanceof Date ? value.toUTCString() : new Date(value).toUTCString(); } else if (typeName.match(/^UnixTime$/i) !== null) { if (!(value instanceof Date || (typeof value.valueOf() === "string" && !isNaN(Date.parse(value))))) { - throw new Error(objectName + " must be an instanceof Date or a string in RFC-1123/ISO8601 format " + - "for it to be serialized in UnixTime/Epoch format."); + throw new Error(`${objectName} must be an instanceof Date or a string in RFC-1123/ISO8601 format ` + + `for it to be serialized in UnixTime/Epoch format.`); } value = dateToUnixTime(value); } else if (typeName.match(/^TimeSpan$/i) !== null) { if (!isDuration(value)) { - throw new Error(objectName + " must be a string in ISO 8601 format. Instead was \"" + value + "\"."); + throw new Error(`${objectName} must be a string in ISO 8601 format. Instead was "${value}".`); } } } return value; } function serializeSequenceType(serializer, mapper, object, objectName, isXml, options) { - var _a, _b; if (!Array.isArray(object)) { - throw new Error(objectName + " must be of type Array."); + throw new Error(`${objectName} must be of type Array.`); } - var elementType = mapper.type.element; + const elementType = mapper.type.element; if (!elementType || typeof elementType !== "object") { - throw new Error("element\" metadata for an Array must be defined in the " + - ("mapper and it must of type \"object\" in " + objectName + ".")); + throw new Error(`element" metadata for an Array must be defined in the ` + + `mapper and it must of type "object" in ${objectName}.`); } - var tempArray = []; - for (var i = 0; i < object.length; i++) { - var serializedValue = serializer.serialize(elementType, object[i], objectName, options); + const tempArray = []; + for (let i = 0; i < object.length; i++) { + const serializedValue = serializer.serialize(elementType, object[i], objectName, options); if (isXml && elementType.xmlNamespace) { - var xmlnsKey = elementType.xmlNamespacePrefix - ? "xmlns:" + elementType.xmlNamespacePrefix + const xmlnsKey = elementType.xmlNamespacePrefix + ? `xmlns:${elementType.xmlNamespacePrefix}` : "xmlns"; if (elementType.type.name === "Composite") { - tempArray[i] = tslib.__assign({}, serializedValue); - tempArray[i][XML_ATTRKEY] = (_a = {}, _a[xmlnsKey] = elementType.xmlNamespace, _a); + tempArray[i] = Object.assign({}, serializedValue); + tempArray[i][XML_ATTRKEY] = { [xmlnsKey]: elementType.xmlNamespace }; } else { tempArray[i] = {}; tempArray[i][options.xmlCharKey] = serializedValue; - tempArray[i][XML_ATTRKEY] = (_b = {}, _b[xmlnsKey] = elementType.xmlNamespace, _b); + tempArray[i][XML_ATTRKEY] = { [xmlnsKey]: elementType.xmlNamespace }; } } else { @@ -10950,27 +10153,25 @@ function serializeSequenceType(serializer, mapper, object, objectName, isXml, op return tempArray; } function serializeDictionaryType(serializer, mapper, object, objectName, isXml, options) { - var _a; if (typeof object !== "object") { - throw new Error(objectName + " must be of type object."); + throw new Error(`${objectName} must be of type object.`); } - var valueType = mapper.type.value; + const valueType = mapper.type.value; if (!valueType || typeof valueType !== "object") { - throw new Error("\"value\" metadata for a Dictionary must be defined in the " + - ("mapper and it must of type \"object\" in " + objectName + ".")); + throw new Error(`"value" metadata for a Dictionary must be defined in the ` + + `mapper and it must of type "object" in ${objectName}.`); } - var tempDictionary = {}; - for (var _i = 0, _b = Object.keys(object); _i < _b.length; _i++) { - var key = _b[_i]; - var serializedValue = serializer.serialize(valueType, object[key], objectName, options); + const tempDictionary = {}; + for (const key of Object.keys(object)) { + const serializedValue = serializer.serialize(valueType, object[key], objectName, options); // If the element needs an XML namespace we need to add it within the $ property tempDictionary[key] = getXmlObjectValue(valueType, serializedValue, isXml, options); } // Add the namespace to the root element if needed if (isXml && mapper.xmlNamespace) { - var xmlnsKey = mapper.xmlNamespacePrefix ? "xmlns:" + mapper.xmlNamespacePrefix : "xmlns"; - var result = tempDictionary; - result[XML_ATTRKEY] = (_a = {}, _a[xmlnsKey] = mapper.xmlNamespace, _a); + const xmlnsKey = mapper.xmlNamespacePrefix ? `xmlns:${mapper.xmlNamespacePrefix}` : "xmlns"; + const result = tempDictionary; + result[XML_ATTRKEY] = { [xmlnsKey]: mapper.xmlNamespace }; return result; } return tempDictionary; @@ -10982,9 +10183,9 @@ function serializeDictionaryType(serializer, mapper, object, objectName, isXml, * @param objectName - Name of the object being serialized */ function resolveAdditionalProperties(serializer, mapper, objectName) { - var additionalProperties = mapper.type.additionalProperties; + const additionalProperties = mapper.type.additionalProperties; if (!additionalProperties && mapper.type.className) { - var modelMapper = resolveReferencedMapper(serializer, mapper, objectName); + const modelMapper = resolveReferencedMapper(serializer, mapper, objectName); return modelMapper === null || modelMapper === void 0 ? void 0 : modelMapper.type.additionalProperties; } return additionalProperties; @@ -10996,9 +10197,9 @@ function resolveAdditionalProperties(serializer, mapper, objectName) { * @param objectName - Name of the object being serialized */ function resolveReferencedMapper(serializer, mapper, objectName) { - var className = mapper.type.className; + const className = mapper.type.className; if (!className) { - throw new Error("Class name for model \"" + objectName + "\" is not provided in the mapper \"" + JSON.stringify(mapper, undefined, 2) + "\"."); + throw new Error(`Class name for model "${objectName}" is not provided in the mapper "${JSON.stringify(mapper, undefined, 2)}".`); } return serializer.modelMappers[className]; } @@ -11008,36 +10209,34 @@ function resolveReferencedMapper(serializer, mapper, objectName) { * @param mapper - The composite mapper to resolve */ function resolveModelProperties(serializer, mapper, objectName) { - var modelProps = mapper.type.modelProperties; + let modelProps = mapper.type.modelProperties; if (!modelProps) { - var modelMapper = resolveReferencedMapper(serializer, mapper, objectName); + const modelMapper = resolveReferencedMapper(serializer, mapper, objectName); if (!modelMapper) { - throw new Error("mapper() cannot be null or undefined for model \"" + mapper.type.className + "\"."); + throw new Error(`mapper() cannot be null or undefined for model "${mapper.type.className}".`); } modelProps = modelMapper === null || modelMapper === void 0 ? void 0 : modelMapper.type.modelProperties; if (!modelProps) { - throw new Error("modelProperties cannot be null or undefined in the " + - ("mapper \"" + JSON.stringify(modelMapper) + "\" of type \"" + mapper.type.className + "\" for object \"" + objectName + "\".")); + throw new Error(`modelProperties cannot be null or undefined in the ` + + `mapper "${JSON.stringify(modelMapper)}" of type "${mapper.type.className}" for object "${objectName}".`); } } return modelProps; } function serializeCompositeType(serializer, mapper, object, objectName, isXml, options) { - var _a, _b; if (getPolymorphicDiscriminatorRecursively(serializer, mapper)) { mapper = getPolymorphicMapper(serializer, mapper, object, "clientName"); } if (object != undefined) { - var payload = {}; - var modelProps = resolveModelProperties(serializer, mapper, objectName); - for (var _i = 0, _c = Object.keys(modelProps); _i < _c.length; _i++) { - var key = _c[_i]; - var propertyMapper = modelProps[key]; + const payload = {}; + const modelProps = resolveModelProperties(serializer, mapper, objectName); + for (const key of Object.keys(modelProps)) { + const propertyMapper = modelProps[key]; if (propertyMapper.readOnly) { continue; } - var propName = void 0; - var parentObject = payload; + let propName; + let parentObject = payload; if (serializer.isXML) { if (propertyMapper.xmlIsWrapped) { propName = propertyMapper.xmlName; @@ -11047,11 +10246,10 @@ function serializeCompositeType(serializer, mapper, object, objectName, isXml, o } } else { - var paths = splitSerializeName(propertyMapper.serializedName); + const paths = splitSerializeName(propertyMapper.serializedName); propName = paths.pop(); - for (var _d = 0, paths_1 = paths; _d < paths_1.length; _d++) { - var pathName = paths_1[_d]; - var childObject = parentObject[pathName]; + for (const pathName of paths) { + const childObject = parentObject[pathName]; if (childObject == undefined && (object[key] != undefined || propertyMapper.defaultValue !== undefined)) { parentObject[pathName] = {}; @@ -11061,24 +10259,24 @@ function serializeCompositeType(serializer, mapper, object, objectName, isXml, o } if (parentObject != undefined) { if (isXml && mapper.xmlNamespace) { - var xmlnsKey = mapper.xmlNamespacePrefix - ? "xmlns:" + mapper.xmlNamespacePrefix + const xmlnsKey = mapper.xmlNamespacePrefix + ? `xmlns:${mapper.xmlNamespacePrefix}` : "xmlns"; - parentObject[XML_ATTRKEY] = tslib.__assign(tslib.__assign({}, parentObject[XML_ATTRKEY]), (_a = {}, _a[xmlnsKey] = mapper.xmlNamespace, _a)); + parentObject[XML_ATTRKEY] = Object.assign(Object.assign({}, parentObject[XML_ATTRKEY]), { [xmlnsKey]: mapper.xmlNamespace }); } - var propertyObjectName = propertyMapper.serializedName !== "" + const propertyObjectName = propertyMapper.serializedName !== "" ? objectName + "." + propertyMapper.serializedName : objectName; - var toSerialize = object[key]; - var polymorphicDiscriminator = getPolymorphicDiscriminatorRecursively(serializer, mapper); + let toSerialize = object[key]; + const polymorphicDiscriminator = getPolymorphicDiscriminatorRecursively(serializer, mapper); if (polymorphicDiscriminator && polymorphicDiscriminator.clientName === key && toSerialize == undefined) { toSerialize = mapper.serializedName; } - var serializedValue = serializer.serialize(propertyMapper, toSerialize, propertyObjectName, options); + const serializedValue = serializer.serialize(propertyMapper, toSerialize, propertyObjectName, options); if (serializedValue !== undefined && propName != undefined) { - var value = getXmlObjectValue(propertyMapper, serializedValue, isXml, options); + const value = getXmlObjectValue(propertyMapper, serializedValue, isXml, options); if (isXml && propertyMapper.xmlIsAttribute) { // XML_ATTRKEY, i.e., $ is the key attributes are kept under in xml2js. // This keeps things simple while preventing name collision @@ -11087,7 +10285,7 @@ function serializeCompositeType(serializer, mapper, object, objectName, isXml, o parentObject[XML_ATTRKEY][propName] = serializedValue; } else if (isXml && propertyMapper.xmlIsWrapped) { - parentObject[propName] = (_b = {}, _b[propertyMapper.xmlElementName] = value, _b); + parentObject[propName] = { [propertyMapper.xmlElementName]: value }; } else { parentObject[propName] = value; @@ -11095,17 +10293,14 @@ function serializeCompositeType(serializer, mapper, object, objectName, isXml, o } } } - var additionalPropertiesMapper = resolveAdditionalProperties(serializer, mapper, objectName); + const additionalPropertiesMapper = resolveAdditionalProperties(serializer, mapper, objectName); if (additionalPropertiesMapper) { - var propNames = Object.keys(modelProps); - var _loop_1 = function (clientPropName) { - var isAdditionalProperty = propNames.every(function (pn) { return pn !== clientPropName; }); + const propNames = Object.keys(modelProps); + for (const clientPropName in object) { + const isAdditionalProperty = propNames.every((pn) => pn !== clientPropName); if (isAdditionalProperty) { payload[clientPropName] = serializer.serialize(additionalPropertiesMapper, object[clientPropName], objectName + '["' + clientPropName + '"]', options); } - }; - for (var clientPropName in object) { - _loop_1(clientPropName); } } return payload; @@ -11113,25 +10308,24 @@ function serializeCompositeType(serializer, mapper, object, objectName, isXml, o return object; } function getXmlObjectValue(propertyMapper, serializedValue, isXml, options) { - var _a; if (!isXml || !propertyMapper.xmlNamespace) { return serializedValue; } - var xmlnsKey = propertyMapper.xmlNamespacePrefix - ? "xmlns:" + propertyMapper.xmlNamespacePrefix + const xmlnsKey = propertyMapper.xmlNamespacePrefix + ? `xmlns:${propertyMapper.xmlNamespacePrefix}` : "xmlns"; - var xmlNamespace = (_a = {}, _a[xmlnsKey] = propertyMapper.xmlNamespace, _a); + const xmlNamespace = { [xmlnsKey]: propertyMapper.xmlNamespace }; if (["Composite"].includes(propertyMapper.type.name)) { if (serializedValue[XML_ATTRKEY]) { return serializedValue; } else { - var result_1 = tslib.__assign({}, serializedValue); - result_1[XML_ATTRKEY] = xmlNamespace; - return result_1; + const result = Object.assign({}, serializedValue); + result[XML_ATTRKEY] = xmlNamespace; + return result; } } - var result = {}; + const result = {}; result[options.xmlCharKey] = serializedValue; result[XML_ATTRKEY] = xmlNamespace; return result; @@ -11144,24 +10338,22 @@ function deserializeCompositeType(serializer, mapper, responseBody, objectName, if (getPolymorphicDiscriminatorRecursively(serializer, mapper)) { mapper = getPolymorphicMapper(serializer, mapper, responseBody, "serializedName"); } - var modelProps = resolveModelProperties(serializer, mapper, objectName); - var instance = {}; - var handledPropertyNames = []; - for (var _i = 0, _b = Object.keys(modelProps); _i < _b.length; _i++) { - var key = _b[_i]; - var propertyMapper = modelProps[key]; - var paths = splitSerializeName(modelProps[key].serializedName); + const modelProps = resolveModelProperties(serializer, mapper, objectName); + let instance = {}; + const handledPropertyNames = []; + for (const key of Object.keys(modelProps)) { + const propertyMapper = modelProps[key]; + const paths = splitSerializeName(modelProps[key].serializedName); handledPropertyNames.push(paths[0]); - var serializedName = propertyMapper.serializedName, xmlName = propertyMapper.xmlName, xmlElementName = propertyMapper.xmlElementName; - var propertyObjectName = objectName; + const { serializedName, xmlName, xmlElementName } = propertyMapper; + let propertyObjectName = objectName; if (serializedName !== "" && serializedName !== undefined) { propertyObjectName = objectName + "." + serializedName; } - var headerCollectionPrefix = propertyMapper.headerCollectionPrefix; + const headerCollectionPrefix = propertyMapper.headerCollectionPrefix; if (headerCollectionPrefix) { - var dictionary = {}; - for (var _c = 0, _d = Object.keys(responseBody); _c < _d.length; _c++) { - var headerKey = _d[_c]; + const dictionary = {}; + for (const headerKey of Object.keys(responseBody)) { if (headerKey.startsWith(headerCollectionPrefix)) { dictionary[headerKey.substring(headerCollectionPrefix.length)] = serializer.deserialize(propertyMapper.type.value, responseBody[headerKey], propertyObjectName, options); } @@ -11174,7 +10366,7 @@ function deserializeCompositeType(serializer, mapper, responseBody, objectName, instance[key] = serializer.deserialize(propertyMapper, responseBody[XML_ATTRKEY][xmlName], propertyObjectName, options); } else { - var propertyName = xmlElementName || xmlName || serializedName; + const propertyName = xmlElementName || xmlName || serializedName; if (propertyMapper.xmlIsWrapped) { /* a list of wrapped by For the xml example below @@ -11190,29 +10382,28 @@ function deserializeCompositeType(serializer, mapper, responseBody, objectName, } xmlName is "Cors" and xmlElementName is"CorsRule". */ - var wrapped = responseBody[xmlName]; - var elementList = (_a = wrapped === null || wrapped === void 0 ? void 0 : wrapped[xmlElementName]) !== null && _a !== void 0 ? _a : []; + const wrapped = responseBody[xmlName]; + const elementList = (_a = wrapped === null || wrapped === void 0 ? void 0 : wrapped[xmlElementName]) !== null && _a !== void 0 ? _a : []; instance[key] = serializer.deserialize(propertyMapper, elementList, propertyObjectName, options); } else { - var property = responseBody[propertyName]; + const property = responseBody[propertyName]; instance[key] = serializer.deserialize(propertyMapper, property, propertyObjectName, options); } } } else { // deserialize the property if it is present in the provided responseBody instance - var propertyInstance = void 0; - var res = responseBody; + let propertyInstance; + let res = responseBody; // traversing the object step by step. - for (var _e = 0, paths_2 = paths; _e < paths_2.length; _e++) { - var item = paths_2[_e]; + for (const item of paths) { if (!res) break; res = res[item]; } propertyInstance = res; - var polymorphicDiscriminator = mapper.type.polymorphicDiscriminator; + const polymorphicDiscriminator = mapper.type.polymorphicDiscriminator; // checking that the model property name (key)(ex: "fishtype") and the // clientName of the polymorphicDiscriminator {metadata} (ex: "fishtype") // instead of the serializedName of the polymorphicDiscriminator (ex: "fish.type") @@ -11227,15 +10418,14 @@ function deserializeCompositeType(serializer, mapper, responseBody, objectName, propertyInstance == undefined) { propertyInstance = mapper.serializedName; } - var serializedValue = void 0; + let serializedValue; // paging if (Array.isArray(responseBody[key]) && modelProps[key].serializedName === "") { propertyInstance = responseBody[key]; - var arrayInstance = serializer.deserialize(propertyMapper, propertyInstance, propertyObjectName, options); + const arrayInstance = serializer.deserialize(propertyMapper, propertyInstance, propertyObjectName, options); // Copy over any properties that have already been added into the instance, where they do // not exist on the newly de-serialized array - for (var _f = 0, _g = Object.entries(instance); _f < _g.length; _f++) { - var _h = _g[_f], k = _h[0], v = _h[1]; + for (const [k, v] of Object.entries(instance)) { if (!Object.prototype.hasOwnProperty.call(arrayInstance, k)) { arrayInstance[k] = v; } @@ -11248,26 +10438,25 @@ function deserializeCompositeType(serializer, mapper, responseBody, objectName, } } } - var additionalPropertiesMapper = mapper.type.additionalProperties; + const additionalPropertiesMapper = mapper.type.additionalProperties; if (additionalPropertiesMapper) { - var isAdditionalProperty = function (responsePropName) { - for (var clientPropName in modelProps) { - var paths = splitSerializeName(modelProps[clientPropName].serializedName); + const isAdditionalProperty = (responsePropName) => { + for (const clientPropName in modelProps) { + const paths = splitSerializeName(modelProps[clientPropName].serializedName); if (paths[0] === responsePropName) { return false; } } return true; }; - for (var responsePropName in responseBody) { + for (const responsePropName in responseBody) { if (isAdditionalProperty(responsePropName)) { instance[responsePropName] = serializer.deserialize(additionalPropertiesMapper, responseBody[responsePropName], objectName + '["' + responsePropName + '"]', options); } } } else if (responseBody) { - for (var _j = 0, _k = Object.keys(responseBody); _j < _k.length; _j++) { - var key = _k[_j]; + for (const key of Object.keys(responseBody)) { if (instance[key] === undefined && !handledPropertyNames.includes(key) && !isSpecialXmlProperty(key, options)) { @@ -11278,15 +10467,14 @@ function deserializeCompositeType(serializer, mapper, responseBody, objectName, return instance; } function deserializeDictionaryType(serializer, mapper, responseBody, objectName, options) { - var value = mapper.type.value; + const value = mapper.type.value; if (!value || typeof value !== "object") { - throw new Error("\"value\" metadata for a Dictionary must be defined in the " + - ("mapper and it must of type \"object\" in " + objectName)); + throw new Error(`"value" metadata for a Dictionary must be defined in the ` + + `mapper and it must of type "object" in ${objectName}`); } if (responseBody) { - var tempDictionary = {}; - for (var _i = 0, _a = Object.keys(responseBody); _i < _a.length; _i++) { - var key = _a[_i]; + const tempDictionary = {}; + for (const key of Object.keys(responseBody)) { tempDictionary[key] = serializer.deserialize(value, responseBody[key], objectName, options); } return tempDictionary; @@ -11294,36 +10482,36 @@ function deserializeDictionaryType(serializer, mapper, responseBody, objectName, return responseBody; } function deserializeSequenceType(serializer, mapper, responseBody, objectName, options) { - var element = mapper.type.element; + const element = mapper.type.element; if (!element || typeof element !== "object") { - throw new Error("element\" metadata for an Array must be defined in the " + - ("mapper and it must of type \"object\" in " + objectName)); + throw new Error(`element" metadata for an Array must be defined in the ` + + `mapper and it must of type "object" in ${objectName}`); } if (responseBody) { if (!Array.isArray(responseBody)) { // xml2js will interpret a single element array as just the element, so force it to be an array responseBody = [responseBody]; } - var tempArray = []; - for (var i = 0; i < responseBody.length; i++) { - tempArray[i] = serializer.deserialize(element, responseBody[i], objectName + "[" + i + "]", options); + const tempArray = []; + for (let i = 0; i < responseBody.length; i++) { + tempArray[i] = serializer.deserialize(element, responseBody[i], `${objectName}[${i}]`, options); } return tempArray; } return responseBody; } function getPolymorphicMapper(serializer, mapper, object, polymorphicPropertyName) { - var polymorphicDiscriminator = getPolymorphicDiscriminatorRecursively(serializer, mapper); + const polymorphicDiscriminator = getPolymorphicDiscriminatorRecursively(serializer, mapper); if (polymorphicDiscriminator) { - var discriminatorName = polymorphicDiscriminator[polymorphicPropertyName]; + const discriminatorName = polymorphicDiscriminator[polymorphicPropertyName]; if (discriminatorName != undefined) { - var discriminatorValue = object[discriminatorName]; + const discriminatorValue = object[discriminatorName]; if (discriminatorValue != undefined) { - var typeName = mapper.type.uberParent || mapper.type.className; - var indexDiscriminator = discriminatorValue === typeName + const typeName = mapper.type.uberParent || mapper.type.className; + const indexDiscriminator = discriminatorValue === typeName ? discriminatorValue : typeName + "." + discriminatorValue; - var polymorphicMapper = serializer.modelMappers.discriminators[indexDiscriminator]; + const polymorphicMapper = serializer.modelMappers.discriminators[indexDiscriminator]; if (polymorphicMapper) { mapper = polymorphicMapper; } @@ -11344,7 +10532,7 @@ function getPolymorphicDiscriminatorSafely(serializer, typeName) { } // TODO: why is this here? function serializeObject(toSerialize) { - var castToSerialize = toSerialize; + const castToSerialize = toSerialize; if (toSerialize == undefined) return undefined; if (toSerialize instanceof Uint8Array) { @@ -11355,15 +10543,15 @@ function serializeObject(toSerialize) { return toSerialize.toISOString(); } else if (Array.isArray(toSerialize)) { - var array = []; - for (var i = 0; i < toSerialize.length; i++) { + const array = []; + for (let i = 0; i < toSerialize.length; i++) { array.push(serializeObject(toSerialize[i])); } return array; } else if (typeof toSerialize === "object") { - var dictionary = {}; - for (var property in toSerialize) { + const dictionary = {}; + for (const property in toSerialize) { dictionary[property] = serializeObject(castToSerialize[property]); } return dictionary; @@ -11374,15 +10562,14 @@ function serializeObject(toSerialize) { * Utility function to create a K:V from a list of strings */ function strEnum(o) { - var result = {}; - for (var _i = 0, o_1 = o; _i < o_1.length; _i++) { - var key = o_1[_i]; + const result = {}; + for (const key of o) { result[key] = key; } return result; } // eslint-disable-next-line @typescript-eslint/no-redeclare -var MapperType = strEnum([ +const MapperType = strEnum([ "Base64Url", "Boolean", "ByteArray", @@ -11404,7 +10591,7 @@ var MapperType = strEnum([ // Copyright (c) Microsoft Corporation. function isWebResourceLike(object) { if (object && typeof object === "object") { - var castObject = object; + const castObject = object; if (typeof castObject.url === "string" && typeof castObject.method === "string" && typeof castObject.headers === "object" && @@ -11423,8 +10610,8 @@ function isWebResourceLike(object) { * This class provides an abstraction over a REST call by being library / implementation agnostic and wrapping the necessary * properties to initiate a request. */ -var WebResource = /** @class */ (function () { - function WebResource(url, method, body, query, headers, streamResponseBody, withCredentials, abortSignal, timeout, onUploadProgress, onDownloadProgress, proxySettings, keepAlive, decompressResponse, streamResponseStatusCodes) { +class WebResource { + constructor(url, method, body, query, headers, streamResponseBody, withCredentials, abortSignal, timeout, onUploadProgress, onDownloadProgress, proxySettings, keepAlive, decompressResponse, streamResponseStatusCodes) { this.streamResponseBody = streamResponseBody; this.streamResponseStatusCodes = streamResponseStatusCodes; this.url = url || ""; @@ -11448,20 +10635,20 @@ var WebResource = /** @class */ (function () { * headers["accept-language"] are defined. It will throw an error if one of the above * mentioned properties are not defined. */ - WebResource.prototype.validateRequestProperties = function () { + validateRequestProperties() { if (!this.method) { throw new Error("WebResource.method is required."); } if (!this.url) { throw new Error("WebResource.url is required."); } - }; + } /** * Prepares the request. * @param options - Options to provide for preparing the request. * @returns Returns the prepared WebResource (HTTP Request) object that needs to be given to the request pipeline. */ - WebResource.prototype.prepare = function (options) { + prepare(options) { if (!options) { throw new Error("options object is required"); } @@ -11490,7 +10677,7 @@ var WebResource = /** @class */ (function () { } // set the method if (options.method) { - var validMethods = ["GET", "PUT", "HEAD", "DELETE", "OPTIONS", "POST", "PATCH", "TRACE"]; + const validMethods = ["GET", "PUT", "HEAD", "DELETE", "OPTIONS", "POST", "PATCH", "TRACE"]; if (validMethods.indexOf(options.method.toUpperCase()) === -1) { throw new Error('The provided method "' + options.method + @@ -11501,70 +10688,70 @@ var WebResource = /** @class */ (function () { this.method = options.method.toUpperCase(); // construct the url if path template is provided if (options.pathTemplate) { - var pathTemplate_1 = options.pathTemplate, pathParameters_1 = options.pathParameters; - if (typeof pathTemplate_1 !== "string") { + const { pathTemplate, pathParameters } = options; + if (typeof pathTemplate !== "string") { throw new Error('options.pathTemplate must be of type "string".'); } if (!options.baseUrl) { options.baseUrl = "https://management.azure.com"; } - var baseUrl = options.baseUrl; - var url_1 = baseUrl + + const baseUrl = options.baseUrl; + let url = baseUrl + (baseUrl.endsWith("/") ? "" : "/") + - (pathTemplate_1.startsWith("/") ? pathTemplate_1.slice(1) : pathTemplate_1); - var segments = url_1.match(/({[\w-]*\s*[\w-]*})/gi); + (pathTemplate.startsWith("/") ? pathTemplate.slice(1) : pathTemplate); + const segments = url.match(/({[\w-]*\s*[\w-]*})/gi); if (segments && segments.length) { - if (!pathParameters_1) { - throw new Error("pathTemplate: " + pathTemplate_1 + " has been provided. Hence, options.pathParameters must also be provided."); + if (!pathParameters) { + throw new Error(`pathTemplate: ${pathTemplate} has been provided. Hence, options.pathParameters must also be provided.`); } segments.forEach(function (item) { - var pathParamName = item.slice(1, -1); - var pathParam = pathParameters_1[pathParamName]; + const pathParamName = item.slice(1, -1); + const pathParam = pathParameters[pathParamName]; if (pathParam === null || pathParam === undefined || !(typeof pathParam === "string" || typeof pathParam === "object")) { - var stringifiedPathParameters = JSON.stringify(pathParameters_1, undefined, 2); - throw new Error("pathTemplate: " + pathTemplate_1 + " contains the path parameter " + pathParamName + - (" however, it is not present in parameters: " + stringifiedPathParameters + ".") + - ("The value of the path parameter can either be a \"string\" of the form { " + pathParamName + ": \"some sample value\" } or ") + - ("it can be an \"object\" of the form { \"" + pathParamName + "\": { value: \"some sample value\", skipUrlEncoding: true } }.")); + const stringifiedPathParameters = JSON.stringify(pathParameters, undefined, 2); + throw new Error(`pathTemplate: ${pathTemplate} contains the path parameter ${pathParamName}` + + ` however, it is not present in parameters: ${stringifiedPathParameters}.` + + `The value of the path parameter can either be a "string" of the form { ${pathParamName}: "some sample value" } or ` + + `it can be an "object" of the form { "${pathParamName}": { value: "some sample value", skipUrlEncoding: true } }.`); } if (typeof pathParam.valueOf() === "string") { - url_1 = url_1.replace(item, encodeURIComponent(pathParam)); + url = url.replace(item, encodeURIComponent(pathParam)); } if (typeof pathParam.valueOf() === "object") { if (!pathParam.value) { - throw new Error("options.pathParameters[" + pathParamName + "] is of type \"object\" but it does not contain a \"value\" property."); + throw new Error(`options.pathParameters[${pathParamName}] is of type "object" but it does not contain a "value" property.`); } if (pathParam.skipUrlEncoding) { - url_1 = url_1.replace(item, pathParam.value); + url = url.replace(item, pathParam.value); } else { - url_1 = url_1.replace(item, encodeURIComponent(pathParam.value)); + url = url.replace(item, encodeURIComponent(pathParam.value)); } } }); } - this.url = url_1; + this.url = url; } // append query parameters to the url if they are provided. They can be provided with pathTemplate or url option. if (options.queryParameters) { - var queryParameters = options.queryParameters; + const queryParameters = options.queryParameters; if (typeof queryParameters !== "object") { - throw new Error("options.queryParameters must be of type object. It should be a JSON object " + - "of \"query-parameter-name\" as the key and the \"query-parameter-value\" as the value. " + - "The \"query-parameter-value\" may be fo type \"string\" or an \"object\" of the form { value: \"query-parameter-value\", skipUrlEncoding: true }."); + throw new Error(`options.queryParameters must be of type object. It should be a JSON object ` + + `of "query-parameter-name" as the key and the "query-parameter-value" as the value. ` + + `The "query-parameter-value" may be fo type "string" or an "object" of the form { value: "query-parameter-value", skipUrlEncoding: true }.`); } // append question mark if it is not present in the url if (this.url && this.url.indexOf("?") === -1) { this.url += "?"; } // construct queryString - var queryParams = []; + const queryParams = []; // We need to populate this.query as a dictionary if the request is being used for Sway's validateRequest(). this.query = {}; - for (var queryParamName in queryParameters) { - var queryParam = queryParameters[queryParamName]; + for (const queryParamName in queryParameters) { + const queryParam = queryParameters[queryParamName]; if (queryParam) { if (typeof queryParam === "string") { queryParams.push(queryParamName + "=" + encodeURIComponent(queryParam)); @@ -11572,7 +10759,7 @@ var WebResource = /** @class */ (function () { } else if (typeof queryParam === "object") { if (!queryParam.value) { - throw new Error("options.queryParameters[" + queryParamName + "] is of type \"object\" but it does not contain a \"value\" property."); + throw new Error(`options.queryParameters[${queryParamName}] is of type "object" but it does not contain a "value" property.`); } if (queryParam.skipUrlEncoding) { queryParams.push(queryParamName + "=" + queryParam.value); @@ -11590,9 +10777,8 @@ var WebResource = /** @class */ (function () { } // add headers to the request if they are provided if (options.headers) { - var headers = options.headers; - for (var _i = 0, _a = Object.keys(options.headers); _i < _a.length; _i++) { - var headerName = _a[_i]; + const headers = options.headers; + for (const headerName of Object.keys(options.headers)) { this.headers.set(headerName, headers[headerName]); } } @@ -11639,13 +10825,13 @@ var WebResource = /** @class */ (function () { this.onDownloadProgress = options.onDownloadProgress; this.onUploadProgress = options.onUploadProgress; return this; - }; + } /** * Clone this WebResource HTTP request object. * @returns The clone of this WebResource HTTP request object. */ - WebResource.prototype.clone = function () { - var result = new WebResource(this.url, this.method, this.body, this.query, this.headers && this.headers.clone(), this.streamResponseBody, this.withCredentials, this.abortSignal, this.timeout, this.onUploadProgress, this.onDownloadProgress, this.proxySettings, this.keepAlive, this.decompressResponse, this.streamResponseStatusCodes); + clone() { + const result = new WebResource(this.url, this.method, this.body, this.query, this.headers && this.headers.clone(), this.streamResponseBody, this.withCredentials, this.abortSignal, this.timeout, this.onUploadProgress, this.onDownloadProgress, this.proxySettings, this.keepAlive, this.decompressResponse, this.streamResponseStatusCodes); if (this.formData) { result.formData = this.formData; } @@ -11659,43 +10845,42 @@ var WebResource = /** @class */ (function () { result.operationResponseGetter = this.operationResponseGetter; } return result; - }; - return WebResource; -}()); + } +} // Copyright (c) Microsoft Corporation. -var custom = util.inspect.custom; +const custom = util.inspect.custom; // Copyright (c) Microsoft Corporation. /** * A class that handles the query portion of a URLBuilder. */ -var URLQuery = /** @class */ (function () { - function URLQuery() { +class URLQuery { + constructor() { this._rawQuery = {}; } /** * Get whether or not there any query parameters in this URLQuery. */ - URLQuery.prototype.any = function () { + any() { return Object.keys(this._rawQuery).length > 0; - }; + } /** * Get the keys of the query string. */ - URLQuery.prototype.keys = function () { + keys() { return Object.keys(this._rawQuery); - }; + } /** * Set a query parameter with the provided name and value. If the parameterValue is undefined or * empty, then this will attempt to remove an existing query parameter with the provided * parameterName. */ - URLQuery.prototype.set = function (parameterName, parameterValue) { - var caseParameterValue = parameterValue; + set(parameterName, parameterValue) { + const caseParameterValue = parameterValue; if (parameterName) { if (caseParameterValue !== undefined && caseParameterValue !== null) { - var newValue = Array.isArray(caseParameterValue) + const newValue = Array.isArray(caseParameterValue) ? caseParameterValue : caseParameterValue.toString(); this._rawQuery[parameterName] = newValue; @@ -11704,52 +10889,51 @@ var URLQuery = /** @class */ (function () { delete this._rawQuery[parameterName]; } } - }; + } /** * Get the value of the query parameter with the provided name. If no parameter exists with the * provided parameter name, then undefined will be returned. */ - URLQuery.prototype.get = function (parameterName) { + get(parameterName) { return parameterName ? this._rawQuery[parameterName] : undefined; - }; + } /** * Get the string representation of this query. The return value will not start with a "?". */ - URLQuery.prototype.toString = function () { - var result = ""; - for (var parameterName in this._rawQuery) { + toString() { + let result = ""; + for (const parameterName in this._rawQuery) { if (result) { result += "&"; } - var parameterValue = this._rawQuery[parameterName]; + const parameterValue = this._rawQuery[parameterName]; if (Array.isArray(parameterValue)) { - var parameterStrings = []; - for (var _i = 0, parameterValue_1 = parameterValue; _i < parameterValue_1.length; _i++) { - var parameterValueElement = parameterValue_1[_i]; - parameterStrings.push(parameterName + "=" + parameterValueElement); + const parameterStrings = []; + for (const parameterValueElement of parameterValue) { + parameterStrings.push(`${parameterName}=${parameterValueElement}`); } result += parameterStrings.join("&"); } else { - result += parameterName + "=" + parameterValue; + result += `${parameterName}=${parameterValue}`; } } return result; - }; + } /** * Parse a URLQuery from the provided text. */ - URLQuery.parse = function (text) { - var result = new URLQuery(); + static parse(text) { + const result = new URLQuery(); if (text) { if (text.startsWith("?")) { text = text.substring(1); } - var currentState = "ParameterName"; - var parameterName = ""; - var parameterValue = ""; - for (var i = 0; i < text.length; ++i) { - var currentCharacter = text[i]; + let currentState = "ParameterName"; + let parameterName = ""; + let parameterValue = ""; + for (let i = 0; i < text.length; ++i) { + const currentCharacter = text[i]; switch (currentState) { case "ParameterName": switch (currentCharacter) { @@ -11787,81 +10971,78 @@ var URLQuery = /** @class */ (function () { } } return result; - }; - return URLQuery; -}()); + } +} /** * A class that handles creating, modifying, and parsing URLs. */ -var URLBuilder = /** @class */ (function () { - function URLBuilder() { - } +class URLBuilder { /** * Set the scheme/protocol for this URL. If the provided scheme contains other parts of a URL * (such as a host, port, path, or query), those parts will be added to this URL as well. */ - URLBuilder.prototype.setScheme = function (scheme) { + setScheme(scheme) { if (!scheme) { this._scheme = undefined; } else { this.set(scheme, "SCHEME"); } - }; + } /** * Get the scheme that has been set in this URL. */ - URLBuilder.prototype.getScheme = function () { + getScheme() { return this._scheme; - }; + } /** * Set the host for this URL. If the provided host contains other parts of a URL (such as a * port, path, or query), those parts will be added to this URL as well. */ - URLBuilder.prototype.setHost = function (host) { + setHost(host) { if (!host) { this._host = undefined; } else { this.set(host, "SCHEME_OR_HOST"); } - }; + } /** * Get the host that has been set in this URL. */ - URLBuilder.prototype.getHost = function () { + getHost() { return this._host; - }; + } /** * Set the port for this URL. If the provided port contains other parts of a URL (such as a * path or query), those parts will be added to this URL as well. */ - URLBuilder.prototype.setPort = function (port) { + setPort(port) { if (port === undefined || port === null || port === "") { this._port = undefined; } else { this.set(port.toString(), "PORT"); } - }; + } /** * Get the port that has been set in this URL. */ - URLBuilder.prototype.getPort = function () { + getPort() { return this._port; - }; + } /** * Set the path for this URL. If the provided path contains a query, then it will be added to * this URL as well. */ - URLBuilder.prototype.setPath = function (path) { + setPath(path) { if (!path) { this._path = undefined; } else { - var schemeIndex = path.indexOf("://"); + const schemeIndex = path.indexOf("://"); if (schemeIndex !== -1) { - var schemeStart = path.lastIndexOf("/", schemeIndex); + const schemeStart = path.lastIndexOf("/", schemeIndex); // Make sure to only grab the URL part of the path before setting the state back to SCHEME // this will handle cases such as "/a/b/c/https://microsoft.com" => "https://microsoft.com" this.set(schemeStart === -1 ? path : path.substr(schemeStart + 1), "SCHEME"); @@ -11870,14 +11051,14 @@ var URLBuilder = /** @class */ (function () { this.set(path, "PATH"); } } - }; + } /** * Append the provided path to this URL's existing path. If the provided path contains a query, * then it will be added to this URL as well. */ - URLBuilder.prototype.appendPath = function (path) { + appendPath(path) { if (path) { - var currentPath = this.getPath(); + let currentPath = this.getPath(); if (currentPath) { if (!currentPath.endsWith("/")) { currentPath += "/"; @@ -11889,58 +11070,58 @@ var URLBuilder = /** @class */ (function () { } this.set(path, "PATH"); } - }; + } /** * Get the path that has been set in this URL. */ - URLBuilder.prototype.getPath = function () { + getPath() { return this._path; - }; + } /** * Set the query in this URL. */ - URLBuilder.prototype.setQuery = function (query) { + setQuery(query) { if (!query) { this._query = undefined; } else { this._query = URLQuery.parse(query); } - }; + } /** * Set a query parameter with the provided name and value in this URL's query. If the provided * query parameter value is undefined or empty, then the query parameter will be removed if it * existed. */ - URLBuilder.prototype.setQueryParameter = function (queryParameterName, queryParameterValue) { + setQueryParameter(queryParameterName, queryParameterValue) { if (queryParameterName) { if (!this._query) { this._query = new URLQuery(); } this._query.set(queryParameterName, queryParameterValue); } - }; + } /** * Get the value of the query parameter with the provided query parameter name. If no query * parameter exists with the provided name, then undefined will be returned. */ - URLBuilder.prototype.getQueryParameterValue = function (queryParameterName) { + getQueryParameterValue(queryParameterName) { return this._query ? this._query.get(queryParameterName) : undefined; - }; + } /** * Get the query in this URL. */ - URLBuilder.prototype.getQuery = function () { + getQuery() { return this._query ? this._query.toString() : undefined; - }; + } /** * Set the parts of this URL by parsing the provided text using the provided startState. */ - URLBuilder.prototype.set = function (text, startState) { - var tokenizer = new URLTokenizer(text, startState); + set(text, startState) { + const tokenizer = new URLTokenizer(text, startState); while (tokenizer.next()) { - var token = tokenizer.current(); - var tokenPath = void 0; + const token = tokenizer.current(); + let tokenPath; if (token) { switch (token.type) { case "SCHEME": @@ -11962,21 +11143,21 @@ var URLBuilder = /** @class */ (function () { this._query = URLQuery.parse(token.text); break; default: - throw new Error("Unrecognized URLTokenType: " + token.type); + throw new Error(`Unrecognized URLTokenType: ${token.type}`); } } } - }; - URLBuilder.prototype.toString = function () { - var result = ""; + } + toString() { + let result = ""; if (this._scheme) { - result += this._scheme + "://"; + result += `${this._scheme}://`; } if (this._host) { result += this._host; } if (this._port) { - result += ":" + this._port; + result += `:${this._port}`; } if (this._path) { if (!this._path.startsWith("/")) { @@ -11985,15 +11166,15 @@ var URLBuilder = /** @class */ (function () { result += this._path; } if (this._query && this._query.any()) { - result += "?" + this._query.toString(); + result += `?${this._query.toString()}`; } return result; - }; + } /** * If the provided searchValue is found in this URLBuilder, then replace it with the provided * replaceValue. */ - URLBuilder.prototype.replaceAll = function (searchValue, replaceValue) { + replaceAll(searchValue, replaceValue) { if (searchValue) { this.setScheme(replaceAll(this.getScheme(), searchValue, replaceValue)); this.setHost(replaceAll(this.getHost(), searchValue, replaceValue)); @@ -12001,42 +11182,40 @@ var URLBuilder = /** @class */ (function () { this.setPath(replaceAll(this.getPath(), searchValue, replaceValue)); this.setQuery(replaceAll(this.getQuery(), searchValue, replaceValue)); } - }; - URLBuilder.parse = function (text) { - var result = new URLBuilder(); + } + static parse(text) { + const result = new URLBuilder(); result.set(text, "SCHEME_OR_HOST"); return result; - }; - return URLBuilder; -}()); -var URLToken = /** @class */ (function () { - function URLToken(text, type) { + } +} +class URLToken { + constructor(text, type) { this.text = text; this.type = type; } - URLToken.scheme = function (text) { + static scheme(text) { return new URLToken(text, "SCHEME"); - }; - URLToken.host = function (text) { + } + static host(text) { return new URLToken(text, "HOST"); - }; - URLToken.port = function (text) { + } + static port(text) { return new URLToken(text, "PORT"); - }; - URLToken.path = function (text) { + } + static path(text) { return new URLToken(text, "PATH"); - }; - URLToken.query = function (text) { + } + static query(text) { return new URLToken(text, "QUERY"); - }; - return URLToken; -}()); + } +} /** * Get whether or not the provided character (single character string) is an alphanumeric (letter or * digit) character. */ function isAlphaNumericCharacter(character) { - var characterCode = character.charCodeAt(0); + const characterCode = character.charCodeAt(0); return ((48 /* '0' */ <= characterCode && characterCode <= 57) /* '9' */ || (65 /* 'A' */ <= characterCode && characterCode <= 90) /* 'Z' */ || (97 /* 'a' */ <= characterCode && characterCode <= 122) /* 'z' */); @@ -12044,8 +11223,8 @@ function isAlphaNumericCharacter(character) { /** * A class that tokenizes URL strings. */ -var URLTokenizer = /** @class */ (function () { - function URLTokenizer(_text, state) { +class URLTokenizer { + constructor(_text, state) { this._text = _text; this._textLength = _text ? _text.length : 0; this._currentState = state !== undefined && state !== null ? state : "SCHEME_OR_HOST"; @@ -12055,13 +11234,13 @@ var URLTokenizer = /** @class */ (function () { * Get the current URLToken this URLTokenizer is pointing at, or undefined if the URLTokenizer * hasn't started or has finished tokenizing. */ - URLTokenizer.prototype.current = function () { + current() { return this._currentToken; - }; + } /** * Advance to the next URLToken and return whether or not a URLToken was found. */ - URLTokenizer.prototype.next = function () { + next() { if (!hasCurrentCharacter(this)) { this._currentToken = undefined; } @@ -12086,18 +11265,17 @@ var URLTokenizer = /** @class */ (function () { nextQuery(this); break; default: - throw new Error("Unrecognized URLTokenizerState: " + this._currentState); + throw new Error(`Unrecognized URLTokenizerState: ${this._currentState}`); } } return !!this._currentToken; - }; - return URLTokenizer; -}()); + } +} /** * Read the remaining characters from this Tokenizer's character stream. */ function readRemaining(tokenizer) { - var result = ""; + let result = ""; if (tokenizer._currentIndex < tokenizer._textLength) { result = tokenizer._text.substring(tokenizer._currentIndex); tokenizer._currentIndex = tokenizer._textLength; @@ -12133,7 +11311,7 @@ function nextCharacter(tokenizer, step) { * Tokenizer's stream of characters. */ function peekCharacters(tokenizer, charactersToPeek) { - var endIndex = tokenizer._currentIndex + charactersToPeek; + let endIndex = tokenizer._currentIndex + charactersToPeek; if (tokenizer._textLength < endIndex) { endIndex = tokenizer._textLength; } @@ -12144,9 +11322,9 @@ function peekCharacters(tokenizer, charactersToPeek) { * is false when provided the current character. */ function readWhile(tokenizer, condition) { - var result = ""; + let result = ""; while (hasCurrentCharacter(tokenizer)) { - var currentCharacter = getCurrentCharacter(tokenizer); + const currentCharacter = getCurrentCharacter(tokenizer); if (!condition(currentCharacter)) { break; } @@ -12162,21 +11340,17 @@ function readWhile(tokenizer, condition) { * character stream is reached. */ function readWhileLetterOrDigit(tokenizer) { - return readWhile(tokenizer, function (character) { return isAlphaNumericCharacter(character); }); + return readWhile(tokenizer, (character) => isAlphaNumericCharacter(character)); } /** * Read characters from this Tokenizer until one of the provided terminating characters is read or * the end of the character stream is reached. */ -function readUntilCharacter(tokenizer) { - var terminatingCharacters = []; - for (var _i = 1; _i < arguments.length; _i++) { - terminatingCharacters[_i - 1] = arguments[_i]; - } - return readWhile(tokenizer, function (character) { return terminatingCharacters.indexOf(character) === -1; }); +function readUntilCharacter(tokenizer, ...terminatingCharacters) { + return readWhile(tokenizer, (character) => terminatingCharacters.indexOf(character) === -1); } function nextScheme(tokenizer) { - var scheme = readWhileLetterOrDigit(tokenizer); + const scheme = readWhileLetterOrDigit(tokenizer); tokenizer._currentToken = URLToken.scheme(scheme); if (!hasCurrentCharacter(tokenizer)) { tokenizer._currentState = "DONE"; @@ -12186,7 +11360,7 @@ function nextScheme(tokenizer) { } } function nextSchemeOrHost(tokenizer) { - var schemeOrHost = readUntilCharacter(tokenizer, ":", "/", "?"); + const schemeOrHost = readUntilCharacter(tokenizer, ":", "/", "?"); if (!hasCurrentCharacter(tokenizer)) { tokenizer._currentToken = URLToken.host(schemeOrHost); tokenizer._currentState = "DONE"; @@ -12215,7 +11389,7 @@ function nextHost(tokenizer) { if (peekCharacters(tokenizer, 3) === "://") { nextCharacter(tokenizer, 3); } - var host = readUntilCharacter(tokenizer, ":", "/", "?"); + const host = readUntilCharacter(tokenizer, ":", "/", "?"); tokenizer._currentToken = URLToken.host(host); if (!hasCurrentCharacter(tokenizer)) { tokenizer._currentState = "DONE"; @@ -12234,7 +11408,7 @@ function nextPort(tokenizer) { if (getCurrentCharacter(tokenizer) === ":") { nextCharacter(tokenizer); } - var port = readUntilCharacter(tokenizer, "/", "?"); + const port = readUntilCharacter(tokenizer, "/", "?"); tokenizer._currentToken = URLToken.port(port); if (!hasCurrentCharacter(tokenizer)) { tokenizer._currentState = "DONE"; @@ -12247,7 +11421,7 @@ function nextPort(tokenizer) { } } function nextPath(tokenizer) { - var path = readUntilCharacter(tokenizer, "?"); + const path = readUntilCharacter(tokenizer, "?"); tokenizer._currentToken = URLToken.path(path); if (!hasCurrentCharacter(tokenizer)) { tokenizer._currentState = "DONE"; @@ -12260,14 +11434,14 @@ function nextQuery(tokenizer) { if (getCurrentCharacter(tokenizer) === "?") { nextCharacter(tokenizer); } - var query = readRemaining(tokenizer); + const query = readRemaining(tokenizer); tokenizer._currentToken = URLToken.query(query); tokenizer._currentState = "DONE"; } // Copyright (c) Microsoft Corporation. -var RedactedString = "REDACTED"; -var defaultAllowedHeaderNames = [ +const RedactedString = "REDACTED"; +const defaultAllowedHeaderNames = [ "x-ms-client-request-id", "x-ms-return-client-request-id", "x-ms-useragent", @@ -12307,35 +11481,33 @@ var defaultAllowedHeaderNames = [ "Transfer-Encoding", "User-Agent" ]; -var defaultAllowedQueryParameters = ["api-version"]; -var Sanitizer = /** @class */ (function () { - function Sanitizer(_a) { - var _b = _a === void 0 ? {} : _a, _c = _b.allowedHeaderNames, allowedHeaderNames = _c === void 0 ? [] : _c, _d = _b.allowedQueryParameters, allowedQueryParameters = _d === void 0 ? [] : _d; +const defaultAllowedQueryParameters = ["api-version"]; +class Sanitizer { + constructor({ allowedHeaderNames = [], allowedQueryParameters = [] } = {}) { allowedHeaderNames = Array.isArray(allowedHeaderNames) ? defaultAllowedHeaderNames.concat(allowedHeaderNames) : defaultAllowedHeaderNames; allowedQueryParameters = Array.isArray(allowedQueryParameters) ? defaultAllowedQueryParameters.concat(allowedQueryParameters) : defaultAllowedQueryParameters; - this.allowedHeaderNames = new Set(allowedHeaderNames.map(function (n) { return n.toLowerCase(); })); - this.allowedQueryParameters = new Set(allowedQueryParameters.map(function (p) { return p.toLowerCase(); })); + this.allowedHeaderNames = new Set(allowedHeaderNames.map((n) => n.toLowerCase())); + this.allowedQueryParameters = new Set(allowedQueryParameters.map((p) => p.toLowerCase())); } - Sanitizer.prototype.sanitize = function (obj) { - var _this = this; - var seen = new Set(); - return JSON.stringify(obj, function (key, value) { + sanitize(obj) { + const seen = new Set(); + return JSON.stringify(obj, (key, value) => { // Ensure Errors include their interesting non-enumerable members if (value instanceof Error) { - return tslib.__assign(tslib.__assign({}, value), { name: value.name, message: value.message }); + return Object.assign(Object.assign({}, value), { name: value.name, message: value.message }); } if (key === "_headersMap") { - return _this.sanitizeHeaders(value); + return this.sanitizeHeaders(value); } else if (key === "url") { - return _this.sanitizeUrl(value); + return this.sanitizeUrl(value); } else if (key === "query") { - return _this.sanitizeQuery(value); + return this.sanitizeQuery(value); } else if (key === "body") { // Don't log the request body @@ -12358,20 +11530,19 @@ var Sanitizer = /** @class */ (function () { } return value; }, 2); - }; - Sanitizer.prototype.sanitizeHeaders = function (value) { - return this.sanitizeObject(value, this.allowedHeaderNames, function (v, k) { return v[k].value; }); - }; - Sanitizer.prototype.sanitizeQuery = function (value) { - return this.sanitizeObject(value, this.allowedQueryParameters, function (v, k) { return v[k]; }); - }; - Sanitizer.prototype.sanitizeObject = function (value, allowedKeys, accessor) { + } + sanitizeHeaders(value) { + return this.sanitizeObject(value, this.allowedHeaderNames, (v, k) => v[k].value); + } + sanitizeQuery(value) { + return this.sanitizeObject(value, this.allowedQueryParameters, (v, k) => v[k]); + } + sanitizeObject(value, allowedKeys, accessor) { if (typeof value !== "object" || value === null) { return value; } - var sanitized = {}; - for (var _i = 0, _a = Object.keys(value); _i < _a.length; _i++) { - var k = _a[_i]; + const sanitized = {}; + for (const k of Object.keys(value)) { if (allowedKeys.has(k.toLowerCase())) { sanitized[k] = accessor(value, k); } @@ -12380,267 +11551,233 @@ var Sanitizer = /** @class */ (function () { } } return sanitized; - }; - Sanitizer.prototype.sanitizeUrl = function (value) { + } + sanitizeUrl(value) { if (typeof value !== "string" || value === null) { return value; } - var urlBuilder = URLBuilder.parse(value); - var queryString = urlBuilder.getQuery(); + const urlBuilder = URLBuilder.parse(value); + const queryString = urlBuilder.getQuery(); if (!queryString) { return value; } - var query = URLQuery.parse(queryString); - for (var _i = 0, _a = query.keys(); _i < _a.length; _i++) { - var k = _a[_i]; + const query = URLQuery.parse(queryString); + for (const k of query.keys()) { if (!this.allowedQueryParameters.has(k.toLowerCase())) { query.set(k, RedactedString); } } urlBuilder.setQuery(query.toString()); return urlBuilder.toString(); - }; - return Sanitizer; -}()); + } +} // Copyright (c) Microsoft Corporation. -var errorSanitizer = new Sanitizer(); -var RestError = /** @class */ (function (_super) { - tslib.__extends(RestError, _super); - function RestError(message, code, statusCode, request, response) { - var _this = _super.call(this, message) || this; - _this.name = "RestError"; - _this.code = code; - _this.statusCode = statusCode; - _this.request = request; - _this.response = response; - Object.setPrototypeOf(_this, RestError.prototype); - return _this; +const errorSanitizer = new Sanitizer(); +class RestError extends Error { + constructor(message, code, statusCode, request, response) { + super(message); + this.name = "RestError"; + this.code = code; + this.statusCode = statusCode; + this.request = request; + this.response = response; + Object.setPrototypeOf(this, RestError.prototype); } /** * Logging method for util.inspect in Node */ - RestError.prototype[custom] = function () { - return "RestError: " + this.message + " \n " + errorSanitizer.sanitize(this); - }; - RestError.REQUEST_SEND_ERROR = "REQUEST_SEND_ERROR"; - RestError.PARSE_ERROR = "PARSE_ERROR"; - return RestError; -}(Error)); - -// Copyright (c) Microsoft Corporation. -var logger = logger$1.createClientLogger("core-http"); - -// Copyright (c) Microsoft Corporation. -var ReportTransform = /** @class */ (function (_super) { - tslib.__extends(ReportTransform, _super); - function ReportTransform(progressCallback) { - var _this = _super.call(this) || this; - _this.progressCallback = progressCallback; - _this.loadedBytes = 0; - return _this; + [custom]() { + return `RestError: ${this.message} \n ${errorSanitizer.sanitize(this)}`; } - ReportTransform.prototype._transform = function (chunk, _encoding, callback) { +} +RestError.REQUEST_SEND_ERROR = "REQUEST_SEND_ERROR"; +RestError.PARSE_ERROR = "PARSE_ERROR"; + +// Copyright (c) Microsoft Corporation. +const logger = logger$1.createClientLogger("core-http"); + +// Copyright (c) Microsoft Corporation. +class ReportTransform extends stream.Transform { + constructor(progressCallback) { + super(); + this.progressCallback = progressCallback; + this.loadedBytes = 0; + } + _transform(chunk, _encoding, callback) { this.push(chunk); this.loadedBytes += chunk.length; this.progressCallback({ loadedBytes: this.loadedBytes }); callback(undefined); - }; - return ReportTransform; -}(stream.Transform)); -var FetchHttpClient = /** @class */ (function () { - function FetchHttpClient() { } - FetchHttpClient.prototype.sendRequest = function (httpRequest) { +} +class FetchHttpClient { + async sendRequest(httpRequest) { var _a; - return tslib.__awaiter(this, void 0, void 0, function () { - var abortController$1, abortListener, formData, requestForm_1, appendFormValue, _i, _b, formKey, formValue, j, contentType, body, onUploadProgress, uploadReportStream, platformSpecificRequestInit, requestInit, operationResponse, response, headers, streaming, _c, onDownloadProgress, responseBody, downloadReportStream, length_1, error_1, fetchError, uploadStreamDone, downloadStreamDone; - var _d; - return tslib.__generator(this, function (_e) { - switch (_e.label) { - case 0: - if (!httpRequest && typeof httpRequest !== "object") { - throw new Error("'httpRequest' (WebResourceLike) cannot be null or undefined and must be of type object."); - } - abortController$1 = new abortController.AbortController(); - if (httpRequest.abortSignal) { - if (httpRequest.abortSignal.aborted) { - throw new abortController.AbortError("The operation was aborted."); - } - abortListener = function (event) { - if (event.type === "abort") { - abortController$1.abort(); - } - }; - httpRequest.abortSignal.addEventListener("abort", abortListener); - } - if (httpRequest.timeout) { - setTimeout(function () { - abortController$1.abort(); - }, httpRequest.timeout); - } - if (httpRequest.formData) { - formData = httpRequest.formData; - requestForm_1 = new FormData(); - appendFormValue = function (key, value) { - // value function probably returns a stream so we can provide a fresh stream on each retry - if (typeof value === "function") { - value = value(); - } - if (value && - Object.prototype.hasOwnProperty.call(value, "value") && - Object.prototype.hasOwnProperty.call(value, "options")) { - requestForm_1.append(key, value.value, value.options); - } - else { - requestForm_1.append(key, value); - } - }; - for (_i = 0, _b = Object.keys(formData); _i < _b.length; _i++) { - formKey = _b[_i]; - formValue = formData[formKey]; - if (Array.isArray(formValue)) { - for (j = 0; j < formValue.length; j++) { - appendFormValue(formKey, formValue[j]); - } - } - else { - appendFormValue(formKey, formValue); - } - } - httpRequest.body = requestForm_1; - httpRequest.formData = undefined; - contentType = httpRequest.headers.get("Content-Type"); - if (contentType && contentType.indexOf("multipart/form-data") !== -1) { - if (typeof requestForm_1.getBoundary === "function") { - httpRequest.headers.set("Content-Type", "multipart/form-data; boundary=" + requestForm_1.getBoundary()); - } - else { - // browser will automatically apply a suitable content-type header - httpRequest.headers.remove("Content-Type"); - } - } - } - body = httpRequest.body - ? typeof httpRequest.body === "function" - ? httpRequest.body() - : httpRequest.body - : undefined; - if (httpRequest.onUploadProgress && httpRequest.body) { - onUploadProgress = httpRequest.onUploadProgress; - uploadReportStream = new ReportTransform(onUploadProgress); - if (isReadableStream(body)) { - body.pipe(uploadReportStream); - } - else { - uploadReportStream.end(body); - } - body = uploadReportStream; - } - return [4 /*yield*/, this.prepareRequest(httpRequest)]; - case 1: - platformSpecificRequestInit = _e.sent(); - requestInit = tslib.__assign({ body: body, headers: httpRequest.headers.rawHeaders(), method: httpRequest.method, signal: abortController$1.signal, redirect: "manual" }, platformSpecificRequestInit); - _e.label = 2; - case 2: - _e.trys.push([2, 8, 9, 10]); - return [4 /*yield*/, this.fetch(httpRequest.url, requestInit)]; - case 3: - response = _e.sent(); - headers = parseHeaders(response.headers); - streaming = ((_a = httpRequest.streamResponseStatusCodes) === null || _a === void 0 ? void 0 : _a.has(response.status)) || - httpRequest.streamResponseBody; - _d = { - headers: headers, - request: httpRequest, - status: response.status, - readableStreamBody: streaming - ? response.body - : undefined - }; - if (!!streaming) return [3 /*break*/, 5]; - return [4 /*yield*/, response.text()]; - case 4: - _c = _e.sent(); - return [3 /*break*/, 6]; - case 5: - _c = undefined; - _e.label = 6; - case 6: - operationResponse = (_d.bodyAsText = _c, - _d); - onDownloadProgress = httpRequest.onDownloadProgress; - if (onDownloadProgress) { - responseBody = response.body || undefined; - if (isReadableStream(responseBody)) { - downloadReportStream = new ReportTransform(onDownloadProgress); - responseBody.pipe(downloadReportStream); - operationResponse.readableStreamBody = downloadReportStream; - } - else { - length_1 = parseInt(headers.get("Content-Length")) || undefined; - if (length_1) { - // Calling callback for non-stream response for consistency with browser - onDownloadProgress({ loadedBytes: length_1 }); - } - } - } - return [4 /*yield*/, this.processRequest(operationResponse)]; - case 7: - _e.sent(); - return [2 /*return*/, operationResponse]; - case 8: - error_1 = _e.sent(); - fetchError = error_1; - if (fetchError.code === "ENOTFOUND") { - throw new RestError(fetchError.message, RestError.REQUEST_SEND_ERROR, undefined, httpRequest); - } - else if (fetchError.type === "aborted") { - throw new abortController.AbortError("The operation was aborted."); - } - throw fetchError; - case 9: - // clean up event listener - if (httpRequest.abortSignal && abortListener) { - uploadStreamDone = Promise.resolve(); - if (isReadableStream(body)) { - uploadStreamDone = isStreamComplete(body); - } - downloadStreamDone = Promise.resolve(); - if (isReadableStream(operationResponse === null || operationResponse === void 0 ? void 0 : operationResponse.readableStreamBody)) { - downloadStreamDone = isStreamComplete(operationResponse.readableStreamBody); - } - Promise.all([uploadStreamDone, downloadStreamDone]) - .then(function () { - var _a; - (_a = httpRequest.abortSignal) === null || _a === void 0 ? void 0 : _a.removeEventListener("abort", abortListener); - return; - }) - .catch(function (e) { - logger.warning("Error when cleaning up abortListener on httpRequest", e); - }); - } - return [7 /*endfinally*/]; - case 10: return [2 /*return*/]; + if (!httpRequest && typeof httpRequest !== "object") { + throw new Error("'httpRequest' (WebResourceLike) cannot be null or undefined and must be of type object."); + } + const abortController$1 = new abortController.AbortController(); + let abortListener; + if (httpRequest.abortSignal) { + if (httpRequest.abortSignal.aborted) { + throw new abortController.AbortError("The operation was aborted."); + } + abortListener = (event) => { + if (event.type === "abort") { + abortController$1.abort(); } - }); - }); - }; - return FetchHttpClient; -}()); + }; + httpRequest.abortSignal.addEventListener("abort", abortListener); + } + if (httpRequest.timeout) { + setTimeout(() => { + abortController$1.abort(); + }, httpRequest.timeout); + } + if (httpRequest.formData) { + const formData = httpRequest.formData; + const requestForm = new FormData(); + const appendFormValue = (key, value) => { + // value function probably returns a stream so we can provide a fresh stream on each retry + if (typeof value === "function") { + value = value(); + } + if (value && + Object.prototype.hasOwnProperty.call(value, "value") && + Object.prototype.hasOwnProperty.call(value, "options")) { + requestForm.append(key, value.value, value.options); + } + else { + requestForm.append(key, value); + } + }; + for (const formKey of Object.keys(formData)) { + const formValue = formData[formKey]; + if (Array.isArray(formValue)) { + for (let j = 0; j < formValue.length; j++) { + appendFormValue(formKey, formValue[j]); + } + } + else { + appendFormValue(formKey, formValue); + } + } + httpRequest.body = requestForm; + httpRequest.formData = undefined; + const contentType = httpRequest.headers.get("Content-Type"); + if (contentType && contentType.indexOf("multipart/form-data") !== -1) { + if (typeof requestForm.getBoundary === "function") { + httpRequest.headers.set("Content-Type", `multipart/form-data; boundary=${requestForm.getBoundary()}`); + } + else { + // browser will automatically apply a suitable content-type header + httpRequest.headers.remove("Content-Type"); + } + } + } + let body = httpRequest.body + ? typeof httpRequest.body === "function" + ? httpRequest.body() + : httpRequest.body + : undefined; + if (httpRequest.onUploadProgress && httpRequest.body) { + const onUploadProgress = httpRequest.onUploadProgress; + const uploadReportStream = new ReportTransform(onUploadProgress); + if (isReadableStream(body)) { + body.pipe(uploadReportStream); + } + else { + uploadReportStream.end(body); + } + body = uploadReportStream; + } + const platformSpecificRequestInit = await this.prepareRequest(httpRequest); + const requestInit = Object.assign({ body: body, headers: httpRequest.headers.rawHeaders(), method: httpRequest.method, signal: abortController$1.signal, redirect: "manual" }, platformSpecificRequestInit); + let operationResponse; + try { + const response = await this.fetch(httpRequest.url, requestInit); + const headers = parseHeaders(response.headers); + const streaming = ((_a = httpRequest.streamResponseStatusCodes) === null || _a === void 0 ? void 0 : _a.has(response.status)) || + httpRequest.streamResponseBody; + operationResponse = { + headers: headers, + request: httpRequest, + status: response.status, + readableStreamBody: streaming + ? response.body + : undefined, + bodyAsText: !streaming ? await response.text() : undefined + }; + const onDownloadProgress = httpRequest.onDownloadProgress; + if (onDownloadProgress) { + const responseBody = response.body || undefined; + if (isReadableStream(responseBody)) { + const downloadReportStream = new ReportTransform(onDownloadProgress); + responseBody.pipe(downloadReportStream); + operationResponse.readableStreamBody = downloadReportStream; + } + else { + const length = parseInt(headers.get("Content-Length")) || undefined; + if (length) { + // Calling callback for non-stream response for consistency with browser + onDownloadProgress({ loadedBytes: length }); + } + } + } + await this.processRequest(operationResponse); + return operationResponse; + } + catch (error) { + const fetchError = error; + if (fetchError.code === "ENOTFOUND") { + throw new RestError(fetchError.message, RestError.REQUEST_SEND_ERROR, undefined, httpRequest); + } + else if (fetchError.type === "aborted") { + throw new abortController.AbortError("The operation was aborted."); + } + throw fetchError; + } + finally { + // clean up event listener + if (httpRequest.abortSignal && abortListener) { + let uploadStreamDone = Promise.resolve(); + if (isReadableStream(body)) { + uploadStreamDone = isStreamComplete(body); + } + let downloadStreamDone = Promise.resolve(); + if (isReadableStream(operationResponse === null || operationResponse === void 0 ? void 0 : operationResponse.readableStreamBody)) { + downloadStreamDone = isStreamComplete(operationResponse.readableStreamBody, abortController$1); + } + Promise.all([uploadStreamDone, downloadStreamDone]) + .then(() => { + var _a; + (_a = httpRequest.abortSignal) === null || _a === void 0 ? void 0 : _a.removeEventListener("abort", abortListener); + return; + }) + .catch((e) => { + logger.warning("Error when cleaning up abortListener on httpRequest", e); + }); + } + } + } +} function isReadableStream(body) { return body && typeof body.pipe === "function"; } -function isStreamComplete(stream) { - return new Promise(function (resolve) { - stream.on("close", resolve); - stream.on("end", resolve); - stream.on("error", resolve); +function isStreamComplete(stream, aborter) { + return new Promise((resolve) => { + stream.once("close", () => { + aborter === null || aborter === void 0 ? void 0 : aborter.abort(); + resolve(); + }); + stream.once("end", resolve); + stream.once("error", resolve); }); } function parseHeaders(headers) { - var httpHeaders = new HttpHeaders(); - headers.forEach(function (value, key) { + const httpHeaders = new HttpHeaders(); + headers.forEach((value, key) => { httpHeaders.set(key, value); }); return httpHeaders; @@ -12648,14 +11785,14 @@ function parseHeaders(headers) { // Copyright (c) Microsoft Corporation. function createProxyAgent(requestUrl, proxySettings, headers) { - var host = URLBuilder.parse(proxySettings.host).getHost(); + const host = URLBuilder.parse(proxySettings.host).getHost(); if (!host) { throw new Error("Expecting a non-empty host in proxy settings."); } if (!isValidPort(proxySettings.port)) { throw new Error("Expecting a valid port number in the range of [0, 65535] in proxy settings."); } - var tunnelOptions = { + const tunnelOptions = { proxy: { host: host, port: proxySettings.port, @@ -12663,18 +11800,21 @@ function createProxyAgent(requestUrl, proxySettings, headers) { } }; if (proxySettings.username && proxySettings.password) { - tunnelOptions.proxy.proxyAuth = proxySettings.username + ":" + proxySettings.password; + tunnelOptions.proxy.proxyAuth = `${proxySettings.username}:${proxySettings.password}`; } - var isRequestHttps = isUrlHttps(requestUrl); - var isProxyHttps = isUrlHttps(proxySettings.host); - var proxyAgent = { + else if (proxySettings.username) { + tunnelOptions.proxy.proxyAuth = `${proxySettings.username}`; + } + const isRequestHttps = isUrlHttps(requestUrl); + const isProxyHttps = isUrlHttps(proxySettings.host); + const proxyAgent = { isHttps: isRequestHttps, agent: createTunnel(isRequestHttps, isProxyHttps, tunnelOptions) }; return proxyAgent; } function isUrlHttps(url) { - var urlScheme = URLBuilder.parse(url).getScheme() || ""; + const urlScheme = URLBuilder.parse(url).getScheme() || ""; return urlScheme.toLowerCase() === "https"; } function createTunnel(isRequestHttps, isProxyHttps, tunnelOptions) { @@ -12701,41 +11841,45 @@ function isValidPort(port) { function getCachedAgent(isHttps, agentCache) { return isHttps ? agentCache.httpsAgent : agentCache.httpAgent; } -var NodeFetchHttpClient = /** @class */ (function (_super) { - tslib.__extends(NodeFetchHttpClient, _super); - function NodeFetchHttpClient() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.proxyAgents = {}; - _this.keepAliveAgents = {}; - _this.cookieJar = new tough.CookieJar(undefined, { looseMode: true }); - return _this; +class NodeFetchHttpClient extends FetchHttpClient { + constructor() { + super(...arguments); + // a mapping of proxy settings string `${host}:${port}:${username}:${password}` to agent + this.proxyAgentMap = new Map(); + this.keepAliveAgents = {}; + this.cookieJar = new tough.CookieJar(undefined, { looseMode: true }); } - NodeFetchHttpClient.prototype.getOrCreateAgent = function (httpRequest) { - var isHttps = isUrlHttps(httpRequest.url); + getOrCreateAgent(httpRequest) { + var _a; + const isHttps = isUrlHttps(httpRequest.url); // At the moment, proxy settings and keepAlive are mutually // exclusive because the 'tunnel' library currently lacks the // ability to create a proxy with keepAlive turned on. if (httpRequest.proxySettings) { - var agent = getCachedAgent(isHttps, this.proxyAgents); + const { host, port, username, password } = httpRequest.proxySettings; + const key = `${host}:${port}:${username}:${password}`; + const proxyAgents = (_a = this.proxyAgentMap.get(key)) !== null && _a !== void 0 ? _a : {}; + let agent = getCachedAgent(isHttps, proxyAgents); if (agent) { return agent; } - var tunnel = createProxyAgent(httpRequest.url, httpRequest.proxySettings, httpRequest.headers); + const tunnel = createProxyAgent(httpRequest.url, httpRequest.proxySettings, httpRequest.headers); agent = tunnel.agent; if (tunnel.isHttps) { - this.proxyAgents.httpsAgent = tunnel.agent; + proxyAgents.httpsAgent = tunnel.agent; } else { - this.proxyAgents.httpAgent = tunnel.agent; + proxyAgents.httpAgent = tunnel.agent; } + this.proxyAgentMap.set(key, proxyAgents); return agent; } else if (httpRequest.keepAlive) { - var agent = getCachedAgent(isHttps, this.keepAliveAgents); + let agent = getCachedAgent(isHttps, this.keepAliveAgents); if (agent) { return agent; } - var agentOptions = { + const agentOptions = { keepAlive: httpRequest.keepAlive }; if (isHttps) { @@ -12749,77 +11893,49 @@ var NodeFetchHttpClient = /** @class */ (function (_super) { else { return isHttps ? https.globalAgent : http.globalAgent; } - }; + } // eslint-disable-next-line @azure/azure-sdk/ts-apisurface-standardized-verbs - NodeFetchHttpClient.prototype.fetch = function (input, init) { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - return [2 /*return*/, node_fetch(input, init)]; + async fetch(input, init) { + return node_fetch(input, init); + } + async prepareRequest(httpRequest) { + const requestInit = {}; + if (this.cookieJar && !httpRequest.headers.get("Cookie")) { + const cookieString = await new Promise((resolve, reject) => { + this.cookieJar.getCookieString(httpRequest.url, (err, cookie) => { + if (err) { + reject(err); + } + else { + resolve(cookie); + } + }); }); - }); - }; - NodeFetchHttpClient.prototype.prepareRequest = function (httpRequest) { - return tslib.__awaiter(this, void 0, void 0, function () { - var requestInit, cookieString; - var _this = this; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - requestInit = {}; - if (!(this.cookieJar && !httpRequest.headers.get("Cookie"))) return [3 /*break*/, 2]; - return [4 /*yield*/, new Promise(function (resolve, reject) { - _this.cookieJar.getCookieString(httpRequest.url, function (err, cookie) { - if (err) { - reject(err); - } - else { - resolve(cookie); - } - }); - })]; - case 1: - cookieString = _a.sent(); - httpRequest.headers.set("Cookie", cookieString); - _a.label = 2; - case 2: - // Set the http(s) agent - requestInit.agent = this.getOrCreateAgent(httpRequest); - requestInit.compress = httpRequest.decompressResponse; - return [2 /*return*/, requestInit]; - } - }); - }); - }; - NodeFetchHttpClient.prototype.processRequest = function (operationResponse) { - return tslib.__awaiter(this, void 0, void 0, function () { - var setCookieHeader_1; - var _this = this; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!this.cookieJar) return [3 /*break*/, 2]; - setCookieHeader_1 = operationResponse.headers.get("Set-Cookie"); - if (!(setCookieHeader_1 !== undefined)) return [3 /*break*/, 2]; - return [4 /*yield*/, new Promise(function (resolve, reject) { - _this.cookieJar.setCookie(setCookieHeader_1, operationResponse.request.url, { ignoreError: true }, function (err) { - if (err) { - reject(err); - } - else { - resolve(); - } - }); - })]; - case 1: - _a.sent(); - _a.label = 2; - case 2: return [2 /*return*/]; - } - }); - }); - }; - return NodeFetchHttpClient; -}(FetchHttpClient)); + httpRequest.headers.set("Cookie", cookieString); + } + // Set the http(s) agent + requestInit.agent = this.getOrCreateAgent(httpRequest); + requestInit.compress = httpRequest.decompressResponse; + return requestInit; + } + async processRequest(operationResponse) { + if (this.cookieJar) { + const setCookieHeader = operationResponse.headers.get("Set-Cookie"); + if (setCookieHeader !== undefined) { + await new Promise((resolve, reject) => { + this.cookieJar.setCookie(setCookieHeader, operationResponse.request.url, { ignoreError: true }, (err) => { + if (err) { + reject(err); + } + else { + resolve(); + } + }); + }); + } + } + } +} // Copyright (c) Microsoft Corporation. (function (HttpPipelineLogLevel) { @@ -12847,21 +11963,23 @@ var NodeFetchHttpClient = /** @class */ (function (_super) { * @param opts - OperationOptions object to convert to RequestOptionsBase */ function operationOptionsToRequestOptionsBase(opts) { - var requestOptions = opts.requestOptions, tracingOptions = opts.tracingOptions, additionalOptions = tslib.__rest(opts, ["requestOptions", "tracingOptions"]); - var result = additionalOptions; + var _a; + const { requestOptions, tracingOptions } = opts, additionalOptions = tslib.__rest(opts, ["requestOptions", "tracingOptions"]); + let result = additionalOptions; if (requestOptions) { - result = tslib.__assign(tslib.__assign({}, result), requestOptions); + result = Object.assign(Object.assign({}, result), requestOptions); } if (tracingOptions) { - result.spanOptions = tracingOptions.spanOptions; result.tracingContext = tracingOptions.tracingContext; + // By passing spanOptions if they exist at runtime, we're backwards compatible with @azure/core-tracing@preview.13 and earlier. + result.spanOptions = (_a = tracingOptions) === null || _a === void 0 ? void 0 : _a.spanOptions; } return result; } // Copyright (c) Microsoft Corporation. -var BaseRequestPolicy = /** @class */ (function () { - function BaseRequestPolicy(_nextPolicy, _options) { +class BaseRequestPolicy { + constructor(_nextPolicy, _options) { this._nextPolicy = _nextPolicy; this._options = _options; } @@ -12870,25 +11988,24 @@ var BaseRequestPolicy = /** @class */ (function () { * @param logLevel - The log level of the log that will be logged. * @returns Whether or not a log with the provided log level should be logged. */ - BaseRequestPolicy.prototype.shouldLog = function (logLevel) { + shouldLog(logLevel) { return this._options.shouldLog(logLevel); - }; + } /** * Attempt to log the provided message to the provided logger. If no logger was provided or if * the log level does not meat the logger's threshold, then nothing will be logged. * @param logLevel - The log level of this log. * @param message - The message of this log. */ - BaseRequestPolicy.prototype.log = function (logLevel, message) { + log(logLevel, message) { this._options.log(logLevel, message); - }; - return BaseRequestPolicy; -}()); + } +} /** * Optional properties that can be used when creating a RequestPolicy. */ -var RequestPolicyOptions = /** @class */ (function () { - function RequestPolicyOptions(_logger) { +class RequestPolicyOptions { + constructor(_logger) { this._logger = _logger; } /** @@ -12896,104 +12013,89 @@ var RequestPolicyOptions = /** @class */ (function () { * @param logLevel - The log level of the log that will be logged. * @returns Whether or not a log with the provided log level should be logged. */ - RequestPolicyOptions.prototype.shouldLog = function (logLevel) { + shouldLog(logLevel) { return (!!this._logger && logLevel !== exports.HttpPipelineLogLevel.OFF && logLevel <= this._logger.minimumLogLevel); - }; + } /** * Attempt to log the provided message to the provided logger. If no logger was provided or if * the log level does not meet the logger's threshold, then nothing will be logged. * @param logLevel - The log level of this log. * @param message - The message of this log. */ - RequestPolicyOptions.prototype.log = function (logLevel, message) { + log(logLevel, message) { if (this._logger && this.shouldLog(logLevel)) { this._logger.log(logLevel, message); } - }; - return RequestPolicyOptions; -}()); + } +} // Copyright (c) Microsoft Corporation. -function logPolicy(loggingOptions) { - if (loggingOptions === void 0) { loggingOptions = {}; } +function logPolicy(loggingOptions = {}) { return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new LogPolicy(nextPolicy, options, loggingOptions); } }; } -var LogPolicy = /** @class */ (function (_super) { - tslib.__extends(LogPolicy, _super); - function LogPolicy(nextPolicy, options, _a) { - var _b = _a === void 0 ? {} : _a, _c = _b.logger, logger$1 = _c === void 0 ? logger.info : _c, _d = _b.allowedHeaderNames, allowedHeaderNames = _d === void 0 ? [] : _d, _e = _b.allowedQueryParameters, allowedQueryParameters = _e === void 0 ? [] : _e; - var _this = _super.call(this, nextPolicy, options) || this; - _this.logger = logger$1; - _this.sanitizer = new Sanitizer({ allowedHeaderNames: allowedHeaderNames, allowedQueryParameters: allowedQueryParameters }); - return _this; +class LogPolicy extends BaseRequestPolicy { + constructor(nextPolicy, options, { logger: logger$1 = logger.info, allowedHeaderNames = [], allowedQueryParameters = [] } = {}) { + super(nextPolicy, options); + this.logger = logger$1; + this.sanitizer = new Sanitizer({ allowedHeaderNames, allowedQueryParameters }); } - Object.defineProperty(LogPolicy.prototype, "allowedHeaderNames", { - /** - * Header names whose values will be logged when logging is enabled. Defaults to - * Date, traceparent, x-ms-client-request-id, and x-ms-request id. Any headers - * specified in this field will be added to that list. Any other values will - * be written to logs as "REDACTED". - * @deprecated Pass these into the constructor instead. - */ - get: function () { - return this.sanitizer.allowedHeaderNames; - }, - /** - * Header names whose values will be logged when logging is enabled. Defaults to - * Date, traceparent, x-ms-client-request-id, and x-ms-request id. Any headers - * specified in this field will be added to that list. Any other values will - * be written to logs as "REDACTED". - * @deprecated Pass these into the constructor instead. - */ - set: function (allowedHeaderNames) { - this.sanitizer.allowedHeaderNames = allowedHeaderNames; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(LogPolicy.prototype, "allowedQueryParameters", { - /** - * Query string names whose values will be logged when logging is enabled. By default no - * query string values are logged. - * @deprecated Pass these into the constructor instead. - */ - get: function () { - return this.sanitizer.allowedQueryParameters; - }, - /** - * Query string names whose values will be logged when logging is enabled. By default no - * query string values are logged. - * @deprecated Pass these into the constructor instead. - */ - set: function (allowedQueryParameters) { - this.sanitizer.allowedQueryParameters = allowedQueryParameters; - }, - enumerable: false, - configurable: true - }); - LogPolicy.prototype.sendRequest = function (request) { - var _this = this; + /** + * Header names whose values will be logged when logging is enabled. Defaults to + * Date, traceparent, x-ms-client-request-id, and x-ms-request id. Any headers + * specified in this field will be added to that list. Any other values will + * be written to logs as "REDACTED". + * @deprecated Pass these into the constructor instead. + */ + get allowedHeaderNames() { + return this.sanitizer.allowedHeaderNames; + } + /** + * Header names whose values will be logged when logging is enabled. Defaults to + * Date, traceparent, x-ms-client-request-id, and x-ms-request id. Any headers + * specified in this field will be added to that list. Any other values will + * be written to logs as "REDACTED". + * @deprecated Pass these into the constructor instead. + */ + set allowedHeaderNames(allowedHeaderNames) { + this.sanitizer.allowedHeaderNames = allowedHeaderNames; + } + /** + * Query string names whose values will be logged when logging is enabled. By default no + * query string values are logged. + * @deprecated Pass these into the constructor instead. + */ + get allowedQueryParameters() { + return this.sanitizer.allowedQueryParameters; + } + /** + * Query string names whose values will be logged when logging is enabled. By default no + * query string values are logged. + * @deprecated Pass these into the constructor instead. + */ + set allowedQueryParameters(allowedQueryParameters) { + this.sanitizer.allowedQueryParameters = allowedQueryParameters; + } + sendRequest(request) { if (!this.logger.enabled) return this._nextPolicy.sendRequest(request); this.logRequest(request); - return this._nextPolicy.sendRequest(request).then(function (response) { return _this.logResponse(response); }); - }; - LogPolicy.prototype.logRequest = function (request) { - this.logger("Request: " + this.sanitizer.sanitize(request)); - }; - LogPolicy.prototype.logResponse = function (response) { - this.logger("Response status code: " + response.status); - this.logger("Headers: " + this.sanitizer.sanitize(response.headers)); + return this._nextPolicy.sendRequest(request).then((response) => this.logResponse(response)); + } + logRequest(request) { + this.logger(`Request: ${this.sanitizer.sanitize(request)}`); + } + logResponse(response) { + this.logger(`Response status code: ${response.status}`); + this.logger(`Headers: ${this.sanitizer.sanitize(response.headers)}`); return response; - }; - return LogPolicy; -}(BaseRequestPolicy)); + } +} // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. @@ -13006,7 +12108,7 @@ function getPathStringFromParameter(parameter) { return getPathStringFromParameterPath(parameter.parameterPath, parameter.mapper); } function getPathStringFromParameterPath(parameterPath, mapper) { - var result; + let result; if (typeof parameterPath === "string") { result = parameterPath; } @@ -13025,9 +12127,9 @@ function getPathStringFromParameterPath(parameterPath, mapper) { * @internal */ function getStreamResponseStatusCodes(operationSpec) { - var result = new Set(); - for (var statusCode in operationSpec.responses) { - var operationResponse = operationSpec.responses[statusCode]; + const result = new Set(); + for (const statusCode in operationSpec.responses) { + const operationResponse = operationSpec.responses[statusCode]; if (operationResponse.bodyMapper && operationResponse.bodyMapper.type.name === MapperType.Stream) { result.add(Number(statusCode)); @@ -13041,7 +12143,7 @@ function getStreamResponseStatusCodes(operationSpec) { // by the xm2js library is mutable. See https://github.com/Leonidas-from-XIV/node-xml2js/issues/536 // By creating a new copy of the settings each time we instantiate the parser, // we are safeguarding against the possibility of the default settings being mutated elsewhere unintentionally. -var xml2jsDefaultOptionsV2 = { +const xml2jsDefaultOptionsV2 = { explicitCharkey: false, trim: false, normalize: false, @@ -13082,10 +12184,10 @@ var xml2jsDefaultOptionsV2 = { cdata: false }; // The xml2js settings for general XML parsing operations. -var xml2jsParserSettings = Object.assign({}, xml2jsDefaultOptionsV2); +const xml2jsParserSettings = Object.assign({}, xml2jsDefaultOptionsV2); xml2jsParserSettings.explicitArray = false; // The xml2js settings for general XML building operations. -var xml2jsBuilderSettings = Object.assign({}, xml2jsDefaultOptionsV2); +const xml2jsBuilderSettings = Object.assign({}, xml2jsDefaultOptionsV2); xml2jsBuilderSettings.explicitArray = false; xml2jsBuilderSettings.renderOpts = { pretty: false @@ -13095,12 +12197,11 @@ xml2jsBuilderSettings.renderOpts = { * @param obj - JSON object to be converted into XML string * @param opts - Options that govern the parsing of given JSON object */ -function stringifyXML(obj, opts) { +function stringifyXML(obj, opts = {}) { var _a; - if (opts === void 0) { opts = {}; } xml2jsBuilderSettings.rootName = opts.rootName; xml2jsBuilderSettings.charkey = (_a = opts.xmlCharKey) !== null && _a !== void 0 ? _a : XML_CHARKEY; - var builder = new xml2js.Builder(xml2jsBuilderSettings); + const builder = new xml2js.Builder(xml2jsBuilderSettings); return builder.buildObject(obj); } /** @@ -13108,18 +12209,17 @@ function stringifyXML(obj, opts) { * @param str - String containing the XML content to be parsed into JSON * @param opts - Options that govern the parsing of given xml string */ -function parseXML(str, opts) { +function parseXML(str, opts = {}) { var _a; - if (opts === void 0) { opts = {}; } xml2jsParserSettings.explicitRoot = !!opts.includeRoot; xml2jsParserSettings.charkey = (_a = opts.xmlCharKey) !== null && _a !== void 0 ? _a : XML_CHARKEY; - var xmlParser = new xml2js.Parser(xml2jsParserSettings); - return new Promise(function (resolve, reject) { + const xmlParser = new xml2js.Parser(xml2jsParserSettings); + return new Promise((resolve, reject) => { if (!str) { reject(new Error("Document is empty")); } else { - xmlParser.parseString(str, function (err, res) { + xmlParser.parseString(str, (err, res) => { if (err) { reject(err); } @@ -13138,14 +12238,14 @@ function parseXML(str, opts) { */ function deserializationPolicy(deserializationContentTypes, parsingOptions) { return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new DeserializationPolicy(nextPolicy, options, deserializationContentTypes, parsingOptions); } }; } -var defaultJsonContentTypes = ["application/json", "text/json"]; -var defaultXmlContentTypes = ["application/xml", "application/atom+xml"]; -var DefaultDeserializationOptions = { +const defaultJsonContentTypes = ["application/json", "text/json"]; +const defaultXmlContentTypes = ["application/xml", "application/atom+xml"]; +const DefaultDeserializationOptions = { expectedContentTypes: { json: defaultJsonContentTypes, xml: defaultXmlContentTypes @@ -13155,39 +12255,28 @@ var DefaultDeserializationOptions = { * A RequestPolicy that will deserialize HTTP response bodies and headers as they pass through the * HTTP pipeline. */ -var DeserializationPolicy = /** @class */ (function (_super) { - tslib.__extends(DeserializationPolicy, _super); - function DeserializationPolicy(nextPolicy, requestPolicyOptions, deserializationContentTypes, parsingOptions) { - if (parsingOptions === void 0) { parsingOptions = {}; } +class DeserializationPolicy extends BaseRequestPolicy { + constructor(nextPolicy, requestPolicyOptions, deserializationContentTypes, parsingOptions = {}) { var _a; - var _this = _super.call(this, nextPolicy, requestPolicyOptions) || this; - _this.jsonContentTypes = + super(nextPolicy, requestPolicyOptions); + this.jsonContentTypes = (deserializationContentTypes && deserializationContentTypes.json) || defaultJsonContentTypes; - _this.xmlContentTypes = + this.xmlContentTypes = (deserializationContentTypes && deserializationContentTypes.xml) || defaultXmlContentTypes; - _this.xmlCharKey = (_a = parsingOptions.xmlCharKey) !== null && _a !== void 0 ? _a : XML_CHARKEY; - return _this; + this.xmlCharKey = (_a = parsingOptions.xmlCharKey) !== null && _a !== void 0 ? _a : XML_CHARKEY; } - DeserializationPolicy.prototype.sendRequest = function (request) { - return tslib.__awaiter(this, void 0, void 0, function () { - var _this = this; - return tslib.__generator(this, function (_a) { - return [2 /*return*/, this._nextPolicy.sendRequest(request).then(function (response) { - return deserializeResponseBody(_this.jsonContentTypes, _this.xmlContentTypes, response, { - xmlCharKey: _this.xmlCharKey - }); - })]; - }); - }); - }; - return DeserializationPolicy; -}(BaseRequestPolicy)); + async sendRequest(request) { + return this._nextPolicy.sendRequest(request).then((response) => deserializeResponseBody(this.jsonContentTypes, this.xmlContentTypes, response, { + xmlCharKey: this.xmlCharKey + })); + } +} function getOperationResponse(parsedResponse) { - var result; - var request = parsedResponse.request; - var operationSpec = request.operationSpec; + let result; + const request = parsedResponse.request; + const operationSpec = request.operationSpec; if (operationSpec) { - var operationResponseGetter = request.operationResponseGetter; + const operationResponseGetter = request.operationResponseGetter; if (!operationResponseGetter) { result = operationSpec.responses[parsedResponse.status]; } @@ -13198,8 +12287,8 @@ function getOperationResponse(parsedResponse) { return result; } function shouldDeserializeResponse(parsedResponse) { - var shouldDeserialize = parsedResponse.request.shouldDeserialize; - var result; + const shouldDeserialize = parsedResponse.request.shouldDeserialize; + let result; if (shouldDeserialize === undefined) { result = true; } @@ -13211,24 +12300,23 @@ function shouldDeserializeResponse(parsedResponse) { } return result; } -function deserializeResponseBody(jsonContentTypes, xmlContentTypes, response, options) { +function deserializeResponseBody(jsonContentTypes, xmlContentTypes, response, options = {}) { var _a, _b, _c; - if (options === void 0) { options = {}; } - var updatedOptions = { + const updatedOptions = { rootName: (_a = options.rootName) !== null && _a !== void 0 ? _a : "", includeRoot: (_b = options.includeRoot) !== null && _b !== void 0 ? _b : false, xmlCharKey: (_c = options.xmlCharKey) !== null && _c !== void 0 ? _c : XML_CHARKEY }; - return parse(jsonContentTypes, xmlContentTypes, response, updatedOptions).then(function (parsedResponse) { + return parse(jsonContentTypes, xmlContentTypes, response, updatedOptions).then((parsedResponse) => { if (!shouldDeserializeResponse(parsedResponse)) { return parsedResponse; } - var operationSpec = parsedResponse.request.operationSpec; + const operationSpec = parsedResponse.request.operationSpec; if (!operationSpec || !operationSpec.responses) { return parsedResponse; } - var responseSpec = getOperationResponse(parsedResponse); - var _a = handleErrorResponse(parsedResponse, operationSpec, responseSpec), error = _a.error, shouldReturnResponse = _a.shouldReturnResponse; + const responseSpec = getOperationResponse(parsedResponse); + const { error, shouldReturnResponse } = handleErrorResponse(parsedResponse, operationSpec, responseSpec); if (error) { throw error; } @@ -13239,7 +12327,7 @@ function deserializeResponseBody(jsonContentTypes, xmlContentTypes, response, op // use it to deserialize the response. if (responseSpec) { if (responseSpec.bodyMapper) { - var valueToDeserialize = parsedResponse.parsedBody; + let valueToDeserialize = parsedResponse.parsedBody; if (operationSpec.isXML && responseSpec.bodyMapper.type.name === MapperType.Sequence) { valueToDeserialize = typeof valueToDeserialize === "object" @@ -13250,7 +12338,7 @@ function deserializeResponseBody(jsonContentTypes, xmlContentTypes, response, op parsedResponse.parsedBody = operationSpec.serializer.deserialize(responseSpec.bodyMapper, valueToDeserialize, "operationRes.parsedBody", options); } catch (innerError) { - var restError = new RestError("Error " + innerError + " occurred in deserializing the responseBody - " + parsedResponse.bodyAsText, undefined, parsedResponse.status, parsedResponse.request, parsedResponse); + const restError = new RestError(`Error ${innerError} occurred in deserializing the responseBody - ${parsedResponse.bodyAsText}`, undefined, parsedResponse.status, parsedResponse.request, parsedResponse); throw restError; } } @@ -13266,14 +12354,14 @@ function deserializeResponseBody(jsonContentTypes, xmlContentTypes, response, op }); } function isOperationSpecEmpty(operationSpec) { - var expectedStatusCodes = Object.keys(operationSpec.responses); + const expectedStatusCodes = Object.keys(operationSpec.responses); return (expectedStatusCodes.length === 0 || (expectedStatusCodes.length === 1 && expectedStatusCodes[0] === "default")); } function handleErrorResponse(parsedResponse, operationSpec, responseSpec) { var _a; - var isSuccessByStatus = 200 <= parsedResponse.status && parsedResponse.status < 300; - var isExpectedStatusCode = isOperationSpecEmpty(operationSpec) + const isSuccessByStatus = 200 <= parsedResponse.status && parsedResponse.status < 300; + const isExpectedStatusCode = isOperationSpecEmpty(operationSpec) ? isSuccessByStatus : !!responseSpec; if (isExpectedStatusCode) { @@ -13286,35 +12374,35 @@ function handleErrorResponse(parsedResponse, operationSpec, responseSpec) { return { error: null, shouldReturnResponse: false }; } } - var errorResponseSpec = responseSpec !== null && responseSpec !== void 0 ? responseSpec : operationSpec.responses.default; - var streaming = ((_a = parsedResponse.request.streamResponseStatusCodes) === null || _a === void 0 ? void 0 : _a.has(parsedResponse.status)) || + const errorResponseSpec = responseSpec !== null && responseSpec !== void 0 ? responseSpec : operationSpec.responses.default; + const streaming = ((_a = parsedResponse.request.streamResponseStatusCodes) === null || _a === void 0 ? void 0 : _a.has(parsedResponse.status)) || parsedResponse.request.streamResponseBody; - var initialErrorMessage = streaming - ? "Unexpected status code: " + parsedResponse.status + const initialErrorMessage = streaming + ? `Unexpected status code: ${parsedResponse.status}` : parsedResponse.bodyAsText; - var error = new RestError(initialErrorMessage, undefined, parsedResponse.status, parsedResponse.request, parsedResponse); + const error = new RestError(initialErrorMessage, undefined, parsedResponse.status, parsedResponse.request, parsedResponse); // If the item failed but there's no error spec or default spec to deserialize the error, // we should fail so we just throw the parsed response if (!errorResponseSpec) { throw error; } - var defaultBodyMapper = errorResponseSpec.bodyMapper; - var defaultHeadersMapper = errorResponseSpec.headersMapper; + const defaultBodyMapper = errorResponseSpec.bodyMapper; + const defaultHeadersMapper = errorResponseSpec.headersMapper; try { // If error response has a body, try to deserialize it using default body mapper. // Then try to extract error code & message from it if (parsedResponse.parsedBody) { - var parsedBody = parsedResponse.parsedBody; - var parsedError = void 0; + const parsedBody = parsedResponse.parsedBody; + let parsedError; if (defaultBodyMapper) { - var valueToDeserialize = parsedBody; + let valueToDeserialize = parsedBody; if (operationSpec.isXML && defaultBodyMapper.type.name === MapperType.Sequence) { valueToDeserialize = typeof parsedBody === "object" ? parsedBody[defaultBodyMapper.xmlElementName] : []; } parsedError = operationSpec.serializer.deserialize(defaultBodyMapper, valueToDeserialize, "error.response.parsedBody"); } - var internalError = parsedBody.error || parsedError || parsedBody; + const internalError = parsedBody.error || parsedError || parsedBody; error.code = internalError.code; if (internalError.message) { error.message = internalError.message; @@ -13329,36 +12417,36 @@ function handleErrorResponse(parsedResponse, operationSpec, responseSpec) { } } catch (defaultError) { - error.message = "Error \"" + defaultError.message + "\" occurred in deserializing the responseBody - \"" + parsedResponse.bodyAsText + "\" for the default response."; + error.message = `Error "${defaultError.message}" occurred in deserializing the responseBody - "${parsedResponse.bodyAsText}" for the default response.`; } - return { error: error, shouldReturnResponse: false }; + return { error, shouldReturnResponse: false }; } function parse(jsonContentTypes, xmlContentTypes, operationResponse, opts) { var _a; - var errorHandler = function (err) { - var msg = "Error \"" + err + "\" occurred while parsing the response body - " + operationResponse.bodyAsText + "."; - var errCode = err.code || RestError.PARSE_ERROR; - var e = new RestError(msg, errCode, operationResponse.status, operationResponse.request, operationResponse); + const errorHandler = (err) => { + const msg = `Error "${err}" occurred while parsing the response body - ${operationResponse.bodyAsText}.`; + const errCode = err.code || RestError.PARSE_ERROR; + const e = new RestError(msg, errCode, operationResponse.status, operationResponse.request, operationResponse); return Promise.reject(e); }; - var streaming = ((_a = operationResponse.request.streamResponseStatusCodes) === null || _a === void 0 ? void 0 : _a.has(operationResponse.status)) || + const streaming = ((_a = operationResponse.request.streamResponseStatusCodes) === null || _a === void 0 ? void 0 : _a.has(operationResponse.status)) || operationResponse.request.streamResponseBody; if (!streaming && operationResponse.bodyAsText) { - var text_1 = operationResponse.bodyAsText; - var contentType = operationResponse.headers.get("Content-Type") || ""; - var contentComponents = !contentType + const text = operationResponse.bodyAsText; + const contentType = operationResponse.headers.get("Content-Type") || ""; + const contentComponents = !contentType ? [] - : contentType.split(";").map(function (component) { return component.toLowerCase(); }); + : contentType.split(";").map((component) => component.toLowerCase()); if (contentComponents.length === 0 || - contentComponents.some(function (component) { return jsonContentTypes.indexOf(component) !== -1; })) { - return new Promise(function (resolve) { - operationResponse.parsedBody = JSON.parse(text_1); + contentComponents.some((component) => jsonContentTypes.indexOf(component) !== -1)) { + return new Promise((resolve) => { + operationResponse.parsedBody = JSON.parse(text); resolve(operationResponse); }).catch(errorHandler); } - else if (contentComponents.some(function (component) { return xmlContentTypes.indexOf(component) !== -1; })) { - return parseXML(text_1, opts) - .then(function (body) { + else if (contentComponents.some((component) => xmlContentTypes.indexOf(component) !== -1)) { + return parseXML(text, opts) + .then((body) => { operationResponse.parsedBody = body; return operationResponse; }) @@ -13370,11 +12458,11 @@ function parse(jsonContentTypes, xmlContentTypes, operationResponse, opts) { // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -var DEFAULT_CLIENT_RETRY_COUNT = 3; +const DEFAULT_CLIENT_RETRY_COUNT = 3; // intervals are in ms -var DEFAULT_CLIENT_RETRY_INTERVAL = 1000 * 30; -var DEFAULT_CLIENT_MAX_RETRY_INTERVAL = 1000 * 90; -var DEFAULT_CLIENT_MIN_RETRY_INTERVAL = 1000 * 3; +const DEFAULT_CLIENT_RETRY_INTERVAL = 1000 * 30; +const DEFAULT_CLIENT_MAX_RETRY_INTERVAL = 1000 * 90; +const DEFAULT_CLIENT_MIN_RETRY_INTERVAL = 1000 * 3; function isNumber(n) { return typeof n === "number"; } @@ -13401,8 +12489,7 @@ function shouldRetry(retryLimit, predicate, retryData, response, error) { * @param retryData - The retry data. * @param err - The operation"s error, if any. */ -function updateRetryData(retryOptions, retryData, err) { - if (retryData === void 0) { retryData = { retryCount: 0, retryInterval: 0 }; } +function updateRetryData(retryOptions, retryData = { retryCount: 0, retryInterval: 0 }, err) { if (err) { if (retryData.error) { err.innerError = retryData.error; @@ -13412,18 +12499,72 @@ function updateRetryData(retryOptions, retryData, err) { // Adjust retry count retryData.retryCount++; // Adjust retry interval - var incrementDelta = Math.pow(2, retryData.retryCount - 1) - 1; - var boundedRandDelta = retryOptions.retryInterval * 0.8 + + let incrementDelta = Math.pow(2, retryData.retryCount - 1) - 1; + const boundedRandDelta = retryOptions.retryInterval * 0.8 + Math.floor(Math.random() * (retryOptions.retryInterval * 0.4)); incrementDelta *= boundedRandDelta; retryData.retryInterval = Math.min(retryOptions.minRetryInterval + incrementDelta, retryOptions.maxRetryInterval); return retryData; } +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +/** + * Helper TypeGuard that checks if the value is not null or undefined. + * @param thing - Anything + * @internal + */ +function isDefined(thing) { + return typeof thing !== "undefined" && thing !== null; +} + +// Copyright (c) Microsoft Corporation. +const StandardAbortMessage = "The operation was aborted."; +/** + * A wrapper for setTimeout that resolves a promise after delayInMs milliseconds. + * @param delayInMs - The number of milliseconds to be delayed. + * @param value - The value to be resolved with after a timeout of t milliseconds. + * @param options - The options for delay - currently abort options + * @param abortSignal - The abortSignal associated with containing operation. + * @param abortErrorMsg - The abort error message associated with containing operation. + * @returns - Resolved promise + */ +function delay(delayInMs, value, options) { + return new Promise((resolve, reject) => { + let timer = undefined; + let onAborted = undefined; + const rejectOnAbort = () => { + return reject(new abortController.AbortError((options === null || options === void 0 ? void 0 : options.abortErrorMsg) ? options === null || options === void 0 ? void 0 : options.abortErrorMsg : StandardAbortMessage)); + }; + const removeListeners = () => { + if ((options === null || options === void 0 ? void 0 : options.abortSignal) && onAborted) { + options.abortSignal.removeEventListener("abort", onAborted); + } + }; + onAborted = () => { + if (isDefined(timer)) { + clearTimeout(timer); + } + removeListeners(); + return rejectOnAbort(); + }; + if ((options === null || options === void 0 ? void 0 : options.abortSignal) && options.abortSignal.aborted) { + return rejectOnAbort(); + } + timer = setTimeout(() => { + removeListeners(); + resolve(value); + }, delayInMs); + if (options === null || options === void 0 ? void 0 : options.abortSignal) { + options.abortSignal.addEventListener("abort", onAborted); + } + }); +} + // Copyright (c) Microsoft Corporation. function exponentialRetryPolicy(retryCount, retryInterval, maxRetryInterval) { return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new ExponentialRetryPolicy(nextPolicy, options, retryCount, retryInterval, maxRetryInterval); } }; @@ -13431,7 +12572,7 @@ function exponentialRetryPolicy(retryCount, retryInterval, maxRetryInterval) { (function (RetryMode) { RetryMode[RetryMode["Exponential"] = 0] = "Exponential"; })(exports.RetryMode || (exports.RetryMode = {})); -var DefaultRetryOptions = { +const DefaultRetryOptions = { maxRetries: DEFAULT_CLIENT_RETRY_COUNT, retryDelayInMs: DEFAULT_CLIENT_RETRY_INTERVAL, maxRetryDelayInMs: DEFAULT_CLIENT_MAX_RETRY_INTERVAL @@ -13439,8 +12580,7 @@ var DefaultRetryOptions = { /** * Instantiates a new "ExponentialRetryPolicyFilter" instance. */ -var ExponentialRetryPolicy = /** @class */ (function (_super) { - tslib.__extends(ExponentialRetryPolicy, _super); +class ExponentialRetryPolicy extends BaseRequestPolicy { /** * @param nextPolicy - The next RequestPolicy in the pipeline chain. * @param options - The options for this RequestPolicy. @@ -13449,217 +12589,188 @@ var ExponentialRetryPolicy = /** @class */ (function (_super) { * @param minRetryInterval - The minimum retry interval, in milliseconds. * @param maxRetryInterval - The maximum retry interval, in milliseconds. */ - function ExponentialRetryPolicy(nextPolicy, options, retryCount, retryInterval, maxRetryInterval) { - var _this = _super.call(this, nextPolicy, options) || this; - _this.retryCount = isNumber(retryCount) ? retryCount : DEFAULT_CLIENT_RETRY_COUNT; - _this.retryInterval = isNumber(retryInterval) ? retryInterval : DEFAULT_CLIENT_RETRY_INTERVAL; - _this.maxRetryInterval = isNumber(maxRetryInterval) + constructor(nextPolicy, options, retryCount, retryInterval, maxRetryInterval) { + super(nextPolicy, options); + this.retryCount = isNumber(retryCount) ? retryCount : DEFAULT_CLIENT_RETRY_COUNT; + this.retryInterval = isNumber(retryInterval) ? retryInterval : DEFAULT_CLIENT_RETRY_INTERVAL; + this.maxRetryInterval = isNumber(maxRetryInterval) ? maxRetryInterval : DEFAULT_CLIENT_MAX_RETRY_INTERVAL; - return _this; } - ExponentialRetryPolicy.prototype.sendRequest = function (request) { - var _this = this; + sendRequest(request) { return this._nextPolicy .sendRequest(request.clone()) - .then(function (response) { return retry(_this, request, response); }) - .catch(function (error) { return retry(_this, request, error.response, undefined, error); }); - }; - return ExponentialRetryPolicy; -}(BaseRequestPolicy)); -function retry(policy, request, response, retryData, requestError) { - return tslib.__awaiter(this, void 0, void 0, function () { - function shouldPolicyRetry(responseParam) { - var statusCode = responseParam === null || responseParam === void 0 ? void 0 : responseParam.status; - if (statusCode === undefined || - (statusCode < 500 && statusCode !== 408) || - statusCode === 501 || - statusCode === 505) { - return false; - } - return true; + .then((response) => retry(this, request, response)) + .catch((error) => retry(this, request, error.response, undefined, error)); + } +} +async function retry(policy, request, response, retryData, requestError) { + function shouldPolicyRetry(responseParam) { + const statusCode = responseParam === null || responseParam === void 0 ? void 0 : responseParam.status; + if (statusCode === 503 && (response === null || response === void 0 ? void 0 : response.headers.get(Constants.HeaderConstants.RETRY_AFTER))) { + return false; } - var isAborted, res, err_1, err; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - retryData = updateRetryData({ - retryInterval: policy.retryInterval, - minRetryInterval: 0, - maxRetryInterval: policy.maxRetryInterval - }, retryData, requestError); - isAborted = request.abortSignal && request.abortSignal.aborted; - if (!(!isAborted && shouldRetry(policy.retryCount, shouldPolicyRetry, retryData, response))) return [3 /*break*/, 6]; - logger.info("Retrying request in " + retryData.retryInterval); - _a.label = 1; - case 1: - _a.trys.push([1, 4, , 5]); - return [4 /*yield*/, delay(retryData.retryInterval)]; - case 2: - _a.sent(); - return [4 /*yield*/, policy._nextPolicy.sendRequest(request.clone())]; - case 3: - res = _a.sent(); - return [2 /*return*/, retry(policy, request, res, retryData)]; - case 4: - err_1 = _a.sent(); - return [2 /*return*/, retry(policy, request, response, retryData, err_1)]; - case 5: return [3 /*break*/, 7]; - case 6: - if (isAborted || requestError || !response) { - err = retryData.error || - new RestError("Failed to send the request.", RestError.REQUEST_SEND_ERROR, response && response.status, response && response.request, response); - throw err; - } - else { - return [2 /*return*/, response]; - } - case 7: return [2 /*return*/]; - } - }); - }); + if (statusCode === undefined || + (statusCode < 500 && statusCode !== 408) || + statusCode === 501 || + statusCode === 505) { + return false; + } + return true; + } + retryData = updateRetryData({ + retryInterval: policy.retryInterval, + minRetryInterval: 0, + maxRetryInterval: policy.maxRetryInterval + }, retryData, requestError); + const isAborted = request.abortSignal && request.abortSignal.aborted; + if (!isAborted && shouldRetry(policy.retryCount, shouldPolicyRetry, retryData, response)) { + logger.info(`Retrying request in ${retryData.retryInterval}`); + try { + await delay(retryData.retryInterval); + const res = await policy._nextPolicy.sendRequest(request.clone()); + return retry(policy, request, res, retryData); + } + catch (err) { + return retry(policy, request, response, retryData, err); + } + } + else if (isAborted || requestError || !response) { + // If the operation failed in the end, return all errors instead of just the last one + const err = retryData.error || + new RestError("Failed to send the request.", RestError.REQUEST_SEND_ERROR, response && response.status, response && response.request, response); + throw err; + } + else { + return response; + } } // Copyright (c) Microsoft Corporation. -function generateClientRequestIdPolicy(requestIdHeaderName) { - if (requestIdHeaderName === void 0) { requestIdHeaderName = "x-ms-client-request-id"; } +function generateClientRequestIdPolicy(requestIdHeaderName = "x-ms-client-request-id") { return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new GenerateClientRequestIdPolicy(nextPolicy, options, requestIdHeaderName); } }; } -var GenerateClientRequestIdPolicy = /** @class */ (function (_super) { - tslib.__extends(GenerateClientRequestIdPolicy, _super); - function GenerateClientRequestIdPolicy(nextPolicy, options, _requestIdHeaderName) { - var _this = _super.call(this, nextPolicy, options) || this; - _this._requestIdHeaderName = _requestIdHeaderName; - return _this; +class GenerateClientRequestIdPolicy extends BaseRequestPolicy { + constructor(nextPolicy, options, _requestIdHeaderName) { + super(nextPolicy, options); + this._requestIdHeaderName = _requestIdHeaderName; } - GenerateClientRequestIdPolicy.prototype.sendRequest = function (request) { + sendRequest(request) { if (!request.headers.contains(this._requestIdHeaderName)) { request.headers.set(this._requestIdHeaderName, request.requestId); } return this._nextPolicy.sendRequest(request); - }; - return GenerateClientRequestIdPolicy; -}(BaseRequestPolicy)); + } +} // Copyright (c) Microsoft Corporation. function getDefaultUserAgentKey() { return Constants.HeaderConstants.USER_AGENT; } function getPlatformSpecificData() { - var runtimeInfo = { + const runtimeInfo = { key: "Node", value: process.version }; - var osInfo = { + const osInfo = { key: "OS", - value: "(" + os.arch() + "-" + os.type() + "-" + os.release() + ")" + value: `(${os.arch()}-${os.type()}-${os.release()})` }; return [runtimeInfo, osInfo]; } // Copyright (c) Microsoft Corporation. function getRuntimeInfo() { - var msRestRuntime = { + const msRestRuntime = { key: "core-http", value: Constants.coreHttpVersion }; return [msRestRuntime]; } -function getUserAgentString(telemetryInfo, keySeparator, valueSeparator) { - if (keySeparator === void 0) { keySeparator = " "; } - if (valueSeparator === void 0) { valueSeparator = "/"; } +function getUserAgentString(telemetryInfo, keySeparator = " ", valueSeparator = "/") { return telemetryInfo - .map(function (info) { - var value = info.value ? "" + valueSeparator + info.value : ""; - return "" + info.key + value; + .map((info) => { + const value = info.value ? `${valueSeparator}${info.value}` : ""; + return `${info.key}${value}`; }) .join(keySeparator); } -var getDefaultUserAgentHeaderName = getDefaultUserAgentKey; +const getDefaultUserAgentHeaderName = getDefaultUserAgentKey; function getDefaultUserAgentValue() { - var runtimeInfo = getRuntimeInfo(); - var platformSpecificData = getPlatformSpecificData(); - var userAgent = getUserAgentString(runtimeInfo.concat(platformSpecificData)); + const runtimeInfo = getRuntimeInfo(); + const platformSpecificData = getPlatformSpecificData(); + const userAgent = getUserAgentString(runtimeInfo.concat(platformSpecificData)); return userAgent; } function userAgentPolicy(userAgentData) { - var key = !userAgentData || userAgentData.key === undefined || userAgentData.key === null + const key = !userAgentData || userAgentData.key === undefined || userAgentData.key === null ? getDefaultUserAgentKey() : userAgentData.key; - var value = !userAgentData || userAgentData.value === undefined || userAgentData.value === null + const value = !userAgentData || userAgentData.value === undefined || userAgentData.value === null ? getDefaultUserAgentValue() : userAgentData.value; return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new UserAgentPolicy(nextPolicy, options, key, value); } }; } -var UserAgentPolicy = /** @class */ (function (_super) { - tslib.__extends(UserAgentPolicy, _super); - function UserAgentPolicy(_nextPolicy, _options, headerKey, headerValue) { - var _this = _super.call(this, _nextPolicy, _options) || this; - _this._nextPolicy = _nextPolicy; - _this._options = _options; - _this.headerKey = headerKey; - _this.headerValue = headerValue; - return _this; +class UserAgentPolicy extends BaseRequestPolicy { + constructor(_nextPolicy, _options, headerKey, headerValue) { + super(_nextPolicy, _options); + this._nextPolicy = _nextPolicy; + this._options = _options; + this.headerKey = headerKey; + this.headerValue = headerValue; } - UserAgentPolicy.prototype.sendRequest = function (request) { + sendRequest(request) { this.addUserAgentHeader(request); return this._nextPolicy.sendRequest(request); - }; - UserAgentPolicy.prototype.addUserAgentHeader = function (request) { + } + addUserAgentHeader(request) { if (!request.headers) { request.headers = new HttpHeaders(); } if (!request.headers.get(this.headerKey) && this.headerValue) { request.headers.set(this.headerKey, this.headerValue); } - }; - return UserAgentPolicy; -}(BaseRequestPolicy)); + } +} // Copyright (c) Microsoft Corporation. /** * Methods that are allowed to follow redirects 301 and 302 */ -var allowedRedirect = ["GET", "HEAD"]; -var DefaultRedirectOptions = { +const allowedRedirect = ["GET", "HEAD"]; +const DefaultRedirectOptions = { handleRedirects: true, maxRetries: 20 }; -function redirectPolicy(maximumRetries) { - if (maximumRetries === void 0) { maximumRetries = 20; } +function redirectPolicy(maximumRetries = 20) { return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new RedirectPolicy(nextPolicy, options, maximumRetries); } }; } -var RedirectPolicy = /** @class */ (function (_super) { - tslib.__extends(RedirectPolicy, _super); - function RedirectPolicy(nextPolicy, options, maxRetries) { - if (maxRetries === void 0) { maxRetries = 20; } - var _this = _super.call(this, nextPolicy, options) || this; - _this.maxRetries = maxRetries; - return _this; +class RedirectPolicy extends BaseRequestPolicy { + constructor(nextPolicy, options, maxRetries = 20) { + super(nextPolicy, options); + this.maxRetries = maxRetries; } - RedirectPolicy.prototype.sendRequest = function (request) { - var _this = this; + sendRequest(request) { return this._nextPolicy .sendRequest(request) - .then(function (response) { return handleRedirect(_this, response, 0); }); - }; - return RedirectPolicy; -}(BaseRequestPolicy)); + .then((response) => handleRedirect(this, response, 0)); + } +} function handleRedirect(policy, response, currentRetries) { - var request = response.request, status = response.status; - var locationHeader = response.headers.get("location"); + const { request, status } = response; + const locationHeader = response.headers.get("location"); if (locationHeader && (status === 300 || (status === 301 && allowedRedirect.includes(request.method)) || @@ -13667,7 +12778,7 @@ function handleRedirect(policy, response, currentRetries) { (status === 303 && request.method === "POST") || status === 307) && (!policy.maxRetries || currentRetries < policy.maxRetries)) { - var builder = URLBuilder.parse(request.url); + const builder = URLBuilder.parse(request.url); builder.setPath(locationHeader); request.url = builder.toString(); // POST request with Status code 303 should be converted into a @@ -13678,47 +12789,41 @@ function handleRedirect(policy, response, currentRetries) { } return policy._nextPolicy .sendRequest(request) - .then(function (res) { return handleRedirect(policy, res, currentRetries + 1); }); + .then((res) => handleRedirect(policy, res, currentRetries + 1)); } return Promise.resolve(response); } // Copyright (c) Microsoft Corporation. -function rpRegistrationPolicy(retryTimeout) { - if (retryTimeout === void 0) { retryTimeout = 30; } +function rpRegistrationPolicy(retryTimeout = 30) { return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new RPRegistrationPolicy(nextPolicy, options, retryTimeout); } }; } -var RPRegistrationPolicy = /** @class */ (function (_super) { - tslib.__extends(RPRegistrationPolicy, _super); - function RPRegistrationPolicy(nextPolicy, options, _retryTimeout) { - if (_retryTimeout === void 0) { _retryTimeout = 30; } - var _this = _super.call(this, nextPolicy, options) || this; - _this._retryTimeout = _retryTimeout; - return _this; +class RPRegistrationPolicy extends BaseRequestPolicy { + constructor(nextPolicy, options, _retryTimeout = 30) { + super(nextPolicy, options); + this._retryTimeout = _retryTimeout; } - RPRegistrationPolicy.prototype.sendRequest = function (request) { - var _this = this; + sendRequest(request) { return this._nextPolicy .sendRequest(request.clone()) - .then(function (response) { return registerIfNeeded(_this, request, response); }); - }; - return RPRegistrationPolicy; -}(BaseRequestPolicy)); + .then((response) => registerIfNeeded(this, request, response)); + } +} function registerIfNeeded(policy, request, response) { if (response.status === 409) { - var rpName = checkRPNotRegisteredError(response.bodyAsText); + const rpName = checkRPNotRegisteredError(response.bodyAsText); if (rpName) { - var urlPrefix = extractSubscriptionUrl(request.url); + const urlPrefix = extractSubscriptionUrl(request.url); return (registerRP(policy, urlPrefix, rpName, request) // Autoregistration of ${provider} failed for some reason. We will not return this error // instead will return the initial response with 409 status code back to the user. // do nothing here as we are returning the original response at the end of this method. - .catch(function () { return false; }) - .then(function (registrationStatus) { + .catch(() => false) + .then((registrationStatus) => { if (registrationStatus) { // Retry the original request. We have to change the x-ms-client-request-id // otherwise Azure endpoint will return the initial 409 (cached) response. @@ -13737,9 +12842,8 @@ function registerIfNeeded(policy, request, response) { * @param reuseUrlToo - Should the url from the original request be reused as well. Default false. * @returns A new request object with desired headers. */ -function getRequestEssentials(originalRequest, reuseUrlToo) { - if (reuseUrlToo === void 0) { reuseUrlToo = false; } - var reqOptions = originalRequest.clone(); +function getRequestEssentials(originalRequest, reuseUrlToo = false) { + const reqOptions = originalRequest.clone(); if (reuseUrlToo) { reqOptions.url = originalRequest.url; } @@ -13757,7 +12861,7 @@ function getRequestEssentials(originalRequest, reuseUrlToo) { * @returns The name of the RP if condition is satisfied else undefined. */ function checkRPNotRegisteredError(body) { - var result, responseBody; + let result, responseBody; if (body) { try { responseBody = JSON.parse(body); @@ -13770,7 +12874,7 @@ function checkRPNotRegisteredError(body) { responseBody.error.message && responseBody.error.code && responseBody.error.code === "MissingSubscriptionRegistration") { - var matchRes = responseBody.error.message.match(/.*'(.*)'/i); + const matchRes = responseBody.error.message.match(/.*'(.*)'/i); if (matchRes) { result = matchRes.pop(); } @@ -13785,13 +12889,13 @@ function checkRPNotRegisteredError(body) { * @returns The url prefix as explained above. */ function extractSubscriptionUrl(url) { - var result; - var matchRes = url.match(/.*\/subscriptions\/[a-f0-9-]+\//gi); + let result; + const matchRes = url.match(/.*\/subscriptions\/[a-f0-9-]+\//gi); if (matchRes && matchRes[0]) { result = matchRes[0]; } else { - throw new Error("Unable to extract subscriptionId from the given url - " + url + "."); + throw new Error(`Unable to extract subscriptionId from the given url - ${url}.`); } return result; } @@ -13802,20 +12906,18 @@ function extractSubscriptionUrl(url) { * @param provider - The provider name to be registered. * @param originalRequest - The original request sent by the user that returned a 409 response * with a message that the provider is not registered. - * @param callback - The callback that handles the RP registration */ -function registerRP(policy, urlPrefix, provider, originalRequest) { - var postUrl = urlPrefix + "providers/" + provider + "/register?api-version=2016-02-01"; - var getUrl = urlPrefix + "providers/" + provider + "?api-version=2016-02-01"; - var reqOptions = getRequestEssentials(originalRequest); +async function registerRP(policy, urlPrefix, provider, originalRequest) { + const postUrl = `${urlPrefix}providers/${provider}/register?api-version=2016-02-01`; + const getUrl = `${urlPrefix}providers/${provider}?api-version=2016-02-01`; + const reqOptions = getRequestEssentials(originalRequest); reqOptions.method = "POST"; reqOptions.url = postUrl; - return policy._nextPolicy.sendRequest(reqOptions).then(function (response) { - if (response.status !== 200) { - throw new Error("Autoregistration of " + provider + " failed. Please try registering manually."); - } - return getRegistrationStatus(policy, getUrl, originalRequest); - }); + const response = await policy._nextPolicy.sendRequest(reqOptions); + if (response.status !== 200) { + throw new Error(`Autoregistration of ${provider} failed. Please try registering manually.`); + } + return getRegistrationStatus(policy, getUrl, originalRequest); } /** * Polls the registration status of the provider that was registered. Polling happens at an interval of 30 seconds. @@ -13826,25 +12928,24 @@ function registerRP(policy, urlPrefix, provider, originalRequest) { * with a message that the provider is not registered. * @returns True if RP Registration is successful. */ -function getRegistrationStatus(policy, url, originalRequest) { - var reqOptions = getRequestEssentials(originalRequest); +async function getRegistrationStatus(policy, url, originalRequest) { + const reqOptions = getRequestEssentials(originalRequest); reqOptions.url = url; reqOptions.method = "GET"; - return policy._nextPolicy.sendRequest(reqOptions).then(function (res) { - var obj = res.parsedBody; - if (res.parsedBody && obj.registrationState && obj.registrationState === "Registered") { - return true; - } - else { - return delay(policy._retryTimeout * 1000) - .then(function () { return getRegistrationStatus(policy, url, originalRequest); }); - } - }); + const res = await policy._nextPolicy.sendRequest(reqOptions); + const obj = res.parsedBody; + if (res.parsedBody && obj.registrationState && obj.registrationState === "Registered") { + return true; + } + else { + await delay(policy._retryTimeout * 1000); + return getRegistrationStatus(policy, url, originalRequest); + } } // Copyright (c) Microsoft Corporation. // Default options for the cycler if none are provided -var DEFAULT_CYCLER_OPTIONS = { +const DEFAULT_CYCLER_OPTIONS = { forcedRefreshWindowInMs: 1000, retryIntervalInMs: 3000, refreshWindowInMs: 1000 * 60 * 2 // Start refreshing 2m before expiry @@ -13862,59 +12963,33 @@ var DEFAULT_CYCLER_OPTIONS = { * throwing an exception * @returns - a promise that, if it resolves, will resolve with an access token */ -function beginRefresh(getAccessToken, retryIntervalInMs, timeoutInMs) { - return tslib.__awaiter(this, void 0, void 0, function () { - // This wrapper handles exceptions gracefully as long as we haven't exceeded - // the timeout. - function tryGetAccessToken() { - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, finalToken; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - if (!(Date.now() < timeoutInMs)) return [3 /*break*/, 5]; - _b.label = 1; - case 1: - _b.trys.push([1, 3, , 4]); - return [4 /*yield*/, getAccessToken()]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - _a = _b.sent(); - return [2 /*return*/, null]; - case 4: return [3 /*break*/, 7]; - case 5: return [4 /*yield*/, getAccessToken()]; - case 6: - finalToken = _b.sent(); - // Timeout is up, so throw if it's still null - if (finalToken === null) { - throw new Error("Failed to refresh access token."); - } - return [2 /*return*/, finalToken]; - case 7: return [2 /*return*/]; - } - }); - }); - } - var token; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, tryGetAccessToken()]; - case 1: - token = _a.sent(); - _a.label = 2; - case 2: - if (!(token === null)) return [3 /*break*/, 5]; - return [4 /*yield*/, delay(retryIntervalInMs)]; - case 3: - _a.sent(); - return [4 /*yield*/, tryGetAccessToken()]; - case 4: - token = _a.sent(); - return [3 /*break*/, 2]; - case 5: return [2 /*return*/, token]; +async function beginRefresh(getAccessToken, retryIntervalInMs, timeoutInMs) { + // This wrapper handles exceptions gracefully as long as we haven't exceeded + // the timeout. + async function tryGetAccessToken() { + if (Date.now() < timeoutInMs) { + try { + return await getAccessToken(); } - }); - }); + catch (_a) { + return null; + } + } + else { + const finalToken = await getAccessToken(); + // Timeout is up, so throw if it's still null + if (finalToken === null) { + throw new Error("Failed to refresh access token."); + } + return finalToken; + } + } + let token = await tryGetAccessToken(); + while (token === null) { + await delay(retryIntervalInMs); + token = await tryGetAccessToken(); + } + return token; } /** * Creates a token cycler from a credential, scopes, and optional settings. @@ -13932,15 +13007,14 @@ function beginRefresh(getAccessToken, retryIntervalInMs, timeoutInMs) { * @returns - a function that reliably produces a valid access token */ function createTokenCycler(credential, scopes, tokenCyclerOptions) { - var _this = this; - var refreshWorker = null; - var token = null; - var options = tslib.__assign(tslib.__assign({}, DEFAULT_CYCLER_OPTIONS), tokenCyclerOptions); + let refreshWorker = null; + let token = null; + const options = Object.assign(Object.assign({}, DEFAULT_CYCLER_OPTIONS), tokenCyclerOptions); /** * This little holder defines several predicates that we use to construct * the rules of refreshing the token. */ - var cycler = { + const cycler = { /** * Produces true if a refresh job is currently in progress. */ @@ -13972,20 +13046,18 @@ function createTokenCycler(credential, scopes, tokenCyclerOptions) { var _a; if (!cycler.isRefreshing) { // We bind `scopes` here to avoid passing it around a lot - var tryGetAccessToken = function () { - return credential.getToken(scopes, getTokenOptions); - }; + const tryGetAccessToken = () => credential.getToken(scopes, getTokenOptions); // Take advantage of promise chaining to insert an assignment to `token` // before the refresh can be considered done. refreshWorker = beginRefresh(tryGetAccessToken, options.retryIntervalInMs, // If we don't have a token, then we should timeout immediately (_a = token === null || token === void 0 ? void 0 : token.expiresOnTimestamp) !== null && _a !== void 0 ? _a : Date.now()) - .then(function (_token) { + .then((_token) => { refreshWorker = null; token = _token; return token; }) - .catch(function (reason) { + .catch((reason) => { // We also should reset the refresher if we enter a failed state. All // existing awaiters will throw, but subsequent requests will start a // new retry chain. @@ -13996,25 +13068,23 @@ function createTokenCycler(credential, scopes, tokenCyclerOptions) { } return refreshWorker; } - return function (tokenOptions) { return tslib.__awaiter(_this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - // - // Simple rules: - // - If we MUST refresh, then return the refresh task, blocking - // the pipeline until a token is available. - // - If we SHOULD refresh, then run refresh but don't return it - // (we can still use the cached token). - // - Return the token, since it's fine if we didn't return in - // step 1. - // - if (cycler.mustRefresh) - return [2 /*return*/, refresh(tokenOptions)]; - if (cycler.shouldRefresh) { - refresh(tokenOptions); - } - return [2 /*return*/, token]; - }); - }); }; + return async (tokenOptions) => { + // + // Simple rules: + // - If we MUST refresh, then return the refresh task, blocking + // the pipeline until a token is available. + // - If we SHOULD refresh, then run refresh but don't return it + // (we can still use the cached token). + // - Return the token, since it's fine if we didn't return in + // step 1. + // + if (cycler.mustRefresh) + return refresh(tokenOptions); + if (cycler.shouldRefresh) { + refresh(tokenOptions); + } + return token; + }; } // #endregion /** @@ -14026,36 +13096,27 @@ function createTokenCycler(credential, scopes, tokenCyclerOptions) { */ function bearerTokenAuthenticationPolicy(credential, scopes) { // This simple function encapsulates the entire process of reliably retrieving the token - var getToken = createTokenCycler(credential, scopes /* , options */); - var BearerTokenAuthenticationPolicy = /** @class */ (function (_super) { - tslib.__extends(BearerTokenAuthenticationPolicy, _super); - function BearerTokenAuthenticationPolicy(nextPolicy, options) { - return _super.call(this, nextPolicy, options) || this; + const getToken = createTokenCycler(credential, scopes /* , options */); + class BearerTokenAuthenticationPolicy extends BaseRequestPolicy { + constructor(nextPolicy, options) { + super(nextPolicy, options); } - BearerTokenAuthenticationPolicy.prototype.sendRequest = function (webResource) { - return tslib.__awaiter(this, void 0, void 0, function () { - var token; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, getToken({ - abortSignal: webResource.abortSignal, - tracingOptions: { - spanOptions: webResource.spanOptions, - tracingContext: webResource.tracingContext - } - })]; - case 1: - token = (_a.sent()).token; - webResource.headers.set(Constants.HeaderConstants.AUTHORIZATION, "Bearer " + token); - return [2 /*return*/, this._nextPolicy.sendRequest(webResource)]; - } - }); + async sendRequest(webResource) { + if (!webResource.url.toLowerCase().startsWith("https://")) { + throw new Error("Bearer token authentication is not permitted for non-TLS protected (non-https) URLs."); + } + const { token } = await getToken({ + abortSignal: webResource.abortSignal, + tracingOptions: { + tracingContext: webResource.tracingContext + } }); - }; - return BearerTokenAuthenticationPolicy; - }(BaseRequestPolicy)); + webResource.headers.set(Constants.HeaderConstants.AUTHORIZATION, `Bearer ${token}`); + return this._nextPolicy.sendRequest(webResource); + } + } return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new BearerTokenAuthenticationPolicy(nextPolicy, options); } }; @@ -14064,7 +13125,7 @@ function bearerTokenAuthenticationPolicy(credential, scopes) { // Copyright (c) Microsoft Corporation. function systemErrorRetryPolicy(retryCount, retryInterval, minRetryInterval, maxRetryInterval) { return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new SystemErrorRetryPolicy(nextPolicy, options, retryCount, retryInterval, minRetryInterval, maxRetryInterval); } }; @@ -14075,69 +13136,55 @@ function systemErrorRetryPolicy(retryCount, retryInterval, minRetryInterval, max * @param minRetryInterval - The minimum retry interval, in milliseconds. * @param maxRetryInterval - The maximum retry interval, in milliseconds. */ -var SystemErrorRetryPolicy = /** @class */ (function (_super) { - tslib.__extends(SystemErrorRetryPolicy, _super); - function SystemErrorRetryPolicy(nextPolicy, options, retryCount, retryInterval, minRetryInterval, maxRetryInterval) { - var _this = _super.call(this, nextPolicy, options) || this; - _this.retryCount = isNumber(retryCount) ? retryCount : DEFAULT_CLIENT_RETRY_COUNT; - _this.retryInterval = isNumber(retryInterval) ? retryInterval : DEFAULT_CLIENT_RETRY_INTERVAL; - _this.minRetryInterval = isNumber(minRetryInterval) +class SystemErrorRetryPolicy extends BaseRequestPolicy { + constructor(nextPolicy, options, retryCount, retryInterval, minRetryInterval, maxRetryInterval) { + super(nextPolicy, options); + this.retryCount = isNumber(retryCount) ? retryCount : DEFAULT_CLIENT_RETRY_COUNT; + this.retryInterval = isNumber(retryInterval) ? retryInterval : DEFAULT_CLIENT_RETRY_INTERVAL; + this.minRetryInterval = isNumber(minRetryInterval) ? minRetryInterval : DEFAULT_CLIENT_MIN_RETRY_INTERVAL; - _this.maxRetryInterval = isNumber(maxRetryInterval) + this.maxRetryInterval = isNumber(maxRetryInterval) ? maxRetryInterval : DEFAULT_CLIENT_MAX_RETRY_INTERVAL; - return _this; } - SystemErrorRetryPolicy.prototype.sendRequest = function (request) { - var _this = this; + sendRequest(request) { return this._nextPolicy .sendRequest(request.clone()) - .catch(function (error) { return retry$1(_this, request, error.response, error); }); - }; - return SystemErrorRetryPolicy; -}(BaseRequestPolicy)); -function retry$1(policy, request, operationResponse, err, retryData) { - return tslib.__awaiter(this, void 0, void 0, function () { - function shouldPolicyRetry(_response, error) { - if (error && - error.code && - (error.code === "ETIMEDOUT" || - error.code === "ESOCKETTIMEDOUT" || - error.code === "ECONNREFUSED" || - error.code === "ECONNRESET" || - error.code === "ENOENT")) { - return true; - } - return false; + .catch((error) => retry$1(this, request, error.response, error)); + } +} +async function retry$1(policy, request, operationResponse, err, retryData) { + retryData = updateRetryData(policy, retryData, err); + function shouldPolicyRetry(_response, error) { + if (error && + error.code && + (error.code === "ETIMEDOUT" || + error.code === "ESOCKETTIMEDOUT" || + error.code === "ECONNREFUSED" || + error.code === "ECONNRESET" || + error.code === "ENOENT")) { + return true; } - var nestedErr_1; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - retryData = updateRetryData(policy, retryData, err); - if (!shouldRetry(policy.retryCount, shouldPolicyRetry, retryData, operationResponse, err)) return [3 /*break*/, 5]; - _a.label = 1; - case 1: - _a.trys.push([1, 3, , 4]); - return [4 /*yield*/, delay(retryData.retryInterval)]; - case 2: - _a.sent(); - return [2 /*return*/, policy._nextPolicy.sendRequest(request.clone())]; - case 3: - nestedErr_1 = _a.sent(); - return [2 /*return*/, retry$1(policy, request, operationResponse, nestedErr_1, retryData)]; - case 4: return [3 /*break*/, 6]; - case 5: - if (err) { - // If the operation failed in the end, return all errors instead of just the last one - return [2 /*return*/, Promise.reject(retryData.error)]; - } - return [2 /*return*/, operationResponse]; - case 6: return [2 /*return*/]; - } - }); - }); + return false; + } + if (shouldRetry(policy.retryCount, shouldPolicyRetry, retryData, operationResponse, err)) { + // If previous operation ended with an error and the policy allows a retry, do that + try { + await delay(retryData.retryInterval); + return policy._nextPolicy.sendRequest(request.clone()); + } + catch (nestedErr) { + return retry$1(policy, request, operationResponse, nestedErr, retryData); + } + } + else { + if (err) { + // If the operation failed in the end, return all errors instead of just the last one + return Promise.reject(retryData.error); + } + return operationResponse; + } } // Copyright (c) Microsoft Corporation. @@ -14151,34 +13198,37 @@ function retry$1(policy, request, operationResponse, err, retryData) { // Copyright (c) Microsoft Corporation. /** + * Stores the patterns specified in NO_PROXY environment variable. * @internal */ -var noProxyList = []; -var noProxyListLoaded = false; -var byPassedList = new Map(); +const globalNoProxyList = []; +let noProxyListLoaded = false; +/** A cache of whether a host should bypass the proxy. */ +const globalBypassedMap = new Map(); function loadEnvironmentProxyValue() { if (!process) { return undefined; } - var httpsProxy = getEnvironmentValue(Constants.HTTPS_PROXY); - var allProxy = getEnvironmentValue(Constants.ALL_PROXY); - var httpProxy = getEnvironmentValue(Constants.HTTP_PROXY); + const httpsProxy = getEnvironmentValue(Constants.HTTPS_PROXY); + const allProxy = getEnvironmentValue(Constants.ALL_PROXY); + const httpProxy = getEnvironmentValue(Constants.HTTP_PROXY); return httpsProxy || allProxy || httpProxy; } -// Check whether the host of a given `uri` is in the noProxyList. -// If there's a match, any request sent to the same host won't have the proxy settings set. -// This implementation is a port of https://github.com/Azure/azure-sdk-for-net/blob/8cca811371159e527159c7eb65602477898683e2/sdk/core/Azure.Core/src/Pipeline/Internal/HttpEnvironmentProxy.cs#L210 -function isBypassed(uri) { +/** + * Check whether the host of a given `uri` matches any pattern in the no proxy list. + * If there's a match, any request sent to the same host shouldn't have the proxy settings set. + * This implementation is a port of https://github.com/Azure/azure-sdk-for-net/blob/8cca811371159e527159c7eb65602477898683e2/sdk/core/Azure.Core/src/Pipeline/Internal/HttpEnvironmentProxy.cs#L210 + */ +function isBypassed(uri, noProxyList, bypassedMap) { if (noProxyList.length === 0) { return false; } - var host = URLBuilder.parse(uri).getHost(); - if (byPassedList.has(host)) { - return byPassedList.get(host); + const host = URLBuilder.parse(uri).getHost(); + if (bypassedMap === null || bypassedMap === void 0 ? void 0 : bypassedMap.has(host)) { + return bypassedMap.get(host); } - var isBypassedFlag = false; - for (var _i = 0, noProxyList_1 = noProxyList; _i < noProxyList_1.length; _i++) { - var pattern = noProxyList_1[_i]; + let isBypassedFlag = false; + for (const pattern of noProxyList) { if (pattern[0] === ".") { // This should match either domain it self or any subdomain or host // .foo.com will match foo.com it self or *.foo.com @@ -14197,20 +13247,20 @@ function isBypassed(uri) { } } } - byPassedList.set(host, isBypassedFlag); + bypassedMap === null || bypassedMap === void 0 ? void 0 : bypassedMap.set(host, isBypassedFlag); return isBypassedFlag; } /** * @internal */ function loadNoProxy() { - var noProxy = getEnvironmentValue(Constants.NO_PROXY); + const noProxy = getEnvironmentValue(Constants.NO_PROXY); noProxyListLoaded = true; if (noProxy) { return noProxy .split(",") - .map(function (item) { return item.trim(); }) - .filter(function (item) { return item.length; }); + .map((item) => item.trim()) + .filter((item) => item.length); } return []; } @@ -14221,174 +13271,184 @@ function getDefaultProxySettings(proxyUrl) { return undefined; } } - var _a = extractAuthFromUrl(proxyUrl), username = _a.username, password = _a.password, urlWithoutAuth = _a.urlWithoutAuth; - var parsedUrl = URLBuilder.parse(urlWithoutAuth); - var schema = parsedUrl.getScheme() ? parsedUrl.getScheme() + "://" : ""; + const { username, password, urlWithoutAuth } = extractAuthFromUrl(proxyUrl); + const parsedUrl = URLBuilder.parse(urlWithoutAuth); + const schema = parsedUrl.getScheme() ? parsedUrl.getScheme() + "://" : ""; return { host: schema + parsedUrl.getHost(), port: Number.parseInt(parsedUrl.getPort() || "80"), - username: username, - password: password + username, + password }; } -function proxyPolicy(proxySettings) { +/** + * A policy that allows one to apply proxy settings to all requests. + * If not passed static settings, they will be retrieved from the HTTPS_PROXY + * or HTTP_PROXY environment variables. + * @param proxySettings - ProxySettings to use on each request. + * @param options - additional settings, for example, custom NO_PROXY patterns + */ +function proxyPolicy(proxySettings, options) { if (!proxySettings) { proxySettings = getDefaultProxySettings(); } if (!noProxyListLoaded) { - noProxyList.push.apply(noProxyList, loadNoProxy()); + globalNoProxyList.push(...loadNoProxy()); } return { - create: function (nextPolicy, options) { - return new ProxyPolicy(nextPolicy, options, proxySettings); + create: (nextPolicy, requestPolicyOptions) => { + return new ProxyPolicy(nextPolicy, requestPolicyOptions, proxySettings, options === null || options === void 0 ? void 0 : options.customNoProxyList); } }; } function extractAuthFromUrl(url) { - var atIndex = url.indexOf("@"); + const atIndex = url.indexOf("@"); if (atIndex === -1) { return { urlWithoutAuth: url }; } - var schemeIndex = url.indexOf("://"); - var authStart = schemeIndex !== -1 ? schemeIndex + 3 : 0; - var auth = url.substring(authStart, atIndex); - var colonIndex = auth.indexOf(":"); - var hasPassword = colonIndex !== -1; - var username = hasPassword ? auth.substring(0, colonIndex) : auth; - var password = hasPassword ? auth.substring(colonIndex + 1) : undefined; - var urlWithoutAuth = url.substring(0, authStart) + url.substring(atIndex + 1); + const schemeIndex = url.indexOf("://"); + const authStart = schemeIndex !== -1 ? schemeIndex + 3 : 0; + const auth = url.substring(authStart, atIndex); + const colonIndex = auth.indexOf(":"); + const hasPassword = colonIndex !== -1; + const username = hasPassword ? auth.substring(0, colonIndex) : auth; + const password = hasPassword ? auth.substring(colonIndex + 1) : undefined; + const urlWithoutAuth = url.substring(0, authStart) + url.substring(atIndex + 1); return { - username: username, - password: password, - urlWithoutAuth: urlWithoutAuth + username, + password, + urlWithoutAuth }; } -var ProxyPolicy = /** @class */ (function (_super) { - tslib.__extends(ProxyPolicy, _super); - function ProxyPolicy(nextPolicy, options, proxySettings) { - var _this = _super.call(this, nextPolicy, options) || this; - _this.proxySettings = proxySettings; - return _this; +class ProxyPolicy extends BaseRequestPolicy { + constructor(nextPolicy, options, proxySettings, customNoProxyList) { + super(nextPolicy, options); + this.proxySettings = proxySettings; + this.customNoProxyList = customNoProxyList; } - ProxyPolicy.prototype.sendRequest = function (request) { - if (!request.proxySettings && !isBypassed(request.url)) { + sendRequest(request) { + var _a; + if (!request.proxySettings && + !isBypassed(request.url, (_a = this.customNoProxyList) !== null && _a !== void 0 ? _a : globalNoProxyList, this.customNoProxyList ? undefined : globalBypassedMap)) { request.proxySettings = this.proxySettings; } return this._nextPolicy.sendRequest(request); - }; - return ProxyPolicy; -}(BaseRequestPolicy)); + } +} // Copyright (c) Microsoft Corporation. -var StatusCodes = Constants.HttpConstants.StatusCodes; +// Licensed under the MIT license. +/** + * Maximum number of retries for the throttling retry policy + */ +const DEFAULT_CLIENT_MAX_RETRY_COUNT = 3; + +// Copyright (c) Microsoft Corporation. +const StatusCodes = Constants.HttpConstants.StatusCodes; function throttlingRetryPolicy() { return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new ThrottlingRetryPolicy(nextPolicy, options); } }; } +const StandardAbortMessage$1 = "The operation was aborted."; /** * To learn more, please refer to * https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-request-limits, * https://docs.microsoft.com/en-us/azure/azure-subscription-service-limits and * https://docs.microsoft.com/en-us/azure/virtual-machines/troubleshooting/troubleshooting-throttling-errors */ -var ThrottlingRetryPolicy = /** @class */ (function (_super) { - tslib.__extends(ThrottlingRetryPolicy, _super); - function ThrottlingRetryPolicy(nextPolicy, options, _handleResponse) { - var _this = _super.call(this, nextPolicy, options) || this; - _this._handleResponse = _handleResponse || _this._defaultResponseHandler; - return _this; +class ThrottlingRetryPolicy extends BaseRequestPolicy { + constructor(nextPolicy, options, _handleResponse) { + super(nextPolicy, options); + this.numberOfRetries = 0; + this._handleResponse = _handleResponse || this._defaultResponseHandler; } - ThrottlingRetryPolicy.prototype.sendRequest = function (httpRequest) { - return tslib.__awaiter(this, void 0, void 0, function () { - var _this = this; - return tslib.__generator(this, function (_a) { - return [2 /*return*/, this._nextPolicy.sendRequest(httpRequest.clone()).then(function (response) { - if (response.status !== StatusCodes.TooManyRequests) { - return response; - } - else { - return _this._handleResponse(httpRequest, response); - } - })]; - }); - }); - }; - ThrottlingRetryPolicy.prototype._defaultResponseHandler = function (httpRequest, httpResponse) { - return tslib.__awaiter(this, void 0, void 0, function () { - var retryAfterHeader, delayInMs; - var _this = this; - return tslib.__generator(this, function (_a) { - retryAfterHeader = httpResponse.headers.get(Constants.HeaderConstants.RETRY_AFTER); - if (retryAfterHeader) { - delayInMs = ThrottlingRetryPolicy.parseRetryAfterHeader(retryAfterHeader); - if (delayInMs) { - return [2 /*return*/, delay(delayInMs).then(function (_) { return _this._nextPolicy.sendRequest(httpRequest); })]; - } + async sendRequest(httpRequest) { + const response = await this._nextPolicy.sendRequest(httpRequest.clone()); + if (response.status !== StatusCodes.TooManyRequests && + response.status !== StatusCodes.ServiceUnavailable) { + return response; + } + else { + return this._handleResponse(httpRequest, response); + } + } + async _defaultResponseHandler(httpRequest, httpResponse) { + var _a; + const retryAfterHeader = httpResponse.headers.get(Constants.HeaderConstants.RETRY_AFTER); + if (retryAfterHeader) { + const delayInMs = ThrottlingRetryPolicy.parseRetryAfterHeader(retryAfterHeader); + if (delayInMs) { + this.numberOfRetries += 1; + await delay(delayInMs, undefined, { + abortSignal: httpRequest.abortSignal, + abortErrorMsg: StandardAbortMessage$1 + }); + if ((_a = httpRequest.abortSignal) === null || _a === void 0 ? void 0 : _a.aborted) { + throw new abortController.AbortError(StandardAbortMessage$1); } - return [2 /*return*/, httpResponse]; - }); - }); - }; - ThrottlingRetryPolicy.parseRetryAfterHeader = function (headerValue) { - var retryAfterInSeconds = Number(headerValue); + if (this.numberOfRetries < DEFAULT_CLIENT_MAX_RETRY_COUNT) { + return this.sendRequest(httpRequest); + } + else { + return this._nextPolicy.sendRequest(httpRequest); + } + } + } + return httpResponse; + } + static parseRetryAfterHeader(headerValue) { + const retryAfterInSeconds = Number(headerValue); if (Number.isNaN(retryAfterInSeconds)) { return ThrottlingRetryPolicy.parseDateRetryAfterHeader(headerValue); } else { return retryAfterInSeconds * 1000; } - }; - ThrottlingRetryPolicy.parseDateRetryAfterHeader = function (headerValue) { + } + static parseDateRetryAfterHeader(headerValue) { try { - var now = Date.now(); - var date = Date.parse(headerValue); - var diff = date - now; + const now = Date.now(); + const date = Date.parse(headerValue); + const diff = date - now; return Number.isNaN(diff) ? undefined : diff; } catch (error) { return undefined; } - }; - return ThrottlingRetryPolicy; -}(BaseRequestPolicy)); + } +} // Copyright (c) Microsoft Corporation. function signingPolicy(authenticationProvider) { return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new SigningPolicy(nextPolicy, options, authenticationProvider); } }; } -var SigningPolicy = /** @class */ (function (_super) { - tslib.__extends(SigningPolicy, _super); - function SigningPolicy(nextPolicy, options, authenticationProvider) { - var _this = _super.call(this, nextPolicy, options) || this; - _this.authenticationProvider = authenticationProvider; - return _this; +class SigningPolicy extends BaseRequestPolicy { + constructor(nextPolicy, options, authenticationProvider) { + super(nextPolicy, options); + this.authenticationProvider = authenticationProvider; } - SigningPolicy.prototype.signRequest = function (request) { + signRequest(request) { return this.authenticationProvider.signRequest(request); - }; - SigningPolicy.prototype.sendRequest = function (request) { - var _this = this; - return this.signRequest(request).then(function (nextRequest) { - return _this._nextPolicy.sendRequest(nextRequest); - }); - }; - return SigningPolicy; -}(BaseRequestPolicy)); + } + sendRequest(request) { + return this.signRequest(request).then((nextRequest) => this._nextPolicy.sendRequest(nextRequest)); + } +} // Copyright (c) Microsoft Corporation. -var DefaultKeepAliveOptions = { +const DefaultKeepAliveOptions = { enable: true }; function keepAlivePolicy(keepAliveOptions) { return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new KeepAlivePolicy(nextPolicy, options, keepAliveOptions || DefaultKeepAliveOptions); } }; @@ -14396,8 +13456,7 @@ function keepAlivePolicy(keepAliveOptions) { /** * KeepAlivePolicy is a policy used to control keep alive settings for every request. */ -var KeepAlivePolicy = /** @class */ (function (_super) { - tslib.__extends(KeepAlivePolicy, _super); +class KeepAlivePolicy extends BaseRequestPolicy { /** * Creates an instance of KeepAlivePolicy. * @@ -14405,10 +13464,9 @@ var KeepAlivePolicy = /** @class */ (function (_super) { * @param options - * @param keepAliveOptions - */ - function KeepAlivePolicy(nextPolicy, options, keepAliveOptions) { - var _this = _super.call(this, nextPolicy, options) || this; - _this.keepAliveOptions = keepAliveOptions; - return _this; + constructor(nextPolicy, options, keepAliveOptions) { + super(nextPolicy, options); + this.keepAliveOptions = keepAliveOptions; } /** * Sends out request. @@ -14416,104 +13474,126 @@ var KeepAlivePolicy = /** @class */ (function (_super) { * @param request - * @returns */ - KeepAlivePolicy.prototype.sendRequest = function (request) { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - request.keepAlive = this.keepAliveOptions.enable; - return [2 /*return*/, this._nextPolicy.sendRequest(request)]; - }); - }); - }; - return KeepAlivePolicy; -}(BaseRequestPolicy)); + async sendRequest(request) { + request.keepAlive = this.keepAliveOptions.enable; + return this._nextPolicy.sendRequest(request); + } +} // Copyright (c) Microsoft Corporation. -var createSpan = coreTracing.createSpanFunction({ +const createSpan = coreTracing.createSpanFunction({ packagePrefix: "", namespace: "" }); -function tracingPolicy(tracingOptions) { - if (tracingOptions === void 0) { tracingOptions = {}; } +function tracingPolicy(tracingOptions = {}) { return { - create: function (nextPolicy, options) { + create(nextPolicy, options) { return new TracingPolicy(nextPolicy, options, tracingOptions); } }; } -var TracingPolicy = /** @class */ (function (_super) { - tslib.__extends(TracingPolicy, _super); - function TracingPolicy(nextPolicy, options, tracingOptions) { - var _this = _super.call(this, nextPolicy, options) || this; - _this.userAgent = tracingOptions.userAgent; - return _this; +class TracingPolicy extends BaseRequestPolicy { + constructor(nextPolicy, options, tracingOptions) { + super(nextPolicy, options); + this.userAgent = tracingOptions.userAgent; } - TracingPolicy.prototype.sendRequest = function (request) { - return tslib.__awaiter(this, void 0, void 0, function () { - var path, span, spanContext, traceParentHeader, traceState, response, serviceRequestId, err_1; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!request.tracingContext) { - return [2 /*return*/, this._nextPolicy.sendRequest(request)]; - } - path = URLBuilder.parse(request.url).getPath() || "/"; - span = createSpan(path, { - tracingOptions: { - spanOptions: tslib.__assign(tslib.__assign({}, request.spanOptions), { kind: coreTracing.SpanKind.CLIENT }), - tracingContext: request.tracingContext - } - }).span; - span.setAttributes({ - "http.method": request.method, - "http.url": request.url, - requestId: request.requestId - }); - if (this.userAgent) { - span.setAttribute("http.user_agent", this.userAgent); - } - _a.label = 1; - case 1: - _a.trys.push([1, 3, 4, 5]); - spanContext = span.context(); - traceParentHeader = coreTracing.getTraceParentHeader(spanContext); - if (traceParentHeader) { - request.headers.set("traceparent", traceParentHeader); - traceState = spanContext.traceState && spanContext.traceState.serialize(); - // if tracestate is set, traceparent MUST be set, so only set tracestate after traceparent - if (traceState) { - request.headers.set("tracestate", traceState); - } - } - return [4 /*yield*/, this._nextPolicy.sendRequest(request)]; - case 2: - response = _a.sent(); - span.setAttribute("http.status_code", response.status); - serviceRequestId = response.headers.get("x-ms-request-id"); - if (serviceRequestId) { - span.setAttribute("serviceRequestId", serviceRequestId); - } - span.setStatus({ - code: coreTracing.SpanStatusCode.OK - }); - return [2 /*return*/, response]; - case 3: - err_1 = _a.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: err_1.message - }); - span.setAttribute("http.status_code", err_1.statusCode); - throw err_1; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; + async sendRequest(request) { + if (!request.tracingContext) { + return this._nextPolicy.sendRequest(request); + } + const span = this.tryCreateSpan(request); + if (!span) { + return this._nextPolicy.sendRequest(request); + } + try { + const response = await this._nextPolicy.sendRequest(request); + this.tryProcessResponse(span, response); + return response; + } + catch (err) { + this.tryProcessError(span, err); + throw err; + } + } + tryCreateSpan(request) { + var _a; + try { + const path = URLBuilder.parse(request.url).getPath() || "/"; + // Passing spanOptions as part of tracingOptions to maintain compatibility @azure/core-tracing@preview.13 and earlier. + // We can pass this as a separate parameter once we upgrade to the latest core-tracing. + const { span } = createSpan(path, { + tracingOptions: { + spanOptions: Object.assign(Object.assign({}, request.spanOptions), { kind: coreTracing.SpanKind.CLIENT }), + tracingContext: request.tracingContext } }); - }); - }; - return TracingPolicy; -}(BaseRequestPolicy)); + // If the span is not recording, don't do any more work. + if (!span.isRecording()) { + span.end(); + return undefined; + } + const namespaceFromContext = (_a = request.tracingContext) === null || _a === void 0 ? void 0 : _a.getValue(Symbol.for("az.namespace")); + if (typeof namespaceFromContext === "string") { + span.setAttribute("az.namespace", namespaceFromContext); + } + span.setAttributes({ + "http.method": request.method, + "http.url": request.url, + requestId: request.requestId + }); + if (this.userAgent) { + span.setAttribute("http.user_agent", this.userAgent); + } + // set headers + const spanContext = span.spanContext(); + const traceParentHeader = coreTracing.getTraceParentHeader(spanContext); + if (traceParentHeader && coreTracing.isSpanContextValid(spanContext)) { + request.headers.set("traceparent", traceParentHeader); + const traceState = spanContext.traceState && spanContext.traceState.serialize(); + // if tracestate is set, traceparent MUST be set, so only set tracestate after traceparent + if (traceState) { + request.headers.set("tracestate", traceState); + } + } + return span; + } + catch (error) { + logger.warning(`Skipping creating a tracing span due to an error: ${error.message}`); + return undefined; + } + } + tryProcessError(span, err) { + try { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: err.message + }); + if (err.statusCode) { + span.setAttribute("http.status_code", err.statusCode); + } + span.end(); + } + catch (error) { + logger.warning(`Skipping tracing span processing due to an error: ${error.message}`); + } + } + tryProcessResponse(span, response) { + try { + span.setAttribute("http.status_code", response.status); + const serviceRequestId = response.headers.get("x-ms-request-id"); + if (serviceRequestId) { + span.setAttribute("serviceRequestId", serviceRequestId); + } + span.setStatus({ + code: coreTracing.SpanStatusCode.OK + }); + span.end(); + } + catch (error) { + logger.warning(`Skipping tracing span processing due to an error: ${error.message}`); + } + } +} // Copyright (c) Microsoft Corporation. /** @@ -14522,7 +13602,7 @@ var TracingPolicy = /** @class */ (function (_super) { */ function disableResponseDecompressionPolicy() { return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new DisableResponseDecompressionPolicy(nextPolicy, options); } }; @@ -14531,8 +13611,7 @@ function disableResponseDecompressionPolicy() { * A policy to disable response decompression according to Accept-Encoding header * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding */ -var DisableResponseDecompressionPolicy = /** @class */ (function (_super) { - tslib.__extends(DisableResponseDecompressionPolicy, _super); +class DisableResponseDecompressionPolicy extends BaseRequestPolicy { /** * Creates an instance of DisableResponseDecompressionPolicy. * @@ -14541,8 +13620,8 @@ var DisableResponseDecompressionPolicy = /** @class */ (function (_super) { */ // The parent constructor is protected. /* eslint-disable-next-line @typescript-eslint/no-useless-constructor */ - function DisableResponseDecompressionPolicy(nextPolicy, options) { - return _super.call(this, nextPolicy, options) || this; + constructor(nextPolicy, options) { + super(nextPolicy, options); } /** * Sends out request. @@ -14550,21 +13629,16 @@ var DisableResponseDecompressionPolicy = /** @class */ (function (_super) { * @param request - * @returns */ - DisableResponseDecompressionPolicy.prototype.sendRequest = function (request) { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - request.decompressResponse = false; - return [2 /*return*/, this._nextPolicy.sendRequest(request)]; - }); - }); - }; - return DisableResponseDecompressionPolicy; -}(BaseRequestPolicy)); + async sendRequest(request) { + request.decompressResponse = false; + return this._nextPolicy.sendRequest(request); + } +} // Copyright (c) Microsoft Corporation. function ndJsonPolicy() { return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new NdJsonPolicy(nextPolicy, options); } }; @@ -14572,37 +13646,30 @@ function ndJsonPolicy() { /** * NdJsonPolicy that formats a JSON array as newline-delimited JSON */ -var NdJsonPolicy = /** @class */ (function (_super) { - tslib.__extends(NdJsonPolicy, _super); +class NdJsonPolicy extends BaseRequestPolicy { /** * Creates an instance of KeepAlivePolicy. */ - function NdJsonPolicy(nextPolicy, options) { - return _super.call(this, nextPolicy, options) || this; + constructor(nextPolicy, options) { + super(nextPolicy, options); } /** * Sends a request. */ - NdJsonPolicy.prototype.sendRequest = function (request) { - return tslib.__awaiter(this, void 0, void 0, function () { - var body; - return tslib.__generator(this, function (_a) { - // There currently isn't a good way to bypass the serializer - if (typeof request.body === "string" && request.body.startsWith("[")) { - body = JSON.parse(request.body); - if (Array.isArray(body)) { - request.body = body.map(function (item) { return JSON.stringify(item) + "\n"; }).join(""); - } - } - return [2 /*return*/, this._nextPolicy.sendRequest(request)]; - }); - }); - }; - return NdJsonPolicy; -}(BaseRequestPolicy)); + async sendRequest(request) { + // There currently isn't a good way to bypass the serializer + if (typeof request.body === "string" && request.body.startsWith("[")) { + const body = JSON.parse(request.body); + if (Array.isArray(body)) { + request.body = body.map((item) => JSON.stringify(item) + "\n").join(""); + } + } + return this._nextPolicy.sendRequest(request); + } +} // Copyright (c) Microsoft Corporation. -var cachedHttpClient; +let cachedHttpClient; function getCachedDefaultHttpClient() { if (!cachedHttpClient) { cachedHttpClient = new NodeFetchHttpClient(); @@ -14614,29 +13681,28 @@ function getCachedDefaultHttpClient() { /** * ServiceClient sends service requests and receives responses. */ -var ServiceClient = /** @class */ (function () { +class ServiceClient { /** * The ServiceClient constructor * @param credentials - The credentials used for authentication with the service. * @param options - The service client options that govern the behavior of the client. */ - function ServiceClient(credentials, + constructor(credentials, /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */ options) { - var _this = this; if (!options) { options = {}; } this._withCredentials = options.withCredentials || false; this._httpClient = options.httpClient || getCachedDefaultHttpClient(); this._requestPolicyOptions = new RequestPolicyOptions(options.httpPipelineLogger); - var requestPolicyFactories; + let requestPolicyFactories; if (Array.isArray(options.requestPolicyFactories)) { logger.info("ServiceClient: using custom request policies"); requestPolicyFactories = options.requestPolicyFactories; } else { - var authPolicyFactory = undefined; + let authPolicyFactory = undefined; if (coreAuth.isTokenCredential(credentials)) { logger.info("ServiceClient: creating bearer token authentication policy from provided credentials"); // Create a wrapped RequestPolicyFactory here so that we can provide the @@ -14645,16 +13711,16 @@ var ServiceClient = /** @class */ (function () { // implementations do not set baseUri until after ServiceClient's constructor // is finished, leaving baseUri empty at the time when it is needed to // build the correct scope name. - var wrappedPolicyFactory = function () { - var bearerTokenPolicyFactory = undefined; + const wrappedPolicyFactory = () => { + let bearerTokenPolicyFactory = undefined; // eslint-disable-next-line @typescript-eslint/no-this-alias - var serviceClient = _this; - var serviceClientOptions = options; + const serviceClient = this; + const serviceClientOptions = options; return { - create: function (nextPolicy, createOptions) { - var credentialScopes = getCredentialScopes(serviceClientOptions, serviceClient.baseUri); + create(nextPolicy, createOptions) { + const credentialScopes = getCredentialScopes(serviceClientOptions, serviceClient.baseUri); if (!credentialScopes) { - throw new Error("When using credential, the ServiceClient must contain a baseUri or a credentialScopes in ServiceClientOptions. Unable to create a bearerTokenAuthenticationPolicy"); + throw new Error(`When using credential, the ServiceClient must contain a baseUri or a credentialScopes in ServiceClientOptions. Unable to create a bearerTokenAuthenticationPolicy`); } if (bearerTokenPolicyFactory === undefined || bearerTokenPolicyFactory === null) { bearerTokenPolicyFactory = bearerTokenAuthenticationPolicy(credentials, credentialScopes); @@ -14677,7 +13743,7 @@ var ServiceClient = /** @class */ (function () { if (options.requestPolicyFactories) { // options.requestPolicyFactories can also be a function that manipulates // the default requestPolicyFactories array - var newRequestPolicyFactories = options.requestPolicyFactories(requestPolicyFactories); + const newRequestPolicyFactories = options.requestPolicyFactories(requestPolicyFactories); if (newRequestPolicyFactories) { requestPolicyFactories = newRequestPolicyFactories; } @@ -14688,11 +13754,11 @@ var ServiceClient = /** @class */ (function () { /** * Send the provided httpRequest. */ - ServiceClient.prototype.sendRequest = function (options) { + sendRequest(options) { if (options === null || options === undefined || typeof options !== "object") { throw new Error("options cannot be null or undefined and it must be of type object."); } - var httpRequest; + let httpRequest; try { if (isWebResourceLike(options)) { options.validateRequestProperties(); @@ -14706,242 +13772,221 @@ var ServiceClient = /** @class */ (function () { catch (error) { return Promise.reject(error); } - var httpPipeline = this._httpClient; + let httpPipeline = this._httpClient; if (this._requestPolicyFactories && this._requestPolicyFactories.length > 0) { - for (var i = this._requestPolicyFactories.length - 1; i >= 0; --i) { + for (let i = this._requestPolicyFactories.length - 1; i >= 0; --i) { httpPipeline = this._requestPolicyFactories[i].create(httpPipeline, this._requestPolicyOptions); } } return httpPipeline.sendRequest(httpRequest); - }; + } /** * Send an HTTP request that is populated using the provided OperationSpec. * @param operationArguments - The arguments that the HTTP request's templated values will be populated from. * @param operationSpec - The OperationSpec to use to populate the httpRequest. * @param callback - The callback to call when the response is received. */ - ServiceClient.prototype.sendOperationRequest = function (operationArguments, operationSpec, callback) { + async sendOperationRequest(operationArguments, operationSpec, callback) { var _a; - return tslib.__awaiter(this, void 0, void 0, function () { - var serializerOptions, httpRequest, result, baseUri, requestUrl, _i, _b, urlParameter, urlParameterValue, _c, _d, queryParameter, queryParameterValue, index, item, index, contentType, _e, _f, headerParameter, headerValue, headerCollectionPrefix, _g, _h, key, options, customHeaderName, rawResponse, sendRequestError, error_1, error_2, cb; - return tslib.__generator(this, function (_j) { - switch (_j.label) { - case 0: - if (typeof operationArguments.options === "function") { - callback = operationArguments.options; - operationArguments.options = undefined; - } - serializerOptions = (_a = operationArguments.options) === null || _a === void 0 ? void 0 : _a.serializerOptions; - httpRequest = new WebResource(); - _j.label = 1; - case 1: - _j.trys.push([1, 6, , 7]); - baseUri = operationSpec.baseUrl || this.baseUri; - if (!baseUri) { - throw new Error("If operationSpec.baseUrl is not specified, then the ServiceClient must have a baseUri string property that contains the base URL to use."); - } - httpRequest.method = operationSpec.httpMethod; - httpRequest.operationSpec = operationSpec; - requestUrl = URLBuilder.parse(baseUri); - if (operationSpec.path) { - requestUrl.appendPath(operationSpec.path); - } - if (operationSpec.urlParameters && operationSpec.urlParameters.length > 0) { - for (_i = 0, _b = operationSpec.urlParameters; _i < _b.length; _i++) { - urlParameter = _b[_i]; - urlParameterValue = getOperationArgumentValueFromParameter(this, operationArguments, urlParameter, operationSpec.serializer); - urlParameterValue = operationSpec.serializer.serialize(urlParameter.mapper, urlParameterValue, getPathStringFromParameter(urlParameter), serializerOptions); - if (!urlParameter.skipEncoding) { - urlParameterValue = encodeURIComponent(urlParameterValue); + if (typeof operationArguments.options === "function") { + callback = operationArguments.options; + operationArguments.options = undefined; + } + const serializerOptions = (_a = operationArguments.options) === null || _a === void 0 ? void 0 : _a.serializerOptions; + const httpRequest = new WebResource(); + let result; + try { + const baseUri = operationSpec.baseUrl || this.baseUri; + if (!baseUri) { + throw new Error("If operationSpec.baseUrl is not specified, then the ServiceClient must have a baseUri string property that contains the base URL to use."); + } + httpRequest.method = operationSpec.httpMethod; + httpRequest.operationSpec = operationSpec; + const requestUrl = URLBuilder.parse(baseUri); + if (operationSpec.path) { + requestUrl.appendPath(operationSpec.path); + } + if (operationSpec.urlParameters && operationSpec.urlParameters.length > 0) { + for (const urlParameter of operationSpec.urlParameters) { + let urlParameterValue = getOperationArgumentValueFromParameter(this, operationArguments, urlParameter, operationSpec.serializer); + urlParameterValue = operationSpec.serializer.serialize(urlParameter.mapper, urlParameterValue, getPathStringFromParameter(urlParameter), serializerOptions); + if (!urlParameter.skipEncoding) { + urlParameterValue = encodeURIComponent(urlParameterValue); + } + requestUrl.replaceAll(`{${urlParameter.mapper.serializedName || getPathStringFromParameter(urlParameter)}}`, urlParameterValue); + } + } + if (operationSpec.queryParameters && operationSpec.queryParameters.length > 0) { + for (const queryParameter of operationSpec.queryParameters) { + let queryParameterValue = getOperationArgumentValueFromParameter(this, operationArguments, queryParameter, operationSpec.serializer); + if (queryParameterValue !== undefined && queryParameterValue !== null) { + queryParameterValue = operationSpec.serializer.serialize(queryParameter.mapper, queryParameterValue, getPathStringFromParameter(queryParameter), serializerOptions); + if (queryParameter.collectionFormat !== undefined && + queryParameter.collectionFormat !== null) { + if (queryParameter.collectionFormat === exports.QueryCollectionFormat.Multi) { + if (queryParameterValue.length === 0) { + // The collection is empty, no need to try serializing the current queryParam + continue; } - requestUrl.replaceAll("{" + (urlParameter.mapper.serializedName || getPathStringFromParameter(urlParameter)) + "}", urlParameterValue); - } - } - if (operationSpec.queryParameters && operationSpec.queryParameters.length > 0) { - for (_c = 0, _d = operationSpec.queryParameters; _c < _d.length; _c++) { - queryParameter = _d[_c]; - queryParameterValue = getOperationArgumentValueFromParameter(this, operationArguments, queryParameter, operationSpec.serializer); - if (queryParameterValue !== undefined && queryParameterValue !== null) { - queryParameterValue = operationSpec.serializer.serialize(queryParameter.mapper, queryParameterValue, getPathStringFromParameter(queryParameter), serializerOptions); - if (queryParameter.collectionFormat !== undefined && - queryParameter.collectionFormat !== null) { - if (queryParameter.collectionFormat === exports.QueryCollectionFormat.Multi) { - if (queryParameterValue.length === 0) { - // The collection is empty, no need to try serializing the current queryParam - continue; - } - else { - for (index in queryParameterValue) { - item = queryParameterValue[index]; - queryParameterValue[index] = - item === undefined || item === null ? "" : item.toString(); - } - } - } - else if (queryParameter.collectionFormat === exports.QueryCollectionFormat.Ssv || - queryParameter.collectionFormat === exports.QueryCollectionFormat.Tsv) { - queryParameterValue = queryParameterValue.join(queryParameter.collectionFormat); - } - } - if (!queryParameter.skipEncoding) { - if (Array.isArray(queryParameterValue)) { - for (index in queryParameterValue) { - if (queryParameterValue[index] !== undefined && - queryParameterValue[index] !== null) { - queryParameterValue[index] = encodeURIComponent(queryParameterValue[index]); - } - } - } - else { - queryParameterValue = encodeURIComponent(queryParameterValue); - } - } - if (queryParameter.collectionFormat !== undefined && - queryParameter.collectionFormat !== null && - queryParameter.collectionFormat !== exports.QueryCollectionFormat.Multi && - queryParameter.collectionFormat !== exports.QueryCollectionFormat.Ssv && - queryParameter.collectionFormat !== exports.QueryCollectionFormat.Tsv) { - queryParameterValue = queryParameterValue.join(queryParameter.collectionFormat); - } - requestUrl.setQueryParameter(queryParameter.mapper.serializedName || getPathStringFromParameter(queryParameter), queryParameterValue); - } - } - } - httpRequest.url = requestUrl.toString(); - contentType = operationSpec.contentType || this.requestContentType; - if (contentType && operationSpec.requestBody) { - httpRequest.headers.set("Content-Type", contentType); - } - if (operationSpec.headerParameters) { - for (_e = 0, _f = operationSpec.headerParameters; _e < _f.length; _e++) { - headerParameter = _f[_e]; - headerValue = getOperationArgumentValueFromParameter(this, operationArguments, headerParameter, operationSpec.serializer); - if (headerValue !== undefined && headerValue !== null) { - headerValue = operationSpec.serializer.serialize(headerParameter.mapper, headerValue, getPathStringFromParameter(headerParameter), serializerOptions); - headerCollectionPrefix = headerParameter.mapper - .headerCollectionPrefix; - if (headerCollectionPrefix) { - for (_g = 0, _h = Object.keys(headerValue); _g < _h.length; _g++) { - key = _h[_g]; - httpRequest.headers.set(headerCollectionPrefix + key, headerValue[key]); - } - } - else { - httpRequest.headers.set(headerParameter.mapper.serializedName || - getPathStringFromParameter(headerParameter), headerValue); + else { + for (const index in queryParameterValue) { + const item = queryParameterValue[index]; + queryParameterValue[index] = + item === undefined || item === null ? "" : item.toString(); } } } + else if (queryParameter.collectionFormat === exports.QueryCollectionFormat.Ssv || + queryParameter.collectionFormat === exports.QueryCollectionFormat.Tsv) { + queryParameterValue = queryParameterValue.join(queryParameter.collectionFormat); + } } - options = operationArguments.options; - if (options) { - if (options.customHeaders) { - for (customHeaderName in options.customHeaders) { - httpRequest.headers.set(customHeaderName, options.customHeaders[customHeaderName]); + if (!queryParameter.skipEncoding) { + if (Array.isArray(queryParameterValue)) { + for (const index in queryParameterValue) { + if (queryParameterValue[index] !== undefined && + queryParameterValue[index] !== null) { + queryParameterValue[index] = encodeURIComponent(queryParameterValue[index]); + } } } - if (options.abortSignal) { - httpRequest.abortSignal = options.abortSignal; - } - if (options.timeout) { - httpRequest.timeout = options.timeout; - } - if (options.onUploadProgress) { - httpRequest.onUploadProgress = options.onUploadProgress; - } - if (options.onDownloadProgress) { - httpRequest.onDownloadProgress = options.onDownloadProgress; - } - if (options.spanOptions) { - httpRequest.spanOptions = options.spanOptions; - } - if (options.tracingContext) { - httpRequest.tracingContext = options.tracingContext; - } - if (options.shouldDeserialize !== undefined && options.shouldDeserialize !== null) { - httpRequest.shouldDeserialize = options.shouldDeserialize; + else { + queryParameterValue = encodeURIComponent(queryParameterValue); } } - httpRequest.withCredentials = this._withCredentials; - serializeRequestBody(this, httpRequest, operationArguments, operationSpec); - if (httpRequest.streamResponseStatusCodes === undefined) { - httpRequest.streamResponseStatusCodes = getStreamResponseStatusCodes(operationSpec); + if (queryParameter.collectionFormat !== undefined && + queryParameter.collectionFormat !== null && + queryParameter.collectionFormat !== exports.QueryCollectionFormat.Multi && + queryParameter.collectionFormat !== exports.QueryCollectionFormat.Ssv && + queryParameter.collectionFormat !== exports.QueryCollectionFormat.Tsv) { + queryParameterValue = queryParameterValue.join(queryParameter.collectionFormat); } - rawResponse = void 0; - sendRequestError = void 0; - _j.label = 2; - case 2: - _j.trys.push([2, 4, , 5]); - return [4 /*yield*/, this.sendRequest(httpRequest)]; - case 3: - rawResponse = _j.sent(); - return [3 /*break*/, 5]; - case 4: - error_1 = _j.sent(); - sendRequestError = error_1; - return [3 /*break*/, 5]; - case 5: - if (sendRequestError) { - if (sendRequestError.response) { - sendRequestError.details = flattenResponse(sendRequestError.response, operationSpec.responses[sendRequestError.statusCode] || - operationSpec.responses["default"]); + requestUrl.setQueryParameter(queryParameter.mapper.serializedName || getPathStringFromParameter(queryParameter), queryParameterValue); + } + } + } + httpRequest.url = requestUrl.toString(); + const contentType = operationSpec.contentType || this.requestContentType; + if (contentType && operationSpec.requestBody) { + httpRequest.headers.set("Content-Type", contentType); + } + if (operationSpec.headerParameters) { + for (const headerParameter of operationSpec.headerParameters) { + let headerValue = getOperationArgumentValueFromParameter(this, operationArguments, headerParameter, operationSpec.serializer); + if (headerValue !== undefined && headerValue !== null) { + headerValue = operationSpec.serializer.serialize(headerParameter.mapper, headerValue, getPathStringFromParameter(headerParameter), serializerOptions); + const headerCollectionPrefix = headerParameter.mapper + .headerCollectionPrefix; + if (headerCollectionPrefix) { + for (const key of Object.keys(headerValue)) { + httpRequest.headers.set(headerCollectionPrefix + key, headerValue[key]); } - result = Promise.reject(sendRequestError); } else { - result = Promise.resolve(flattenResponse(rawResponse, operationSpec.responses[rawResponse.status])); + httpRequest.headers.set(headerParameter.mapper.serializedName || + getPathStringFromParameter(headerParameter), headerValue); } - return [3 /*break*/, 7]; - case 6: - error_2 = _j.sent(); - result = Promise.reject(error_2); - return [3 /*break*/, 7]; - case 7: - cb = callback; - if (cb) { - result - .then(function (res) { return cb(null, res._response.parsedBody, res._response.request, res._response); }) - .catch(function (err) { return cb(err); }); - } - return [2 /*return*/, result]; + } } - }); - }); - }; - return ServiceClient; -}()); + } + const options = operationArguments.options; + if (options) { + if (options.customHeaders) { + for (const customHeaderName in options.customHeaders) { + httpRequest.headers.set(customHeaderName, options.customHeaders[customHeaderName]); + } + } + if (options.abortSignal) { + httpRequest.abortSignal = options.abortSignal; + } + if (options.timeout) { + httpRequest.timeout = options.timeout; + } + if (options.onUploadProgress) { + httpRequest.onUploadProgress = options.onUploadProgress; + } + if (options.onDownloadProgress) { + httpRequest.onDownloadProgress = options.onDownloadProgress; + } + if (options.spanOptions) { + // By passing spanOptions if they exist at runtime, we're backwards compatible with @azure/core-tracing@preview.13 and earlier. + httpRequest.spanOptions = options.spanOptions; + } + if (options.tracingContext) { + httpRequest.tracingContext = options.tracingContext; + } + if (options.shouldDeserialize !== undefined && options.shouldDeserialize !== null) { + httpRequest.shouldDeserialize = options.shouldDeserialize; + } + } + httpRequest.withCredentials = this._withCredentials; + serializeRequestBody(this, httpRequest, operationArguments, operationSpec); + if (httpRequest.streamResponseStatusCodes === undefined) { + httpRequest.streamResponseStatusCodes = getStreamResponseStatusCodes(operationSpec); + } + let rawResponse; + let sendRequestError; + try { + rawResponse = await this.sendRequest(httpRequest); + } + catch (error) { + sendRequestError = error; + } + if (sendRequestError) { + if (sendRequestError.response) { + sendRequestError.details = flattenResponse(sendRequestError.response, operationSpec.responses[sendRequestError.statusCode] || + operationSpec.responses["default"]); + } + result = Promise.reject(sendRequestError); + } + else { + result = Promise.resolve(flattenResponse(rawResponse, operationSpec.responses[rawResponse.status])); + } + } + catch (error) { + result = Promise.reject(error); + } + const cb = callback; + if (cb) { + result + .then((res) => cb(null, res._response.parsedBody, res._response.request, res._response)) + .catch((err) => cb(err)); + } + return result; + } +} function serializeRequestBody(serviceClient, httpRequest, operationArguments, operationSpec) { var _a, _b, _c, _d, _e, _f; - var serializerOptions = (_b = (_a = operationArguments.options) === null || _a === void 0 ? void 0 : _a.serializerOptions) !== null && _b !== void 0 ? _b : {}; - var updatedOptions = { + const serializerOptions = (_b = (_a = operationArguments.options) === null || _a === void 0 ? void 0 : _a.serializerOptions) !== null && _b !== void 0 ? _b : {}; + const updatedOptions = { rootName: (_c = serializerOptions.rootName) !== null && _c !== void 0 ? _c : "", includeRoot: (_d = serializerOptions.includeRoot) !== null && _d !== void 0 ? _d : false, xmlCharKey: (_e = serializerOptions.xmlCharKey) !== null && _e !== void 0 ? _e : XML_CHARKEY }; - var xmlCharKey = serializerOptions.xmlCharKey; + const xmlCharKey = serializerOptions.xmlCharKey; if (operationSpec.requestBody && operationSpec.requestBody.mapper) { httpRequest.body = getOperationArgumentValueFromParameter(serviceClient, operationArguments, operationSpec.requestBody, operationSpec.serializer); - var bodyMapper = operationSpec.requestBody.mapper; - var required = bodyMapper.required, xmlName = bodyMapper.xmlName, xmlElementName = bodyMapper.xmlElementName, serializedName = bodyMapper.serializedName, xmlNamespace = bodyMapper.xmlNamespace, xmlNamespacePrefix = bodyMapper.xmlNamespacePrefix; - var typeName = bodyMapper.type.name; + const bodyMapper = operationSpec.requestBody.mapper; + const { required, xmlName, xmlElementName, serializedName, xmlNamespace, xmlNamespacePrefix } = bodyMapper; + const typeName = bodyMapper.type.name; try { if ((httpRequest.body !== undefined && httpRequest.body !== null) || required) { - var requestBodyParameterPathString = getPathStringFromParameter(operationSpec.requestBody); + const requestBodyParameterPathString = getPathStringFromParameter(operationSpec.requestBody); httpRequest.body = operationSpec.serializer.serialize(bodyMapper, httpRequest.body, requestBodyParameterPathString, updatedOptions); - var isStream = typeName === MapperType.Stream; + const isStream = typeName === MapperType.Stream; if (operationSpec.isXML) { - var xmlnsKey = xmlNamespacePrefix ? "xmlns:" + xmlNamespacePrefix : "xmlns"; - var value = getXmlValueWithNamespace(xmlNamespace, xmlnsKey, typeName, httpRequest.body, updatedOptions); + const xmlnsKey = xmlNamespacePrefix ? `xmlns:${xmlNamespacePrefix}` : "xmlns"; + const value = getXmlValueWithNamespace(xmlNamespace, xmlnsKey, typeName, httpRequest.body, updatedOptions); if (typeName === MapperType.Sequence) { httpRequest.body = stringifyXML(prepareXMLRootList(value, xmlElementName || xmlName || serializedName, xmlnsKey, xmlNamespace), { rootName: xmlName || serializedName, - xmlCharKey: xmlCharKey + xmlCharKey }); } else if (!isStream) { httpRequest.body = stringifyXML(value, { rootName: xmlName || serializedName, - xmlCharKey: xmlCharKey + xmlCharKey }); } } @@ -14957,16 +14002,15 @@ function serializeRequestBody(serviceClient, httpRequest, operationArguments, op } } catch (error) { - throw new Error("Error \"" + error.message + "\" occurred in serializing the payload - " + JSON.stringify(serializedName, undefined, " ") + "."); + throw new Error(`Error "${error.message}" occurred in serializing the payload - ${JSON.stringify(serializedName, undefined, " ")}.`); } } else if (operationSpec.formDataParameters && operationSpec.formDataParameters.length > 0) { httpRequest.formData = {}; - for (var _i = 0, _g = operationSpec.formDataParameters; _i < _g.length; _i++) { - var formDataParameter = _g[_i]; - var formDataParameterValue = getOperationArgumentValueFromParameter(serviceClient, operationArguments, formDataParameter, operationSpec.serializer); + for (const formDataParameter of operationSpec.formDataParameters) { + const formDataParameterValue = getOperationArgumentValueFromParameter(serviceClient, operationArguments, formDataParameter, operationSpec.serializer); if (formDataParameterValue !== undefined && formDataParameterValue !== null) { - var formDataParameterPropertyName = formDataParameter.mapper.serializedName || getPathStringFromParameter(formDataParameter); + const formDataParameterPropertyName = formDataParameter.mapper.serializedName || getPathStringFromParameter(formDataParameter); httpRequest.formData[formDataParameterPropertyName] = operationSpec.serializer.serialize(formDataParameter.mapper, formDataParameterValue, getPathStringFromParameter(formDataParameter), updatedOptions); } } @@ -14976,19 +14020,18 @@ function serializeRequestBody(serviceClient, httpRequest, operationArguments, op * Adds an xml namespace to the xml serialized object if needed, otherwise it just returns the value itself */ function getXmlValueWithNamespace(xmlNamespace, xmlnsKey, typeName, serializedValue, options) { - var _a; // Composite and Sequence schemas already got their root namespace set during serialization // We just need to add xmlns to the other schema types if (xmlNamespace && !["Composite", "Sequence", "Dictionary"].includes(typeName)) { - var result = {}; + const result = {}; result[options.xmlCharKey] = serializedValue; - result[XML_ATTRKEY] = (_a = {}, _a[xmlnsKey] = xmlNamespace, _a); + result[XML_ATTRKEY] = { [xmlnsKey]: xmlNamespace }; return result; } return serializedValue; } function getValueOrFunctionResult(value, defaultValueCreator) { - var result; + let result; if (typeof value === "string") { result = value; } @@ -15001,15 +14044,15 @@ function getValueOrFunctionResult(value, defaultValueCreator) { return result; } function createDefaultRequestPolicyFactories(authPolicyFactory, options) { - var factories = []; + const factories = []; if (options.generateClientRequestIdHeader) { factories.push(generateClientRequestIdPolicy(options.clientRequestIdHeaderName)); } if (authPolicyFactory) { factories.push(authPolicyFactory); } - var userAgentHeaderName = getValueOrFunctionResult(options.userAgentHeaderName, getDefaultUserAgentHeaderName); - var userAgentHeaderValue = getValueOrFunctionResult(options.userAgent, getDefaultUserAgentValue); + const userAgentHeaderName = getValueOrFunctionResult(options.userAgentHeaderName, getDefaultUserAgentHeaderName); + const userAgentHeaderValue = getValueOrFunctionResult(options.userAgent, getDefaultUserAgentValue); if (userAgentHeaderName && userAgentHeaderValue) { factories.push(userAgentPolicy({ key: userAgentHeaderName, value: userAgentHeaderValue })); } @@ -15021,37 +14064,37 @@ function createDefaultRequestPolicyFactories(authPolicyFactory, options) { factories.push(throttlingRetryPolicy()); } factories.push(deserializationPolicy(options.deserializationContentTypes)); - { + if (isNode) { factories.push(proxyPolicy(options.proxySettings)); } factories.push(logPolicy({ logger: logger.info })); return factories; } function createPipelineFromOptions(pipelineOptions, authPolicyFactory) { - var requestPolicyFactories = []; + const requestPolicyFactories = []; if (pipelineOptions.sendStreamingJson) { requestPolicyFactories.push(ndJsonPolicy()); } - var userAgentValue = undefined; + let userAgentValue = undefined; if (pipelineOptions.userAgentOptions && pipelineOptions.userAgentOptions.userAgentPrefix) { - var userAgentInfo = []; + const userAgentInfo = []; userAgentInfo.push(pipelineOptions.userAgentOptions.userAgentPrefix); // Add the default user agent value if it isn't already specified // by the userAgentPrefix option. - var defaultUserAgentInfo = getDefaultUserAgentValue(); + const defaultUserAgentInfo = getDefaultUserAgentValue(); if (userAgentInfo.indexOf(defaultUserAgentInfo) === -1) { userAgentInfo.push(defaultUserAgentInfo); } userAgentValue = userAgentInfo.join(" "); } - var keepAliveOptions = tslib.__assign(tslib.__assign({}, DefaultKeepAliveOptions), pipelineOptions.keepAliveOptions); - var retryOptions = tslib.__assign(tslib.__assign({}, DefaultRetryOptions), pipelineOptions.retryOptions); - var redirectOptions = tslib.__assign(tslib.__assign({}, DefaultRedirectOptions), pipelineOptions.redirectOptions); - { + const keepAliveOptions = Object.assign(Object.assign({}, DefaultKeepAliveOptions), pipelineOptions.keepAliveOptions); + const retryOptions = Object.assign(Object.assign({}, DefaultRetryOptions), pipelineOptions.retryOptions); + const redirectOptions = Object.assign(Object.assign({}, DefaultRedirectOptions), pipelineOptions.redirectOptions); + if (isNode) { requestPolicyFactories.push(proxyPolicy(pipelineOptions.proxyOptions)); } - var deserializationOptions = tslib.__assign(tslib.__assign({}, DefaultDeserializationOptions), pipelineOptions.deserializationOptions); - var loggingOptions = tslib.__assign({}, pipelineOptions.loggingOptions); + const deserializationOptions = Object.assign(Object.assign({}, DefaultDeserializationOptions), pipelineOptions.deserializationOptions); + const loggingOptions = Object.assign({}, pipelineOptions.loggingOptions); requestPolicyFactories.push(tracingPolicy({ userAgent: userAgentValue }), keepAlivePolicy(keepAliveOptions), userAgentPolicy({ value: userAgentValue }), generateClientRequestIdPolicy(), deserializationPolicy(deserializationOptions.expectedContentTypes), throttlingRetryPolicy(), systemErrorRetryPolicy(), exponentialRetryPolicy(retryOptions.maxRetries, retryOptions.retryDelayInMs, retryOptions.maxRetryDelayInMs)); if (redirectOptions.handleRedirects) { requestPolicyFactories.push(redirectPolicy(redirectOptions.maxRetries)); @@ -15065,7 +14108,7 @@ function createPipelineFromOptions(pipelineOptions, authPolicyFactory) { } return { httpClient: pipelineOptions.httpClient, - requestPolicyFactories: requestPolicyFactories + requestPolicyFactories }; } function getOperationArgumentValueFromParameter(serviceClient, operationArguments, parameter, serializer) { @@ -15073,22 +14116,22 @@ function getOperationArgumentValueFromParameter(serviceClient, operationArgument } function getOperationArgumentValueFromParameterPath(serviceClient, operationArguments, parameterPath, parameterMapper, serializer) { var _a; - var value; + let value; if (typeof parameterPath === "string") { parameterPath = [parameterPath]; } - var serializerOptions = (_a = operationArguments.options) === null || _a === void 0 ? void 0 : _a.serializerOptions; + const serializerOptions = (_a = operationArguments.options) === null || _a === void 0 ? void 0 : _a.serializerOptions; if (Array.isArray(parameterPath)) { if (parameterPath.length > 0) { if (parameterMapper.isConstant) { value = parameterMapper.defaultValue; } else { - var propertySearchResult = getPropertyFromParameterPath(operationArguments, parameterPath); + let propertySearchResult = getPropertyFromParameterPath(operationArguments, parameterPath); if (!propertySearchResult.propertyFound) { propertySearchResult = getPropertyFromParameterPath(serviceClient, parameterPath); } - var useDefaultValue = false; + let useDefaultValue = false; if (!propertySearchResult.propertyFound) { useDefaultValue = parameterMapper.required || @@ -15097,7 +14140,7 @@ function getOperationArgumentValueFromParameterPath(serviceClient, operationArgu value = useDefaultValue ? parameterMapper.defaultValue : propertySearchResult.propertyValue; } // Serialize just for validation purposes. - var parameterPathString = getPathStringFromParameterPath(parameterPath, parameterMapper); + const parameterPathString = getPathStringFromParameterPath(parameterPath, parameterMapper); serializer.serialize(parameterMapper, value, parameterPathString, serializerOptions); } } @@ -15105,12 +14148,12 @@ function getOperationArgumentValueFromParameterPath(serviceClient, operationArgu if (parameterMapper.required) { value = {}; } - for (var propertyName in parameterPath) { - var propertyMapper = parameterMapper.type.modelProperties[propertyName]; - var propertyPath = parameterPath[propertyName]; - var propertyValue = getOperationArgumentValueFromParameterPath(serviceClient, operationArguments, propertyPath, propertyMapper, serializer); + for (const propertyName in parameterPath) { + const propertyMapper = parameterMapper.type.modelProperties[propertyName]; + const propertyPath = parameterPath[propertyName]; + const propertyValue = getOperationArgumentValueFromParameterPath(serviceClient, operationArguments, propertyPath, propertyMapper, serializer); // Serialize just for validation purposes. - var propertyPathString = getPathStringFromParameterPath(propertyPath, propertyMapper); + const propertyPathString = getPathStringFromParameterPath(propertyPath, propertyMapper); serializer.serialize(propertyMapper, propertyValue, propertyPathString, serializerOptions); if (propertyValue !== undefined && propertyValue !== null) { if (!value) { @@ -15123,10 +14166,10 @@ function getOperationArgumentValueFromParameterPath(serviceClient, operationArgu return value; } function getPropertyFromParameterPath(parent, parameterPath) { - var result = { propertyFound: false }; - var i = 0; + const result = { propertyFound: false }; + let i = 0; for (; i < parameterPath.length; ++i) { - var parameterPathPart = parameterPath[i]; + const parameterPathPart = parameterPath[i]; // Make sure to check inherited properties too, so don't use hasOwnProperty(). if (parent !== undefined && parent !== null && parameterPathPart in parent) { parent = parent[parameterPathPart]; @@ -15142,31 +14185,29 @@ function getPropertyFromParameterPath(parent, parameterPath) { return result; } function flattenResponse(_response, responseSpec) { - var parsedHeaders = _response.parsedHeaders; - var bodyMapper = responseSpec && responseSpec.bodyMapper; - var addOperationResponse = function (obj) { + const parsedHeaders = _response.parsedHeaders; + const bodyMapper = responseSpec && responseSpec.bodyMapper; + const addOperationResponse = (obj) => { return Object.defineProperty(obj, "_response", { value: _response }); }; if (bodyMapper) { - var typeName = bodyMapper.type.name; + const typeName = bodyMapper.type.name; if (typeName === "Stream") { - return addOperationResponse(tslib.__assign(tslib.__assign({}, parsedHeaders), { blobBody: _response.blobBody, readableStreamBody: _response.readableStreamBody })); + return addOperationResponse(Object.assign(Object.assign({}, parsedHeaders), { blobBody: _response.blobBody, readableStreamBody: _response.readableStreamBody })); } - var modelProperties_1 = (typeName === "Composite" && bodyMapper.type.modelProperties) || {}; - var isPageableResponse = Object.keys(modelProperties_1).some(function (k) { return modelProperties_1[k].serializedName === ""; }); + const modelProperties = (typeName === "Composite" && bodyMapper.type.modelProperties) || {}; + const isPageableResponse = Object.keys(modelProperties).some((k) => modelProperties[k].serializedName === ""); if (typeName === "Sequence" || isPageableResponse) { - var arrayResponse = tslib.__spreadArray([], (_response.parsedBody || [])); - for (var _i = 0, _a = Object.keys(modelProperties_1); _i < _a.length; _i++) { - var key = _a[_i]; - if (modelProperties_1[key].serializedName) { + const arrayResponse = [...(_response.parsedBody || [])]; + for (const key of Object.keys(modelProperties)) { + if (modelProperties[key].serializedName) { arrayResponse[key] = _response.parsedBody[key]; } } if (parsedHeaders) { - for (var _b = 0, _c = Object.keys(parsedHeaders); _b < _c.length; _b++) { - var key = _c[_b]; + for (const key of Object.keys(parsedHeaders)) { arrayResponse[key] = parsedHeaders[key]; } } @@ -15174,26 +14215,26 @@ function flattenResponse(_response, responseSpec) { return arrayResponse; } if (typeName === "Composite" || typeName === "Dictionary") { - return addOperationResponse(tslib.__assign(tslib.__assign({}, parsedHeaders), _response.parsedBody)); + return addOperationResponse(Object.assign(Object.assign({}, parsedHeaders), _response.parsedBody)); } } if (bodyMapper || _response.request.method === "HEAD" || isPrimitiveType(_response.parsedBody)) { // primitive body types and HEAD booleans - return addOperationResponse(tslib.__assign(tslib.__assign({}, parsedHeaders), { body: _response.parsedBody })); + return addOperationResponse(Object.assign(Object.assign({}, parsedHeaders), { body: _response.parsedBody })); } - return addOperationResponse(tslib.__assign(tslib.__assign({}, parsedHeaders), _response.parsedBody)); + return addOperationResponse(Object.assign(Object.assign({}, parsedHeaders), _response.parsedBody)); } function getCredentialScopes(options, baseUri) { if (options === null || options === void 0 ? void 0 : options.credentialScopes) { - var scopes = options.credentialScopes; + const scopes = options.credentialScopes; return Array.isArray(scopes) - ? scopes.map(function (scope) { return new url.URL(scope).toString(); }) + ? scopes.map((scope) => new url.URL(scope).toString()) : new url.URL(scopes).toString(); } if (baseUri) { - return baseUri + "/.default"; + return `${baseUri}/.default`; } return undefined; } @@ -15217,7 +14258,7 @@ function createSpanFunction(args) { /** * Defines the default token refresh buffer duration. */ -var TokenRefreshBufferMs = 2 * 60 * 1000; // 2 Minutes +const TokenRefreshBufferMs = 2 * 60 * 1000; // 2 Minutes /** * Provides an {@link AccessTokenCache} implementation which clears * the cached {@link AccessToken}'s after the expiresOnTimestamp has @@ -15225,38 +14266,36 @@ var TokenRefreshBufferMs = 2 * 60 * 1000; // 2 Minutes * * @deprecated No longer used in the bearer authorization policy. */ -var ExpiringAccessTokenCache = /** @class */ (function () { +class ExpiringAccessTokenCache { /** * Constructs an instance of {@link ExpiringAccessTokenCache} with * an optional expiration buffer time. */ - function ExpiringAccessTokenCache(tokenRefreshBufferMs) { - if (tokenRefreshBufferMs === void 0) { tokenRefreshBufferMs = TokenRefreshBufferMs; } + constructor(tokenRefreshBufferMs = TokenRefreshBufferMs) { this.cachedToken = undefined; this.tokenRefreshBufferMs = tokenRefreshBufferMs; } - ExpiringAccessTokenCache.prototype.setCachedToken = function (accessToken) { + setCachedToken(accessToken) { this.cachedToken = accessToken; - }; - ExpiringAccessTokenCache.prototype.getCachedToken = function () { + } + getCachedToken() { if (this.cachedToken && Date.now() + this.tokenRefreshBufferMs >= this.cachedToken.expiresOnTimestamp) { this.cachedToken = undefined; } return this.cachedToken; - }; - return ExpiringAccessTokenCache; -}()); + } +} // Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. /** * Helps the core-http token authentication policies with requesting a new token if we're not currently waiting for a new token. * * @deprecated No longer used in the bearer authorization policy. */ -var AccessTokenRefresher = /** @class */ (function () { - function AccessTokenRefresher(credential, scopes, requiredMillisecondsBeforeNewRefresh) { - if (requiredMillisecondsBeforeNewRefresh === void 0) { requiredMillisecondsBeforeNewRefresh = 30000; } +class AccessTokenRefresher { + constructor(credential, scopes, requiredMillisecondsBeforeNewRefresh = 30000) { this.credential = credential; this.scopes = scopes; this.requiredMillisecondsBeforeNewRefresh = requiredMillisecondsBeforeNewRefresh; @@ -15266,49 +14305,38 @@ var AccessTokenRefresher = /** @class */ (function () { * Returns true if the required milliseconds(defaulted to 30000) have been passed signifying * that we are ready for a new refresh. */ - AccessTokenRefresher.prototype.isReady = function () { + isReady() { // We're only ready for a new refresh if the required milliseconds have passed. return (!this.lastCalled || Date.now() - this.lastCalled > this.requiredMillisecondsBeforeNewRefresh); - }; + } /** * Stores the time in which it is called, * then requests a new token, * then sets this.promise to undefined, * then returns the token. */ - AccessTokenRefresher.prototype.getToken = function (options) { - return tslib.__awaiter(this, void 0, void 0, function () { - var token; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - this.lastCalled = Date.now(); - return [4 /*yield*/, this.credential.getToken(this.scopes, options)]; - case 1: - token = _a.sent(); - this.promise = undefined; - return [2 /*return*/, token || undefined]; - } - }); - }); - }; + async getToken(options) { + this.lastCalled = Date.now(); + const token = await this.credential.getToken(this.scopes, options); + this.promise = undefined; + return token || undefined; + } /** * Requests a new token if we're not currently waiting for a new token. * Returns null if the required time between each call hasn't been reached. */ - AccessTokenRefresher.prototype.refresh = function (options) { + refresh(options) { if (!this.promise) { this.promise = this.getToken(options); } return this.promise; - }; - return AccessTokenRefresher; -}()); + } +} // Copyright (c) Microsoft Corporation. -var HeaderConstants = Constants.HeaderConstants; -var DEFAULT_AUTHORIZATION_SCHEME = "Basic"; -var BasicAuthenticationCredentials = /** @class */ (function () { +const HeaderConstants = Constants.HeaderConstants; +const DEFAULT_AUTHORIZATION_SCHEME = "Basic"; +class BasicAuthenticationCredentials { /** * Creates a new BasicAuthenticationCredentials object. * @@ -15316,8 +14344,7 @@ var BasicAuthenticationCredentials = /** @class */ (function () { * @param password - Password. * @param authorizationScheme - The authorization scheme. */ - function BasicAuthenticationCredentials(userName, password, authorizationScheme) { - if (authorizationScheme === void 0) { authorizationScheme = DEFAULT_AUTHORIZATION_SCHEME; } + constructor(userName, password, authorizationScheme = DEFAULT_AUTHORIZATION_SCHEME) { this.authorizationScheme = DEFAULT_AUTHORIZATION_SCHEME; if (userName === null || userName === undefined || typeof userName.valueOf() !== "string") { throw new Error("userName cannot be null or undefined and must be of type string."); @@ -15335,28 +14362,27 @@ var BasicAuthenticationCredentials = /** @class */ (function () { * @param webResource - The WebResourceLike to be signed. * @returns The signed request object. */ - BasicAuthenticationCredentials.prototype.signRequest = function (webResource) { - var credentials = this.userName + ":" + this.password; - var encodedCredentials = this.authorizationScheme + " " + encodeString(credentials); + signRequest(webResource) { + const credentials = `${this.userName}:${this.password}`; + const encodedCredentials = `${this.authorizationScheme} ${encodeString(credentials)}`; if (!webResource.headers) webResource.headers = new HttpHeaders(); webResource.headers.set(HeaderConstants.AUTHORIZATION, encodedCredentials); return Promise.resolve(webResource); - }; - return BasicAuthenticationCredentials; -}()); + } +} // Copyright (c) Microsoft Corporation. /** * Authenticates to a service using an API key. */ -var ApiKeyCredentials = /** @class */ (function () { +class ApiKeyCredentials { /** * @param options - Specifies the options to be provided for auth. Either header or query needs to be provided. */ - function ApiKeyCredentials(options) { + constructor(options) { if (!options || (options && !options.inHeader && !options.inQuery)) { - throw new Error("options cannot be null or undefined. Either \"inHeader\" or \"inQuery\" property of the options object needs to be provided."); + throw new Error(`options cannot be null or undefined. Either "inHeader" or "inQuery" property of the options object needs to be provided.`); } this.inHeader = options.inHeader; this.inQuery = options.inQuery; @@ -15367,60 +14393,55 @@ var ApiKeyCredentials = /** @class */ (function () { * @param webResource - The WebResourceLike to be signed. * @returns The signed request object. */ - ApiKeyCredentials.prototype.signRequest = function (webResource) { + signRequest(webResource) { if (!webResource) { - return Promise.reject(new Error("webResource cannot be null or undefined and must be of type \"object\".")); + return Promise.reject(new Error(`webResource cannot be null or undefined and must be of type "object".`)); } if (this.inHeader) { if (!webResource.headers) { webResource.headers = new HttpHeaders(); } - for (var headerName in this.inHeader) { + for (const headerName in this.inHeader) { webResource.headers.set(headerName, this.inHeader[headerName]); } } if (this.inQuery) { if (!webResource.url) { - return Promise.reject(new Error("url cannot be null in the request object.")); + return Promise.reject(new Error(`url cannot be null in the request object.`)); } if (webResource.url.indexOf("?") < 0) { webResource.url += "?"; } - for (var key in this.inQuery) { + for (const key in this.inQuery) { if (!webResource.url.endsWith("?")) { webResource.url += "&"; } - webResource.url += key + "=" + this.inQuery[key]; + webResource.url += `${key}=${this.inQuery[key]}`; } } return Promise.resolve(webResource); - }; - return ApiKeyCredentials; -}()); + } +} // Copyright (c) Microsoft Corporation. -var TopicCredentials = /** @class */ (function (_super) { - tslib.__extends(TopicCredentials, _super); +class TopicCredentials extends ApiKeyCredentials { /** * Creates a new EventGrid TopicCredentials object. * * @param topicKey - The EventGrid topic key */ - function TopicCredentials(topicKey) { - var _this = this; + constructor(topicKey) { if (!topicKey || (topicKey && typeof topicKey !== "string")) { throw new Error("topicKey cannot be null or undefined and must be of type string."); } - var options = { + const options = { inHeader: { "aeg-sas-key": topicKey } }; - _this = _super.call(this, options) || this; - return _this; + super(options); } - return TopicCredentials; -}(ApiKeyCredentials)); +} Object.defineProperty(exports, 'isTokenCredential', { enumerable: true, @@ -16008,8 +15029,292 @@ module.exports = require("assert"); /* 358 */, /* 359 */, /* 360 */, -/* 361 */, -/* 362 */, +/* 361 */ +/***/ (function(module, __unusedexports, __webpack_require__) { + +"use strict"; + + +var punycode = __webpack_require__(213); +var mappingTable = __webpack_require__(482); + +var PROCESSING_OPTIONS = { + TRANSITIONAL: 0, + NONTRANSITIONAL: 1 +}; + +function normalize(str) { // fix bug in v8 + return str.split('\u0000').map(function (s) { return s.normalize('NFC'); }).join('\u0000'); +} + +function findStatus(val) { + var start = 0; + var end = mappingTable.length - 1; + + while (start <= end) { + var mid = Math.floor((start + end) / 2); + + var target = mappingTable[mid]; + if (target[0][0] <= val && target[0][1] >= val) { + return target; + } else if (target[0][0] > val) { + end = mid - 1; + } else { + start = mid + 1; + } + } + + return null; +} + +var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; + +function countSymbols(string) { + return string + // replace every surrogate pair with a BMP symbol + .replace(regexAstralSymbols, '_') + // then get the length + .length; +} + +function mapChars(domain_name, useSTD3, processing_option) { + var hasError = false; + var processed = ""; + + var len = countSymbols(domain_name); + for (var i = 0; i < len; ++i) { + var codePoint = domain_name.codePointAt(i); + var status = findStatus(codePoint); + + switch (status[1]) { + case "disallowed": + hasError = true; + processed += String.fromCodePoint(codePoint); + break; + case "ignored": + break; + case "mapped": + processed += String.fromCodePoint.apply(String, status[2]); + break; + case "deviation": + if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) { + processed += String.fromCodePoint.apply(String, status[2]); + } else { + processed += String.fromCodePoint(codePoint); + } + break; + case "valid": + processed += String.fromCodePoint(codePoint); + break; + case "disallowed_STD3_mapped": + if (useSTD3) { + hasError = true; + processed += String.fromCodePoint(codePoint); + } else { + processed += String.fromCodePoint.apply(String, status[2]); + } + break; + case "disallowed_STD3_valid": + if (useSTD3) { + hasError = true; + } + + processed += String.fromCodePoint(codePoint); + break; + } + } + + return { + string: processed, + error: hasError + }; +} + +var combiningMarksRegex = /[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/; + +function validateLabel(label, processing_option) { + if (label.substr(0, 4) === "xn--") { + label = punycode.toUnicode(label); + processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL; + } + + var error = false; + + if (normalize(label) !== label || + (label[3] === "-" && label[4] === "-") || + label[0] === "-" || label[label.length - 1] === "-" || + label.indexOf(".") !== -1 || + label.search(combiningMarksRegex) === 0) { + error = true; + } + + var len = countSymbols(label); + for (var i = 0; i < len; ++i) { + var status = findStatus(label.codePointAt(i)); + if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== "valid") || + (processing === PROCESSING_OPTIONS.NONTRANSITIONAL && + status[1] !== "valid" && status[1] !== "deviation")) { + error = true; + break; + } + } + + return { + label: label, + error: error + }; +} + +function processing(domain_name, useSTD3, processing_option) { + var result = mapChars(domain_name, useSTD3, processing_option); + result.string = normalize(result.string); + + var labels = result.string.split("."); + for (var i = 0; i < labels.length; ++i) { + try { + var validation = validateLabel(labels[i]); + labels[i] = validation.label; + result.error = result.error || validation.error; + } catch(e) { + result.error = true; + } + } + + return { + string: labels.join("."), + error: result.error + }; +} + +module.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) { + var result = processing(domain_name, useSTD3, processing_option); + var labels = result.string.split("."); + labels = labels.map(function(l) { + try { + return punycode.toASCII(l); + } catch(e) { + result.error = true; + return l; + } + }); + + if (verifyDnsLength) { + var total = labels.slice(0, labels.length - 1).join(".").length; + if (total.length > 253 || total.length === 0) { + result.error = true; + } + + for (var i=0; i < labels.length; ++i) { + if (labels.length > 63 || labels.length === 0) { + result.error = true; + break; + } + } + } + + if (result.error) return null; + return labels.join("."); +}; + +module.exports.toUnicode = function(domain_name, useSTD3) { + var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL); + + return { + domain: result.string, + error: result.error + }; +}; + +module.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS; + + +/***/ }), +/* 362 */ +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DiagComponentLogger = void 0; +var global_utils_1 = __webpack_require__(525); +/** + * Component Logger which is meant to be used as part of any component which + * will add automatically additional namespace in front of the log message. + * It will then forward all message to global diag logger + * @example + * const cLogger = diag.createComponentLogger({ namespace: '@opentelemetry/instrumentation-http' }); + * cLogger.debug('test'); + * // @opentelemetry/instrumentation-http test + */ +var DiagComponentLogger = /** @class */ (function () { + function DiagComponentLogger(props) { + this._namespace = props.namespace || 'DiagComponentLogger'; + } + DiagComponentLogger.prototype.debug = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return logProxy('debug', this._namespace, args); + }; + DiagComponentLogger.prototype.error = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return logProxy('error', this._namespace, args); + }; + DiagComponentLogger.prototype.info = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return logProxy('info', this._namespace, args); + }; + DiagComponentLogger.prototype.warn = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return logProxy('warn', this._namespace, args); + }; + DiagComponentLogger.prototype.verbose = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return logProxy('verbose', this._namespace, args); + }; + return DiagComponentLogger; +}()); +exports.DiagComponentLogger = DiagComponentLogger; +function logProxy(funcName, namespace, args) { + var logger = global_utils_1.getGlobal('diag'); + // shortcut if logger not set + if (!logger) { + return; + } + args.unshift(namespace); + return logger[funcName].apply(logger, args); +} +//# sourceMappingURL=ComponentLogger.js.map + +/***/ }), /* 363 */, /* 364 */, /* 365 */, @@ -16049,7 +15354,7 @@ var util = __webpack_require__(669); * Code generated by Microsoft (R) AutoRest Code Generator. * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -var BlobServiceProperties = { +const BlobServiceProperties = { serializedName: "BlobServiceProperties", xmlName: "StorageServiceProperties", type: { @@ -16121,7 +15426,7 @@ var BlobServiceProperties = { } } }; -var Logging = { +const Logging = { serializedName: "Logging", type: { name: "Composite", @@ -16170,7 +15475,7 @@ var Logging = { } } }; -var RetentionPolicy = { +const RetentionPolicy = { serializedName: "RetentionPolicy", type: { name: "Composite", @@ -16197,7 +15502,7 @@ var RetentionPolicy = { } } }; -var Metrics = { +const Metrics = { serializedName: "Metrics", type: { name: "Composite", @@ -16236,7 +15541,7 @@ var Metrics = { } } }; -var CorsRule = { +const CorsRule = { serializedName: "CorsRule", type: { name: "Composite", @@ -16288,7 +15593,7 @@ var CorsRule = { } } }; -var StaticWebsite = { +const StaticWebsite = { serializedName: "StaticWebsite", type: { name: "Composite", @@ -16326,7 +15631,7 @@ var StaticWebsite = { } } }; -var StorageError = { +const StorageError = { serializedName: "StorageError", type: { name: "Composite", @@ -16349,7 +15654,7 @@ var StorageError = { } } }; -var BlobServiceStatistics = { +const BlobServiceStatistics = { serializedName: "BlobServiceStatistics", xmlName: "StorageServiceStats", type: { @@ -16367,7 +15672,7 @@ var BlobServiceStatistics = { } } }; -var GeoReplication = { +const GeoReplication = { serializedName: "GeoReplication", type: { name: "Composite", @@ -16393,7 +15698,7 @@ var GeoReplication = { } } }; -var ListContainersSegmentResponse = { +const ListContainersSegmentResponse = { serializedName: "ListContainersSegmentResponse", xmlName: "EnumerationResults", type: { @@ -16456,7 +15761,7 @@ var ListContainersSegmentResponse = { } } }; -var ContainerItem = { +const ContainerItem = { serializedName: "ContainerItem", xmlName: "Container", type: { @@ -16504,7 +15809,7 @@ var ContainerItem = { } } }; -var ContainerProperties = { +const ContainerProperties = { serializedName: "ContainerProperties", type: { name: "Composite", @@ -16605,11 +15910,18 @@ var ContainerProperties = { type: { name: "Number" } + }, + isImmutableStorageWithVersioningEnabled: { + serializedName: "ImmutableStorageWithVersioningEnabled", + xmlName: "ImmutableStorageWithVersioningEnabled", + type: { + name: "Boolean" + } } } } }; -var KeyInfo = { +const KeyInfo = { serializedName: "KeyInfo", type: { name: "Composite", @@ -16634,7 +15946,7 @@ var KeyInfo = { } } }; -var UserDelegationKey = { +const UserDelegationKey = { serializedName: "UserDelegationKey", type: { name: "Composite", @@ -16699,7 +16011,7 @@ var UserDelegationKey = { } } }; -var FilterBlobSegment = { +const FilterBlobSegment = { serializedName: "FilterBlobSegment", xmlName: "EnumerationResults", type: { @@ -16749,7 +16061,7 @@ var FilterBlobSegment = { } } }; -var FilterBlobItem = { +const FilterBlobItem = { serializedName: "FilterBlobItem", xmlName: "Blob", type: { @@ -16783,7 +16095,7 @@ var FilterBlobItem = { } } }; -var BlobTags = { +const BlobTags = { serializedName: "BlobTags", xmlName: "Tags", type: { @@ -16809,7 +16121,7 @@ var BlobTags = { } } }; -var BlobTag = { +const BlobTag = { serializedName: "BlobTag", xmlName: "Tag", type: { @@ -16835,7 +16147,7 @@ var BlobTag = { } } }; -var SignedIdentifier = { +const SignedIdentifier = { serializedName: "SignedIdentifier", xmlName: "SignedIdentifier", type: { @@ -16861,7 +16173,7 @@ var SignedIdentifier = { } } }; -var AccessPolicy = { +const AccessPolicy = { serializedName: "AccessPolicy", type: { name: "Composite", @@ -16891,7 +16203,7 @@ var AccessPolicy = { } } }; -var ListBlobsFlatSegmentResponse = { +const ListBlobsFlatSegmentResponse = { serializedName: "ListBlobsFlatSegmentResponse", xmlName: "EnumerationResults", type: { @@ -16955,7 +16267,7 @@ var ListBlobsFlatSegmentResponse = { } } }; -var BlobFlatListSegment = { +const BlobFlatListSegment = { serializedName: "BlobFlatListSegment", xmlName: "Blobs", type: { @@ -16980,7 +16292,7 @@ var BlobFlatListSegment = { } } }; -var BlobItemInternal = { +const BlobItemInternal = { serializedName: "BlobItemInternal", xmlName: "Blob", type: { @@ -17056,11 +16368,18 @@ var BlobItemInternal = { name: "Dictionary", value: { type: { name: "String" } } } + }, + hasVersionsOnly: { + serializedName: "HasVersionsOnly", + xmlName: "HasVersionsOnly", + type: { + name: "Boolean" + } } } } }; -var BlobPropertiesInternal = { +const BlobPropertiesInternal = { serializedName: "BlobPropertiesInternal", xmlName: "Properties", type: { @@ -17359,11 +16678,33 @@ var BlobPropertiesInternal = { type: { name: "DateTimeRfc1123" } + }, + immutabilityPolicyExpiresOn: { + serializedName: "ImmutabilityPolicyUntilDate", + xmlName: "ImmutabilityPolicyUntilDate", + type: { + name: "DateTimeRfc1123" + } + }, + immutabilityPolicyMode: { + serializedName: "ImmutabilityPolicyMode", + xmlName: "ImmutabilityPolicyMode", + type: { + name: "Enum", + allowedValues: ["Mutable", "Unlocked", "Locked"] + } + }, + legalHold: { + serializedName: "LegalHold", + xmlName: "LegalHold", + type: { + name: "Boolean" + } } } } }; -var ListBlobsHierarchySegmentResponse = { +const ListBlobsHierarchySegmentResponse = { serializedName: "ListBlobsHierarchySegmentResponse", xmlName: "EnumerationResults", type: { @@ -17434,7 +16775,7 @@ var ListBlobsHierarchySegmentResponse = { } } }; -var BlobHierarchyListSegment = { +const BlobHierarchyListSegment = { serializedName: "BlobHierarchyListSegment", xmlName: "Blobs", type: { @@ -17473,7 +16814,7 @@ var BlobHierarchyListSegment = { } } }; -var BlobPrefix = { +const BlobPrefix = { serializedName: "BlobPrefix", type: { name: "Composite", @@ -17490,47 +16831,7 @@ var BlobPrefix = { } } }; -var DataLakeStorageError = { - serializedName: "DataLakeStorageError", - type: { - name: "Composite", - className: "DataLakeStorageError", - modelProperties: { - dataLakeStorageErrorDetails: { - serializedName: "error", - xmlName: "error", - type: { - name: "Composite", - className: "DataLakeStorageErrorError" - } - } - } - } -}; -var DataLakeStorageErrorError = { - serializedName: "DataLakeStorageErrorError", - type: { - name: "Composite", - className: "DataLakeStorageErrorError", - modelProperties: { - code: { - serializedName: "Code", - xmlName: "Code", - type: { - name: "String" - } - }, - message: { - serializedName: "Message", - xmlName: "Message", - type: { - name: "String" - } - } - } - } -}; -var BlockLookupList = { +const BlockLookupList = { serializedName: "BlockLookupList", xmlName: "BlockList", type: { @@ -17579,7 +16880,7 @@ var BlockLookupList = { } } }; -var BlockList = { +const BlockList = { serializedName: "BlockList", type: { name: "Composite", @@ -17618,7 +16919,7 @@ var BlockList = { } } }; -var Block = { +const Block = { serializedName: "Block", type: { name: "Composite", @@ -17643,7 +16944,7 @@ var Block = { } } }; -var PageList = { +const PageList = { serializedName: "PageList", type: { name: "Composite", @@ -17680,7 +16981,7 @@ var PageList = { } } }; -var PageRange = { +const PageRange = { serializedName: "PageRange", xmlName: "PageRange", type: { @@ -17706,7 +17007,7 @@ var PageRange = { } } }; -var ClearRange = { +const ClearRange = { serializedName: "ClearRange", xmlName: "ClearRange", type: { @@ -17732,7 +17033,7 @@ var ClearRange = { } } }; -var QueryRequest = { +const QueryRequest = { serializedName: "QueryRequest", xmlName: "QueryRequest", type: { @@ -17774,7 +17075,7 @@ var QueryRequest = { } } }; -var QuerySerialization = { +const QuerySerialization = { serializedName: "QuerySerialization", type: { name: "Composite", @@ -17791,7 +17092,7 @@ var QuerySerialization = { } } }; -var QueryFormat = { +const QueryFormat = { serializedName: "QueryFormat", type: { name: "Composite", @@ -17799,10 +17100,11 @@ var QueryFormat = { modelProperties: { type: { serializedName: "Type", + required: true, xmlName: "Type", type: { name: "Enum", - allowedValues: ["delimited", "json", "arrow"] + allowedValues: ["delimited", "json", "arrow", "parquet"] } }, delimitedTextConfiguration: { @@ -17828,11 +17130,18 @@ var QueryFormat = { name: "Composite", className: "ArrowConfiguration" } + }, + parquetTextConfiguration: { + serializedName: "ParquetTextConfiguration", + xmlName: "ParquetTextConfiguration", + type: { + name: "any" + } } } } }; -var DelimitedTextConfiguration = { +const DelimitedTextConfiguration = { serializedName: "DelimitedTextConfiguration", xmlName: "DelimitedTextConfiguration", type: { @@ -17841,7 +17150,6 @@ var DelimitedTextConfiguration = { modelProperties: { columnSeparator: { serializedName: "ColumnSeparator", - required: true, xmlName: "ColumnSeparator", type: { name: "String" @@ -17849,7 +17157,6 @@ var DelimitedTextConfiguration = { }, fieldQuote: { serializedName: "FieldQuote", - required: true, xmlName: "FieldQuote", type: { name: "String" @@ -17857,7 +17164,6 @@ var DelimitedTextConfiguration = { }, recordSeparator: { serializedName: "RecordSeparator", - required: true, xmlName: "RecordSeparator", type: { name: "String" @@ -17865,7 +17171,6 @@ var DelimitedTextConfiguration = { }, escapeChar: { serializedName: "EscapeChar", - required: true, xmlName: "EscapeChar", type: { name: "String" @@ -17873,7 +17178,6 @@ var DelimitedTextConfiguration = { }, headersPresent: { serializedName: "HeadersPresent", - required: true, xmlName: "HasHeaders", type: { name: "Boolean" @@ -17882,7 +17186,7 @@ var DelimitedTextConfiguration = { } } }; -var JsonTextConfiguration = { +const JsonTextConfiguration = { serializedName: "JsonTextConfiguration", xmlName: "JsonTextConfiguration", type: { @@ -17891,7 +17195,6 @@ var JsonTextConfiguration = { modelProperties: { recordSeparator: { serializedName: "RecordSeparator", - required: true, xmlName: "RecordSeparator", type: { name: "String" @@ -17900,7 +17203,7 @@ var JsonTextConfiguration = { } } }; -var ArrowConfiguration = { +const ArrowConfiguration = { serializedName: "ArrowConfiguration", xmlName: "ArrowConfiguration", type: { @@ -17926,7 +17229,7 @@ var ArrowConfiguration = { } } }; -var ArrowField = { +const ArrowField = { serializedName: "ArrowField", xmlName: "Field", type: { @@ -17965,7 +17268,7 @@ var ArrowField = { } } }; -var ServiceSetPropertiesHeaders = { +const ServiceSetPropertiesHeaders = { serializedName: "Service_setPropertiesHeaders", type: { name: "Composite", @@ -18002,7 +17305,7 @@ var ServiceSetPropertiesHeaders = { } } }; -var ServiceSetPropertiesExceptionHeaders = { +const ServiceSetPropertiesExceptionHeaders = { serializedName: "Service_setPropertiesExceptionHeaders", type: { name: "Composite", @@ -18018,7 +17321,7 @@ var ServiceSetPropertiesExceptionHeaders = { } } }; -var ServiceGetPropertiesHeaders = { +const ServiceGetPropertiesHeaders = { serializedName: "Service_getPropertiesHeaders", type: { name: "Composite", @@ -18055,7 +17358,7 @@ var ServiceGetPropertiesHeaders = { } } }; -var ServiceGetPropertiesExceptionHeaders = { +const ServiceGetPropertiesExceptionHeaders = { serializedName: "Service_getPropertiesExceptionHeaders", type: { name: "Composite", @@ -18071,7 +17374,7 @@ var ServiceGetPropertiesExceptionHeaders = { } } }; -var ServiceGetStatisticsHeaders = { +const ServiceGetStatisticsHeaders = { serializedName: "Service_getStatisticsHeaders", type: { name: "Composite", @@ -18115,7 +17418,7 @@ var ServiceGetStatisticsHeaders = { } } }; -var ServiceGetStatisticsExceptionHeaders = { +const ServiceGetStatisticsExceptionHeaders = { serializedName: "Service_getStatisticsExceptionHeaders", type: { name: "Composite", @@ -18131,7 +17434,7 @@ var ServiceGetStatisticsExceptionHeaders = { } } }; -var ServiceListContainersSegmentHeaders = { +const ServiceListContainersSegmentHeaders = { serializedName: "Service_listContainersSegmentHeaders", type: { name: "Composite", @@ -18168,7 +17471,7 @@ var ServiceListContainersSegmentHeaders = { } } }; -var ServiceListContainersSegmentExceptionHeaders = { +const ServiceListContainersSegmentExceptionHeaders = { serializedName: "Service_listContainersSegmentExceptionHeaders", type: { name: "Composite", @@ -18184,7 +17487,7 @@ var ServiceListContainersSegmentExceptionHeaders = { } } }; -var ServiceGetUserDelegationKeyHeaders = { +const ServiceGetUserDelegationKeyHeaders = { serializedName: "Service_getUserDelegationKeyHeaders", type: { name: "Composite", @@ -18228,7 +17531,7 @@ var ServiceGetUserDelegationKeyHeaders = { } } }; -var ServiceGetUserDelegationKeyExceptionHeaders = { +const ServiceGetUserDelegationKeyExceptionHeaders = { serializedName: "Service_getUserDelegationKeyExceptionHeaders", type: { name: "Composite", @@ -18244,7 +17547,7 @@ var ServiceGetUserDelegationKeyExceptionHeaders = { } } }; -var ServiceGetAccountInfoHeaders = { +const ServiceGetAccountInfoHeaders = { serializedName: "Service_getAccountInfoHeaders", type: { name: "Composite", @@ -18323,7 +17626,7 @@ var ServiceGetAccountInfoHeaders = { } } }; -var ServiceGetAccountInfoExceptionHeaders = { +const ServiceGetAccountInfoExceptionHeaders = { serializedName: "Service_getAccountInfoExceptionHeaders", type: { name: "Composite", @@ -18339,7 +17642,7 @@ var ServiceGetAccountInfoExceptionHeaders = { } } }; -var ServiceSubmitBatchHeaders = { +const ServiceSubmitBatchHeaders = { serializedName: "Service_submitBatchHeaders", type: { name: "Composite", @@ -18383,7 +17686,7 @@ var ServiceSubmitBatchHeaders = { } } }; -var ServiceSubmitBatchExceptionHeaders = { +const ServiceSubmitBatchExceptionHeaders = { serializedName: "Service_submitBatchExceptionHeaders", type: { name: "Composite", @@ -18399,7 +17702,7 @@ var ServiceSubmitBatchExceptionHeaders = { } } }; -var ServiceFilterBlobsHeaders = { +const ServiceFilterBlobsHeaders = { serializedName: "Service_filterBlobsHeaders", type: { name: "Composite", @@ -18443,7 +17746,7 @@ var ServiceFilterBlobsHeaders = { } } }; -var ServiceFilterBlobsExceptionHeaders = { +const ServiceFilterBlobsExceptionHeaders = { serializedName: "Service_filterBlobsExceptionHeaders", type: { name: "Composite", @@ -18459,7 +17762,7 @@ var ServiceFilterBlobsExceptionHeaders = { } } }; -var ContainerCreateHeaders = { +const ContainerCreateHeaders = { serializedName: "Container_createHeaders", type: { name: "Composite", @@ -18517,7 +17820,7 @@ var ContainerCreateHeaders = { } } }; -var ContainerCreateExceptionHeaders = { +const ContainerCreateExceptionHeaders = { serializedName: "Container_createExceptionHeaders", type: { name: "Composite", @@ -18533,7 +17836,7 @@ var ContainerCreateExceptionHeaders = { } } }; -var ContainerGetPropertiesHeaders = { +const ContainerGetPropertiesHeaders = { serializedName: "Container_getPropertiesHeaders", type: { name: "Composite", @@ -18656,6 +17959,13 @@ var ContainerGetPropertiesHeaders = { name: "Boolean" } }, + isImmutableStorageWithVersioningEnabled: { + serializedName: "x-ms-immutable-storage-with-versioning-enabled", + xmlName: "x-ms-immutable-storage-with-versioning-enabled", + type: { + name: "Boolean" + } + }, errorCode: { serializedName: "x-ms-error-code", xmlName: "x-ms-error-code", @@ -18666,7 +17976,7 @@ var ContainerGetPropertiesHeaders = { } } }; -var ContainerGetPropertiesExceptionHeaders = { +const ContainerGetPropertiesExceptionHeaders = { serializedName: "Container_getPropertiesExceptionHeaders", type: { name: "Composite", @@ -18682,7 +17992,7 @@ var ContainerGetPropertiesExceptionHeaders = { } } }; -var ContainerDeleteHeaders = { +const ContainerDeleteHeaders = { serializedName: "Container_deleteHeaders", type: { name: "Composite", @@ -18726,7 +18036,7 @@ var ContainerDeleteHeaders = { } } }; -var ContainerDeleteExceptionHeaders = { +const ContainerDeleteExceptionHeaders = { serializedName: "Container_deleteExceptionHeaders", type: { name: "Composite", @@ -18742,7 +18052,7 @@ var ContainerDeleteExceptionHeaders = { } } }; -var ContainerSetMetadataHeaders = { +const ContainerSetMetadataHeaders = { serializedName: "Container_setMetadataHeaders", type: { name: "Composite", @@ -18800,7 +18110,7 @@ var ContainerSetMetadataHeaders = { } } }; -var ContainerSetMetadataExceptionHeaders = { +const ContainerSetMetadataExceptionHeaders = { serializedName: "Container_setMetadataExceptionHeaders", type: { name: "Composite", @@ -18816,7 +18126,7 @@ var ContainerSetMetadataExceptionHeaders = { } } }; -var ContainerGetAccessPolicyHeaders = { +const ContainerGetAccessPolicyHeaders = { serializedName: "Container_getAccessPolicyHeaders", type: { name: "Composite", @@ -18882,7 +18192,7 @@ var ContainerGetAccessPolicyHeaders = { } } }; -var ContainerGetAccessPolicyExceptionHeaders = { +const ContainerGetAccessPolicyExceptionHeaders = { serializedName: "Container_getAccessPolicyExceptionHeaders", type: { name: "Composite", @@ -18898,7 +18208,7 @@ var ContainerGetAccessPolicyExceptionHeaders = { } } }; -var ContainerSetAccessPolicyHeaders = { +const ContainerSetAccessPolicyHeaders = { serializedName: "Container_setAccessPolicyHeaders", type: { name: "Composite", @@ -18956,7 +18266,7 @@ var ContainerSetAccessPolicyHeaders = { } } }; -var ContainerSetAccessPolicyExceptionHeaders = { +const ContainerSetAccessPolicyExceptionHeaders = { serializedName: "Container_setAccessPolicyExceptionHeaders", type: { name: "Composite", @@ -18972,7 +18282,7 @@ var ContainerSetAccessPolicyExceptionHeaders = { } } }; -var ContainerRestoreHeaders = { +const ContainerRestoreHeaders = { serializedName: "Container_restoreHeaders", type: { name: "Composite", @@ -19016,7 +18326,7 @@ var ContainerRestoreHeaders = { } } }; -var ContainerRestoreExceptionHeaders = { +const ContainerRestoreExceptionHeaders = { serializedName: "Container_restoreExceptionHeaders", type: { name: "Composite", @@ -19032,7 +18342,7 @@ var ContainerRestoreExceptionHeaders = { } } }; -var ContainerRenameHeaders = { +const ContainerRenameHeaders = { serializedName: "Container_renameHeaders", type: { name: "Composite", @@ -19076,7 +18386,7 @@ var ContainerRenameHeaders = { } } }; -var ContainerRenameExceptionHeaders = { +const ContainerRenameExceptionHeaders = { serializedName: "Container_renameExceptionHeaders", type: { name: "Composite", @@ -19092,7 +18402,7 @@ var ContainerRenameExceptionHeaders = { } } }; -var ContainerSubmitBatchHeaders = { +const ContainerSubmitBatchHeaders = { serializedName: "Container_submitBatchHeaders", type: { name: "Composite", @@ -19122,7 +18432,7 @@ var ContainerSubmitBatchHeaders = { } } }; -var ContainerSubmitBatchExceptionHeaders = { +const ContainerSubmitBatchExceptionHeaders = { serializedName: "Container_submitBatchExceptionHeaders", type: { name: "Composite", @@ -19138,7 +18448,7 @@ var ContainerSubmitBatchExceptionHeaders = { } } }; -var ContainerAcquireLeaseHeaders = { +const ContainerAcquireLeaseHeaders = { serializedName: "Container_acquireLeaseHeaders", type: { name: "Composite", @@ -19196,7 +18506,7 @@ var ContainerAcquireLeaseHeaders = { } } }; -var ContainerAcquireLeaseExceptionHeaders = { +const ContainerAcquireLeaseExceptionHeaders = { serializedName: "Container_acquireLeaseExceptionHeaders", type: { name: "Composite", @@ -19212,7 +18522,7 @@ var ContainerAcquireLeaseExceptionHeaders = { } } }; -var ContainerReleaseLeaseHeaders = { +const ContainerReleaseLeaseHeaders = { serializedName: "Container_releaseLeaseHeaders", type: { name: "Composite", @@ -19263,7 +18573,7 @@ var ContainerReleaseLeaseHeaders = { } } }; -var ContainerReleaseLeaseExceptionHeaders = { +const ContainerReleaseLeaseExceptionHeaders = { serializedName: "Container_releaseLeaseExceptionHeaders", type: { name: "Composite", @@ -19279,7 +18589,7 @@ var ContainerReleaseLeaseExceptionHeaders = { } } }; -var ContainerRenewLeaseHeaders = { +const ContainerRenewLeaseHeaders = { serializedName: "Container_renewLeaseHeaders", type: { name: "Composite", @@ -19337,7 +18647,7 @@ var ContainerRenewLeaseHeaders = { } } }; -var ContainerRenewLeaseExceptionHeaders = { +const ContainerRenewLeaseExceptionHeaders = { serializedName: "Container_renewLeaseExceptionHeaders", type: { name: "Composite", @@ -19353,7 +18663,7 @@ var ContainerRenewLeaseExceptionHeaders = { } } }; -var ContainerBreakLeaseHeaders = { +const ContainerBreakLeaseHeaders = { serializedName: "Container_breakLeaseHeaders", type: { name: "Composite", @@ -19411,7 +18721,7 @@ var ContainerBreakLeaseHeaders = { } } }; -var ContainerBreakLeaseExceptionHeaders = { +const ContainerBreakLeaseExceptionHeaders = { serializedName: "Container_breakLeaseExceptionHeaders", type: { name: "Composite", @@ -19427,7 +18737,7 @@ var ContainerBreakLeaseExceptionHeaders = { } } }; -var ContainerChangeLeaseHeaders = { +const ContainerChangeLeaseHeaders = { serializedName: "Container_changeLeaseHeaders", type: { name: "Composite", @@ -19485,7 +18795,7 @@ var ContainerChangeLeaseHeaders = { } } }; -var ContainerChangeLeaseExceptionHeaders = { +const ContainerChangeLeaseExceptionHeaders = { serializedName: "Container_changeLeaseExceptionHeaders", type: { name: "Composite", @@ -19501,7 +18811,7 @@ var ContainerChangeLeaseExceptionHeaders = { } } }; -var ContainerListBlobFlatSegmentHeaders = { +const ContainerListBlobFlatSegmentHeaders = { serializedName: "Container_listBlobFlatSegmentHeaders", type: { name: "Composite", @@ -19552,7 +18862,7 @@ var ContainerListBlobFlatSegmentHeaders = { } } }; -var ContainerListBlobFlatSegmentExceptionHeaders = { +const ContainerListBlobFlatSegmentExceptionHeaders = { serializedName: "Container_listBlobFlatSegmentExceptionHeaders", type: { name: "Composite", @@ -19568,7 +18878,7 @@ var ContainerListBlobFlatSegmentExceptionHeaders = { } } }; -var ContainerListBlobHierarchySegmentHeaders = { +const ContainerListBlobHierarchySegmentHeaders = { serializedName: "Container_listBlobHierarchySegmentHeaders", type: { name: "Composite", @@ -19619,7 +18929,7 @@ var ContainerListBlobHierarchySegmentHeaders = { } } }; -var ContainerListBlobHierarchySegmentExceptionHeaders = { +const ContainerListBlobHierarchySegmentExceptionHeaders = { serializedName: "Container_listBlobHierarchySegmentExceptionHeaders", type: { name: "Composite", @@ -19635,7 +18945,7 @@ var ContainerListBlobHierarchySegmentExceptionHeaders = { } } }; -var ContainerGetAccountInfoHeaders = { +const ContainerGetAccountInfoHeaders = { serializedName: "Container_getAccountInfoHeaders", type: { name: "Composite", @@ -19700,7 +19010,7 @@ var ContainerGetAccountInfoHeaders = { } } }; -var ContainerGetAccountInfoExceptionHeaders = { +const ContainerGetAccountInfoExceptionHeaders = { serializedName: "Container_getAccountInfoExceptionHeaders", type: { name: "Composite", @@ -19716,440 +19026,7 @@ var ContainerGetAccountInfoExceptionHeaders = { } } }; -var DirectoryCreateHeaders = { - serializedName: "Directory_createHeaders", - type: { - name: "Composite", - className: "DirectoryCreateHeaders", - modelProperties: { - etag: { - serializedName: "etag", - xmlName: "etag", - type: { - name: "String" - } - }, - lastModified: { - serializedName: "last-modified", - xmlName: "last-modified", - type: { - name: "DateTimeRfc1123" - } - }, - clientRequestId: { - serializedName: "x-ms-client-request-id", - xmlName: "x-ms-client-request-id", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - }, - contentLength: { - serializedName: "content-length", - xmlName: "content-length", - type: { - name: "Number" - } - }, - date: { - serializedName: "date", - xmlName: "date", - type: { - name: "DateTimeRfc1123" - } - } - } - } -}; -var DirectoryCreateExceptionHeaders = { - serializedName: "Directory_createExceptionHeaders", - type: { - name: "Composite", - className: "DirectoryCreateExceptionHeaders", - modelProperties: { - clientRequestId: { - serializedName: "x-ms-client-request-id", - xmlName: "x-ms-client-request-id", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - } - } - } -}; -var DirectoryRenameHeaders = { - serializedName: "Directory_renameHeaders", - type: { - name: "Composite", - className: "DirectoryRenameHeaders", - modelProperties: { - marker: { - serializedName: "x-ms-continuation", - xmlName: "x-ms-continuation", - type: { - name: "String" - } - }, - etag: { - serializedName: "etag", - xmlName: "etag", - type: { - name: "String" - } - }, - lastModified: { - serializedName: "last-modified", - xmlName: "last-modified", - type: { - name: "DateTimeRfc1123" - } - }, - clientRequestId: { - serializedName: "x-ms-client-request-id", - xmlName: "x-ms-client-request-id", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - }, - contentLength: { - serializedName: "content-length", - xmlName: "content-length", - type: { - name: "Number" - } - }, - date: { - serializedName: "date", - xmlName: "date", - type: { - name: "DateTimeRfc1123" - } - } - } - } -}; -var DirectoryRenameExceptionHeaders = { - serializedName: "Directory_renameExceptionHeaders", - type: { - name: "Composite", - className: "DirectoryRenameExceptionHeaders", - modelProperties: { - clientRequestId: { - serializedName: "x-ms-client-request-id", - xmlName: "x-ms-client-request-id", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - } - } - } -}; -var DirectoryDeleteHeaders = { - serializedName: "Directory_deleteHeaders", - type: { - name: "Composite", - className: "DirectoryDeleteHeaders", - modelProperties: { - marker: { - serializedName: "x-ms-continuation", - xmlName: "x-ms-continuation", - type: { - name: "String" - } - }, - clientRequestId: { - serializedName: "x-ms-client-request-id", - xmlName: "x-ms-client-request-id", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - }, - date: { - serializedName: "date", - xmlName: "date", - type: { - name: "DateTimeRfc1123" - } - } - } - } -}; -var DirectoryDeleteExceptionHeaders = { - serializedName: "Directory_deleteExceptionHeaders", - type: { - name: "Composite", - className: "DirectoryDeleteExceptionHeaders", - modelProperties: { - clientRequestId: { - serializedName: "x-ms-client-request-id", - xmlName: "x-ms-client-request-id", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - } - } - } -}; -var DirectorySetAccessControlHeaders = { - serializedName: "Directory_setAccessControlHeaders", - type: { - name: "Composite", - className: "DirectorySetAccessControlHeaders", - modelProperties: { - date: { - serializedName: "date", - xmlName: "date", - type: { - name: "DateTimeRfc1123" - } - }, - etag: { - serializedName: "etag", - xmlName: "etag", - type: { - name: "String" - } - }, - lastModified: { - serializedName: "last-modified", - xmlName: "last-modified", - type: { - name: "DateTimeRfc1123" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - } - } - } -}; -var DirectorySetAccessControlExceptionHeaders = { - serializedName: "Directory_setAccessControlExceptionHeaders", - type: { - name: "Composite", - className: "DirectorySetAccessControlExceptionHeaders", - modelProperties: { - clientRequestId: { - serializedName: "x-ms-client-request-id", - xmlName: "x-ms-client-request-id", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - } - } - } -}; -var DirectoryGetAccessControlHeaders = { - serializedName: "Directory_getAccessControlHeaders", - type: { - name: "Composite", - className: "DirectoryGetAccessControlHeaders", - modelProperties: { - date: { - serializedName: "date", - xmlName: "date", - type: { - name: "DateTimeRfc1123" - } - }, - etag: { - serializedName: "etag", - xmlName: "etag", - type: { - name: "String" - } - }, - lastModified: { - serializedName: "last-modified", - xmlName: "last-modified", - type: { - name: "DateTimeRfc1123" - } - }, - xMsOwner: { - serializedName: "x-ms-owner", - xmlName: "x-ms-owner", - type: { - name: "String" - } - }, - xMsGroup: { - serializedName: "x-ms-group", - xmlName: "x-ms-group", - type: { - name: "String" - } - }, - xMsPermissions: { - serializedName: "x-ms-permissions", - xmlName: "x-ms-permissions", - type: { - name: "String" - } - }, - xMsAcl: { - serializedName: "x-ms-acl", - xmlName: "x-ms-acl", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - } - } - } -}; -var DirectoryGetAccessControlExceptionHeaders = { - serializedName: "Directory_getAccessControlExceptionHeaders", - type: { - name: "Composite", - className: "DirectoryGetAccessControlExceptionHeaders", - modelProperties: { - clientRequestId: { - serializedName: "x-ms-client-request-id", - xmlName: "x-ms-client-request-id", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - } - } - } -}; -var BlobDownloadHeaders = { +const BlobDownloadHeaders = { serializedName: "Blob_downloadHeaders", type: { name: "Composite", @@ -20443,11 +19320,26 @@ var BlobDownloadHeaders = { name: "DateTimeRfc1123" } }, - contentCrc64: { - serializedName: "x-ms-content-crc64", - xmlName: "x-ms-content-crc64", + immutabilityPolicyExpiresOn: { + serializedName: "x-ms-immutability-policy-until-date", + xmlName: "x-ms-immutability-policy-until-date", type: { - name: "ByteArray" + name: "DateTimeRfc1123" + } + }, + immutabilityPolicyMode: { + serializedName: "x-ms-immutability-policy-mode", + xmlName: "x-ms-immutability-policy-mode", + type: { + name: "Enum", + allowedValues: ["Mutable", "Unlocked", "Locked"] + } + }, + legalHold: { + serializedName: "x-ms-legal-hold", + xmlName: "x-ms-legal-hold", + type: { + name: "Boolean" } }, errorCode: { @@ -20456,11 +19348,18 @@ var BlobDownloadHeaders = { type: { name: "String" } + }, + contentCrc64: { + serializedName: "x-ms-content-crc64", + xmlName: "x-ms-content-crc64", + type: { + name: "ByteArray" + } } } } }; -var BlobDownloadExceptionHeaders = { +const BlobDownloadExceptionHeaders = { serializedName: "Blob_downloadExceptionHeaders", type: { name: "Composite", @@ -20476,7 +19375,7 @@ var BlobDownloadExceptionHeaders = { } } }; -var BlobGetPropertiesHeaders = { +const BlobGetPropertiesHeaders = { serializedName: "Blob_getPropertiesHeaders", type: { name: "Composite", @@ -20820,6 +19719,28 @@ var BlobGetPropertiesHeaders = { name: "DateTimeRfc1123" } }, + immutabilityPolicyExpiresOn: { + serializedName: "x-ms-immutability-policy-until-date", + xmlName: "x-ms-immutability-policy-until-date", + type: { + name: "DateTimeRfc1123" + } + }, + immutabilityPolicyMode: { + serializedName: "x-ms-immutability-policy-mode", + xmlName: "x-ms-immutability-policy-mode", + type: { + name: "Enum", + allowedValues: ["Mutable", "Unlocked", "Locked"] + } + }, + legalHold: { + serializedName: "x-ms-legal-hold", + xmlName: "x-ms-legal-hold", + type: { + name: "Boolean" + } + }, errorCode: { serializedName: "x-ms-error-code", xmlName: "x-ms-error-code", @@ -20830,7 +19751,7 @@ var BlobGetPropertiesHeaders = { } } }; -var BlobGetPropertiesExceptionHeaders = { +const BlobGetPropertiesExceptionHeaders = { serializedName: "Blob_getPropertiesExceptionHeaders", type: { name: "Composite", @@ -20846,7 +19767,7 @@ var BlobGetPropertiesExceptionHeaders = { } } }; -var BlobDeleteHeaders = { +const BlobDeleteHeaders = { serializedName: "Blob_deleteHeaders", type: { name: "Composite", @@ -20890,7 +19811,7 @@ var BlobDeleteHeaders = { } } }; -var BlobDeleteExceptionHeaders = { +const BlobDeleteExceptionHeaders = { serializedName: "Blob_deleteExceptionHeaders", type: { name: "Composite", @@ -20906,271 +19827,7 @@ var BlobDeleteExceptionHeaders = { } } }; -var BlobSetAccessControlHeaders = { - serializedName: "Blob_setAccessControlHeaders", - type: { - name: "Composite", - className: "BlobSetAccessControlHeaders", - modelProperties: { - date: { - serializedName: "date", - xmlName: "date", - type: { - name: "DateTimeRfc1123" - } - }, - etag: { - serializedName: "etag", - xmlName: "etag", - type: { - name: "String" - } - }, - lastModified: { - serializedName: "last-modified", - xmlName: "last-modified", - type: { - name: "DateTimeRfc1123" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - } - } - } -}; -var BlobSetAccessControlExceptionHeaders = { - serializedName: "Blob_setAccessControlExceptionHeaders", - type: { - name: "Composite", - className: "BlobSetAccessControlExceptionHeaders", - modelProperties: { - clientRequestId: { - serializedName: "x-ms-client-request-id", - xmlName: "x-ms-client-request-id", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - } - } - } -}; -var BlobGetAccessControlHeaders = { - serializedName: "Blob_getAccessControlHeaders", - type: { - name: "Composite", - className: "BlobGetAccessControlHeaders", - modelProperties: { - date: { - serializedName: "date", - xmlName: "date", - type: { - name: "DateTimeRfc1123" - } - }, - etag: { - serializedName: "etag", - xmlName: "etag", - type: { - name: "String" - } - }, - lastModified: { - serializedName: "last-modified", - xmlName: "last-modified", - type: { - name: "DateTimeRfc1123" - } - }, - xMsOwner: { - serializedName: "x-ms-owner", - xmlName: "x-ms-owner", - type: { - name: "String" - } - }, - xMsGroup: { - serializedName: "x-ms-group", - xmlName: "x-ms-group", - type: { - name: "String" - } - }, - xMsPermissions: { - serializedName: "x-ms-permissions", - xmlName: "x-ms-permissions", - type: { - name: "String" - } - }, - xMsAcl: { - serializedName: "x-ms-acl", - xmlName: "x-ms-acl", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - } - } - } -}; -var BlobGetAccessControlExceptionHeaders = { - serializedName: "Blob_getAccessControlExceptionHeaders", - type: { - name: "Composite", - className: "BlobGetAccessControlExceptionHeaders", - modelProperties: { - clientRequestId: { - serializedName: "x-ms-client-request-id", - xmlName: "x-ms-client-request-id", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - } - } - } -}; -var BlobRenameHeaders = { - serializedName: "Blob_renameHeaders", - type: { - name: "Composite", - className: "BlobRenameHeaders", - modelProperties: { - etag: { - serializedName: "etag", - xmlName: "etag", - type: { - name: "String" - } - }, - lastModified: { - serializedName: "last-modified", - xmlName: "last-modified", - type: { - name: "DateTimeRfc1123" - } - }, - clientRequestId: { - serializedName: "x-ms-client-request-id", - xmlName: "x-ms-client-request-id", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - }, - contentLength: { - serializedName: "content-length", - xmlName: "content-length", - type: { - name: "Number" - } - }, - date: { - serializedName: "date", - xmlName: "date", - type: { - name: "DateTimeRfc1123" - } - } - } - } -}; -var BlobRenameExceptionHeaders = { - serializedName: "Blob_renameExceptionHeaders", - type: { - name: "Composite", - className: "BlobRenameExceptionHeaders", - modelProperties: { - clientRequestId: { - serializedName: "x-ms-client-request-id", - xmlName: "x-ms-client-request-id", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - } - } - } -}; -var BlobUndeleteHeaders = { +const BlobUndeleteHeaders = { serializedName: "Blob_undeleteHeaders", type: { name: "Composite", @@ -21214,7 +19871,7 @@ var BlobUndeleteHeaders = { } } }; -var BlobUndeleteExceptionHeaders = { +const BlobUndeleteExceptionHeaders = { serializedName: "Blob_undeleteExceptionHeaders", type: { name: "Composite", @@ -21230,7 +19887,7 @@ var BlobUndeleteExceptionHeaders = { } } }; -var BlobSetExpiryHeaders = { +const BlobSetExpiryHeaders = { serializedName: "Blob_setExpiryHeaders", type: { name: "Composite", @@ -21281,7 +19938,7 @@ var BlobSetExpiryHeaders = { } } }; -var BlobSetExpiryExceptionHeaders = { +const BlobSetExpiryExceptionHeaders = { serializedName: "Blob_setExpiryExceptionHeaders", type: { name: "Composite", @@ -21297,7 +19954,7 @@ var BlobSetExpiryExceptionHeaders = { } } }; -var BlobSetHttpHeadersHeaders = { +const BlobSetHttpHeadersHeaders = { serializedName: "Blob_setHttpHeadersHeaders", type: { name: "Composite", @@ -21362,7 +20019,7 @@ var BlobSetHttpHeadersHeaders = { } } }; -var BlobSetHttpHeadersExceptionHeaders = { +const BlobSetHttpHeadersExceptionHeaders = { serializedName: "Blob_setHttpHeadersExceptionHeaders", type: { name: "Composite", @@ -21378,7 +20035,188 @@ var BlobSetHttpHeadersExceptionHeaders = { } } }; -var BlobSetMetadataHeaders = { +const BlobSetImmutabilityPolicyHeaders = { + serializedName: "Blob_setImmutabilityPolicyHeaders", + type: { + name: "Composite", + className: "BlobSetImmutabilityPolicyHeaders", + modelProperties: { + clientRequestId: { + serializedName: "x-ms-client-request-id", + xmlName: "x-ms-client-request-id", + type: { + name: "String" + } + }, + requestId: { + serializedName: "x-ms-request-id", + xmlName: "x-ms-request-id", + type: { + name: "String" + } + }, + version: { + serializedName: "x-ms-version", + xmlName: "x-ms-version", + type: { + name: "String" + } + }, + date: { + serializedName: "date", + xmlName: "date", + type: { + name: "DateTimeRfc1123" + } + }, + immutabilityPolicyExpiry: { + serializedName: "x-ms-immutability-policy-until-date", + xmlName: "x-ms-immutability-policy-until-date", + type: { + name: "DateTimeRfc1123" + } + }, + immutabilityPolicyMode: { + serializedName: "x-ms-immutability-policy-mode", + xmlName: "x-ms-immutability-policy-mode", + type: { + name: "Enum", + allowedValues: ["Mutable", "Unlocked", "Locked"] + } + } + } + } +}; +const BlobSetImmutabilityPolicyExceptionHeaders = { + serializedName: "Blob_setImmutabilityPolicyExceptionHeaders", + type: { + name: "Composite", + className: "BlobSetImmutabilityPolicyExceptionHeaders", + modelProperties: { + errorCode: { + serializedName: "x-ms-error-code", + xmlName: "x-ms-error-code", + type: { + name: "String" + } + } + } + } +}; +const BlobDeleteImmutabilityPolicyHeaders = { + serializedName: "Blob_deleteImmutabilityPolicyHeaders", + type: { + name: "Composite", + className: "BlobDeleteImmutabilityPolicyHeaders", + modelProperties: { + clientRequestId: { + serializedName: "x-ms-client-request-id", + xmlName: "x-ms-client-request-id", + type: { + name: "String" + } + }, + requestId: { + serializedName: "x-ms-request-id", + xmlName: "x-ms-request-id", + type: { + name: "String" + } + }, + version: { + serializedName: "x-ms-version", + xmlName: "x-ms-version", + type: { + name: "String" + } + }, + date: { + serializedName: "date", + xmlName: "date", + type: { + name: "DateTimeRfc1123" + } + } + } + } +}; +const BlobDeleteImmutabilityPolicyExceptionHeaders = { + serializedName: "Blob_deleteImmutabilityPolicyExceptionHeaders", + type: { + name: "Composite", + className: "BlobDeleteImmutabilityPolicyExceptionHeaders", + modelProperties: { + errorCode: { + serializedName: "x-ms-error-code", + xmlName: "x-ms-error-code", + type: { + name: "String" + } + } + } + } +}; +const BlobSetLegalHoldHeaders = { + serializedName: "Blob_setLegalHoldHeaders", + type: { + name: "Composite", + className: "BlobSetLegalHoldHeaders", + modelProperties: { + clientRequestId: { + serializedName: "x-ms-client-request-id", + xmlName: "x-ms-client-request-id", + type: { + name: "String" + } + }, + requestId: { + serializedName: "x-ms-request-id", + xmlName: "x-ms-request-id", + type: { + name: "String" + } + }, + version: { + serializedName: "x-ms-version", + xmlName: "x-ms-version", + type: { + name: "String" + } + }, + date: { + serializedName: "date", + xmlName: "date", + type: { + name: "DateTimeRfc1123" + } + }, + legalHold: { + serializedName: "x-ms-legal-hold", + xmlName: "x-ms-legal-hold", + type: { + name: "Boolean" + } + } + } + } +}; +const BlobSetLegalHoldExceptionHeaders = { + serializedName: "Blob_setLegalHoldExceptionHeaders", + type: { + name: "Composite", + className: "BlobSetLegalHoldExceptionHeaders", + modelProperties: { + errorCode: { + serializedName: "x-ms-error-code", + xmlName: "x-ms-error-code", + type: { + name: "String" + } + } + } + } +}; +const BlobSetMetadataHeaders = { serializedName: "Blob_setMetadataHeaders", type: { name: "Composite", @@ -21464,7 +20302,7 @@ var BlobSetMetadataHeaders = { } } }; -var BlobSetMetadataExceptionHeaders = { +const BlobSetMetadataExceptionHeaders = { serializedName: "Blob_setMetadataExceptionHeaders", type: { name: "Composite", @@ -21480,7 +20318,7 @@ var BlobSetMetadataExceptionHeaders = { } } }; -var BlobAcquireLeaseHeaders = { +const BlobAcquireLeaseHeaders = { serializedName: "Blob_acquireLeaseHeaders", type: { name: "Composite", @@ -21538,7 +20376,7 @@ var BlobAcquireLeaseHeaders = { } } }; -var BlobAcquireLeaseExceptionHeaders = { +const BlobAcquireLeaseExceptionHeaders = { serializedName: "Blob_acquireLeaseExceptionHeaders", type: { name: "Composite", @@ -21554,7 +20392,7 @@ var BlobAcquireLeaseExceptionHeaders = { } } }; -var BlobReleaseLeaseHeaders = { +const BlobReleaseLeaseHeaders = { serializedName: "Blob_releaseLeaseHeaders", type: { name: "Composite", @@ -21605,7 +20443,7 @@ var BlobReleaseLeaseHeaders = { } } }; -var BlobReleaseLeaseExceptionHeaders = { +const BlobReleaseLeaseExceptionHeaders = { serializedName: "Blob_releaseLeaseExceptionHeaders", type: { name: "Composite", @@ -21621,7 +20459,7 @@ var BlobReleaseLeaseExceptionHeaders = { } } }; -var BlobRenewLeaseHeaders = { +const BlobRenewLeaseHeaders = { serializedName: "Blob_renewLeaseHeaders", type: { name: "Composite", @@ -21679,7 +20517,7 @@ var BlobRenewLeaseHeaders = { } } }; -var BlobRenewLeaseExceptionHeaders = { +const BlobRenewLeaseExceptionHeaders = { serializedName: "Blob_renewLeaseExceptionHeaders", type: { name: "Composite", @@ -21695,7 +20533,7 @@ var BlobRenewLeaseExceptionHeaders = { } } }; -var BlobChangeLeaseHeaders = { +const BlobChangeLeaseHeaders = { serializedName: "Blob_changeLeaseHeaders", type: { name: "Composite", @@ -21753,7 +20591,7 @@ var BlobChangeLeaseHeaders = { } } }; -var BlobChangeLeaseExceptionHeaders = { +const BlobChangeLeaseExceptionHeaders = { serializedName: "Blob_changeLeaseExceptionHeaders", type: { name: "Composite", @@ -21769,7 +20607,7 @@ var BlobChangeLeaseExceptionHeaders = { } } }; -var BlobBreakLeaseHeaders = { +const BlobBreakLeaseHeaders = { serializedName: "Blob_breakLeaseHeaders", type: { name: "Composite", @@ -21827,7 +20665,7 @@ var BlobBreakLeaseHeaders = { } } }; -var BlobBreakLeaseExceptionHeaders = { +const BlobBreakLeaseExceptionHeaders = { serializedName: "Blob_breakLeaseExceptionHeaders", type: { name: "Composite", @@ -21843,7 +20681,7 @@ var BlobBreakLeaseExceptionHeaders = { } } }; -var BlobCreateSnapshotHeaders = { +const BlobCreateSnapshotHeaders = { serializedName: "Blob_createSnapshotHeaders", type: { name: "Composite", @@ -21922,7 +20760,7 @@ var BlobCreateSnapshotHeaders = { } } }; -var BlobCreateSnapshotExceptionHeaders = { +const BlobCreateSnapshotExceptionHeaders = { serializedName: "Blob_createSnapshotExceptionHeaders", type: { name: "Composite", @@ -21938,7 +20776,7 @@ var BlobCreateSnapshotExceptionHeaders = { } } }; -var BlobStartCopyFromURLHeaders = { +const BlobStartCopyFromURLHeaders = { serializedName: "Blob_startCopyFromURLHeaders", type: { name: "Composite", @@ -22018,7 +20856,7 @@ var BlobStartCopyFromURLHeaders = { } } }; -var BlobStartCopyFromURLExceptionHeaders = { +const BlobStartCopyFromURLExceptionHeaders = { serializedName: "Blob_startCopyFromURLExceptionHeaders", type: { name: "Composite", @@ -22034,7 +20872,7 @@ var BlobStartCopyFromURLExceptionHeaders = { } } }; -var BlobCopyFromURLHeaders = { +const BlobCopyFromURLHeaders = { serializedName: "Blob_copyFromURLHeaders", type: { name: "Composite", @@ -22128,7 +20966,7 @@ var BlobCopyFromURLHeaders = { } } }; -var BlobCopyFromURLExceptionHeaders = { +const BlobCopyFromURLExceptionHeaders = { serializedName: "Blob_copyFromURLExceptionHeaders", type: { name: "Composite", @@ -22144,7 +20982,7 @@ var BlobCopyFromURLExceptionHeaders = { } } }; -var BlobAbortCopyFromURLHeaders = { +const BlobAbortCopyFromURLHeaders = { serializedName: "Blob_abortCopyFromURLHeaders", type: { name: "Composite", @@ -22188,7 +21026,7 @@ var BlobAbortCopyFromURLHeaders = { } } }; -var BlobAbortCopyFromURLExceptionHeaders = { +const BlobAbortCopyFromURLExceptionHeaders = { serializedName: "Blob_abortCopyFromURLExceptionHeaders", type: { name: "Composite", @@ -22204,7 +21042,7 @@ var BlobAbortCopyFromURLExceptionHeaders = { } } }; -var BlobSetTierHeaders = { +const BlobSetTierHeaders = { serializedName: "Blob_setTierHeaders", type: { name: "Composite", @@ -22241,7 +21079,7 @@ var BlobSetTierHeaders = { } } }; -var BlobSetTierExceptionHeaders = { +const BlobSetTierExceptionHeaders = { serializedName: "Blob_setTierExceptionHeaders", type: { name: "Composite", @@ -22257,7 +21095,7 @@ var BlobSetTierExceptionHeaders = { } } }; -var BlobGetAccountInfoHeaders = { +const BlobGetAccountInfoHeaders = { serializedName: "Blob_getAccountInfoHeaders", type: { name: "Composite", @@ -22322,7 +21160,7 @@ var BlobGetAccountInfoHeaders = { } } }; -var BlobGetAccountInfoExceptionHeaders = { +const BlobGetAccountInfoExceptionHeaders = { serializedName: "Blob_getAccountInfoExceptionHeaders", type: { name: "Composite", @@ -22338,7 +21176,7 @@ var BlobGetAccountInfoExceptionHeaders = { } } }; -var BlobQueryHeaders = { +const BlobQueryHeaders = { serializedName: "Blob_queryHeaders", type: { name: "Composite", @@ -22580,24 +21418,24 @@ var BlobQueryHeaders = { name: "ByteArray" } }, - contentCrc64: { - serializedName: "x-ms-content-crc64", - xmlName: "x-ms-content-crc64", - type: { - name: "ByteArray" - } - }, errorCode: { serializedName: "x-ms-error-code", xmlName: "x-ms-error-code", type: { name: "String" } + }, + contentCrc64: { + serializedName: "x-ms-content-crc64", + xmlName: "x-ms-content-crc64", + type: { + name: "ByteArray" + } } } } }; -var BlobQueryExceptionHeaders = { +const BlobQueryExceptionHeaders = { serializedName: "Blob_queryExceptionHeaders", type: { name: "Composite", @@ -22613,7 +21451,7 @@ var BlobQueryExceptionHeaders = { } } }; -var BlobGetTagsHeaders = { +const BlobGetTagsHeaders = { serializedName: "Blob_getTagsHeaders", type: { name: "Composite", @@ -22657,7 +21495,7 @@ var BlobGetTagsHeaders = { } } }; -var BlobGetTagsExceptionHeaders = { +const BlobGetTagsExceptionHeaders = { serializedName: "Blob_getTagsExceptionHeaders", type: { name: "Composite", @@ -22673,7 +21511,7 @@ var BlobGetTagsExceptionHeaders = { } } }; -var BlobSetTagsHeaders = { +const BlobSetTagsHeaders = { serializedName: "Blob_setTagsHeaders", type: { name: "Composite", @@ -22717,7 +21555,7 @@ var BlobSetTagsHeaders = { } } }; -var BlobSetTagsExceptionHeaders = { +const BlobSetTagsExceptionHeaders = { serializedName: "Blob_setTagsExceptionHeaders", type: { name: "Composite", @@ -22733,7 +21571,7 @@ var BlobSetTagsExceptionHeaders = { } } }; -var PageBlobCreateHeaders = { +const PageBlobCreateHeaders = { serializedName: "PageBlob_createHeaders", type: { name: "Composite", @@ -22826,7 +21664,7 @@ var PageBlobCreateHeaders = { } } }; -var PageBlobCreateExceptionHeaders = { +const PageBlobCreateExceptionHeaders = { serializedName: "PageBlob_createExceptionHeaders", type: { name: "Composite", @@ -22842,7 +21680,7 @@ var PageBlobCreateExceptionHeaders = { } } }; -var PageBlobUploadPagesHeaders = { +const PageBlobUploadPagesHeaders = { serializedName: "PageBlob_uploadPagesHeaders", type: { name: "Composite", @@ -22942,7 +21780,7 @@ var PageBlobUploadPagesHeaders = { } } }; -var PageBlobUploadPagesExceptionHeaders = { +const PageBlobUploadPagesExceptionHeaders = { serializedName: "PageBlob_uploadPagesExceptionHeaders", type: { name: "Composite", @@ -22958,7 +21796,7 @@ var PageBlobUploadPagesExceptionHeaders = { } } }; -var PageBlobClearPagesHeaders = { +const PageBlobClearPagesHeaders = { serializedName: "PageBlob_clearPagesHeaders", type: { name: "Composite", @@ -23037,7 +21875,7 @@ var PageBlobClearPagesHeaders = { } } }; -var PageBlobClearPagesExceptionHeaders = { +const PageBlobClearPagesExceptionHeaders = { serializedName: "PageBlob_clearPagesExceptionHeaders", type: { name: "Composite", @@ -23053,7 +21891,7 @@ var PageBlobClearPagesExceptionHeaders = { } } }; -var PageBlobUploadPagesFromURLHeaders = { +const PageBlobUploadPagesFromURLHeaders = { serializedName: "PageBlob_uploadPagesFromURLHeaders", type: { name: "Composite", @@ -23146,7 +21984,7 @@ var PageBlobUploadPagesFromURLHeaders = { } } }; -var PageBlobUploadPagesFromURLExceptionHeaders = { +const PageBlobUploadPagesFromURLExceptionHeaders = { serializedName: "PageBlob_uploadPagesFromURLExceptionHeaders", type: { name: "Composite", @@ -23162,7 +22000,7 @@ var PageBlobUploadPagesFromURLExceptionHeaders = { } } }; -var PageBlobGetPageRangesHeaders = { +const PageBlobGetPageRangesHeaders = { serializedName: "PageBlob_getPageRangesHeaders", type: { name: "Composite", @@ -23227,7 +22065,7 @@ var PageBlobGetPageRangesHeaders = { } } }; -var PageBlobGetPageRangesExceptionHeaders = { +const PageBlobGetPageRangesExceptionHeaders = { serializedName: "PageBlob_getPageRangesExceptionHeaders", type: { name: "Composite", @@ -23243,7 +22081,7 @@ var PageBlobGetPageRangesExceptionHeaders = { } } }; -var PageBlobGetPageRangesDiffHeaders = { +const PageBlobGetPageRangesDiffHeaders = { serializedName: "PageBlob_getPageRangesDiffHeaders", type: { name: "Composite", @@ -23308,7 +22146,7 @@ var PageBlobGetPageRangesDiffHeaders = { } } }; -var PageBlobGetPageRangesDiffExceptionHeaders = { +const PageBlobGetPageRangesDiffExceptionHeaders = { serializedName: "PageBlob_getPageRangesDiffExceptionHeaders", type: { name: "Composite", @@ -23324,7 +22162,7 @@ var PageBlobGetPageRangesDiffExceptionHeaders = { } } }; -var PageBlobResizeHeaders = { +const PageBlobResizeHeaders = { serializedName: "PageBlob_resizeHeaders", type: { name: "Composite", @@ -23389,7 +22227,7 @@ var PageBlobResizeHeaders = { } } }; -var PageBlobResizeExceptionHeaders = { +const PageBlobResizeExceptionHeaders = { serializedName: "PageBlob_resizeExceptionHeaders", type: { name: "Composite", @@ -23405,7 +22243,7 @@ var PageBlobResizeExceptionHeaders = { } } }; -var PageBlobUpdateSequenceNumberHeaders = { +const PageBlobUpdateSequenceNumberHeaders = { serializedName: "PageBlob_updateSequenceNumberHeaders", type: { name: "Composite", @@ -23470,7 +22308,7 @@ var PageBlobUpdateSequenceNumberHeaders = { } } }; -var PageBlobUpdateSequenceNumberExceptionHeaders = { +const PageBlobUpdateSequenceNumberExceptionHeaders = { serializedName: "PageBlob_updateSequenceNumberExceptionHeaders", type: { name: "Composite", @@ -23486,7 +22324,7 @@ var PageBlobUpdateSequenceNumberExceptionHeaders = { } } }; -var PageBlobCopyIncrementalHeaders = { +const PageBlobCopyIncrementalHeaders = { serializedName: "PageBlob_copyIncrementalHeaders", type: { name: "Composite", @@ -23559,7 +22397,7 @@ var PageBlobCopyIncrementalHeaders = { } } }; -var PageBlobCopyIncrementalExceptionHeaders = { +const PageBlobCopyIncrementalExceptionHeaders = { serializedName: "PageBlob_copyIncrementalExceptionHeaders", type: { name: "Composite", @@ -23575,7 +22413,7 @@ var PageBlobCopyIncrementalExceptionHeaders = { } } }; -var AppendBlobCreateHeaders = { +const AppendBlobCreateHeaders = { serializedName: "AppendBlob_createHeaders", type: { name: "Composite", @@ -23668,7 +22506,7 @@ var AppendBlobCreateHeaders = { } } }; -var AppendBlobCreateExceptionHeaders = { +const AppendBlobCreateExceptionHeaders = { serializedName: "AppendBlob_createExceptionHeaders", type: { name: "Composite", @@ -23684,7 +22522,7 @@ var AppendBlobCreateExceptionHeaders = { } } }; -var AppendBlobAppendBlockHeaders = { +const AppendBlobAppendBlockHeaders = { serializedName: "AppendBlob_appendBlockHeaders", type: { name: "Composite", @@ -23791,7 +22629,7 @@ var AppendBlobAppendBlockHeaders = { } } }; -var AppendBlobAppendBlockExceptionHeaders = { +const AppendBlobAppendBlockExceptionHeaders = { serializedName: "AppendBlob_appendBlockExceptionHeaders", type: { name: "Composite", @@ -23807,7 +22645,7 @@ var AppendBlobAppendBlockExceptionHeaders = { } } }; -var AppendBlobAppendBlockFromUrlHeaders = { +const AppendBlobAppendBlockFromUrlHeaders = { serializedName: "AppendBlob_appendBlockFromUrlHeaders", type: { name: "Composite", @@ -23907,7 +22745,7 @@ var AppendBlobAppendBlockFromUrlHeaders = { } } }; -var AppendBlobAppendBlockFromUrlExceptionHeaders = { +const AppendBlobAppendBlockFromUrlExceptionHeaders = { serializedName: "AppendBlob_appendBlockFromUrlExceptionHeaders", type: { name: "Composite", @@ -23923,7 +22761,7 @@ var AppendBlobAppendBlockFromUrlExceptionHeaders = { } } }; -var AppendBlobSealHeaders = { +const AppendBlobSealHeaders = { serializedName: "AppendBlob_sealHeaders", type: { name: "Composite", @@ -23981,7 +22819,7 @@ var AppendBlobSealHeaders = { } } }; -var AppendBlobSealExceptionHeaders = { +const AppendBlobSealExceptionHeaders = { serializedName: "AppendBlob_sealExceptionHeaders", type: { name: "Composite", @@ -23997,7 +22835,7 @@ var AppendBlobSealExceptionHeaders = { } } }; -var BlockBlobUploadHeaders = { +const BlockBlobUploadHeaders = { serializedName: "BlockBlob_uploadHeaders", type: { name: "Composite", @@ -24090,7 +22928,7 @@ var BlockBlobUploadHeaders = { } } }; -var BlockBlobUploadExceptionHeaders = { +const BlockBlobUploadExceptionHeaders = { serializedName: "BlockBlob_uploadExceptionHeaders", type: { name: "Composite", @@ -24106,7 +22944,7 @@ var BlockBlobUploadExceptionHeaders = { } } }; -var BlockBlobPutBlobFromUrlHeaders = { +const BlockBlobPutBlobFromUrlHeaders = { serializedName: "BlockBlob_putBlobFromUrlHeaders", type: { name: "Composite", @@ -24199,7 +23037,7 @@ var BlockBlobPutBlobFromUrlHeaders = { } } }; -var BlockBlobPutBlobFromUrlExceptionHeaders = { +const BlockBlobPutBlobFromUrlExceptionHeaders = { serializedName: "BlockBlob_putBlobFromUrlExceptionHeaders", type: { name: "Composite", @@ -24215,7 +23053,7 @@ var BlockBlobPutBlobFromUrlExceptionHeaders = { } } }; -var BlockBlobStageBlockHeaders = { +const BlockBlobStageBlockHeaders = { serializedName: "BlockBlob_stageBlockHeaders", type: { name: "Composite", @@ -24294,7 +23132,7 @@ var BlockBlobStageBlockHeaders = { } } }; -var BlockBlobStageBlockExceptionHeaders = { +const BlockBlobStageBlockExceptionHeaders = { serializedName: "BlockBlob_stageBlockExceptionHeaders", type: { name: "Composite", @@ -24310,7 +23148,7 @@ var BlockBlobStageBlockExceptionHeaders = { } } }; -var BlockBlobStageBlockFromURLHeaders = { +const BlockBlobStageBlockFromURLHeaders = { serializedName: "BlockBlob_stageBlockFromURLHeaders", type: { name: "Composite", @@ -24389,7 +23227,7 @@ var BlockBlobStageBlockFromURLHeaders = { } } }; -var BlockBlobStageBlockFromURLExceptionHeaders = { +const BlockBlobStageBlockFromURLExceptionHeaders = { serializedName: "BlockBlob_stageBlockFromURLExceptionHeaders", type: { name: "Composite", @@ -24405,7 +23243,7 @@ var BlockBlobStageBlockFromURLExceptionHeaders = { } } }; -var BlockBlobCommitBlockListHeaders = { +const BlockBlobCommitBlockListHeaders = { serializedName: "BlockBlob_commitBlockListHeaders", type: { name: "Composite", @@ -24505,7 +23343,7 @@ var BlockBlobCommitBlockListHeaders = { } } }; -var BlockBlobCommitBlockListExceptionHeaders = { +const BlockBlobCommitBlockListExceptionHeaders = { serializedName: "BlockBlob_commitBlockListExceptionHeaders", type: { name: "Composite", @@ -24521,7 +23359,7 @@ var BlockBlobCommitBlockListExceptionHeaders = { } } }; -var BlockBlobGetBlockListHeaders = { +const BlockBlobGetBlockListHeaders = { serializedName: "BlockBlob_getBlockListHeaders", type: { name: "Composite", @@ -24593,7 +23431,7 @@ var BlockBlobGetBlockListHeaders = { } } }; -var BlockBlobGetBlockListExceptionHeaders = { +const BlockBlobGetBlockListExceptionHeaders = { serializedName: "BlockBlob_getBlockListExceptionHeaders", type: { name: "Composite", @@ -24639,8 +23477,6 @@ var Mappers = /*#__PURE__*/Object.freeze({ ListBlobsHierarchySegmentResponse: ListBlobsHierarchySegmentResponse, BlobHierarchyListSegment: BlobHierarchyListSegment, BlobPrefix: BlobPrefix, - DataLakeStorageError: DataLakeStorageError, - DataLakeStorageErrorError: DataLakeStorageErrorError, BlockLookupList: BlockLookupList, BlockList: BlockList, Block: Block, @@ -24704,34 +23540,24 @@ var Mappers = /*#__PURE__*/Object.freeze({ ContainerListBlobHierarchySegmentExceptionHeaders: ContainerListBlobHierarchySegmentExceptionHeaders, ContainerGetAccountInfoHeaders: ContainerGetAccountInfoHeaders, ContainerGetAccountInfoExceptionHeaders: ContainerGetAccountInfoExceptionHeaders, - DirectoryCreateHeaders: DirectoryCreateHeaders, - DirectoryCreateExceptionHeaders: DirectoryCreateExceptionHeaders, - DirectoryRenameHeaders: DirectoryRenameHeaders, - DirectoryRenameExceptionHeaders: DirectoryRenameExceptionHeaders, - DirectoryDeleteHeaders: DirectoryDeleteHeaders, - DirectoryDeleteExceptionHeaders: DirectoryDeleteExceptionHeaders, - DirectorySetAccessControlHeaders: DirectorySetAccessControlHeaders, - DirectorySetAccessControlExceptionHeaders: DirectorySetAccessControlExceptionHeaders, - DirectoryGetAccessControlHeaders: DirectoryGetAccessControlHeaders, - DirectoryGetAccessControlExceptionHeaders: DirectoryGetAccessControlExceptionHeaders, BlobDownloadHeaders: BlobDownloadHeaders, BlobDownloadExceptionHeaders: BlobDownloadExceptionHeaders, BlobGetPropertiesHeaders: BlobGetPropertiesHeaders, BlobGetPropertiesExceptionHeaders: BlobGetPropertiesExceptionHeaders, BlobDeleteHeaders: BlobDeleteHeaders, BlobDeleteExceptionHeaders: BlobDeleteExceptionHeaders, - BlobSetAccessControlHeaders: BlobSetAccessControlHeaders, - BlobSetAccessControlExceptionHeaders: BlobSetAccessControlExceptionHeaders, - BlobGetAccessControlHeaders: BlobGetAccessControlHeaders, - BlobGetAccessControlExceptionHeaders: BlobGetAccessControlExceptionHeaders, - BlobRenameHeaders: BlobRenameHeaders, - BlobRenameExceptionHeaders: BlobRenameExceptionHeaders, BlobUndeleteHeaders: BlobUndeleteHeaders, BlobUndeleteExceptionHeaders: BlobUndeleteExceptionHeaders, BlobSetExpiryHeaders: BlobSetExpiryHeaders, BlobSetExpiryExceptionHeaders: BlobSetExpiryExceptionHeaders, BlobSetHttpHeadersHeaders: BlobSetHttpHeadersHeaders, BlobSetHttpHeadersExceptionHeaders: BlobSetHttpHeadersExceptionHeaders, + BlobSetImmutabilityPolicyHeaders: BlobSetImmutabilityPolicyHeaders, + BlobSetImmutabilityPolicyExceptionHeaders: BlobSetImmutabilityPolicyExceptionHeaders, + BlobDeleteImmutabilityPolicyHeaders: BlobDeleteImmutabilityPolicyHeaders, + BlobDeleteImmutabilityPolicyExceptionHeaders: BlobDeleteImmutabilityPolicyExceptionHeaders, + BlobSetLegalHoldHeaders: BlobSetLegalHoldHeaders, + BlobSetLegalHoldExceptionHeaders: BlobSetLegalHoldExceptionHeaders, BlobSetMetadataHeaders: BlobSetMetadataHeaders, BlobSetMetadataExceptionHeaders: BlobSetMetadataExceptionHeaders, BlobAcquireLeaseHeaders: BlobAcquireLeaseHeaders, @@ -24809,7 +23635,7 @@ var Mappers = /*#__PURE__*/Object.freeze({ * Code generated by Microsoft (R) AutoRest Code Generator. * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -var contentType = { +const contentType = { parameterPath: ["options", "contentType"], mapper: { defaultValue: "application/xml", @@ -24820,11 +23646,11 @@ var contentType = { } } }; -var blobServiceProperties = { +const blobServiceProperties = { parameterPath: "blobServiceProperties", mapper: BlobServiceProperties }; -var accept = { +const accept = { parameterPath: "accept", mapper: { defaultValue: "application/xml", @@ -24835,7 +23661,7 @@ var accept = { } } }; -var url = { +const url = { parameterPath: "url", mapper: { serializedName: "url", @@ -24847,7 +23673,7 @@ var url = { }, skipEncoding: true }; -var restype = { +const restype = { parameterPath: "restype", mapper: { defaultValue: "service", @@ -24858,7 +23684,7 @@ var restype = { } } }; -var comp = { +const comp = { parameterPath: "comp", mapper: { defaultValue: "properties", @@ -24869,7 +23695,7 @@ var comp = { } } }; -var timeoutInSeconds = { +const timeoutInSeconds = { parameterPath: ["options", "timeoutInSeconds"], mapper: { constraints: { @@ -24882,10 +23708,10 @@ var timeoutInSeconds = { } } }; -var version = { +const version = { parameterPath: "version", mapper: { - defaultValue: "2020-08-04", + defaultValue: "2020-10-02", isConstant: true, serializedName: "x-ms-version", type: { @@ -24893,7 +23719,7 @@ var version = { } } }; -var requestId = { +const requestId = { parameterPath: ["options", "requestId"], mapper: { serializedName: "x-ms-client-request-id", @@ -24903,7 +23729,7 @@ var requestId = { } } }; -var accept1 = { +const accept1 = { parameterPath: "accept", mapper: { defaultValue: "application/xml", @@ -24914,7 +23740,7 @@ var accept1 = { } } }; -var comp1 = { +const comp1 = { parameterPath: "comp", mapper: { defaultValue: "stats", @@ -24925,7 +23751,7 @@ var comp1 = { } } }; -var comp2 = { +const comp2 = { parameterPath: "comp", mapper: { defaultValue: "list", @@ -24936,7 +23762,7 @@ var comp2 = { } } }; -var prefix = { +const prefix = { parameterPath: ["options", "prefix"], mapper: { serializedName: "prefix", @@ -24946,7 +23772,7 @@ var prefix = { } } }; -var marker = { +const marker = { parameterPath: ["options", "marker"], mapper: { serializedName: "marker", @@ -24956,7 +23782,7 @@ var marker = { } } }; -var maxPageSize = { +const maxPageSize = { parameterPath: ["options", "maxPageSize"], mapper: { constraints: { @@ -24969,7 +23795,7 @@ var maxPageSize = { } } }; -var include = { +const include = { parameterPath: ["options", "include"], mapper: { serializedName: "include", @@ -24987,11 +23813,11 @@ var include = { }, collectionFormat: coreHttp.QueryCollectionFormat.Csv }; -var keyInfo = { +const keyInfo = { parameterPath: "keyInfo", mapper: KeyInfo }; -var comp3 = { +const comp3 = { parameterPath: "comp", mapper: { defaultValue: "userdelegationkey", @@ -25002,7 +23828,7 @@ var comp3 = { } } }; -var restype1 = { +const restype1 = { parameterPath: "restype", mapper: { defaultValue: "account", @@ -25013,7 +23839,7 @@ var restype1 = { } } }; -var body = { +const body = { parameterPath: "body", mapper: { serializedName: "body", @@ -25024,7 +23850,7 @@ var body = { } } }; -var comp4 = { +const comp4 = { parameterPath: "comp", mapper: { defaultValue: "batch", @@ -25035,7 +23861,7 @@ var comp4 = { } } }; -var contentLength = { +const contentLength = { parameterPath: "contentLength", mapper: { serializedName: "Content-Length", @@ -25046,7 +23872,7 @@ var contentLength = { } } }; -var multipartContentType = { +const multipartContentType = { parameterPath: "multipartContentType", mapper: { serializedName: "Content-Type", @@ -25057,7 +23883,7 @@ var multipartContentType = { } } }; -var comp5 = { +const comp5 = { parameterPath: "comp", mapper: { defaultValue: "blobs", @@ -25068,7 +23894,7 @@ var comp5 = { } } }; -var where = { +const where = { parameterPath: ["options", "where"], mapper: { serializedName: "where", @@ -25078,7 +23904,7 @@ var where = { } } }; -var restype2 = { +const restype2 = { parameterPath: "restype", mapper: { defaultValue: "container", @@ -25089,7 +23915,7 @@ var restype2 = { } } }; -var metadata = { +const metadata = { parameterPath: ["options", "metadata"], mapper: { serializedName: "x-ms-meta", @@ -25101,7 +23927,7 @@ var metadata = { headerCollectionPrefix: "x-ms-meta-" } }; -var access = { +const access = { parameterPath: ["options", "access"], mapper: { serializedName: "x-ms-blob-public-access", @@ -25112,7 +23938,7 @@ var access = { } } }; -var defaultEncryptionScope = { +const defaultEncryptionScope = { parameterPath: [ "options", "containerEncryptionScope", @@ -25126,7 +23952,7 @@ var defaultEncryptionScope = { } } }; -var preventEncryptionScopeOverride = { +const preventEncryptionScopeOverride = { parameterPath: [ "options", "containerEncryptionScope", @@ -25140,7 +23966,7 @@ var preventEncryptionScopeOverride = { } } }; -var leaseId = { +const leaseId = { parameterPath: ["options", "leaseAccessConditions", "leaseId"], mapper: { serializedName: "x-ms-lease-id", @@ -25150,7 +23976,7 @@ var leaseId = { } } }; -var ifModifiedSince = { +const ifModifiedSince = { parameterPath: ["options", "modifiedAccessConditions", "ifModifiedSince"], mapper: { serializedName: "If-Modified-Since", @@ -25160,7 +23986,7 @@ var ifModifiedSince = { } } }; -var ifUnmodifiedSince = { +const ifUnmodifiedSince = { parameterPath: ["options", "modifiedAccessConditions", "ifUnmodifiedSince"], mapper: { serializedName: "If-Unmodified-Since", @@ -25170,7 +23996,7 @@ var ifUnmodifiedSince = { } } }; -var comp6 = { +const comp6 = { parameterPath: "comp", mapper: { defaultValue: "metadata", @@ -25181,7 +24007,7 @@ var comp6 = { } } }; -var comp7 = { +const comp7 = { parameterPath: "comp", mapper: { defaultValue: "acl", @@ -25192,7 +24018,7 @@ var comp7 = { } } }; -var containerAcl = { +const containerAcl = { parameterPath: ["options", "containerAcl"], mapper: { serializedName: "containerAcl", @@ -25210,7 +24036,7 @@ var containerAcl = { } } }; -var comp8 = { +const comp8 = { parameterPath: "comp", mapper: { defaultValue: "undelete", @@ -25221,7 +24047,7 @@ var comp8 = { } } }; -var deletedContainerName = { +const deletedContainerName = { parameterPath: ["options", "deletedContainerName"], mapper: { serializedName: "x-ms-deleted-container-name", @@ -25231,7 +24057,7 @@ var deletedContainerName = { } } }; -var deletedContainerVersion = { +const deletedContainerVersion = { parameterPath: ["options", "deletedContainerVersion"], mapper: { serializedName: "x-ms-deleted-container-version", @@ -25241,7 +24067,7 @@ var deletedContainerVersion = { } } }; -var comp9 = { +const comp9 = { parameterPath: "comp", mapper: { defaultValue: "rename", @@ -25252,7 +24078,7 @@ var comp9 = { } } }; -var sourceContainerName = { +const sourceContainerName = { parameterPath: "sourceContainerName", mapper: { serializedName: "x-ms-source-container-name", @@ -25263,7 +24089,7 @@ var sourceContainerName = { } } }; -var sourceLeaseId = { +const sourceLeaseId = { parameterPath: ["options", "sourceLeaseId"], mapper: { serializedName: "x-ms-source-lease-id", @@ -25273,7 +24099,7 @@ var sourceLeaseId = { } } }; -var comp10 = { +const comp10 = { parameterPath: "comp", mapper: { defaultValue: "lease", @@ -25284,7 +24110,7 @@ var comp10 = { } } }; -var action = { +const action = { parameterPath: "action", mapper: { defaultValue: "acquire", @@ -25295,7 +24121,7 @@ var action = { } } }; -var duration = { +const duration = { parameterPath: ["options", "duration"], mapper: { serializedName: "x-ms-lease-duration", @@ -25305,7 +24131,7 @@ var duration = { } } }; -var proposedLeaseId = { +const proposedLeaseId = { parameterPath: ["options", "proposedLeaseId"], mapper: { serializedName: "x-ms-proposed-lease-id", @@ -25315,7 +24141,7 @@ var proposedLeaseId = { } } }; -var action1 = { +const action1 = { parameterPath: "action", mapper: { defaultValue: "release", @@ -25326,7 +24152,7 @@ var action1 = { } } }; -var leaseId1 = { +const leaseId1 = { parameterPath: "leaseId", mapper: { serializedName: "x-ms-lease-id", @@ -25337,7 +24163,7 @@ var leaseId1 = { } } }; -var action2 = { +const action2 = { parameterPath: "action", mapper: { defaultValue: "renew", @@ -25348,7 +24174,7 @@ var action2 = { } } }; -var action3 = { +const action3 = { parameterPath: "action", mapper: { defaultValue: "break", @@ -25359,7 +24185,7 @@ var action3 = { } } }; -var breakPeriod = { +const breakPeriod = { parameterPath: ["options", "breakPeriod"], mapper: { serializedName: "x-ms-lease-break-period", @@ -25369,7 +24195,7 @@ var breakPeriod = { } } }; -var action4 = { +const action4 = { parameterPath: "action", mapper: { defaultValue: "change", @@ -25380,7 +24206,7 @@ var action4 = { } } }; -var proposedLeaseId1 = { +const proposedLeaseId1 = { parameterPath: "proposedLeaseId", mapper: { serializedName: "x-ms-proposed-lease-id", @@ -25391,7 +24217,7 @@ var proposedLeaseId1 = { } } }; -var include1 = { +const include1 = { parameterPath: ["options", "include"], mapper: { serializedName: "include", @@ -25409,7 +24235,10 @@ var include1 = { "snapshots", "uncommittedblobs", "versions", - "tags" + "tags", + "immutabilitypolicy", + "legalhold", + "deletedwithversions" ] } } @@ -25417,7 +24246,7 @@ var include1 = { }, collectionFormat: coreHttp.QueryCollectionFormat.Csv }; -var delimiter = { +const delimiter = { parameterPath: "delimiter", mapper: { serializedName: "delimiter", @@ -25428,243 +24257,7 @@ var delimiter = { } } }; -var directoryProperties = { - parameterPath: ["options", "directoryProperties"], - mapper: { - serializedName: "x-ms-properties", - xmlName: "x-ms-properties", - type: { - name: "String" - } - } -}; -var posixPermissions = { - parameterPath: ["options", "posixPermissions"], - mapper: { - serializedName: "x-ms-permissions", - xmlName: "x-ms-permissions", - type: { - name: "String" - } - } -}; -var posixUmask = { - parameterPath: ["options", "posixUmask"], - mapper: { - serializedName: "x-ms-umask", - xmlName: "x-ms-umask", - type: { - name: "String" - } - } -}; -var cacheControl = { - parameterPath: ["options", "directoryHttpHeaders", "cacheControl"], - mapper: { - serializedName: "x-ms-cache-control", - xmlName: "x-ms-cache-control", - type: { - name: "String" - } - } -}; -var contentType1 = { - parameterPath: ["options", "directoryHttpHeaders", "contentType"], - mapper: { - serializedName: "x-ms-content-type", - xmlName: "x-ms-content-type", - type: { - name: "String" - } - } -}; -var contentEncoding = { - parameterPath: ["options", "directoryHttpHeaders", "contentEncoding"], - mapper: { - serializedName: "x-ms-content-encoding", - xmlName: "x-ms-content-encoding", - type: { - name: "String" - } - } -}; -var contentLanguage = { - parameterPath: ["options", "directoryHttpHeaders", "contentLanguage"], - mapper: { - serializedName: "x-ms-content-language", - xmlName: "x-ms-content-language", - type: { - name: "String" - } - } -}; -var contentDisposition = { - parameterPath: ["options", "directoryHttpHeaders", "contentDisposition"], - mapper: { - serializedName: "x-ms-content-disposition", - xmlName: "x-ms-content-disposition", - type: { - name: "String" - } - } -}; -var ifMatch = { - parameterPath: ["options", "modifiedAccessConditions", "ifMatch"], - mapper: { - serializedName: "If-Match", - xmlName: "If-Match", - type: { - name: "String" - } - } -}; -var ifNoneMatch = { - parameterPath: ["options", "modifiedAccessConditions", "ifNoneMatch"], - mapper: { - serializedName: "If-None-Match", - xmlName: "If-None-Match", - type: { - name: "String" - } - } -}; -var pathRenameMode = { - parameterPath: ["options", "pathRenameMode"], - mapper: { - serializedName: "mode", - xmlName: "mode", - type: { - name: "Enum", - allowedValues: ["legacy", "posix"] - } - } -}; -var renameSource = { - parameterPath: "renameSource", - mapper: { - serializedName: "x-ms-rename-source", - required: true, - xmlName: "x-ms-rename-source", - type: { - name: "String" - } - } -}; -var sourceIfModifiedSince = { - parameterPath: [ - "options", - "sourceModifiedAccessConditions", - "sourceIfModifiedSince" - ], - mapper: { - serializedName: "x-ms-source-if-modified-since", - xmlName: "x-ms-source-if-modified-since", - type: { - name: "DateTimeRfc1123" - } - } -}; -var sourceIfUnmodifiedSince = { - parameterPath: [ - "options", - "sourceModifiedAccessConditions", - "sourceIfUnmodifiedSince" - ], - mapper: { - serializedName: "x-ms-source-if-unmodified-since", - xmlName: "x-ms-source-if-unmodified-since", - type: { - name: "DateTimeRfc1123" - } - } -}; -var sourceIfMatch = { - parameterPath: ["options", "sourceModifiedAccessConditions", "sourceIfMatch"], - mapper: { - serializedName: "x-ms-source-if-match", - xmlName: "x-ms-source-if-match", - type: { - name: "String" - } - } -}; -var sourceIfNoneMatch = { - parameterPath: [ - "options", - "sourceModifiedAccessConditions", - "sourceIfNoneMatch" - ], - mapper: { - serializedName: "x-ms-source-if-none-match", - xmlName: "x-ms-source-if-none-match", - type: { - name: "String" - } - } -}; -var action5 = { - parameterPath: "action", - mapper: { - defaultValue: "setAccessControl", - isConstant: true, - serializedName: "action", - type: { - name: "String" - } - } -}; -var owner = { - parameterPath: ["options", "owner"], - mapper: { - serializedName: "x-ms-owner", - xmlName: "x-ms-owner", - type: { - name: "String" - } - } -}; -var group = { - parameterPath: ["options", "group"], - mapper: { - serializedName: "x-ms-group", - xmlName: "x-ms-group", - type: { - name: "String" - } - } -}; -var posixAcl = { - parameterPath: ["options", "posixAcl"], - mapper: { - serializedName: "x-ms-acl", - xmlName: "x-ms-acl", - type: { - name: "String" - } - } -}; -var action6 = { - parameterPath: "action", - mapper: { - defaultValue: "getAccessControl", - isConstant: true, - serializedName: "action", - type: { - name: "String" - } - } -}; -var upn = { - parameterPath: ["options", "upn"], - mapper: { - serializedName: "upn", - xmlName: "upn", - type: { - name: "Boolean" - } - } -}; -var snapshot = { +const snapshot = { parameterPath: ["options", "snapshot"], mapper: { serializedName: "snapshot", @@ -25674,7 +24267,7 @@ var snapshot = { } } }; -var versionId = { +const versionId = { parameterPath: ["options", "versionId"], mapper: { serializedName: "versionid", @@ -25684,7 +24277,7 @@ var versionId = { } } }; -var range = { +const range = { parameterPath: ["options", "range"], mapper: { serializedName: "x-ms-range", @@ -25694,7 +24287,7 @@ var range = { } } }; -var rangeGetContentMD5 = { +const rangeGetContentMD5 = { parameterPath: ["options", "rangeGetContentMD5"], mapper: { serializedName: "x-ms-range-get-content-md5", @@ -25704,7 +24297,7 @@ var rangeGetContentMD5 = { } } }; -var rangeGetContentCRC64 = { +const rangeGetContentCRC64 = { parameterPath: ["options", "rangeGetContentCRC64"], mapper: { serializedName: "x-ms-range-get-content-crc64", @@ -25714,7 +24307,7 @@ var rangeGetContentCRC64 = { } } }; -var encryptionKey = { +const encryptionKey = { parameterPath: ["options", "cpkInfo", "encryptionKey"], mapper: { serializedName: "x-ms-encryption-key", @@ -25724,7 +24317,7 @@ var encryptionKey = { } } }; -var encryptionKeySha256 = { +const encryptionKeySha256 = { parameterPath: ["options", "cpkInfo", "encryptionKeySha256"], mapper: { serializedName: "x-ms-encryption-key-sha256", @@ -25734,7 +24327,7 @@ var encryptionKeySha256 = { } } }; -var encryptionAlgorithm = { +const encryptionAlgorithm = { parameterPath: ["options", "encryptionAlgorithm"], mapper: { defaultValue: "AES256", @@ -25745,7 +24338,27 @@ var encryptionAlgorithm = { } } }; -var ifTags = { +const ifMatch = { + parameterPath: ["options", "modifiedAccessConditions", "ifMatch"], + mapper: { + serializedName: "If-Match", + xmlName: "If-Match", + type: { + name: "String" + } + } +}; +const ifNoneMatch = { + parameterPath: ["options", "modifiedAccessConditions", "ifNoneMatch"], + mapper: { + serializedName: "If-None-Match", + xmlName: "If-None-Match", + type: { + name: "String" + } + } +}; +const ifTags = { parameterPath: ["options", "modifiedAccessConditions", "ifTags"], mapper: { serializedName: "x-ms-if-tags", @@ -25755,7 +24368,7 @@ var ifTags = { } } }; -var deleteSnapshots = { +const deleteSnapshots = { parameterPath: ["options", "deleteSnapshots"], mapper: { serializedName: "x-ms-delete-snapshots", @@ -25766,7 +24379,7 @@ var deleteSnapshots = { } } }; -var blobDeleteType = { +const blobDeleteType = { parameterPath: ["options", "blobDeleteType"], mapper: { serializedName: "deletetype", @@ -25776,7 +24389,7 @@ var blobDeleteType = { } } }; -var comp11 = { +const comp11 = { parameterPath: "comp", mapper: { defaultValue: "expiry", @@ -25787,7 +24400,7 @@ var comp11 = { } } }; -var expiryOptions = { +const expiryOptions = { parameterPath: "expiryOptions", mapper: { serializedName: "x-ms-expiry-option", @@ -25798,7 +24411,7 @@ var expiryOptions = { } } }; -var expiresOn = { +const expiresOn = { parameterPath: ["options", "expiresOn"], mapper: { serializedName: "x-ms-expiry-time", @@ -25808,7 +24421,7 @@ var expiresOn = { } } }; -var blobCacheControl = { +const blobCacheControl = { parameterPath: ["options", "blobHttpHeaders", "blobCacheControl"], mapper: { serializedName: "x-ms-blob-cache-control", @@ -25818,7 +24431,7 @@ var blobCacheControl = { } } }; -var blobContentType = { +const blobContentType = { parameterPath: ["options", "blobHttpHeaders", "blobContentType"], mapper: { serializedName: "x-ms-blob-content-type", @@ -25828,7 +24441,7 @@ var blobContentType = { } } }; -var blobContentMD5 = { +const blobContentMD5 = { parameterPath: ["options", "blobHttpHeaders", "blobContentMD5"], mapper: { serializedName: "x-ms-blob-content-md5", @@ -25838,7 +24451,7 @@ var blobContentMD5 = { } } }; -var blobContentEncoding = { +const blobContentEncoding = { parameterPath: ["options", "blobHttpHeaders", "blobContentEncoding"], mapper: { serializedName: "x-ms-blob-content-encoding", @@ -25848,7 +24461,7 @@ var blobContentEncoding = { } } }; -var blobContentLanguage = { +const blobContentLanguage = { parameterPath: ["options", "blobHttpHeaders", "blobContentLanguage"], mapper: { serializedName: "x-ms-blob-content-language", @@ -25858,7 +24471,7 @@ var blobContentLanguage = { } } }; -var blobContentDisposition = { +const blobContentDisposition = { parameterPath: ["options", "blobHttpHeaders", "blobContentDisposition"], mapper: { serializedName: "x-ms-blob-content-disposition", @@ -25868,7 +24481,61 @@ var blobContentDisposition = { } } }; -var encryptionScope = { +const comp12 = { + parameterPath: "comp", + mapper: { + defaultValue: "immutabilityPolicies", + isConstant: true, + serializedName: "comp", + type: { + name: "String" + } + } +}; +const immutabilityPolicyExpiry = { + parameterPath: ["options", "immutabilityPolicyExpiry"], + mapper: { + serializedName: "x-ms-immutability-policy-until-date", + xmlName: "x-ms-immutability-policy-until-date", + type: { + name: "DateTimeRfc1123" + } + } +}; +const immutabilityPolicyMode = { + parameterPath: ["options", "immutabilityPolicyMode"], + mapper: { + serializedName: "x-ms-immutability-policy-mode", + xmlName: "x-ms-immutability-policy-mode", + type: { + name: "Enum", + allowedValues: ["Mutable", "Unlocked", "Locked"] + } + } +}; +const comp13 = { + parameterPath: "comp", + mapper: { + defaultValue: "legalhold", + isConstant: true, + serializedName: "comp", + type: { + name: "String" + } + } +}; +const legalHold = { + parameterPath: "legalHold", + mapper: { + serializedName: "x-ms-legal-hold", + required: true, + xmlName: "x-ms-legal-hold", + type: { + name: "Boolean" + } + } +}; +const encryptionScope = { parameterPath: ["options", "encryptionScope"], mapper: { serializedName: "x-ms-encryption-scope", @@ -25878,7 +24545,7 @@ var encryptionScope = { } } }; -var comp12 = { +const comp14 = { parameterPath: "comp", mapper: { defaultValue: "snapshot", @@ -25889,7 +24556,7 @@ var comp12 = { } } }; -var tier = { +const tier = { parameterPath: ["options", "tier"], mapper: { serializedName: "x-ms-access-tier", @@ -25915,7 +24582,7 @@ var tier = { } } }; -var rehydratePriority = { +const rehydratePriority = { parameterPath: ["options", "rehydratePriority"], mapper: { serializedName: "x-ms-rehydrate-priority", @@ -25926,7 +24593,59 @@ var rehydratePriority = { } } }; -var sourceIfTags = { +const sourceIfModifiedSince = { + parameterPath: [ + "options", + "sourceModifiedAccessConditions", + "sourceIfModifiedSince" + ], + mapper: { + serializedName: "x-ms-source-if-modified-since", + xmlName: "x-ms-source-if-modified-since", + type: { + name: "DateTimeRfc1123" + } + } +}; +const sourceIfUnmodifiedSince = { + parameterPath: [ + "options", + "sourceModifiedAccessConditions", + "sourceIfUnmodifiedSince" + ], + mapper: { + serializedName: "x-ms-source-if-unmodified-since", + xmlName: "x-ms-source-if-unmodified-since", + type: { + name: "DateTimeRfc1123" + } + } +}; +const sourceIfMatch = { + parameterPath: ["options", "sourceModifiedAccessConditions", "sourceIfMatch"], + mapper: { + serializedName: "x-ms-source-if-match", + xmlName: "x-ms-source-if-match", + type: { + name: "String" + } + } +}; +const sourceIfNoneMatch = { + parameterPath: [ + "options", + "sourceModifiedAccessConditions", + "sourceIfNoneMatch" + ], + mapper: { + serializedName: "x-ms-source-if-none-match", + xmlName: "x-ms-source-if-none-match", + type: { + name: "String" + } + } +}; +const sourceIfTags = { parameterPath: ["options", "sourceModifiedAccessConditions", "sourceIfTags"], mapper: { serializedName: "x-ms-source-if-tags", @@ -25936,7 +24655,7 @@ var sourceIfTags = { } } }; -var copySource = { +const copySource = { parameterPath: "copySource", mapper: { serializedName: "x-ms-copy-source", @@ -25947,7 +24666,7 @@ var copySource = { } } }; -var blobTagsString = { +const blobTagsString = { parameterPath: ["options", "blobTagsString"], mapper: { serializedName: "x-ms-tags", @@ -25957,7 +24676,7 @@ var blobTagsString = { } } }; -var sealBlob = { +const sealBlob = { parameterPath: ["options", "sealBlob"], mapper: { serializedName: "x-ms-seal-blob", @@ -25967,7 +24686,17 @@ var sealBlob = { } } }; -var xMsRequiresSync = { +const legalHold1 = { + parameterPath: ["options", "legalHold"], + mapper: { + serializedName: "x-ms-legal-hold", + xmlName: "x-ms-legal-hold", + type: { + name: "Boolean" + } + } +}; +const xMsRequiresSync = { parameterPath: "xMsRequiresSync", mapper: { defaultValue: "true", @@ -25978,7 +24707,7 @@ var xMsRequiresSync = { } } }; -var sourceContentMD5 = { +const sourceContentMD5 = { parameterPath: ["options", "sourceContentMD5"], mapper: { serializedName: "x-ms-source-content-md5", @@ -25988,7 +24717,17 @@ var sourceContentMD5 = { } } }; -var comp13 = { +const copySourceAuthorization = { + parameterPath: ["options", "copySourceAuthorization"], + mapper: { + serializedName: "x-ms-copy-source-authorization", + xmlName: "x-ms-copy-source-authorization", + type: { + name: "String" + } + } +}; +const comp15 = { parameterPath: "comp", mapper: { defaultValue: "copy", @@ -25999,7 +24738,7 @@ var comp13 = { } } }; -var copyActionAbortConstant = { +const copyActionAbortConstant = { parameterPath: "copyActionAbortConstant", mapper: { defaultValue: "abort", @@ -26010,7 +24749,7 @@ var copyActionAbortConstant = { } } }; -var copyId = { +const copyId = { parameterPath: "copyId", mapper: { serializedName: "copyid", @@ -26021,7 +24760,7 @@ var copyId = { } } }; -var comp14 = { +const comp16 = { parameterPath: "comp", mapper: { defaultValue: "tier", @@ -26032,7 +24771,7 @@ var comp14 = { } } }; -var tier1 = { +const tier1 = { parameterPath: "tier", mapper: { serializedName: "x-ms-access-tier", @@ -26059,11 +24798,11 @@ var tier1 = { } } }; -var queryRequest = { +const queryRequest = { parameterPath: ["options", "queryRequest"], mapper: QueryRequest }; -var comp15 = { +const comp17 = { parameterPath: "comp", mapper: { defaultValue: "query", @@ -26074,7 +24813,7 @@ var comp15 = { } } }; -var comp16 = { +const comp18 = { parameterPath: "comp", mapper: { defaultValue: "tags", @@ -26085,11 +24824,11 @@ var comp16 = { } } }; -var tags = { +const tags = { parameterPath: ["options", "tags"], mapper: BlobTags }; -var transactionalContentMD5 = { +const transactionalContentMD5 = { parameterPath: ["options", "transactionalContentMD5"], mapper: { serializedName: "Content-MD5", @@ -26099,7 +24838,7 @@ var transactionalContentMD5 = { } } }; -var transactionalContentCrc64 = { +const transactionalContentCrc64 = { parameterPath: ["options", "transactionalContentCrc64"], mapper: { serializedName: "x-ms-content-crc64", @@ -26109,7 +24848,7 @@ var transactionalContentCrc64 = { } } }; -var blobType = { +const blobType = { parameterPath: "blobType", mapper: { defaultValue: "PageBlob", @@ -26120,7 +24859,7 @@ var blobType = { } } }; -var blobContentLength = { +const blobContentLength = { parameterPath: "blobContentLength", mapper: { serializedName: "x-ms-blob-content-length", @@ -26131,7 +24870,7 @@ var blobContentLength = { } } }; -var blobSequenceNumber = { +const blobSequenceNumber = { parameterPath: ["options", "blobSequenceNumber"], mapper: { serializedName: "x-ms-blob-sequence-number", @@ -26141,7 +24880,7 @@ var blobSequenceNumber = { } } }; -var contentType2 = { +const contentType1 = { parameterPath: ["options", "contentType"], mapper: { defaultValue: "application/octet-stream", @@ -26152,7 +24891,7 @@ var contentType2 = { } } }; -var body1 = { +const body1 = { parameterPath: "body", mapper: { serializedName: "body", @@ -26163,7 +24902,7 @@ var body1 = { } } }; -var accept2 = { +const accept2 = { parameterPath: "accept", mapper: { defaultValue: "application/xml", @@ -26174,7 +24913,7 @@ var accept2 = { } } }; -var comp17 = { +const comp19 = { parameterPath: "comp", mapper: { defaultValue: "page", @@ -26185,7 +24924,7 @@ var comp17 = { } } }; -var pageWrite = { +const pageWrite = { parameterPath: "pageWrite", mapper: { defaultValue: "update", @@ -26196,7 +24935,7 @@ var pageWrite = { } } }; -var ifSequenceNumberLessThanOrEqualTo = { +const ifSequenceNumberLessThanOrEqualTo = { parameterPath: [ "options", "sequenceNumberAccessConditions", @@ -26210,7 +24949,7 @@ var ifSequenceNumberLessThanOrEqualTo = { } } }; -var ifSequenceNumberLessThan = { +const ifSequenceNumberLessThan = { parameterPath: [ "options", "sequenceNumberAccessConditions", @@ -26224,7 +24963,7 @@ var ifSequenceNumberLessThan = { } } }; -var ifSequenceNumberEqualTo = { +const ifSequenceNumberEqualTo = { parameterPath: [ "options", "sequenceNumberAccessConditions", @@ -26238,7 +24977,7 @@ var ifSequenceNumberEqualTo = { } } }; -var pageWrite1 = { +const pageWrite1 = { parameterPath: "pageWrite", mapper: { defaultValue: "clear", @@ -26249,7 +24988,7 @@ var pageWrite1 = { } } }; -var sourceUrl = { +const sourceUrl = { parameterPath: "sourceUrl", mapper: { serializedName: "x-ms-copy-source", @@ -26260,7 +24999,7 @@ var sourceUrl = { } } }; -var sourceRange = { +const sourceRange = { parameterPath: "sourceRange", mapper: { serializedName: "x-ms-source-range", @@ -26271,7 +25010,7 @@ var sourceRange = { } } }; -var sourceContentCrc64 = { +const sourceContentCrc64 = { parameterPath: ["options", "sourceContentCrc64"], mapper: { serializedName: "x-ms-source-content-crc64", @@ -26281,7 +25020,7 @@ var sourceContentCrc64 = { } } }; -var range1 = { +const range1 = { parameterPath: "range", mapper: { serializedName: "x-ms-range", @@ -26292,7 +25031,7 @@ var range1 = { } } }; -var comp18 = { +const comp20 = { parameterPath: "comp", mapper: { defaultValue: "pagelist", @@ -26303,7 +25042,7 @@ var comp18 = { } } }; -var prevsnapshot = { +const prevsnapshot = { parameterPath: ["options", "prevsnapshot"], mapper: { serializedName: "prevsnapshot", @@ -26313,7 +25052,7 @@ var prevsnapshot = { } } }; -var prevSnapshotUrl = { +const prevSnapshotUrl = { parameterPath: ["options", "prevSnapshotUrl"], mapper: { serializedName: "x-ms-previous-snapshot-url", @@ -26323,7 +25062,7 @@ var prevSnapshotUrl = { } } }; -var sequenceNumberAction = { +const sequenceNumberAction = { parameterPath: "sequenceNumberAction", mapper: { serializedName: "x-ms-sequence-number-action", @@ -26335,7 +25074,7 @@ var sequenceNumberAction = { } } }; -var comp19 = { +const comp21 = { parameterPath: "comp", mapper: { defaultValue: "incrementalcopy", @@ -26346,7 +25085,7 @@ var comp19 = { } } }; -var blobType1 = { +const blobType1 = { parameterPath: "blobType", mapper: { defaultValue: "AppendBlob", @@ -26357,7 +25096,7 @@ var blobType1 = { } } }; -var comp20 = { +const comp22 = { parameterPath: "comp", mapper: { defaultValue: "appendblock", @@ -26368,7 +25107,7 @@ var comp20 = { } } }; -var maxSize = { +const maxSize = { parameterPath: ["options", "appendPositionAccessConditions", "maxSize"], mapper: { serializedName: "x-ms-blob-condition-maxsize", @@ -26378,7 +25117,7 @@ var maxSize = { } } }; -var appendPosition = { +const appendPosition = { parameterPath: [ "options", "appendPositionAccessConditions", @@ -26392,7 +25131,7 @@ var appendPosition = { } } }; -var sourceRange1 = { +const sourceRange1 = { parameterPath: ["options", "sourceRange"], mapper: { serializedName: "x-ms-source-range", @@ -26402,7 +25141,7 @@ var sourceRange1 = { } } }; -var comp21 = { +const comp23 = { parameterPath: "comp", mapper: { defaultValue: "seal", @@ -26413,7 +25152,7 @@ var comp21 = { } } }; -var blobType2 = { +const blobType2 = { parameterPath: "blobType", mapper: { defaultValue: "BlockBlob", @@ -26424,7 +25163,7 @@ var blobType2 = { } } }; -var copySourceBlobProperties = { +const copySourceBlobProperties = { parameterPath: ["options", "copySourceBlobProperties"], mapper: { serializedName: "x-ms-copy-source-blob-properties", @@ -26434,7 +25173,7 @@ var copySourceBlobProperties = { } } }; -var comp22 = { +const comp24 = { parameterPath: "comp", mapper: { defaultValue: "block", @@ -26445,7 +25184,7 @@ var comp22 = { } } }; -var blockId = { +const blockId = { parameterPath: "blockId", mapper: { serializedName: "blockid", @@ -26456,11 +25195,11 @@ var blockId = { } } }; -var blocks = { +const blocks = { parameterPath: "blocks", mapper: BlockLookupList }; -var comp23 = { +const comp25 = { parameterPath: "comp", mapper: { defaultValue: "blocklist", @@ -26471,7 +25210,7 @@ var comp23 = { } } }; -var listType = { +const listType = { parameterPath: "listType", mapper: { defaultValue: "committed", @@ -26493,12 +25232,12 @@ var listType = { * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ /** Class representing a Service. */ -var Service = /** @class */ (function () { +class Service { /** * Initialize a new instance of the class Service class. * @param client Reference to the service client */ - function Service(client) { + constructor(client) { this.client = client; } /** @@ -26507,69 +25246,69 @@ var Service = /** @class */ (function () { * @param blobServiceProperties The StorageService properties. * @param options The options parameters. */ - Service.prototype.setProperties = function (blobServiceProperties, options) { - var operationArguments = { - blobServiceProperties: blobServiceProperties, + setProperties(blobServiceProperties, options) { + const operationArguments = { + blobServiceProperties, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, setPropertiesOperationSpec); - }; + } /** * gets the properties of a storage account's Blob service, including properties for Storage Analytics * and CORS (Cross-Origin Resource Sharing) rules. * @param options The options parameters. */ - Service.prototype.getProperties = function (options) { - var operationArguments = { + getProperties(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getPropertiesOperationSpec); - }; + } /** * Retrieves statistics related to replication for the Blob service. It is only available on the * secondary location endpoint when read-access geo-redundant replication is enabled for the storage * account. * @param options The options parameters. */ - Service.prototype.getStatistics = function (options) { - var operationArguments = { + getStatistics(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getStatisticsOperationSpec); - }; + } /** * The List Containers Segment operation returns a list of the containers under the specified account * @param options The options parameters. */ - Service.prototype.listContainersSegment = function (options) { - var operationArguments = { + listContainersSegment(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, listContainersSegmentOperationSpec); - }; + } /** * Retrieves a user delegation key for the Blob service. This is only a valid operation when using * bearer token authentication. * @param keyInfo Key information * @param options The options parameters. */ - Service.prototype.getUserDelegationKey = function (keyInfo, options) { - var operationArguments = { - keyInfo: keyInfo, + getUserDelegationKey(keyInfo, options) { + const operationArguments = { + keyInfo, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getUserDelegationKeyOperationSpec); - }; + } /** * Returns the sku name and account kind * @param options The options parameters. */ - Service.prototype.getAccountInfo = function (options) { - var operationArguments = { + getAccountInfo(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getAccountInfoOperationSpec); - }; + } /** * The Batch operation allows multiple API calls to be embedded into a single HTTP request. * @param contentLength The length of the request. @@ -26578,32 +25317,31 @@ var Service = /** @class */ (function () { * @param body Initial data * @param options The options parameters. */ - Service.prototype.submitBatch = function (contentLength, multipartContentType, body, options) { - var operationArguments = { - contentLength: contentLength, - multipartContentType: multipartContentType, - body: body, + submitBatch(contentLength, multipartContentType, body, options) { + const operationArguments = { + contentLength, + multipartContentType, + body, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, submitBatchOperationSpec); - }; + } /** * The Filter Blobs operation enables callers to list blobs across all containers whose tags match a * given search expression. Filter blobs searches across all containers within a storage account but * can be scoped within the expression to a single container. * @param options The options parameters. */ - Service.prototype.filterBlobs = function (options) { - var operationArguments = { + filterBlobs(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, filterBlobsOperationSpec); - }; - return Service; -}()); + } +} // Operation Specifications -var xmlSerializer = new coreHttp.Serializer(Mappers, /* isXml */ true); -var setPropertiesOperationSpec = { +const xmlSerializer = new coreHttp.Serializer(Mappers, /* isXml */ true); +const setPropertiesOperationSpec = { path: "/", httpMethod: "PUT", responses: { @@ -26633,7 +25371,7 @@ var setPropertiesOperationSpec = { mediaType: "xml", serializer: xmlSerializer }; -var getPropertiesOperationSpec = { +const getPropertiesOperationSpec = { path: "/", httpMethod: "GET", responses: { @@ -26660,7 +25398,7 @@ var getPropertiesOperationSpec = { isXML: true, serializer: xmlSerializer }; -var getStatisticsOperationSpec = { +const getStatisticsOperationSpec = { path: "/", httpMethod: "GET", responses: { @@ -26687,7 +25425,7 @@ var getStatisticsOperationSpec = { isXML: true, serializer: xmlSerializer }; -var listContainersSegmentOperationSpec = { +const listContainersSegmentOperationSpec = { path: "/", httpMethod: "GET", responses: { @@ -26717,7 +25455,7 @@ var listContainersSegmentOperationSpec = { isXML: true, serializer: xmlSerializer }; -var getUserDelegationKeyOperationSpec = { +const getUserDelegationKeyOperationSpec = { path: "/", httpMethod: "POST", responses: { @@ -26748,7 +25486,7 @@ var getUserDelegationKeyOperationSpec = { mediaType: "xml", serializer: xmlSerializer }; -var getAccountInfoOperationSpec = { +const getAccountInfoOperationSpec = { path: "/", httpMethod: "GET", responses: { @@ -26766,7 +25504,7 @@ var getAccountInfoOperationSpec = { isXML: true, serializer: xmlSerializer }; -var submitBatchOperationSpec = { +const submitBatchOperationSpec = { path: "/", httpMethod: "POST", responses: { @@ -26798,7 +25536,7 @@ var submitBatchOperationSpec = { mediaType: "xml", serializer: xmlSerializer }; -var filterBlobsOperationSpec = { +const filterBlobsOperationSpec = { path: "/", httpMethod: "GET", responses: { @@ -26836,12 +25574,12 @@ var filterBlobsOperationSpec = { * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ /** Class representing a Container. */ -var Container = /** @class */ (function () { +class Container { /** * Initialize a new instance of the class Container class. * @param client Reference to the service client */ - function Container(client) { + constructor(client) { this.client = client; } /** @@ -26849,88 +25587,88 @@ var Container = /** @class */ (function () { * exists, the operation fails * @param options The options parameters. */ - Container.prototype.create = function (options) { - var operationArguments = { + create(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, createOperationSpec); - }; + } /** * returns all user-defined metadata and system properties for the specified container. The data * returned does not include the container's list of blobs * @param options The options parameters. */ - Container.prototype.getProperties = function (options) { - var operationArguments = { + getProperties(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getPropertiesOperationSpec$1); - }; + } /** * operation marks the specified container for deletion. The container and any blobs contained within * it are later deleted during garbage collection * @param options The options parameters. */ - Container.prototype.delete = function (options) { - var operationArguments = { + delete(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, deleteOperationSpec); - }; + } /** * operation sets one or more user-defined name-value pairs for the specified container. * @param options The options parameters. */ - Container.prototype.setMetadata = function (options) { - var operationArguments = { + setMetadata(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, setMetadataOperationSpec); - }; + } /** * gets the permissions for the specified container. The permissions indicate whether container data * may be accessed publicly. * @param options The options parameters. */ - Container.prototype.getAccessPolicy = function (options) { - var operationArguments = { + getAccessPolicy(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getAccessPolicyOperationSpec); - }; + } /** * sets the permissions for the specified container. The permissions indicate whether blobs in a * container may be accessed publicly. * @param options The options parameters. */ - Container.prototype.setAccessPolicy = function (options) { - var operationArguments = { + setAccessPolicy(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, setAccessPolicyOperationSpec); - }; + } /** * Restores a previously-deleted container. * @param options The options parameters. */ - Container.prototype.restore = function (options) { - var operationArguments = { + restore(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, restoreOperationSpec); - }; + } /** * Renames an existing container. * @param sourceContainerName Required. Specifies the name of the container to rename. * @param options The options parameters. */ - Container.prototype.rename = function (sourceContainerName, options) { - var operationArguments = { - sourceContainerName: sourceContainerName, + rename(sourceContainerName, options) { + const operationArguments = { + sourceContainerName, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, renameOperationSpec); - }; + } /** * The Batch operation allows multiple API calls to be embedded into a single HTTP request. * @param contentLength The length of the request. @@ -26939,63 +25677,63 @@ var Container = /** @class */ (function () { * @param body Initial data * @param options The options parameters. */ - Container.prototype.submitBatch = function (contentLength, multipartContentType, body, options) { - var operationArguments = { - contentLength: contentLength, - multipartContentType: multipartContentType, - body: body, + submitBatch(contentLength, multipartContentType, body, options) { + const operationArguments = { + contentLength, + multipartContentType, + body, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, submitBatchOperationSpec$1); - }; + } /** * [Update] establishes and manages a lock on a container for delete operations. The lock duration can * be 15 to 60 seconds, or can be infinite * @param options The options parameters. */ - Container.prototype.acquireLease = function (options) { - var operationArguments = { + acquireLease(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, acquireLeaseOperationSpec); - }; + } /** * [Update] establishes and manages a lock on a container for delete operations. The lock duration can * be 15 to 60 seconds, or can be infinite * @param leaseId Specifies the current lease ID on the resource. * @param options The options parameters. */ - Container.prototype.releaseLease = function (leaseId, options) { - var operationArguments = { - leaseId: leaseId, + releaseLease(leaseId, options) { + const operationArguments = { + leaseId, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, releaseLeaseOperationSpec); - }; + } /** * [Update] establishes and manages a lock on a container for delete operations. The lock duration can * be 15 to 60 seconds, or can be infinite * @param leaseId Specifies the current lease ID on the resource. * @param options The options parameters. */ - Container.prototype.renewLease = function (leaseId, options) { - var operationArguments = { - leaseId: leaseId, + renewLease(leaseId, options) { + const operationArguments = { + leaseId, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, renewLeaseOperationSpec); - }; + } /** * [Update] establishes and manages a lock on a container for delete operations. The lock duration can * be 15 to 60 seconds, or can be infinite * @param options The options parameters. */ - Container.prototype.breakLease = function (options) { - var operationArguments = { + breakLease(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, breakLeaseOperationSpec); - }; + } /** * [Update] establishes and manages a lock on a container for delete operations. The lock duration can * be 15 to 60 seconds, or can be infinite @@ -27005,24 +25743,24 @@ var Container = /** @class */ (function () { * (String) for a list of valid GUID string formats. * @param options The options parameters. */ - Container.prototype.changeLease = function (leaseId, proposedLeaseId, options) { - var operationArguments = { - leaseId: leaseId, - proposedLeaseId: proposedLeaseId, + changeLease(leaseId, proposedLeaseId, options) { + const operationArguments = { + leaseId, + proposedLeaseId, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, changeLeaseOperationSpec); - }; + } /** * [Update] The List Blobs operation returns a list of the blobs under the specified container * @param options The options parameters. */ - Container.prototype.listBlobFlatSegment = function (options) { - var operationArguments = { + listBlobFlatSegment(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, listBlobFlatSegmentOperationSpec); - }; + } /** * [Update] The List Blobs operation returns a list of the blobs under the specified container * @param delimiter When the request includes this parameter, the operation returns a BlobPrefix @@ -27031,28 +25769,27 @@ var Container = /** @class */ (function () { * character or a string. * @param options The options parameters. */ - Container.prototype.listBlobHierarchySegment = function (delimiter, options) { - var operationArguments = { - delimiter: delimiter, + listBlobHierarchySegment(delimiter, options) { + const operationArguments = { + delimiter, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, listBlobHierarchySegmentOperationSpec); - }; + } /** * Returns the sku name and account kind * @param options The options parameters. */ - Container.prototype.getAccountInfo = function (options) { - var operationArguments = { + getAccountInfo(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getAccountInfoOperationSpec$1); - }; - return Container; -}()); + } +} // Operation Specifications -var xmlSerializer$1 = new coreHttp.Serializer(Mappers, /* isXml */ true); -var createOperationSpec = { +const xmlSerializer$1 = new coreHttp.Serializer(Mappers, /* isXml */ true); +const createOperationSpec = { path: "/{containerName}", httpMethod: "PUT", responses: { @@ -27078,7 +25815,7 @@ var createOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var getPropertiesOperationSpec$1 = { +const getPropertiesOperationSpec$1 = { path: "/{containerName}", httpMethod: "GET", responses: { @@ -27101,7 +25838,7 @@ var getPropertiesOperationSpec$1 = { isXML: true, serializer: xmlSerializer$1 }; -var deleteOperationSpec = { +const deleteOperationSpec = { path: "/{containerName}", httpMethod: "DELETE", responses: { @@ -27126,7 +25863,7 @@ var deleteOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var setMetadataOperationSpec = { +const setMetadataOperationSpec = { path: "/{containerName}", httpMethod: "PUT", responses: { @@ -27155,7 +25892,7 @@ var setMetadataOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var getAccessPolicyOperationSpec = { +const getAccessPolicyOperationSpec = { path: "/{containerName}", httpMethod: "GET", responses: { @@ -27194,7 +25931,7 @@ var getAccessPolicyOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var setAccessPolicyOperationSpec = { +const setAccessPolicyOperationSpec = { path: "/{containerName}", httpMethod: "PUT", responses: { @@ -27228,7 +25965,7 @@ var setAccessPolicyOperationSpec = { mediaType: "xml", serializer: xmlSerializer$1 }; -var restoreOperationSpec = { +const restoreOperationSpec = { path: "/{containerName}", httpMethod: "PUT", responses: { @@ -27256,7 +25993,7 @@ var restoreOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var renameOperationSpec = { +const renameOperationSpec = { path: "/{containerName}", httpMethod: "PUT", responses: { @@ -27284,7 +26021,7 @@ var renameOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var submitBatchOperationSpec$1 = { +const submitBatchOperationSpec$1 = { path: "/{containerName}", httpMethod: "POST", responses: { @@ -27320,7 +26057,7 @@ var submitBatchOperationSpec$1 = { mediaType: "xml", serializer: xmlSerializer$1 }; -var acquireLeaseOperationSpec = { +const acquireLeaseOperationSpec = { path: "/{containerName}", httpMethod: "PUT", responses: { @@ -27351,7 +26088,7 @@ var acquireLeaseOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var releaseLeaseOperationSpec = { +const releaseLeaseOperationSpec = { path: "/{containerName}", httpMethod: "PUT", responses: { @@ -27381,7 +26118,7 @@ var releaseLeaseOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var renewLeaseOperationSpec = { +const renewLeaseOperationSpec = { path: "/{containerName}", httpMethod: "PUT", responses: { @@ -27411,7 +26148,7 @@ var renewLeaseOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var breakLeaseOperationSpec = { +const breakLeaseOperationSpec = { path: "/{containerName}", httpMethod: "PUT", responses: { @@ -27441,7 +26178,7 @@ var breakLeaseOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var changeLeaseOperationSpec = { +const changeLeaseOperationSpec = { path: "/{containerName}", httpMethod: "PUT", responses: { @@ -27472,7 +26209,7 @@ var changeLeaseOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var listBlobFlatSegmentOperationSpec = { +const listBlobFlatSegmentOperationSpec = { path: "/{containerName}", httpMethod: "GET", responses: { @@ -27503,7 +26240,7 @@ var listBlobFlatSegmentOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var listBlobHierarchySegmentOperationSpec = { +const listBlobHierarchySegmentOperationSpec = { path: "/{containerName}", httpMethod: "GET", responses: { @@ -27535,7 +26272,7 @@ var listBlobHierarchySegmentOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var getAccountInfoOperationSpec$1 = { +const getAccountInfoOperationSpec$1 = { path: "/{containerName}", httpMethod: "GET", responses: { @@ -27562,12 +26299,12 @@ var getAccountInfoOperationSpec$1 = { * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ /** Class representing a Blob. */ -var Blob$1 = /** @class */ (function () { +class Blob$1 { /** * Initialize a new instance of the class Blob class. * @param client Reference to the service client */ - function Blob(client) { + constructor(client) { this.client = client; } /** @@ -27575,23 +26312,23 @@ var Blob$1 = /** @class */ (function () { * properties. You can also call Download to read a snapshot. * @param options The options parameters. */ - Blob.prototype.download = function (options) { - var operationArguments = { + download(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, downloadOperationSpec); - }; + } /** * The Get Properties operation returns all user-defined metadata, standard HTTP properties, and system * properties for the blob. It does not return the content of the blob. * @param options The options parameters. */ - Blob.prototype.getProperties = function (options) { - var operationArguments = { + getProperties(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getPropertiesOperationSpec$2); - }; + } /** * If the storage account's soft delete feature is disabled then, when a blob is deleted, it is * permanently removed from the storage account. If the storage account's soft delete feature is @@ -27607,130 +26344,124 @@ var Blob$1 = /** @class */ (function () { * (ResourceNotFound). * @param options The options parameters. */ - Blob.prototype.delete = function (options) { - var operationArguments = { + delete(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, deleteOperationSpec$1); - }; - /** - * Set the owner, group, permissions, or access control list for a blob. - * @param options The options parameters. - */ - Blob.prototype.setAccessControl = function (options) { - var operationArguments = { - options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) - }; - return this.client.sendOperationRequest(operationArguments, setAccessControlOperationSpec); - }; - /** - * Get the owner, group, permissions, or access control list for a blob. - * @param options The options parameters. - */ - Blob.prototype.getAccessControl = function (options) { - var operationArguments = { - options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) - }; - return this.client.sendOperationRequest(operationArguments, getAccessControlOperationSpec); - }; - /** - * Rename a blob/file. By default, the destination is overwritten and if the destination already - * exists and has a lease the lease is broken. This operation supports conditional HTTP requests. For - * more information, see [Specifying Conditional Headers for Blob Service - * Operations](https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations). - * To fail if the destination already exists, use a conditional request with If-None-Match: "*". - * @param renameSource The file or directory to be renamed. The value must have the following format: - * "/{filesysystem}/{path}". If "x-ms-properties" is specified, the properties will overwrite the - * existing properties; otherwise, the existing properties will be preserved. - * @param options The options parameters. - */ - Blob.prototype.rename = function (renameSource, options) { - var operationArguments = { - renameSource: renameSource, - options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) - }; - return this.client.sendOperationRequest(operationArguments, renameOperationSpec$1); - }; + } /** * Undelete a blob that was previously soft deleted * @param options The options parameters. */ - Blob.prototype.undelete = function (options) { - var operationArguments = { + undelete(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, undeleteOperationSpec); - }; + } /** * Sets the time a blob will expire and be deleted. * @param expiryOptions Required. Indicates mode of the expiry time * @param options The options parameters. */ - Blob.prototype.setExpiry = function (expiryOptions, options) { - var operationArguments = { - expiryOptions: expiryOptions, + setExpiry(expiryOptions, options) { + const operationArguments = { + expiryOptions, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, setExpiryOperationSpec); - }; + } /** * The Set HTTP Headers operation sets system properties on the blob * @param options The options parameters. */ - Blob.prototype.setHttpHeaders = function (options) { - var operationArguments = { + setHttpHeaders(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, setHttpHeadersOperationSpec); - }; + } + /** + * The Set Immutability Policy operation sets the immutability policy on the blob + * @param options The options parameters. + */ + setImmutabilityPolicy(options) { + const operationArguments = { + options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) + }; + return this.client.sendOperationRequest(operationArguments, setImmutabilityPolicyOperationSpec); + } + /** + * The Delete Immutability Policy operation deletes the immutability policy on the blob + * @param options The options parameters. + */ + deleteImmutabilityPolicy(options) { + const operationArguments = { + options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) + }; + return this.client.sendOperationRequest(operationArguments, deleteImmutabilityPolicyOperationSpec); + } + /** + * The Set Legal Hold operation sets a legal hold on the blob. + * @param legalHold Specified if a legal hold should be set on the blob. + * @param options The options parameters. + */ + setLegalHold(legalHold, options) { + const operationArguments = { + legalHold, + options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) + }; + return this.client.sendOperationRequest(operationArguments, setLegalHoldOperationSpec); + } /** * The Set Blob Metadata operation sets user-defined metadata for the specified blob as one or more * name-value pairs * @param options The options parameters. */ - Blob.prototype.setMetadata = function (options) { - var operationArguments = { + setMetadata(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, setMetadataOperationSpec$1); - }; + } /** * [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete * operations * @param options The options parameters. */ - Blob.prototype.acquireLease = function (options) { - var operationArguments = { + acquireLease(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, acquireLeaseOperationSpec$1); - }; + } /** * [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete * operations * @param leaseId Specifies the current lease ID on the resource. * @param options The options parameters. */ - Blob.prototype.releaseLease = function (leaseId, options) { - var operationArguments = { - leaseId: leaseId, + releaseLease(leaseId, options) { + const operationArguments = { + leaseId, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, releaseLeaseOperationSpec$1); - }; + } /** * [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete * operations * @param leaseId Specifies the current lease ID on the resource. * @param options The options parameters. */ - Blob.prototype.renewLease = function (leaseId, options) { - var operationArguments = { - leaseId: leaseId, + renewLease(leaseId, options) { + const operationArguments = { + leaseId, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, renewLeaseOperationSpec$1); - }; + } /** * [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete * operations @@ -27740,35 +26471,35 @@ var Blob$1 = /** @class */ (function () { * (String) for a list of valid GUID string formats. * @param options The options parameters. */ - Blob.prototype.changeLease = function (leaseId, proposedLeaseId, options) { - var operationArguments = { - leaseId: leaseId, - proposedLeaseId: proposedLeaseId, + changeLease(leaseId, proposedLeaseId, options) { + const operationArguments = { + leaseId, + proposedLeaseId, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, changeLeaseOperationSpec$1); - }; + } /** * [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete * operations * @param options The options parameters. */ - Blob.prototype.breakLease = function (options) { - var operationArguments = { + breakLease(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, breakLeaseOperationSpec$1); - }; + } /** * The Create Snapshot operation creates a read-only snapshot of a blob * @param options The options parameters. */ - Blob.prototype.createSnapshot = function (options) { - var operationArguments = { + createSnapshot(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, createSnapshotOperationSpec); - }; + } /** * The Start Copy From URL operation copies a blob or an internet resource to a new blob. * @param copySource Specifies the name of the source page blob snapshot. This value is a URL of up to @@ -27777,13 +26508,13 @@ var Blob$1 = /** @class */ (function () { * access signature. * @param options The options parameters. */ - Blob.prototype.startCopyFromURL = function (copySource, options) { - var operationArguments = { - copySource: copySource, + startCopyFromURL(copySource, options) { + const operationArguments = { + copySource, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, startCopyFromURLOperationSpec); - }; + } /** * The Copy From URL operation copies a blob or an internet resource to a new blob. It will not return * a response until the copy is complete. @@ -27793,13 +26524,13 @@ var Blob$1 = /** @class */ (function () { * access signature. * @param options The options parameters. */ - Blob.prototype.copyFromURL = function (copySource, options) { - var operationArguments = { - copySource: copySource, + copyFromURL(copySource, options) { + const operationArguments = { + copySource, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, copyFromURLOperationSpec); - }; + } /** * The Abort Copy From URL operation aborts a pending Copy From URL operation, and leaves a destination * blob with zero length and full metadata. @@ -27807,13 +26538,13 @@ var Blob$1 = /** @class */ (function () { * operation. * @param options The options parameters. */ - Blob.prototype.abortCopyFromURL = function (copyId, options) { - var operationArguments = { - copyId: copyId, + abortCopyFromURL(copyId, options) { + const operationArguments = { + copyId, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, abortCopyFromURLOperationSpec); - }; + } /** * The Set Tier operation sets the tier on a blob. The operation is allowed on a page blob in a premium * storage account and on a block blob in a blob storage account (locally redundant storage only). A @@ -27823,59 +26554,58 @@ var Blob$1 = /** @class */ (function () { * @param tier Indicates the tier to be set on the blob. * @param options The options parameters. */ - Blob.prototype.setTier = function (tier, options) { - var operationArguments = { - tier: tier, + setTier(tier, options) { + const operationArguments = { + tier, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, setTierOperationSpec); - }; + } /** * Returns the sku name and account kind * @param options The options parameters. */ - Blob.prototype.getAccountInfo = function (options) { - var operationArguments = { + getAccountInfo(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getAccountInfoOperationSpec$2); - }; + } /** * The Query operation enables users to select/project on blob data by providing simple query * expressions. * @param options The options parameters. */ - Blob.prototype.query = function (options) { - var operationArguments = { + query(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, queryOperationSpec); - }; + } /** * The Get Tags operation enables users to get the tags associated with a blob. * @param options The options parameters. */ - Blob.prototype.getTags = function (options) { - var operationArguments = { + getTags(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getTagsOperationSpec); - }; + } /** * The Set Tags operation enables users to set tags on a blob. * @param options The options parameters. */ - Blob.prototype.setTags = function (options) { - var operationArguments = { + setTags(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, setTagsOperationSpec); - }; - return Blob; -}()); + } +} // Operation Specifications -var xmlSerializer$2 = new coreHttp.Serializer(Mappers, /* isXml */ true); -var downloadOperationSpec = { +const xmlSerializer$2 = new coreHttp.Serializer(Mappers, /* isXml */ true); +const downloadOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "GET", responses: { @@ -27911,20 +26641,20 @@ var downloadOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, range, rangeGetContentMD5, rangeGetContentCRC64, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags ], isXML: true, serializer: xmlSerializer$2 }; -var getPropertiesOperationSpec$2 = { +const getPropertiesOperationSpec$2 = { path: "/{containerName}/{blob}", httpMethod: "HEAD", responses: { @@ -27949,17 +26679,17 @@ var getPropertiesOperationSpec$2 = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags ], isXML: true, serializer: xmlSerializer$2 }; -var deleteOperationSpec$1 = { +const deleteOperationSpec$1 = { path: "/{containerName}/{blob}", httpMethod: "DELETE", responses: { @@ -27993,110 +26723,7 @@ var deleteOperationSpec$1 = { isXML: true, serializer: xmlSerializer$2 }; -var setAccessControlOperationSpec = { - path: "/{filesystem}/{path}", - httpMethod: "PATCH", - responses: { - 200: { - headersMapper: BlobSetAccessControlHeaders - }, - default: { - bodyMapper: DataLakeStorageError, - headersMapper: BlobSetAccessControlExceptionHeaders - } - }, - queryParameters: [timeoutInSeconds, action5], - urlParameters: [url], - headerParameters: [ - version, - requestId, - accept1, - leaseId, - ifModifiedSince, - ifUnmodifiedSince, - posixPermissions, - ifMatch, - ifNoneMatch, - owner, - group, - posixAcl - ], - isXML: true, - serializer: xmlSerializer$2 -}; -var getAccessControlOperationSpec = { - path: "/{filesystem}/{path}", - httpMethod: "HEAD", - responses: { - 200: { - headersMapper: BlobGetAccessControlHeaders - }, - default: { - bodyMapper: DataLakeStorageError, - headersMapper: BlobGetAccessControlExceptionHeaders - } - }, - queryParameters: [ - timeoutInSeconds, - action6, - upn - ], - urlParameters: [url], - headerParameters: [ - version, - requestId, - accept1, - leaseId, - ifModifiedSince, - ifUnmodifiedSince, - ifMatch, - ifNoneMatch - ], - isXML: true, - serializer: xmlSerializer$2 -}; -var renameOperationSpec$1 = { - path: "/{filesystem}/{path}", - httpMethod: "PUT", - responses: { - 201: { - headersMapper: BlobRenameHeaders - }, - default: { - bodyMapper: DataLakeStorageError, - headersMapper: BlobRenameExceptionHeaders - } - }, - queryParameters: [timeoutInSeconds, pathRenameMode], - urlParameters: [url], - headerParameters: [ - version, - requestId, - accept1, - leaseId, - ifModifiedSince, - ifUnmodifiedSince, - sourceLeaseId, - directoryProperties, - posixPermissions, - posixUmask, - cacheControl, - contentType1, - contentEncoding, - contentLanguage, - contentDisposition, - ifMatch, - ifNoneMatch, - renameSource, - sourceIfModifiedSince, - sourceIfUnmodifiedSince, - sourceIfMatch, - sourceIfNoneMatch - ], - isXML: true, - serializer: xmlSerializer$2 -}; -var undeleteOperationSpec = { +const undeleteOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -28118,7 +26745,7 @@ var undeleteOperationSpec = { isXML: true, serializer: xmlSerializer$2 }; -var setExpiryOperationSpec = { +const setExpiryOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -28142,7 +26769,7 @@ var setExpiryOperationSpec = { isXML: true, serializer: xmlSerializer$2 }; -var setHttpHeadersOperationSpec = { +const setHttpHeadersOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -28176,7 +26803,77 @@ var setHttpHeadersOperationSpec = { isXML: true, serializer: xmlSerializer$2 }; -var setMetadataOperationSpec$1 = { +const setImmutabilityPolicyOperationSpec = { + path: "/{containerName}/{blob}", + httpMethod: "PUT", + responses: { + 200: { + headersMapper: BlobSetImmutabilityPolicyHeaders + }, + default: { + bodyMapper: StorageError, + headersMapper: BlobSetImmutabilityPolicyExceptionHeaders + } + }, + queryParameters: [timeoutInSeconds, comp12], + urlParameters: [url], + headerParameters: [ + version, + requestId, + accept1, + ifUnmodifiedSince, + immutabilityPolicyExpiry, + immutabilityPolicyMode + ], + isXML: true, + serializer: xmlSerializer$2 +}; +const deleteImmutabilityPolicyOperationSpec = { + path: "/{containerName}/{blob}", + httpMethod: "DELETE", + responses: { + 200: { + headersMapper: BlobDeleteImmutabilityPolicyHeaders + }, + default: { + bodyMapper: StorageError, + headersMapper: BlobDeleteImmutabilityPolicyExceptionHeaders + } + }, + queryParameters: [timeoutInSeconds, comp12], + urlParameters: [url], + headerParameters: [ + version, + requestId, + accept1 + ], + isXML: true, + serializer: xmlSerializer$2 +}; +const setLegalHoldOperationSpec = { + path: "/{containerName}/{blob}", + httpMethod: "PUT", + responses: { + 200: { + headersMapper: BlobSetLegalHoldHeaders + }, + default: { + bodyMapper: StorageError, + headersMapper: BlobSetLegalHoldExceptionHeaders + } + }, + queryParameters: [timeoutInSeconds, comp13], + urlParameters: [url], + headerParameters: [ + version, + requestId, + accept1, + legalHold + ], + isXML: true, + serializer: xmlSerializer$2 +}; +const setMetadataOperationSpec$1 = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -28198,18 +26895,18 @@ var setMetadataOperationSpec$1 = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags, encryptionScope ], isXML: true, serializer: xmlSerializer$2 }; -var acquireLeaseOperationSpec$1 = { +const acquireLeaseOperationSpec$1 = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -28239,7 +26936,7 @@ var acquireLeaseOperationSpec$1 = { isXML: true, serializer: xmlSerializer$2 }; -var releaseLeaseOperationSpec$1 = { +const releaseLeaseOperationSpec$1 = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -28268,7 +26965,7 @@ var releaseLeaseOperationSpec$1 = { isXML: true, serializer: xmlSerializer$2 }; -var renewLeaseOperationSpec$1 = { +const renewLeaseOperationSpec$1 = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -28297,7 +26994,7 @@ var renewLeaseOperationSpec$1 = { isXML: true, serializer: xmlSerializer$2 }; -var changeLeaseOperationSpec$1 = { +const changeLeaseOperationSpec$1 = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -28327,7 +27024,7 @@ var changeLeaseOperationSpec$1 = { isXML: true, serializer: xmlSerializer$2 }; -var breakLeaseOperationSpec$1 = { +const breakLeaseOperationSpec$1 = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -28356,7 +27053,7 @@ var breakLeaseOperationSpec$1 = { isXML: true, serializer: xmlSerializer$2 }; -var createSnapshotOperationSpec = { +const createSnapshotOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -28368,7 +27065,7 @@ var createSnapshotOperationSpec = { headersMapper: BlobCreateSnapshotExceptionHeaders } }, - queryParameters: [timeoutInSeconds, comp12], + queryParameters: [timeoutInSeconds, comp14], urlParameters: [url], headerParameters: [ version, @@ -28378,18 +27075,18 @@ var createSnapshotOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags, encryptionScope ], isXML: true, serializer: xmlSerializer$2 }; -var startCopyFromURLOperationSpec = { +const startCopyFromURLOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -28413,22 +27110,25 @@ var startCopyFromURLOperationSpec = { ifUnmodifiedSince, ifMatch, ifNoneMatch, + ifTags, + immutabilityPolicyExpiry, + immutabilityPolicyMode, + tier, + rehydratePriority, sourceIfModifiedSince, sourceIfUnmodifiedSince, sourceIfMatch, sourceIfNoneMatch, - ifTags, - tier, - rehydratePriority, sourceIfTags, copySource, blobTagsString, - sealBlob + sealBlob, + legalHold1 ], isXML: true, serializer: xmlSerializer$2 }; -var copyFromURLOperationSpec = { +const copyFromURLOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -28452,21 +27152,25 @@ var copyFromURLOperationSpec = { ifUnmodifiedSince, ifMatch, ifNoneMatch, + ifTags, + immutabilityPolicyExpiry, + immutabilityPolicyMode, + tier, sourceIfModifiedSince, sourceIfUnmodifiedSince, sourceIfMatch, sourceIfNoneMatch, - ifTags, - tier, copySource, blobTagsString, + legalHold1, xMsRequiresSync, - sourceContentMD5 + sourceContentMD5, + copySourceAuthorization ], isXML: true, serializer: xmlSerializer$2 }; -var abortCopyFromURLOperationSpec = { +const abortCopyFromURLOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -28480,7 +27184,7 @@ var abortCopyFromURLOperationSpec = { }, queryParameters: [ timeoutInSeconds, - comp13, + comp15, copyId ], urlParameters: [url], @@ -28494,7 +27198,7 @@ var abortCopyFromURLOperationSpec = { isXML: true, serializer: xmlSerializer$2 }; -var setTierOperationSpec = { +const setTierOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -28513,7 +27217,7 @@ var setTierOperationSpec = { timeoutInSeconds, snapshot, versionId, - comp14 + comp16 ], urlParameters: [url], headerParameters: [ @@ -28528,7 +27232,7 @@ var setTierOperationSpec = { isXML: true, serializer: xmlSerializer$2 }; -var getAccountInfoOperationSpec$2 = { +const getAccountInfoOperationSpec$2 = { path: "/{containerName}/{blob}", httpMethod: "GET", responses: { @@ -28546,7 +27250,7 @@ var getAccountInfoOperationSpec$2 = { isXML: true, serializer: xmlSerializer$2 }; -var queryOperationSpec = { +const queryOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "POST", responses: { @@ -28573,7 +27277,7 @@ var queryOperationSpec = { queryParameters: [ timeoutInSeconds, snapshot, - comp15 + comp17 ], urlParameters: [url], headerParameters: [ @@ -28584,11 +27288,11 @@ var queryOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags ], isXML: true, @@ -28596,7 +27300,7 @@ var queryOperationSpec = { mediaType: "xml", serializer: xmlSerializer$2 }; -var getTagsOperationSpec = { +const getTagsOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "GET", responses: { @@ -28613,7 +27317,7 @@ var getTagsOperationSpec = { timeoutInSeconds, snapshot, versionId, - comp16 + comp18 ], urlParameters: [url], headerParameters: [ @@ -28626,7 +27330,7 @@ var getTagsOperationSpec = { isXML: true, serializer: xmlSerializer$2 }; -var setTagsOperationSpec = { +const setTagsOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -28642,7 +27346,7 @@ var setTagsOperationSpec = { queryParameters: [ timeoutInSeconds, versionId, - comp16 + comp18 ], urlParameters: [url], headerParameters: [ @@ -28669,12 +27373,12 @@ var setTagsOperationSpec = { * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ /** Class representing a PageBlob. */ -var PageBlob = /** @class */ (function () { +class PageBlob { /** * Initialize a new instance of the class PageBlob class. * @param client Reference to the service client */ - function PageBlob(client) { + constructor(client) { this.client = client; } /** @@ -28684,40 +27388,40 @@ var PageBlob = /** @class */ (function () { * page blob size must be aligned to a 512-byte boundary. * @param options The options parameters. */ - PageBlob.prototype.create = function (contentLength, blobContentLength, options) { - var operationArguments = { - contentLength: contentLength, - blobContentLength: blobContentLength, + create(contentLength, blobContentLength, options) { + const operationArguments = { + contentLength, + blobContentLength, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, createOperationSpec$1); - }; + } /** * The Upload Pages operation writes a range of pages to a page blob * @param contentLength The length of the request. * @param body Initial data * @param options The options parameters. */ - PageBlob.prototype.uploadPages = function (contentLength, body, options) { - var operationArguments = { - contentLength: contentLength, - body: body, + uploadPages(contentLength, body, options) { + const operationArguments = { + contentLength, + body, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, uploadPagesOperationSpec); - }; + } /** * The Clear Pages operation clears a set of pages from a page blob * @param contentLength The length of the request. * @param options The options parameters. */ - PageBlob.prototype.clearPages = function (contentLength, options) { - var operationArguments = { - contentLength: contentLength, + clearPages(contentLength, options) { + const operationArguments = { + contentLength, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, clearPagesOperationSpec); - }; + } /** * The Upload Pages operation writes a range of pages to a page blob where the contents are read from a * URL @@ -28729,51 +27433,51 @@ var PageBlob = /** @class */ (function () { * aligned and range-end is required. * @param options The options parameters. */ - PageBlob.prototype.uploadPagesFromURL = function (sourceUrl, sourceRange, contentLength, range, options) { - var operationArguments = { - sourceUrl: sourceUrl, - sourceRange: sourceRange, - contentLength: contentLength, - range: range, + uploadPagesFromURL(sourceUrl, sourceRange, contentLength, range, options) { + const operationArguments = { + sourceUrl, + sourceRange, + contentLength, + range, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, uploadPagesFromURLOperationSpec); - }; + } /** * The Get Page Ranges operation returns the list of valid page ranges for a page blob or snapshot of a * page blob * @param options The options parameters. */ - PageBlob.prototype.getPageRanges = function (options) { - var operationArguments = { + getPageRanges(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getPageRangesOperationSpec); - }; + } /** * The Get Page Ranges Diff operation returns the list of valid page ranges for a page blob that were * changed between target blob and previous snapshot. * @param options The options parameters. */ - PageBlob.prototype.getPageRangesDiff = function (options) { - var operationArguments = { + getPageRangesDiff(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getPageRangesDiffOperationSpec); - }; + } /** * Resize the Blob * @param blobContentLength This header specifies the maximum size for the page blob, up to 1 TB. The * page blob size must be aligned to a 512-byte boundary. * @param options The options parameters. */ - PageBlob.prototype.resize = function (blobContentLength, options) { - var operationArguments = { - blobContentLength: blobContentLength, + resize(blobContentLength, options) { + const operationArguments = { + blobContentLength, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, resizeOperationSpec); - }; + } /** * Update the sequence number of the blob * @param sequenceNumberAction Required if the x-ms-blob-sequence-number header is set for the request. @@ -28781,13 +27485,13 @@ var PageBlob = /** @class */ (function () { * blob's sequence number * @param options The options parameters. */ - PageBlob.prototype.updateSequenceNumber = function (sequenceNumberAction, options) { - var operationArguments = { - sequenceNumberAction: sequenceNumberAction, + updateSequenceNumber(sequenceNumberAction, options) { + const operationArguments = { + sequenceNumberAction, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, updateSequenceNumberOperationSpec); - }; + } /** * The Copy Incremental operation copies a snapshot of the source page blob to a destination page blob. * The snapshot is copied such that only the differential changes between the previously copied @@ -28800,19 +27504,18 @@ var PageBlob = /** @class */ (function () { * access signature. * @param options The options parameters. */ - PageBlob.prototype.copyIncremental = function (copySource, options) { - var operationArguments = { - copySource: copySource, + copyIncremental(copySource, options) { + const operationArguments = { + copySource, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, copyIncrementalOperationSpec); - }; - return PageBlob; -}()); + } +} // Operation Specifications -var xmlSerializer$3 = new coreHttp.Serializer(Mappers, /* isXml */ true); -var serializer = new coreHttp.Serializer(Mappers, /* isXml */ false); -var createOperationSpec$1 = { +const xmlSerializer$3 = new coreHttp.Serializer(Mappers, /* isXml */ true); +const serializer = new coreHttp.Serializer(Mappers, /* isXml */ false); +const createOperationSpec$1 = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -28835,11 +27538,11 @@ var createOperationSpec$1 = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags, blobCacheControl, blobContentType, @@ -28847,9 +27550,12 @@ var createOperationSpec$1 = { blobContentEncoding, blobContentLanguage, blobContentDisposition, + immutabilityPolicyExpiry, + immutabilityPolicyMode, encryptionScope, tier, blobTagsString, + legalHold1, blobType, blobContentLength, blobSequenceNumber @@ -28857,7 +27563,7 @@ var createOperationSpec$1 = { isXML: true, serializer: xmlSerializer$3 }; -var uploadPagesOperationSpec = { +const uploadPagesOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -28870,7 +27576,7 @@ var uploadPagesOperationSpec = { } }, requestBody: body1, - queryParameters: [timeoutInSeconds, comp17], + queryParameters: [timeoutInSeconds, comp19], urlParameters: [url], headerParameters: [ version, @@ -28879,17 +27585,17 @@ var uploadPagesOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, range, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags, encryptionScope, transactionalContentMD5, transactionalContentCrc64, - contentType2, + contentType1, accept2, pageWrite, ifSequenceNumberLessThanOrEqualTo, @@ -28897,9 +27603,9 @@ var uploadPagesOperationSpec = { ifSequenceNumberEqualTo ], mediaType: "binary", - serializer: serializer + serializer }; -var clearPagesOperationSpec = { +const clearPagesOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -28911,7 +27617,7 @@ var clearPagesOperationSpec = { headersMapper: PageBlobClearPagesExceptionHeaders } }, - queryParameters: [timeoutInSeconds, comp17], + queryParameters: [timeoutInSeconds, comp19], urlParameters: [url], headerParameters: [ version, @@ -28921,12 +27627,12 @@ var clearPagesOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, range, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags, encryptionScope, ifSequenceNumberLessThanOrEqualTo, @@ -28937,7 +27643,7 @@ var clearPagesOperationSpec = { isXML: true, serializer: xmlSerializer$3 }; -var uploadPagesFromURLOperationSpec = { +const uploadPagesFromURLOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -28949,7 +27655,7 @@ var uploadPagesFromURLOperationSpec = { headersMapper: PageBlobUploadPagesFromURLExceptionHeaders } }, - queryParameters: [timeoutInSeconds, comp17], + queryParameters: [timeoutInSeconds, comp19], urlParameters: [url], headerParameters: [ version, @@ -28959,18 +27665,19 @@ var uploadPagesFromURLOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, + encryptionKey, + encryptionKeySha256, + encryptionAlgorithm, ifMatch, ifNoneMatch, + ifTags, + encryptionScope, sourceIfModifiedSince, sourceIfUnmodifiedSince, sourceIfMatch, sourceIfNoneMatch, - encryptionKey, - encryptionKeySha256, - encryptionAlgorithm, - ifTags, - encryptionScope, sourceContentMD5, + copySourceAuthorization, pageWrite, ifSequenceNumberLessThanOrEqualTo, ifSequenceNumberLessThan, @@ -28983,7 +27690,7 @@ var uploadPagesFromURLOperationSpec = { isXML: true, serializer: xmlSerializer$3 }; -var getPageRangesOperationSpec = { +const getPageRangesOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "GET", responses: { @@ -28999,7 +27706,7 @@ var getPageRangesOperationSpec = { queryParameters: [ timeoutInSeconds, snapshot, - comp18 + comp20 ], urlParameters: [url], headerParameters: [ @@ -29009,15 +27716,15 @@ var getPageRangesOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, + range, ifMatch, ifNoneMatch, - range, ifTags ], isXML: true, serializer: xmlSerializer$3 }; -var getPageRangesDiffOperationSpec = { +const getPageRangesDiffOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "GET", responses: { @@ -29033,7 +27740,7 @@ var getPageRangesDiffOperationSpec = { queryParameters: [ timeoutInSeconds, snapshot, - comp18, + comp20, prevsnapshot ], urlParameters: [url], @@ -29044,16 +27751,16 @@ var getPageRangesDiffOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, + range, ifMatch, ifNoneMatch, - range, ifTags, prevSnapshotUrl ], isXML: true, serializer: xmlSerializer$3 }; -var resizeOperationSpec = { +const resizeOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -29074,11 +27781,11 @@ var resizeOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags, encryptionScope, blobContentLength @@ -29086,7 +27793,7 @@ var resizeOperationSpec = { isXML: true, serializer: xmlSerializer$3 }; -var updateSequenceNumberOperationSpec = { +const updateSequenceNumberOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -29116,7 +27823,7 @@ var updateSequenceNumberOperationSpec = { isXML: true, serializer: xmlSerializer$3 }; -var copyIncrementalOperationSpec = { +const copyIncrementalOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -29128,7 +27835,7 @@ var copyIncrementalOperationSpec = { headersMapper: PageBlobCopyIncrementalExceptionHeaders } }, - queryParameters: [timeoutInSeconds, comp19], + queryParameters: [timeoutInSeconds, comp21], urlParameters: [url], headerParameters: [ version, @@ -29153,12 +27860,12 @@ var copyIncrementalOperationSpec = { * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ /** Class representing a AppendBlob. */ -var AppendBlob = /** @class */ (function () { +class AppendBlob { /** * Initialize a new instance of the class AppendBlob class. * @param client Reference to the service client */ - function AppendBlob(client) { + constructor(client) { this.client = client; } /** @@ -29166,13 +27873,13 @@ var AppendBlob = /** @class */ (function () { * @param contentLength The length of the request. * @param options The options parameters. */ - AppendBlob.prototype.create = function (contentLength, options) { - var operationArguments = { - contentLength: contentLength, + create(contentLength, options) { + const operationArguments = { + contentLength, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, createOperationSpec$2); - }; + } /** * The Append Block operation commits a new block of data to the end of an existing append blob. The * Append Block operation is permitted only if the blob was created with x-ms-blob-type set to @@ -29181,14 +27888,14 @@ var AppendBlob = /** @class */ (function () { * @param body Initial data * @param options The options parameters. */ - AppendBlob.prototype.appendBlock = function (contentLength, body, options) { - var operationArguments = { - contentLength: contentLength, - body: body, + appendBlock(contentLength, body, options) { + const operationArguments = { + contentLength, + body, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, appendBlockOperationSpec); - }; + } /** * The Append Block operation commits a new block of data to the end of an existing append blob where * the contents are read from a source url. The Append Block operation is permitted only if the blob @@ -29198,31 +27905,30 @@ var AppendBlob = /** @class */ (function () { * @param contentLength The length of the request. * @param options The options parameters. */ - AppendBlob.prototype.appendBlockFromUrl = function (sourceUrl, contentLength, options) { - var operationArguments = { - sourceUrl: sourceUrl, - contentLength: contentLength, + appendBlockFromUrl(sourceUrl, contentLength, options) { + const operationArguments = { + sourceUrl, + contentLength, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, appendBlockFromUrlOperationSpec); - }; + } /** * The Seal operation seals the Append Blob to make it read-only. Seal is supported only on version * 2019-12-12 version or later. * @param options The options parameters. */ - AppendBlob.prototype.seal = function (options) { - var operationArguments = { + seal(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, sealOperationSpec); - }; - return AppendBlob; -}()); + } +} // Operation Specifications -var xmlSerializer$4 = new coreHttp.Serializer(Mappers, /* isXml */ true); -var serializer$1 = new coreHttp.Serializer(Mappers, /* isXml */ false); -var createOperationSpec$2 = { +const xmlSerializer$4 = new coreHttp.Serializer(Mappers, /* isXml */ true); +const serializer$1 = new coreHttp.Serializer(Mappers, /* isXml */ false); +const createOperationSpec$2 = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -29245,11 +27951,11 @@ var createOperationSpec$2 = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags, blobCacheControl, blobContentType, @@ -29257,14 +27963,17 @@ var createOperationSpec$2 = { blobContentEncoding, blobContentLanguage, blobContentDisposition, + immutabilityPolicyExpiry, + immutabilityPolicyMode, encryptionScope, blobTagsString, + legalHold1, blobType1 ], isXML: true, serializer: xmlSerializer$4 }; -var appendBlockOperationSpec = { +const appendBlockOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -29277,7 +27986,7 @@ var appendBlockOperationSpec = { } }, requestBody: body1, - queryParameters: [timeoutInSeconds, comp20], + queryParameters: [timeoutInSeconds, comp22], urlParameters: [url], headerParameters: [ version, @@ -29286,16 +27995,16 @@ var appendBlockOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags, encryptionScope, transactionalContentMD5, transactionalContentCrc64, - contentType2, + contentType1, accept2, maxSize, appendPosition @@ -29303,7 +28012,7 @@ var appendBlockOperationSpec = { mediaType: "binary", serializer: serializer$1 }; -var appendBlockFromUrlOperationSpec = { +const appendBlockFromUrlOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -29315,7 +28024,7 @@ var appendBlockFromUrlOperationSpec = { headersMapper: AppendBlobAppendBlockFromUrlExceptionHeaders } }, - queryParameters: [timeoutInSeconds, comp20], + queryParameters: [timeoutInSeconds, comp22], urlParameters: [url], headerParameters: [ version, @@ -29325,18 +28034,19 @@ var appendBlockFromUrlOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, + encryptionKey, + encryptionKeySha256, + encryptionAlgorithm, ifMatch, ifNoneMatch, + ifTags, + encryptionScope, sourceIfModifiedSince, sourceIfUnmodifiedSince, sourceIfMatch, sourceIfNoneMatch, - encryptionKey, - encryptionKeySha256, - encryptionAlgorithm, - ifTags, - encryptionScope, sourceContentMD5, + copySourceAuthorization, transactionalContentMD5, sourceUrl, sourceContentCrc64, @@ -29347,7 +28057,7 @@ var appendBlockFromUrlOperationSpec = { isXML: true, serializer: xmlSerializer$4 }; -var sealOperationSpec = { +const sealOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -29359,7 +28069,7 @@ var sealOperationSpec = { headersMapper: AppendBlobSealExceptionHeaders } }, - queryParameters: [timeoutInSeconds, comp21], + queryParameters: [timeoutInSeconds, comp23], urlParameters: [url], headerParameters: [ version, @@ -29384,12 +28094,12 @@ var sealOperationSpec = { * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ /** Class representing a BlockBlob. */ -var BlockBlob = /** @class */ (function () { +class BlockBlob { /** * Initialize a new instance of the class BlockBlob class. * @param client Reference to the service client */ - function BlockBlob(client) { + constructor(client) { this.client = client; } /** @@ -29401,14 +28111,14 @@ var BlockBlob = /** @class */ (function () { * @param body Initial data * @param options The options parameters. */ - BlockBlob.prototype.upload = function (contentLength, body, options) { - var operationArguments = { - contentLength: contentLength, - body: body, + upload(contentLength, body, options) { + const operationArguments = { + contentLength, + body, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, uploadOperationSpec); - }; + } /** * The Put Blob from URL operation creates a new Block Blob where the contents of the blob are read * from a given URL. This API is supported beginning with the 2020-04-08 version. Partial updates are @@ -29422,14 +28132,14 @@ var BlockBlob = /** @class */ (function () { * access signature. * @param options The options parameters. */ - BlockBlob.prototype.putBlobFromUrl = function (contentLength, copySource, options) { - var operationArguments = { - contentLength: contentLength, - copySource: copySource, + putBlobFromUrl(contentLength, copySource, options) { + const operationArguments = { + contentLength, + copySource, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, putBlobFromUrlOperationSpec); - }; + } /** * The Stage Block operation creates a new block to be committed as part of a blob * @param blockId A valid Base64 string value that identifies the block. Prior to encoding, the string @@ -29439,15 +28149,15 @@ var BlockBlob = /** @class */ (function () { * @param body Initial data * @param options The options parameters. */ - BlockBlob.prototype.stageBlock = function (blockId, contentLength, body, options) { - var operationArguments = { - blockId: blockId, - contentLength: contentLength, - body: body, + stageBlock(blockId, contentLength, body, options) { + const operationArguments = { + blockId, + contentLength, + body, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, stageBlockOperationSpec); - }; + } /** * The Stage Block operation creates a new block to be committed as part of a blob where the contents * are read from a URL. @@ -29458,15 +28168,15 @@ var BlockBlob = /** @class */ (function () { * @param sourceUrl Specify a URL to the copy source. * @param options The options parameters. */ - BlockBlob.prototype.stageBlockFromURL = function (blockId, contentLength, sourceUrl, options) { - var operationArguments = { - blockId: blockId, - contentLength: contentLength, - sourceUrl: sourceUrl, + stageBlockFromURL(blockId, contentLength, sourceUrl, options) { + const operationArguments = { + blockId, + contentLength, + sourceUrl, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, stageBlockFromURLOperationSpec); - }; + } /** * The Commit Block List operation writes a blob by specifying the list of block IDs that make up the * blob. In order to be written as part of a blob, a block must have been successfully written to the @@ -29475,16 +28185,16 @@ var BlockBlob = /** @class */ (function () { * do this by specifying whether to commit a block from the committed block list or from the * uncommitted block list, or to commit the most recently uploaded version of the block, whichever list * it may belong to. - * @param blocks + * @param blocks Blob Blocks. * @param options The options parameters. */ - BlockBlob.prototype.commitBlockList = function (blocks, options) { - var operationArguments = { - blocks: blocks, + commitBlockList(blocks, options) { + const operationArguments = { + blocks, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, commitBlockListOperationSpec); - }; + } /** * The Get Block List operation retrieves the list of blocks that have been uploaded as part of a block * blob @@ -29492,19 +28202,18 @@ var BlockBlob = /** @class */ (function () { * blocks, or both lists together. * @param options The options parameters. */ - BlockBlob.prototype.getBlockList = function (listType, options) { - var operationArguments = { - listType: listType, + getBlockList(listType, options) { + const operationArguments = { + listType, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getBlockListOperationSpec); - }; - return BlockBlob; -}()); + } +} // Operation Specifications -var xmlSerializer$5 = new coreHttp.Serializer(Mappers, /* isXml */ true); -var serializer$2 = new coreHttp.Serializer(Mappers, /* isXml */ false); -var uploadOperationSpec = { +const xmlSerializer$5 = new coreHttp.Serializer(Mappers, /* isXml */ true); +const serializer$2 = new coreHttp.Serializer(Mappers, /* isXml */ false); +const uploadOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -29527,11 +28236,11 @@ var uploadOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags, blobCacheControl, blobContentType, @@ -29539,18 +28248,21 @@ var uploadOperationSpec = { blobContentEncoding, blobContentLanguage, blobContentDisposition, + immutabilityPolicyExpiry, + immutabilityPolicyMode, encryptionScope, tier, blobTagsString, + legalHold1, transactionalContentMD5, - contentType2, + contentType1, accept2, blobType2 ], mediaType: "binary", serializer: serializer$2 }; -var putBlobFromUrlOperationSpec = { +const putBlobFromUrlOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -29573,15 +28285,11 @@ var putBlobFromUrlOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, - sourceIfModifiedSince, - sourceIfUnmodifiedSince, - sourceIfMatch, - sourceIfNoneMatch, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags, blobCacheControl, blobContentType, @@ -29591,10 +28299,15 @@ var putBlobFromUrlOperationSpec = { blobContentDisposition, encryptionScope, tier, + sourceIfModifiedSince, + sourceIfUnmodifiedSince, + sourceIfMatch, + sourceIfNoneMatch, sourceIfTags, copySource, blobTagsString, sourceContentMD5, + copySourceAuthorization, transactionalContentMD5, blobType2, copySourceBlobProperties @@ -29602,7 +28315,7 @@ var putBlobFromUrlOperationSpec = { isXML: true, serializer: xmlSerializer$5 }; -var stageBlockOperationSpec = { +const stageBlockOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -29617,7 +28330,7 @@ var stageBlockOperationSpec = { requestBody: body1, queryParameters: [ timeoutInSeconds, - comp22, + comp24, blockId ], urlParameters: [url], @@ -29632,13 +28345,13 @@ var stageBlockOperationSpec = { encryptionScope, transactionalContentMD5, transactionalContentCrc64, - contentType2, + contentType1, accept2 ], mediaType: "binary", serializer: serializer$2 }; -var stageBlockFromURLOperationSpec = { +const stageBlockFromURLOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -29652,7 +28365,7 @@ var stageBlockFromURLOperationSpec = { }, queryParameters: [ timeoutInSeconds, - comp22, + comp24, blockId ], urlParameters: [url], @@ -29662,15 +28375,16 @@ var stageBlockFromURLOperationSpec = { accept1, contentLength, leaseId, - sourceIfModifiedSince, - sourceIfUnmodifiedSince, - sourceIfMatch, - sourceIfNoneMatch, encryptionKey, encryptionKeySha256, encryptionAlgorithm, encryptionScope, + sourceIfModifiedSince, + sourceIfUnmodifiedSince, + sourceIfMatch, + sourceIfNoneMatch, sourceContentMD5, + copySourceAuthorization, sourceUrl, sourceContentCrc64, sourceRange1 @@ -29678,7 +28392,7 @@ var stageBlockFromURLOperationSpec = { isXML: true, serializer: xmlSerializer$5 }; -var commitBlockListOperationSpec = { +const commitBlockListOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -29691,7 +28405,7 @@ var commitBlockListOperationSpec = { } }, requestBody: blocks, - queryParameters: [timeoutInSeconds, comp23], + queryParameters: [timeoutInSeconds, comp25], urlParameters: [url], headerParameters: [ contentType, @@ -29702,11 +28416,11 @@ var commitBlockListOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags, blobCacheControl, blobContentType, @@ -29714,9 +28428,12 @@ var commitBlockListOperationSpec = { blobContentEncoding, blobContentLanguage, blobContentDisposition, + immutabilityPolicyExpiry, + immutabilityPolicyMode, encryptionScope, tier, blobTagsString, + legalHold1, transactionalContentMD5, transactionalContentCrc64 ], @@ -29725,7 +28442,7 @@ var commitBlockListOperationSpec = { mediaType: "xml", serializer: xmlSerializer$5 }; -var getBlockListOperationSpec = { +const getBlockListOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "GET", responses: { @@ -29741,7 +28458,7 @@ var getBlockListOperationSpec = { queryParameters: [ timeoutInSeconds, snapshot, - comp23, + comp25, listType ], urlParameters: [url], @@ -29760,23 +28477,23 @@ var getBlockListOperationSpec = { /** * The `@azure/logger` configuration for this package. */ -var logger = logger$1.createClientLogger("storage-blob"); +const logger = logger$1.createClientLogger("storage-blob"); // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -var SDK_VERSION = "12.6.0"; -var SERVICE_VERSION = "2020-08-04"; -var BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES = 256 * 1024 * 1024; // 256MB -var BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES = 4000 * 1024 * 1024; // 4000MB -var BLOCK_BLOB_MAX_BLOCKS = 50000; -var DEFAULT_BLOCK_BUFFER_SIZE_BYTES = 8 * 1024 * 1024; // 8MB -var DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES = 4 * 1024 * 1024; // 4MB -var DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS = 5; +const SDK_VERSION = "12.8.0"; +const SERVICE_VERSION = "2020-10-02"; +const BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES = 256 * 1024 * 1024; // 256MB +const BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES = 4000 * 1024 * 1024; // 4000MB +const BLOCK_BLOB_MAX_BLOCKS = 50000; +const DEFAULT_BLOCK_BUFFER_SIZE_BYTES = 8 * 1024 * 1024; // 8MB +const DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES = 4 * 1024 * 1024; // 4MB +const DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS = 5; /** * The OAuth scope to use with Azure Storage. */ -var StorageOAuthScopes = "https://storage.azure.com/.default"; -var URLConstants = { +const StorageOAuthScopes = "https://storage.azure.com/.default"; +const URLConstants = { Parameters: { FORCE_BROWSER_NO_CACHE: "_", SIGNATURE: "sig", @@ -29785,14 +28502,14 @@ var URLConstants = { TIMEOUT: "timeout" } }; -var HTTPURLConnection = { +const HTTPURLConnection = { HTTP_ACCEPTED: 202, HTTP_CONFLICT: 409, HTTP_NOT_FOUND: 404, HTTP_PRECON_FAILED: 412, HTTP_RANGE_NOT_SATISFIABLE: 416 }; -var HeaderConstants = { +const HeaderConstants = { AUTHORIZATION: "Authorization", AUTHORIZATION_SCHEME: "Bearer", CONTENT_ENCODING: "Content-Encoding", @@ -29817,16 +28534,16 @@ var HeaderConstants = { X_MS_ERROR_CODE: "x-ms-error-code", X_MS_VERSION: "x-ms-version" }; -var ETagNone = ""; -var ETagAny = "*"; -var SIZE_1_MB = 1 * 1024 * 1024; -var BATCH_MAX_REQUEST = 256; -var BATCH_MAX_PAYLOAD_IN_BYTES = 4 * SIZE_1_MB; -var HTTP_LINE_ENDING = "\r\n"; -var HTTP_VERSION_1_1 = "HTTP/1.1"; -var EncryptionAlgorithmAES25 = "AES256"; -var DevelopmentConnectionString = "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;"; -var StorageBlobLoggingAllowedHeaderNames = [ +const ETagNone = ""; +const ETagAny = "*"; +const SIZE_1_MB = 1 * 1024 * 1024; +const BATCH_MAX_REQUEST = 256; +const BATCH_MAX_PAYLOAD_IN_BYTES = 4 * SIZE_1_MB; +const HTTP_LINE_ENDING = "\r\n"; +const HTTP_VERSION_1_1 = "HTTP/1.1"; +const EncryptionAlgorithmAES25 = "AES256"; +const DevelopmentConnectionString = `DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;`; +const StorageBlobLoggingAllowedHeaderNames = [ "Access-Control-Allow-Origin", "Cache-Control", "Content-Length", @@ -29922,7 +28639,7 @@ var StorageBlobLoggingAllowedHeaderNames = [ "x-ms-if-tags", "x-ms-source-if-tags" ]; -var StorageBlobLoggingAllowedQueryParameters = [ +const StorageBlobLoggingAllowedQueryParameters = [ "comp", "maxresults", "rscc", @@ -30012,8 +28729,8 @@ var StorageBlobLoggingAllowedQueryParameters = [ * @param url - */ function escapeURLPath(url) { - var urlParsed = coreHttp.URLBuilder.parse(url); - var path = urlParsed.getPath(); + const urlParsed = coreHttp.URLBuilder.parse(url); + let path = urlParsed.getPath(); path = path || "/"; path = escape(path); urlParsed.setPath(path); @@ -30022,12 +28739,11 @@ function escapeURLPath(url) { function getProxyUriFromDevConnString(connectionString) { // Development Connection String // https://docs.microsoft.com/en-us/azure/storage/common/storage-configure-connection-string#connect-to-the-emulator-account-using-the-well-known-account-name-and-key - var proxyUri = ""; + let proxyUri = ""; if (connectionString.search("DevelopmentStorageProxyUri=") !== -1) { // CONNECTION_STRING=UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://myProxyUri - var matchCredentials = connectionString.split(";"); - for (var _i = 0, matchCredentials_1 = matchCredentials; _i < matchCredentials_1.length; _i++) { - var element = matchCredentials_1[_i]; + const matchCredentials = connectionString.split(";"); + for (const element of matchCredentials) { if (element.trim().startsWith("DevelopmentStorageProxyUri=")) { proxyUri = element.trim().match("DevelopmentStorageProxyUri=(.*)")[1]; } @@ -30036,9 +28752,8 @@ function getProxyUriFromDevConnString(connectionString) { return proxyUri; } function getValueInConnString(connectionString, argument) { - var elements = connectionString.split(";"); - for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) { - var element = elements_1[_i]; + const elements = connectionString.split(";"); + for (const element of elements) { if (element.trim().startsWith(argument)) { return element.trim().match(argument + "=(.*)")[1]; } @@ -30052,24 +28767,24 @@ function getValueInConnString(connectionString, argument) { * @returns String key value pairs of the storage account's url and credentials. */ function extractConnectionStringParts(connectionString) { - var proxyUri = ""; + let proxyUri = ""; if (connectionString.startsWith("UseDevelopmentStorage=true")) { // Development connection string proxyUri = getProxyUriFromDevConnString(connectionString); connectionString = DevelopmentConnectionString; } // Matching BlobEndpoint in the Account connection string - var blobEndpoint = getValueInConnString(connectionString, "BlobEndpoint"); + let blobEndpoint = getValueInConnString(connectionString, "BlobEndpoint"); // Slicing off '/' at the end if exists // (The methods that use `extractConnectionStringParts` expect the url to not have `/` at the end) blobEndpoint = blobEndpoint.endsWith("/") ? blobEndpoint.slice(0, -1) : blobEndpoint; if (connectionString.search("DefaultEndpointsProtocol=") !== -1 && connectionString.search("AccountKey=") !== -1) { // Account connection string - var defaultEndpointsProtocol = ""; - var accountName = ""; - var accountKey = Buffer.from("accountKey", "base64"); - var endpointSuffix = ""; + let defaultEndpointsProtocol = ""; + let accountName = ""; + let accountKey = Buffer.from("accountKey", "base64"); + let endpointSuffix = ""; // Get account name and key accountName = getValueInConnString(connectionString, "AccountName"); accountKey = Buffer.from(getValueInConnString(connectionString, "AccountKey"), "base64"); @@ -30077,7 +28792,7 @@ function extractConnectionStringParts(connectionString) { // BlobEndpoint is not present in the Account connection string // Can be obtained from `${defaultEndpointsProtocol}://${accountName}.blob.${endpointSuffix}` defaultEndpointsProtocol = getValueInConnString(connectionString, "DefaultEndpointsProtocol"); - var protocol = defaultEndpointsProtocol.toLowerCase(); + const protocol = defaultEndpointsProtocol.toLowerCase(); if (protocol !== "https" && protocol !== "http") { throw new Error("Invalid DefaultEndpointsProtocol in the provided Connection String. Expecting 'https' or 'http'"); } @@ -30085,7 +28800,7 @@ function extractConnectionStringParts(connectionString) { if (!endpointSuffix) { throw new Error("Invalid EndpointSuffix in the provided Connection String"); } - blobEndpoint = defaultEndpointsProtocol + "://" + accountName + ".blob." + endpointSuffix; + blobEndpoint = `${defaultEndpointsProtocol}://${accountName}.blob.${endpointSuffix}`; } if (!accountName) { throw new Error("Invalid AccountName in the provided Connection String"); @@ -30096,22 +28811,22 @@ function extractConnectionStringParts(connectionString) { return { kind: "AccountConnString", url: blobEndpoint, - accountName: accountName, - accountKey: accountKey, - proxyUri: proxyUri + accountName, + accountKey, + proxyUri }; } else { // SAS connection string - var accountSas = getValueInConnString(connectionString, "SharedAccessSignature"); - var accountName = getAccountNameFromUrl(blobEndpoint); + const accountSas = getValueInConnString(connectionString, "SharedAccessSignature"); + const accountName = getAccountNameFromUrl(blobEndpoint); if (!blobEndpoint) { throw new Error("Invalid BlobEndpoint in the provided SAS Connection String"); } else if (!accountSas) { throw new Error("Invalid SharedAccessSignature in the provided SAS Connection String"); } - return { kind: "SASConnString", url: blobEndpoint, accountName: accountName, accountSas: accountSas }; + return { kind: "SASConnString", url: blobEndpoint, accountName, accountSas }; } } /** @@ -30135,9 +28850,9 @@ function escape(text) { * @returns An updated URL string */ function appendToURLPath(url, name) { - var urlParsed = coreHttp.URLBuilder.parse(url); - var path = urlParsed.getPath(); - path = path ? (path.endsWith("/") ? "" + path + name : path + "/" + name) : name; + const urlParsed = coreHttp.URLBuilder.parse(url); + let path = urlParsed.getPath(); + path = path ? (path.endsWith("/") ? `${path}${name}` : `${path}/${name}`) : name; urlParsed.setPath(path); return urlParsed.toString(); } @@ -30151,7 +28866,7 @@ function appendToURLPath(url, name) { * @returns An updated URL string */ function setURLParameter(url, name, value) { - var urlParsed = coreHttp.URLBuilder.parse(url); + const urlParsed = coreHttp.URLBuilder.parse(url); urlParsed.setQueryParameter(name, value); return urlParsed.toString(); } @@ -30162,7 +28877,7 @@ function setURLParameter(url, name, value) { * @param name - */ function getURLParameter(url, name) { - var urlParsed = coreHttp.URLBuilder.parse(url); + const urlParsed = coreHttp.URLBuilder.parse(url); return urlParsed.getQueryParameterValue(name); } /** @@ -30173,7 +28888,7 @@ function getURLParameter(url, name) { * @returns An updated URL string */ function setURLHost(url, host) { - var urlParsed = coreHttp.URLBuilder.parse(url); + const urlParsed = coreHttp.URLBuilder.parse(url); urlParsed.setHost(host); return urlParsed.toString(); } @@ -30183,7 +28898,7 @@ function setURLHost(url, host) { * @param url - Source URL string */ function getURLPath(url) { - var urlParsed = coreHttp.URLBuilder.parse(url); + const urlParsed = coreHttp.URLBuilder.parse(url); return urlParsed.getPath(); } /** @@ -30192,7 +28907,7 @@ function getURLPath(url) { * @param url - Source URL string */ function getURLScheme(url) { - var urlParsed = coreHttp.URLBuilder.parse(url); + const urlParsed = coreHttp.URLBuilder.parse(url); return urlParsed.getScheme(); } /** @@ -30201,17 +28916,17 @@ function getURLScheme(url) { * @param url - Source URL string */ function getURLPathAndQuery(url) { - var urlParsed = coreHttp.URLBuilder.parse(url); - var pathString = urlParsed.getPath(); + const urlParsed = coreHttp.URLBuilder.parse(url); + const pathString = urlParsed.getPath(); if (!pathString) { throw new RangeError("Invalid url without valid path."); } - var queryString = urlParsed.getQuery() || ""; + let queryString = urlParsed.getQuery() || ""; queryString = queryString.trim(); - if (queryString != "") { - queryString = queryString.startsWith("?") ? queryString : "?" + queryString; // Ensure query string start with '?' + if (queryString !== "") { + queryString = queryString.startsWith("?") ? queryString : `?${queryString}`; // Ensure query string start with '?' } - return "" + pathString + queryString; + return `${pathString}${queryString}`; } /** * Get URL query key value pairs from an URL string. @@ -30219,24 +28934,23 @@ function getURLPathAndQuery(url) { * @param url - */ function getURLQueries(url) { - var queryString = coreHttp.URLBuilder.parse(url).getQuery(); + let queryString = coreHttp.URLBuilder.parse(url).getQuery(); if (!queryString) { return {}; } queryString = queryString.trim(); queryString = queryString.startsWith("?") ? queryString.substr(1) : queryString; - var querySubStrings = queryString.split("&"); - querySubStrings = querySubStrings.filter(function (value) { - var indexOfEqual = value.indexOf("="); - var lastIndexOfEqual = value.lastIndexOf("="); + let querySubStrings = queryString.split("&"); + querySubStrings = querySubStrings.filter((value) => { + const indexOfEqual = value.indexOf("="); + const lastIndexOfEqual = value.lastIndexOf("="); return (indexOfEqual > 0 && indexOfEqual === lastIndexOfEqual && lastIndexOfEqual < value.length - 1); }); - var queries = {}; - for (var _i = 0, querySubStrings_1 = querySubStrings; _i < querySubStrings_1.length; _i++) { - var querySubString = querySubStrings_1[_i]; - var splitResults = querySubString.split("="); - var key = splitResults[0]; - var value = splitResults[1]; + const queries = {}; + for (const querySubString of querySubStrings) { + const splitResults = querySubString.split("="); + const key = splitResults[0]; + const value = splitResults[1]; queries[key] = value; } return queries; @@ -30249,8 +28963,8 @@ function getURLQueries(url) { * @returns An updated URL string. */ function appendToURLQuery(url, queryParts) { - var urlParsed = coreHttp.URLBuilder.parse(url); - var query = urlParsed.getQuery(); + const urlParsed = coreHttp.URLBuilder.parse(url); + let query = urlParsed.getQuery(); if (query) { query += "&" + queryParts; } @@ -30268,10 +28982,9 @@ function appendToURLQuery(url, queryParts) { * If false, YYYY-MM-DDThh:mm:ssZ will be returned. * @returns Date string in ISO8061 format, with or without 7 milliseconds component */ -function truncatedISO8061Date(date, withMilliseconds) { - if (withMilliseconds === void 0) { withMilliseconds = true; } +function truncatedISO8061Date(date, withMilliseconds = true) { // Date.toISOString() will return like "2018-10-29T06:34:36.139Z" - var dateString = date.toISOString(); + const dateString = date.toISOString(); return withMilliseconds ? dateString.substring(0, dateString.length - 1) + "0000" + "Z" : dateString.substring(0, dateString.length - 5) + "Z"; @@ -30291,14 +29004,14 @@ function base64encode(content) { */ function generateBlockID(blockIDPrefix, blockIndex) { // To generate a 64 bytes base64 string, source string should be 48 - var maxSourceStringLength = 48; + const maxSourceStringLength = 48; // A blob can have a maximum of 100,000 uncommitted blocks at any given time - var maxBlockIndexLength = 6; - var maxAllowedBlockIDPrefixLength = maxSourceStringLength - maxBlockIndexLength; + const maxBlockIndexLength = 6; + const maxAllowedBlockIDPrefixLength = maxSourceStringLength - maxBlockIndexLength; if (blockIDPrefix.length > maxAllowedBlockIDPrefixLength) { blockIDPrefix = blockIDPrefix.slice(0, maxAllowedBlockIDPrefixLength); } - var res = blockIDPrefix + + const res = blockIDPrefix + padStart(blockIndex.toString(), maxSourceStringLength - blockIDPrefix.length, "0"); return base64encode(res); } @@ -30309,29 +29022,26 @@ function generateBlockID(blockIDPrefix, blockIndex) { * @param aborter - * @param abortError - */ -function delay(timeInMs, aborter, abortError) { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - return [2 /*return*/, new Promise(function (resolve, reject) { - var timeout; - var abortHandler = function () { - if (timeout !== undefined) { - clearTimeout(timeout); - } - reject(abortError); - }; - var resolveHandler = function () { - if (aborter !== undefined) { - aborter.removeEventListener("abort", abortHandler); - } - resolve(); - }; - timeout = setTimeout(resolveHandler, timeInMs); - if (aborter !== undefined) { - aborter.addEventListener("abort", abortHandler); - } - })]; - }); +async function delay(timeInMs, aborter, abortError) { + return new Promise((resolve, reject) => { + /* eslint-disable-next-line prefer-const */ + let timeout; + const abortHandler = () => { + if (timeout !== undefined) { + clearTimeout(timeout); + } + reject(abortError); + }; + const resolveHandler = () => { + if (aborter !== undefined) { + aborter.removeEventListener("abort", abortHandler); + } + resolve(); + }; + timeout = setTimeout(resolveHandler, timeInMs); + if (aborter !== undefined) { + aborter.addEventListener("abort", abortHandler); + } }); } /** @@ -30341,10 +29051,8 @@ function delay(timeInMs, aborter, abortError) { * @param targetLength - * @param padString - */ -function padStart(currentString, targetLength, padString) { - if (padString === void 0) { padString = " "; } - // TS doesn't know this code needs to run downlevel sometimes. - // @ts-expect-error +function padStart(currentString, targetLength, padString = " ") { + // @ts-expect-error: TS doesn't know this code needs to run downlevel sometimes if (String.prototype.padStart) { return currentString.padStart(targetLength, padString); } @@ -30375,8 +29083,8 @@ function iEqual(str1, str2) { * @returns with the account name */ function getAccountNameFromUrl(url) { - var parsedUrl = coreHttp.URLBuilder.parse(url); - var accountName; + const parsedUrl = coreHttp.URLBuilder.parse(url); + let accountName; try { if (parsedUrl.getHost().split(".")[1] === "blob") { // `${defaultEndpointsProtocol}://${accountName}.blob.${endpointSuffix}`; @@ -30399,10 +29107,10 @@ function getAccountNameFromUrl(url) { } } function isIpEndpointStyle(parsedUrl) { - if (parsedUrl.getHost() == undefined) { + if (parsedUrl.getHost() === undefined) { return false; } - var host = parsedUrl.getHost() + (parsedUrl.getPort() == undefined ? "" : ":" + parsedUrl.getPort()); + const host = parsedUrl.getHost() + (parsedUrl.getPort() === undefined ? "" : ":" + parsedUrl.getPort()); // Case 1: Ipv6, use a broad regex to find out candidates whose host contains two ':'. // Case 2: localhost(:port), use broad regex to match port part. // Case 3: Ipv4, use broad regex which just check if host contains Ipv4. @@ -30418,11 +29126,11 @@ function toBlobTagsString(tags) { if (tags === undefined) { return undefined; } - var tagPairs = []; - for (var key in tags) { - if (tags.hasOwnProperty(key)) { - var value = tags[key]; - tagPairs.push(encodeURIComponent(key) + "=" + encodeURIComponent(value)); + const tagPairs = []; + for (const key in tags) { + if (Object.prototype.hasOwnProperty.call(tags, key)) { + const value = tags[key]; + tagPairs.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`); } } return tagPairs.join("&"); @@ -30436,15 +29144,15 @@ function toBlobTags(tags) { if (tags === undefined) { return undefined; } - var res = { + const res = { blobTagSet: [] }; - for (var key in tags) { - if (tags.hasOwnProperty(key)) { - var value = tags[key]; + for (const key in tags) { + if (Object.prototype.hasOwnProperty.call(tags, key)) { + const value = tags[key]; res.blobTagSet.push({ - key: key, - value: value + key, + value }); } } @@ -30459,9 +29167,8 @@ function toTags(tags) { if (tags === undefined) { return undefined; } - var res = {}; - for (var _i = 0, _a = tags.blobTagSet; _i < _a.length; _i++) { - var blobTag = _a[_i]; + const res = {}; + for (const blobTag of tags.blobTagSet) { res[blobTag.key] = blobTag.value; } return res; @@ -30507,6 +29214,12 @@ function toQuerySerialization(textConfiguration) { } } }; + case "parquet": + return { + format: { + type: "parquet" + } + }; default: throw Error("Invalid BlobQueryTextConfiguration."); } @@ -30520,18 +29233,18 @@ function parseObjectReplicationRecord(objectReplicationRecord) { // the policy id should already be stored in the ObjectReplicationDestinationPolicyId. return undefined; } - var orProperties = []; - var _loop_1 = function (key) { - var ids = key.split("_"); - var policyPrefix = "or-"; + const orProperties = []; + for (const key in objectReplicationRecord) { + const ids = key.split("_"); + const policyPrefix = "or-"; if (ids[0].startsWith(policyPrefix)) { ids[0] = ids[0].substring(policyPrefix.length); } - var rule = { + const rule = { ruleId: ids[1], replicationStatus: objectReplicationRecord[key] }; - var policyIndex = orProperties.findIndex(function (policy) { return policy.policyId === ids[0]; }); + const policyIndex = orProperties.findIndex((policy) => policy.policyId === ids[0]); if (policyIndex > -1) { orProperties[policyIndex].rules.push(rule); } @@ -30541,9 +29254,6 @@ function parseObjectReplicationRecord(objectReplicationRecord) { rules: [rule] }); } - }; - for (var key in objectReplicationRecord) { - _loop_1(key); } return orProperties; } @@ -30557,6 +29267,9 @@ function attachCredential(thing, credential) { thing.credential = credential; return thing; } +function httpAuthorizationToString(httpAuthorization) { + return httpAuthorization ? httpAuthorization.scheme + " " + httpAuthorization.value : undefined; +} // Copyright (c) Microsoft Corporation. /** @@ -30570,51 +29283,44 @@ function attachCredential(thing, credential) { * * 3. Remove content-length header to avoid browsers warning */ -var StorageBrowserPolicy = /** @class */ (function (_super) { - tslib.__extends(StorageBrowserPolicy, _super); +class StorageBrowserPolicy extends coreHttp.BaseRequestPolicy { /** * Creates an instance of StorageBrowserPolicy. * @param nextPolicy - * @param options - */ - function StorageBrowserPolicy(nextPolicy, options) { - return _super.call(this, nextPolicy, options) || this; + // The base class has a protected constructor. Adding a public one to enable constructing of this class. + /* eslint-disable-next-line @typescript-eslint/no-useless-constructor*/ + constructor(nextPolicy, options) { + super(nextPolicy, options); } /** * Sends out request. * * @param request - */ - StorageBrowserPolicy.prototype.sendRequest = function (request) { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - { - return [2 /*return*/, this._nextPolicy.sendRequest(request)]; - } - }); - }); - }; - return StorageBrowserPolicy; -}(coreHttp.BaseRequestPolicy)); + async sendRequest(request) { + { + return this._nextPolicy.sendRequest(request); + } + } +} // Copyright (c) Microsoft Corporation. /** * StorageBrowserPolicyFactory is a factory class helping generating StorageBrowserPolicy objects. */ -var StorageBrowserPolicyFactory = /** @class */ (function () { - function StorageBrowserPolicyFactory() { - } +class StorageBrowserPolicyFactory { /** * Creates a StorageBrowserPolicyFactory object. * * @param nextPolicy - * @param options - */ - StorageBrowserPolicyFactory.prototype.create = function (nextPolicy, options) { + create(nextPolicy, options) { return new StorageBrowserPolicy(nextPolicy, options); - }; - return StorageBrowserPolicyFactory; -}()); + } +} // Copyright (c) Microsoft Corporation. (function (StorageRetryPolicyType) { @@ -30628,7 +29334,7 @@ var StorageBrowserPolicyFactory = /** @class */ (function () { StorageRetryPolicyType[StorageRetryPolicyType["FIXED"] = 1] = "FIXED"; })(exports.StorageRetryPolicyType || (exports.StorageRetryPolicyType = {})); // Default values of StorageRetryOptions -var DEFAULT_RETRY_OPTIONS = { +const DEFAULT_RETRY_OPTIONS = { maxRetryDelayInMs: 120 * 1000, maxTries: 4, retryDelayInMs: 4 * 1000, @@ -30636,12 +29342,11 @@ var DEFAULT_RETRY_OPTIONS = { secondaryHost: "", tryTimeoutInMs: undefined // Use server side default timeout strategy }; -var RETRY_ABORT_ERROR = new abortController.AbortError("The operation was aborted."); +const RETRY_ABORT_ERROR = new abortController.AbortError("The operation was aborted."); /** * Retry policy with exponential retry and linear retry implemented. */ -var StorageRetryPolicy = /** @class */ (function (_super) { - tslib.__extends(StorageRetryPolicy, _super); +class StorageRetryPolicy extends coreHttp.BaseRequestPolicy { /** * Creates an instance of RetryPolicy. * @@ -30649,11 +29354,10 @@ var StorageRetryPolicy = /** @class */ (function (_super) { * @param options - * @param retryOptions - */ - function StorageRetryPolicy(nextPolicy, options, retryOptions) { - if (retryOptions === void 0) { retryOptions = DEFAULT_RETRY_OPTIONS; } - var _this = _super.call(this, nextPolicy, options) || this; + constructor(nextPolicy, options, retryOptions = DEFAULT_RETRY_OPTIONS) { + super(nextPolicy, options); // Initialize retry options - _this.retryOptions = { + this.retryOptions = { retryPolicyType: retryOptions.retryPolicyType ? retryOptions.retryPolicyType : DEFAULT_RETRY_OPTIONS.retryPolicyType, @@ -30675,20 +29379,15 @@ var StorageRetryPolicy = /** @class */ (function (_super) { ? retryOptions.secondaryHost : DEFAULT_RETRY_OPTIONS.secondaryHost }; - return _this; } /** * Sends request. * * @param request - */ - StorageRetryPolicy.prototype.sendRequest = function (request) { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - return [2 /*return*/, this.attemptSendRequest(request, false, 1)]; - }); - }); - }; + async sendRequest(request) { + return this.attemptSendRequest(request, false, 1); + } /** * Decide and perform next retry. Won't mutate request parameter. * @@ -30699,52 +29398,37 @@ var StorageRetryPolicy = /** @class */ (function (_super) { * @param attempt - How many retries has been attempted to performed, starting from 1, which includes * the attempt will be performed by this method call. */ - StorageRetryPolicy.prototype.attemptSendRequest = function (request, secondaryHas404, attempt) { - return tslib.__awaiter(this, void 0, void 0, function () { - var newRequest, isPrimaryRetry, response, err_1; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - newRequest = request.clone(); - isPrimaryRetry = secondaryHas404 || - !this.retryOptions.secondaryHost || - !(request.method === "GET" || request.method === "HEAD" || request.method === "OPTIONS") || - attempt % 2 === 1; - if (!isPrimaryRetry) { - newRequest.url = setURLHost(newRequest.url, this.retryOptions.secondaryHost); - } - // Set the server-side timeout query parameter "timeout=[seconds]" - if (this.retryOptions.tryTimeoutInMs) { - newRequest.url = setURLParameter(newRequest.url, URLConstants.Parameters.TIMEOUT, Math.floor(this.retryOptions.tryTimeoutInMs / 1000).toString()); - } - _a.label = 1; - case 1: - _a.trys.push([1, 3, , 4]); - logger.info("RetryPolicy: =====> Try=" + attempt + " " + (isPrimaryRetry ? "Primary" : "Secondary")); - return [4 /*yield*/, this._nextPolicy.sendRequest(newRequest)]; - case 2: - response = _a.sent(); - if (!this.shouldRetry(isPrimaryRetry, attempt, response)) { - return [2 /*return*/, response]; - } - secondaryHas404 = secondaryHas404 || (!isPrimaryRetry && response.status === 404); - return [3 /*break*/, 4]; - case 3: - err_1 = _a.sent(); - logger.error("RetryPolicy: Caught error, message: " + err_1.message + ", code: " + err_1.code); - if (!this.shouldRetry(isPrimaryRetry, attempt, response, err_1)) { - throw err_1; - } - return [3 /*break*/, 4]; - case 4: return [4 /*yield*/, this.delay(isPrimaryRetry, attempt, request.abortSignal)]; - case 5: - _a.sent(); - return [4 /*yield*/, this.attemptSendRequest(request, secondaryHas404, ++attempt)]; - case 6: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; + async attemptSendRequest(request, secondaryHas404, attempt) { + const newRequest = request.clone(); + const isPrimaryRetry = secondaryHas404 || + !this.retryOptions.secondaryHost || + !(request.method === "GET" || request.method === "HEAD" || request.method === "OPTIONS") || + attempt % 2 === 1; + if (!isPrimaryRetry) { + newRequest.url = setURLHost(newRequest.url, this.retryOptions.secondaryHost); + } + // Set the server-side timeout query parameter "timeout=[seconds]" + if (this.retryOptions.tryTimeoutInMs) { + newRequest.url = setURLParameter(newRequest.url, URLConstants.Parameters.TIMEOUT, Math.floor(this.retryOptions.tryTimeoutInMs / 1000).toString()); + } + let response; + try { + logger.info(`RetryPolicy: =====> Try=${attempt} ${isPrimaryRetry ? "Primary" : "Secondary"}`); + response = await this._nextPolicy.sendRequest(newRequest); + if (!this.shouldRetry(isPrimaryRetry, attempt, response)) { + return response; + } + secondaryHas404 = secondaryHas404 || (!isPrimaryRetry && response.status === 404); + } + catch (err) { + logger.error(`RetryPolicy: Caught error, message: ${err.message}, code: ${err.code}`); + if (!this.shouldRetry(isPrimaryRetry, attempt, response, err)) { + throw err; + } + } + await this.delay(isPrimaryRetry, attempt, request.abortSignal); + return this.attemptSendRequest(request, secondaryHas404, ++attempt); + } /** * Decide whether to retry according to last HTTP response and retry counters. * @@ -30753,15 +29437,15 @@ var StorageRetryPolicy = /** @class */ (function (_super) { * @param response - * @param err - */ - StorageRetryPolicy.prototype.shouldRetry = function (isPrimaryRetry, attempt, response, err) { + shouldRetry(isPrimaryRetry, attempt, response, err) { if (attempt >= this.retryOptions.maxTries) { - logger.info("RetryPolicy: Attempt(s) " + attempt + " >= maxTries " + this.retryOptions - .maxTries + ", no further try."); + logger.info(`RetryPolicy: Attempt(s) ${attempt} >= maxTries ${this.retryOptions + .maxTries}, no further try.`); return false; } // Handle network failures, you may need to customize the list when you implement // your own http client - var retriableErrors = [ + const retriableErrors = [ "ETIMEDOUT", "ESOCKETTIMEDOUT", "ECONNREFUSED", @@ -30773,12 +29457,11 @@ var StorageRetryPolicy = /** @class */ (function (_super) { "REQUEST_SEND_ERROR" // For default xhr based http client provided in ms-rest-js ]; if (err) { - for (var _i = 0, retriableErrors_1 = retriableErrors; _i < retriableErrors_1.length; _i++) { - var retriableError = retriableErrors_1[_i]; + for (const retriableError of retriableErrors) { if (err.name.toUpperCase().includes(retriableError) || err.message.toUpperCase().includes(retriableError) || (err.code && err.code.toString().toUpperCase() === retriableError)) { - logger.info("RetryPolicy: Network error " + retriableError + " found, will retry."); + logger.info(`RetryPolicy: Network error ${retriableError} found, will retry.`); return true; } } @@ -30787,23 +29470,23 @@ var StorageRetryPolicy = /** @class */ (function (_super) { // the resource was not found. This may be due to replication delay. So, in this // case, we'll never try the secondary again for this operation. if (response || err) { - var statusCode = response ? response.status : err ? err.statusCode : 0; + const statusCode = response ? response.status : err ? err.statusCode : 0; if (!isPrimaryRetry && statusCode === 404) { - logger.info("RetryPolicy: Secondary access with 404, will retry."); + logger.info(`RetryPolicy: Secondary access with 404, will retry.`); return true; } // Server internal error or server timeout if (statusCode === 503 || statusCode === 500) { - logger.info("RetryPolicy: Will retry for status code " + statusCode + "."); + logger.info(`RetryPolicy: Will retry for status code ${statusCode}.`); return true; } } - if ((err === null || err === void 0 ? void 0 : err.code) === "PARSE_ERROR" && (err === null || err === void 0 ? void 0 : err.message.startsWith("Error \"Error: Unclosed root tag"))) { + if ((err === null || err === void 0 ? void 0 : err.code) === "PARSE_ERROR" && (err === null || err === void 0 ? void 0 : err.message.startsWith(`Error "Error: Unclosed root tag`))) { logger.info("RetryPolicy: Incomplete XML response likely due to service timeout, will retry."); return true; } return false; - }; + } /** * Delay a calculated time between retries. * @@ -30811,42 +29494,36 @@ var StorageRetryPolicy = /** @class */ (function (_super) { * @param attempt - * @param abortSignal - */ - StorageRetryPolicy.prototype.delay = function (isPrimaryRetry, attempt, abortSignal) { - return tslib.__awaiter(this, void 0, void 0, function () { - var delayTimeInMs; - return tslib.__generator(this, function (_a) { - delayTimeInMs = 0; - if (isPrimaryRetry) { - switch (this.retryOptions.retryPolicyType) { - case exports.StorageRetryPolicyType.EXPONENTIAL: - delayTimeInMs = Math.min((Math.pow(2, attempt - 1) - 1) * this.retryOptions.retryDelayInMs, this.retryOptions.maxRetryDelayInMs); - break; - case exports.StorageRetryPolicyType.FIXED: - delayTimeInMs = this.retryOptions.retryDelayInMs; - break; - } - } - else { - delayTimeInMs = Math.random() * 1000; - } - logger.info("RetryPolicy: Delay for " + delayTimeInMs + "ms"); - return [2 /*return*/, delay(delayTimeInMs, abortSignal, RETRY_ABORT_ERROR)]; - }); - }); - }; - return StorageRetryPolicy; -}(coreHttp.BaseRequestPolicy)); + async delay(isPrimaryRetry, attempt, abortSignal) { + let delayTimeInMs = 0; + if (isPrimaryRetry) { + switch (this.retryOptions.retryPolicyType) { + case exports.StorageRetryPolicyType.EXPONENTIAL: + delayTimeInMs = Math.min((Math.pow(2, attempt - 1) - 1) * this.retryOptions.retryDelayInMs, this.retryOptions.maxRetryDelayInMs); + break; + case exports.StorageRetryPolicyType.FIXED: + delayTimeInMs = this.retryOptions.retryDelayInMs; + break; + } + } + else { + delayTimeInMs = Math.random() * 1000; + } + logger.info(`RetryPolicy: Delay for ${delayTimeInMs}ms`); + return delay(delayTimeInMs, abortSignal, RETRY_ABORT_ERROR); + } +} // Copyright (c) Microsoft Corporation. /** * StorageRetryPolicyFactory is a factory class helping generating {@link StorageRetryPolicy} objects. */ -var StorageRetryPolicyFactory = /** @class */ (function () { +class StorageRetryPolicyFactory { /** * Creates an instance of StorageRetryPolicyFactory. * @param retryOptions - */ - function StorageRetryPolicyFactory(retryOptions) { + constructor(retryOptions) { this.retryOptions = retryOptions; } /** @@ -30855,61 +29532,55 @@ var StorageRetryPolicyFactory = /** @class */ (function () { * @param nextPolicy - * @param options - */ - StorageRetryPolicyFactory.prototype.create = function (nextPolicy, options) { + create(nextPolicy, options) { return new StorageRetryPolicy(nextPolicy, options, this.retryOptions); - }; - return StorageRetryPolicyFactory; -}()); + } +} // Copyright (c) Microsoft Corporation. /** * Credential policy used to sign HTTP(S) requests before sending. This is an * abstract class. */ -var CredentialPolicy = /** @class */ (function (_super) { - tslib.__extends(CredentialPolicy, _super); - function CredentialPolicy() { - return _super !== null && _super.apply(this, arguments) || this; - } +class CredentialPolicy extends coreHttp.BaseRequestPolicy { /** * Sends out request. * * @param request - */ - CredentialPolicy.prototype.sendRequest = function (request) { + sendRequest(request) { return this._nextPolicy.sendRequest(this.signRequest(request)); - }; + } /** * Child classes must implement this method with request signing. This method * will be executed in {@link sendRequest}. * * @param request - */ - CredentialPolicy.prototype.signRequest = function (request) { + signRequest(request) { // Child classes must override this method with request signing. This method // will be executed in sendRequest(). return request; - }; - return CredentialPolicy; -}(coreHttp.BaseRequestPolicy)); + } +} // Copyright (c) Microsoft Corporation. /** * AnonymousCredentialPolicy is used with HTTP(S) requests that read public resources * or for use with Shared Access Signatures (SAS). */ -var AnonymousCredentialPolicy = /** @class */ (function (_super) { - tslib.__extends(AnonymousCredentialPolicy, _super); +class AnonymousCredentialPolicy extends CredentialPolicy { /** * Creates an instance of AnonymousCredentialPolicy. * @param nextPolicy - * @param options - */ - function AnonymousCredentialPolicy(nextPolicy, options) { - return _super.call(this, nextPolicy, options) || this; + // The base class has a protected constructor. Adding a public one to enable constructing of this class. + /* eslint-disable-next-line @typescript-eslint/no-useless-constructor*/ + constructor(nextPolicy, options) { + super(nextPolicy, options); } - return AnonymousCredentialPolicy; -}(CredentialPolicy)); +} // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. @@ -30917,24 +29588,17 @@ var AnonymousCredentialPolicy = /** @class */ (function (_super) { * Credential is an abstract class for Azure Storage HTTP requests signing. This * class will host an credentialPolicyCreator factory which generates CredentialPolicy. */ -var Credential = /** @class */ (function () { - function Credential() { - } +class Credential { /** * Creates a RequestPolicy object. * * @param _nextPolicy - * @param _options - */ - Credential.prototype.create = function ( - // tslint:disable-next-line:variable-name - _nextPolicy, - // tslint:disable-next-line:variable-name - _options) { + create(_nextPolicy, _options) { throw new Error("Method should be implemented in children classes."); - }; - return Credential; -}()); + } +} // Copyright (c) Microsoft Corporation. /** @@ -30943,88 +29607,76 @@ var Credential = /** @class */ (function () { * HTTP(S) requests that read public resources or for use with Shared Access * Signatures (SAS). */ -var AnonymousCredential = /** @class */ (function (_super) { - tslib.__extends(AnonymousCredential, _super); - function AnonymousCredential() { - return _super !== null && _super.apply(this, arguments) || this; - } +class AnonymousCredential extends Credential { /** * Creates an {@link AnonymousCredentialPolicy} object. * * @param nextPolicy - * @param options - */ - AnonymousCredential.prototype.create = function (nextPolicy, options) { + create(nextPolicy, options) { return new AnonymousCredentialPolicy(nextPolicy, options); - }; - return AnonymousCredential; -}(Credential)); + } +} // Copyright (c) Microsoft Corporation. /** * TelemetryPolicy is a policy used to tag user-agent header for every requests. */ -var TelemetryPolicy = /** @class */ (function (_super) { - tslib.__extends(TelemetryPolicy, _super); +class TelemetryPolicy extends coreHttp.BaseRequestPolicy { /** * Creates an instance of TelemetryPolicy. * @param nextPolicy - * @param options - * @param telemetry - */ - function TelemetryPolicy(nextPolicy, options, telemetry) { - var _this = _super.call(this, nextPolicy, options) || this; - _this.telemetry = telemetry; - return _this; + constructor(nextPolicy, options, telemetry) { + super(nextPolicy, options); + this.telemetry = telemetry; } /** * Sends out request. * * @param request - */ - TelemetryPolicy.prototype.sendRequest = function (request) { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - { - if (!request.headers) { - request.headers = new coreHttp.HttpHeaders(); - } - if (!request.headers.get(HeaderConstants.USER_AGENT)) { - request.headers.set(HeaderConstants.USER_AGENT, this.telemetry); - } - } - return [2 /*return*/, this._nextPolicy.sendRequest(request)]; - }); - }); - }; - return TelemetryPolicy; -}(coreHttp.BaseRequestPolicy)); + async sendRequest(request) { + { + if (!request.headers) { + request.headers = new coreHttp.HttpHeaders(); + } + if (!request.headers.get(HeaderConstants.USER_AGENT)) { + request.headers.set(HeaderConstants.USER_AGENT, this.telemetry); + } + } + return this._nextPolicy.sendRequest(request); + } +} // Copyright (c) Microsoft Corporation. /** * TelemetryPolicyFactory is a factory class helping generating {@link TelemetryPolicy} objects. */ -var TelemetryPolicyFactory = /** @class */ (function () { +class TelemetryPolicyFactory { /** * Creates an instance of TelemetryPolicyFactory. * @param telemetry - */ - function TelemetryPolicyFactory(telemetry) { - var userAgentInfo = []; + constructor(telemetry) { + const userAgentInfo = []; { if (telemetry) { - var telemetryString = telemetry.userAgentPrefix || ""; + const telemetryString = telemetry.userAgentPrefix || ""; if (telemetryString.length > 0 && userAgentInfo.indexOf(telemetryString) === -1) { userAgentInfo.push(telemetryString); } } // e.g. azsdk-js-storageblob/10.0.0 - var libInfo = "azsdk-js-storageblob/" + SDK_VERSION; + const libInfo = `azsdk-js-storageblob/${SDK_VERSION}`; if (userAgentInfo.indexOf(libInfo) === -1) { userAgentInfo.push(libInfo); } // e.g. (NODE-VERSION 4.9.1; Windows_NT 10.0.16299) - var runtimeInfo = "(NODE-VERSION " + process.version + "; " + os.type() + " " + os.release() + ")"; + const runtimeInfo = `(NODE-VERSION ${process.version}; ${os.type()} ${os.release()})`; if (userAgentInfo.indexOf(runtimeInfo) === -1) { userAgentInfo.push(runtimeInfo); } @@ -31037,19 +29689,32 @@ var TelemetryPolicyFactory = /** @class */ (function () { * @param nextPolicy - * @param options - */ - TelemetryPolicyFactory.prototype.create = function (nextPolicy, options) { + create(nextPolicy, options) { return new TelemetryPolicy(nextPolicy, options, this.telemetryString); - }; - return TelemetryPolicyFactory; -}()); + } +} // Copyright (c) Microsoft Corporation. -var _defaultHttpClient = new coreHttp.DefaultHttpClient(); +const _defaultHttpClient = new coreHttp.DefaultHttpClient(); function getCachedDefaultHttpClient() { return _defaultHttpClient; } // Copyright (c) Microsoft Corporation. +/** + * A helper to decide if a given argument satisfies the Pipeline contract + * @param pipeline - An argument that may be a Pipeline + * @returns true when the argument satisfies the Pipeline contract + */ +function isPipelineLike(pipeline) { + if (!pipeline || typeof pipeline !== "object") { + return false; + } + const castPipeline = pipeline; + return (Array.isArray(castPipeline.factories) && + typeof castPipeline.options === "object" && + typeof castPipeline.toServiceClientOptions === "function"); +} /** * A Pipeline class containing HTTP request policies. * You can create a default Pipeline by calling {@link newPipeline}. @@ -31058,19 +29723,18 @@ function getCachedDefaultHttpClient() { * Refer to {@link newPipeline} and provided policies before implementing your * customized Pipeline. */ -var Pipeline = /** @class */ (function () { +class Pipeline { /** * Creates an instance of Pipeline. Customize HTTPClient by implementing IHttpClient interface. * * @param factories - * @param options - */ - function Pipeline(factories, options) { - if (options === void 0) { options = {}; } + constructor(factories, options = {}) { this.factories = factories; // when options.httpClient is not specified, passing in a DefaultHttpClient instance to // avoid each client creating its own http client. - this.options = tslib.__assign(tslib.__assign({}, options), { httpClient: options.httpClient || getCachedDefaultHttpClient() }); + this.options = Object.assign(Object.assign({}, options), { httpClient: options.httpClient || getCachedDefaultHttpClient() }); } /** * Transfer Pipeline object to ServiceClientOptions object which is required by @@ -31078,14 +29742,13 @@ var Pipeline = /** @class */ (function () { * * @returns The ServiceClientOptions object from this Pipeline. */ - Pipeline.prototype.toServiceClientOptions = function () { + toServiceClientOptions() { return { httpClient: this.options.httpClient, requestPolicyFactories: this.factories }; - }; - return Pipeline; -}()); + } +} /** * Creates a new Pipeline object with Credential provided. * @@ -31093,16 +29756,15 @@ var Pipeline = /** @class */ (function () { * @param pipelineOptions - Optional. Options. * @returns A new Pipeline object. */ -function newPipeline(credential, pipelineOptions) { - if (pipelineOptions === void 0) { pipelineOptions = {}; } +function newPipeline(credential, pipelineOptions = {}) { if (credential === undefined) { credential = new AnonymousCredential(); } // Order is important. Closer to the API at the top & closer to the network at the bottom. // The credential's policy factory must appear close to the wire so it can sign any // changes made by other factories (like UniqueRequestIDPolicyFactory) - var telemetryPolicy = new TelemetryPolicyFactory(pipelineOptions.userAgentOptions); - var factories = [ + const telemetryPolicy = new TelemetryPolicyFactory(pipelineOptions.userAgentOptions); + const factories = [ coreHttp.tracingPolicy({ userAgent: telemetryPolicy.telemetryString }), coreHttp.keepAlivePolicy(pipelineOptions.keepAliveOptions), telemetryPolicy, @@ -31134,30 +29796,28 @@ function newPipeline(credential, pipelineOptions) { /** * StorageSharedKeyCredentialPolicy is a policy used to sign HTTP request with a shared key. */ -var StorageSharedKeyCredentialPolicy = /** @class */ (function (_super) { - tslib.__extends(StorageSharedKeyCredentialPolicy, _super); +class StorageSharedKeyCredentialPolicy extends CredentialPolicy { /** * Creates an instance of StorageSharedKeyCredentialPolicy. * @param nextPolicy - * @param options - * @param factory - */ - function StorageSharedKeyCredentialPolicy(nextPolicy, options, factory) { - var _this = _super.call(this, nextPolicy, options) || this; - _this.factory = factory; - return _this; + constructor(nextPolicy, options, factory) { + super(nextPolicy, options); + this.factory = factory; } /** * Signs request. * * @param request - */ - StorageSharedKeyCredentialPolicy.prototype.signRequest = function (request) { + signRequest(request) { request.headers.set(HeaderConstants.X_MS_DATE, new Date().toUTCString()); if (request.body && typeof request.body === "string" && request.body.length > 0) { request.headers.set(HeaderConstants.CONTENT_LENGTH, Buffer.byteLength(request.body)); } - var stringToSign = [ + const stringToSign = [ request.method.toUpperCase(), this.getHeaderValueToSign(request, HeaderConstants.CONTENT_LANGUAGE), this.getHeaderValueToSign(request, HeaderConstants.CONTENT_ENCODING), @@ -31174,14 +29834,14 @@ var StorageSharedKeyCredentialPolicy = /** @class */ (function (_super) { "\n" + this.getCanonicalizedHeadersString(request) + this.getCanonicalizedResourceString(request); - var signature = this.factory.computeHMACSHA256(stringToSign); - request.headers.set(HeaderConstants.AUTHORIZATION, "SharedKey " + this.factory.accountName + ":" + signature); + const signature = this.factory.computeHMACSHA256(stringToSign); + request.headers.set(HeaderConstants.AUTHORIZATION, `SharedKey ${this.factory.accountName}:${signature}`); // console.log(`[URL]:${request.url}`); // console.log(`[HEADERS]:${request.headers.toString()}`); // console.log(`[STRING TO SIGN]:${JSON.stringify(stringToSign)}`); // console.log(`[KEY]: ${request.headers.get(HeaderConstants.AUTHORIZATION)}`); return request; - }; + } /** * Retrieve header value according to shared key sign rules. * @see https://docs.microsoft.com/en-us/rest/api/storageservices/authenticate-with-shared-key @@ -31189,8 +29849,8 @@ var StorageSharedKeyCredentialPolicy = /** @class */ (function (_super) { * @param request - * @param headerName - */ - StorageSharedKeyCredentialPolicy.prototype.getHeaderValueToSign = function (request, headerName) { - var value = request.headers.get(headerName); + getHeaderValueToSign(request, headerName) { + const value = request.headers.get(headerName); if (!value) { return ""; } @@ -31201,7 +29861,7 @@ var StorageSharedKeyCredentialPolicy = /** @class */ (function (_super) { return ""; } return value; - }; + } /** * To construct the CanonicalizedHeaders portion of the signature string, follow these steps: * 1. Retrieve all headers for the resource that begin with x-ms-, including the x-ms-date header. @@ -31215,58 +29875,56 @@ var StorageSharedKeyCredentialPolicy = /** @class */ (function (_super) { * * @param request - */ - StorageSharedKeyCredentialPolicy.prototype.getCanonicalizedHeadersString = function (request) { - var headersArray = request.headers.headersArray().filter(function (value) { + getCanonicalizedHeadersString(request) { + let headersArray = request.headers.headersArray().filter((value) => { return value.name.toLowerCase().startsWith(HeaderConstants.PREFIX_FOR_STORAGE); }); - headersArray.sort(function (a, b) { + headersArray.sort((a, b) => { return a.name.toLowerCase().localeCompare(b.name.toLowerCase()); }); // Remove duplicate headers - headersArray = headersArray.filter(function (value, index, array) { + headersArray = headersArray.filter((value, index, array) => { if (index > 0 && value.name.toLowerCase() === array[index - 1].name.toLowerCase()) { return false; } return true; }); - var canonicalizedHeadersStringToSign = ""; - headersArray.forEach(function (header) { - canonicalizedHeadersStringToSign += header.name + let canonicalizedHeadersStringToSign = ""; + headersArray.forEach((header) => { + canonicalizedHeadersStringToSign += `${header.name .toLowerCase() - .trimRight() + ":" + header.value.trimLeft() + "\n"; + .trimRight()}:${header.value.trimLeft()}\n`; }); return canonicalizedHeadersStringToSign; - }; + } /** * Retrieves the webResource canonicalized resource string. * * @param request - */ - StorageSharedKeyCredentialPolicy.prototype.getCanonicalizedResourceString = function (request) { - var path = getURLPath(request.url) || "/"; - var canonicalizedResourceString = ""; - canonicalizedResourceString += "/" + this.factory.accountName + path; - var queries = getURLQueries(request.url); - var lowercaseQueries = {}; + getCanonicalizedResourceString(request) { + const path = getURLPath(request.url) || "/"; + let canonicalizedResourceString = ""; + canonicalizedResourceString += `/${this.factory.accountName}${path}`; + const queries = getURLQueries(request.url); + const lowercaseQueries = {}; if (queries) { - var queryKeys = []; - for (var key in queries) { - if (queries.hasOwnProperty(key)) { - var lowercaseKey = key.toLowerCase(); + const queryKeys = []; + for (const key in queries) { + if (Object.prototype.hasOwnProperty.call(queries, key)) { + const lowercaseKey = key.toLowerCase(); lowercaseQueries[lowercaseKey] = queries[key]; queryKeys.push(lowercaseKey); } } queryKeys.sort(); - for (var _i = 0, queryKeys_1 = queryKeys; _i < queryKeys_1.length; _i++) { - var key = queryKeys_1[_i]; - canonicalizedResourceString += "\n" + key + ":" + decodeURIComponent(lowercaseQueries[key]); + for (const key of queryKeys) { + canonicalizedResourceString += `\n${key}:${decodeURIComponent(lowercaseQueries[key])}`; } } return canonicalizedResourceString; - }; - return StorageSharedKeyCredentialPolicy; -}(CredentialPolicy)); + } +} // Copyright (c) Microsoft Corporation. /** @@ -31274,18 +29932,16 @@ var StorageSharedKeyCredentialPolicy = /** @class */ (function (_super) { * * StorageSharedKeyCredential for account key authorization of Azure Storage service. */ -var StorageSharedKeyCredential = /** @class */ (function (_super) { - tslib.__extends(StorageSharedKeyCredential, _super); +class StorageSharedKeyCredential extends Credential { /** * Creates an instance of StorageSharedKeyCredential. * @param accountName - * @param accountKey - */ - function StorageSharedKeyCredential(accountName, accountKey) { - var _this = _super.call(this) || this; - _this.accountName = accountName; - _this.accountKey = Buffer.from(accountKey, "base64"); - return _this; + constructor(accountName, accountKey) { + super(); + this.accountName = accountName; + this.accountKey = Buffer.from(accountKey, "base64"); } /** * Creates a StorageSharedKeyCredentialPolicy object. @@ -31293,21 +29949,20 @@ var StorageSharedKeyCredential = /** @class */ (function (_super) { * @param nextPolicy - * @param options - */ - StorageSharedKeyCredential.prototype.create = function (nextPolicy, options) { + create(nextPolicy, options) { return new StorageSharedKeyCredentialPolicy(nextPolicy, options, this); - }; + } /** * Generates a hash signature for an HTTP request or for a SAS. * * @param stringToSign - */ - StorageSharedKeyCredential.prototype.computeHMACSHA256 = function (stringToSign) { + computeHMACSHA256(stringToSign) { return crypto.createHmac("sha256", this.accountKey) .update(stringToSign, "utf8") .digest("base64"); - }; - return StorageSharedKeyCredential; -}(Credential)); + } +} /* * Copyright (c) Microsoft Corporation. @@ -31316,18 +29971,16 @@ var StorageSharedKeyCredential = /** @class */ (function (_super) { * Code generated by Microsoft (R) AutoRest Code Generator. * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -var packageName = "azure-storage-blob"; -var packageVersion = "12.6.0-beta.1"; -var StorageClientContext = /** @class */ (function (_super) { - tslib.__extends(StorageClientContext, _super); +const packageName = "azure-storage-blob"; +const packageVersion = "12.8.0"; +class StorageClientContext extends coreHttp.ServiceClient { /** * Initializes a new instance of the StorageClientContext class. - * @param url The URL of the service account, container, or blob that is the targe of the desired + * @param url The URL of the service account, container, or blob that is the target of the desired * operation. * @param options The parameter options */ - function StorageClientContext(url, options) { - var _this = this; + constructor(url, options) { if (url === undefined) { throw new Error("'url' cannot be null"); } @@ -31336,33 +29989,31 @@ var StorageClientContext = /** @class */ (function (_super) { options = {}; } if (!options.userAgent) { - var defaultUserAgent = coreHttp.getDefaultUserAgentValue(); - options.userAgent = packageName + "/" + packageVersion + " " + defaultUserAgent; + const defaultUserAgent = coreHttp.getDefaultUserAgentValue(); + options.userAgent = `${packageName}/${packageVersion} ${defaultUserAgent}`; } - _this = _super.call(this, undefined, options) || this; - _this.requestContentType = "application/json; charset=utf-8"; - _this.baseUri = options.endpoint || "{url}"; + super(undefined, options); + this.requestContentType = "application/json; charset=utf-8"; + this.baseUri = options.endpoint || "{url}"; // Parameter assignments - _this.url = url; + this.url = url; // Assigning values to Constant parameters - _this.version = options.version || "2020-08-04"; - return _this; + this.version = options.version || "2020-10-02"; } - return StorageClientContext; -}(coreHttp.ServiceClient)); +} // Copyright (c) Microsoft Corporation. /** * A StorageClient represents a based URL class for {@link BlobServiceClient}, {@link ContainerClient} * and etc. */ -var StorageClient = /** @class */ (function () { +class StorageClient { /** * Creates an instance of StorageClient. * @param url - url to resource * @param pipeline - request policy pipeline. */ - function StorageClient(url, pipeline) { + constructor(url, pipeline) { // URL should be encoded and only once, protocol layer shouldn't encode URL again this.url = escapeURLPath(url); this.accountName = getAccountNameFromUrl(url); @@ -31370,8 +30021,7 @@ var StorageClient = /** @class */ (function () { this.storageClientContext = new StorageClientContext(this.url, pipeline.toServiceClientOptions()); this.isHttps = iEqual(getURLScheme(this.url) || "", "https"); this.credential = new AnonymousCredential(); - for (var _i = 0, _a = this.pipeline.factories; _i < _a.length; _i++) { - var factory = _a[_i]; + for (const factory of this.pipeline.factories) { if ((coreHttp.isNode && factory instanceof StorageSharedKeyCredential) || factory instanceof AnonymousCredential) { this.credential = factory; @@ -31383,18 +30033,17 @@ var StorageClient = /** @class */ (function () { } } // Override protocol layer's default content-type - var storageClientContext = this.storageClientContext; + const storageClientContext = this.storageClientContext; storageClientContext.requestContentType = undefined; } - return StorageClient; -}()); +} // Copyright (c) Microsoft Corporation. /** * Creates a span using the global tracer. * @internal */ -var createSpan = coreTracing.createSpanFunction({ +const createSpan = coreTracing.createSpanFunction({ packagePrefix: "Azure.Storage.Blob", namespace: "Microsoft.Storage" }); @@ -31408,6 +30057,7 @@ var createSpan = coreTracing.createSpanFunction({ function convertTracingToRequestOptionsBase(options) { var _a, _b; return { + // By passing spanOptions if they exist at runtime, we're backwards compatible with @azure/core-tracing@preview.13 and earlier. spanOptions: (_a = options === null || options === void 0 ? void 0 : options.tracingOptions) === null || _a === void 0 ? void 0 : _a.spanOptions, tracingContext: (_b = options === null || options === void 0 ? void 0 : options.tracingOptions) === null || _b === void 0 ? void 0 : _b.tracingContext }; @@ -31424,8 +30074,8 @@ function convertTracingToRequestOptionsBase(options) { * {@link BlobSASSignatureValues} object. It is possible to construct the permissions string without this class, but * the order of the permissions is particular and this class guarantees correctness. */ -var BlobSASPermissions = /** @class */ (function () { - function BlobSASPermissions() { +class BlobSASPermissions { + constructor() { /** * Specifies Read access granted. */ @@ -31462,6 +30112,10 @@ var BlobSASPermissions = /** @class */ (function () { * Specifies Execute access granted. */ this.execute = false; + /** + * Specifies SetImmutabilityPolicy access granted. + */ + this.setImmutabilityPolicy = false; } /** * Creates a {@link BlobSASPermissions} from the specified permissions string. This method will throw an @@ -31469,10 +30123,9 @@ var BlobSASPermissions = /** @class */ (function () { * * @param permissions - */ - BlobSASPermissions.parse = function (permissions) { - var blobSASPermissions = new BlobSASPermissions(); - for (var _i = 0, permissions_1 = permissions; _i < permissions_1.length; _i++) { - var char = permissions_1[_i]; + static parse(permissions) { + const blobSASPermissions = new BlobSASPermissions(); + for (const char of permissions) { switch (char) { case "r": blobSASPermissions.read = true; @@ -31501,20 +30154,23 @@ var BlobSASPermissions = /** @class */ (function () { case "e": blobSASPermissions.execute = true; break; + case "i": + blobSASPermissions.setImmutabilityPolicy = true; + break; default: - throw new RangeError("Invalid permission: " + char); + throw new RangeError(`Invalid permission: ${char}`); } } return blobSASPermissions; - }; + } /** * Creates a {@link BlobSASPermissions} from a raw object which contains same keys as it * and boolean values for them. * * @param permissionLike - */ - BlobSASPermissions.from = function (permissionLike) { - var blobSASPermissions = new BlobSASPermissions(); + static from(permissionLike) { + const blobSASPermissions = new BlobSASPermissions(); if (permissionLike.read) { blobSASPermissions.read = true; } @@ -31542,16 +30198,19 @@ var BlobSASPermissions = /** @class */ (function () { if (permissionLike.execute) { blobSASPermissions.execute = true; } + if (permissionLike.setImmutabilityPolicy) { + blobSASPermissions.setImmutabilityPolicy = true; + } return blobSASPermissions; - }; + } /** * Converts the given permissions to a string. Using this method will guarantee the permissions are in an * order accepted by the service. * * @returns A string which represents the BlobSASPermissions */ - BlobSASPermissions.prototype.toString = function () { - var permissions = []; + toString() { + const permissions = []; if (this.read) { permissions.push("r"); } @@ -31579,10 +30238,12 @@ var BlobSASPermissions = /** @class */ (function () { if (this.execute) { permissions.push("e"); } + if (this.setImmutabilityPolicy) { + permissions.push("i"); + } return permissions.join(""); - }; - return BlobSASPermissions; -}()); + } +} // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. @@ -31593,8 +30254,8 @@ var BlobSASPermissions = /** @class */ (function () { * {@link BlobSASSignatureValues} object. It is possible to construct the permissions string without this class, but * the order of the permissions is particular and this class guarantees correctness. */ -var ContainerSASPermissions = /** @class */ (function () { - function ContainerSASPermissions() { +class ContainerSASPermissions { + constructor() { /** * Specifies Read access granted. */ @@ -31635,6 +30296,10 @@ var ContainerSASPermissions = /** @class */ (function () { * Specifies Execute access granted. */ this.execute = false; + /** + * Specifies SetImmutabilityPolicy access granted. + */ + this.setImmutabilityPolicy = false; } /** * Creates an {@link ContainerSASPermissions} from the specified permissions string. This method will throw an @@ -31642,10 +30307,9 @@ var ContainerSASPermissions = /** @class */ (function () { * * @param permissions - */ - ContainerSASPermissions.parse = function (permissions) { - var containerSASPermissions = new ContainerSASPermissions(); - for (var _i = 0, permissions_1 = permissions; _i < permissions_1.length; _i++) { - var char = permissions_1[_i]; + static parse(permissions) { + const containerSASPermissions = new ContainerSASPermissions(); + for (const char of permissions) { switch (char) { case "r": containerSASPermissions.read = true; @@ -31677,20 +30341,23 @@ var ContainerSASPermissions = /** @class */ (function () { case "e": containerSASPermissions.execute = true; break; + case "i": + containerSASPermissions.setImmutabilityPolicy = true; + break; default: - throw new RangeError("Invalid permission " + char); + throw new RangeError(`Invalid permission ${char}`); } } return containerSASPermissions; - }; + } /** * Creates a {@link ContainerSASPermissions} from a raw object which contains same keys as it * and boolean values for them. * * @param permissionLike - */ - ContainerSASPermissions.from = function (permissionLike) { - var containerSASPermissions = new ContainerSASPermissions(); + static from(permissionLike) { + const containerSASPermissions = new ContainerSASPermissions(); if (permissionLike.read) { containerSASPermissions.read = true; } @@ -31721,8 +30388,11 @@ var ContainerSASPermissions = /** @class */ (function () { if (permissionLike.execute) { containerSASPermissions.execute = true; } + if (permissionLike.setImmutabilityPolicy) { + containerSASPermissions.setImmutabilityPolicy = true; + } return containerSASPermissions; - }; + } /** * Converts the given permissions to a string. Using this method will guarantee the permissions are in an * order accepted by the service. @@ -31731,8 +30401,8 @@ var ContainerSASPermissions = /** @class */ (function () { * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas * */ - ContainerSASPermissions.prototype.toString = function () { - var permissions = []; + toString() { + const permissions = []; if (this.read) { permissions.push("r"); } @@ -31763,10 +30433,12 @@ var ContainerSASPermissions = /** @class */ (function () { if (this.execute) { permissions.push("e"); } + if (this.setImmutabilityPolicy) { + permissions.push("i"); + } return permissions.join(""); - }; - return ContainerSASPermissions; -}()); + } +} // Copyright (c) Microsoft Corporation. /** @@ -31775,13 +30447,13 @@ var ContainerSASPermissions = /** @class */ (function () { * UserDelegationKeyCredential is only used for generation of user delegation SAS. * @see https://docs.microsoft.com/en-us/rest/api/storageservices/create-user-delegation-sas */ -var UserDelegationKeyCredential = /** @class */ (function () { +class UserDelegationKeyCredential { /** * Creates an instance of UserDelegationKeyCredential. * @param accountName - * @param userDelegationKey - */ - function UserDelegationKeyCredential(accountName, userDelegationKey) { + constructor(accountName, userDelegationKey) { this.accountName = accountName; this.userDelegationKey = userDelegationKey; this.key = Buffer.from(userDelegationKey.value, "base64"); @@ -31791,14 +30463,13 @@ var UserDelegationKeyCredential = /** @class */ (function () { * * @param stringToSign - */ - UserDelegationKeyCredential.prototype.computeHMACSHA256 = function (stringToSign) { + computeHMACSHA256(stringToSign) { // console.log(`stringToSign: ${JSON.stringify(stringToSign)}`); return crypto.createHmac("sha256", this.key) .update(stringToSign, "utf8") .digest("base64"); - }; - return UserDelegationKeyCredential; -}()); + } +} // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. @@ -31810,7 +30481,7 @@ var UserDelegationKeyCredential = /** @class */ (function () { * @param ipRange - */ function ipRangeToString(ipRange) { - return ipRange.end ? ipRange.start + "-" + ipRange.end : ipRange.start; + return ipRange.end ? `${ipRange.start}-${ipRange.end}` : ipRange.start; } // Copyright (c) Microsoft Corporation. @@ -31827,14 +30498,14 @@ function ipRangeToString(ipRange) { /** * Represents the components that make up an Azure Storage SAS' query parameters. This type is not constructed directly * by the user; it is only generated by the {@link AccountSASSignatureValues} and {@link BlobSASSignatureValues} - * types. Once generated, it can be encoded into a {@code String} and appended to a URL directly (though caution should + * types. Once generated, it can be encoded into a {@link String} and appended to a URL directly (though caution should * be taken here in case there are existing query parameters, which might affect the appropriate means of appending * these query parameters). * * NOTE: Instances of this class are immutable. */ -var SASQueryParameters = /** @class */ (function () { - function SASQueryParameters(version, signature, permissionsOrOptions, services, resourceTypes, protocol, startsOn, expiresOn, ipRange, identifier, resource, cacheControl, contentDisposition, contentEncoding, contentLanguage, contentType, userDelegationKey, preauthorizedAgentObjectId, correlationId) { +class SASQueryParameters { + constructor(version, signature, permissionsOrOptions, services, resourceTypes, protocol, startsOn, expiresOn, ipRange, identifier, resource, cacheControl, contentDisposition, contentEncoding, contentLanguage, contentType, userDelegationKey, preauthorizedAgentObjectId, correlationId) { this.version = version; this.signature = signature; if (permissionsOrOptions !== undefined && typeof permissionsOrOptions !== "string") { @@ -31891,30 +30562,26 @@ var SASQueryParameters = /** @class */ (function () { } } } - Object.defineProperty(SASQueryParameters.prototype, "ipRange", { - /** - * Optional. IP range allowed for this SAS. - * - * @readonly - */ - get: function () { - if (this.ipRangeInner) { - return { - end: this.ipRangeInner.end, - start: this.ipRangeInner.start - }; - } - return undefined; - }, - enumerable: false, - configurable: true - }); + /** + * Optional. IP range allowed for this SAS. + * + * @readonly + */ + get ipRange() { + if (this.ipRangeInner) { + return { + end: this.ipRangeInner.end, + start: this.ipRangeInner.start + }; + } + return undefined; + } /** * Encodes all SAS query parameters into a string that can be appended to a URL. * */ - SASQueryParameters.prototype.toString = function () { - var params = [ + toString() { + const params = [ "sv", "ss", "srt", @@ -31940,9 +30607,8 @@ var SASQueryParameters = /** @class */ (function () { "saoid", "scid" ]; - var queries = []; - for (var _i = 0, params_1 = params; _i < params_1.length; _i++) { - var param = params_1[_i]; + const queries = []; + for (const param of params) { switch (param) { case "sv": this.tryAppendQueryParameter(queries, param, this.version); @@ -32019,7 +30685,7 @@ var SASQueryParameters = /** @class */ (function () { } } return queries.join("&"); - }; + } /** * A private helper method used to filter and append query key/value pairs into an array. * @@ -32027,26 +30693,25 @@ var SASQueryParameters = /** @class */ (function () { * @param key - * @param value - */ - SASQueryParameters.prototype.tryAppendQueryParameter = function (queries, key, value) { + tryAppendQueryParameter(queries, key, value) { if (!value) { return; } key = encodeURIComponent(key); value = encodeURIComponent(value); if (key.length > 0 && value.length > 0) { - queries.push(key + "=" + value); + queries.push(`${key}=${value}`); } - }; - return SASQueryParameters; -}()); + } +} // Copyright (c) Microsoft Corporation. function generateBlobSASQueryParameters(blobSASSignatureValues, sharedKeyCredentialOrUserDelegationKey, accountName) { - var version = blobSASSignatureValues.version ? blobSASSignatureValues.version : SERVICE_VERSION; - var sharedKeyCredential = sharedKeyCredentialOrUserDelegationKey instanceof StorageSharedKeyCredential + const version = blobSASSignatureValues.version ? blobSASSignatureValues.version : SERVICE_VERSION; + const sharedKeyCredential = sharedKeyCredentialOrUserDelegationKey instanceof StorageSharedKeyCredential ? sharedKeyCredentialOrUserDelegationKey : undefined; - var userDelegationKeyCredential; + let userDelegationKeyCredential; if (sharedKeyCredential === undefined && accountName !== undefined) { userDelegationKeyCredential = new UserDelegationKeyCredential(accountName, sharedKeyCredentialOrUserDelegationKey); } @@ -32102,12 +30767,12 @@ function generateBlobSASQueryParameters20150405(blobSASSignatureValues, sharedKe !(blobSASSignatureValues.permissions && blobSASSignatureValues.expiresOn)) { throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided."); } - var resource = "c"; + let resource = "c"; if (blobSASSignatureValues.blobName) { resource = "b"; } // Calling parse and toString guarantees the proper ordering and throws on invalid characters. - var verifiedPermissions; + let verifiedPermissions; if (blobSASSignatureValues.permissions) { if (blobSASSignatureValues.blobName) { verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString(); @@ -32117,7 +30782,7 @@ function generateBlobSASQueryParameters20150405(blobSASSignatureValues, sharedKe } } // Signature is generated on the un-url-encoded values. - var stringToSign = [ + const stringToSign = [ verifiedPermissions ? verifiedPermissions : "", blobSASSignatureValues.startsOn ? truncatedISO8061Date(blobSASSignatureValues.startsOn, false) @@ -32136,7 +30801,7 @@ function generateBlobSASQueryParameters20150405(blobSASSignatureValues, sharedKe blobSASSignatureValues.contentLanguage ? blobSASSignatureValues.contentLanguage : "", blobSASSignatureValues.contentType ? blobSASSignatureValues.contentType : "" ].join("\n"); - var signature = sharedKeyCredential.computeHMACSHA256(stringToSign); + const signature = sharedKeyCredential.computeHMACSHA256(stringToSign); return new SASQueryParameters(blobSASSignatureValues.version, signature, verifiedPermissions, undefined, undefined, blobSASSignatureValues.protocol, blobSASSignatureValues.startsOn, blobSASSignatureValues.expiresOn, blobSASSignatureValues.ipRange, blobSASSignatureValues.identifier, resource, blobSASSignatureValues.cacheControl, blobSASSignatureValues.contentDisposition, blobSASSignatureValues.contentEncoding, blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType); } /** @@ -32161,8 +30826,8 @@ function generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKe !(blobSASSignatureValues.permissions && blobSASSignatureValues.expiresOn)) { throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided."); } - var resource = "c"; - var timestamp = blobSASSignatureValues.snapshotTime; + let resource = "c"; + let timestamp = blobSASSignatureValues.snapshotTime; if (blobSASSignatureValues.blobName) { resource = "b"; if (blobSASSignatureValues.snapshotTime) { @@ -32174,7 +30839,7 @@ function generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKe } } // Calling parse and toString guarantees the proper ordering and throws on invalid characters. - var verifiedPermissions; + let verifiedPermissions; if (blobSASSignatureValues.permissions) { if (blobSASSignatureValues.blobName) { verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString(); @@ -32184,7 +30849,7 @@ function generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKe } } // Signature is generated on the un-url-encoded values. - var stringToSign = [ + const stringToSign = [ verifiedPermissions ? verifiedPermissions : "", blobSASSignatureValues.startsOn ? truncatedISO8061Date(blobSASSignatureValues.startsOn, false) @@ -32205,7 +30870,7 @@ function generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKe blobSASSignatureValues.contentLanguage ? blobSASSignatureValues.contentLanguage : "", blobSASSignatureValues.contentType ? blobSASSignatureValues.contentType : "" ].join("\n"); - var signature = sharedKeyCredential.computeHMACSHA256(stringToSign); + const signature = sharedKeyCredential.computeHMACSHA256(stringToSign); return new SASQueryParameters(blobSASSignatureValues.version, signature, verifiedPermissions, undefined, undefined, blobSASSignatureValues.protocol, blobSASSignatureValues.startsOn, blobSASSignatureValues.expiresOn, blobSASSignatureValues.ipRange, blobSASSignatureValues.identifier, resource, blobSASSignatureValues.cacheControl, blobSASSignatureValues.contentDisposition, blobSASSignatureValues.contentEncoding, blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType); } /** @@ -32228,8 +30893,8 @@ function generateBlobSASQueryParametersUDK20181109(blobSASSignatureValues, userD if (!blobSASSignatureValues.permissions || !blobSASSignatureValues.expiresOn) { throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS."); } - var resource = "c"; - var timestamp = blobSASSignatureValues.snapshotTime; + let resource = "c"; + let timestamp = blobSASSignatureValues.snapshotTime; if (blobSASSignatureValues.blobName) { resource = "b"; if (blobSASSignatureValues.snapshotTime) { @@ -32241,7 +30906,7 @@ function generateBlobSASQueryParametersUDK20181109(blobSASSignatureValues, userD } } // Calling parse and toString guarantees the proper ordering and throws on invalid characters. - var verifiedPermissions; + let verifiedPermissions; if (blobSASSignatureValues.permissions) { if (blobSASSignatureValues.blobName) { verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString(); @@ -32251,7 +30916,7 @@ function generateBlobSASQueryParametersUDK20181109(blobSASSignatureValues, userD } } // Signature is generated on the un-url-encoded values. - var stringToSign = [ + const stringToSign = [ verifiedPermissions ? verifiedPermissions : "", blobSASSignatureValues.startsOn ? truncatedISO8061Date(blobSASSignatureValues.startsOn, false) @@ -32281,7 +30946,7 @@ function generateBlobSASQueryParametersUDK20181109(blobSASSignatureValues, userD blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType ].join("\n"); - var signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign); + const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign); return new SASQueryParameters(blobSASSignatureValues.version, signature, verifiedPermissions, undefined, undefined, blobSASSignatureValues.protocol, blobSASSignatureValues.startsOn, blobSASSignatureValues.expiresOn, blobSASSignatureValues.ipRange, blobSASSignatureValues.identifier, resource, blobSASSignatureValues.cacheControl, blobSASSignatureValues.contentDisposition, blobSASSignatureValues.contentEncoding, blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType, userDelegationKeyCredential.userDelegationKey); } /** @@ -32304,8 +30969,8 @@ function generateBlobSASQueryParametersUDK20200210(blobSASSignatureValues, userD if (!blobSASSignatureValues.permissions || !blobSASSignatureValues.expiresOn) { throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS."); } - var resource = "c"; - var timestamp = blobSASSignatureValues.snapshotTime; + let resource = "c"; + let timestamp = blobSASSignatureValues.snapshotTime; if (blobSASSignatureValues.blobName) { resource = "b"; if (blobSASSignatureValues.snapshotTime) { @@ -32317,7 +30982,7 @@ function generateBlobSASQueryParametersUDK20200210(blobSASSignatureValues, userD } } // Calling parse and toString guarantees the proper ordering and throws on invalid characters. - var verifiedPermissions; + let verifiedPermissions; if (blobSASSignatureValues.permissions) { if (blobSASSignatureValues.blobName) { verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString(); @@ -32327,7 +30992,7 @@ function generateBlobSASQueryParametersUDK20200210(blobSASSignatureValues, userD } } // Signature is generated on the un-url-encoded values. - var stringToSign = [ + const stringToSign = [ verifiedPermissions ? verifiedPermissions : "", blobSASSignatureValues.startsOn ? truncatedISO8061Date(blobSASSignatureValues.startsOn, false) @@ -32360,20 +31025,20 @@ function generateBlobSASQueryParametersUDK20200210(blobSASSignatureValues, userD blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType ].join("\n"); - var signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign); + const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign); return new SASQueryParameters(blobSASSignatureValues.version, signature, verifiedPermissions, undefined, undefined, blobSASSignatureValues.protocol, blobSASSignatureValues.startsOn, blobSASSignatureValues.expiresOn, blobSASSignatureValues.ipRange, blobSASSignatureValues.identifier, resource, blobSASSignatureValues.cacheControl, blobSASSignatureValues.contentDisposition, blobSASSignatureValues.contentEncoding, blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType, userDelegationKeyCredential.userDelegationKey, blobSASSignatureValues.preauthorizedAgentObjectId, blobSASSignatureValues.correlationId); } function getCanonicalName(accountName, containerName, blobName) { // Container: "/blob/account/containerName" // Blob: "/blob/account/containerName/blobName" - var elements = ["/blob/" + accountName + "/" + containerName]; + const elements = [`/blob/${accountName}/${containerName}`]; if (blobName) { - elements.push("/" + blobName); + elements.push(`/${blobName}`); } return elements.join(""); } function SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues) { - var version = blobSASSignatureValues.version ? blobSASSignatureValues.version : SERVICE_VERSION; + const version = blobSASSignatureValues.version ? blobSASSignatureValues.version : SERVICE_VERSION; if (blobSASSignatureValues.snapshotTime && version < "2018-11-09") { throw RangeError("'version' must be >= '2018-11-09' when providing 'snapshotTime'."); } @@ -32386,6 +31051,11 @@ function SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues) { if (blobSASSignatureValues.blobName === undefined && blobSASSignatureValues.versionId) { throw RangeError("Must provide 'blobName' when providing 'versionId'."); } + if (blobSASSignatureValues.permissions && + blobSASSignatureValues.permissions.setImmutabilityPolicy && + version < "2020-08-04") { + throw RangeError("'version' must be >= '2020-08-04' when provided 'i' permission."); + } if (blobSASSignatureValues.permissions && blobSASSignatureValues.permissions.deleteVersion && version < "2019-10-10") { @@ -32409,17 +31079,18 @@ function SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues) { return blobSASSignatureValues; } +// Copyright (c) Microsoft Corporation. /** * A client that manages leases for a {@link ContainerClient} or a {@link BlobClient}. */ -var BlobLeaseClient = /** @class */ (function () { +class BlobLeaseClient { /** * Creates an instance of BlobLeaseClient. * @param client - The client to make the lease operation requests. * @param leaseId - Initial proposed lease id. */ - function BlobLeaseClient(client, leaseId) { - var clientContext = new StorageClientContext(client.url, client.pipeline.toServiceClientOptions()); + constructor(client, leaseId) { + const clientContext = new StorageClientContext(client.url, client.pipeline.toServiceClientOptions()); this._url = client.url; if (client.name === undefined) { this._isContainer = true; @@ -32434,30 +31105,22 @@ var BlobLeaseClient = /** @class */ (function () { } this._leaseId = leaseId; } - Object.defineProperty(BlobLeaseClient.prototype, "leaseId", { - /** - * Gets the lease Id. - * - * @readonly - */ - get: function () { - return this._leaseId; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobLeaseClient.prototype, "url", { - /** - * Gets the url. - * - * @readonly - */ - get: function () { - return this._url; - }, - enumerable: false, - configurable: true - }); + /** + * Gets the lease Id. + * + * @readonly + */ + get leaseId() { + return this._leaseId; + } + /** + * Gets the url. + * + * @readonly + */ + get url() { + return this._url; + } /** * Establishes and manages a lock on a container for delete operations, or on a blob * for write and delete operations. @@ -32470,41 +31133,29 @@ var BlobLeaseClient = /** @class */ (function () { * @param options - option to configure lease management operations. * @returns Response data for acquire lease operation. */ - BlobLeaseClient.prototype.acquireLease = function (duration, options) { + async acquireLease(duration, options = {}) { var _a, _b, _c, _d, _e, _f; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _g, span, updatedOptions, e_1; - return tslib.__generator(this, function (_h) { - switch (_h.label) { - case 0: - _g = createSpan("BlobLeaseClient-acquireLease", options), span = _g.span, updatedOptions = _g.updatedOptions; - if (this._isContainer && - ((((_a = options.conditions) === null || _a === void 0 ? void 0 : _a.ifMatch) && ((_b = options.conditions) === null || _b === void 0 ? void 0 : _b.ifMatch) !== ETagNone) || - (((_c = options.conditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch) && ((_d = options.conditions) === null || _d === void 0 ? void 0 : _d.ifNoneMatch) !== ETagNone) || - ((_e = options.conditions) === null || _e === void 0 ? void 0 : _e.tagConditions))) { - throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable."); - } - _h.label = 1; - case 1: - _h.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this._containerOrBlobOperation.acquireLease(tslib.__assign({ abortSignal: options.abortSignal, duration: duration, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_f = options.conditions) === null || _f === void 0 ? void 0 : _f.tagConditions }), proposedLeaseId: this._leaseId }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _h.sent()]; - case 3: - e_1 = _h.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_1.message - }); - throw e_1; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobLeaseClient-acquireLease", options); + if (this._isContainer && + ((((_a = options.conditions) === null || _a === void 0 ? void 0 : _a.ifMatch) && ((_b = options.conditions) === null || _b === void 0 ? void 0 : _b.ifMatch) !== ETagNone) || + (((_c = options.conditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch) && ((_d = options.conditions) === null || _d === void 0 ? void 0 : _d.ifNoneMatch) !== ETagNone) || + ((_e = options.conditions) === null || _e === void 0 ? void 0 : _e.tagConditions))) { + throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable."); + } + try { + return await this._containerOrBlobOperation.acquireLease(Object.assign({ abortSignal: options.abortSignal, duration, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_f = options.conditions) === null || _f === void 0 ? void 0 : _f.tagConditions }), proposedLeaseId: this._leaseId }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * To change the ID of the lease. * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-container @@ -32515,44 +31166,31 @@ var BlobLeaseClient = /** @class */ (function () { * @param options - option to configure lease management operations. * @returns Response data for change lease operation. */ - BlobLeaseClient.prototype.changeLease = function (proposedLeaseId, options) { + async changeLease(proposedLeaseId, options = {}) { var _a, _b, _c, _d, _e, _f; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _g, span, updatedOptions, response, e_2; - return tslib.__generator(this, function (_h) { - switch (_h.label) { - case 0: - _g = createSpan("BlobLeaseClient-changeLease", options), span = _g.span, updatedOptions = _g.updatedOptions; - if (this._isContainer && - ((((_a = options.conditions) === null || _a === void 0 ? void 0 : _a.ifMatch) && ((_b = options.conditions) === null || _b === void 0 ? void 0 : _b.ifMatch) !== ETagNone) || - (((_c = options.conditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch) && ((_d = options.conditions) === null || _d === void 0 ? void 0 : _d.ifNoneMatch) !== ETagNone) || - ((_e = options.conditions) === null || _e === void 0 ? void 0 : _e.tagConditions))) { - throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable."); - } - _h.label = 1; - case 1: - _h.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this._containerOrBlobOperation.changeLease(this._leaseId, proposedLeaseId, tslib.__assign({ abortSignal: options.abortSignal, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_f = options.conditions) === null || _f === void 0 ? void 0 : _f.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - response = _h.sent(); - this._leaseId = proposedLeaseId; - return [2 /*return*/, response]; - case 3: - e_2 = _h.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_2.message - }); - throw e_2; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobLeaseClient-changeLease", options); + if (this._isContainer && + ((((_a = options.conditions) === null || _a === void 0 ? void 0 : _a.ifMatch) && ((_b = options.conditions) === null || _b === void 0 ? void 0 : _b.ifMatch) !== ETagNone) || + (((_c = options.conditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch) && ((_d = options.conditions) === null || _d === void 0 ? void 0 : _d.ifNoneMatch) !== ETagNone) || + ((_e = options.conditions) === null || _e === void 0 ? void 0 : _e.tagConditions))) { + throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable."); + } + try { + const response = await this._containerOrBlobOperation.changeLease(this._leaseId, proposedLeaseId, Object.assign({ abortSignal: options.abortSignal, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_f = options.conditions) === null || _f === void 0 ? void 0 : _f.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions))); + this._leaseId = proposedLeaseId; + return response; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * To free the lease if it is no longer needed so that another client may * immediately acquire a lease against the container or the blob. @@ -32563,41 +31201,29 @@ var BlobLeaseClient = /** @class */ (function () { * @param options - option to configure lease management operations. * @returns Response data for release lease operation. */ - BlobLeaseClient.prototype.releaseLease = function (options) { + async releaseLease(options = {}) { var _a, _b, _c, _d, _e, _f; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _g, span, updatedOptions, e_3; - return tslib.__generator(this, function (_h) { - switch (_h.label) { - case 0: - _g = createSpan("BlobLeaseClient-releaseLease", options), span = _g.span, updatedOptions = _g.updatedOptions; - if (this._isContainer && - ((((_a = options.conditions) === null || _a === void 0 ? void 0 : _a.ifMatch) && ((_b = options.conditions) === null || _b === void 0 ? void 0 : _b.ifMatch) !== ETagNone) || - (((_c = options.conditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch) && ((_d = options.conditions) === null || _d === void 0 ? void 0 : _d.ifNoneMatch) !== ETagNone) || - ((_e = options.conditions) === null || _e === void 0 ? void 0 : _e.tagConditions))) { - throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable."); - } - _h.label = 1; - case 1: - _h.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this._containerOrBlobOperation.releaseLease(this._leaseId, tslib.__assign({ abortSignal: options.abortSignal, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_f = options.conditions) === null || _f === void 0 ? void 0 : _f.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _h.sent()]; - case 3: - e_3 = _h.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_3.message - }); - throw e_3; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobLeaseClient-releaseLease", options); + if (this._isContainer && + ((((_a = options.conditions) === null || _a === void 0 ? void 0 : _a.ifMatch) && ((_b = options.conditions) === null || _b === void 0 ? void 0 : _b.ifMatch) !== ETagNone) || + (((_c = options.conditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch) && ((_d = options.conditions) === null || _d === void 0 ? void 0 : _d.ifNoneMatch) !== ETagNone) || + ((_e = options.conditions) === null || _e === void 0 ? void 0 : _e.tagConditions))) { + throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable."); + } + try { + return await this._containerOrBlobOperation.releaseLease(this._leaseId, Object.assign({ abortSignal: options.abortSignal, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_f = options.conditions) === null || _f === void 0 ? void 0 : _f.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * To renew the lease. * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-container @@ -32607,41 +31233,29 @@ var BlobLeaseClient = /** @class */ (function () { * @param options - Optional option to configure lease management operations. * @returns Response data for renew lease operation. */ - BlobLeaseClient.prototype.renewLease = function (options) { + async renewLease(options = {}) { var _a, _b, _c, _d, _e, _f; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _g, span, updatedOptions, e_4; - return tslib.__generator(this, function (_h) { - switch (_h.label) { - case 0: - _g = createSpan("BlobLeaseClient-renewLease", options), span = _g.span, updatedOptions = _g.updatedOptions; - if (this._isContainer && - ((((_a = options.conditions) === null || _a === void 0 ? void 0 : _a.ifMatch) && ((_b = options.conditions) === null || _b === void 0 ? void 0 : _b.ifMatch) !== ETagNone) || - (((_c = options.conditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch) && ((_d = options.conditions) === null || _d === void 0 ? void 0 : _d.ifNoneMatch) !== ETagNone) || - ((_e = options.conditions) === null || _e === void 0 ? void 0 : _e.tagConditions))) { - throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable."); - } - _h.label = 1; - case 1: - _h.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this._containerOrBlobOperation.renewLease(this._leaseId, tslib.__assign({ abortSignal: options.abortSignal, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_f = options.conditions) === null || _f === void 0 ? void 0 : _f.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _h.sent()]; - case 3: - e_4 = _h.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_4.message - }); - throw e_4; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobLeaseClient-renewLease", options); + if (this._isContainer && + ((((_a = options.conditions) === null || _a === void 0 ? void 0 : _a.ifMatch) && ((_b = options.conditions) === null || _b === void 0 ? void 0 : _b.ifMatch) !== ETagNone) || + (((_c = options.conditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch) && ((_d = options.conditions) === null || _d === void 0 ? void 0 : _d.ifNoneMatch) !== ETagNone) || + ((_e = options.conditions) === null || _e === void 0 ? void 0 : _e.tagConditions))) { + throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable."); + } + try { + return await this._containerOrBlobOperation.renewLease(this._leaseId, Object.assign({ abortSignal: options.abortSignal, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_f = options.conditions) === null || _f === void 0 ? void 0 : _f.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * To end the lease but ensure that another client cannot acquire a new lease * until the current lease period has expired. @@ -32653,44 +31267,31 @@ var BlobLeaseClient = /** @class */ (function () { * @param options - Optional options to configure lease management operations. * @returns Response data for break lease operation. */ - BlobLeaseClient.prototype.breakLease = function (breakPeriod, options) { + async breakLease(breakPeriod, options = {}) { var _a, _b, _c, _d, _e, _f; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _g, span, updatedOptions, operationOptions, e_5; - return tslib.__generator(this, function (_h) { - switch (_h.label) { - case 0: - _g = createSpan("BlobLeaseClient-breakLease", options), span = _g.span, updatedOptions = _g.updatedOptions; - if (this._isContainer && - ((((_a = options.conditions) === null || _a === void 0 ? void 0 : _a.ifMatch) && ((_b = options.conditions) === null || _b === void 0 ? void 0 : _b.ifMatch) !== ETagNone) || - (((_c = options.conditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch) && ((_d = options.conditions) === null || _d === void 0 ? void 0 : _d.ifNoneMatch) !== ETagNone) || - ((_e = options.conditions) === null || _e === void 0 ? void 0 : _e.tagConditions))) { - throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable."); - } - _h.label = 1; - case 1: - _h.trys.push([1, 3, 4, 5]); - operationOptions = tslib.__assign({ abortSignal: options.abortSignal, breakPeriod: breakPeriod, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_f = options.conditions) === null || _f === void 0 ? void 0 : _f.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)); - return [4 /*yield*/, this._containerOrBlobOperation.breakLease(operationOptions)]; - case 2: return [2 /*return*/, _h.sent()]; - case 3: - e_5 = _h.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_5.message - }); - throw e_5; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobLeaseClient-breakLease", options); + if (this._isContainer && + ((((_a = options.conditions) === null || _a === void 0 ? void 0 : _a.ifMatch) && ((_b = options.conditions) === null || _b === void 0 ? void 0 : _b.ifMatch) !== ETagNone) || + (((_c = options.conditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch) && ((_d = options.conditions) === null || _d === void 0 ? void 0 : _d.ifNoneMatch) !== ETagNone) || + ((_e = options.conditions) === null || _e === void 0 ? void 0 : _e.tagConditions))) { + throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable."); + } + try { + const operationOptions = Object.assign({ abortSignal: options.abortSignal, breakPeriod, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_f = options.conditions) === null || _f === void 0 ? void 0 : _f.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)); + return await this._containerOrBlobOperation.breakLease(operationOptions); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; - return BlobLeaseClient; -}()); + throw e; + } + finally { + span.end(); + } + } +} // Copyright (c) Microsoft Corporation. /** @@ -32698,8 +31299,7 @@ var BlobLeaseClient = /** @class */ (function () { * * A Node.js ReadableStream will internally retry when internal ReadableStream unexpected ends. */ -var RetriableReadableStream = /** @class */ (function (_super) { - tslib.__extends(RetriableReadableStream, _super); +class RetriableReadableStream extends stream.Readable { /** * Creates an instance of RetriableReadableStream. * @@ -32710,32 +31310,31 @@ var RetriableReadableStream = /** @class */ (function (_super) { * @param count - How much data in original data source to read * @param options - */ - function RetriableReadableStream(source, getter, offset, count, options) { - if (options === void 0) { options = {}; } - var _this = _super.call(this, { highWaterMark: options.highWaterMark }) || this; - _this.retries = 0; - _this.sourceDataHandler = function (data) { - if (_this.options.doInjectErrorOnce) { - _this.options.doInjectErrorOnce = undefined; - _this.source.pause(); - _this.source.removeAllListeners("data"); - _this.source.emit("end"); + constructor(source, getter, offset, count, options = {}) { + super({ highWaterMark: options.highWaterMark }); + this.retries = 0; + this.sourceDataHandler = (data) => { + if (this.options.doInjectErrorOnce) { + this.options.doInjectErrorOnce = undefined; + this.source.pause(); + this.source.removeAllListeners("data"); + this.source.emit("end"); return; } // console.log( // `Offset: ${this.offset}, Received ${data.length} from internal stream` // ); - _this.offset += data.length; - if (_this.onProgress) { - _this.onProgress({ loadedBytes: _this.offset - _this.start }); + this.offset += data.length; + if (this.onProgress) { + this.onProgress({ loadedBytes: this.offset - this.start }); } - if (!_this.push(data)) { - _this.source.pause(); + if (!this.push(data)) { + this.source.pause(); } }; - _this.sourceErrorOrEndHandler = function (err) { + this.sourceErrorOrEndHandler = (err) => { if (err && err.name === "AbortError") { - _this.destroy(err); + this.destroy(err); return; } // console.log( @@ -32743,69 +31342,66 @@ var RetriableReadableStream = /** @class */ (function (_super) { // this.offset // }, dest end : ${this.end}` // ); - _this.removeSourceEventHandlers(); - if (_this.offset - 1 === _this.end) { - _this.push(null); + this.removeSourceEventHandlers(); + if (this.offset - 1 === this.end) { + this.push(null); } - else if (_this.offset <= _this.end) { + else if (this.offset <= this.end) { // console.log( // `retries: ${this.retries}, max retries: ${this.maxRetries}` // ); - if (_this.retries < _this.maxRetryRequests) { - _this.retries += 1; - _this.getter(_this.offset) - .then(function (newSource) { - _this.source = newSource; - _this.setSourceEventHandlers(); + if (this.retries < this.maxRetryRequests) { + this.retries += 1; + this.getter(this.offset) + .then((newSource) => { + this.source = newSource; + this.setSourceEventHandlers(); + return; }) - .catch(function (error) { - _this.destroy(error); + .catch((error) => { + this.destroy(error); }); } else { - _this.destroy(new Error( - // tslint:disable-next-line:max-line-length - "Data corruption failure: received less data than required and reached maxRetires limitation. Received data offset: " + (_this - .offset - 1) + ", data needed offset: " + _this.end + ", retries: " + _this.retries + ", max retries: " + _this.maxRetryRequests)); + this.destroy(new Error(`Data corruption failure: received less data than required and reached maxRetires limitation. Received data offset: ${this + .offset - 1}, data needed offset: ${this.end}, retries: ${this.retries}, max retries: ${this.maxRetryRequests}`)); } } else { - _this.destroy(new Error("Data corruption failure: Received more data than original request, data needed offset is " + _this.end + ", received offset: " + (_this.offset - 1))); + this.destroy(new Error(`Data corruption failure: Received more data than original request, data needed offset is ${this.end}, received offset: ${this.offset - 1}`)); } }; - _this.getter = getter; - _this.source = source; - _this.start = offset; - _this.offset = offset; - _this.end = offset + count - 1; - _this.maxRetryRequests = + this.getter = getter; + this.source = source; + this.start = offset; + this.offset = offset; + this.end = offset + count - 1; + this.maxRetryRequests = options.maxRetryRequests && options.maxRetryRequests >= 0 ? options.maxRetryRequests : 0; - _this.onProgress = options.onProgress; - _this.options = options; - _this.setSourceEventHandlers(); - return _this; + this.onProgress = options.onProgress; + this.options = options; + this.setSourceEventHandlers(); } - RetriableReadableStream.prototype._read = function () { + _read() { this.source.resume(); - }; - RetriableReadableStream.prototype.setSourceEventHandlers = function () { + } + setSourceEventHandlers() { this.source.on("data", this.sourceDataHandler); this.source.on("end", this.sourceErrorOrEndHandler); this.source.on("error", this.sourceErrorOrEndHandler); - }; - RetriableReadableStream.prototype.removeSourceEventHandlers = function () { + } + removeSourceEventHandlers() { this.source.removeListener("data", this.sourceDataHandler); this.source.removeListener("end", this.sourceErrorOrEndHandler); this.source.removeListener("error", this.sourceErrorOrEndHandler); - }; - RetriableReadableStream.prototype._destroy = function (error, callback) { + } + _destroy(error, callback) { // remove listener from source and release source this.removeSourceEventHandlers(); this.source.destroy(); callback(error === null ? undefined : error); - }; - return RetriableReadableStream; -}(stream.Readable)); + } +} // Copyright (c) Microsoft Corporation. /** @@ -32818,7 +31414,7 @@ var RetriableReadableStream = /** @class */ (function (_super) { * The {@link readableStreamBody} stream will retry underlayer, you can just use it as a normal Node.js * Readable stream. */ -var BlobDownloadResponse = /** @class */ (function () { +class BlobDownloadResponse { /** * Creates an instance of BlobDownloadResponse. * @@ -32828,593 +31424,443 @@ var BlobDownloadResponse = /** @class */ (function () { * @param count - * @param options - */ - function BlobDownloadResponse(originalResponse, getter, offset, count, options) { - if (options === void 0) { options = {}; } + constructor(originalResponse, getter, offset, count, options = {}) { this.originalResponse = originalResponse; this.blobDownloadStream = new RetriableReadableStream(this.originalResponse.readableStreamBody, getter, offset, count, options); } - Object.defineProperty(BlobDownloadResponse.prototype, "acceptRanges", { - /** - * Indicates that the service supports - * requests for partial file content. - * - * @readonly - */ - get: function () { - return this.originalResponse.acceptRanges; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "cacheControl", { - /** - * Returns if it was previously specified - * for the file. - * - * @readonly - */ - get: function () { - return this.originalResponse.cacheControl; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "contentDisposition", { - /** - * Returns the value that was specified - * for the 'x-ms-content-disposition' header and specifies how to process the - * response. - * - * @readonly - */ - get: function () { - return this.originalResponse.contentDisposition; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "contentEncoding", { - /** - * Returns the value that was specified - * for the Content-Encoding request header. - * - * @readonly - */ - get: function () { - return this.originalResponse.contentEncoding; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "contentLanguage", { - /** - * Returns the value that was specified - * for the Content-Language request header. - * - * @readonly - */ - get: function () { - return this.originalResponse.contentLanguage; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "blobSequenceNumber", { - /** - * The current sequence number for a - * page blob. This header is not returned for block blobs or append blobs. - * - * @readonly - */ - get: function () { - return this.originalResponse.blobSequenceNumber; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "blobType", { - /** - * The blob's type. Possible values include: - * 'BlockBlob', 'PageBlob', 'AppendBlob'. - * - * @readonly - */ - get: function () { - return this.originalResponse.blobType; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "contentLength", { - /** - * The number of bytes present in the - * response body. - * - * @readonly - */ - get: function () { - return this.originalResponse.contentLength; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "contentMD5", { - /** - * If the file has an MD5 hash and the - * request is to read the full file, this response header is returned so that - * the client can check for message content integrity. If the request is to - * read a specified range and the 'x-ms-range-get-content-md5' is set to - * true, then the request returns an MD5 hash for the range, as long as the - * range size is less than or equal to 4 MB. If neither of these sets of - * conditions is true, then no value is returned for the 'Content-MD5' - * header. - * - * @readonly - */ - get: function () { - return this.originalResponse.contentMD5; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "contentRange", { - /** - * Indicates the range of bytes returned if - * the client requested a subset of the file by setting the Range request - * header. - * - * @readonly - */ - get: function () { - return this.originalResponse.contentRange; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "contentType", { - /** - * The content type specified for the file. - * The default content type is 'application/octet-stream' - * - * @readonly - */ - get: function () { - return this.originalResponse.contentType; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "copyCompletedOn", { - /** - * Conclusion time of the last attempted - * Copy File operation where this file was the destination file. This value - * can specify the time of a completed, aborted, or failed copy attempt. - * - * @readonly - */ - get: function () { - return this.originalResponse.copyCompletedOn; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "copyId", { - /** - * String identifier for the last attempted Copy - * File operation where this file was the destination file. - * - * @readonly - */ - get: function () { - return this.originalResponse.copyId; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "copyProgress", { - /** - * Contains the number of bytes copied and - * the total bytes in the source in the last attempted Copy File operation - * where this file was the destination file. Can show between 0 and - * Content-Length bytes copied. - * - * @readonly - */ - get: function () { - return this.originalResponse.copyProgress; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "copySource", { - /** - * URL up to 2KB in length that specifies the - * source file used in the last attempted Copy File operation where this file - * was the destination file. - * - * @readonly - */ - get: function () { - return this.originalResponse.copySource; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "copyStatus", { - /** - * State of the copy operation - * identified by 'x-ms-copy-id'. Possible values include: 'pending', - * 'success', 'aborted', 'failed' - * - * @readonly - */ - get: function () { - return this.originalResponse.copyStatus; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "copyStatusDescription", { - /** - * Only appears when - * x-ms-copy-status is failed or pending. Describes cause of fatal or - * non-fatal copy operation failure. - * - * @readonly - */ - get: function () { - return this.originalResponse.copyStatusDescription; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "leaseDuration", { - /** - * When a blob is leased, - * specifies whether the lease is of infinite or fixed duration. Possible - * values include: 'infinite', 'fixed'. - * - * @readonly - */ - get: function () { - return this.originalResponse.leaseDuration; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "leaseState", { - /** - * Lease state of the blob. Possible - * values include: 'available', 'leased', 'expired', 'breaking', 'broken'. - * - * @readonly - */ - get: function () { - return this.originalResponse.leaseState; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "leaseStatus", { - /** - * The current lease status of the - * blob. Possible values include: 'locked', 'unlocked'. - * - * @readonly - */ - get: function () { - return this.originalResponse.leaseStatus; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "date", { - /** - * A UTC date/time value generated by the service that - * indicates the time at which the response was initiated. - * - * @readonly - */ - get: function () { - return this.originalResponse.date; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "blobCommittedBlockCount", { - /** - * The number of committed blocks - * present in the blob. This header is returned only for append blobs. - * - * @readonly - */ - get: function () { - return this.originalResponse.blobCommittedBlockCount; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "etag", { - /** - * The ETag contains a value that you can use to - * perform operations conditionally, in quotes. - * - * @readonly - */ - get: function () { - return this.originalResponse.etag; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "tagCount", { - /** - * The number of tags associated with the blob - * - * @readonly - */ - get: function () { - return this.originalResponse.tagCount; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "errorCode", { - /** - * The error code. - * - * @readonly - */ - get: function () { - return this.originalResponse.errorCode; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "isServerEncrypted", { - /** - * The value of this header is set to - * true if the file data and application metadata are completely encrypted - * using the specified algorithm. Otherwise, the value is set to false (when - * the file is unencrypted, or if only parts of the file/application metadata - * are encrypted). - * - * @readonly - */ - get: function () { - return this.originalResponse.isServerEncrypted; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "blobContentMD5", { - /** - * If the blob has a MD5 hash, and if - * request contains range header (Range or x-ms-range), this response header - * is returned with the value of the whole blob's MD5 value. This value may - * or may not be equal to the value returned in Content-MD5 header, with the - * latter calculated from the requested range. - * - * @readonly - */ - get: function () { - return this.originalResponse.blobContentMD5; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "lastModified", { - /** - * Returns the date and time the file was last - * modified. Any operation that modifies the file or its properties updates - * the last modified time. - * - * @readonly - */ - get: function () { - return this.originalResponse.lastModified; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "lastAccessed", { - /** - * Returns the UTC date and time generated by the service that indicates the time at which the blob was - * last read or written to. - * - * @readonly - */ - get: function () { - return this.originalResponse.lastAccessed; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "metadata", { - /** - * A name-value pair - * to associate with a file storage object. - * - * @readonly - */ - get: function () { - return this.originalResponse.metadata; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "requestId", { - /** - * This header uniquely identifies the request - * that was made and can be used for troubleshooting the request. - * - * @readonly - */ - get: function () { - return this.originalResponse.requestId; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "clientRequestId", { - /** - * If a client request id header is sent in the request, this header will be present in the - * response with the same value. - * - * @readonly - */ - get: function () { - return this.originalResponse.clientRequestId; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "version", { - /** - * Indicates the version of the Blob service used - * to execute the request. - * - * @readonly - */ - get: function () { - return this.originalResponse.version; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "versionId", { - /** - * Indicates the versionId of the downloaded blob version. - * - * @readonly - */ - get: function () { - return this.originalResponse.versionId; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "isCurrentVersion", { - /** - * Indicates whether version of this blob is a current version. - * - * @readonly - */ - get: function () { - return this.originalResponse.isCurrentVersion; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "encryptionKeySha256", { - /** - * The SHA-256 hash of the encryption key used to encrypt the blob. This value is only returned - * when the blob was encrypted with a customer-provided key. - * - * @readonly - */ - get: function () { - return this.originalResponse.encryptionKeySha256; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "contentCrc64", { - /** - * If the request is to read a specified range and the x-ms-range-get-content-crc64 is set to - * true, then the request returns a crc64 for the range, as long as the range size is less than - * or equal to 4 MB. If both x-ms-range-get-content-crc64 & x-ms-range-get-content-md5 is - * specified in the same request, it will fail with 400(Bad Request) - */ - get: function () { - return this.originalResponse.contentCrc64; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "objectReplicationDestinationPolicyId", { - /** - * Object Replication Policy Id of the destination blob. - * - * @readonly - */ - get: function () { - return this.originalResponse.objectReplicationDestinationPolicyId; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "objectReplicationSourceProperties", { - /** - * Parsed Object Replication Policy Id, Rule Id(s) and status of the source blob. - * - * @readonly - */ - get: function () { - return this.originalResponse.objectReplicationSourceProperties; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "isSealed", { - /** - * If this blob has been sealed. - * - * @readonly - */ - get: function () { - return this.originalResponse.isSealed; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "contentAsBlob", { - /** - * The response body as a browser Blob. - * Always undefined in node.js. - * - * @readonly - */ - get: function () { - return this.originalResponse.blobBody; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "readableStreamBody", { - /** - * The response body as a node.js Readable stream. - * Always undefined in the browser. - * - * It will automatically retry when internal read stream unexpected ends. - * - * @readonly - */ - get: function () { - return coreHttp.isNode ? this.blobDownloadStream : undefined; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "_response", { - /** - * The HTTP response. - */ - get: function () { - return this.originalResponse._response; - }, - enumerable: false, - configurable: true - }); - return BlobDownloadResponse; -}()); + /** + * Indicates that the service supports + * requests for partial file content. + * + * @readonly + */ + get acceptRanges() { + return this.originalResponse.acceptRanges; + } + /** + * Returns if it was previously specified + * for the file. + * + * @readonly + */ + get cacheControl() { + return this.originalResponse.cacheControl; + } + /** + * Returns the value that was specified + * for the 'x-ms-content-disposition' header and specifies how to process the + * response. + * + * @readonly + */ + get contentDisposition() { + return this.originalResponse.contentDisposition; + } + /** + * Returns the value that was specified + * for the Content-Encoding request header. + * + * @readonly + */ + get contentEncoding() { + return this.originalResponse.contentEncoding; + } + /** + * Returns the value that was specified + * for the Content-Language request header. + * + * @readonly + */ + get contentLanguage() { + return this.originalResponse.contentLanguage; + } + /** + * The current sequence number for a + * page blob. This header is not returned for block blobs or append blobs. + * + * @readonly + */ + get blobSequenceNumber() { + return this.originalResponse.blobSequenceNumber; + } + /** + * The blob's type. Possible values include: + * 'BlockBlob', 'PageBlob', 'AppendBlob'. + * + * @readonly + */ + get blobType() { + return this.originalResponse.blobType; + } + /** + * The number of bytes present in the + * response body. + * + * @readonly + */ + get contentLength() { + return this.originalResponse.contentLength; + } + /** + * If the file has an MD5 hash and the + * request is to read the full file, this response header is returned so that + * the client can check for message content integrity. If the request is to + * read a specified range and the 'x-ms-range-get-content-md5' is set to + * true, then the request returns an MD5 hash for the range, as long as the + * range size is less than or equal to 4 MB. If neither of these sets of + * conditions is true, then no value is returned for the 'Content-MD5' + * header. + * + * @readonly + */ + get contentMD5() { + return this.originalResponse.contentMD5; + } + /** + * Indicates the range of bytes returned if + * the client requested a subset of the file by setting the Range request + * header. + * + * @readonly + */ + get contentRange() { + return this.originalResponse.contentRange; + } + /** + * The content type specified for the file. + * The default content type is 'application/octet-stream' + * + * @readonly + */ + get contentType() { + return this.originalResponse.contentType; + } + /** + * Conclusion time of the last attempted + * Copy File operation where this file was the destination file. This value + * can specify the time of a completed, aborted, or failed copy attempt. + * + * @readonly + */ + get copyCompletedOn() { + return this.originalResponse.copyCompletedOn; + } + /** + * String identifier for the last attempted Copy + * File operation where this file was the destination file. + * + * @readonly + */ + get copyId() { + return this.originalResponse.copyId; + } + /** + * Contains the number of bytes copied and + * the total bytes in the source in the last attempted Copy File operation + * where this file was the destination file. Can show between 0 and + * Content-Length bytes copied. + * + * @readonly + */ + get copyProgress() { + return this.originalResponse.copyProgress; + } + /** + * URL up to 2KB in length that specifies the + * source file used in the last attempted Copy File operation where this file + * was the destination file. + * + * @readonly + */ + get copySource() { + return this.originalResponse.copySource; + } + /** + * State of the copy operation + * identified by 'x-ms-copy-id'. Possible values include: 'pending', + * 'success', 'aborted', 'failed' + * + * @readonly + */ + get copyStatus() { + return this.originalResponse.copyStatus; + } + /** + * Only appears when + * x-ms-copy-status is failed or pending. Describes cause of fatal or + * non-fatal copy operation failure. + * + * @readonly + */ + get copyStatusDescription() { + return this.originalResponse.copyStatusDescription; + } + /** + * When a blob is leased, + * specifies whether the lease is of infinite or fixed duration. Possible + * values include: 'infinite', 'fixed'. + * + * @readonly + */ + get leaseDuration() { + return this.originalResponse.leaseDuration; + } + /** + * Lease state of the blob. Possible + * values include: 'available', 'leased', 'expired', 'breaking', 'broken'. + * + * @readonly + */ + get leaseState() { + return this.originalResponse.leaseState; + } + /** + * The current lease status of the + * blob. Possible values include: 'locked', 'unlocked'. + * + * @readonly + */ + get leaseStatus() { + return this.originalResponse.leaseStatus; + } + /** + * A UTC date/time value generated by the service that + * indicates the time at which the response was initiated. + * + * @readonly + */ + get date() { + return this.originalResponse.date; + } + /** + * The number of committed blocks + * present in the blob. This header is returned only for append blobs. + * + * @readonly + */ + get blobCommittedBlockCount() { + return this.originalResponse.blobCommittedBlockCount; + } + /** + * The ETag contains a value that you can use to + * perform operations conditionally, in quotes. + * + * @readonly + */ + get etag() { + return this.originalResponse.etag; + } + /** + * The number of tags associated with the blob + * + * @readonly + */ + get tagCount() { + return this.originalResponse.tagCount; + } + /** + * The error code. + * + * @readonly + */ + get errorCode() { + return this.originalResponse.errorCode; + } + /** + * The value of this header is set to + * true if the file data and application metadata are completely encrypted + * using the specified algorithm. Otherwise, the value is set to false (when + * the file is unencrypted, or if only parts of the file/application metadata + * are encrypted). + * + * @readonly + */ + get isServerEncrypted() { + return this.originalResponse.isServerEncrypted; + } + /** + * If the blob has a MD5 hash, and if + * request contains range header (Range or x-ms-range), this response header + * is returned with the value of the whole blob's MD5 value. This value may + * or may not be equal to the value returned in Content-MD5 header, with the + * latter calculated from the requested range. + * + * @readonly + */ + get blobContentMD5() { + return this.originalResponse.blobContentMD5; + } + /** + * Returns the date and time the file was last + * modified. Any operation that modifies the file or its properties updates + * the last modified time. + * + * @readonly + */ + get lastModified() { + return this.originalResponse.lastModified; + } + /** + * Returns the UTC date and time generated by the service that indicates the time at which the blob was + * last read or written to. + * + * @readonly + */ + get lastAccessed() { + return this.originalResponse.lastAccessed; + } + /** + * A name-value pair + * to associate with a file storage object. + * + * @readonly + */ + get metadata() { + return this.originalResponse.metadata; + } + /** + * This header uniquely identifies the request + * that was made and can be used for troubleshooting the request. + * + * @readonly + */ + get requestId() { + return this.originalResponse.requestId; + } + /** + * If a client request id header is sent in the request, this header will be present in the + * response with the same value. + * + * @readonly + */ + get clientRequestId() { + return this.originalResponse.clientRequestId; + } + /** + * Indicates the version of the Blob service used + * to execute the request. + * + * @readonly + */ + get version() { + return this.originalResponse.version; + } + /** + * Indicates the versionId of the downloaded blob version. + * + * @readonly + */ + get versionId() { + return this.originalResponse.versionId; + } + /** + * Indicates whether version of this blob is a current version. + * + * @readonly + */ + get isCurrentVersion() { + return this.originalResponse.isCurrentVersion; + } + /** + * The SHA-256 hash of the encryption key used to encrypt the blob. This value is only returned + * when the blob was encrypted with a customer-provided key. + * + * @readonly + */ + get encryptionKeySha256() { + return this.originalResponse.encryptionKeySha256; + } + /** + * If the request is to read a specified range and the x-ms-range-get-content-crc64 is set to + * true, then the request returns a crc64 for the range, as long as the range size is less than + * or equal to 4 MB. If both x-ms-range-get-content-crc64 & x-ms-range-get-content-md5 is + * specified in the same request, it will fail with 400(Bad Request) + */ + get contentCrc64() { + return this.originalResponse.contentCrc64; + } + /** + * Object Replication Policy Id of the destination blob. + * + * @readonly + */ + get objectReplicationDestinationPolicyId() { + return this.originalResponse.objectReplicationDestinationPolicyId; + } + /** + * Parsed Object Replication Policy Id, Rule Id(s) and status of the source blob. + * + * @readonly + */ + get objectReplicationSourceProperties() { + return this.originalResponse.objectReplicationSourceProperties; + } + /** + * If this blob has been sealed. + * + * @readonly + */ + get isSealed() { + return this.originalResponse.isSealed; + } + /** + * UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire. + * + * @readonly + */ + get immutabilityPolicyExpiresOn() { + return this.originalResponse.immutabilityPolicyExpiresOn; + } + /** + * Indicates immutability policy mode. + * + * @readonly + */ + get immutabilityPolicyMode() { + return this.originalResponse.immutabilityPolicyMode; + } + /** + * Indicates if a legal hold is present on the blob. + * + * @readonly + */ + get legalHold() { + return this.originalResponse.legalHold; + } + /** + * The response body as a browser Blob. + * Always undefined in node.js. + * + * @readonly + */ + get contentAsBlob() { + return this.originalResponse.blobBody; + } + /** + * The response body as a node.js Readable stream. + * Always undefined in the browser. + * + * It will automatically retry when internal read stream unexpected ends. + * + * @readonly + */ + get readableStreamBody() { + return coreHttp.isNode ? this.blobDownloadStream : undefined; + } + /** + * The HTTP response. + */ + get _response() { + return this.originalResponse._response; + } +} // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -var AVRO_SYNC_MARKER_SIZE = 16; -var AVRO_INIT_BYTES = new Uint8Array([79, 98, 106, 1]); -var AVRO_CODEC_KEY = "avro.codec"; -var AVRO_SCHEMA_KEY = "avro.schema"; +const AVRO_SYNC_MARKER_SIZE = 16; +const AVRO_INIT_BYTES = new Uint8Array([79, 98, 106, 1]); +const AVRO_CODEC_KEY = "avro.codec"; +const AVRO_SCHEMA_KEY = "avro.schema"; // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. @@ -33425,7 +31871,7 @@ function arraysEqual(a, b) { return false; if (a.length != b.length) return false; - for (var i = 0; i < a.length; ++i) { + for (let i = 0; i < a.length; ++i) { if (a[i] !== b[i]) return false; } @@ -33433,9 +31879,8 @@ function arraysEqual(a, b) { } // Copyright (c) Microsoft Corporation. -var AvroParser = /** @class */ (function () { - function AvroParser() { - } +// Licensed under the MIT license. +class AvroParser { /** * Reads a fixed number of bytes from the stream. * @@ -33443,294 +31888,135 @@ var AvroParser = /** @class */ (function () { * @param length - * @param options - */ - AvroParser.readFixedBytes = function (stream, length, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var bytes; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, stream.read(length, { abortSignal: options.abortSignal })]; - case 1: - bytes = _a.sent(); - if (bytes.length != length) { - throw new Error("Hit stream end."); - } - return [2 /*return*/, bytes]; - } - }); - }); - }; + static async readFixedBytes(stream, length, options = {}) { + const bytes = await stream.read(length, { abortSignal: options.abortSignal }); + if (bytes.length != length) { + throw new Error("Hit stream end."); + } + return bytes; + } /** * Reads a single byte from the stream. * * @param stream - * @param options - */ - AvroParser.readByte = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var buf; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, AvroParser.readFixedBytes(stream, 1, options)]; - case 1: - buf = _a.sent(); - return [2 /*return*/, buf[0]]; - } - }); - }); - }; + static async readByte(stream, options = {}) { + const buf = await AvroParser.readFixedBytes(stream, 1, options); + return buf[0]; + } // int and long are stored in variable-length zig-zag coding. // variable-length: https://lucene.apache.org/core/3_5_0/fileformats.html#VInt // zig-zag: https://developers.google.com/protocol-buffers/docs/encoding?csw=1#types - AvroParser.readZigZagLong = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var zigZagEncoded, significanceInBit, byte, haveMoreByte, significanceInFloat, res; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - zigZagEncoded = 0; - significanceInBit = 0; - _a.label = 1; - case 1: return [4 /*yield*/, AvroParser.readByte(stream, options)]; - case 2: - byte = _a.sent(); - haveMoreByte = byte & 0x80; - zigZagEncoded |= (byte & 0x7f) << significanceInBit; - significanceInBit += 7; - _a.label = 3; - case 3: - if (haveMoreByte && significanceInBit < 28) return [3 /*break*/, 1]; - _a.label = 4; - case 4: - if (!haveMoreByte) return [3 /*break*/, 9]; - // Switch to float arithmetic - zigZagEncoded = zigZagEncoded; - significanceInFloat = 268435456; // 2 ** 28. - _a.label = 5; - case 5: return [4 /*yield*/, AvroParser.readByte(stream, options)]; - case 6: - byte = _a.sent(); - zigZagEncoded += (byte & 0x7f) * significanceInFloat; - significanceInFloat *= 128; // 2 ** 7 - _a.label = 7; - case 7: - if (byte & 0x80) return [3 /*break*/, 5]; - _a.label = 8; - case 8: - res = (zigZagEncoded % 2 ? -(zigZagEncoded + 1) : zigZagEncoded) / 2; - if (res < Number.MIN_SAFE_INTEGER || res > Number.MAX_SAFE_INTEGER) { - throw new Error("Integer overflow."); - } - return [2 /*return*/, res]; - case 9: return [2 /*return*/, (zigZagEncoded >> 1) ^ -(zigZagEncoded & 1)]; - } - }); - }); - }; - AvroParser.readLong = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - return [2 /*return*/, AvroParser.readZigZagLong(stream, options)]; - }); - }); - }; - AvroParser.readInt = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - return [2 /*return*/, AvroParser.readZigZagLong(stream, options)]; - }); - }); - }; - AvroParser.readNull = function () { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - return [2 /*return*/, null]; - }); - }); - }; - AvroParser.readBoolean = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var b; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, AvroParser.readByte(stream, options)]; - case 1: - b = _a.sent(); - if (b == 1) { - return [2 /*return*/, true]; - } - else if (b == 0) { - return [2 /*return*/, false]; - } - else { - throw new Error("Byte was not a boolean."); - } - } - }); - }); - }; - AvroParser.readFloat = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var u8arr, view; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, AvroParser.readFixedBytes(stream, 4, options)]; - case 1: - u8arr = _a.sent(); - view = new DataView(u8arr.buffer, u8arr.byteOffset, u8arr.byteLength); - return [2 /*return*/, view.getFloat32(0, true)]; // littleEndian = true - } - }); - }); - }; - AvroParser.readDouble = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var u8arr, view; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, AvroParser.readFixedBytes(stream, 8, options)]; - case 1: - u8arr = _a.sent(); - view = new DataView(u8arr.buffer, u8arr.byteOffset, u8arr.byteLength); - return [2 /*return*/, view.getFloat64(0, true)]; // littleEndian = true - } - }); - }); - }; - AvroParser.readBytes = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var size; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, AvroParser.readLong(stream, options)]; - case 1: - size = _a.sent(); - if (size < 0) { - throw new Error("Bytes size was negative."); - } - return [4 /*yield*/, stream.read(size, { abortSignal: options.abortSignal })]; - case 2: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - AvroParser.readString = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var u8arr, utf8decoder; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, AvroParser.readBytes(stream, options)]; - case 1: - u8arr = _a.sent(); - // polyfill TextDecoder to be backward compatible with older - // nodejs that doesn't expose TextDecoder as a global variable - if (typeof TextDecoder === "undefined" && "function" !== "undefined") { - global.TextDecoder = __webpack_require__(669).TextDecoder; - } - utf8decoder = new TextDecoder(); - return [2 /*return*/, utf8decoder.decode(u8arr)]; - } - }); - }); - }; - AvroParser.readMapPair = function (stream, readItemMethod, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var key, value; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, AvroParser.readString(stream, options)]; - case 1: - key = _a.sent(); - return [4 /*yield*/, readItemMethod(stream, options)]; - case 2: - value = _a.sent(); - return [2 /*return*/, { key: key, value: value }]; - } - }); - }); - }; - AvroParser.readMap = function (stream, readItemMethod, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var readPairMethod, pairs, dict, _i, pairs_1, pair; - var _this = this; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - readPairMethod = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(_this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, AvroParser.readMapPair(stream, readItemMethod, options)]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return [4 /*yield*/, AvroParser.readArray(stream, readPairMethod, options)]; - case 1: - pairs = _a.sent(); - dict = {}; - for (_i = 0, pairs_1 = pairs; _i < pairs_1.length; _i++) { - pair = pairs_1[_i]; - dict[pair.key] = pair.value; - } - return [2 /*return*/, dict]; - } - }); - }); - }; - AvroParser.readArray = function (stream, readItemMethod, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var items, count, item; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - items = []; - return [4 /*yield*/, AvroParser.readLong(stream, options)]; - case 1: - count = _a.sent(); - _a.label = 2; - case 2: - if (!(count != 0)) return [3 /*break*/, 8]; - if (!(count < 0)) return [3 /*break*/, 4]; - // Ignore block sizes - return [4 /*yield*/, AvroParser.readLong(stream, options)]; - case 3: - // Ignore block sizes - _a.sent(); - count = -count; - _a.label = 4; - case 4: - if (!count--) return [3 /*break*/, 6]; - return [4 /*yield*/, readItemMethod(stream, options)]; - case 5: - item = _a.sent(); - items.push(item); - return [3 /*break*/, 4]; - case 6: return [4 /*yield*/, AvroParser.readLong(stream, options)]; - case 7: - count = _a.sent(); - return [3 /*break*/, 2]; - case 8: return [2 /*return*/, items]; - } - }); - }); - }; - return AvroParser; -}()); + static async readZigZagLong(stream, options = {}) { + let zigZagEncoded = 0; + let significanceInBit = 0; + let byte, haveMoreByte, significanceInFloat; + do { + byte = await AvroParser.readByte(stream, options); + haveMoreByte = byte & 0x80; + zigZagEncoded |= (byte & 0x7f) << significanceInBit; + significanceInBit += 7; + } while (haveMoreByte && significanceInBit < 28); // bitwise operation only works for 32-bit integers + if (haveMoreByte) { + // Switch to float arithmetic + zigZagEncoded = zigZagEncoded; + significanceInFloat = 268435456; // 2 ** 28. + do { + byte = await AvroParser.readByte(stream, options); + zigZagEncoded += (byte & 0x7f) * significanceInFloat; + significanceInFloat *= 128; // 2 ** 7 + } while (byte & 0x80); + const res = (zigZagEncoded % 2 ? -(zigZagEncoded + 1) : zigZagEncoded) / 2; + if (res < Number.MIN_SAFE_INTEGER || res > Number.MAX_SAFE_INTEGER) { + throw new Error("Integer overflow."); + } + return res; + } + return (zigZagEncoded >> 1) ^ -(zigZagEncoded & 1); + } + static async readLong(stream, options = {}) { + return AvroParser.readZigZagLong(stream, options); + } + static async readInt(stream, options = {}) { + return AvroParser.readZigZagLong(stream, options); + } + static async readNull() { + return null; + } + static async readBoolean(stream, options = {}) { + const b = await AvroParser.readByte(stream, options); + if (b == 1) { + return true; + } + else if (b == 0) { + return false; + } + else { + throw new Error("Byte was not a boolean."); + } + } + static async readFloat(stream, options = {}) { + const u8arr = await AvroParser.readFixedBytes(stream, 4, options); + const view = new DataView(u8arr.buffer, u8arr.byteOffset, u8arr.byteLength); + return view.getFloat32(0, true); // littleEndian = true + } + static async readDouble(stream, options = {}) { + const u8arr = await AvroParser.readFixedBytes(stream, 8, options); + const view = new DataView(u8arr.buffer, u8arr.byteOffset, u8arr.byteLength); + return view.getFloat64(0, true); // littleEndian = true + } + static async readBytes(stream, options = {}) { + const size = await AvroParser.readLong(stream, options); + if (size < 0) { + throw new Error("Bytes size was negative."); + } + return await stream.read(size, { abortSignal: options.abortSignal }); + } + static async readString(stream, options = {}) { + const u8arr = await AvroParser.readBytes(stream, options); + // polyfill TextDecoder to be backward compatible with older + // nodejs that doesn't expose TextDecoder as a global variable + if (typeof TextDecoder === "undefined" && "function" !== "undefined") { + global.TextDecoder = __webpack_require__(669).TextDecoder; + } + // FUTURE: need TextDecoder polyfill for IE + const utf8decoder = new TextDecoder(); + return utf8decoder.decode(u8arr); + } + static async readMapPair(stream, readItemMethod, options = {}) { + const key = await AvroParser.readString(stream, options); + // FUTURE: this won't work with readFixed (currently not supported) which needs a length as the parameter. + const value = await readItemMethod(stream, options); + return { key, value }; + } + static async readMap(stream, readItemMethod, options = {}) { + const readPairMethod = async (stream, options = {}) => { + return await AvroParser.readMapPair(stream, readItemMethod, options); + }; + const pairs = await AvroParser.readArray(stream, readPairMethod, options); + const dict = {}; + for (const pair of pairs) { + dict[pair.key] = pair.value; + } + return dict; + } + static async readArray(stream, readItemMethod, options = {}) { + const items = []; + for (let count = await AvroParser.readLong(stream, options); count != 0; count = await AvroParser.readLong(stream, options)) { + if (count < 0) { + // Ignore block sizes + await AvroParser.readLong(stream, options); + count = -count; + } + while (count--) { + const item = await readItemMethod(stream, options); + items.push(item); + } + } + return items; + } +} var AvroComplex; (function (AvroComplex) { AvroComplex["RECORD"] = "record"; @@ -33740,13 +32026,11 @@ var AvroComplex; AvroComplex["UNION"] = "union"; AvroComplex["FIXED"] = "fixed"; })(AvroComplex || (AvroComplex = {})); -var AvroType = /** @class */ (function () { - function AvroType() { - } +class AvroType { /** * Determines the AvroType from the Avro Schema. */ - AvroType.fromSchema = function (schema) { + static fromSchema(schema) { if (typeof schema === "string") { return AvroType.fromStringSchema(schema); } @@ -33756,8 +32040,8 @@ var AvroType = /** @class */ (function () { else { return AvroType.fromObjectSchema(schema); } - }; - AvroType.fromStringSchema = function (schema) { + } + static fromStringSchema(schema) { switch (schema) { case AvroPrimitive.NULL: case AvroPrimitive.BOOLEAN: @@ -33769,14 +32053,14 @@ var AvroType = /** @class */ (function () { case AvroPrimitive.STRING: return new AvroPrimitiveType(schema); default: - throw new Error("Unexpected Avro type " + schema); + throw new Error(`Unexpected Avro type ${schema}`); } - }; - AvroType.fromArraySchema = function (schema) { + } + static fromArraySchema(schema) { return new AvroUnionType(schema.map(AvroType.fromSchema)); - }; - AvroType.fromObjectSchema = function (schema) { - var type = schema.type; + } + static fromObjectSchema(schema) { + const type = schema.type; // Primitives can be defined as strings or objects try { return AvroType.fromStringSchema(type); @@ -33785,41 +32069,39 @@ var AvroType = /** @class */ (function () { switch (type) { case AvroComplex.RECORD: if (schema.aliases) { - throw new Error("aliases currently is not supported, schema: " + schema); + throw new Error(`aliases currently is not supported, schema: ${schema}`); } if (!schema.name) { - throw new Error("Required attribute 'name' doesn't exist on schema: " + schema); + throw new Error(`Required attribute 'name' doesn't exist on schema: ${schema}`); } - var fields = {}; + const fields = {}; if (!schema.fields) { - throw new Error("Required attribute 'fields' doesn't exist on schema: " + schema); + throw new Error(`Required attribute 'fields' doesn't exist on schema: ${schema}`); } - for (var _i = 0, _a = schema.fields; _i < _a.length; _i++) { - var field = _a[_i]; + for (const field of schema.fields) { fields[field.name] = AvroType.fromSchema(field.type); } return new AvroRecordType(fields, schema.name); case AvroComplex.ENUM: if (schema.aliases) { - throw new Error("aliases currently is not supported, schema: " + schema); + throw new Error(`aliases currently is not supported, schema: ${schema}`); } if (!schema.symbols) { - throw new Error("Required attribute 'symbols' doesn't exist on schema: " + schema); + throw new Error(`Required attribute 'symbols' doesn't exist on schema: ${schema}`); } return new AvroEnumType(schema.symbols); case AvroComplex.MAP: if (!schema.values) { - throw new Error("Required attribute 'values' doesn't exist on schema: " + schema); + throw new Error(`Required attribute 'values' doesn't exist on schema: ${schema}`); } return new AvroMapType(AvroType.fromSchema(schema.values)); case AvroComplex.ARRAY: // Unused today case AvroComplex.FIXED: // Unused today default: - throw new Error("Unexpected Avro type " + type + " in " + schema); + throw new Error(`Unexpected Avro type ${type} in ${schema}`); } - }; - return AvroType; -}()); + } +} var AvroPrimitive; (function (AvroPrimitive) { AvroPrimitive["NULL"] = "null"; @@ -33831,179 +32113,87 @@ var AvroPrimitive; AvroPrimitive["BYTES"] = "bytes"; AvroPrimitive["STRING"] = "string"; })(AvroPrimitive || (AvroPrimitive = {})); -var AvroPrimitiveType = /** @class */ (function (_super) { - tslib.__extends(AvroPrimitiveType, _super); - function AvroPrimitiveType(primitive) { - var _this = _super.call(this) || this; - _this._primitive = primitive; - return _this; +class AvroPrimitiveType extends AvroType { + constructor(primitive) { + super(); + this._primitive = primitive; } - AvroPrimitiveType.prototype.read = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = this._primitive; - switch (_a) { - case AvroPrimitive.NULL: return [3 /*break*/, 1]; - case AvroPrimitive.BOOLEAN: return [3 /*break*/, 3]; - case AvroPrimitive.INT: return [3 /*break*/, 5]; - case AvroPrimitive.LONG: return [3 /*break*/, 7]; - case AvroPrimitive.FLOAT: return [3 /*break*/, 9]; - case AvroPrimitive.DOUBLE: return [3 /*break*/, 11]; - case AvroPrimitive.BYTES: return [3 /*break*/, 13]; - case AvroPrimitive.STRING: return [3 /*break*/, 15]; - } - return [3 /*break*/, 17]; - case 1: return [4 /*yield*/, AvroParser.readNull()]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: return [4 /*yield*/, AvroParser.readBoolean(stream, options)]; - case 4: return [2 /*return*/, _b.sent()]; - case 5: return [4 /*yield*/, AvroParser.readInt(stream, options)]; - case 6: return [2 /*return*/, _b.sent()]; - case 7: return [4 /*yield*/, AvroParser.readLong(stream, options)]; - case 8: return [2 /*return*/, _b.sent()]; - case 9: return [4 /*yield*/, AvroParser.readFloat(stream, options)]; - case 10: return [2 /*return*/, _b.sent()]; - case 11: return [4 /*yield*/, AvroParser.readDouble(stream, options)]; - case 12: return [2 /*return*/, _b.sent()]; - case 13: return [4 /*yield*/, AvroParser.readBytes(stream, options)]; - case 14: return [2 /*return*/, _b.sent()]; - case 15: return [4 /*yield*/, AvroParser.readString(stream, options)]; - case 16: return [2 /*return*/, _b.sent()]; - case 17: throw new Error("Unknown Avro Primitive"); - } - }); - }); - }; - return AvroPrimitiveType; -}(AvroType)); -var AvroEnumType = /** @class */ (function (_super) { - tslib.__extends(AvroEnumType, _super); - function AvroEnumType(symbols) { - var _this = _super.call(this) || this; - _this._symbols = symbols; - return _this; + async read(stream, options = {}) { + switch (this._primitive) { + case AvroPrimitive.NULL: + return await AvroParser.readNull(); + case AvroPrimitive.BOOLEAN: + return await AvroParser.readBoolean(stream, options); + case AvroPrimitive.INT: + return await AvroParser.readInt(stream, options); + case AvroPrimitive.LONG: + return await AvroParser.readLong(stream, options); + case AvroPrimitive.FLOAT: + return await AvroParser.readFloat(stream, options); + case AvroPrimitive.DOUBLE: + return await AvroParser.readDouble(stream, options); + case AvroPrimitive.BYTES: + return await AvroParser.readBytes(stream, options); + case AvroPrimitive.STRING: + return await AvroParser.readString(stream, options); + default: + throw new Error("Unknown Avro Primitive"); + } } - AvroEnumType.prototype.read = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var value; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, AvroParser.readInt(stream, options)]; - case 1: - value = _a.sent(); - return [2 /*return*/, this._symbols[value]]; - } - }); - }); - }; - return AvroEnumType; -}(AvroType)); -var AvroUnionType = /** @class */ (function (_super) { - tslib.__extends(AvroUnionType, _super); - function AvroUnionType(types) { - var _this = _super.call(this) || this; - _this._types = types; - return _this; +} +class AvroEnumType extends AvroType { + constructor(symbols) { + super(); + this._symbols = symbols; } - AvroUnionType.prototype.read = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var typeIndex; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, AvroParser.readInt(stream, options)]; - case 1: - typeIndex = _a.sent(); - return [4 /*yield*/, this._types[typeIndex].read(stream, options)]; - case 2: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return AvroUnionType; -}(AvroType)); -var AvroMapType = /** @class */ (function (_super) { - tslib.__extends(AvroMapType, _super); - function AvroMapType(itemType) { - var _this = _super.call(this) || this; - _this._itemType = itemType; - return _this; + async read(stream, options = {}) { + const value = await AvroParser.readInt(stream, options); + return this._symbols[value]; } - AvroMapType.prototype.read = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var readItemMethod; - var _this = this; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - readItemMethod = function (s, options) { return tslib.__awaiter(_this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, this._itemType.read(s, options)]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); }; - return [4 /*yield*/, AvroParser.readMap(stream, readItemMethod, options)]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return AvroMapType; -}(AvroType)); -var AvroRecordType = /** @class */ (function (_super) { - tslib.__extends(AvroRecordType, _super); - function AvroRecordType(fields, name) { - var _this = _super.call(this) || this; - _this._fields = fields; - _this._name = name; - return _this; +} +class AvroUnionType extends AvroType { + constructor(types) { + super(); + this._types = types; } - AvroRecordType.prototype.read = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var record, _a, _b, _i, key, _c, _d; - return tslib.__generator(this, function (_e) { - switch (_e.label) { - case 0: - record = {}; - record["$schema"] = this._name; - _a = []; - for (_b in this._fields) - _a.push(_b); - _i = 0; - _e.label = 1; - case 1: - if (!(_i < _a.length)) return [3 /*break*/, 4]; - key = _a[_i]; - if (!this._fields.hasOwnProperty(key)) return [3 /*break*/, 3]; - _c = record; - _d = key; - return [4 /*yield*/, this._fields[key].read(stream, options)]; - case 2: - _c[_d] = _e.sent(); - _e.label = 3; - case 3: - _i++; - return [3 /*break*/, 1]; - case 4: return [2 /*return*/, record]; - } - }); - }); - }; - return AvroRecordType; -}(AvroType)); + async read(stream, options = {}) { + const typeIndex = await AvroParser.readInt(stream, options); + return await this._types[typeIndex].read(stream, options); + } +} +class AvroMapType extends AvroType { + constructor(itemType) { + super(); + this._itemType = itemType; + } + async read(stream, options = {}) { + const readItemMethod = async (s, options) => { + return await this._itemType.read(s, options); + }; + return await AvroParser.readMap(stream, readItemMethod, options); + } +} +class AvroRecordType extends AvroType { + constructor(fields, name) { + super(); + this._fields = fields; + this._name = name; + } + async read(stream, options = {}) { + const record = {}; + record["$schema"] = this._name; + for (const key in this._fields) { + if (this._fields.hasOwnProperty(key)) { + record[key] = await this._fields[key].read(stream, options); + } + } + return record; + } +} // Copyright (c) Microsoft Corporation. -var AvroReader = /** @class */ (function () { - function AvroReader(dataStream, headerStream, currentBlockOffset, indexWithinCurrentBlock) { +class AvroReader { + constructor(dataStream, headerStream, currentBlockOffset, indexWithinCurrentBlock) { this._dataStream = dataStream; this._headerStream = headerStream || dataStream; this._initialized = false; @@ -34011,261 +32201,178 @@ var AvroReader = /** @class */ (function () { this._objectIndex = indexWithinCurrentBlock || 0; this._initialBlockOffset = currentBlockOffset || 0; } - Object.defineProperty(AvroReader.prototype, "blockOffset", { - get: function () { - return this._blockOffset; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(AvroReader.prototype, "objectIndex", { - get: function () { - return this._objectIndex; - }, - enumerable: false, - configurable: true - }); - AvroReader.prototype.initialize = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var header, _a, codec, _b, schema, _c, i; - return tslib.__generator(this, function (_d) { - switch (_d.label) { - case 0: return [4 /*yield*/, AvroParser.readFixedBytes(this._headerStream, AVRO_INIT_BYTES.length, { - abortSignal: options.abortSignal - })]; - case 1: - header = _d.sent(); - if (!arraysEqual(header, AVRO_INIT_BYTES)) { - throw new Error("Stream is not an Avro file."); - } - // File metadata is written as if defined by the following map schema: - // { "type": "map", "values": "bytes"} - _a = this; - return [4 /*yield*/, AvroParser.readMap(this._headerStream, AvroParser.readString, { - abortSignal: options.abortSignal - })]; - case 2: - // File metadata is written as if defined by the following map schema: - // { "type": "map", "values": "bytes"} - _a._metadata = _d.sent(); - codec = this._metadata[AVRO_CODEC_KEY]; - if (!(codec == undefined || codec == "null")) { - throw new Error("Codecs are not supported"); - } - // The 16-byte, randomly-generated sync marker for this file. - _b = this; - return [4 /*yield*/, AvroParser.readFixedBytes(this._headerStream, AVRO_SYNC_MARKER_SIZE, { - abortSignal: options.abortSignal - })]; - case 3: - // The 16-byte, randomly-generated sync marker for this file. - _b._syncMarker = _d.sent(); - schema = JSON.parse(this._metadata[AVRO_SCHEMA_KEY]); - this._itemType = AvroType.fromSchema(schema); - if (this._blockOffset == 0) { - this._blockOffset = this._initialBlockOffset + this._dataStream.position; - } - _c = this; - return [4 /*yield*/, AvroParser.readLong(this._dataStream, { - abortSignal: options.abortSignal - })]; - case 4: - _c._itemsRemainingInBlock = _d.sent(); - // skip block length - return [4 /*yield*/, AvroParser.readLong(this._dataStream, { abortSignal: options.abortSignal })]; - case 5: - // skip block length - _d.sent(); - this._initialized = true; - if (!(this._objectIndex && this._objectIndex > 0)) return [3 /*break*/, 9]; - i = 0; - _d.label = 6; - case 6: - if (!(i < this._objectIndex)) return [3 /*break*/, 9]; - return [4 /*yield*/, this._itemType.read(this._dataStream, { abortSignal: options.abortSignal })]; - case 7: - _d.sent(); - this._itemsRemainingInBlock--; - _d.label = 8; - case 8: - i++; - return [3 /*break*/, 6]; - case 9: return [2 /*return*/]; - } - }); + get blockOffset() { + return this._blockOffset; + } + get objectIndex() { + return this._objectIndex; + } + async initialize(options = {}) { + const header = await AvroParser.readFixedBytes(this._headerStream, AVRO_INIT_BYTES.length, { + abortSignal: options.abortSignal }); - }; - AvroReader.prototype.hasNext = function () { + if (!arraysEqual(header, AVRO_INIT_BYTES)) { + throw new Error("Stream is not an Avro file."); + } + // File metadata is written as if defined by the following map schema: + // { "type": "map", "values": "bytes"} + this._metadata = await AvroParser.readMap(this._headerStream, AvroParser.readString, { + abortSignal: options.abortSignal + }); + // Validate codec + const codec = this._metadata[AVRO_CODEC_KEY]; + if (!(codec == undefined || codec == "null")) { + throw new Error("Codecs are not supported"); + } + // The 16-byte, randomly-generated sync marker for this file. + this._syncMarker = await AvroParser.readFixedBytes(this._headerStream, AVRO_SYNC_MARKER_SIZE, { + abortSignal: options.abortSignal + }); + // Parse the schema + const schema = JSON.parse(this._metadata[AVRO_SCHEMA_KEY]); + this._itemType = AvroType.fromSchema(schema); + if (this._blockOffset == 0) { + this._blockOffset = this._initialBlockOffset + this._dataStream.position; + } + this._itemsRemainingInBlock = await AvroParser.readLong(this._dataStream, { + abortSignal: options.abortSignal + }); + // skip block length + await AvroParser.readLong(this._dataStream, { abortSignal: options.abortSignal }); + this._initialized = true; + if (this._objectIndex && this._objectIndex > 0) { + for (let i = 0; i < this._objectIndex; i++) { + await this._itemType.read(this._dataStream, { abortSignal: options.abortSignal }); + this._itemsRemainingInBlock--; + } + } + } + hasNext() { return !this._initialized || this._itemsRemainingInBlock > 0; - }; - AvroReader.prototype.parseObjects = function (options) { - if (options === void 0) { options = {}; } - return tslib.__asyncGenerator(this, arguments, function parseObjects_1() { - var result, marker, _a, err_1; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - if (!!this._initialized) return [3 /*break*/, 2]; - return [4 /*yield*/, tslib.__await(this.initialize(options))]; - case 1: - _b.sent(); - _b.label = 2; - case 2: - if (!this.hasNext()) return [3 /*break*/, 13]; - return [4 /*yield*/, tslib.__await(this._itemType.read(this._dataStream, { - abortSignal: options.abortSignal - }))]; - case 3: - result = _b.sent(); - this._itemsRemainingInBlock--; - this._objectIndex++; - if (!(this._itemsRemainingInBlock == 0)) return [3 /*break*/, 10]; - return [4 /*yield*/, tslib.__await(AvroParser.readFixedBytes(this._dataStream, AVRO_SYNC_MARKER_SIZE, { - abortSignal: options.abortSignal - }))]; - case 4: - marker = _b.sent(); - this._blockOffset = this._initialBlockOffset + this._dataStream.position; - this._objectIndex = 0; - if (!arraysEqual(this._syncMarker, marker)) { - throw new Error("Stream is not a valid Avro file."); - } - _b.label = 5; - case 5: - _b.trys.push([5, 7, , 8]); - _a = this; - return [4 /*yield*/, tslib.__await(AvroParser.readLong(this._dataStream, { - abortSignal: options.abortSignal - }))]; - case 6: - _a._itemsRemainingInBlock = _b.sent(); - return [3 /*break*/, 8]; - case 7: - err_1 = _b.sent(); + } + parseObjects(options = {}) { + return tslib.__asyncGenerator(this, arguments, function* parseObjects_1() { + if (!this._initialized) { + yield tslib.__await(this.initialize(options)); + } + while (this.hasNext()) { + const result = yield tslib.__await(this._itemType.read(this._dataStream, { + abortSignal: options.abortSignal + })); + this._itemsRemainingInBlock--; + this._objectIndex++; + if (this._itemsRemainingInBlock == 0) { + const marker = yield tslib.__await(AvroParser.readFixedBytes(this._dataStream, AVRO_SYNC_MARKER_SIZE, { + abortSignal: options.abortSignal + })); + this._blockOffset = this._initialBlockOffset + this._dataStream.position; + this._objectIndex = 0; + if (!arraysEqual(this._syncMarker, marker)) { + throw new Error("Stream is not a valid Avro file."); + } + try { + this._itemsRemainingInBlock = yield tslib.__await(AvroParser.readLong(this._dataStream, { + abortSignal: options.abortSignal + })); + } + catch (err) { // We hit the end of the stream. this._itemsRemainingInBlock = 0; - return [3 /*break*/, 8]; - case 8: - if (!(this._itemsRemainingInBlock > 0)) return [3 /*break*/, 10]; + } + if (this._itemsRemainingInBlock > 0) { // Ignore block size - return [4 /*yield*/, tslib.__await(AvroParser.readLong(this._dataStream, { abortSignal: options.abortSignal }))]; - case 9: - // Ignore block size - _b.sent(); - _b.label = 10; - case 10: return [4 /*yield*/, tslib.__await(result)]; - case 11: return [4 /*yield*/, _b.sent()]; - case 12: - _b.sent(); - return [3 /*break*/, 2]; - case 13: return [2 /*return*/]; + yield tslib.__await(AvroParser.readLong(this._dataStream, { abortSignal: options.abortSignal })); + } } - }); + yield yield tslib.__await(result); + } }); - }; - return AvroReader; -}()); + } +} // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -var AvroReadable = /** @class */ (function () { - function AvroReadable() { - } - return AvroReadable; -}()); +class AvroReadable { +} // Copyright (c) Microsoft Corporation. -var ABORT_ERROR = new abortController.AbortError("Reading from the avro stream was aborted."); -var AvroReadableFromStream = /** @class */ (function (_super) { - tslib.__extends(AvroReadableFromStream, _super); - function AvroReadableFromStream(readable) { - var _this = _super.call(this) || this; - _this._readable = readable; - _this._position = 0; - return _this; +const ABORT_ERROR = new abortController.AbortError("Reading from the avro stream was aborted."); +class AvroReadableFromStream extends AvroReadable { + constructor(readable) { + super(); + this._readable = readable; + this._position = 0; } - AvroReadableFromStream.prototype.toUint8Array = function (data) { + toUint8Array(data) { if (typeof data === "string") { return Buffer.from(data); } return data; - }; - Object.defineProperty(AvroReadableFromStream.prototype, "position", { - get: function () { - return this._position; - }, - enumerable: false, - configurable: true - }); - AvroReadableFromStream.prototype.read = function (size, options) { + } + get position() { + return this._position; + } + async read(size, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var chunk; - var _this = this; - return tslib.__generator(this, function (_b) { - if ((_a = options.abortSignal) === null || _a === void 0 ? void 0 : _a.aborted) { - throw ABORT_ERROR; - } - if (size < 0) { - throw new Error("size parameter should be positive: " + size); - } - if (size === 0) { - return [2 /*return*/, new Uint8Array()]; - } - if (!this._readable.readable) { - throw new Error("Stream no longer readable."); - } - chunk = this._readable.read(size); - if (chunk) { - this._position += chunk.length; - // chunk.length maybe less than desired size if the stream ends. - return [2 /*return*/, this.toUint8Array(chunk)]; - } - else { - // register callback to wait for enough data to read - return [2 /*return*/, new Promise(function (resolve, reject) { - var cleanUp = function () { - _this._readable.removeListener("readable", readableCallback); - _this._readable.removeListener("error", rejectCallback); - _this._readable.removeListener("end", rejectCallback); - _this._readable.removeListener("close", rejectCallback); - if (options.abortSignal) { - options.abortSignal.removeEventListener("abort", abortHandler); - } - }; - var readableCallback = function () { - var chunk = _this._readable.read(size); - if (chunk) { - _this._position += chunk.length; - cleanUp(); - // chunk.length maybe less than desired size if the stream ends. - resolve(_this.toUint8Array(chunk)); - } - }; - var rejectCallback = function () { - cleanUp(); - reject(); - }; - var abortHandler = function () { - cleanUp(); - reject(ABORT_ERROR); - }; - _this._readable.on("readable", readableCallback); - _this._readable.once("error", rejectCallback); - _this._readable.once("end", rejectCallback); - _this._readable.once("close", rejectCallback); - if (options.abortSignal) { - options.abortSignal.addEventListener("abort", abortHandler); - } - })]; + if ((_a = options.abortSignal) === null || _a === void 0 ? void 0 : _a.aborted) { + throw ABORT_ERROR; + } + if (size < 0) { + throw new Error(`size parameter should be positive: ${size}`); + } + if (size === 0) { + return new Uint8Array(); + } + if (!this._readable.readable) { + throw new Error("Stream no longer readable."); + } + // See if there is already enough data. + const chunk = this._readable.read(size); + if (chunk) { + this._position += chunk.length; + // chunk.length maybe less than desired size if the stream ends. + return this.toUint8Array(chunk); + } + else { + // register callback to wait for enough data to read + return new Promise((resolve, reject) => { + const cleanUp = () => { + this._readable.removeListener("readable", readableCallback); + this._readable.removeListener("error", rejectCallback); + this._readable.removeListener("end", rejectCallback); + this._readable.removeListener("close", rejectCallback); + if (options.abortSignal) { + options.abortSignal.removeEventListener("abort", abortHandler); + } + }; + const readableCallback = () => { + const chunk = this._readable.read(size); + if (chunk) { + this._position += chunk.length; + cleanUp(); + // chunk.length maybe less than desired size if the stream ends. + resolve(this.toUint8Array(chunk)); + } + }; + const rejectCallback = () => { + cleanUp(); + reject(); + }; + const abortHandler = () => { + cleanUp(); + reject(ABORT_ERROR); + }; + this._readable.on("readable", readableCallback); + this._readable.once("error", rejectCallback); + this._readable.once("end", rejectCallback); + this._readable.once("close", rejectCallback); + if (options.abortSignal) { + options.abortSignal.addEventListener("abort", abortHandler); } }); - }); - }; - return AvroReadableFromStream; -}(AvroReadable)); + } + } +} // Copyright (c) Microsoft Corporation. /** @@ -34273,121 +32380,107 @@ var AvroReadableFromStream = /** @class */ (function (_super) { * * A Node.js BlobQuickQueryStream will internally parse avro data stream for blob query. */ -var BlobQuickQueryStream = /** @class */ (function (_super) { - tslib.__extends(BlobQuickQueryStream, _super); +class BlobQuickQueryStream extends stream.Readable { /** * Creates an instance of BlobQuickQueryStream. * * @param source - The current ReadableStream returned from getter * @param options - */ - function BlobQuickQueryStream(source, options) { - if (options === void 0) { options = {}; } - var _this = _super.call(this) || this; - _this.avroPaused = true; - _this.source = source; - _this.onProgress = options.onProgress; - _this.onError = options.onError; - _this.avroReader = new AvroReader(new AvroReadableFromStream(_this.source)); - _this.avroIter = _this.avroReader.parseObjects({ abortSignal: options.abortSignal }); - return _this; + constructor(source, options = {}) { + super(); + this.avroPaused = true; + this.source = source; + this.onProgress = options.onProgress; + this.onError = options.onError; + this.avroReader = new AvroReader(new AvroReadableFromStream(this.source)); + this.avroIter = this.avroReader.parseObjects({ abortSignal: options.abortSignal }); } - BlobQuickQueryStream.prototype._read = function () { - var _this = this; + _read() { if (this.avroPaused) { - this.readInternal().catch(function (err) { - _this.emit("error", err); + this.readInternal().catch((err) => { + this.emit("error", err); }); } - }; - BlobQuickQueryStream.prototype.readInternal = function () { - return tslib.__awaiter(this, void 0, void 0, function () { - var avroNext, obj, schema, data, bytesScanned, totalBytes, fatal, name_1, description, position; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - this.avroPaused = false; - _a.label = 1; - case 1: return [4 /*yield*/, this.avroIter.next()]; - case 2: - avroNext = _a.sent(); - if (avroNext.done) { - return [3 /*break*/, 4]; + } + async readInternal() { + this.avroPaused = false; + let avroNext; + do { + avroNext = await this.avroIter.next(); + if (avroNext.done) { + break; + } + const obj = avroNext.value; + const schema = obj.$schema; + if (typeof schema !== "string") { + throw Error("Missing schema in avro record."); + } + switch (schema) { + case "com.microsoft.azure.storage.queryBlobContents.resultData": + { + const data = obj.data; + if (data instanceof Uint8Array === false) { + throw Error("Invalid data in avro result record."); } - obj = avroNext.value; - schema = obj.$schema; - if (typeof schema !== "string") { - throw Error("Missing schema in avro record."); + if (!this.push(Buffer.from(data))) { + this.avroPaused = true; } - switch (schema) { - case "com.microsoft.azure.storage.queryBlobContents.resultData": - data = obj.data; - if (data instanceof Uint8Array === false) { - throw Error("Invalid data in avro result record."); - } - if (!this.push(Buffer.from(data))) { - this.avroPaused = true; - } - break; - case "com.microsoft.azure.storage.queryBlobContents.progress": - bytesScanned = obj.bytesScanned; - if (typeof bytesScanned !== "number") { - throw Error("Invalid bytesScanned in avro progress record."); - } - if (this.onProgress) { - this.onProgress({ loadedBytes: bytesScanned }); - } - break; - case "com.microsoft.azure.storage.queryBlobContents.end": - if (this.onProgress) { - totalBytes = obj.totalBytes; - if (typeof totalBytes !== "number") { - throw Error("Invalid totalBytes in avro end record."); - } - this.onProgress({ loadedBytes: totalBytes }); - } - this.push(null); - break; - case "com.microsoft.azure.storage.queryBlobContents.error": - if (this.onError) { - fatal = obj.fatal; - if (typeof fatal !== "boolean") { - throw Error("Invalid fatal in avro error record."); - } - name_1 = obj.name; - if (typeof name_1 !== "string") { - throw Error("Invalid name in avro error record."); - } - description = obj.description; - if (typeof description !== "string") { - throw Error("Invalid description in avro error record."); - } - position = obj.position; - if (typeof position !== "number") { - throw Error("Invalid position in avro error record."); - } - this.onError({ - position: position, - name: name_1, - isFatal: fatal, - description: description - }); - } - break; - default: - throw Error("Unknown schema " + schema + " in avro progress record."); + } + break; + case "com.microsoft.azure.storage.queryBlobContents.progress": + { + const bytesScanned = obj.bytesScanned; + if (typeof bytesScanned !== "number") { + throw Error("Invalid bytesScanned in avro progress record."); } - _a.label = 3; - case 3: - if (!avroNext.done && !this.avroPaused) return [3 /*break*/, 1]; - _a.label = 4; - case 4: return [2 /*return*/]; - } - }); - }); - }; - return BlobQuickQueryStream; -}(stream.Readable)); + if (this.onProgress) { + this.onProgress({ loadedBytes: bytesScanned }); + } + } + break; + case "com.microsoft.azure.storage.queryBlobContents.end": + if (this.onProgress) { + const totalBytes = obj.totalBytes; + if (typeof totalBytes !== "number") { + throw Error("Invalid totalBytes in avro end record."); + } + this.onProgress({ loadedBytes: totalBytes }); + } + this.push(null); + break; + case "com.microsoft.azure.storage.queryBlobContents.error": + if (this.onError) { + const fatal = obj.fatal; + if (typeof fatal !== "boolean") { + throw Error("Invalid fatal in avro error record."); + } + const name = obj.name; + if (typeof name !== "string") { + throw Error("Invalid name in avro error record."); + } + const description = obj.description; + if (typeof description !== "string") { + throw Error("Invalid description in avro error record."); + } + const position = obj.position; + if (typeof position !== "number") { + throw Error("Invalid position in avro error record."); + } + this.onError({ + position, + name, + isFatal: fatal, + description + }); + } + break; + default: + throw Error(`Unknown schema ${schema} in avro progress record.`); + } + } while (!avroNext.done && !this.avroPaused); + } +} // Copyright (c) Microsoft Corporation. /** @@ -34396,508 +32489,362 @@ var BlobQuickQueryStream = /** @class */ (function (_super) { * BlobQueryResponse implements BlobDownloadResponseModel interface, and in Node.js runtime it will * parse avor data returned by blob query. */ -var BlobQueryResponse = /** @class */ (function () { +class BlobQueryResponse { /** * Creates an instance of BlobQueryResponse. * * @param originalResponse - * @param options - */ - function BlobQueryResponse(originalResponse, options) { - if (options === void 0) { options = {}; } + constructor(originalResponse, options = {}) { this.originalResponse = originalResponse; this.blobDownloadStream = new BlobQuickQueryStream(this.originalResponse.readableStreamBody, options); } - Object.defineProperty(BlobQueryResponse.prototype, "acceptRanges", { - /** - * Indicates that the service supports - * requests for partial file content. - * - * @readonly - */ - get: function () { - return this.originalResponse.acceptRanges; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "cacheControl", { - /** - * Returns if it was previously specified - * for the file. - * - * @readonly - */ - get: function () { - return this.originalResponse.cacheControl; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "contentDisposition", { - /** - * Returns the value that was specified - * for the 'x-ms-content-disposition' header and specifies how to process the - * response. - * - * @readonly - */ - get: function () { - return this.originalResponse.contentDisposition; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "contentEncoding", { - /** - * Returns the value that was specified - * for the Content-Encoding request header. - * - * @readonly - */ - get: function () { - return this.originalResponse.contentEncoding; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "contentLanguage", { - /** - * Returns the value that was specified - * for the Content-Language request header. - * - * @readonly - */ - get: function () { - return this.originalResponse.contentLanguage; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "blobSequenceNumber", { - /** - * The current sequence number for a - * page blob. This header is not returned for block blobs or append blobs. - * - * @readonly - */ - get: function () { - return this.originalResponse.blobSequenceNumber; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "blobType", { - /** - * The blob's type. Possible values include: - * 'BlockBlob', 'PageBlob', 'AppendBlob'. - * - * @readonly - */ - get: function () { - return this.originalResponse.blobType; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "contentLength", { - /** - * The number of bytes present in the - * response body. - * - * @readonly - */ - get: function () { - return this.originalResponse.contentLength; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "contentMD5", { - /** - * If the file has an MD5 hash and the - * request is to read the full file, this response header is returned so that - * the client can check for message content integrity. If the request is to - * read a specified range and the 'x-ms-range-get-content-md5' is set to - * true, then the request returns an MD5 hash for the range, as long as the - * range size is less than or equal to 4 MB. If neither of these sets of - * conditions is true, then no value is returned for the 'Content-MD5' - * header. - * - * @readonly - */ - get: function () { - return this.originalResponse.contentMD5; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "contentRange", { - /** - * Indicates the range of bytes returned if - * the client requested a subset of the file by setting the Range request - * header. - * - * @readonly - */ - get: function () { - return this.originalResponse.contentRange; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "contentType", { - /** - * The content type specified for the file. - * The default content type is 'application/octet-stream' - * - * @readonly - */ - get: function () { - return this.originalResponse.contentType; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "copyCompletedOn", { - /** - * Conclusion time of the last attempted - * Copy File operation where this file was the destination file. This value - * can specify the time of a completed, aborted, or failed copy attempt. - * - * @readonly - */ - get: function () { - return undefined; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "copyId", { - /** - * String identifier for the last attempted Copy - * File operation where this file was the destination file. - * - * @readonly - */ - get: function () { - return this.originalResponse.copyId; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "copyProgress", { - /** - * Contains the number of bytes copied and - * the total bytes in the source in the last attempted Copy File operation - * where this file was the destination file. Can show between 0 and - * Content-Length bytes copied. - * - * @readonly - */ - get: function () { - return this.originalResponse.copyProgress; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "copySource", { - /** - * URL up to 2KB in length that specifies the - * source file used in the last attempted Copy File operation where this file - * was the destination file. - * - * @readonly - */ - get: function () { - return this.originalResponse.copySource; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "copyStatus", { - /** - * State of the copy operation - * identified by 'x-ms-copy-id'. Possible values include: 'pending', - * 'success', 'aborted', 'failed' - * - * @readonly - */ - get: function () { - return this.originalResponse.copyStatus; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "copyStatusDescription", { - /** - * Only appears when - * x-ms-copy-status is failed or pending. Describes cause of fatal or - * non-fatal copy operation failure. - * - * @readonly - */ - get: function () { - return this.originalResponse.copyStatusDescription; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "leaseDuration", { - /** - * When a blob is leased, - * specifies whether the lease is of infinite or fixed duration. Possible - * values include: 'infinite', 'fixed'. - * - * @readonly - */ - get: function () { - return this.originalResponse.leaseDuration; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "leaseState", { - /** - * Lease state of the blob. Possible - * values include: 'available', 'leased', 'expired', 'breaking', 'broken'. - * - * @readonly - */ - get: function () { - return this.originalResponse.leaseState; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "leaseStatus", { - /** - * The current lease status of the - * blob. Possible values include: 'locked', 'unlocked'. - * - * @readonly - */ - get: function () { - return this.originalResponse.leaseStatus; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "date", { - /** - * A UTC date/time value generated by the service that - * indicates the time at which the response was initiated. - * - * @readonly - */ - get: function () { - return this.originalResponse.date; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "blobCommittedBlockCount", { - /** - * The number of committed blocks - * present in the blob. This header is returned only for append blobs. - * - * @readonly - */ - get: function () { - return this.originalResponse.blobCommittedBlockCount; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "etag", { - /** - * The ETag contains a value that you can use to - * perform operations conditionally, in quotes. - * - * @readonly - */ - get: function () { - return this.originalResponse.etag; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "errorCode", { - /** - * The error code. - * - * @readonly - */ - get: function () { - return this.originalResponse.errorCode; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "isServerEncrypted", { - /** - * The value of this header is set to - * true if the file data and application metadata are completely encrypted - * using the specified algorithm. Otherwise, the value is set to false (when - * the file is unencrypted, or if only parts of the file/application metadata - * are encrypted). - * - * @readonly - */ - get: function () { - return this.originalResponse.isServerEncrypted; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "blobContentMD5", { - /** - * If the blob has a MD5 hash, and if - * request contains range header (Range or x-ms-range), this response header - * is returned with the value of the whole blob's MD5 value. This value may - * or may not be equal to the value returned in Content-MD5 header, with the - * latter calculated from the requested range. - * - * @readonly - */ - get: function () { - return this.originalResponse.blobContentMD5; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "lastModified", { - /** - * Returns the date and time the file was last - * modified. Any operation that modifies the file or its properties updates - * the last modified time. - * - * @readonly - */ - get: function () { - return this.originalResponse.lastModified; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "metadata", { - /** - * A name-value pair - * to associate with a file storage object. - * - * @readonly - */ - get: function () { - return this.originalResponse.metadata; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "requestId", { - /** - * This header uniquely identifies the request - * that was made and can be used for troubleshooting the request. - * - * @readonly - */ - get: function () { - return this.originalResponse.requestId; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "clientRequestId", { - /** - * If a client request id header is sent in the request, this header will be present in the - * response with the same value. - * - * @readonly - */ - get: function () { - return this.originalResponse.clientRequestId; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "version", { - /** - * Indicates the version of the File service used - * to execute the request. - * - * @readonly - */ - get: function () { - return this.originalResponse.version; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "encryptionKeySha256", { - /** - * The SHA-256 hash of the encryption key used to encrypt the blob. This value is only returned - * when the blob was encrypted with a customer-provided key. - * - * @readonly - */ - get: function () { - return this.originalResponse.encryptionKeySha256; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "contentCrc64", { - /** - * If the request is to read a specified range and the x-ms-range-get-content-crc64 is set to - * true, then the request returns a crc64 for the range, as long as the range size is less than - * or equal to 4 MB. If both x-ms-range-get-content-crc64 & x-ms-range-get-content-md5 is - * specified in the same request, it will fail with 400(Bad Request) - */ - get: function () { - return this.originalResponse.contentCrc64; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "blobBody", { - /** - * The response body as a browser Blob. - * Always undefined in node.js. - * - * @readonly - */ - get: function () { - return undefined; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "readableStreamBody", { - /** - * The response body as a node.js Readable stream. - * Always undefined in the browser. - * - * It will parse avor data returned by blob query. - * - * @readonly - */ - get: function () { - return coreHttp.isNode ? this.blobDownloadStream : undefined; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "_response", { - /** - * The HTTP response. - */ - get: function () { - return this.originalResponse._response; - }, - enumerable: false, - configurable: true - }); - return BlobQueryResponse; -}()); + /** + * Indicates that the service supports + * requests for partial file content. + * + * @readonly + */ + get acceptRanges() { + return this.originalResponse.acceptRanges; + } + /** + * Returns if it was previously specified + * for the file. + * + * @readonly + */ + get cacheControl() { + return this.originalResponse.cacheControl; + } + /** + * Returns the value that was specified + * for the 'x-ms-content-disposition' header and specifies how to process the + * response. + * + * @readonly + */ + get contentDisposition() { + return this.originalResponse.contentDisposition; + } + /** + * Returns the value that was specified + * for the Content-Encoding request header. + * + * @readonly + */ + get contentEncoding() { + return this.originalResponse.contentEncoding; + } + /** + * Returns the value that was specified + * for the Content-Language request header. + * + * @readonly + */ + get contentLanguage() { + return this.originalResponse.contentLanguage; + } + /** + * The current sequence number for a + * page blob. This header is not returned for block blobs or append blobs. + * + * @readonly + */ + get blobSequenceNumber() { + return this.originalResponse.blobSequenceNumber; + } + /** + * The blob's type. Possible values include: + * 'BlockBlob', 'PageBlob', 'AppendBlob'. + * + * @readonly + */ + get blobType() { + return this.originalResponse.blobType; + } + /** + * The number of bytes present in the + * response body. + * + * @readonly + */ + get contentLength() { + return this.originalResponse.contentLength; + } + /** + * If the file has an MD5 hash and the + * request is to read the full file, this response header is returned so that + * the client can check for message content integrity. If the request is to + * read a specified range and the 'x-ms-range-get-content-md5' is set to + * true, then the request returns an MD5 hash for the range, as long as the + * range size is less than or equal to 4 MB. If neither of these sets of + * conditions is true, then no value is returned for the 'Content-MD5' + * header. + * + * @readonly + */ + get contentMD5() { + return this.originalResponse.contentMD5; + } + /** + * Indicates the range of bytes returned if + * the client requested a subset of the file by setting the Range request + * header. + * + * @readonly + */ + get contentRange() { + return this.originalResponse.contentRange; + } + /** + * The content type specified for the file. + * The default content type is 'application/octet-stream' + * + * @readonly + */ + get contentType() { + return this.originalResponse.contentType; + } + /** + * Conclusion time of the last attempted + * Copy File operation where this file was the destination file. This value + * can specify the time of a completed, aborted, or failed copy attempt. + * + * @readonly + */ + get copyCompletedOn() { + return undefined; + } + /** + * String identifier for the last attempted Copy + * File operation where this file was the destination file. + * + * @readonly + */ + get copyId() { + return this.originalResponse.copyId; + } + /** + * Contains the number of bytes copied and + * the total bytes in the source in the last attempted Copy File operation + * where this file was the destination file. Can show between 0 and + * Content-Length bytes copied. + * + * @readonly + */ + get copyProgress() { + return this.originalResponse.copyProgress; + } + /** + * URL up to 2KB in length that specifies the + * source file used in the last attempted Copy File operation where this file + * was the destination file. + * + * @readonly + */ + get copySource() { + return this.originalResponse.copySource; + } + /** + * State of the copy operation + * identified by 'x-ms-copy-id'. Possible values include: 'pending', + * 'success', 'aborted', 'failed' + * + * @readonly + */ + get copyStatus() { + return this.originalResponse.copyStatus; + } + /** + * Only appears when + * x-ms-copy-status is failed or pending. Describes cause of fatal or + * non-fatal copy operation failure. + * + * @readonly + */ + get copyStatusDescription() { + return this.originalResponse.copyStatusDescription; + } + /** + * When a blob is leased, + * specifies whether the lease is of infinite or fixed duration. Possible + * values include: 'infinite', 'fixed'. + * + * @readonly + */ + get leaseDuration() { + return this.originalResponse.leaseDuration; + } + /** + * Lease state of the blob. Possible + * values include: 'available', 'leased', 'expired', 'breaking', 'broken'. + * + * @readonly + */ + get leaseState() { + return this.originalResponse.leaseState; + } + /** + * The current lease status of the + * blob. Possible values include: 'locked', 'unlocked'. + * + * @readonly + */ + get leaseStatus() { + return this.originalResponse.leaseStatus; + } + /** + * A UTC date/time value generated by the service that + * indicates the time at which the response was initiated. + * + * @readonly + */ + get date() { + return this.originalResponse.date; + } + /** + * The number of committed blocks + * present in the blob. This header is returned only for append blobs. + * + * @readonly + */ + get blobCommittedBlockCount() { + return this.originalResponse.blobCommittedBlockCount; + } + /** + * The ETag contains a value that you can use to + * perform operations conditionally, in quotes. + * + * @readonly + */ + get etag() { + return this.originalResponse.etag; + } + /** + * The error code. + * + * @readonly + */ + get errorCode() { + return this.originalResponse.errorCode; + } + /** + * The value of this header is set to + * true if the file data and application metadata are completely encrypted + * using the specified algorithm. Otherwise, the value is set to false (when + * the file is unencrypted, or if only parts of the file/application metadata + * are encrypted). + * + * @readonly + */ + get isServerEncrypted() { + return this.originalResponse.isServerEncrypted; + } + /** + * If the blob has a MD5 hash, and if + * request contains range header (Range or x-ms-range), this response header + * is returned with the value of the whole blob's MD5 value. This value may + * or may not be equal to the value returned in Content-MD5 header, with the + * latter calculated from the requested range. + * + * @readonly + */ + get blobContentMD5() { + return this.originalResponse.blobContentMD5; + } + /** + * Returns the date and time the file was last + * modified. Any operation that modifies the file or its properties updates + * the last modified time. + * + * @readonly + */ + get lastModified() { + return this.originalResponse.lastModified; + } + /** + * A name-value pair + * to associate with a file storage object. + * + * @readonly + */ + get metadata() { + return this.originalResponse.metadata; + } + /** + * This header uniquely identifies the request + * that was made and can be used for troubleshooting the request. + * + * @readonly + */ + get requestId() { + return this.originalResponse.requestId; + } + /** + * If a client request id header is sent in the request, this header will be present in the + * response with the same value. + * + * @readonly + */ + get clientRequestId() { + return this.originalResponse.clientRequestId; + } + /** + * Indicates the version of the File service used + * to execute the request. + * + * @readonly + */ + get version() { + return this.originalResponse.version; + } + /** + * The SHA-256 hash of the encryption key used to encrypt the blob. This value is only returned + * when the blob was encrypted with a customer-provided key. + * + * @readonly + */ + get encryptionKeySha256() { + return this.originalResponse.encryptionKeySha256; + } + /** + * If the request is to read a specified range and the x-ms-range-get-content-crc64 is set to + * true, then the request returns a crc64 for the range, as long as the range size is less than + * or equal to 4 MB. If both x-ms-range-get-content-crc64 & x-ms-range-get-content-md5 is + * specified in the same request, it will fail with 400(Bad Request) + */ + get contentCrc64() { + return this.originalResponse.contentCrc64; + } + /** + * The response body as a browser Blob. + * Always undefined in node.js. + * + * @readonly + */ + get blobBody() { + return undefined; + } + /** + * The response body as a node.js Readable stream. + * Always undefined in the browser. + * + * It will parse avor data returned by blob query. + * + * @readonly + */ + get readableStreamBody() { + return coreHttp.isNode ? this.blobDownloadStream : undefined; + } + /** + * The HTTP response. + */ + get _response() { + return this.originalResponse._response; + } +} // Copyright (c) Microsoft Corporation. (function (BlockBlobTier) { @@ -34962,7 +32909,7 @@ var BlobQueryResponse = /** @class */ (function () { PremiumPageBlobTier["P80"] = "P80"; })(exports.PremiumPageBlobTier || (exports.PremiumPageBlobTier = {})); function toAccessTier(tier) { - if (tier == undefined) { + if (tier === undefined) { return undefined; } return tier; // No more check if string is a valid AccessTier, and left this to underlay logic to decide(service). @@ -34977,6 +32924,7 @@ function ensureCpkIfSpecified(cpk, isHttps) { } // Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. /** * Function that converts PageRange and ClearRange to a common Range object. * PageRange and ClearRange have start and end while Range offset and count @@ -34984,18 +32932,18 @@ function ensureCpkIfSpecified(cpk, isHttps) { * @param response - Model PageBlob Range response */ function rangeResponseFromModel(response) { - var pageRange = (response._response.parsedBody.pageRange || []).map(function (x) { return ({ + const pageRange = (response._response.parsedBody.pageRange || []).map((x) => ({ offset: x.start, count: x.end - x.start - }); }); - var clearRange = (response._response.parsedBody.clearRange || []).map(function (x) { return ({ + })); + const clearRange = (response._response.parsedBody.clearRange || []).map((x) => ({ offset: x.start, count: x.end - x.start - }); }); - return tslib.__assign(tslib.__assign({}, response), { pageRange: pageRange, - clearRange: clearRange, _response: tslib.__assign(tslib.__assign({}, response._response), { parsedBody: { - pageRange: pageRange, - clearRange: clearRange + })); + return Object.assign(Object.assign({}, response), { pageRange, + clearRange, _response: Object.assign(Object.assign({}, response._response), { parsedBody: { + pageRange, + clearRange } }) }); } @@ -35006,64 +32954,48 @@ function rangeResponseFromModel(response) { * * @hidden */ -var BlobBeginCopyFromUrlPoller = /** @class */ (function (_super) { - tslib.__extends(BlobBeginCopyFromUrlPoller, _super); - function BlobBeginCopyFromUrlPoller(options) { - var _this = this; - var blobClient = options.blobClient, copySource = options.copySource, _a = options.intervalInMs, intervalInMs = _a === void 0 ? 15000 : _a, onProgress = options.onProgress, resumeFrom = options.resumeFrom, startCopyFromURLOptions = options.startCopyFromURLOptions; - var state; +class BlobBeginCopyFromUrlPoller extends coreLro.Poller { + constructor(options) { + const { blobClient, copySource, intervalInMs = 15000, onProgress, resumeFrom, startCopyFromURLOptions } = options; + let state; if (resumeFrom) { state = JSON.parse(resumeFrom).state; } - var operation = makeBlobBeginCopyFromURLPollOperation(tslib.__assign(tslib.__assign({}, state), { blobClient: blobClient, - copySource: copySource, - startCopyFromURLOptions: startCopyFromURLOptions })); - _this = _super.call(this, operation) || this; + const operation = makeBlobBeginCopyFromURLPollOperation(Object.assign(Object.assign({}, state), { blobClient, + copySource, + startCopyFromURLOptions })); + super(operation); if (typeof onProgress === "function") { - _this.onProgress(onProgress); + this.onProgress(onProgress); } - _this.intervalInMs = intervalInMs; - return _this; + this.intervalInMs = intervalInMs; } - BlobBeginCopyFromUrlPoller.prototype.delay = function () { + delay() { return coreHttp.delay(this.intervalInMs); - }; - return BlobBeginCopyFromUrlPoller; -}(coreLro.Poller)); + } +} /** * Note: Intentionally using function expression over arrow function expression * so that the function can be invoked with a different context. * This affects what `this` refers to. * @hidden */ -var cancel = function cancel(options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var state, copyId; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - state = this.state; - copyId = state.copyId; - if (state.isCompleted) { - return [2 /*return*/, makeBlobBeginCopyFromURLPollOperation(state)]; - } - if (!copyId) { - state.isCancelled = true; - return [2 /*return*/, makeBlobBeginCopyFromURLPollOperation(state)]; - } - // if abortCopyFromURL throws, it will bubble up to user's poller.cancelOperation call - return [4 /*yield*/, state.blobClient.abortCopyFromURL(copyId, { - abortSignal: options.abortSignal - })]; - case 1: - // if abortCopyFromURL throws, it will bubble up to user's poller.cancelOperation call - _a.sent(); - state.isCancelled = true; - return [2 /*return*/, makeBlobBeginCopyFromURLPollOperation(state)]; - } - }); +const cancel = async function cancel(options = {}) { + const state = this.state; + const { copyId } = state; + if (state.isCompleted) { + return makeBlobBeginCopyFromURLPollOperation(state); + } + if (!copyId) { + state.isCancelled = true; + return makeBlobBeginCopyFromURLPollOperation(state); + } + // if abortCopyFromURL throws, it will bubble up to user's poller.cancelOperation call + await state.blobClient.abortCopyFromURL(copyId, { + abortSignal: options.abortSignal }); + state.isCancelled = true; + return makeBlobBeginCopyFromURLPollOperation(state); }; /** * Note: Intentionally using function expression over arrow function expression @@ -35071,64 +33003,48 @@ var cancel = function cancel(options) { * This affects what `this` refers to. * @hidden */ -var update = function update(options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var state, blobClient, copySource, startCopyFromURLOptions, result, result, copyStatus, copyProgress, prevCopyProgress, err_1; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - state = this.state; - blobClient = state.blobClient, copySource = state.copySource, startCopyFromURLOptions = state.startCopyFromURLOptions; - if (!!state.isStarted) return [3 /*break*/, 2]; - state.isStarted = true; - return [4 /*yield*/, blobClient.startCopyFromURL(copySource, startCopyFromURLOptions)]; - case 1: - result = _a.sent(); - // copyId is needed to abort - state.copyId = result.copyId; - if (result.copyStatus === "success") { - state.result = result; - state.isCompleted = true; - } - return [3 /*break*/, 6]; - case 2: - if (!!state.isCompleted) return [3 /*break*/, 6]; - _a.label = 3; - case 3: - _a.trys.push([3, 5, , 6]); - return [4 /*yield*/, state.blobClient.getProperties({ abortSignal: options.abortSignal })]; - case 4: - result = _a.sent(); - copyStatus = result.copyStatus, copyProgress = result.copyProgress; - prevCopyProgress = state.copyProgress; - if (copyProgress) { - state.copyProgress = copyProgress; - } - if (copyStatus === "pending" && - copyProgress !== prevCopyProgress && - typeof options.fireProgress === "function") { - // trigger in setTimeout, or swallow error? - options.fireProgress(state); - } - else if (copyStatus === "success") { - state.result = result; - state.isCompleted = true; - } - else if (copyStatus === "failed") { - state.error = new Error("Blob copy failed with reason: \"" + (result.copyStatusDescription || "unknown") + "\""); - state.isCompleted = true; - } - return [3 /*break*/, 6]; - case 5: - err_1 = _a.sent(); - state.error = err_1; - state.isCompleted = true; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/, makeBlobBeginCopyFromURLPollOperation(state)]; +const update = async function update(options = {}) { + const state = this.state; + const { blobClient, copySource, startCopyFromURLOptions } = state; + if (!state.isStarted) { + state.isStarted = true; + const result = await blobClient.startCopyFromURL(copySource, startCopyFromURLOptions); + // copyId is needed to abort + state.copyId = result.copyId; + if (result.copyStatus === "success") { + state.result = result; + state.isCompleted = true; + } + } + else if (!state.isCompleted) { + try { + const result = await state.blobClient.getProperties({ abortSignal: options.abortSignal }); + const { copyStatus, copyProgress } = result; + const prevCopyProgress = state.copyProgress; + if (copyProgress) { + state.copyProgress = copyProgress; } - }); - }); + if (copyStatus === "pending" && + copyProgress !== prevCopyProgress && + typeof options.fireProgress === "function") { + // trigger in setTimeout, or swallow error? + options.fireProgress(state); + } + else if (copyStatus === "success") { + state.result = result; + state.isCompleted = true; + } + else if (copyStatus === "failed") { + state.error = new Error(`Blob copy failed with reason: "${result.copyStatusDescription || "unknown"}"`); + state.isCompleted = true; + } + } + catch (err) { + state.error = err; + state.isCompleted = true; + } + } + return makeBlobBeginCopyFromURLPollOperation(state); }; /** * Note: Intentionally using function expression over arrow function expression @@ -35136,8 +33052,8 @@ var update = function update(options) { * This affects what `this` refers to. * @hidden */ -var toString = function toString() { - return JSON.stringify({ state: this.state }, function (key, value) { +const toString = function toString() { + return JSON.stringify({ state: this.state }, (key, value) => { // remove blobClient from serialized state since a client can't be hydrated from this info. if (key === "blobClient") { return undefined; @@ -35151,10 +33067,10 @@ var toString = function toString() { */ function makeBlobBeginCopyFromURLPollOperation(state) { return { - state: tslib.__assign({}, state), - cancel: cancel, - toString: toString, - update: update + state: Object.assign({}, state), + cancel, + toString, + update }; } @@ -35169,14 +33085,14 @@ function makeBlobBeginCopyFromURLPollOperation(state) { */ function rangeToString(iRange) { if (iRange.offset < 0) { - throw new RangeError("Range.offset cannot be smaller than 0."); + throw new RangeError(`Range.offset cannot be smaller than 0.`); } if (iRange.count && iRange.count <= 0) { - throw new RangeError("Range.count must be larger than 0. Leave it undefined if you want a range from offset to the end."); + throw new RangeError(`Range.count must be larger than 0. Leave it undefined if you want a range from offset to the end.`); } return iRange.count - ? "bytes=" + iRange.offset + "-" + (iRange.offset + iRange.count - 1) - : "bytes=" + iRange.offset + "-"; + ? `bytes=${iRange.offset}-${iRange.offset + iRange.count - 1}` + : `bytes=${iRange.offset}-`; } // Copyright (c) Microsoft Corporation. @@ -35193,13 +33109,12 @@ var BatchStates; * Will stop execute left operations when one of the executed operation throws an error. * But Batch cannot cancel ongoing operations, you need to cancel them by yourself. */ -var Batch = /** @class */ (function () { +class Batch { /** * Creates an instance of Batch. * @param concurrency - */ - function Batch(concurrency) { - if (concurrency === void 0) { concurrency = 5; } + constructor(concurrency = 5) { /** * Number of active operations under execution. */ @@ -35232,69 +33147,53 @@ var Batch = /** @class */ (function () { * * @param operation - */ - Batch.prototype.addOperation = function (operation) { - var _this = this; - this.operations.push(function () { return tslib.__awaiter(_this, void 0, void 0, function () { - var error_1; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - this.actives++; - return [4 /*yield*/, operation()]; - case 1: - _a.sent(); - this.actives--; - this.completed++; - this.parallelExecute(); - return [3 /*break*/, 3]; - case 2: - error_1 = _a.sent(); - this.emitter.emit("error", error_1); - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); }); - }; + addOperation(operation) { + this.operations.push(async () => { + try { + this.actives++; + await operation(); + this.actives--; + this.completed++; + this.parallelExecute(); + } + catch (error) { + this.emitter.emit("error", error); + } + }); + } /** * Start execute operations in the queue. * */ - Batch.prototype.do = function () { - return tslib.__awaiter(this, void 0, void 0, function () { - var _this = this; - return tslib.__generator(this, function (_a) { - if (this.operations.length === 0) { - return [2 /*return*/, Promise.resolve()]; - } - this.parallelExecute(); - return [2 /*return*/, new Promise(function (resolve, reject) { - _this.emitter.on("finish", resolve); - _this.emitter.on("error", function (error) { - _this.state = BatchStates.Error; - reject(error); - }); - })]; + async do() { + if (this.operations.length === 0) { + return Promise.resolve(); + } + this.parallelExecute(); + return new Promise((resolve, reject) => { + this.emitter.on("finish", resolve); + this.emitter.on("error", (error) => { + this.state = BatchStates.Error; + reject(error); }); }); - }; + } /** * Get next operation to be executed. Return null when reaching ends. * */ - Batch.prototype.nextOperation = function () { + nextOperation() { if (this.offset < this.operations.length) { return this.operations[this.offset++]; } return null; - }; + } /** * Start execute operations. One one the most important difference between * this method with do() is that do() wraps as an sync method. * */ - Batch.prototype.parallelExecute = function () { + parallelExecute() { if (this.state === BatchStates.Error) { return; } @@ -35303,7 +33202,7 @@ var Batch = /** @class */ (function () { return; } while (this.actives < this.concurrency) { - var operation = this.nextOperation(); + const operation = this.nextOperation(); if (operation) { operation(); } @@ -35311,16 +33210,14 @@ var Batch = /** @class */ (function () { return; } } - }; - return Batch; -}()); + } +} // Copyright (c) Microsoft Corporation. /** * This class generates a readable stream from the data in an array of buffers. */ -var BuffersStream = /** @class */ (function (_super) { - tslib.__extends(BuffersStream, _super); +class BuffersStream extends stream.Readable { /** * Creates an instance of BuffersStream that will emit the data * contained in the array of buffers. @@ -35328,46 +33225,44 @@ var BuffersStream = /** @class */ (function (_super) { * @param buffers - Array of buffers containing the data * @param byteLength - The total length of data contained in the buffers */ - function BuffersStream(buffers, byteLength, options) { - var _this = _super.call(this, options) || this; - _this.buffers = buffers; - _this.byteLength = byteLength; - _this.byteOffsetInCurrentBuffer = 0; - _this.bufferIndex = 0; - _this.pushedBytesLength = 0; + constructor(buffers, byteLength, options) { + super(options); + this.buffers = buffers; + this.byteLength = byteLength; + this.byteOffsetInCurrentBuffer = 0; + this.bufferIndex = 0; + this.pushedBytesLength = 0; // check byteLength is no larger than buffers[] total length - var buffersLength = 0; - for (var _i = 0, _a = _this.buffers; _i < _a.length; _i++) { - var buf = _a[_i]; + let buffersLength = 0; + for (const buf of this.buffers) { buffersLength += buf.byteLength; } - if (buffersLength < _this.byteLength) { + if (buffersLength < this.byteLength) { throw new Error("Data size shouldn't be larger than the total length of buffers."); } - return _this; } /** * Internal _read() that will be called when the stream wants to pull more data in. * * @param size - Optional. The size of data to be read */ - BuffersStream.prototype._read = function (size) { + _read(size) { if (this.pushedBytesLength >= this.byteLength) { this.push(null); } if (!size) { size = this.readableHighWaterMark; } - var outBuffers = []; - var i = 0; + const outBuffers = []; + let i = 0; while (i < size && this.pushedBytesLength < this.byteLength) { // The last buffer may be longer than the data it contains. - var remainingDataInAllBuffers = this.byteLength - this.pushedBytesLength; - var remainingCapacityInThisBuffer = this.buffers[this.bufferIndex].byteLength - this.byteOffsetInCurrentBuffer; - var remaining = Math.min(remainingCapacityInThisBuffer, remainingDataInAllBuffers); + const remainingDataInAllBuffers = this.byteLength - this.pushedBytesLength; + const remainingCapacityInThisBuffer = this.buffers[this.bufferIndex].byteLength - this.byteOffsetInCurrentBuffer; + const remaining = Math.min(remainingCapacityInThisBuffer, remainingDataInAllBuffers); if (remaining > size - i) { // chunkSize = size - i - var end = this.byteOffsetInCurrentBuffer + size - i; + const end = this.byteOffsetInCurrentBuffer + size - i; outBuffers.push(this.buffers[this.bufferIndex].slice(this.byteOffsetInCurrentBuffer, end)); this.pushedBytesLength += size - i; this.byteOffsetInCurrentBuffer = end; @@ -35376,7 +33271,7 @@ var BuffersStream = /** @class */ (function (_super) { } else { // chunkSize = remaining - var end = this.byteOffsetInCurrentBuffer + remaining; + const end = this.byteOffsetInCurrentBuffer + remaining; outBuffers.push(this.buffers[this.bufferIndex].slice(this.byteOffsetInCurrentBuffer, end)); if (remaining === remainingCapacityInThisBuffer) { // this.buffers[this.bufferIndex] used up, shift to next one @@ -35396,16 +33291,15 @@ var BuffersStream = /** @class */ (function (_super) { else if (outBuffers.length === 1) { this.push(outBuffers[0]); } - }; - return BuffersStream; -}(stream.Readable)); + } +} // Copyright (c) Microsoft Corporation. /** * maxBufferLength is max size of each buffer in the pooled buffers. */ // Can't use import as Typescript doesn't recognize "buffer". -var maxBufferLength = __webpack_require__(407).constants.MAX_LENGTH; +const maxBufferLength = __webpack_require__(407).constants.MAX_LENGTH; /** * This class provides a buffer container which conceptually has no hard size limit. * It accepts a capacity, an array of input buffers and the total length of input data. @@ -35414,8 +33308,8 @@ var maxBufferLength = __webpack_require__(407).constants.MAX_LENGTH; * Then by calling PooledBuffer.getReadableStream(), you can get a readable stream * assembled from all the data in the internal "buffer". */ -var PooledBuffer = /** @class */ (function () { - function PooledBuffer(capacity, buffers, totalLength) { +class PooledBuffer { + constructor(capacity, buffers, totalLength) { /** * Internal buffers used to keep the data. * Each buffer has a length of the maxBufferLength except last one. @@ -35424,9 +33318,9 @@ var PooledBuffer = /** @class */ (function () { this.capacity = capacity; this._size = 0; // allocate - var bufferNum = Math.ceil(capacity / maxBufferLength); - for (var i = 0; i < bufferNum; i++) { - var len = i === bufferNum - 1 ? capacity % maxBufferLength : maxBufferLength; + const bufferNum = Math.ceil(capacity / maxBufferLength); + for (let i = 0; i < bufferNum; i++) { + let len = i === bufferNum - 1 ? capacity % maxBufferLength : maxBufferLength; if (len === 0) { len = maxBufferLength; } @@ -35436,16 +33330,12 @@ var PooledBuffer = /** @class */ (function () { this.fill(buffers, totalLength); } } - Object.defineProperty(PooledBuffer.prototype, "size", { - /** - * The size of the data contained in the pooled buffers. - */ - get: function () { - return this._size; - }, - enumerable: false, - configurable: true - }); + /** + * The size of the data contained in the pooled buffers. + */ + get size() { + return this._size; + } /** * Fill the internal buffers with data in the input buffers serially * with respect to the total length and the total capacity of the internal buffers. @@ -35455,13 +33345,13 @@ var PooledBuffer = /** @class */ (function () { * @param totalLength - Total length of the data to be filled in. * */ - PooledBuffer.prototype.fill = function (buffers, totalLength) { + fill(buffers, totalLength) { this._size = Math.min(this.capacity, totalLength); - var i = 0, j = 0, targetOffset = 0, sourceOffset = 0, totalCopiedNum = 0; + let i = 0, j = 0, targetOffset = 0, sourceOffset = 0, totalCopiedNum = 0; while (totalCopiedNum < this._size) { - var source = buffers[i]; - var target = this.buffers[j]; - var copiedNum = source.copy(target, targetOffset, sourceOffset); + const source = buffers[i]; + const target = this.buffers[j]; + const copiedNum = source.copy(target, targetOffset, sourceOffset); totalCopiedNum += copiedNum; sourceOffset += copiedNum; targetOffset += copiedNum; @@ -35479,16 +33369,15 @@ var PooledBuffer = /** @class */ (function () { if (buffers.length > 0) { buffers[0] = buffers[0].slice(sourceOffset); } - }; + } /** * Get the readable stream assembled from all the data in the internal buffers. * */ - PooledBuffer.prototype.getReadableStream = function () { + getReadableStream() { return new BuffersStream(this.buffers, this.size); - }; - return PooledBuffer; -}()); + } +} // Copyright (c) Microsoft Corporation. /** @@ -35513,7 +33402,7 @@ var PooledBuffer = /** @class */ (function () { * in this situation, outgoing handlers are blocked. * Outgoing queue shouldn't be empty. */ -var BufferScheduler = /** @class */ (function () { +class BufferScheduler { /** * Creates an instance of BufferScheduler. * @@ -35526,7 +33415,7 @@ var BufferScheduler = /** @class */ (function () { * @param concurrency - Concurrency of executing outgoingHandlers (>0) * @param encoding - [Optional] Encoding of Readable stream when it's a string stream */ - function BufferScheduler(readable, bufferSize, maxBuffers, outgoingHandler, concurrency, encoding) { + constructor(readable, bufferSize, maxBuffers, outgoingHandler, concurrency, encoding) { /** * An internal event emitter. */ @@ -35572,13 +33461,13 @@ var BufferScheduler = /** @class */ (function () { */ this.outgoing = []; if (bufferSize <= 0) { - throw new RangeError("bufferSize must be larger than 0, current is " + bufferSize); + throw new RangeError(`bufferSize must be larger than 0, current is ${bufferSize}`); } if (maxBuffers <= 0) { - throw new RangeError("maxBuffers must be larger than 0, current is " + maxBuffers); + throw new RangeError(`maxBuffers must be larger than 0, current is ${maxBuffers}`); } if (concurrency <= 0) { - throw new RangeError("concurrency must be larger than 0, current is " + concurrency); + throw new RangeError(`concurrency must be larger than 0, current is ${concurrency}`); } this.bufferSize = bufferSize; this.maxBuffers = maxBuffers; @@ -35592,69 +33481,64 @@ var BufferScheduler = /** @class */ (function () { * returns error. * */ - BufferScheduler.prototype.do = function () { - return tslib.__awaiter(this, void 0, void 0, function () { - var _this = this; - return tslib.__generator(this, function (_a) { - return [2 /*return*/, new Promise(function (resolve, reject) { - _this.readable.on("data", function (data) { - data = typeof data === "string" ? Buffer.from(data, _this.encoding) : data; - _this.appendUnresolvedData(data); - if (!_this.resolveData()) { - _this.readable.pause(); - } - }); - _this.readable.on("error", function (err) { - _this.emitter.emit("error", err); - }); - _this.readable.on("end", function () { - _this.isStreamEnd = true; - _this.emitter.emit("checkEnd"); - }); - _this.emitter.on("error", function (err) { - _this.isError = true; - _this.readable.pause(); - reject(err); - }); - _this.emitter.on("checkEnd", function () { - if (_this.outgoing.length > 0) { - _this.triggerOutgoingHandlers(); - return; - } - if (_this.isStreamEnd && _this.executingOutgoingHandlers === 0) { - if (_this.unresolvedLength > 0 && _this.unresolvedLength < _this.bufferSize) { - var buffer_1 = _this.shiftBufferFromUnresolvedDataArray(); - _this.outgoingHandler(function () { return buffer_1.getReadableStream(); }, buffer_1.size, _this.offset) - .then(resolve) - .catch(reject); - } - else if (_this.unresolvedLength >= _this.bufferSize) { - return; - } - else { - resolve(); - } - } - }); - })]; + async do() { + return new Promise((resolve, reject) => { + this.readable.on("data", (data) => { + data = typeof data === "string" ? Buffer.from(data, this.encoding) : data; + this.appendUnresolvedData(data); + if (!this.resolveData()) { + this.readable.pause(); + } + }); + this.readable.on("error", (err) => { + this.emitter.emit("error", err); + }); + this.readable.on("end", () => { + this.isStreamEnd = true; + this.emitter.emit("checkEnd"); + }); + this.emitter.on("error", (err) => { + this.isError = true; + this.readable.pause(); + reject(err); + }); + this.emitter.on("checkEnd", () => { + if (this.outgoing.length > 0) { + this.triggerOutgoingHandlers(); + return; + } + if (this.isStreamEnd && this.executingOutgoingHandlers === 0) { + if (this.unresolvedLength > 0 && this.unresolvedLength < this.bufferSize) { + const buffer = this.shiftBufferFromUnresolvedDataArray(); + this.outgoingHandler(() => buffer.getReadableStream(), buffer.size, this.offset) + .then(resolve) + .catch(reject); + } + else if (this.unresolvedLength >= this.bufferSize) { + return; + } + else { + resolve(); + } + } }); }); - }; + } /** * Insert a new data into unresolved array. * * @param data - */ - BufferScheduler.prototype.appendUnresolvedData = function (data) { + appendUnresolvedData(data) { this.unresolvedDataArray.push(data); this.unresolvedLength += data.length; - }; + } /** * Try to shift a buffer with size in blockSize. The buffer returned may be less * than blockSize when data in unresolvedDataArray is less than bufferSize. * */ - BufferScheduler.prototype.shiftBufferFromUnresolvedDataArray = function (buffer) { + shiftBufferFromUnresolvedDataArray(buffer) { if (!buffer) { buffer = new PooledBuffer(this.bufferSize, this.unresolvedDataArray, this.unresolvedLength); } @@ -35663,7 +33547,7 @@ var BufferScheduler = /** @class */ (function () { } this.unresolvedLength -= buffer.size; return buffer; - }; + } /** * Resolve data in unresolvedDataArray. For every buffer with size in blockSize * shifted, it will try to get (or allocate a buffer) from incoming, and fill it, @@ -35673,9 +33557,9 @@ var BufferScheduler = /** @class */ (function () { * * @returns Return false when buffers in incoming are not enough, else true. */ - BufferScheduler.prototype.resolveData = function () { + resolveData() { while (this.unresolvedLength >= this.bufferSize) { - var buffer = void 0; + let buffer; if (this.incoming.length > 0) { buffer = this.incoming.shift(); this.shiftBufferFromUnresolvedDataArray(buffer); @@ -35694,75 +33578,55 @@ var BufferScheduler = /** @class */ (function () { this.triggerOutgoingHandlers(); } return true; - }; + } /** * Try to trigger a outgoing handler for every buffer in outgoing. Stop when * concurrency reaches. */ - BufferScheduler.prototype.triggerOutgoingHandlers = function () { - return tslib.__awaiter(this, void 0, void 0, function () { - var buffer; - return tslib.__generator(this, function (_a) { - do { - if (this.executingOutgoingHandlers >= this.concurrency) { - return [2 /*return*/]; - } - buffer = this.outgoing.shift(); - if (buffer) { - this.triggerOutgoingHandler(buffer); - } - } while (buffer); - return [2 /*return*/]; - }); - }); - }; + async triggerOutgoingHandlers() { + let buffer; + do { + if (this.executingOutgoingHandlers >= this.concurrency) { + return; + } + buffer = this.outgoing.shift(); + if (buffer) { + this.triggerOutgoingHandler(buffer); + } + } while (buffer); + } /** * Trigger a outgoing handler for a buffer shifted from outgoing. * * @param buffer - */ - BufferScheduler.prototype.triggerOutgoingHandler = function (buffer) { - return tslib.__awaiter(this, void 0, void 0, function () { - var bufferLength, err_1; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - bufferLength = buffer.size; - this.executingOutgoingHandlers++; - this.offset += bufferLength; - _a.label = 1; - case 1: - _a.trys.push([1, 3, , 4]); - return [4 /*yield*/, this.outgoingHandler(function () { return buffer.getReadableStream(); }, bufferLength, this.offset - bufferLength)]; - case 2: - _a.sent(); - return [3 /*break*/, 4]; - case 3: - err_1 = _a.sent(); - this.emitter.emit("error", err_1); - return [2 /*return*/]; - case 4: - this.executingOutgoingHandlers--; - this.reuseBuffer(buffer); - this.emitter.emit("checkEnd"); - return [2 /*return*/]; - } - }); - }); - }; + async triggerOutgoingHandler(buffer) { + const bufferLength = buffer.size; + this.executingOutgoingHandlers++; + this.offset += bufferLength; + try { + await this.outgoingHandler(() => buffer.getReadableStream(), bufferLength, this.offset - bufferLength); + } + catch (err) { + this.emitter.emit("error", err); + return; + } + this.executingOutgoingHandlers--; + this.reuseBuffer(buffer); + this.emitter.emit("checkEnd"); + } /** * Return buffer used by outgoing handler into incoming. * * @param buffer - */ - BufferScheduler.prototype.reuseBuffer = function (buffer) { + reuseBuffer(buffer) { this.incoming.push(buffer); if (!this.isError && this.resolveData() && !this.isStreamEnd) { this.readable.resume(); } - }; - return BufferScheduler; -}()); + } +} // Copyright (c) Microsoft Corporation. /** @@ -35774,39 +33638,34 @@ var BufferScheduler = /** @class */ (function () { * @param end - To which position in the buffer to be filled, exclusive * @param encoding - Encoding of the Readable stream */ -function streamToBuffer(stream, buffer, offset, end, encoding) { - return tslib.__awaiter(this, void 0, void 0, function () { - var pos, count; - return tslib.__generator(this, function (_a) { - pos = 0; - count = end - offset; - return [2 /*return*/, new Promise(function (resolve, reject) { - stream.on("readable", function () { - if (pos >= count) { - resolve(); - return; - } - var chunk = stream.read(); - if (!chunk) { - return; - } - if (typeof chunk === "string") { - chunk = Buffer.from(chunk, encoding); - } - // How much data needed in this chunk - var chunkLength = pos + chunk.length > count ? count - pos : chunk.length; - buffer.fill(chunk.slice(0, chunkLength), offset + pos, offset + pos + chunkLength); - pos += chunkLength; - }); - stream.on("end", function () { - if (pos < count) { - reject(new Error("Stream drains before getting enough data needed. Data read: " + pos + ", data need: " + count)); - } - resolve(); - }); - stream.on("error", reject); - })]; +async function streamToBuffer(stream, buffer, offset, end, encoding) { + let pos = 0; // Position in stream + const count = end - offset; // Total amount of data needed in stream + return new Promise((resolve, reject) => { + stream.on("readable", () => { + if (pos >= count) { + resolve(); + return; + } + let chunk = stream.read(); + if (!chunk) { + return; + } + if (typeof chunk === "string") { + chunk = Buffer.from(chunk, encoding); + } + // How much data needed in this chunk + const chunkLength = pos + chunk.length > count ? count - pos : chunk.length; + buffer.fill(chunk.slice(0, chunkLength), offset + pos, offset + pos + chunkLength); + pos += chunkLength; }); + stream.on("end", () => { + if (pos < count) { + reject(new Error(`Stream drains before getting enough data needed. Data read: ${pos}, data need: ${count}`)); + } + resolve(); + }); + stream.on("error", reject); }); } /** @@ -35818,34 +33677,29 @@ function streamToBuffer(stream, buffer, offset, end, encoding) { * @returns with the count of bytes read. * @throws `RangeError` If buffer size is not big enough. */ -function streamToBuffer2(stream, buffer, encoding) { - return tslib.__awaiter(this, void 0, void 0, function () { - var pos, bufferSize; - return tslib.__generator(this, function (_a) { - pos = 0; - bufferSize = buffer.length; - return [2 /*return*/, new Promise(function (resolve, reject) { - stream.on("readable", function () { - var chunk = stream.read(); - if (!chunk) { - return; - } - if (typeof chunk === "string") { - chunk = Buffer.from(chunk, encoding); - } - if (pos + chunk.length > bufferSize) { - reject(new Error("Stream exceeds buffer size. Buffer size: " + bufferSize)); - return; - } - buffer.fill(chunk, pos, pos + chunk.length); - pos += chunk.length; - }); - stream.on("end", function () { - resolve(pos); - }); - stream.on("error", reject); - })]; +async function streamToBuffer2(stream, buffer, encoding) { + let pos = 0; // Position in stream + const bufferSize = buffer.length; + return new Promise((resolve, reject) => { + stream.on("readable", () => { + let chunk = stream.read(); + if (!chunk) { + return; + } + if (typeof chunk === "string") { + chunk = Buffer.from(chunk, encoding); + } + if (pos + chunk.length > bufferSize) { + reject(new Error(`Stream exceeds buffer size. Buffer size: ${bufferSize}`)); + return; + } + buffer.fill(chunk, pos, pos + chunk.length); + pos += chunk.length; }); + stream.on("end", () => { + resolve(pos); + }); + stream.on("error", reject); }); } /** @@ -35856,21 +33710,17 @@ function streamToBuffer2(stream, buffer, encoding) { * @param rs - The read stream. * @param file - Destination file path. */ -function readStreamToLocalFile(rs, file) { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - return [2 /*return*/, new Promise(function (resolve, reject) { - var ws = fs.createWriteStream(file); - rs.on("error", function (err) { - reject(err); - }); - ws.on("error", function (err) { - reject(err); - }); - ws.on("close", resolve); - rs.pipe(ws); - })]; +async function readStreamToLocalFile(rs, file) { + return new Promise((resolve, reject) => { + const ws = fs.createWriteStream(file); + rs.on("error", (err) => { + reject(err); }); + ws.on("error", (err) => { + reject(err); + }); + ws.on("close", resolve); + rs.pipe(ws); }); } /** @@ -35878,22 +33728,22 @@ function readStreamToLocalFile(rs, file) { * * Promisified version of fs.stat(). */ -var fsStat = util.promisify(fs.stat); -var fsCreateReadStream = fs.createReadStream; +const fsStat = util.promisify(fs.stat); +const fsCreateReadStream = fs.createReadStream; /** * A BlobClient represents a URL to an Azure Storage blob; the blob may be a block blob, * append blob, or page blob. */ -var BlobClient = /** @class */ (function (_super) { - tslib.__extends(BlobClient, _super); - function BlobClient(urlOrConnectionString, credentialOrPipelineOrContainerName, blobNameOrOptions, options) { - var _a; - var _this = this; +class BlobClient extends StorageClient { + constructor(urlOrConnectionString, credentialOrPipelineOrContainerName, blobNameOrOptions, + // Legacy, no fix for eslint error without breaking. Disable it for this interface. + /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/ + options) { options = options || {}; - var pipeline; - var url; - if (credentialOrPipelineOrContainerName instanceof Pipeline) { + let pipeline; + let url; + if (isPipelineLike(credentialOrPipelineOrContainerName)) { // (url: string, pipeline: Pipeline) url = urlOrConnectionString; pipeline = credentialOrPipelineOrContainerName; @@ -35918,12 +33768,12 @@ var BlobClient = /** @class */ (function (_super) { blobNameOrOptions && typeof blobNameOrOptions === "string") { // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions) - var containerName = credentialOrPipelineOrContainerName; - var blobName = blobNameOrOptions; - var extractedCreds = extractConnectionStringParts(urlOrConnectionString); + const containerName = credentialOrPipelineOrContainerName; + const blobName = blobNameOrOptions; + const extractedCreds = extractConnectionStringParts(urlOrConnectionString); if (extractedCreds.kind === "AccountConnString") { { - var sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey); + const sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey); url = appendToURLPath(appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)), encodeURIComponent(blobName)); options.proxyOptions = coreHttp.getDefaultProxySettings(extractedCreds.proxyUri); pipeline = newPipeline(sharedKeyCredential, options); @@ -35943,33 +33793,27 @@ var BlobClient = /** @class */ (function (_super) { else { throw new Error("Expecting non-empty strings for containerName and blobName parameters"); } - _this = _super.call(this, url, pipeline) || this; - (_a = _this.getBlobAndContainerNamesFromUrl(), _this._name = _a.blobName, _this._containerName = _a.containerName); - _this.blobContext = new Blob$1(_this.storageClientContext); - _this._snapshot = getURLParameter(_this.url, URLConstants.Parameters.SNAPSHOT); - _this._versionId = getURLParameter(_this.url, URLConstants.Parameters.VERSIONID); - return _this; + super(url, pipeline); + ({ + blobName: this._name, + containerName: this._containerName + } = this.getBlobAndContainerNamesFromUrl()); + this.blobContext = new Blob$1(this.storageClientContext); + this._snapshot = getURLParameter(this.url, URLConstants.Parameters.SNAPSHOT); + this._versionId = getURLParameter(this.url, URLConstants.Parameters.VERSIONID); + } + /** + * The name of the blob. + */ + get name() { + return this._name; + } + /** + * The name of the storage container the blob is associated with. + */ + get containerName() { + return this._containerName; } - Object.defineProperty(BlobClient.prototype, "name", { - /** - * The name of the blob. - */ - get: function () { - return this._name; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobClient.prototype, "containerName", { - /** - * The name of the storage container the blob is associated with. - */ - get: function () { - return this._containerName; - }, - enumerable: false, - configurable: true - }); /** * Creates a new BlobClient object identical to the source but with the specified snapshot timestamp. * Provide "" will remove the snapshot and return a Client to the base blob. @@ -35977,9 +33821,9 @@ var BlobClient = /** @class */ (function (_super) { * @param snapshot - The snapshot timestamp. * @returns A new BlobClient object identical to the source but with the specified snapshot timestamp */ - BlobClient.prototype.withSnapshot = function (snapshot) { + withSnapshot(snapshot) { return new BlobClient(setURLParameter(this.url, URLConstants.Parameters.SNAPSHOT, snapshot.length === 0 ? undefined : snapshot), this.pipeline); - }; + } /** * Creates a new BlobClient object pointing to a version of this blob. * Provide "" will remove the versionId and return a Client to the base blob. @@ -35987,30 +33831,30 @@ var BlobClient = /** @class */ (function (_super) { * @param versionId - The versionId. * @returns A new BlobClient object pointing to the version of this blob. */ - BlobClient.prototype.withVersion = function (versionId) { + withVersion(versionId) { return new BlobClient(setURLParameter(this.url, URLConstants.Parameters.VERSIONID, versionId.length === 0 ? undefined : versionId), this.pipeline); - }; + } /** * Creates a AppendBlobClient object. * */ - BlobClient.prototype.getAppendBlobClient = function () { + getAppendBlobClient() { return new AppendBlobClient(this.url, this.pipeline); - }; + } /** * Creates a BlockBlobClient object. * */ - BlobClient.prototype.getBlockBlobClient = function () { + getBlockBlobClient() { return new BlockBlobClient(this.url, this.pipeline); - }; + } /** * Creates a PageBlobClient object. * */ - BlobClient.prototype.getPageBlobClient = function () { + getPageBlobClient() { return new PageBlobClient(this.url, this.pipeline); - }; + } /** * Reads or downloads a blob from the system, including its metadata and properties. * You can also call Get Blob to read a snapshot. @@ -36070,98 +33914,77 @@ var BlobClient = /** @class */ (function (_super) { * } * ``` */ - BlobClient.prototype.download = function (offset, count, options) { + async download(offset = 0, count, options = {}) { var _a; - if (offset === void 0) { offset = 0; } - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, res_1, wrappedRes, e_1; - var _this = this; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - options.conditions = options.conditions || {}; - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - _b = createSpan("BlobClient-download", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.blobContext.download(tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), requestOptions: { - onDownloadProgress: coreHttp.isNode ? undefined : options.onProgress // for Node.js, progress is reported by RetriableReadableStream - }, range: offset === 0 && !count ? undefined : rangeToString({ offset: offset, count: count }), rangeGetContentMD5: options.rangeGetContentMD5, rangeGetContentCRC64: options.rangeGetContentCrc64, snapshot: options.snapshot, cpkInfo: options.customerProvidedKey }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - res_1 = _c.sent(); - wrappedRes = tslib.__assign(tslib.__assign({}, res_1), { _response: res_1._response, objectReplicationDestinationPolicyId: res_1.objectReplicationPolicyId, objectReplicationSourceProperties: parseObjectReplicationRecord(res_1.objectReplicationRules) }); - // We support retrying when download stream unexpected ends in Node.js runtime - // Following code shouldn't be bundled into browser build, however some - // bundlers may try to bundle following code and "FileReadResponse.ts". - // In this case, "FileDownloadResponse.browser.ts" will be used as a shim of "FileDownloadResponse.ts" - // The config is in package.json "browser" field - if (options.maxRetryRequests === undefined || options.maxRetryRequests < 0) { - // TODO: Default value or make it a required parameter? - options.maxRetryRequests = DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS; - } - if (res_1.contentLength === undefined) { - throw new RangeError("File download response doesn't contain valid content length header"); - } - if (!res_1.etag) { - throw new RangeError("File download response doesn't contain valid etag header"); - } - return [2 /*return*/, new BlobDownloadResponse(wrappedRes, function (start) { return tslib.__awaiter(_this, void 0, void 0, function () { - var updatedOptions; - var _a; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - updatedOptions = { - leaseAccessConditions: options.conditions, - modifiedAccessConditions: { - ifMatch: options.conditions.ifMatch || res_1.etag, - ifModifiedSince: options.conditions.ifModifiedSince, - ifNoneMatch: options.conditions.ifNoneMatch, - ifUnmodifiedSince: options.conditions.ifUnmodifiedSince, - ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions - }, - range: rangeToString({ - count: offset + res_1.contentLength - start, - offset: start - }), - rangeGetContentMD5: options.rangeGetContentMD5, - rangeGetContentCRC64: options.rangeGetContentCrc64, - snapshot: options.snapshot, - cpkInfo: options.customerProvidedKey - }; - return [4 /*yield*/, this.blobContext.download(tslib.__assign({ abortSignal: options.abortSignal }, updatedOptions))]; - case 1: - // Debug purpose only - // console.log( - // `Read from internal stream, range: ${ - // updatedOptions.range - // }, options: ${JSON.stringify(updatedOptions)}` - // ); - return [2 /*return*/, (_b.sent()).readableStreamBody]; - } - }); - }); }, offset, res_1.contentLength, { - maxRetryRequests: options.maxRetryRequests, - onProgress: options.onProgress - })]; - case 3: - e_1 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_1.message - }); - throw e_1; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + options.conditions = options.conditions || {}; + options.conditions = options.conditions || {}; + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + const { span, updatedOptions } = createSpan("BlobClient-download", options); + try { + const res = await this.blobContext.download(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), requestOptions: { + onDownloadProgress: coreHttp.isNode ? undefined : options.onProgress // for Node.js, progress is reported by RetriableReadableStream + }, range: offset === 0 && !count ? undefined : rangeToString({ offset, count }), rangeGetContentMD5: options.rangeGetContentMD5, rangeGetContentCRC64: options.rangeGetContentCrc64, snapshot: options.snapshot, cpkInfo: options.customerProvidedKey }, convertTracingToRequestOptionsBase(updatedOptions))); + const wrappedRes = Object.assign(Object.assign({}, res), { _response: res._response, objectReplicationDestinationPolicyId: res.objectReplicationPolicyId, objectReplicationSourceProperties: parseObjectReplicationRecord(res.objectReplicationRules) }); + // Return browser response immediately + if (false) {} + // We support retrying when download stream unexpected ends in Node.js runtime + // Following code shouldn't be bundled into browser build, however some + // bundlers may try to bundle following code and "FileReadResponse.ts". + // In this case, "FileDownloadResponse.browser.ts" will be used as a shim of "FileDownloadResponse.ts" + // The config is in package.json "browser" field + if (options.maxRetryRequests === undefined || options.maxRetryRequests < 0) { + // TODO: Default value or make it a required parameter? + options.maxRetryRequests = DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS; + } + if (res.contentLength === undefined) { + throw new RangeError(`File download response doesn't contain valid content length header`); + } + if (!res.etag) { + throw new RangeError(`File download response doesn't contain valid etag header`); + } + return new BlobDownloadResponse(wrappedRes, async (start) => { + var _a; + const updatedDownloadOptions = { + leaseAccessConditions: options.conditions, + modifiedAccessConditions: { + ifMatch: options.conditions.ifMatch || res.etag, + ifModifiedSince: options.conditions.ifModifiedSince, + ifNoneMatch: options.conditions.ifNoneMatch, + ifUnmodifiedSince: options.conditions.ifUnmodifiedSince, + ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions + }, + range: rangeToString({ + count: offset + res.contentLength - start, + offset: start + }), + rangeGetContentMD5: options.rangeGetContentMD5, + rangeGetContentCRC64: options.rangeGetContentCrc64, + snapshot: options.snapshot, + cpkInfo: options.customerProvidedKey + }; + // Debug purpose only + // console.log( + // `Read from internal stream, range: ${ + // updatedOptions.range + // }, options: ${JSON.stringify(updatedOptions)}` + // ); + return (await this.blobContext.download(Object.assign({ abortSignal: options.abortSignal }, updatedDownloadOptions))).readableStreamBody; + }, offset, res.contentLength, { + maxRetryRequests: options.maxRetryRequests, + onProgress: options.onProgress }); - }); - }; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message + }); + throw e; + } + finally { + span.end(); + } + } /** * Returns true if the Azure blob resource represented by this client exists; false otherwise. * @@ -36171,49 +33994,36 @@ var BlobClient = /** @class */ (function (_super) { * * @param options - options to Exists operation. */ - BlobClient.prototype.exists = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_2; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobClient-exists", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.getProperties({ - abortSignal: options.abortSignal, - customerProvidedKey: options.customerProvidedKey, - conditions: options.conditions, - tracingOptions: updatedOptions.tracingOptions - })]; - case 2: - _b.sent(); - return [2 /*return*/, true]; - case 3: - e_2 = _b.sent(); - if (e_2.statusCode === 404) { - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: "Expected exception when checking blob existence" - }); - return [2 /*return*/, false]; - } - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_2.message - }); - throw e_2; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async exists(options = {}) { + const { span, updatedOptions } = createSpan("BlobClient-exists", options); + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + await this.getProperties({ + abortSignal: options.abortSignal, + customerProvidedKey: options.customerProvidedKey, + conditions: options.conditions, + tracingOptions: updatedOptions.tracingOptions }); - }); - }; + return true; + } + catch (e) { + if (e.statusCode === 404) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: "Expected exception when checking blob existence" + }); + return false; + } + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message + }); + throw e; + } + finally { + span.end(); + } + } /** * Returns all user-defined metadata, standard HTTP properties, and system properties * for the blob. It does not return the content of the blob. @@ -36226,39 +34036,26 @@ var BlobClient = /** @class */ (function (_super) { * * @param options - Optional options to Get Properties operation. */ - BlobClient.prototype.getProperties = function (options) { + async getProperties(options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, res, e_3; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("BlobClient-getProperties", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - options.conditions = options.conditions || {}; - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.blobContext.getProperties(tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - res = _c.sent(); - return [2 /*return*/, tslib.__assign(tslib.__assign({}, res), { _response: res._response, objectReplicationDestinationPolicyId: res.objectReplicationPolicyId, objectReplicationSourceProperties: parseObjectReplicationRecord(res.objectReplicationRules) })]; - case 3: - e_3 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_3.message - }); - throw e_3; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobClient-getProperties", options); + try { + options.conditions = options.conditions || {}; + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + const res = await this.blobContext.getProperties(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey }, convertTracingToRequestOptionsBase(updatedOptions))); + return Object.assign(Object.assign({}, res), { _response: res._response, objectReplicationDestinationPolicyId: res.objectReplicationPolicyId, objectReplicationSourceProperties: parseObjectReplicationRecord(res.objectReplicationRules) }); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Marks the specified blob or snapshot for deletion. The blob is later deleted * during garbage collection. Note that in order to delete a blob, you must delete @@ -36268,36 +34065,24 @@ var BlobClient = /** @class */ (function (_super) { * * @param options - Optional options to Blob Delete operation. */ - BlobClient.prototype.delete = function (options) { + async delete(options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_4; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("BlobClient-delete", options), span = _b.span, updatedOptions = _b.updatedOptions; - options.conditions = options.conditions || {}; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.blobContext.delete(tslib.__assign({ abortSignal: options.abortSignal, deleteSnapshots: options.deleteSnapshots, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_4 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_4.message - }); - throw e_4; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobClient-delete", options); + options.conditions = options.conditions || {}; + try { + return await this.blobContext.delete(Object.assign({ abortSignal: options.abortSignal, deleteSnapshots: options.deleteSnapshots, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Marks the specified blob or snapshot for deletion if it exists. The blob is later deleted * during garbage collection. Note that in order to delete a blob, you must delete @@ -36307,45 +34092,32 @@ var BlobClient = /** @class */ (function (_super) { * * @param options - Optional options to Blob Delete operation. */ - BlobClient.prototype.deleteIfExists = function (options) { + async deleteIfExists(options = {}) { var _a, _b; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _c, span, updatedOptions, res, e_5; - return tslib.__generator(this, function (_d) { - switch (_d.label) { - case 0: - _c = createSpan("BlobClient-deleteIfExists", options), span = _c.span, updatedOptions = _c.updatedOptions; - _d.label = 1; - case 1: - _d.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.delete(updatedOptions)]; - case 2: - res = _d.sent(); - return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable - })]; - case 3: - e_5 = _d.sent(); - if (((_a = e_5.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "BlobNotFound") { - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: "Expected exception when deleting a blob or snapshot only if it exists." - }); - return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: false }, (_b = e_5.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e_5.response })]; - } - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_5.message - }); - throw e_5; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobClient-deleteIfExists", options); + try { + const res = await this.delete(updatedOptions); + return Object.assign(Object.assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable + }); + } + catch (e) { + if (((_a = e.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "BlobNotFound") { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: "Expected exception when deleting a blob or snapshot only if it exists." + }); + return Object.assign(Object.assign({ succeeded: false }, (_b = e.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e.response }); + } + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Restores the contents and metadata of soft deleted blob and any associated * soft deleted snapshots. Undelete Blob is supported only on version 2017-07-29 @@ -36354,34 +34126,22 @@ var BlobClient = /** @class */ (function (_super) { * * @param options - Optional options to Blob Undelete operation. */ - BlobClient.prototype.undelete = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_6; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobClient-undelete", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.blobContext.undelete(tslib.__assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_6 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_6.message - }); - throw e_6; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async undelete(options = {}) { + const { span, updatedOptions } = createSpan("BlobClient-undelete", options); + try { + return await this.blobContext.undelete(Object.assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Sets system properties on the blob. * @@ -36392,39 +34152,30 @@ var BlobClient = /** @class */ (function (_super) { * @param blobHTTPHeaders - If no value provided, or no value provided for * the specified blob HTTP headers, these blob HTTP * headers without a value will be cleared. + * A common header to set is `blobContentType` + * enabling the browser to provide functionality + * based on file type. * @param options - Optional options to Blob Set HTTP Headers operation. */ - BlobClient.prototype.setHTTPHeaders = function (blobHTTPHeaders, options) { + async setHTTPHeaders(blobHTTPHeaders, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_7; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("BlobClient-setHTTPHeaders", options), span = _b.span, updatedOptions = _b.updatedOptions; - options.conditions = options.conditions || {}; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.blobContext.setHttpHeaders(tslib.__assign({ abortSignal: options.abortSignal, blobHttpHeaders: blobHTTPHeaders, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_7 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_7.message - }); - throw e_7; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobClient-setHTTPHeaders", options); + options.conditions = options.conditions || {}; + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.blobContext.setHttpHeaders(Object.assign({ abortSignal: options.abortSignal, blobHttpHeaders: blobHTTPHeaders, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Sets user-defined metadata for the specified blob as one or more name-value pairs. * @@ -36436,37 +34187,25 @@ var BlobClient = /** @class */ (function (_super) { * If no value provided the existing metadata will be removed. * @param options - Optional options to Set Metadata operation. */ - BlobClient.prototype.setMetadata = function (metadata, options) { + async setMetadata(metadata, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_8; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("BlobClient-setMetadata", options), span = _b.span, updatedOptions = _b.updatedOptions; - options.conditions = options.conditions || {}; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.blobContext.setMetadata(tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, metadata: metadata, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_8 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_8.message - }); - throw e_8; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobClient-setMetadata", options); + options.conditions = options.conditions || {}; + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.blobContext.setMetadata(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, metadata, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Sets tags on the underlying blob. * A blob can have up to 10 tags. Tag keys must be between 1 and 128 characters. Tag values must be between 0 and 256 characters. @@ -36476,118 +34215,81 @@ var BlobClient = /** @class */ (function (_super) { * @param tags - * @param options - */ - BlobClient.prototype.setTags = function (tags, options) { + async setTags(tags, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_9; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("BlobClient-setTags", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.blobContext.setTags(tslib.__assign(tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)), { tags: toBlobTags(tags) }))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_9 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_9.message - }); - throw e_9; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobClient-setTags", options); + try { + return await this.blobContext.setTags(Object.assign(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)), { tags: toBlobTags(tags) })); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Gets the tags associated with the underlying blob. * * @param options - */ - BlobClient.prototype.getTags = function (options) { + async getTags(options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, response, wrappedResponse, e_10; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("BlobClient-getTags", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.blobContext.getTags(tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - response = _c.sent(); - wrappedResponse = tslib.__assign(tslib.__assign({}, response), { _response: response._response, tags: toTags({ blobTagSet: response.blobTagSet }) || {} }); - return [2 /*return*/, wrappedResponse]; - case 3: - e_10 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_10.message - }); - throw e_10; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobClient-getTags", options); + try { + const response = await this.blobContext.getTags(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions))); + const wrappedResponse = Object.assign(Object.assign({}, response), { _response: response._response, tags: toTags({ blobTagSet: response.blobTagSet }) || {} }); + return wrappedResponse; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Get a {@link BlobLeaseClient} that manages leases on the blob. * * @param proposeLeaseId - Initial proposed lease Id. * @returns A new BlobLeaseClient object for managing leases on the blob. */ - BlobClient.prototype.getBlobLeaseClient = function (proposeLeaseId) { + getBlobLeaseClient(proposeLeaseId) { return new BlobLeaseClient(this, proposeLeaseId); - }; + } /** * Creates a read-only snapshot of a blob. * @see https://docs.microsoft.com/en-us/rest/api/storageservices/snapshot-blob * * @param options - Optional options to the Blob Create Snapshot operation. */ - BlobClient.prototype.createSnapshot = function (options) { + async createSnapshot(options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_11; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("BlobClient-createSnapshot", options), span = _b.span, updatedOptions = _b.updatedOptions; - options.conditions = options.conditions || {}; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.blobContext.createSnapshot(tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_11 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_11.message - }); - throw e_11; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobClient-createSnapshot", options); + options.conditions = options.conditions || {}; + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.blobContext.createSnapshot(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Asynchronously copies a blob to a destination within the storage account. * This method returns a long running operation poller that allows you to wait @@ -36660,57 +34362,25 @@ var BlobClient = /** @class */ (function (_super) { * @param copySource - url to the source Azure Blob/File. * @param options - Optional options to the Blob Start Copy From URL operation. */ - BlobClient.prototype.beginCopyFromURL = function (copySource, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var client, poller; - var _this = this; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - client = { - abortCopyFromURL: function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return _this.abortCopyFromURL.apply(_this, args); - }, - getProperties: function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return _this.getProperties.apply(_this, args); - }, - startCopyFromURL: function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return _this.startCopyFromURL.apply(_this, args); - } - }; - poller = new BlobBeginCopyFromUrlPoller({ - blobClient: client, - copySource: copySource, - intervalInMs: options.intervalInMs, - onProgress: options.onProgress, - resumeFrom: options.resumeFrom, - startCopyFromURLOptions: options - }); - // Trigger the startCopyFromURL call by calling poll. - // Any errors from this method should be surfaced to the user. - return [4 /*yield*/, poller.poll()]; - case 1: - // Trigger the startCopyFromURL call by calling poll. - // Any errors from this method should be surfaced to the user. - _a.sent(); - return [2 /*return*/, poller]; - } - }); + async beginCopyFromURL(copySource, options = {}) { + const client = { + abortCopyFromURL: (...args) => this.abortCopyFromURL(...args), + getProperties: (...args) => this.getProperties(...args), + startCopyFromURL: (...args) => this.startCopyFromURL(...args) + }; + const poller = new BlobBeginCopyFromUrlPoller({ + blobClient: client, + copySource, + intervalInMs: options.intervalInMs, + onProgress: options.onProgress, + resumeFrom: options.resumeFrom, + startCopyFromURLOptions: options }); - }; + // Trigger the startCopyFromURL call by calling poll. + // Any errors from this method should be surfaced to the user. + await poller.poll(); + return poller; + } /** * Aborts a pending asynchronous Copy Blob operation, and leaves a destination blob with zero * length and full metadata. Version 2012-02-12 and newer. @@ -36719,34 +34389,22 @@ var BlobClient = /** @class */ (function (_super) { * @param copyId - Id of the Copy From URL operation. * @param options - Optional options to the Blob Abort Copy From URL operation. */ - BlobClient.prototype.abortCopyFromURL = function (copyId, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_12; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobClient-abortCopyFromURL", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.blobContext.abortCopyFromURL(copyId, tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_12 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_12.message - }); - throw e_12; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async abortCopyFromURL(copyId, options = {}) { + const { span, updatedOptions } = createSpan("BlobClient-abortCopyFromURL", options); + try { + return await this.blobContext.abortCopyFromURL(copyId, Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * The synchronous Copy From URL operation copies a blob or an internet resource to a new blob. It will not * return a response until the copy is complete. @@ -36755,42 +34413,30 @@ var BlobClient = /** @class */ (function (_super) { * @param copySource - The source URL to copy from, Shared Access Signature(SAS) maybe needed for authentication * @param options - */ - BlobClient.prototype.syncCopyFromURL = function (copySource, options) { - var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_13; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("BlobClient-syncCopyFromURL", options), span = _b.span, updatedOptions = _b.updatedOptions; - options.conditions = options.conditions || {}; - options.sourceConditions = options.sourceConditions || {}; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.blobContext.copyFromURL(copySource, tslib.__assign({ abortSignal: options.abortSignal, metadata: options.metadata, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), sourceModifiedAccessConditions: { - sourceIfMatch: options.sourceConditions.ifMatch, - sourceIfModifiedSince: options.sourceConditions.ifModifiedSince, - sourceIfNoneMatch: options.sourceConditions.ifNoneMatch, - sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince - }, sourceContentMD5: options.sourceContentMD5, blobTagsString: toBlobTagsString(options.tags) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_13 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_13.message - }); - throw e_13; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async syncCopyFromURL(copySource, options = {}) { + var _a, _b, _c; + const { span, updatedOptions } = createSpan("BlobClient-syncCopyFromURL", options); + options.conditions = options.conditions || {}; + options.sourceConditions = options.sourceConditions || {}; + try { + return await this.blobContext.copyFromURL(copySource, Object.assign({ abortSignal: options.abortSignal, metadata: options.metadata, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), sourceModifiedAccessConditions: { + sourceIfMatch: options.sourceConditions.ifMatch, + sourceIfModifiedSince: options.sourceConditions.ifModifiedSince, + sourceIfNoneMatch: options.sourceConditions.ifNoneMatch, + sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince + }, sourceContentMD5: options.sourceContentMD5, copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization), blobTagsString: toBlobTagsString(options.tags), immutabilityPolicyExpiry: (_b = options.immutabilityPolicy) === null || _b === void 0 ? void 0 : _b.expiriesOn, immutabilityPolicyMode: (_c = options.immutabilityPolicy) === null || _c === void 0 ? void 0 : _c.policyMode, legalHold: options.legalHold }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Sets the tier on a blob. The operation is allowed on a page blob in a premium * storage account and on a block blob in a blob storage account (locally redundant @@ -36802,159 +34448,119 @@ var BlobClient = /** @class */ (function (_super) { * @param tier - The tier to be set on the blob. Valid values are Hot, Cool, or Archive. * @param options - Optional options to the Blob Set Tier operation. */ - BlobClient.prototype.setAccessTier = function (tier, options) { + async setAccessTier(tier, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_14; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("BlobClient-setAccessTier", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.blobContext.setTier(toAccessTier(tier), tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), rehydratePriority: options.rehydratePriority }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_14 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_14.message - }); - throw e_14; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobClient-setAccessTier", options); + try { + return await this.blobContext.setTier(toAccessTier(tier), Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), rehydratePriority: options.rehydratePriority }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; - BlobClient.prototype.downloadToBuffer = function (param1, param2, param3, param4) { - if (param4 === void 0) { param4 = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var buffer, offset, count, options, _a, span, updatedOptions, response, transferProgress_1, batch, _loop_1, off, e_15; - var _this = this; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - offset = 0; - count = 0; - options = param4; - if (param1 instanceof Buffer) { - buffer = param1; - offset = param2 || 0; - count = typeof param3 === "number" ? param3 : 0; - } - else { - offset = typeof param1 === "number" ? param1 : 0; - count = typeof param2 === "number" ? param2 : 0; - options = param3 || {}; - } - _a = createSpan("BlobClient-downloadToBuffer", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 5, 6, 7]); - if (!options.blockSize) { - options.blockSize = 0; - } - if (options.blockSize < 0) { - throw new RangeError("blockSize option must be >= 0"); - } - if (options.blockSize === 0) { - options.blockSize = DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES; - } - if (offset < 0) { - throw new RangeError("offset option must be >= 0"); - } - if (count && count <= 0) { - throw new RangeError("count option must be greater than 0"); - } - if (!options.conditions) { - options.conditions = {}; - } - if (!!count) return [3 /*break*/, 3]; - return [4 /*yield*/, this.getProperties(tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), convertTracingToRequestOptionsBase(updatedOptions)) }))]; - case 2: - response = _b.sent(); - count = response.contentLength - offset; - if (count < 0) { - throw new RangeError("offset " + offset + " shouldn't be larger than blob size " + response.contentLength); - } - _b.label = 3; - case 3: - // Allocate the buffer of size = count if the buffer is not provided - if (!buffer) { - try { - buffer = Buffer.alloc(count); - } - catch (error) { - throw new Error("Unable to allocate the buffer of size: " + count + "(in bytes). Please try passing your own buffer to the \"downloadToBuffer\" method or try using other methods like \"download\" or \"downloadToFile\".\t " + error.message); - } - } - if (buffer.length < count) { - throw new RangeError("The buffer's size should be equal to or larger than the request count of bytes: " + count); - } - transferProgress_1 = 0; - batch = new Batch(options.concurrency); - _loop_1 = function (off) { - batch.addOperation(function () { return tslib.__awaiter(_this, void 0, void 0, function () { - var chunkEnd, response, stream; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - chunkEnd = offset + count; - if (off + options.blockSize < chunkEnd) { - chunkEnd = off + options.blockSize; - } - return [4 /*yield*/, this.download(off, chunkEnd - off, { - abortSignal: options.abortSignal, - conditions: options.conditions, - maxRetryRequests: options.maxRetryRequestsPerBlock, - customerProvidedKey: options.customerProvidedKey, - tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), convertTracingToRequestOptionsBase(updatedOptions)) - })]; - case 1: - response = _a.sent(); - stream = response.readableStreamBody; - return [4 /*yield*/, streamToBuffer(stream, buffer, off - offset, chunkEnd - offset)]; - case 2: - _a.sent(); - // Update progress after block is downloaded, in case of block trying - // Could provide finer grained progress updating inside HTTP requests, - // only if convenience layer download try is enabled - transferProgress_1 += chunkEnd - off; - if (options.onProgress) { - options.onProgress({ loadedBytes: transferProgress_1 }); - } - return [2 /*return*/]; - } - }); - }); }); - }; - for (off = offset; off < offset + count; off = off + options.blockSize) { - _loop_1(off); - } - return [4 /*yield*/, batch.do()]; - case 4: - _b.sent(); - return [2 /*return*/, buffer]; - case 5: - e_15 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_15.message - }); - throw e_15; - case 6: - span.end(); - return [7 /*endfinally*/]; - case 7: return [2 /*return*/]; + throw e; + } + finally { + span.end(); + } + } + async downloadToBuffer(param1, param2, param3, param4 = {}) { + let buffer; + let offset = 0; + let count = 0; + let options = param4; + if (param1 instanceof Buffer) { + buffer = param1; + offset = param2 || 0; + count = typeof param3 === "number" ? param3 : 0; + } + else { + offset = typeof param1 === "number" ? param1 : 0; + count = typeof param2 === "number" ? param2 : 0; + options = param3 || {}; + } + const { span, updatedOptions } = createSpan("BlobClient-downloadToBuffer", options); + try { + if (!options.blockSize) { + options.blockSize = 0; + } + if (options.blockSize < 0) { + throw new RangeError("blockSize option must be >= 0"); + } + if (options.blockSize === 0) { + options.blockSize = DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES; + } + if (offset < 0) { + throw new RangeError("offset option must be >= 0"); + } + if (count && count <= 0) { + throw new RangeError("count option must be greater than 0"); + } + if (!options.conditions) { + options.conditions = {}; + } + // Customer doesn't specify length, get it + if (!count) { + const response = await this.getProperties(Object.assign(Object.assign({}, options), { tracingOptions: Object.assign(Object.assign({}, options.tracingOptions), convertTracingToRequestOptionsBase(updatedOptions)) })); + count = response.contentLength - offset; + if (count < 0) { + throw new RangeError(`offset ${offset} shouldn't be larger than blob size ${response.contentLength}`); } + } + // Allocate the buffer of size = count if the buffer is not provided + if (!buffer) { + try { + buffer = Buffer.alloc(count); + } + catch (error) { + throw new Error(`Unable to allocate the buffer of size: ${count}(in bytes). Please try passing your own buffer to the "downloadToBuffer" method or try using other methods like "download" or "downloadToFile".\t ${error.message}`); + } + } + if (buffer.length < count) { + throw new RangeError(`The buffer's size should be equal to or larger than the request count of bytes: ${count}`); + } + let transferProgress = 0; + const batch = new Batch(options.concurrency); + for (let off = offset; off < offset + count; off = off + options.blockSize) { + batch.addOperation(async () => { + // Exclusive chunk end position + let chunkEnd = offset + count; + if (off + options.blockSize < chunkEnd) { + chunkEnd = off + options.blockSize; + } + const response = await this.download(off, chunkEnd - off, { + abortSignal: options.abortSignal, + conditions: options.conditions, + maxRetryRequests: options.maxRetryRequestsPerBlock, + customerProvidedKey: options.customerProvidedKey, + tracingOptions: Object.assign(Object.assign({}, options.tracingOptions), convertTracingToRequestOptionsBase(updatedOptions)) + }); + const stream = response.readableStreamBody; + await streamToBuffer(stream, buffer, off - offset, chunkEnd - offset); + // Update progress after block is downloaded, in case of block trying + // Could provide finer grained progress updating inside HTTP requests, + // only if convenience layer download try is enabled + transferProgress += chunkEnd - off; + if (options.onProgress) { + options.onProgress({ loadedBytes: transferProgress }); + } + }); + } + await batch.do(); + return buffer; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * ONLY AVAILABLE IN NODE.JS RUNTIME. * @@ -36971,48 +34577,31 @@ var BlobClient = /** @class */ (function (_super) { * content is already read and written into a local file * at the specified path. */ - BlobClient.prototype.downloadToFile = function (filePath, offset, count, options) { - if (offset === void 0) { offset = 0; } - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, response, e_16; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobClient-downloadToFile", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 5, 6, 7]); - return [4 /*yield*/, this.download(offset, count, tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), convertTracingToRequestOptionsBase(updatedOptions)) }))]; - case 2: - response = _b.sent(); - if (!response.readableStreamBody) return [3 /*break*/, 4]; - return [4 /*yield*/, readStreamToLocalFile(response.readableStreamBody, filePath)]; - case 3: - _b.sent(); - _b.label = 4; - case 4: - // The stream is no longer accessible so setting it to undefined. - response.blobDownloadStream = undefined; - return [2 /*return*/, response]; - case 5: - e_16 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_16.message - }); - throw e_16; - case 6: - span.end(); - return [7 /*endfinally*/]; - case 7: return [2 /*return*/]; - } + async downloadToFile(filePath, offset = 0, count, options = {}) { + const { span, updatedOptions } = createSpan("BlobClient-downloadToFile", options); + try { + const response = await this.download(offset, count, Object.assign(Object.assign({}, options), { tracingOptions: Object.assign(Object.assign({}, options.tracingOptions), convertTracingToRequestOptionsBase(updatedOptions)) })); + if (response.readableStreamBody) { + await readStreamToLocalFile(response.readableStreamBody, filePath); + } + // The stream is no longer accessible so setting it to undefined. + response.blobDownloadStream = undefined; + return response; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; - BlobClient.prototype.getBlobAndContainerNamesFromUrl = function () { - var containerName; - var blobName; + throw e; + } + finally { + span.end(); + } + } + getBlobAndContainerNamesFromUrl() { + let containerName; + let blobName; try { // URL may look like the following // "https://myaccount.blob.core.windows.net/mycontainer/blob?sasString"; @@ -37021,11 +34610,11 @@ var BlobClient = /** @class */ (function (_super) { // "https://myaccount.blob.core.windows.net/mycontainer/blob/a.txt"; // IPv4/IPv6 address hosts, Endpoints - `http://127.0.0.1:10000/devstoreaccount1/containername/blob` // http://localhost:10001/devstoreaccount1/containername/blob - var parsedUrl = coreHttp.URLBuilder.parse(this.url); + const parsedUrl = coreHttp.URLBuilder.parse(this.url); if (parsedUrl.getHost().split(".")[1] === "blob") { // "https://myaccount.blob.core.windows.net/containername/blob". // .getPath() -> /containername/blob - var pathComponents = parsedUrl.getPath().match("/([^/]*)(/(.*))?"); + const pathComponents = parsedUrl.getPath().match("/([^/]*)(/(.*))?"); containerName = pathComponents[1]; blobName = pathComponents[3]; } @@ -37033,14 +34622,14 @@ var BlobClient = /** @class */ (function (_super) { // IPv4/IPv6 address hosts... Example - http://192.0.0.10:10001/devstoreaccount1/containername/blob // Single word domain without a [dot] in the endpoint... Example - http://localhost:10001/devstoreaccount1/containername/blob // .getPath() -> /devstoreaccount1/containername/blob - var pathComponents = parsedUrl.getPath().match("/([^/]*)/([^/]*)(/(.*))?"); + const pathComponents = parsedUrl.getPath().match("/([^/]*)/([^/]*)(/(.*))?"); containerName = pathComponents[2]; blobName = pathComponents[4]; } else { // "https://customdomain.com/containername/blob". // .getPath() -> /containername/blob - var pathComponents = parsedUrl.getPath().match("/([^/]*)(/(.*))?"); + const pathComponents = parsedUrl.getPath().match("/([^/]*)(/(.*))?"); containerName = pathComponents[1]; blobName = pathComponents[3]; } @@ -37053,12 +34642,12 @@ var BlobClient = /** @class */ (function (_super) { if (!containerName) { throw new Error("Provided containerName is invalid."); } - return { blobName: blobName, containerName: containerName }; + return { blobName, containerName }; } catch (error) { throw new Error("Unable to extract blobName and containerName with provided information."); } - }; + } /** * Asynchronously copies a blob to a destination within the storage account. * In version 2012-02-12 and later, the source for a Copy Blob operation can be @@ -37072,43 +34661,31 @@ var BlobClient = /** @class */ (function (_super) { * @param copySource - url to the source Azure Blob/File. * @param options - Optional options to the Blob Start Copy From URL operation. */ - BlobClient.prototype.startCopyFromURL = function (copySource, options) { - var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_17; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("BlobClient-startCopyFromURL", options), span = _b.span, updatedOptions = _b.updatedOptions; - options.conditions = options.conditions || {}; - options.sourceConditions = options.sourceConditions || {}; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.blobContext.startCopyFromURL(copySource, tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), sourceModifiedAccessConditions: { - sourceIfMatch: options.sourceConditions.ifMatch, - sourceIfModifiedSince: options.sourceConditions.ifModifiedSince, - sourceIfNoneMatch: options.sourceConditions.ifNoneMatch, - sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince, - sourceIfTags: options.sourceConditions.tagConditions - }, rehydratePriority: options.rehydratePriority, tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags), sealBlob: options.sealBlob }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_17 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_17.message - }); - throw e_17; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async startCopyFromURL(copySource, options = {}) { + var _a, _b, _c; + const { span, updatedOptions } = createSpan("BlobClient-startCopyFromURL", options); + options.conditions = options.conditions || {}; + options.sourceConditions = options.sourceConditions || {}; + try { + return await this.blobContext.startCopyFromURL(copySource, Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), sourceModifiedAccessConditions: { + sourceIfMatch: options.sourceConditions.ifMatch, + sourceIfModifiedSince: options.sourceConditions.ifModifiedSince, + sourceIfNoneMatch: options.sourceConditions.ifNoneMatch, + sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince, + sourceIfTags: options.sourceConditions.tagConditions + }, immutabilityPolicyExpiry: (_b = options.immutabilityPolicy) === null || _b === void 0 ? void 0 : _b.expiriesOn, immutabilityPolicyMode: (_c = options.immutabilityPolicy) === null || _c === void 0 ? void 0 : _c.policyMode, legalHold: options.legalHold, rehydratePriority: options.rehydratePriority, tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags), sealBlob: options.sealBlob }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Only available for BlobClient constructed with a shared key credential. * @@ -37120,31 +34697,93 @@ var BlobClient = /** @class */ (function (_super) { * @param options - Optional parameters. * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token. */ - BlobClient.prototype.generateSasUrl = function (options) { - var _this = this; - return new Promise(function (resolve) { - if (!(_this.credential instanceof StorageSharedKeyCredential)) { + generateSasUrl(options) { + return new Promise((resolve) => { + if (!(this.credential instanceof StorageSharedKeyCredential)) { throw new RangeError("Can only generate the SAS when the client is initialized with a shared key credential"); } - var sas = generateBlobSASQueryParameters(tslib.__assign({ containerName: _this._containerName, blobName: _this._name, snapshotTime: _this._snapshot, versionId: _this._versionId }, options), _this.credential).toString(); - resolve(appendToURLQuery(_this.url, sas)); + const sas = generateBlobSASQueryParameters(Object.assign({ containerName: this._containerName, blobName: this._name, snapshotTime: this._snapshot, versionId: this._versionId }, options), this.credential).toString(); + resolve(appendToURLQuery(this.url, sas)); }); - }; - return BlobClient; -}(StorageClient)); + } + /** + * Delete the immutablility policy on the blob. + * + * @param options - Optional options to delete immutability policy on the blob. + */ + async deleteImmutabilityPolicy(options) { + const { span, updatedOptions } = createSpan("BlobClient-deleteImmutabilityPolicy", options); + try { + return await this.blobContext.deleteImmutabilityPolicy(Object.assign({ abortSignal: options === null || options === void 0 ? void 0 : options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message + }); + throw e; + } + finally { + span.end(); + } + } + /** + * Set immutablility policy on the blob. + * + * @param options - Optional options to set immutability policy on the blob. + */ + async setImmutabilityPolicy(immutabilityPolicy, options) { + const { span, updatedOptions } = createSpan("BlobClient-setImmutabilityPolicy", options); + try { + return await this.blobContext.setImmutabilityPolicy(Object.assign({ abortSignal: options === null || options === void 0 ? void 0 : options.abortSignal, immutabilityPolicyExpiry: immutabilityPolicy.expiriesOn, immutabilityPolicyMode: immutabilityPolicy.policyMode, modifiedAccessConditions: options === null || options === void 0 ? void 0 : options.modifiedAccessCondition }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message + }); + throw e; + } + finally { + span.end(); + } + } + /** + * Set legal hold on the blob. + * + * @param options - Optional options to set legal hold on the blob. + */ + async setLegalHold(legalHoldEnabled, options) { + const { span, updatedOptions } = createSpan("BlobClient-setLegalHold", options); + try { + return await this.blobContext.setLegalHold(legalHoldEnabled, Object.assign({ abortSignal: options === null || options === void 0 ? void 0 : options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message + }); + throw e; + } + finally { + span.end(); + } + } +} /** * AppendBlobClient defines a set of operations applicable to append blobs. */ -var AppendBlobClient = /** @class */ (function (_super) { - tslib.__extends(AppendBlobClient, _super); - function AppendBlobClient(urlOrConnectionString, credentialOrPipelineOrContainerName, blobNameOrOptions, options) { - var _this = this; +class AppendBlobClient extends BlobClient { + constructor(urlOrConnectionString, credentialOrPipelineOrContainerName, blobNameOrOptions, + // Legacy, no fix for eslint error without breaking. Disable it for this interface. + /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/ + options) { // In TypeScript we cannot simply pass all parameters to super() like below so have to duplicate the code instead. // super(s, credentialOrPipelineOrContainerNameOrOptions, blobNameOrOptions, options); - var pipeline; - var url; + let pipeline; + let url; options = options || {}; - if (credentialOrPipelineOrContainerName instanceof Pipeline) { + if (isPipelineLike(credentialOrPipelineOrContainerName)) { // (url: string, pipeline: Pipeline) url = urlOrConnectionString; pipeline = credentialOrPipelineOrContainerName; @@ -37169,12 +34808,12 @@ var AppendBlobClient = /** @class */ (function (_super) { blobNameOrOptions && typeof blobNameOrOptions === "string") { // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions) - var containerName = credentialOrPipelineOrContainerName; - var blobName = blobNameOrOptions; - var extractedCreds = extractConnectionStringParts(urlOrConnectionString); + const containerName = credentialOrPipelineOrContainerName; + const blobName = blobNameOrOptions; + const extractedCreds = extractConnectionStringParts(urlOrConnectionString); if (extractedCreds.kind === "AccountConnString") { { - var sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey); + const sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey); url = appendToURLPath(appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)), encodeURIComponent(blobName)); options.proxyOptions = coreHttp.getDefaultProxySettings(extractedCreds.proxyUri); pipeline = newPipeline(sharedKeyCredential, options); @@ -37194,9 +34833,8 @@ var AppendBlobClient = /** @class */ (function (_super) { else { throw new Error("Expecting non-empty strings for containerName and blobName parameters"); } - _this = _super.call(this, url, pipeline) || this; - _this.appendBlobContext = new AppendBlob(_this.storageClientContext); - return _this; + super(url, pipeline); + this.appendBlobContext = new AppendBlob(this.storageClientContext); } /** * Creates a new AppendBlobClient object identical to the source but with the @@ -37206,9 +34844,9 @@ var AppendBlobClient = /** @class */ (function (_super) { * @param snapshot - The snapshot timestamp. * @returns A new AppendBlobClient object identical to the source but with the specified snapshot timestamp. */ - AppendBlobClient.prototype.withSnapshot = function (snapshot) { + withSnapshot(snapshot) { return new AppendBlobClient(setURLParameter(this.url, URLConstants.Parameters.SNAPSHOT, snapshot.length === 0 ? undefined : snapshot), this.pipeline); - }; + } /** * Creates a 0-length append blob. Call AppendBlock to append data to an append blob. * @see https://docs.microsoft.com/rest/api/storageservices/put-blob @@ -37223,37 +34861,25 @@ var AppendBlobClient = /** @class */ (function (_super) { * await appendBlobClient.create(); * ``` */ - AppendBlobClient.prototype.create = function (options) { - var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_18; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("AppendBlobClient-create", options), span = _b.span, updatedOptions = _b.updatedOptions; - options.conditions = options.conditions || {}; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.appendBlobContext.create(0, tslib.__assign({ abortSignal: options.abortSignal, blobHttpHeaders: options.blobHTTPHeaders, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, blobTagsString: toBlobTagsString(options.tags) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_18 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_18.message - }); - throw e_18; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async create(options = {}) { + var _a, _b, _c; + const { span, updatedOptions } = createSpan("AppendBlobClient-create", options); + options.conditions = options.conditions || {}; + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.appendBlobContext.create(0, Object.assign({ abortSignal: options.abortSignal, blobHttpHeaders: options.blobHTTPHeaders, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, immutabilityPolicyExpiry: (_b = options.immutabilityPolicy) === null || _b === void 0 ? void 0 : _b.expiriesOn, immutabilityPolicyMode: (_c = options.immutabilityPolicy) === null || _c === void 0 ? void 0 : _c.policyMode, legalHold: options.legalHold, blobTagsString: toBlobTagsString(options.tags) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Creates a 0-length append blob. Call AppendBlock to append data to an append blob. * If the blob with the same name already exists, the content of the existing blob will remain unchanged. @@ -37261,81 +34887,56 @@ var AppendBlobClient = /** @class */ (function (_super) { * * @param options - */ - AppendBlobClient.prototype.createIfNotExists = function (options) { + async createIfNotExists(options = {}) { var _a, _b; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _c, span, updatedOptions, conditions, res, e_19; - return tslib.__generator(this, function (_d) { - switch (_d.label) { - case 0: - _c = createSpan("AppendBlobClient-createIfNotExists", options), span = _c.span, updatedOptions = _c.updatedOptions; - conditions = { ifNoneMatch: ETagAny }; - _d.label = 1; - case 1: - _d.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.create(tslib.__assign(tslib.__assign({}, updatedOptions), { conditions: conditions }))]; - case 2: - res = _d.sent(); - return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable - })]; - case 3: - e_19 = _d.sent(); - if (((_a = e_19.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "BlobAlreadyExists") { - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: "Expected exception when creating a blob only if it does not already exist." - }); - return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: false }, (_b = e_19.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e_19.response })]; - } - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_19.message - }); - throw e_19; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("AppendBlobClient-createIfNotExists", options); + const conditions = { ifNoneMatch: ETagAny }; + try { + const res = await this.create(Object.assign(Object.assign({}, updatedOptions), { conditions })); + return Object.assign(Object.assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable + }); + } + catch (e) { + if (((_a = e.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "BlobAlreadyExists") { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: "Expected exception when creating a blob only if it does not already exist." + }); + return Object.assign(Object.assign({ succeeded: false }, (_b = e.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e.response }); + } + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Seals the append blob, making it read only. * * @param options - */ - AppendBlobClient.prototype.seal = function (options) { + async seal(options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_20; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("AppendBlobClient-seal", options), span = _b.span, updatedOptions = _b.updatedOptions; - options.conditions = options.conditions || {}; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.appendBlobContext.seal(tslib.__assign({ abortSignal: options.abortSignal, appendPositionAccessConditions: options.conditions, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_20 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_20.message - }); - throw e_20; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("AppendBlobClient-seal", options); + options.conditions = options.conditions || {}; + try { + return await this.appendBlobContext.seal(Object.assign({ abortSignal: options.abortSignal, appendPositionAccessConditions: options.conditions, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Commits a new block of data to the end of the existing append blob. * @see https://docs.microsoft.com/rest/api/storageservices/append-block @@ -37360,39 +34961,27 @@ var AppendBlobClient = /** @class */ (function (_super) { * await existingAppendBlobClient.appendBlock(content, content.length); * ``` */ - AppendBlobClient.prototype.appendBlock = function (body, contentLength, options) { + async appendBlock(body, contentLength, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_21; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("AppendBlobClient-appendBlock", options), span = _b.span, updatedOptions = _b.updatedOptions; - options.conditions = options.conditions || {}; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.appendBlobContext.appendBlock(contentLength, body, tslib.__assign({ abortSignal: options.abortSignal, appendPositionAccessConditions: options.conditions, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), requestOptions: { - onUploadProgress: options.onProgress - }, transactionalContentMD5: options.transactionalContentMD5, transactionalContentCrc64: options.transactionalContentCrc64, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_21 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_21.message - }); - throw e_21; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("AppendBlobClient-appendBlock", options); + options.conditions = options.conditions || {}; + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.appendBlobContext.appendBlock(contentLength, body, Object.assign({ abortSignal: options.abortSignal, appendPositionAccessConditions: options.conditions, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), requestOptions: { + onUploadProgress: options.onProgress + }, transactionalContentMD5: options.transactionalContentMD5, transactionalContentCrc64: options.transactionalContentCrc64, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * The Append Block operation commits a new block of data to the end of an existing append blob * where the contents are read from a source url. @@ -37407,58 +34996,46 @@ var AppendBlobClient = /** @class */ (function (_super) { * @param count - Number of bytes to be appended as a block * @param options - */ - AppendBlobClient.prototype.appendBlockFromURL = function (sourceURL, sourceOffset, count, options) { + async appendBlockFromURL(sourceURL, sourceOffset, count, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_22; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("AppendBlobClient-appendBlockFromURL", options), span = _b.span, updatedOptions = _b.updatedOptions; - options.conditions = options.conditions || {}; - options.sourceConditions = options.sourceConditions || {}; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.appendBlobContext.appendBlockFromUrl(sourceURL, 0, tslib.__assign({ abortSignal: options.abortSignal, sourceRange: rangeToString({ offset: sourceOffset, count: count }), sourceContentMD5: options.sourceContentMD5, sourceContentCrc64: options.sourceContentCrc64, leaseAccessConditions: options.conditions, appendPositionAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), sourceModifiedAccessConditions: { - sourceIfMatch: options.sourceConditions.ifMatch, - sourceIfModifiedSince: options.sourceConditions.ifModifiedSince, - sourceIfNoneMatch: options.sourceConditions.ifNoneMatch, - sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince - }, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_22 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_22.message - }); - throw e_22; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("AppendBlobClient-appendBlockFromURL", options); + options.conditions = options.conditions || {}; + options.sourceConditions = options.sourceConditions || {}; + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.appendBlobContext.appendBlockFromUrl(sourceURL, 0, Object.assign({ abortSignal: options.abortSignal, sourceRange: rangeToString({ offset: sourceOffset, count }), sourceContentMD5: options.sourceContentMD5, sourceContentCrc64: options.sourceContentCrc64, leaseAccessConditions: options.conditions, appendPositionAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), sourceModifiedAccessConditions: { + sourceIfMatch: options.sourceConditions.ifMatch, + sourceIfModifiedSince: options.sourceConditions.ifModifiedSince, + sourceIfNoneMatch: options.sourceConditions.ifNoneMatch, + sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince + }, copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; - return AppendBlobClient; -}(BlobClient)); + throw e; + } + finally { + span.end(); + } + } +} /** * BlockBlobClient defines a set of operations applicable to block blobs. */ -var BlockBlobClient = /** @class */ (function (_super) { - tslib.__extends(BlockBlobClient, _super); - function BlockBlobClient(urlOrConnectionString, credentialOrPipelineOrContainerName, blobNameOrOptions, options) { - var _this = this; +class BlockBlobClient extends BlobClient { + constructor(urlOrConnectionString, credentialOrPipelineOrContainerName, blobNameOrOptions, + // Legacy, no fix for eslint error without breaking. Disable it for this interface. + /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/ + options) { // In TypeScript we cannot simply pass all parameters to super() like below so have to duplicate the code instead. // super(s, credentialOrPipelineOrContainerNameOrOptions, blobNameOrOptions, options); - var pipeline; - var url; + let pipeline; + let url; options = options || {}; - if (credentialOrPipelineOrContainerName instanceof Pipeline) { + if (isPipelineLike(credentialOrPipelineOrContainerName)) { // (url: string, pipeline: Pipeline) url = urlOrConnectionString; pipeline = credentialOrPipelineOrContainerName; @@ -37483,12 +35060,12 @@ var BlockBlobClient = /** @class */ (function (_super) { blobNameOrOptions && typeof blobNameOrOptions === "string") { // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions) - var containerName = credentialOrPipelineOrContainerName; - var blobName = blobNameOrOptions; - var extractedCreds = extractConnectionStringParts(urlOrConnectionString); + const containerName = credentialOrPipelineOrContainerName; + const blobName = blobNameOrOptions; + const extractedCreds = extractConnectionStringParts(urlOrConnectionString); if (extractedCreds.kind === "AccountConnString") { { - var sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey); + const sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey); url = appendToURLPath(appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)), encodeURIComponent(blobName)); options.proxyOptions = coreHttp.getDefaultProxySettings(extractedCreds.proxyUri); pipeline = newPipeline(sharedKeyCredential, options); @@ -37508,10 +35085,9 @@ var BlockBlobClient = /** @class */ (function (_super) { else { throw new Error("Expecting non-empty strings for containerName and blobName parameters"); } - _this = _super.call(this, url, pipeline) || this; - _this.blockBlobContext = new BlockBlob(_this.storageClientContext); - _this._blobContext = new Blob$1(_this.storageClientContext); - return _this; + super(url, pipeline); + this.blockBlobContext = new BlockBlob(this.storageClientContext); + this._blobContext = new Blob$1(this.storageClientContext); } /** * Creates a new BlockBlobClient object identical to the source but with the @@ -37521,9 +35097,9 @@ var BlockBlobClient = /** @class */ (function (_super) { * @param snapshot - The snapshot timestamp. * @returns A new BlockBlobClient object identical to the source but with the specified snapshot timestamp. */ - BlockBlobClient.prototype.withSnapshot = function (snapshot) { + withSnapshot(snapshot) { return new BlockBlobClient(setURLParameter(this.url, URLConstants.Parameters.SNAPSHOT, snapshot.length === 0 ? undefined : snapshot), this.pipeline); - }; + } /** * ONLY AVAILABLE IN NODE.JS RUNTIME. * @@ -37554,47 +35130,35 @@ var BlockBlobClient = /** @class */ (function (_super) { * @param query - * @param options - */ - BlockBlobClient.prototype.query = function (query, options) { + async query(query, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, response, e_23; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - _b = createSpan("BlockBlobClient-query", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this._blobContext.query(tslib.__assign({ abortSignal: options.abortSignal, queryRequest: { - queryType: "SQL", - expression: query, - inputSerialization: toQuerySerialization(options.inputTextConfiguration), - outputSerialization: toQuerySerialization(options.outputTextConfiguration) - }, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - response = _c.sent(); - return [2 /*return*/, new BlobQueryResponse(response, { - abortSignal: options.abortSignal, - onProgress: options.onProgress, - onError: options.onError - })]; - case 3: - e_23 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_23.message - }); - throw e_23; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + const { span, updatedOptions } = createSpan("BlockBlobClient-query", options); + try { + if (false) {} + const response = await this._blobContext.query(Object.assign({ abortSignal: options.abortSignal, queryRequest: { + queryType: "SQL", + expression: query, + inputSerialization: toQuerySerialization(options.inputTextConfiguration), + outputSerialization: toQuerySerialization(options.outputTextConfiguration) + }, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions))); + return new BlobQueryResponse(response, { + abortSignal: options.abortSignal, + onProgress: options.onProgress, + onError: options.onError }); - }); - }; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message + }); + throw e; + } + finally { + span.end(); + } + } /** * Creates a new block blob, or updates the content of an existing block blob. * Updating an existing block blob overwrites any existing metadata on the blob. @@ -37622,39 +35186,27 @@ var BlockBlobClient = /** @class */ (function (_super) { * const uploadBlobResponse = await blockBlobClient.upload(content, content.length); * ``` */ - BlockBlobClient.prototype.upload = function (body, contentLength, options) { - var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_24; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - _b = createSpan("BlockBlobClient-upload", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.blockBlobContext.upload(contentLength, body, tslib.__assign({ abortSignal: options.abortSignal, blobHttpHeaders: options.blobHTTPHeaders, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), requestOptions: { - onUploadProgress: options.onProgress - }, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_24 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_24.message - }); - throw e_24; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async upload(body, contentLength, options = {}) { + var _a, _b, _c; + options.conditions = options.conditions || {}; + const { span, updatedOptions } = createSpan("BlockBlobClient-upload", options); + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.blockBlobContext.upload(contentLength, body, Object.assign({ abortSignal: options.abortSignal, blobHttpHeaders: options.blobHTTPHeaders, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), requestOptions: { + onUploadProgress: options.onProgress + }, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, immutabilityPolicyExpiry: (_b = options.immutabilityPolicy) === null || _b === void 0 ? void 0 : _b.expiriesOn, immutabilityPolicyMode: (_c = options.immutabilityPolicy) === null || _c === void 0 ? void 0 : _c.policyMode, legalHold: options.legalHold, tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Creates a new Block Blob where the contents of the blob are read from a given URL. * This API is supported beginning with the 2020-04-08 version. Partial updates @@ -37673,43 +35225,31 @@ var BlockBlobClient = /** @class */ (function (_super) { * - https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot= * @param options - Optional parameters. */ - BlockBlobClient.prototype.syncUploadFromURL = function (sourceURL, options) { + async syncUploadFromURL(sourceURL, options = {}) { var _a, _b, _c, _d, _e; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _f, span, updatedOptions, e_25; - return tslib.__generator(this, function (_g) { - switch (_g.label) { - case 0: - options.conditions = options.conditions || {}; - _f = createSpan("BlockBlobClient-syncUploadFromURL", options), span = _f.span, updatedOptions = _f.updatedOptions; - _g.label = 1; - case 1: - _g.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.blockBlobContext.putBlobFromUrl(0, sourceURL, tslib.__assign(tslib.__assign(tslib.__assign({}, options), { blobHttpHeaders: options.blobHTTPHeaders, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: options.conditions.tagConditions }), sourceModifiedAccessConditions: { - sourceIfMatch: (_a = options.sourceConditions) === null || _a === void 0 ? void 0 : _a.ifMatch, - sourceIfModifiedSince: (_b = options.sourceConditions) === null || _b === void 0 ? void 0 : _b.ifModifiedSince, - sourceIfNoneMatch: (_c = options.sourceConditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch, - sourceIfUnmodifiedSince: (_d = options.sourceConditions) === null || _d === void 0 ? void 0 : _d.ifUnmodifiedSince, - sourceIfTags: (_e = options.sourceConditions) === null || _e === void 0 ? void 0 : _e.tagConditions - }, cpkInfo: options.customerProvidedKey, tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags) }), convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _g.sent()]; - case 3: - e_25 = _g.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_25.message - }); - throw e_25; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + options.conditions = options.conditions || {}; + const { span, updatedOptions } = createSpan("BlockBlobClient-syncUploadFromURL", options); + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.blockBlobContext.putBlobFromUrl(0, sourceURL, Object.assign(Object.assign(Object.assign({}, options), { blobHttpHeaders: options.blobHTTPHeaders, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: options.conditions.tagConditions }), sourceModifiedAccessConditions: { + sourceIfMatch: (_a = options.sourceConditions) === null || _a === void 0 ? void 0 : _a.ifMatch, + sourceIfModifiedSince: (_b = options.sourceConditions) === null || _b === void 0 ? void 0 : _b.ifModifiedSince, + sourceIfNoneMatch: (_c = options.sourceConditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch, + sourceIfUnmodifiedSince: (_d = options.sourceConditions) === null || _d === void 0 ? void 0 : _d.ifUnmodifiedSince, + sourceIfTags: (_e = options.sourceConditions) === null || _e === void 0 ? void 0 : _e.tagConditions + }, cpkInfo: options.customerProvidedKey, copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization), tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags) }), convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Uploads the specified block to the block blob's "staging area" to be later * committed by a call to commitBlockList. @@ -37721,37 +35261,25 @@ var BlockBlobClient = /** @class */ (function (_super) { * @param options - Options to the Block Blob Stage Block operation. * @returns Response data for the Block Blob Stage Block operation. */ - BlockBlobClient.prototype.stageBlock = function (blockId, body, contentLength, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_26; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlockBlobClient-stageBlock", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.blockBlobContext.stageBlock(blockId, contentLength, body, tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, requestOptions: { - onUploadProgress: options.onProgress - }, transactionalContentMD5: options.transactionalContentMD5, transactionalContentCrc64: options.transactionalContentCrc64, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_26 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_26.message - }); - throw e_26; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async stageBlock(blockId, body, contentLength, options = {}) { + const { span, updatedOptions } = createSpan("BlockBlobClient-stageBlock", options); + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.blockBlobContext.stageBlock(blockId, contentLength, body, Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, requestOptions: { + onUploadProgress: options.onProgress + }, transactionalContentMD5: options.transactionalContentMD5, transactionalContentCrc64: options.transactionalContentCrc64, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * The Stage Block From URL operation creates a new block to be committed as part * of a blob where the contents are read from a URL. @@ -37773,36 +35301,23 @@ var BlockBlobClient = /** @class */ (function (_super) { * @param options - Options to the Block Blob Stage Block From URL operation. * @returns Response data for the Block Blob Stage Block From URL operation. */ - BlockBlobClient.prototype.stageBlockFromURL = function (blockId, sourceURL, offset, count, options) { - if (offset === void 0) { offset = 0; } - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_27; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlockBlobClient-stageBlockFromURL", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.blockBlobContext.stageBlockFromURL(blockId, 0, sourceURL, tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, sourceContentMD5: options.sourceContentMD5, sourceContentCrc64: options.sourceContentCrc64, sourceRange: offset === 0 && !count ? undefined : rangeToString({ offset: offset, count: count }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_27 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_27.message - }); - throw e_27; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async stageBlockFromURL(blockId, sourceURL, offset = 0, count, options = {}) { + const { span, updatedOptions } = createSpan("BlockBlobClient-stageBlockFromURL", options); + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.blockBlobContext.stageBlockFromURL(blockId, 0, sourceURL, Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, sourceContentMD5: options.sourceContentMD5, sourceContentCrc64: options.sourceContentCrc64, sourceRange: offset === 0 && !count ? undefined : rangeToString({ offset, count }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Writes a blob by specifying the list of block IDs that make up the blob. * In order to be written as part of a blob, a block must have been successfully written @@ -37815,37 +35330,25 @@ var BlockBlobClient = /** @class */ (function (_super) { * @param options - Options to the Block Blob Commit Block List operation. * @returns Response data for the Block Blob Commit Block List operation. */ - BlockBlobClient.prototype.commitBlockList = function (blocks, options) { - var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_28; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - _b = createSpan("BlockBlobClient-commitBlockList", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.blockBlobContext.commitBlockList({ latest: blocks }, tslib.__assign({ abortSignal: options.abortSignal, blobHttpHeaders: options.blobHTTPHeaders, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_28 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_28.message - }); - throw e_28; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async commitBlockList(blocks, options = {}) { + var _a, _b, _c; + options.conditions = options.conditions || {}; + const { span, updatedOptions } = createSpan("BlockBlobClient-commitBlockList", options); + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.blockBlobContext.commitBlockList({ latest: blocks }, Object.assign({ abortSignal: options.abortSignal, blobHttpHeaders: options.blobHTTPHeaders, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, immutabilityPolicyExpiry: (_b = options.immutabilityPolicy) === null || _b === void 0 ? void 0 : _b.expiriesOn, immutabilityPolicyMode: (_c = options.immutabilityPolicy) === null || _c === void 0 ? void 0 : _c.policyMode, legalHold: options.legalHold, tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Returns the list of blocks that have been uploaded as part of a block blob * using the specified block list filter. @@ -37856,43 +35359,30 @@ var BlockBlobClient = /** @class */ (function (_super) { * @param options - Options to the Block Blob Get Block List operation. * @returns Response data for the Block Blob Get Block List operation. */ - BlockBlobClient.prototype.getBlockList = function (listType, options) { + async getBlockList(listType, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, res, e_29; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("BlockBlobClient-getBlockList", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.blockBlobContext.getBlockList(listType, tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - res = _c.sent(); - if (!res.committedBlocks) { - res.committedBlocks = []; - } - if (!res.uncommittedBlocks) { - res.uncommittedBlocks = []; - } - return [2 /*return*/, res]; - case 3: - e_29 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_29.message - }); - throw e_29; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlockBlobClient-getBlockList", options); + try { + const res = await this.blockBlobContext.getBlockList(listType, Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions))); + if (!res.committedBlocks) { + res.committedBlocks = []; + } + if (!res.uncommittedBlocks) { + res.uncommittedBlocks = []; + } + return res; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } // High level functions /** * Uploads a Buffer(Node.js)/Blob(browsers)/ArrayBuffer/ArrayBufferView object to a BlockBlob. @@ -37902,45 +35392,43 @@ var BlockBlobClient = /** @class */ (function (_super) { * Otherwise, this method will call {@link stageBlock} to upload blocks, and finally call {@link commitBlockList} * to commit the block list. * + * A common {@link BlockBlobParallelUploadOptions.blobHTTPHeaders} option to set is + * `blobContentType`, enabling the browser to provide + * functionality based on file type. + * * @param data - Buffer(Node.js), Blob, ArrayBuffer or ArrayBufferView * @param options - */ - BlockBlobClient.prototype.uploadData = function (data, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, buffer_1, browserBlob_1; - return tslib.__generator(this, function (_b) { - _a = createSpan("BlockBlobClient-uploadData", options), span = _a.span, updatedOptions = _a.updatedOptions; - try { - if (true) { - if (data instanceof Buffer) { - buffer_1 = data; - } - else if (data instanceof ArrayBuffer) { - buffer_1 = Buffer.from(data); - } - else { - data = data; - buffer_1 = Buffer.from(data.buffer, data.byteOffset, data.byteLength); - } - return [2 /*return*/, this.uploadSeekableInternal(function (offset, size) { return buffer_1.slice(offset, offset + size); }, buffer_1.byteLength, updatedOptions)]; - } - else {} + async uploadData(data, options = {}) { + const { span, updatedOptions } = createSpan("BlockBlobClient-uploadData", options); + try { + if (true) { + let buffer; + if (data instanceof Buffer) { + buffer = data; } - catch (e) { - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e.message - }); - throw e; + else if (data instanceof ArrayBuffer) { + buffer = Buffer.from(data); } - finally { - span.end(); + else { + data = data; + buffer = Buffer.from(data.buffer, data.byteOffset, data.byteLength); } - return [2 /*return*/]; + return this.uploadSeekableInternal((offset, size) => buffer.slice(offset, offset + size), buffer.byteLength, updatedOptions); + } + else {} + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * ONLY AVAILABLE IN BROWSERS. * @@ -37950,41 +35438,33 @@ var BlockBlobClient = /** @class */ (function (_super) { * Otherwise, this method will call {@link stageBlock} to upload blocks, and finally call * {@link commitBlockList} to commit the block list. * + * A common {@link BlockBlobParallelUploadOptions.blobHTTPHeaders} option to set is + * `blobContentType`, enabling the browser to provide + * functionality based on file type. + * * @deprecated Use {@link uploadData} instead. * * @param browserData - Blob, File, ArrayBuffer or ArrayBufferView * @param options - Options to upload browser data. * @returns Response data for the Blob Upload operation. */ - BlockBlobClient.prototype.uploadBrowserData = function (browserData, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, browserBlob_2, e_30; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlockBlobClient-uploadBrowserData", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - browserBlob_2 = new Blob([browserData]); - return [4 /*yield*/, this.uploadSeekableInternal(function (offset, size) { return browserBlob_2.slice(offset, offset + size); }, browserBlob_2.size, updatedOptions)]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_30 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_30.message - }); - throw e_30; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async uploadBrowserData(browserData, options = {}) { + const { span, updatedOptions } = createSpan("BlockBlobClient-uploadBrowserData", options); + try { + const browserBlob = new Blob([browserData]); + return await this.uploadSeekableInternal((offset, size) => browserBlob.slice(offset, offset + size), browserBlob.size, updatedOptions); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * * Uploads data to block blob. Requires a bodyFactory as the data source, @@ -38000,115 +35480,88 @@ var BlockBlobClient = /** @class */ (function (_super) { * @param options - Options to Upload to Block Blob operation. * @returns Response data for the Blob Upload operation. */ - BlockBlobClient.prototype.uploadSeekableInternal = function (bodyFactory, size, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, numBlocks_1, blockList_1, blockIDPrefix_1, transferProgress_2, batch, _loop_2, i, e_31; - var _this = this; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - if (!options.blockSize) { - options.blockSize = 0; - } - if (options.blockSize < 0 || options.blockSize > BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES) { - throw new RangeError("blockSize option must be >= 0 and <= " + BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES); - } - if (options.maxSingleShotSize !== 0 && !options.maxSingleShotSize) { - options.maxSingleShotSize = BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES; - } - if (options.maxSingleShotSize < 0 || - options.maxSingleShotSize > BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES) { - throw new RangeError("maxSingleShotSize option must be >= 0 and <= " + BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES); - } - if (options.blockSize === 0) { - if (size > BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES * BLOCK_BLOB_MAX_BLOCKS) { - throw new RangeError(size + " is too larger to upload to a block blob."); - } - if (size > options.maxSingleShotSize) { - options.blockSize = Math.ceil(size / BLOCK_BLOB_MAX_BLOCKS); - if (options.blockSize < DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES) { - options.blockSize = DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES; - } - } - } - if (!options.blobHTTPHeaders) { - options.blobHTTPHeaders = {}; - } - if (!options.conditions) { - options.conditions = {}; - } - _a = createSpan("BlockBlobClient-uploadSeekableInternal", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 5, 6, 7]); - if (!(size <= options.maxSingleShotSize)) return [3 /*break*/, 3]; - return [4 /*yield*/, this.upload(bodyFactory(0, size), size, updatedOptions)]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - numBlocks_1 = Math.floor((size - 1) / options.blockSize) + 1; - if (numBlocks_1 > BLOCK_BLOB_MAX_BLOCKS) { - throw new RangeError("The buffer's size is too big or the BlockSize is too small;" + - ("the number of blocks must be <= " + BLOCK_BLOB_MAX_BLOCKS)); - } - blockList_1 = []; - blockIDPrefix_1 = coreHttp.generateUuid(); - transferProgress_2 = 0; - batch = new Batch(options.concurrency); - _loop_2 = function (i) { - batch.addOperation(function () { return tslib.__awaiter(_this, void 0, void 0, function () { - var blockID, start, end, contentLength; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - blockID = generateBlockID(blockIDPrefix_1, i); - start = options.blockSize * i; - end = i === numBlocks_1 - 1 ? size : start + options.blockSize; - contentLength = end - start; - blockList_1.push(blockID); - return [4 /*yield*/, this.stageBlock(blockID, bodyFactory(start, contentLength), contentLength, { - abortSignal: options.abortSignal, - conditions: options.conditions, - encryptionScope: options.encryptionScope, - tracingOptions: updatedOptions.tracingOptions - })]; - case 1: - _a.sent(); - // Update progress after block is successfully uploaded to server, in case of block trying - // TODO: Hook with convenience layer progress event in finer level - transferProgress_2 += contentLength; - if (options.onProgress) { - options.onProgress({ - loadedBytes: transferProgress_2 - }); - } - return [2 /*return*/]; - } - }); - }); }); - }; - for (i = 0; i < numBlocks_1; i++) { - _loop_2(i); - } - return [4 /*yield*/, batch.do()]; - case 4: - _b.sent(); - return [2 /*return*/, this.commitBlockList(blockList_1, updatedOptions)]; - case 5: - e_31 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_31.message - }); - throw e_31; - case 6: - span.end(); - return [7 /*endfinally*/]; - case 7: return [2 /*return*/]; + async uploadSeekableInternal(bodyFactory, size, options = {}) { + if (!options.blockSize) { + options.blockSize = 0; + } + if (options.blockSize < 0 || options.blockSize > BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES) { + throw new RangeError(`blockSize option must be >= 0 and <= ${BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES}`); + } + if (options.maxSingleShotSize !== 0 && !options.maxSingleShotSize) { + options.maxSingleShotSize = BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES; + } + if (options.maxSingleShotSize < 0 || + options.maxSingleShotSize > BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES) { + throw new RangeError(`maxSingleShotSize option must be >= 0 and <= ${BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES}`); + } + if (options.blockSize === 0) { + if (size > BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES * BLOCK_BLOB_MAX_BLOCKS) { + throw new RangeError(`${size} is too larger to upload to a block blob.`); + } + if (size > options.maxSingleShotSize) { + options.blockSize = Math.ceil(size / BLOCK_BLOB_MAX_BLOCKS); + if (options.blockSize < DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES) { + options.blockSize = DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES; } + } + } + if (!options.blobHTTPHeaders) { + options.blobHTTPHeaders = {}; + } + if (!options.conditions) { + options.conditions = {}; + } + const { span, updatedOptions } = createSpan("BlockBlobClient-uploadSeekableInternal", options); + try { + if (size <= options.maxSingleShotSize) { + return await this.upload(bodyFactory(0, size), size, updatedOptions); + } + const numBlocks = Math.floor((size - 1) / options.blockSize) + 1; + if (numBlocks > BLOCK_BLOB_MAX_BLOCKS) { + throw new RangeError(`The buffer's size is too big or the BlockSize is too small;` + + `the number of blocks must be <= ${BLOCK_BLOB_MAX_BLOCKS}`); + } + const blockList = []; + const blockIDPrefix = coreHttp.generateUuid(); + let transferProgress = 0; + const batch = new Batch(options.concurrency); + for (let i = 0; i < numBlocks; i++) { + batch.addOperation(async () => { + const blockID = generateBlockID(blockIDPrefix, i); + const start = options.blockSize * i; + const end = i === numBlocks - 1 ? size : start + options.blockSize; + const contentLength = end - start; + blockList.push(blockID); + await this.stageBlock(blockID, bodyFactory(start, contentLength), contentLength, { + abortSignal: options.abortSignal, + conditions: options.conditions, + encryptionScope: options.encryptionScope, + tracingOptions: updatedOptions.tracingOptions + }); + // Update progress after block is successfully uploaded to server, in case of block trying + // TODO: Hook with convenience layer progress event in finer level + transferProgress += contentLength; + if (options.onProgress) { + options.onProgress({ + loadedBytes: transferProgress + }); + } + }); + } + await batch.do(); + return this.commitBlockList(blockList, updatedOptions); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * ONLY AVAILABLE IN NODE.JS RUNTIME. * @@ -38122,45 +35575,29 @@ var BlockBlobClient = /** @class */ (function (_super) { * @param options - Options to Upload to Block Blob operation. * @returns Response data for the Blob Upload operation. */ - BlockBlobClient.prototype.uploadFile = function (filePath, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, size, e_32; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlockBlobClient-uploadFile", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 4, 5, 6]); - return [4 /*yield*/, fsStat(filePath)]; - case 2: - size = (_b.sent()).size; - return [4 /*yield*/, this.uploadSeekableInternal(function (offset, count) { - return function () { - return fsCreateReadStream(filePath, { - autoClose: true, - end: count ? offset + count - 1 : Infinity, - start: offset - }); - }; - }, size, tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), convertTracingToRequestOptionsBase(updatedOptions)) }))]; - case 3: return [2 /*return*/, _b.sent()]; - case 4: - e_32 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_32.message - }); - throw e_32; - case 5: - span.end(); - return [7 /*endfinally*/]; - case 6: return [2 /*return*/]; - } + async uploadFile(filePath, options = {}) { + const { span, updatedOptions } = createSpan("BlockBlobClient-uploadFile", options); + try { + const size = (await fsStat(filePath)).size; + return await this.uploadSeekableInternal((offset, count) => { + return () => fsCreateReadStream(filePath, { + autoClose: true, + end: count ? offset + count - 1 : Infinity, + start: offset + }); + }, size, Object.assign(Object.assign({}, options), { tracingOptions: Object.assign(Object.assign({}, options.tracingOptions), convertTracingToRequestOptionsBase(updatedOptions)) })); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * ONLY AVAILABLE IN NODE.JS RUNTIME. * @@ -38177,94 +35614,68 @@ var BlockBlobClient = /** @class */ (function (_super) { * @param options - Options to Upload Stream to Block Blob operation. * @returns Response data for the Blob Upload operation. */ - BlockBlobClient.prototype.uploadStream = function (stream, bufferSize, maxConcurrency, options) { - if (bufferSize === void 0) { bufferSize = DEFAULT_BLOCK_BUFFER_SIZE_BYTES; } - if (maxConcurrency === void 0) { maxConcurrency = 5; } - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, blockNum_1, blockIDPrefix_2, transferProgress_3, blockList_2, scheduler, e_33; - var _this = this; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - if (!options.blobHTTPHeaders) { - options.blobHTTPHeaders = {}; - } - if (!options.conditions) { - options.conditions = {}; - } - _a = createSpan("BlockBlobClient-uploadStream", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 4, 5, 6]); - blockNum_1 = 0; - blockIDPrefix_2 = coreHttp.generateUuid(); - transferProgress_3 = 0; - blockList_2 = []; - scheduler = new BufferScheduler(stream, bufferSize, maxConcurrency, function (body, length) { return tslib.__awaiter(_this, void 0, void 0, function () { - var blockID; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - blockID = generateBlockID(blockIDPrefix_2, blockNum_1); - blockList_2.push(blockID); - blockNum_1++; - return [4 /*yield*/, this.stageBlock(blockID, body, length, { - conditions: options.conditions, - encryptionScope: options.encryptionScope, - tracingOptions: updatedOptions.tracingOptions - })]; - case 1: - _a.sent(); - // Update progress after block is successfully uploaded to server, in case of block trying - transferProgress_3 += length; - if (options.onProgress) { - options.onProgress({ loadedBytes: transferProgress_3 }); - } - return [2 /*return*/]; - } - }); - }); }, - // concurrency should set a smaller value than maxConcurrency, which is helpful to - // reduce the possibility when a outgoing handler waits for stream data, in - // this situation, outgoing handlers are blocked. - // Outgoing queue shouldn't be empty. - Math.ceil((maxConcurrency / 4) * 3)); - return [4 /*yield*/, scheduler.do()]; - case 2: - _b.sent(); - return [4 /*yield*/, this.commitBlockList(blockList_2, tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), convertTracingToRequestOptionsBase(updatedOptions)) }))]; - case 3: return [2 /*return*/, _b.sent()]; - case 4: - e_33 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_33.message - }); - throw e_33; - case 5: - span.end(); - return [7 /*endfinally*/]; - case 6: return [2 /*return*/]; + async uploadStream(stream, bufferSize = DEFAULT_BLOCK_BUFFER_SIZE_BYTES, maxConcurrency = 5, options = {}) { + if (!options.blobHTTPHeaders) { + options.blobHTTPHeaders = {}; + } + if (!options.conditions) { + options.conditions = {}; + } + const { span, updatedOptions } = createSpan("BlockBlobClient-uploadStream", options); + try { + let blockNum = 0; + const blockIDPrefix = coreHttp.generateUuid(); + let transferProgress = 0; + const blockList = []; + const scheduler = new BufferScheduler(stream, bufferSize, maxConcurrency, async (body, length) => { + const blockID = generateBlockID(blockIDPrefix, blockNum); + blockList.push(blockID); + blockNum++; + await this.stageBlock(blockID, body, length, { + conditions: options.conditions, + encryptionScope: options.encryptionScope, + tracingOptions: updatedOptions.tracingOptions + }); + // Update progress after block is successfully uploaded to server, in case of block trying + transferProgress += length; + if (options.onProgress) { + options.onProgress({ loadedBytes: transferProgress }); } + }, + // concurrency should set a smaller value than maxConcurrency, which is helpful to + // reduce the possibility when a outgoing handler waits for stream data, in + // this situation, outgoing handlers are blocked. + // Outgoing queue shouldn't be empty. + Math.ceil((maxConcurrency / 4) * 3)); + await scheduler.do(); + return await this.commitBlockList(blockList, Object.assign(Object.assign({}, options), { tracingOptions: Object.assign(Object.assign({}, options.tracingOptions), convertTracingToRequestOptionsBase(updatedOptions)) })); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; - return BlockBlobClient; -}(BlobClient)); + throw e; + } + finally { + span.end(); + } + } +} /** * PageBlobClient defines a set of operations applicable to page blobs. */ -var PageBlobClient = /** @class */ (function (_super) { - tslib.__extends(PageBlobClient, _super); - function PageBlobClient(urlOrConnectionString, credentialOrPipelineOrContainerName, blobNameOrOptions, options) { - var _this = this; +class PageBlobClient extends BlobClient { + constructor(urlOrConnectionString, credentialOrPipelineOrContainerName, blobNameOrOptions, + // Legacy, no fix for eslint error without breaking. Disable it for this interface. + /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/ + options) { // In TypeScript we cannot simply pass all parameters to super() like below so have to duplicate the code instead. // super(s, credentialOrPipelineOrContainerNameOrOptions, blobNameOrOptions, options); - var pipeline; - var url; + let pipeline; + let url; options = options || {}; - if (credentialOrPipelineOrContainerName instanceof Pipeline) { + if (isPipelineLike(credentialOrPipelineOrContainerName)) { // (url: string, pipeline: Pipeline) url = urlOrConnectionString; pipeline = credentialOrPipelineOrContainerName; @@ -38289,12 +35700,12 @@ var PageBlobClient = /** @class */ (function (_super) { blobNameOrOptions && typeof blobNameOrOptions === "string") { // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions) - var containerName = credentialOrPipelineOrContainerName; - var blobName = blobNameOrOptions; - var extractedCreds = extractConnectionStringParts(urlOrConnectionString); + const containerName = credentialOrPipelineOrContainerName; + const blobName = blobNameOrOptions; + const extractedCreds = extractConnectionStringParts(urlOrConnectionString); if (extractedCreds.kind === "AccountConnString") { { - var sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey); + const sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey); url = appendToURLPath(appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)), encodeURIComponent(blobName)); options.proxyOptions = coreHttp.getDefaultProxySettings(extractedCreds.proxyUri); pipeline = newPipeline(sharedKeyCredential, options); @@ -38314,9 +35725,8 @@ var PageBlobClient = /** @class */ (function (_super) { else { throw new Error("Expecting non-empty strings for containerName and blobName parameters"); } - _this = _super.call(this, url, pipeline) || this; - _this.pageBlobContext = new PageBlob(_this.storageClientContext); - return _this; + super(url, pipeline); + this.pageBlobContext = new PageBlob(this.storageClientContext); } /** * Creates a new PageBlobClient object identical to the source but with the @@ -38326,9 +35736,9 @@ var PageBlobClient = /** @class */ (function (_super) { * @param snapshot - The snapshot timestamp. * @returns A new PageBlobClient object identical to the source but with the specified snapshot timestamp. */ - PageBlobClient.prototype.withSnapshot = function (snapshot) { + withSnapshot(snapshot) { return new PageBlobClient(setURLParameter(this.url, URLConstants.Parameters.SNAPSHOT, snapshot.length === 0 ? undefined : snapshot), this.pipeline); - }; + } /** * Creates a page blob of the specified length. Call uploadPages to upload data * data to a page blob. @@ -38338,37 +35748,25 @@ var PageBlobClient = /** @class */ (function (_super) { * @param options - Options to the Page Blob Create operation. * @returns Response data for the Page Blob Create operation. */ - PageBlobClient.prototype.create = function (size, options) { - var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_34; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - _b = createSpan("PageBlobClient-create", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.pageBlobContext.create(0, size, tslib.__assign({ abortSignal: options.abortSignal, blobHttpHeaders: options.blobHTTPHeaders, blobSequenceNumber: options.blobSequenceNumber, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_34 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_34.message - }); - throw e_34; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async create(size, options = {}) { + var _a, _b, _c; + options.conditions = options.conditions || {}; + const { span, updatedOptions } = createSpan("PageBlobClient-create", options); + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.pageBlobContext.create(0, size, Object.assign({ abortSignal: options.abortSignal, blobHttpHeaders: options.blobHTTPHeaders, blobSequenceNumber: options.blobSequenceNumber, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, immutabilityPolicyExpiry: (_b = options.immutabilityPolicy) === null || _b === void 0 ? void 0 : _b.expiriesOn, immutabilityPolicyMode: (_c = options.immutabilityPolicy) === null || _c === void 0 ? void 0 : _c.policyMode, legalHold: options.legalHold, tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Creates a page blob of the specified length. Call uploadPages to upload data * data to a page blob. If the blob with the same name already exists, the content @@ -38378,46 +35776,33 @@ var PageBlobClient = /** @class */ (function (_super) { * @param size - size of the page blob. * @param options - */ - PageBlobClient.prototype.createIfNotExists = function (size, options) { + async createIfNotExists(size, options = {}) { var _a, _b; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _c, span, updatedOptions, conditions, res, e_35; - return tslib.__generator(this, function (_d) { - switch (_d.label) { - case 0: - _c = createSpan("PageBlobClient-createIfNotExists", options), span = _c.span, updatedOptions = _c.updatedOptions; - _d.label = 1; - case 1: - _d.trys.push([1, 3, 4, 5]); - conditions = { ifNoneMatch: ETagAny }; - return [4 /*yield*/, this.create(size, tslib.__assign(tslib.__assign({}, options), { conditions: conditions, tracingOptions: updatedOptions.tracingOptions }))]; - case 2: - res = _d.sent(); - return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable - })]; - case 3: - e_35 = _d.sent(); - if (((_a = e_35.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "BlobAlreadyExists") { - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: "Expected exception when creating a blob only if it does not already exist." - }); - return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: false }, (_b = e_35.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e_35.response })]; - } - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_35.message - }); - throw e_35; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("PageBlobClient-createIfNotExists", options); + try { + const conditions = { ifNoneMatch: ETagAny }; + const res = await this.create(size, Object.assign(Object.assign({}, options), { conditions, tracingOptions: updatedOptions.tracingOptions })); + return Object.assign(Object.assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable + }); + } + catch (e) { + if (((_a = e.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "BlobAlreadyExists") { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: "Expected exception when creating a blob only if it does not already exist." + }); + return Object.assign(Object.assign({ succeeded: false }, (_b = e.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e.response }); + } + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Writes 1 or more pages to the page blob. The start and end offsets must be a multiple of 512. * @see https://docs.microsoft.com/rest/api/storageservices/put-page @@ -38428,39 +35813,27 @@ var PageBlobClient = /** @class */ (function (_super) { * @param options - Options to the Page Blob Upload Pages operation. * @returns Response data for the Page Blob Upload Pages operation. */ - PageBlobClient.prototype.uploadPages = function (body, offset, count, options) { + async uploadPages(body, offset, count, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_36; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - _b = createSpan("PageBlobClient-uploadPages", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.pageBlobContext.uploadPages(count, body, tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), requestOptions: { - onUploadProgress: options.onProgress - }, range: rangeToString({ offset: offset, count: count }), sequenceNumberAccessConditions: options.conditions, transactionalContentMD5: options.transactionalContentMD5, transactionalContentCrc64: options.transactionalContentCrc64, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_36 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_36.message - }); - throw e_36; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + options.conditions = options.conditions || {}; + const { span, updatedOptions } = createSpan("PageBlobClient-uploadPages", options); + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.pageBlobContext.uploadPages(count, body, Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), requestOptions: { + onUploadProgress: options.onProgress + }, range: rangeToString({ offset, count }), sequenceNumberAccessConditions: options.conditions, transactionalContentMD5: options.transactionalContentMD5, transactionalContentCrc64: options.transactionalContentCrc64, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * The Upload Pages operation writes a range of pages to a page blob where the * contents are read from a URL. @@ -38472,43 +35845,31 @@ var PageBlobClient = /** @class */ (function (_super) { * @param count - Number of bytes to be uploaded from source page blob * @param options - */ - PageBlobClient.prototype.uploadPagesFromURL = function (sourceURL, sourceOffset, destOffset, count, options) { + async uploadPagesFromURL(sourceURL, sourceOffset, destOffset, count, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_37; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - options.sourceConditions = options.sourceConditions || {}; - _b = createSpan("PageBlobClient-uploadPagesFromURL", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.pageBlobContext.uploadPagesFromURL(sourceURL, rangeToString({ offset: sourceOffset, count: count }), 0, rangeToString({ offset: destOffset, count: count }), tslib.__assign({ abortSignal: options.abortSignal, sourceContentMD5: options.sourceContentMD5, sourceContentCrc64: options.sourceContentCrc64, leaseAccessConditions: options.conditions, sequenceNumberAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), sourceModifiedAccessConditions: { - sourceIfMatch: options.sourceConditions.ifMatch, - sourceIfModifiedSince: options.sourceConditions.ifModifiedSince, - sourceIfNoneMatch: options.sourceConditions.ifNoneMatch, - sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince - }, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_37 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_37.message - }); - throw e_37; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + options.conditions = options.conditions || {}; + options.sourceConditions = options.sourceConditions || {}; + const { span, updatedOptions } = createSpan("PageBlobClient-uploadPagesFromURL", options); + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.pageBlobContext.uploadPagesFromURL(sourceURL, rangeToString({ offset: sourceOffset, count }), 0, rangeToString({ offset: destOffset, count }), Object.assign({ abortSignal: options.abortSignal, sourceContentMD5: options.sourceContentMD5, sourceContentCrc64: options.sourceContentCrc64, leaseAccessConditions: options.conditions, sequenceNumberAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), sourceModifiedAccessConditions: { + sourceIfMatch: options.sourceConditions.ifMatch, + sourceIfModifiedSince: options.sourceConditions.ifModifiedSince, + sourceIfNoneMatch: options.sourceConditions.ifNoneMatch, + sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince + }, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Frees the specified pages from the page blob. * @see https://docs.microsoft.com/rest/api/storageservices/put-page @@ -38518,37 +35879,24 @@ var PageBlobClient = /** @class */ (function (_super) { * @param options - Options to the Page Blob Clear Pages operation. * @returns Response data for the Page Blob Clear Pages operation. */ - PageBlobClient.prototype.clearPages = function (offset, count, options) { + async clearPages(offset = 0, count, options = {}) { var _a; - if (offset === void 0) { offset = 0; } - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_38; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - _b = createSpan("PageBlobClient-clearPages", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.pageBlobContext.clearPages(0, tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), range: rangeToString({ offset: offset, count: count }), sequenceNumberAccessConditions: options.conditions, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_38 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_38.message - }); - throw e_38; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + options.conditions = options.conditions || {}; + const { span, updatedOptions } = createSpan("PageBlobClient-clearPages", options); + try { + return await this.pageBlobContext.clearPages(0, Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), range: rangeToString({ offset, count }), sequenceNumberAccessConditions: options.conditions, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Returns the list of valid page ranges for a page blob or snapshot of a page blob. * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges @@ -38558,39 +35906,26 @@ var PageBlobClient = /** @class */ (function (_super) { * @param options - Options to the Page Blob Get Ranges operation. * @returns Response data for the Page Blob Get Ranges operation. */ - PageBlobClient.prototype.getPageRanges = function (offset, count, options) { + async getPageRanges(offset = 0, count, options = {}) { var _a; - if (offset === void 0) { offset = 0; } - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_39; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - _b = createSpan("PageBlobClient-getPageRanges", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.pageBlobContext - .getPageRanges(tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), range: rangeToString({ offset: offset, count: count }) }, convertTracingToRequestOptionsBase(updatedOptions))) - .then(rangeResponseFromModel)]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_39 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_39.message - }); - throw e_39; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + options.conditions = options.conditions || {}; + const { span, updatedOptions } = createSpan("PageBlobClient-getPageRanges", options); + try { + return await this.pageBlobContext + .getPageRanges(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), range: rangeToString({ offset, count }) }, convertTracingToRequestOptionsBase(updatedOptions))) + .then(rangeResponseFromModel); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Gets the collection of page ranges that differ between a specified snapshot and this page blob. * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges @@ -38601,38 +35936,26 @@ var PageBlobClient = /** @class */ (function (_super) { * @param options - Options to the Page Blob Get Page Ranges Diff operation. * @returns Response data for the Page Blob Get Page Range Diff operation. */ - PageBlobClient.prototype.getPageRangesDiff = function (offset, count, prevSnapshot, options) { + async getPageRangesDiff(offset, count, prevSnapshot, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_40; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - _b = createSpan("PageBlobClient-getPageRangesDiff", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.pageBlobContext - .getPageRangesDiff(tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), prevsnapshot: prevSnapshot, range: rangeToString({ offset: offset, count: count }) }, convertTracingToRequestOptionsBase(updatedOptions))) - .then(rangeResponseFromModel)]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_40 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_40.message - }); - throw e_40; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + options.conditions = options.conditions || {}; + const { span, updatedOptions } = createSpan("PageBlobClient-getPageRangesDiff", options); + try { + return await this.pageBlobContext + .getPageRangesDiff(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), prevsnapshot: prevSnapshot, range: rangeToString({ offset, count }) }, convertTracingToRequestOptionsBase(updatedOptions))) + .then(rangeResponseFromModel); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Gets the collection of page ranges that differ between a specified snapshot and this page blob for managed disks. * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges @@ -38643,38 +35966,26 @@ var PageBlobClient = /** @class */ (function (_super) { * @param options - Options to the Page Blob Get Page Ranges Diff operation. * @returns Response data for the Page Blob Get Page Range Diff operation. */ - PageBlobClient.prototype.getPageRangesDiffForManagedDisks = function (offset, count, prevSnapshotUrl, options) { + async getPageRangesDiffForManagedDisks(offset, count, prevSnapshotUrl, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_41; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - _b = createSpan("PageBlobClient-GetPageRangesDiffForManagedDisks", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.pageBlobContext - .getPageRangesDiff(tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), prevSnapshotUrl: prevSnapshotUrl, range: rangeToString({ offset: offset, count: count }) }, convertTracingToRequestOptionsBase(updatedOptions))) - .then(rangeResponseFromModel)]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_41 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_41.message - }); - throw e_41; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + options.conditions = options.conditions || {}; + const { span, updatedOptions } = createSpan("PageBlobClient-GetPageRangesDiffForManagedDisks", options); + try { + return await this.pageBlobContext + .getPageRangesDiff(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), prevSnapshotUrl, range: rangeToString({ offset, count }) }, convertTracingToRequestOptionsBase(updatedOptions))) + .then(rangeResponseFromModel); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Resizes the page blob to the specified size (which must be a multiple of 512). * @see https://docs.microsoft.com/rest/api/storageservices/set-blob-properties @@ -38683,36 +35994,24 @@ var PageBlobClient = /** @class */ (function (_super) { * @param options - Options to the Page Blob Resize operation. * @returns Response data for the Page Blob Resize operation. */ - PageBlobClient.prototype.resize = function (size, options) { + async resize(size, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_42; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - _b = createSpan("PageBlobClient-resize", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.pageBlobContext.resize(size, tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_42 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_42.message - }); - throw e_42; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + options.conditions = options.conditions || {}; + const { span, updatedOptions } = createSpan("PageBlobClient-resize", options); + try { + return await this.pageBlobContext.resize(size, Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Sets a page blob's sequence number. * @see https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-properties @@ -38722,36 +36021,24 @@ var PageBlobClient = /** @class */ (function (_super) { * @param options - Options to the Page Blob Update Sequence Number operation. * @returns Response data for the Page Blob Update Sequence Number operation. */ - PageBlobClient.prototype.updateSequenceNumber = function (sequenceNumberAction, sequenceNumber, options) { + async updateSequenceNumber(sequenceNumberAction, sequenceNumber, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_43; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - _b = createSpan("PageBlobClient-updateSequenceNumber", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.pageBlobContext.updateSequenceNumber(sequenceNumberAction, tslib.__assign({ abortSignal: options.abortSignal, blobSequenceNumber: sequenceNumber, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_43 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_43.message - }); - throw e_43; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + options.conditions = options.conditions || {}; + const { span, updatedOptions } = createSpan("PageBlobClient-updateSequenceNumber", options); + try { + return await this.pageBlobContext.updateSequenceNumber(sequenceNumberAction, Object.assign({ abortSignal: options.abortSignal, blobSequenceNumber: sequenceNumber, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Begins an operation to start an incremental copy from one page blob's snapshot to this page blob. * The snapshot is copied such that only the differential changes between the previously @@ -38765,69 +36052,46 @@ var PageBlobClient = /** @class */ (function (_super) { * @param options - Options to the Page Blob Copy Incremental operation. * @returns Response data for the Page Blob Copy Incremental operation. */ - PageBlobClient.prototype.startCopyIncremental = function (copySource, options) { + async startCopyIncremental(copySource, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_44; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("PageBlobClient-startCopyIncremental", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.pageBlobContext.copyIncremental(copySource, tslib.__assign({ abortSignal: options.abortSignal, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_44 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_44.message - }); - throw e_44; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("PageBlobClient-startCopyIncremental", options); + try { + return await this.pageBlobContext.copyIncremental(copySource, Object.assign({ abortSignal: options.abortSignal, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; - return PageBlobClient; -}(BlobClient)); + throw e; + } + finally { + span.end(); + } + } +} // Copyright (c) Microsoft Corporation. -function getBodyAsText(batchResponse) { - return tslib.__awaiter(this, void 0, void 0, function () { - var buffer, responseLength; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - buffer = Buffer.alloc(BATCH_MAX_PAYLOAD_IN_BYTES); - return [4 /*yield*/, streamToBuffer2(batchResponse.readableStreamBody, buffer)]; - case 1: - responseLength = _a.sent(); - // Slice the buffer to trim the empty ending. - buffer = buffer.slice(0, responseLength); - return [2 /*return*/, buffer.toString()]; - } - }); - }); +async function getBodyAsText(batchResponse) { + let buffer = Buffer.alloc(BATCH_MAX_PAYLOAD_IN_BYTES); + const responseLength = await streamToBuffer2(batchResponse.readableStreamBody, buffer); + // Slice the buffer to trim the empty ending. + buffer = buffer.slice(0, responseLength); + return buffer.toString(); } function utf8ByteLength(str) { return Buffer.byteLength(str); } // Copyright (c) Microsoft Corporation. -var HTTP_HEADER_DELIMITER = ": "; -var SPACE_DELIMITER = " "; -var NOT_FOUND = -1; +const HTTP_HEADER_DELIMITER = ": "; +const SPACE_DELIMITER = " "; +const NOT_FOUND = -1; /** * Util class for parsing batch response. */ -var BatchResponseParser = /** @class */ (function () { - function BatchResponseParser(batchResponse, subRequests) { +class BatchResponseParser { + constructor(batchResponse, subRequests) { if (!batchResponse || !batchResponse.contentType) { // In special case(reported), server may return invalid content-type which could not be parsed. throw new RangeError("batchResponse is malformed or doesn't contain valid content-type."); @@ -38839,129 +36103,119 @@ var BatchResponseParser = /** @class */ (function () { this.batchResponse = batchResponse; this.subRequests = subRequests; this.responseBatchBoundary = this.batchResponse.contentType.split("=")[1]; - this.perResponsePrefix = "--" + this.responseBatchBoundary + HTTP_LINE_ENDING; - this.batchResponseEnding = "--" + this.responseBatchBoundary + "--"; + this.perResponsePrefix = `--${this.responseBatchBoundary}${HTTP_LINE_ENDING}`; + this.batchResponseEnding = `--${this.responseBatchBoundary}--`; } // For example of response, please refer to https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch#response - BatchResponseParser.prototype.parseBatchResponse = function () { - return tslib.__awaiter(this, void 0, void 0, function () { - var responseBodyAsText, subResponses, subResponseCount, deserializedSubResponses, subResponsesSucceededCount, subResponsesFailedCount, index, subResponse, deserializedSubResponse, responseLines, subRespHeaderStartFound, subRespHeaderEndFound, subRespFailed, contentId, _i, responseLines_1, responseLine, tokens, tokens; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - // When logic reach here, suppose batch request has already succeeded with 202, so we can further parse - // sub request's response. - if (this.batchResponse._response.status != HTTPURLConnection.HTTP_ACCEPTED) { - throw new Error("Invalid state: batch request failed with status: '" + this.batchResponse._response.status + "'."); - } - return [4 /*yield*/, getBodyAsText(this.batchResponse)]; - case 1: - responseBodyAsText = _a.sent(); - subResponses = responseBodyAsText - .split(this.batchResponseEnding)[0] // string after ending is useless - .split(this.perResponsePrefix) - .slice(1); - subResponseCount = subResponses.length; - // Defensive coding in case of potential error parsing. - // Note: subResponseCount == 1 is special case where sub request is invalid. - // We try to prevent such cases through early validation, e.g. validate sub request count >= 1. - // While in unexpected sub request invalid case, we allow sub response to be parsed and return to user. - if (subResponseCount != this.subRequests.size && subResponseCount != 1) { - throw new Error("Invalid state: sub responses' count is not equal to sub requests' count."); - } - deserializedSubResponses = new Array(subResponseCount); - subResponsesSucceededCount = 0; - subResponsesFailedCount = 0; - // Parse sub subResponses. - for (index = 0; index < subResponseCount; index++) { - subResponse = subResponses[index]; - deserializedSubResponse = {}; - deserializedSubResponse.headers = new coreHttp.HttpHeaders(); - responseLines = subResponse.split("" + HTTP_LINE_ENDING); - subRespHeaderStartFound = false; - subRespHeaderEndFound = false; - subRespFailed = false; - contentId = NOT_FOUND; - for (_i = 0, responseLines_1 = responseLines; _i < responseLines_1.length; _i++) { - responseLine = responseLines_1[_i]; - if (!subRespHeaderStartFound) { - // Convention line to indicate content ID - if (responseLine.startsWith(HeaderConstants.CONTENT_ID)) { - contentId = parseInt(responseLine.split(HTTP_HEADER_DELIMITER)[1]); - } - // Http version line with status code indicates the start of sub request's response. - // Example: HTTP/1.1 202 Accepted - if (responseLine.startsWith(HTTP_VERSION_1_1)) { - subRespHeaderStartFound = true; - tokens = responseLine.split(SPACE_DELIMITER); - deserializedSubResponse.status = parseInt(tokens[1]); - deserializedSubResponse.statusMessage = tokens.slice(2).join(SPACE_DELIMITER); - } - continue; // Skip convention headers not specifically for sub request i.e. Content-Type: application/http and Content-ID: * - } - if (responseLine.trim() === "") { - // Sub response's header start line already found, and the first empty line indicates header end line found. - if (!subRespHeaderEndFound) { - subRespHeaderEndFound = true; - } - continue; // Skip empty line - } - // Note: when code reach here, it indicates subRespHeaderStartFound == true - if (!subRespHeaderEndFound) { - if (responseLine.indexOf(HTTP_HEADER_DELIMITER) === -1) { - // Defensive coding to prevent from missing valuable lines. - throw new Error("Invalid state: find non-empty line '" + responseLine + "' without HTTP header delimiter '" + HTTP_HEADER_DELIMITER + "'."); - } - tokens = responseLine.split(HTTP_HEADER_DELIMITER); - deserializedSubResponse.headers.set(tokens[0], tokens[1]); - if (tokens[0] === HeaderConstants.X_MS_ERROR_CODE) { - deserializedSubResponse.errorCode = tokens[1]; - subRespFailed = true; - } - } - else { - // Assemble body of sub response. - if (!deserializedSubResponse.bodyAsText) { - deserializedSubResponse.bodyAsText = ""; - } - deserializedSubResponse.bodyAsText += responseLine; - } - } // Inner for end - // The response will contain the Content-ID header for each corresponding subrequest response to use for tracking. - // The Content-IDs are set to a valid index in the subrequests we sent. In the status code 202 path, we could expect it - // to be 1-1 mapping from the [0, subRequests.size) to the Content-IDs returned. If not, we simply don't return that - // unexpected subResponse in the parsed reponse and we can always look it up in the raw response for debugging purpose. - if (contentId != NOT_FOUND && - Number.isInteger(contentId) && - contentId >= 0 && - contentId < this.subRequests.size && - deserializedSubResponses[contentId] === undefined) { - deserializedSubResponse._request = this.subRequests.get(contentId); - deserializedSubResponses[contentId] = deserializedSubResponse; - } - else { - logger.error("subResponses[" + index + "] is dropped as the Content-ID is not found or invalid, Content-ID: " + contentId); - } - if (subRespFailed) { - subResponsesFailedCount++; - } - else { - subResponsesSucceededCount++; - } - } - return [2 /*return*/, { - subResponses: deserializedSubResponses, - subResponsesSucceededCount: subResponsesSucceededCount, - subResponsesFailedCount: subResponsesFailedCount - }]; + async parseBatchResponse() { + // When logic reach here, suppose batch request has already succeeded with 202, so we can further parse + // sub request's response. + if (this.batchResponse._response.status !== HTTPURLConnection.HTTP_ACCEPTED) { + throw new Error(`Invalid state: batch request failed with status: '${this.batchResponse._response.status}'.`); + } + const responseBodyAsText = await getBodyAsText(this.batchResponse); + const subResponses = responseBodyAsText + .split(this.batchResponseEnding)[0] // string after ending is useless + .split(this.perResponsePrefix) + .slice(1); // string before first response boundary is useless + const subResponseCount = subResponses.length; + // Defensive coding in case of potential error parsing. + // Note: subResponseCount == 1 is special case where sub request is invalid. + // We try to prevent such cases through early validation, e.g. validate sub request count >= 1. + // While in unexpected sub request invalid case, we allow sub response to be parsed and return to user. + if (subResponseCount !== this.subRequests.size && subResponseCount !== 1) { + throw new Error("Invalid state: sub responses' count is not equal to sub requests' count."); + } + const deserializedSubResponses = new Array(subResponseCount); + let subResponsesSucceededCount = 0; + let subResponsesFailedCount = 0; + // Parse sub subResponses. + for (let index = 0; index < subResponseCount; index++) { + const subResponse = subResponses[index]; + const deserializedSubResponse = {}; + deserializedSubResponse.headers = new coreHttp.HttpHeaders(); + const responseLines = subResponse.split(`${HTTP_LINE_ENDING}`); + let subRespHeaderStartFound = false; + let subRespHeaderEndFound = false; + let subRespFailed = false; + let contentId = NOT_FOUND; + for (const responseLine of responseLines) { + if (!subRespHeaderStartFound) { + // Convention line to indicate content ID + if (responseLine.startsWith(HeaderConstants.CONTENT_ID)) { + contentId = parseInt(responseLine.split(HTTP_HEADER_DELIMITER)[1]); + } + // Http version line with status code indicates the start of sub request's response. + // Example: HTTP/1.1 202 Accepted + if (responseLine.startsWith(HTTP_VERSION_1_1)) { + subRespHeaderStartFound = true; + const tokens = responseLine.split(SPACE_DELIMITER); + deserializedSubResponse.status = parseInt(tokens[1]); + deserializedSubResponse.statusMessage = tokens.slice(2).join(SPACE_DELIMITER); + } + continue; // Skip convention headers not specifically for sub request i.e. Content-Type: application/http and Content-ID: * } - }); - }); - }; - return BatchResponseParser; -}()); + if (responseLine.trim() === "") { + // Sub response's header start line already found, and the first empty line indicates header end line found. + if (!subRespHeaderEndFound) { + subRespHeaderEndFound = true; + } + continue; // Skip empty line + } + // Note: when code reach here, it indicates subRespHeaderStartFound == true + if (!subRespHeaderEndFound) { + if (responseLine.indexOf(HTTP_HEADER_DELIMITER) === -1) { + // Defensive coding to prevent from missing valuable lines. + throw new Error(`Invalid state: find non-empty line '${responseLine}' without HTTP header delimiter '${HTTP_HEADER_DELIMITER}'.`); + } + // Parse headers of sub response. + const tokens = responseLine.split(HTTP_HEADER_DELIMITER); + deserializedSubResponse.headers.set(tokens[0], tokens[1]); + if (tokens[0] === HeaderConstants.X_MS_ERROR_CODE) { + deserializedSubResponse.errorCode = tokens[1]; + subRespFailed = true; + } + } + else { + // Assemble body of sub response. + if (!deserializedSubResponse.bodyAsText) { + deserializedSubResponse.bodyAsText = ""; + } + deserializedSubResponse.bodyAsText += responseLine; + } + } // Inner for end + // The response will contain the Content-ID header for each corresponding subrequest response to use for tracking. + // The Content-IDs are set to a valid index in the subrequests we sent. In the status code 202 path, we could expect it + // to be 1-1 mapping from the [0, subRequests.size) to the Content-IDs returned. If not, we simply don't return that + // unexpected subResponse in the parsed reponse and we can always look it up in the raw response for debugging purpose. + if (contentId !== NOT_FOUND && + Number.isInteger(contentId) && + contentId >= 0 && + contentId < this.subRequests.size && + deserializedSubResponses[contentId] === undefined) { + deserializedSubResponse._request = this.subRequests.get(contentId); + deserializedSubResponses[contentId] = deserializedSubResponse; + } + else { + logger.error(`subResponses[${index}] is dropped as the Content-ID is not found or invalid, Content-ID: ${contentId}`); + } + if (subRespFailed) { + subResponsesFailedCount++; + } + else { + subResponsesSucceededCount++; + } + } + return { + subResponses: deserializedSubResponses, + subResponsesSucceededCount: subResponsesSucceededCount, + subResponsesFailedCount: subResponsesFailedCount + }; + } +} // Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. var MutexLockStatus; (function (MutexLockStatus) { MutexLockStatus[MutexLockStatus["LOCKED"] = 0] = "LOCKED"; @@ -38970,82 +36224,68 @@ var MutexLockStatus; /** * An async mutex lock. */ -var Mutex = /** @class */ (function () { - function Mutex() { - } +class Mutex { /** * Lock for a specific key. If the lock has been acquired by another customer, then * will wait until getting the lock. * * @param key - lock key */ - Mutex.lock = function (key) { - return tslib.__awaiter(this, void 0, void 0, function () { - var _this = this; - return tslib.__generator(this, function (_a) { - return [2 /*return*/, new Promise(function (resolve) { - if (_this.keys[key] === undefined || _this.keys[key] === MutexLockStatus.UNLOCKED) { - _this.keys[key] = MutexLockStatus.LOCKED; - resolve(); - } - else { - _this.onUnlockEvent(key, function () { - _this.keys[key] = MutexLockStatus.LOCKED; - resolve(); - }); - } - })]; - }); + static async lock(key) { + return new Promise((resolve) => { + if (this.keys[key] === undefined || this.keys[key] === MutexLockStatus.UNLOCKED) { + this.keys[key] = MutexLockStatus.LOCKED; + resolve(); + } + else { + this.onUnlockEvent(key, () => { + this.keys[key] = MutexLockStatus.LOCKED; + resolve(); + }); + } }); - }; + } /** * Unlock a key. * * @param key - */ - Mutex.unlock = function (key) { - return tslib.__awaiter(this, void 0, void 0, function () { - var _this = this; - return tslib.__generator(this, function (_a) { - return [2 /*return*/, new Promise(function (resolve) { - if (_this.keys[key] === MutexLockStatus.LOCKED) { - _this.emitUnlockEvent(key); - } - delete _this.keys[key]; - resolve(); - })]; - }); + static async unlock(key) { + return new Promise((resolve) => { + if (this.keys[key] === MutexLockStatus.LOCKED) { + this.emitUnlockEvent(key); + } + delete this.keys[key]; + resolve(); }); - }; - Mutex.onUnlockEvent = function (key, handler) { + } + static onUnlockEvent(key, handler) { if (this.listeners[key] === undefined) { this.listeners[key] = [handler]; } else { this.listeners[key].push(handler); } - }; - Mutex.emitUnlockEvent = function (key) { - var _this = this; + } + static emitUnlockEvent(key) { if (this.listeners[key] !== undefined && this.listeners[key].length > 0) { - var handler_1 = this.listeners[key].shift(); - setImmediate(function () { - handler_1.call(_this); + const handler = this.listeners[key].shift(); + setImmediate(() => { + handler.call(this); }); } - }; - Mutex.keys = {}; - Mutex.listeners = {}; - return Mutex; -}()); + } +} +Mutex.keys = {}; +Mutex.listeners = {}; // Copyright (c) Microsoft Corporation. /** * A BlobBatch represents an aggregated set of operations on blobs. * Currently, only `delete` and `setAccessTier` are supported. */ -var BlobBatch = /** @class */ (function () { - function BlobBatch() { +class BlobBatch { + constructor() { this.batch = "batch"; this.batchRequest = new InnerBatchRequest(); } @@ -39054,203 +36294,151 @@ var BlobBatch = /** @class */ (function () { * The value must be multipart/mixed with a batch boundary. * Example: multipart/mixed; boundary=batch_a81786c8-e301-4e42-a729-a32ca24ae252 */ - BlobBatch.prototype.getMultiPartContentType = function () { + getMultiPartContentType() { return this.batchRequest.getMultipartContentType(); - }; + } /** * Get assembled HTTP request body for sub requests. */ - BlobBatch.prototype.getHttpRequestBody = function () { + getHttpRequestBody() { return this.batchRequest.getHttpRequestBody(); - }; + } /** * Get sub requests that are added into the batch request. */ - BlobBatch.prototype.getSubRequests = function () { + getSubRequests() { return this.batchRequest.getSubRequests(); - }; - BlobBatch.prototype.addSubRequestInternal = function (subRequest, assembleSubRequestFunc) { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, Mutex.lock(this.batch)]; - case 1: - _a.sent(); - _a.label = 2; - case 2: - _a.trys.push([2, , 4, 6]); - this.batchRequest.preAddSubRequest(subRequest); - return [4 /*yield*/, assembleSubRequestFunc()]; - case 3: - _a.sent(); - this.batchRequest.postAddSubRequest(subRequest); - return [3 /*break*/, 6]; - case 4: return [4 /*yield*/, Mutex.unlock(this.batch)]; - case 5: - _a.sent(); - return [7 /*endfinally*/]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - BlobBatch.prototype.setBatchType = function (batchType) { + } + async addSubRequestInternal(subRequest, assembleSubRequestFunc) { + await Mutex.lock(this.batch); + try { + this.batchRequest.preAddSubRequest(subRequest); + await assembleSubRequestFunc(); + this.batchRequest.postAddSubRequest(subRequest); + } + finally { + await Mutex.unlock(this.batch); + } + } + setBatchType(batchType) { if (!this.batchType) { this.batchType = batchType; } if (this.batchType !== batchType) { - throw new RangeError("BlobBatch only supports one operation type per batch and it already is being used for " + this.batchType + " operations."); + throw new RangeError(`BlobBatch only supports one operation type per batch and it already is being used for ${this.batchType} operations.`); } - }; - BlobBatch.prototype.deleteBlob = function (urlOrBlobClient, credentialOrOptions, options) { - return tslib.__awaiter(this, void 0, void 0, function () { - var url, credential, _a, span, updatedOptions, e_1; - var _this = this; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - if (typeof urlOrBlobClient === "string" && - ((coreHttp.isNode && credentialOrOptions instanceof StorageSharedKeyCredential) || - credentialOrOptions instanceof AnonymousCredential || - coreHttp.isTokenCredential(credentialOrOptions))) { - // First overload - url = urlOrBlobClient; - credential = credentialOrOptions; - } - else if (urlOrBlobClient instanceof BlobClient) { - // Second overload - url = urlOrBlobClient.url; - credential = urlOrBlobClient.credential; - options = credentialOrOptions; - } - else { - throw new RangeError("Invalid arguments. Either url and credential, or BlobClient need be provided."); - } - if (!options) { - options = {}; - } - _a = createSpan("BatchDeleteRequest-addSubRequest", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - this.setBatchType("delete"); - return [4 /*yield*/, this.addSubRequestInternal({ - url: url, - credential: credential - }, function () { return tslib.__awaiter(_this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, new BlobClient(url, this.batchRequest.createPipeline(credential)).delete(updatedOptions)]; - case 1: - _a.sent(); - return [2 /*return*/]; - } - }); - }); })]; - case 2: - _b.sent(); - return [3 /*break*/, 5]; - case 3: - e_1 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_1.message - }); - throw e_1; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + } + async deleteBlob(urlOrBlobClient, credentialOrOptions, options) { + let url; + let credential; + if (typeof urlOrBlobClient === "string" && + ((coreHttp.isNode && credentialOrOptions instanceof StorageSharedKeyCredential) || + credentialOrOptions instanceof AnonymousCredential || + coreHttp.isTokenCredential(credentialOrOptions))) { + // First overload + url = urlOrBlobClient; + credential = credentialOrOptions; + } + else if (urlOrBlobClient instanceof BlobClient) { + // Second overload + url = urlOrBlobClient.url; + credential = urlOrBlobClient.credential; + options = credentialOrOptions; + } + else { + throw new RangeError("Invalid arguments. Either url and credential, or BlobClient need be provided."); + } + if (!options) { + options = {}; + } + const { span, updatedOptions } = createSpan("BatchDeleteRequest-addSubRequest", options); + try { + this.setBatchType("delete"); + await this.addSubRequestInternal({ + url: url, + credential: credential + }, async () => { + await new BlobClient(url, this.batchRequest.createPipeline(credential)).delete(updatedOptions); }); - }); - }; - BlobBatch.prototype.setBlobAccessTier = function (urlOrBlobClient, credentialOrTier, tierOrOptions, options) { - return tslib.__awaiter(this, void 0, void 0, function () { - var url, credential, tier, _a, span, updatedOptions, e_2; - var _this = this; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - if (typeof urlOrBlobClient === "string" && - ((coreHttp.isNode && credentialOrTier instanceof StorageSharedKeyCredential) || - credentialOrTier instanceof AnonymousCredential || - coreHttp.isTokenCredential(credentialOrTier))) { - // First overload - url = urlOrBlobClient; - credential = credentialOrTier; - tier = tierOrOptions; - } - else if (urlOrBlobClient instanceof BlobClient) { - // Second overload - url = urlOrBlobClient.url; - credential = urlOrBlobClient.credential; - tier = credentialOrTier; - options = tierOrOptions; - } - else { - throw new RangeError("Invalid arguments. Either url and credential, or BlobClient need be provided."); - } - if (!options) { - options = {}; - } - _a = createSpan("BatchSetTierRequest-addSubRequest", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - this.setBatchType("setAccessTier"); - return [4 /*yield*/, this.addSubRequestInternal({ - url: url, - credential: credential - }, function () { return tslib.__awaiter(_this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, new BlobClient(url, this.batchRequest.createPipeline(credential)).setAccessTier(tier, updatedOptions)]; - case 1: - _a.sent(); - return [2 /*return*/]; - } - }); - }); })]; - case 2: - _b.sent(); - return [3 /*break*/, 5]; - case 3: - e_2 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_2.message - }); - throw e_2; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; - return BlobBatch; -}()); + throw e; + } + finally { + span.end(); + } + } + async setBlobAccessTier(urlOrBlobClient, credentialOrTier, tierOrOptions, options) { + let url; + let credential; + let tier; + if (typeof urlOrBlobClient === "string" && + ((coreHttp.isNode && credentialOrTier instanceof StorageSharedKeyCredential) || + credentialOrTier instanceof AnonymousCredential || + coreHttp.isTokenCredential(credentialOrTier))) { + // First overload + url = urlOrBlobClient; + credential = credentialOrTier; + tier = tierOrOptions; + } + else if (urlOrBlobClient instanceof BlobClient) { + // Second overload + url = urlOrBlobClient.url; + credential = urlOrBlobClient.credential; + tier = credentialOrTier; + options = tierOrOptions; + } + else { + throw new RangeError("Invalid arguments. Either url and credential, or BlobClient need be provided."); + } + if (!options) { + options = {}; + } + const { span, updatedOptions } = createSpan("BatchSetTierRequest-addSubRequest", options); + try { + this.setBatchType("setAccessTier"); + await this.addSubRequestInternal({ + url: url, + credential: credential + }, async () => { + await new BlobClient(url, this.batchRequest.createPipeline(credential)).setAccessTier(tier, updatedOptions); + }); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message + }); + throw e; + } + finally { + span.end(); + } + } +} /** * Inner batch request class which is responsible for assembling and serializing sub requests. * See https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch#request-body for how requests are assembled. */ -var InnerBatchRequest = /** @class */ (function () { - function InnerBatchRequest() { +class InnerBatchRequest { + constructor() { this.operationCount = 0; this.body = ""; - var tempGuid = coreHttp.generateUuid(); + const tempGuid = coreHttp.generateUuid(); // batch_{batchid} - this.boundary = "batch_" + tempGuid; + this.boundary = `batch_${tempGuid}`; // --batch_{batchid} // Content-Type: application/http // Content-Transfer-Encoding: binary - this.subRequestPrefix = "--" + this.boundary + HTTP_LINE_ENDING + HeaderConstants.CONTENT_TYPE + ": application/http" + HTTP_LINE_ENDING + HeaderConstants.CONTENT_TRANSFER_ENCODING + ": binary"; + this.subRequestPrefix = `--${this.boundary}${HTTP_LINE_ENDING}${HeaderConstants.CONTENT_TYPE}: application/http${HTTP_LINE_ENDING}${HeaderConstants.CONTENT_TRANSFER_ENCODING}: binary`; // multipart/mixed; boundary=batch_{batchid} - this.multipartContentType = "multipart/mixed; boundary=" + this.boundary; + this.multipartContentType = `multipart/mixed; boundary=${this.boundary}`; // --batch_{batchid}-- - this.batchRequestEnding = "--" + this.boundary + "--"; + this.batchRequestEnding = `--${this.boundary}--`; this.subRequests = new Map(); } /** @@ -39260,10 +36448,10 @@ var InnerBatchRequest = /** @class */ (function () { * and intercept request from going to wire. * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used. */ - InnerBatchRequest.prototype.createPipeline = function (credential) { - var isAnonymousCreds = credential instanceof AnonymousCredential; - var policyFactoryLength = 3 + (isAnonymousCreds ? 0 : 1); // [deserializationPolicy, BatchHeaderFilterPolicyFactory, (Optional)Credential, BatchRequestAssemblePolicyFactory] - var factories = new Array(policyFactoryLength); + createPipeline(credential) { + const isAnonymousCreds = credential instanceof AnonymousCredential; + const policyFactoryLength = 3 + (isAnonymousCreds ? 0 : 1); // [deserializationPolicy, BatchHeaderFilterPolicyFactory, (Optional)Credential, BatchRequestAssemblePolicyFactory] + const factories = new Array(policyFactoryLength); factories[0] = coreHttp.deserializationPolicy(); // Default deserializationPolicy is provided by protocol layer factories[1] = new BatchHeaderFilterPolicyFactory(); // Use batch header filter policy to exclude unnecessary headers if (!isAnonymousCreds) { @@ -39273,117 +36461,94 @@ var InnerBatchRequest = /** @class */ (function () { } factories[policyFactoryLength - 1] = new BatchRequestAssemblePolicyFactory(this); // Use batch assemble policy to assemble request and intercept request from going to wire return new Pipeline(factories, {}); - }; - InnerBatchRequest.prototype.appendSubRequestToBody = function (request) { + } + appendSubRequestToBody(request) { // Start to assemble sub request this.body += [ this.subRequestPrefix, - HeaderConstants.CONTENT_ID + ": " + this.operationCount, + `${HeaderConstants.CONTENT_ID}: ${this.operationCount}`, "", - request.method.toString() + " " + getURLPathAndQuery(request.url) + " " + HTTP_VERSION_1_1 + HTTP_LINE_ENDING // sub request start line with method + `${request.method.toString()} ${getURLPathAndQuery(request.url)} ${HTTP_VERSION_1_1}${HTTP_LINE_ENDING}` // sub request start line with method ].join(HTTP_LINE_ENDING); - for (var _i = 0, _a = request.headers.headersArray(); _i < _a.length; _i++) { - var header = _a[_i]; - this.body += header.name + ": " + header.value + HTTP_LINE_ENDING; + for (const header of request.headers.headersArray()) { + this.body += `${header.name}: ${header.value}${HTTP_LINE_ENDING}`; } this.body += HTTP_LINE_ENDING; // sub request's headers need be ending with an empty line // No body to assemble for current batch request support // End to assemble sub request - }; - InnerBatchRequest.prototype.preAddSubRequest = function (subRequest) { + } + preAddSubRequest(subRequest) { if (this.operationCount >= BATCH_MAX_REQUEST) { - throw new RangeError("Cannot exceed " + BATCH_MAX_REQUEST + " sub requests in a single batch"); + throw new RangeError(`Cannot exceed ${BATCH_MAX_REQUEST} sub requests in a single batch`); } // Fast fail if url for sub request is invalid - var path = getURLPath(subRequest.url); - if (!path || path == "") { - throw new RangeError("Invalid url for sub request: '" + subRequest.url + "'"); + const path = getURLPath(subRequest.url); + if (!path || path === "") { + throw new RangeError(`Invalid url for sub request: '${subRequest.url}'`); } - }; - InnerBatchRequest.prototype.postAddSubRequest = function (subRequest) { + } + postAddSubRequest(subRequest) { this.subRequests.set(this.operationCount, subRequest); this.operationCount++; - }; + } // Return the http request body with assembling the ending line to the sub request body. - InnerBatchRequest.prototype.getHttpRequestBody = function () { - return "" + this.body + this.batchRequestEnding + HTTP_LINE_ENDING; - }; - InnerBatchRequest.prototype.getMultipartContentType = function () { + getHttpRequestBody() { + return `${this.body}${this.batchRequestEnding}${HTTP_LINE_ENDING}`; + } + getMultipartContentType() { return this.multipartContentType; - }; - InnerBatchRequest.prototype.getSubRequests = function () { + } + getSubRequests() { return this.subRequests; - }; - return InnerBatchRequest; -}()); -var BatchRequestAssemblePolicy = /** @class */ (function (_super) { - tslib.__extends(BatchRequestAssemblePolicy, _super); - function BatchRequestAssemblePolicy(batchRequest, nextPolicy, options) { - var _this = _super.call(this, nextPolicy, options) || this; - _this.dummyResponse = { + } +} +class BatchRequestAssemblePolicy extends coreHttp.BaseRequestPolicy { + constructor(batchRequest, nextPolicy, options) { + super(nextPolicy, options); + this.dummyResponse = { request: new coreHttp.WebResource(), status: 200, headers: new coreHttp.HttpHeaders() }; - _this.batchRequest = batchRequest; - return _this; - } - BatchRequestAssemblePolicy.prototype.sendRequest = function (request) { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, this.batchRequest.appendSubRequestToBody(request)]; - case 1: - _a.sent(); - return [2 /*return*/, this.dummyResponse]; // Intercept request from going to wire - } - }); - }); - }; - return BatchRequestAssemblePolicy; -}(coreHttp.BaseRequestPolicy)); -var BatchRequestAssemblePolicyFactory = /** @class */ (function () { - function BatchRequestAssemblePolicyFactory(batchRequest) { this.batchRequest = batchRequest; } - BatchRequestAssemblePolicyFactory.prototype.create = function (nextPolicy, options) { + async sendRequest(request) { + await this.batchRequest.appendSubRequestToBody(request); + return this.dummyResponse; // Intercept request from going to wire + } +} +class BatchRequestAssemblePolicyFactory { + constructor(batchRequest) { + this.batchRequest = batchRequest; + } + create(nextPolicy, options) { return new BatchRequestAssemblePolicy(this.batchRequest, nextPolicy, options); - }; - return BatchRequestAssemblePolicyFactory; -}()); -var BatchHeaderFilterPolicy = /** @class */ (function (_super) { - tslib.__extends(BatchHeaderFilterPolicy, _super); - function BatchHeaderFilterPolicy(nextPolicy, options) { - return _super.call(this, nextPolicy, options) || this; } - BatchHeaderFilterPolicy.prototype.sendRequest = function (request) { - return tslib.__awaiter(this, void 0, void 0, function () { - var xMsHeaderName, _i, _a, header; - return tslib.__generator(this, function (_b) { - xMsHeaderName = ""; - for (_i = 0, _a = request.headers.headersArray(); _i < _a.length; _i++) { - header = _a[_i]; - if (iEqual(header.name, HeaderConstants.X_MS_VERSION)) { - xMsHeaderName = header.name; - } - } - if (xMsHeaderName !== "") { - request.headers.remove(xMsHeaderName); // The subrequests should not have the x-ms-version header. - } - return [2 /*return*/, this._nextPolicy.sendRequest(request)]; - }); - }); - }; - return BatchHeaderFilterPolicy; -}(coreHttp.BaseRequestPolicy)); -var BatchHeaderFilterPolicyFactory = /** @class */ (function () { - function BatchHeaderFilterPolicyFactory() { +} +class BatchHeaderFilterPolicy extends coreHttp.BaseRequestPolicy { + // The base class has a protected constructor. Adding a public one to enable constructing of this class. + /* eslint-disable-next-line @typescript-eslint/no-useless-constructor*/ + constructor(nextPolicy, options) { + super(nextPolicy, options); } - BatchHeaderFilterPolicyFactory.prototype.create = function (nextPolicy, options) { + async sendRequest(request) { + let xMsHeaderName = ""; + for (const header of request.headers.headersArray()) { + if (iEqual(header.name, HeaderConstants.X_MS_VERSION)) { + xMsHeaderName = header.name; + } + } + if (xMsHeaderName !== "") { + request.headers.remove(xMsHeaderName); // The subrequests should not have the x-ms-version header. + } + return this._nextPolicy.sendRequest(request); + } +} +class BatchHeaderFilterPolicyFactory { + create(nextPolicy, options) { return new BatchHeaderFilterPolicy(nextPolicy, options); - }; - return BatchHeaderFilterPolicyFactory; -}()); + } +} // Copyright (c) Microsoft Corporation. /** @@ -39391,10 +36556,13 @@ var BatchHeaderFilterPolicyFactory = /** @class */ (function () { * * @see https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch */ -var BlobBatchClient = /** @class */ (function () { - function BlobBatchClient(url, credentialOrPipeline, options) { - var pipeline; - if (credentialOrPipeline instanceof Pipeline) { +class BlobBatchClient { + constructor(url, credentialOrPipeline, + // Legacy, no fix for eslint error without breaking. Disable it for this interface. + /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/ + options) { + let pipeline; + if (isPipelineLike(credentialOrPipeline)) { pipeline = credentialOrPipeline; } else if (!credentialOrPipeline) { @@ -39404,8 +36572,8 @@ var BlobBatchClient = /** @class */ (function () { else { pipeline = newPipeline(credentialOrPipeline, options); } - var storageClientContext = new StorageClientContext(url, pipeline.toServiceClientOptions()); - var path = getURLPath(url); + const storageClientContext = new StorageClientContext(url, pipeline.toServiceClientOptions()); + const path = getURLPath(url); if (path && path !== "/") { // Container scoped. this.serviceOrContainerContext = new Container(storageClientContext); @@ -39418,67 +36586,39 @@ var BlobBatchClient = /** @class */ (function () { * Creates a {@link BlobBatch}. * A BlobBatch represents an aggregated set of operations on blobs. */ - BlobBatchClient.prototype.createBatch = function () { + createBatch() { return new BlobBatch(); - }; - BlobBatchClient.prototype.deleteBlobs = function (urlsOrBlobClients, credentialOrOptions, options) { - return tslib.__awaiter(this, void 0, void 0, function () { - var batch, _i, urlsOrBlobClients_1, urlOrBlobClient; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - batch = new BlobBatch(); - _i = 0, urlsOrBlobClients_1 = urlsOrBlobClients; - _a.label = 1; - case 1: - if (!(_i < urlsOrBlobClients_1.length)) return [3 /*break*/, 6]; - urlOrBlobClient = urlsOrBlobClients_1[_i]; - if (!(typeof urlOrBlobClient === "string")) return [3 /*break*/, 3]; - return [4 /*yield*/, batch.deleteBlob(urlOrBlobClient, credentialOrOptions, options)]; - case 2: - _a.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, batch.deleteBlob(urlOrBlobClient, credentialOrOptions)]; - case 4: - _a.sent(); - _a.label = 5; - case 5: - _i++; - return [3 /*break*/, 1]; - case 6: return [2 /*return*/, this.submitBatch(batch)]; - } - }); - }); - }; - BlobBatchClient.prototype.setBlobsAccessTier = function (urlsOrBlobClients, credentialOrTier, tierOrOptions, options) { - return tslib.__awaiter(this, void 0, void 0, function () { - var batch, _i, urlsOrBlobClients_2, urlOrBlobClient; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - batch = new BlobBatch(); - _i = 0, urlsOrBlobClients_2 = urlsOrBlobClients; - _a.label = 1; - case 1: - if (!(_i < urlsOrBlobClients_2.length)) return [3 /*break*/, 6]; - urlOrBlobClient = urlsOrBlobClients_2[_i]; - if (!(typeof urlOrBlobClient === "string")) return [3 /*break*/, 3]; - return [4 /*yield*/, batch.setBlobAccessTier(urlOrBlobClient, credentialOrTier, tierOrOptions, options)]; - case 2: - _a.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, batch.setBlobAccessTier(urlOrBlobClient, credentialOrTier, tierOrOptions)]; - case 4: - _a.sent(); - _a.label = 5; - case 5: - _i++; - return [3 /*break*/, 1]; - case 6: return [2 /*return*/, this.submitBatch(batch)]; - } - }); - }); - }; + } + async deleteBlobs(urlsOrBlobClients, credentialOrOptions, + // Legacy, no fix for eslint error without breaking. Disable it for this interface. + /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/ + options) { + const batch = new BlobBatch(); + for (const urlOrBlobClient of urlsOrBlobClients) { + if (typeof urlOrBlobClient === "string") { + await batch.deleteBlob(urlOrBlobClient, credentialOrOptions, options); + } + else { + await batch.deleteBlob(urlOrBlobClient, credentialOrOptions); + } + } + return this.submitBatch(batch); + } + async setBlobsAccessTier(urlsOrBlobClients, credentialOrTier, tierOrOptions, + // Legacy, no fix for eslint error without breaking. Disable it for this interface. + /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/ + options) { + const batch = new BlobBatch(); + for (const urlOrBlobClient of urlsOrBlobClients) { + if (typeof urlOrBlobClient === "string") { + await batch.setBlobAccessTier(urlOrBlobClient, credentialOrTier, tierOrOptions, options); + } + else { + await batch.setBlobAccessTier(urlOrBlobClient, credentialOrTier, tierOrOptions); + } + } + return this.submitBatch(batch); + } /** * Submit batch request which consists of multiple subrequests. * @@ -39514,69 +36654,56 @@ var BlobBatchClient = /** @class */ (function () { * @param batchRequest - A set of Delete or SetTier operations. * @param options - */ - BlobBatchClient.prototype.submitBatch = function (batchRequest, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, batchRequestBody, rawBatchResponse, batchResponseParser, responseSummary, res, e_1; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - if (!batchRequest || batchRequest.getSubRequests().size == 0) { - throw new RangeError("Batch request should contain one or more sub requests."); - } - _a = createSpan("BlobBatchClient-submitBatch", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 4, 5, 6]); - batchRequestBody = batchRequest.getHttpRequestBody(); - return [4 /*yield*/, this.serviceOrContainerContext.submitBatch(utf8ByteLength(batchRequestBody), batchRequest.getMultiPartContentType(), batchRequestBody, tslib.__assign(tslib.__assign({}, options), convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - rawBatchResponse = _b.sent(); - batchResponseParser = new BatchResponseParser(rawBatchResponse, batchRequest.getSubRequests()); - return [4 /*yield*/, batchResponseParser.parseBatchResponse()]; - case 3: - responseSummary = _b.sent(); - res = { - _response: rawBatchResponse._response, - contentType: rawBatchResponse.contentType, - errorCode: rawBatchResponse.errorCode, - requestId: rawBatchResponse.requestId, - clientRequestId: rawBatchResponse.clientRequestId, - version: rawBatchResponse.version, - subResponses: responseSummary.subResponses, - subResponsesSucceededCount: responseSummary.subResponsesSucceededCount, - subResponsesFailedCount: responseSummary.subResponsesFailedCount - }; - return [2 /*return*/, res]; - case 4: - e_1 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_1.message - }); - throw e_1; - case 5: - span.end(); - return [7 /*endfinally*/]; - case 6: return [2 /*return*/]; - } + async submitBatch(batchRequest, options = {}) { + if (!batchRequest || batchRequest.getSubRequests().size === 0) { + throw new RangeError("Batch request should contain one or more sub requests."); + } + const { span, updatedOptions } = createSpan("BlobBatchClient-submitBatch", options); + try { + const batchRequestBody = batchRequest.getHttpRequestBody(); + // ServiceSubmitBatchResponseModel and ContainerSubmitBatchResponse are compatible for now. + const rawBatchResponse = await this.serviceOrContainerContext.submitBatch(utf8ByteLength(batchRequestBody), batchRequest.getMultiPartContentType(), batchRequestBody, Object.assign(Object.assign({}, options), convertTracingToRequestOptionsBase(updatedOptions))); + // Parse the sub responses result, if logic reaches here(i.e. the batch request succeeded with status code 202). + const batchResponseParser = new BatchResponseParser(rawBatchResponse, batchRequest.getSubRequests()); + const responseSummary = await batchResponseParser.parseBatchResponse(); + const res = { + _response: rawBatchResponse._response, + contentType: rawBatchResponse.contentType, + errorCode: rawBatchResponse.errorCode, + requestId: rawBatchResponse.requestId, + clientRequestId: rawBatchResponse.clientRequestId, + version: rawBatchResponse.version, + subResponses: responseSummary.subResponses, + subResponsesSucceededCount: responseSummary.subResponsesSucceededCount, + subResponsesFailedCount: responseSummary.subResponsesFailedCount + }; + return res; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; - return BlobBatchClient; -}()); + throw e; + } + finally { + span.end(); + } + } +} /** * A ContainerClient represents a URL to the Azure Storage container allowing you to manipulate its blobs. */ -var ContainerClient = /** @class */ (function (_super) { - tslib.__extends(ContainerClient, _super); - function ContainerClient(urlOrConnectionString, credentialOrPipelineOrContainerName, options) { - var _this = this; - var pipeline; - var url; +class ContainerClient extends StorageClient { + constructor(urlOrConnectionString, credentialOrPipelineOrContainerName, + // Legacy, no fix for eslint error without breaking. Disable it for this interface. + /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/ + options) { + let pipeline; + let url; options = options || {}; - if (credentialOrPipelineOrContainerName instanceof Pipeline) { + if (isPipelineLike(credentialOrPipelineOrContainerName)) { // (url: string, pipeline: Pipeline) url = urlOrConnectionString; pipeline = credentialOrPipelineOrContainerName; @@ -39598,11 +36725,11 @@ var ContainerClient = /** @class */ (function (_super) { else if (credentialOrPipelineOrContainerName && typeof credentialOrPipelineOrContainerName === "string") { // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions) - var containerName = credentialOrPipelineOrContainerName; - var extractedCreds = extractConnectionStringParts(urlOrConnectionString); + const containerName = credentialOrPipelineOrContainerName; + const extractedCreds = extractConnectionStringParts(urlOrConnectionString); if (extractedCreds.kind === "AccountConnString") { { - var sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey); + const sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey); url = appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)); options.proxyOptions = coreHttp.getDefaultProxySettings(extractedCreds.proxyUri); pipeline = newPipeline(sharedKeyCredential, options); @@ -39622,21 +36749,16 @@ var ContainerClient = /** @class */ (function (_super) { else { throw new Error("Expecting non-empty strings for containerName parameter"); } - _this = _super.call(this, url, pipeline) || this; - _this._containerName = _this.getContainerNameFromUrl(); - _this.containerContext = new Container(_this.storageClientContext); - return _this; + super(url, pipeline); + this._containerName = this.getContainerNameFromUrl(); + this.containerContext = new Container(this.storageClientContext); + } + /** + * The name of the container. + */ + get containerName() { + return this._containerName; } - Object.defineProperty(ContainerClient.prototype, "containerName", { - /** - * The name of the container. - */ - get: function () { - return this._containerName; - }, - enumerable: false, - configurable: true - }); /** * Creates a new container under the specified account. If the container with * the same name already exists, the operation fails. @@ -39653,37 +36775,24 @@ var ContainerClient = /** @class */ (function (_super) { * console.log("Container was created successfully", createContainerResponse.requestId); * ``` */ - ContainerClient.prototype.create = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_1; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("ContainerClient-create", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.containerContext.create(tslib.__assign(tslib.__assign({}, options), convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - // Spread operator in destructuring assignments, - // this will filter out unwanted properties from the response object into result object - return [2 /*return*/, _b.sent()]; - case 3: - e_1 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_1.message - }); - throw e_1; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async create(options = {}) { + const { span, updatedOptions } = createSpan("ContainerClient-create", options); + try { + // Spread operator in destructuring assignments, + // this will filter out unwanted properties from the response object into result object + return await this.containerContext.create(Object.assign(Object.assign({}, options), convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Creates a new container under the specified account. If the container with * the same name already exists, it is not changed. @@ -39691,45 +36800,32 @@ var ContainerClient = /** @class */ (function (_super) { * * @param options - */ - ContainerClient.prototype.createIfNotExists = function (options) { + async createIfNotExists(options = {}) { var _a, _b; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _c, span, updatedOptions, res, e_2; - return tslib.__generator(this, function (_d) { - switch (_d.label) { - case 0: - _c = createSpan("ContainerClient-createIfNotExists", options), span = _c.span, updatedOptions = _c.updatedOptions; - _d.label = 1; - case 1: - _d.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.create(updatedOptions)]; - case 2: - res = _d.sent(); - return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable - })]; - case 3: - e_2 = _d.sent(); - if (((_a = e_2.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "ContainerAlreadyExists") { - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: "Expected exception when creating a container only if it does not already exist." - }); - return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: false }, (_b = e_2.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e_2.response })]; - } - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_2.message - }); - throw e_2; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("ContainerClient-createIfNotExists", options); + try { + const res = await this.create(updatedOptions); + return Object.assign(Object.assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable + }); + } + catch (e) { + if (((_a = e.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "ContainerAlreadyExists") { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: "Expected exception when creating a container only if it does not already exist." + }); + return Object.assign(Object.assign({ succeeded: false }, (_b = e.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e.response }); + } + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Returns true if the Azure container resource represented by this client exists; false otherwise. * @@ -39739,63 +36835,50 @@ var ContainerClient = /** @class */ (function (_super) { * * @param options - */ - ContainerClient.prototype.exists = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_3; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("ContainerClient-exists", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.getProperties({ - abortSignal: options.abortSignal, - tracingOptions: updatedOptions.tracingOptions - })]; - case 2: - _b.sent(); - return [2 /*return*/, true]; - case 3: - e_3 = _b.sent(); - if (e_3.statusCode === 404) { - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: "Expected exception when checking container existence" - }); - return [2 /*return*/, false]; - } - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_3.message - }); - throw e_3; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async exists(options = {}) { + const { span, updatedOptions } = createSpan("ContainerClient-exists", options); + try { + await this.getProperties({ + abortSignal: options.abortSignal, + tracingOptions: updatedOptions.tracingOptions }); - }); - }; + return true; + } + catch (e) { + if (e.statusCode === 404) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: "Expected exception when checking container existence" + }); + return false; + } + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message + }); + throw e; + } + finally { + span.end(); + } + } /** * Creates a {@link BlobClient} * * @param blobName - A blob name * @returns A new BlobClient object for the given blob name. */ - ContainerClient.prototype.getBlobClient = function (blobName) { + getBlobClient(blobName) { return new BlobClient(appendToURLPath(this.url, encodeURIComponent(blobName)), this.pipeline); - }; + } /** * Creates an {@link AppendBlobClient} * * @param blobName - An append blob name */ - ContainerClient.prototype.getAppendBlobClient = function (blobName) { + getAppendBlobClient(blobName) { return new AppendBlobClient(appendToURLPath(this.url, encodeURIComponent(blobName)), this.pipeline); - }; + } /** * Creates a {@link BlockBlobClient} * @@ -39811,17 +36894,17 @@ var ContainerClient = /** @class */ (function (_super) { * const uploadBlobResponse = await blockBlobClient.upload(content, content.length); * ``` */ - ContainerClient.prototype.getBlockBlobClient = function (blobName) { + getBlockBlobClient(blobName) { return new BlockBlobClient(appendToURLPath(this.url, encodeURIComponent(blobName)), this.pipeline); - }; + } /** * Creates a {@link PageBlobClient} * * @param blobName - A page blob name */ - ContainerClient.prototype.getPageBlobClient = function (blobName) { + getPageBlobClient(blobName) { return new PageBlobClient(appendToURLPath(this.url, encodeURIComponent(blobName)), this.pipeline); - }; + } /** * Returns all user-defined metadata and system properties for the specified * container. The data returned does not include the container's list of blobs. @@ -39834,37 +36917,25 @@ var ContainerClient = /** @class */ (function (_super) { * * @param options - Options to Container Get Properties operation. */ - ContainerClient.prototype.getProperties = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_4; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - if (!options.conditions) { - options.conditions = {}; - } - _a = createSpan("ContainerClient-getProperties", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.containerContext.getProperties(tslib.__assign(tslib.__assign({ abortSignal: options.abortSignal }, options.conditions), convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_4 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_4.message - }); - throw e_4; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async getProperties(options = {}) { + if (!options.conditions) { + options.conditions = {}; + } + const { span, updatedOptions } = createSpan("ContainerClient-getProperties", options); + try { + return await this.containerContext.getProperties(Object.assign(Object.assign({ abortSignal: options.abortSignal }, options.conditions), convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Marks the specified container for deletion. The container and any blobs * contained within it are later deleted during garbage collection. @@ -39872,37 +36943,25 @@ var ContainerClient = /** @class */ (function (_super) { * * @param options - Options to Container Delete operation. */ - ContainerClient.prototype.delete = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_5; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - if (!options.conditions) { - options.conditions = {}; - } - _a = createSpan("ContainerClient-delete", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.containerContext.delete(tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: options.conditions }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_5 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_5.message - }); - throw e_5; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async delete(options = {}) { + if (!options.conditions) { + options.conditions = {}; + } + const { span, updatedOptions } = createSpan("ContainerClient-delete", options); + try { + return await this.containerContext.delete(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: options.conditions }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Marks the specified container for deletion if it exists. The container and any blobs * contained within it are later deleted during garbage collection. @@ -39910,45 +36969,32 @@ var ContainerClient = /** @class */ (function (_super) { * * @param options - Options to Container Delete operation. */ - ContainerClient.prototype.deleteIfExists = function (options) { + async deleteIfExists(options = {}) { var _a, _b; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _c, span, updatedOptions, res, e_6; - return tslib.__generator(this, function (_d) { - switch (_d.label) { - case 0: - _c = createSpan("ContainerClient-deleteIfExists", options), span = _c.span, updatedOptions = _c.updatedOptions; - _d.label = 1; - case 1: - _d.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.delete(updatedOptions)]; - case 2: - res = _d.sent(); - return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable - })]; - case 3: - e_6 = _d.sent(); - if (((_a = e_6.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "ContainerNotFound") { - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: "Expected exception when deleting a container only if it exists." - }); - return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: false }, (_b = e_6.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e_6.response })]; - } - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_6.message - }); - throw e_6; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("ContainerClient-deleteIfExists", options); + try { + const res = await this.delete(updatedOptions); + return Object.assign(Object.assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable + }); + } + catch (e) { + if (((_a = e.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "ContainerNotFound") { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: "Expected exception when deleting a container only if it exists." + }); + return Object.assign(Object.assign({ succeeded: false }, (_b = e.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e.response }); + } + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Sets one or more user-defined name-value pairs for the specified container. * @@ -39961,40 +37007,28 @@ var ContainerClient = /** @class */ (function (_super) { * If no value provided the existing metadata will be removed. * @param options - Options to Container Set Metadata operation. */ - ContainerClient.prototype.setMetadata = function (metadata, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_7; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - if (!options.conditions) { - options.conditions = {}; - } - if (options.conditions.ifUnmodifiedSince) { - throw new RangeError("the IfUnmodifiedSince must have their default values because they are ignored by the blob service"); - } - _a = createSpan("ContainerClient-setMetadata", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.containerContext.setMetadata(tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, metadata: metadata, modifiedAccessConditions: options.conditions }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_7 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_7.message - }); - throw e_7; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async setMetadata(metadata, options = {}) { + if (!options.conditions) { + options.conditions = {}; + } + if (options.conditions.ifUnmodifiedSince) { + throw new RangeError("the IfUnmodifiedSince must have their default values because they are ignored by the blob service"); + } + const { span, updatedOptions } = createSpan("ContainerClient-setMetadata", options); + try { + return await this.containerContext.setMetadata(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, metadata, modifiedAccessConditions: options.conditions }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Gets the permissions for the specified container. The permissions indicate * whether container data may be accessed publicly. @@ -40006,70 +37040,56 @@ var ContainerClient = /** @class */ (function (_super) { * * @param options - Options to Container Get Access Policy operation. */ - ContainerClient.prototype.getAccessPolicy = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, response, res, _i, response_1, identifier, accessPolicy, e_8; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - if (!options.conditions) { - options.conditions = {}; - } - _a = createSpan("ContainerClient-getAccessPolicy", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.containerContext.getAccessPolicy(tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - response = _b.sent(); - res = { - _response: response._response, - blobPublicAccess: response.blobPublicAccess, - date: response.date, - etag: response.etag, - errorCode: response.errorCode, - lastModified: response.lastModified, - requestId: response.requestId, - clientRequestId: response.clientRequestId, - signedIdentifiers: [], - version: response.version - }; - for (_i = 0, response_1 = response; _i < response_1.length; _i++) { - identifier = response_1[_i]; - accessPolicy = undefined; - if (identifier.accessPolicy) { - accessPolicy = { - permissions: identifier.accessPolicy.permissions - }; - if (identifier.accessPolicy.expiresOn) { - accessPolicy.expiresOn = new Date(identifier.accessPolicy.expiresOn); - } - if (identifier.accessPolicy.startsOn) { - accessPolicy.startsOn = new Date(identifier.accessPolicy.startsOn); - } - } - res.signedIdentifiers.push({ - accessPolicy: accessPolicy, - id: identifier.id - }); - } - return [2 /*return*/, res]; - case 3: - e_8 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_8.message - }); - throw e_8; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; + async getAccessPolicy(options = {}) { + if (!options.conditions) { + options.conditions = {}; + } + const { span, updatedOptions } = createSpan("ContainerClient-getAccessPolicy", options); + try { + const response = await this.containerContext.getAccessPolicy(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions }, convertTracingToRequestOptionsBase(updatedOptions))); + const res = { + _response: response._response, + blobPublicAccess: response.blobPublicAccess, + date: response.date, + etag: response.etag, + errorCode: response.errorCode, + lastModified: response.lastModified, + requestId: response.requestId, + clientRequestId: response.clientRequestId, + signedIdentifiers: [], + version: response.version + }; + for (const identifier of response) { + let accessPolicy = undefined; + if (identifier.accessPolicy) { + accessPolicy = { + permissions: identifier.accessPolicy.permissions + }; + if (identifier.accessPolicy.expiresOn) { + accessPolicy.expiresOn = new Date(identifier.accessPolicy.expiresOn); + } + if (identifier.accessPolicy.startsOn) { + accessPolicy.startsOn = new Date(identifier.accessPolicy.startsOn); + } } + res.signedIdentifiers.push({ + accessPolicy, + id: identifier.id + }); + } + return res; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Sets the permissions for the specified container. The permissions indicate * whether blobs in a container may be accessed publicly. @@ -40087,60 +37107,47 @@ var ContainerClient = /** @class */ (function (_super) { * @param containerAcl - Array of elements each having a unique Id and details of the access policy. * @param options - Options to Container Set Access Policy operation. */ - ContainerClient.prototype.setAccessPolicy = function (access, containerAcl, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, acl, _i, _b, identifier, e_9; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - _a = createSpan("ContainerClient-setAccessPolicy", options), span = _a.span, updatedOptions = _a.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - acl = []; - for (_i = 0, _b = containerAcl || []; _i < _b.length; _i++) { - identifier = _b[_i]; - acl.push({ - accessPolicy: { - expiresOn: identifier.accessPolicy.expiresOn - ? truncatedISO8061Date(identifier.accessPolicy.expiresOn) - : "", - permissions: identifier.accessPolicy.permissions, - startsOn: identifier.accessPolicy.startsOn - ? truncatedISO8061Date(identifier.accessPolicy.startsOn) - : "" - }, - id: identifier.id - }); - } - return [4 /*yield*/, this.containerContext.setAccessPolicy(tslib.__assign({ abortSignal: options.abortSignal, access: access, containerAcl: acl, leaseAccessConditions: options.conditions, modifiedAccessConditions: options.conditions }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_9 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_9.message - }); - throw e_9; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async setAccessPolicy(access, containerAcl, options = {}) { + options.conditions = options.conditions || {}; + const { span, updatedOptions } = createSpan("ContainerClient-setAccessPolicy", options); + try { + const acl = []; + for (const identifier of containerAcl || []) { + acl.push({ + accessPolicy: { + expiresOn: identifier.accessPolicy.expiresOn + ? truncatedISO8061Date(identifier.accessPolicy.expiresOn) + : "", + permissions: identifier.accessPolicy.permissions, + startsOn: identifier.accessPolicy.startsOn + ? truncatedISO8061Date(identifier.accessPolicy.startsOn) + : "" + }, + id: identifier.id + }); + } + return await this.containerContext.setAccessPolicy(Object.assign({ abortSignal: options.abortSignal, access, containerAcl: acl, leaseAccessConditions: options.conditions, modifiedAccessConditions: options.conditions }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Get a {@link BlobLeaseClient} that manages leases on the container. * * @param proposeLeaseId - Initial proposed lease Id. * @returns A new BlobLeaseClient object for managing leases on the container. */ - ContainerClient.prototype.getBlobLeaseClient = function (proposeLeaseId) { + getBlobLeaseClient(proposeLeaseId) { return new BlobLeaseClient(this, proposeLeaseId); - }; + } /** * Creates a new block blob, or updates the content of an existing block blob. * @@ -40163,40 +37170,27 @@ var ContainerClient = /** @class */ (function (_super) { * @param options - Options to configure the Block Blob Upload operation. * @returns Block Blob upload response data and the corresponding BlockBlobClient instance. */ - ContainerClient.prototype.uploadBlockBlob = function (blobName, body, contentLength, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, blockBlobClient, response, e_10; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("ContainerClient-uploadBlockBlob", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - blockBlobClient = this.getBlockBlobClient(blobName); - return [4 /*yield*/, blockBlobClient.upload(body, contentLength, updatedOptions)]; - case 2: - response = _b.sent(); - return [2 /*return*/, { - blockBlobClient: blockBlobClient, - response: response - }]; - case 3: - e_10 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_10.message - }); - throw e_10; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async uploadBlockBlob(blobName, body, contentLength, options = {}) { + const { span, updatedOptions } = createSpan("ContainerClient-uploadBlockBlob", options); + try { + const blockBlobClient = this.getBlockBlobClient(blobName); + const response = await blockBlobClient.upload(body, contentLength, updatedOptions); + return { + blockBlobClient, + response + }; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Marks the specified blob or snapshot for deletion. The blob is later deleted * during garbage collection. Note that in order to delete a blob, you must delete @@ -40208,38 +37202,26 @@ var ContainerClient = /** @class */ (function (_super) { * @param options - Options to Blob Delete operation. * @returns Block blob deletion response data. */ - ContainerClient.prototype.deleteBlob = function (blobName, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, blobClient, e_11; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("ContainerClient-deleteBlob", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - blobClient = this.getBlobClient(blobName); - if (options.versionId) { - blobClient = blobClient.withVersion(options.versionId); - } - return [4 /*yield*/, blobClient.delete(updatedOptions)]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_11 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_11.message - }); - throw e_11; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async deleteBlob(blobName, options = {}) { + const { span, updatedOptions } = createSpan("ContainerClient-deleteBlob", options); + try { + let blobClient = this.getBlobClient(blobName); + if (options.versionId) { + blobClient = blobClient.withVersion(options.versionId); + } + return await blobClient.delete(updatedOptions); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * listBlobFlatSegment returns a single segment of blobs starting from the * specified Marker. Use an empty Marker to start enumeration from the beginning. @@ -40250,40 +37232,27 @@ var ContainerClient = /** @class */ (function (_super) { * @param marker - A string value that identifies the portion of the list to be returned with the next list operation. * @param options - Options to Container List Blob Flat Segment operation. */ - ContainerClient.prototype.listBlobFlatSegment = function (marker, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, response, wrappedResponse, e_12; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("ContainerClient-listBlobFlatSegment", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.containerContext.listBlobFlatSegment(tslib.__assign(tslib.__assign({ marker: marker }, options), convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - response = _b.sent(); - wrappedResponse = tslib.__assign(tslib.__assign({}, response), { _response: response._response, segment: tslib.__assign(tslib.__assign({}, response.segment), { blobItems: response.segment.blobItems.map(function (blobItemInteral) { - var blobItem = tslib.__assign(tslib.__assign({}, blobItemInteral), { tags: toTags(blobItemInteral.blobTags), objectReplicationSourceProperties: parseObjectReplicationRecord(blobItemInteral.objectReplicationMetadata) }); - return blobItem; - }) }) }); - return [2 /*return*/, wrappedResponse]; - case 3: - e_12 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_12.message - }); - throw e_12; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async listBlobFlatSegment(marker, options = {}) { + const { span, updatedOptions } = createSpan("ContainerClient-listBlobFlatSegment", options); + try { + const response = await this.containerContext.listBlobFlatSegment(Object.assign(Object.assign({ marker }, options), convertTracingToRequestOptionsBase(updatedOptions))); + const wrappedResponse = Object.assign(Object.assign({}, response), { _response: response._response, segment: Object.assign(Object.assign({}, response.segment), { blobItems: response.segment.blobItems.map((blobItemInteral) => { + const blobItem = Object.assign(Object.assign({}, blobItemInteral), { tags: toTags(blobItemInteral.blobTags), objectReplicationSourceProperties: parseObjectReplicationRecord(blobItemInteral.objectReplicationMetadata) }); + return blobItem; + }) }) }); + return wrappedResponse; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * listBlobHierarchySegment returns a single segment of blobs starting from * the specified Marker. Use an empty Marker to start enumeration from the @@ -40295,40 +37264,27 @@ var ContainerClient = /** @class */ (function (_super) { * @param marker - A string value that identifies the portion of the list to be returned with the next list operation. * @param options - Options to Container List Blob Hierarchy Segment operation. */ - ContainerClient.prototype.listBlobHierarchySegment = function (delimiter, marker, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, response, wrappedResponse, e_13; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("ContainerClient-listBlobHierarchySegment", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.containerContext.listBlobHierarchySegment(delimiter, tslib.__assign(tslib.__assign({ marker: marker }, options), convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - response = _b.sent(); - wrappedResponse = tslib.__assign(tslib.__assign({}, response), { _response: response._response, segment: tslib.__assign(tslib.__assign({}, response.segment), { blobItems: response.segment.blobItems.map(function (blobItemInteral) { - var blobItem = tslib.__assign(tslib.__assign({}, blobItemInteral), { tags: toTags(blobItemInteral.blobTags), objectReplicationSourceProperties: parseObjectReplicationRecord(blobItemInteral.objectReplicationMetadata) }); - return blobItem; - }) }) }); - return [2 /*return*/, wrappedResponse]; - case 3: - e_13 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_13.message - }); - throw e_13; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async listBlobHierarchySegment(delimiter, marker, options = {}) { + const { span, updatedOptions } = createSpan("ContainerClient-listBlobHierarchySegment", options); + try { + const response = await this.containerContext.listBlobHierarchySegment(delimiter, Object.assign(Object.assign({ marker }, options), convertTracingToRequestOptionsBase(updatedOptions))); + const wrappedResponse = Object.assign(Object.assign({}, response), { _response: response._response, segment: Object.assign(Object.assign({}, response.segment), { blobItems: response.segment.blobItems.map((blobItemInteral) => { + const blobItem = Object.assign(Object.assign({}, blobItemInteral), { tags: toTags(blobItemInteral.blobTags), objectReplicationSourceProperties: parseObjectReplicationRecord(blobItemInteral.objectReplicationMetadata) }); + return blobItem; + }) }) }); + return wrappedResponse; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Returns an AsyncIterableIterator for ContainerListBlobFlatSegmentResponse * @@ -40341,81 +37297,42 @@ var ContainerClient = /** @class */ (function (_super) { * items. The marker value is opaque to the client. * @param options - Options to list blobs operation. */ - ContainerClient.prototype.listSegments = function (marker, options) { - if (options === void 0) { options = {}; } - return tslib.__asyncGenerator(this, arguments, function listSegments_1() { - var listBlobsFlatSegmentResponse; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!(!!marker || marker === undefined)) return [3 /*break*/, 7]; - _a.label = 1; - case 1: return [4 /*yield*/, tslib.__await(this.listBlobFlatSegment(marker, options))]; - case 2: - listBlobsFlatSegmentResponse = _a.sent(); - marker = listBlobsFlatSegmentResponse.continuationToken; - return [4 /*yield*/, tslib.__await(listBlobsFlatSegmentResponse)]; - case 3: return [4 /*yield*/, tslib.__await.apply(void 0, [_a.sent()])]; - case 4: return [4 /*yield*/, _a.sent()]; - case 5: - _a.sent(); - _a.label = 6; - case 6: - if (marker) return [3 /*break*/, 1]; - _a.label = 7; - case 7: return [2 /*return*/]; - } - }); + listSegments(marker, options = {}) { + return tslib.__asyncGenerator(this, arguments, function* listSegments_1() { + let listBlobsFlatSegmentResponse; + if (!!marker || marker === undefined) { + do { + listBlobsFlatSegmentResponse = yield tslib.__await(this.listBlobFlatSegment(marker, options)); + marker = listBlobsFlatSegmentResponse.continuationToken; + yield yield tslib.__await(yield tslib.__await(listBlobsFlatSegmentResponse)); + } while (marker); + } }); - }; + } /** * Returns an AsyncIterableIterator of {@link BlobItem} objects * * @param options - Options to list blobs operation. */ - ContainerClient.prototype.listItems = function (options) { - if (options === void 0) { options = {}; } - return tslib.__asyncGenerator(this, arguments, function listItems_1() { - var marker, _a, _b, listBlobsFlatSegmentResponse, e_14_1; - var e_14, _c; - return tslib.__generator(this, function (_d) { - switch (_d.label) { - case 0: - _d.trys.push([0, 7, 8, 13]); - _a = tslib.__asyncValues(this.listSegments(marker, options)); - _d.label = 1; - case 1: return [4 /*yield*/, tslib.__await(_a.next())]; - case 2: - if (!(_b = _d.sent(), !_b.done)) return [3 /*break*/, 6]; - listBlobsFlatSegmentResponse = _b.value; - return [5 /*yield**/, tslib.__values(tslib.__asyncDelegator(tslib.__asyncValues(listBlobsFlatSegmentResponse.segment.blobItems)))]; - case 3: return [4 /*yield*/, tslib.__await.apply(void 0, [_d.sent()])]; - case 4: - _d.sent(); - _d.label = 5; - case 5: return [3 /*break*/, 1]; - case 6: return [3 /*break*/, 13]; - case 7: - e_14_1 = _d.sent(); - e_14 = { error: e_14_1 }; - return [3 /*break*/, 13]; - case 8: - _d.trys.push([8, , 11, 12]); - if (!(_b && !_b.done && (_c = _a.return))) return [3 /*break*/, 10]; - return [4 /*yield*/, tslib.__await(_c.call(_a))]; - case 9: - _d.sent(); - _d.label = 10; - case 10: return [3 /*break*/, 12]; - case 11: - if (e_14) throw e_14.error; - return [7 /*endfinally*/]; - case 12: return [7 /*endfinally*/]; - case 13: return [2 /*return*/]; + listItems(options = {}) { + return tslib.__asyncGenerator(this, arguments, function* listItems_1() { + var e_1, _a; + let marker; + try { + for (var _b = tslib.__asyncValues(this.listSegments(marker, options)), _c; _c = yield tslib.__await(_b.next()), !_c.done;) { + const listBlobsFlatSegmentResponse = _c.value; + yield tslib.__await(yield* tslib.__asyncDelegator(tslib.__asyncValues(listBlobsFlatSegmentResponse.segment.blobItems))); } - }); + } + catch (e_1_1) { e_1 = { error: e_1_1 }; } + finally { + try { + if (_c && !_c.done && (_a = _b.return)) yield tslib.__await(_a.call(_b)); + } + finally { if (e_1) throw e_1.error; } + } }); - }; + } /** * Returns an async iterable iterator to list all the blobs * under the specified account. @@ -40486,11 +37403,8 @@ var ContainerClient = /** @class */ (function (_super) { * @param options - Options to list blobs. * @returns An asyncIterableIterator that supports paging. */ - ContainerClient.prototype.listBlobsFlat = function (options) { - var _a; - var _this = this; - if (options === void 0) { options = {}; } - var include = []; + listBlobsFlat(options = {}) { + const include = []; if (options.includeCopy) { include.push("copy"); } @@ -40512,35 +37426,42 @@ var ContainerClient = /** @class */ (function (_super) { if (options.includeTags) { include.push("tags"); } + if (options.includeDeletedWithVersions) { + include.push("deletedwithversions"); + } + if (options.includeImmutabilityPolicy) { + include.push("immutabilitypolicy"); + } + if (options.includeLegalHold) { + include.push("legalhold"); + } if (options.prefix === "") { options.prefix = undefined; } - var updatedOptions = tslib.__assign(tslib.__assign({}, options), (include.length > 0 ? { include: include } : {})); + const updatedOptions = Object.assign(Object.assign({}, options), (include.length > 0 ? { include: include } : {})); // AsyncIterableIterator to iterate over blobs - var iter = this.listItems(updatedOptions); - return _a = { - /** - * The next method, part of the iteration protocol - */ - next: function () { - return iter.next(); - } + const iter = this.listItems(updatedOptions); + return { + /** + * The next method, part of the iteration protocol + */ + next() { + return iter.next(); }, /** * The connection to the async iterator, part of the iteration protocol */ - _a[Symbol.asyncIterator] = function () { + [Symbol.asyncIterator]() { return this; }, /** * Return an AsyncIterableIterator that works a page at a time */ - _a.byPage = function (settings) { - if (settings === void 0) { settings = {}; } - return _this.listSegments(settings.continuationToken, tslib.__assign({ maxPageSize: settings.maxPageSize }, updatedOptions)); - }, - _a; - }; + byPage: (settings = {}) => { + return this.listSegments(settings.continuationToken, Object.assign({ maxPageSize: settings.maxPageSize }, updatedOptions)); + } + }; + } /** * Returns an AsyncIterableIterator for ContainerListBlobHierarchySegmentResponse * @@ -40554,106 +37475,51 @@ var ContainerClient = /** @class */ (function (_super) { * items. The marker value is opaque to the client. * @param options - Options to list blobs operation. */ - ContainerClient.prototype.listHierarchySegments = function (delimiter, marker, options) { - if (options === void 0) { options = {}; } - return tslib.__asyncGenerator(this, arguments, function listHierarchySegments_1() { - var listBlobsHierarchySegmentResponse; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!(!!marker || marker === undefined)) return [3 /*break*/, 7]; - _a.label = 1; - case 1: return [4 /*yield*/, tslib.__await(this.listBlobHierarchySegment(delimiter, marker, options))]; - case 2: - listBlobsHierarchySegmentResponse = _a.sent(); - marker = listBlobsHierarchySegmentResponse.continuationToken; - return [4 /*yield*/, tslib.__await(listBlobsHierarchySegmentResponse)]; - case 3: return [4 /*yield*/, tslib.__await.apply(void 0, [_a.sent()])]; - case 4: return [4 /*yield*/, _a.sent()]; - case 5: - _a.sent(); - _a.label = 6; - case 6: - if (marker) return [3 /*break*/, 1]; - _a.label = 7; - case 7: return [2 /*return*/]; - } - }); + listHierarchySegments(delimiter, marker, options = {}) { + return tslib.__asyncGenerator(this, arguments, function* listHierarchySegments_1() { + let listBlobsHierarchySegmentResponse; + if (!!marker || marker === undefined) { + do { + listBlobsHierarchySegmentResponse = yield tslib.__await(this.listBlobHierarchySegment(delimiter, marker, options)); + marker = listBlobsHierarchySegmentResponse.continuationToken; + yield yield tslib.__await(yield tslib.__await(listBlobsHierarchySegmentResponse)); + } while (marker); + } }); - }; + } /** * Returns an AsyncIterableIterator for {@link BlobPrefix} and {@link BlobItem} objects. * * @param delimiter - The character or string used to define the virtual hierarchy * @param options - Options to list blobs operation. */ - ContainerClient.prototype.listItemsByHierarchy = function (delimiter, options) { - if (options === void 0) { options = {}; } - return tslib.__asyncGenerator(this, arguments, function listItemsByHierarchy_1() { - var marker, _a, _b, listBlobsHierarchySegmentResponse, segment, _i, _c, prefix, _d, _e, blob, e_15_1; - var e_15, _f; - return tslib.__generator(this, function (_g) { - switch (_g.label) { - case 0: - _g.trys.push([0, 14, 15, 20]); - _a = tslib.__asyncValues(this.listHierarchySegments(delimiter, marker, options)); - _g.label = 1; - case 1: return [4 /*yield*/, tslib.__await(_a.next())]; - case 2: - if (!(_b = _g.sent(), !_b.done)) return [3 /*break*/, 13]; - listBlobsHierarchySegmentResponse = _b.value; - segment = listBlobsHierarchySegmentResponse.segment; - if (!segment.blobPrefixes) return [3 /*break*/, 7]; - _i = 0, _c = segment.blobPrefixes; - _g.label = 3; - case 3: - if (!(_i < _c.length)) return [3 /*break*/, 7]; - prefix = _c[_i]; - return [4 /*yield*/, tslib.__await(tslib.__assign({ kind: "prefix" }, prefix))]; - case 4: return [4 /*yield*/, _g.sent()]; - case 5: - _g.sent(); - _g.label = 6; - case 6: - _i++; - return [3 /*break*/, 3]; - case 7: - _d = 0, _e = segment.blobItems; - _g.label = 8; - case 8: - if (!(_d < _e.length)) return [3 /*break*/, 12]; - blob = _e[_d]; - return [4 /*yield*/, tslib.__await(tslib.__assign({ kind: "blob" }, blob))]; - case 9: return [4 /*yield*/, _g.sent()]; - case 10: - _g.sent(); - _g.label = 11; - case 11: - _d++; - return [3 /*break*/, 8]; - case 12: return [3 /*break*/, 1]; - case 13: return [3 /*break*/, 20]; - case 14: - e_15_1 = _g.sent(); - e_15 = { error: e_15_1 }; - return [3 /*break*/, 20]; - case 15: - _g.trys.push([15, , 18, 19]); - if (!(_b && !_b.done && (_f = _a.return))) return [3 /*break*/, 17]; - return [4 /*yield*/, tslib.__await(_f.call(_a))]; - case 16: - _g.sent(); - _g.label = 17; - case 17: return [3 /*break*/, 19]; - case 18: - if (e_15) throw e_15.error; - return [7 /*endfinally*/]; - case 19: return [7 /*endfinally*/]; - case 20: return [2 /*return*/]; + listItemsByHierarchy(delimiter, options = {}) { + return tslib.__asyncGenerator(this, arguments, function* listItemsByHierarchy_1() { + var e_2, _a; + let marker; + try { + for (var _b = tslib.__asyncValues(this.listHierarchySegments(delimiter, marker, options)), _c; _c = yield tslib.__await(_b.next()), !_c.done;) { + const listBlobsHierarchySegmentResponse = _c.value; + const segment = listBlobsHierarchySegmentResponse.segment; + if (segment.blobPrefixes) { + for (const prefix of segment.blobPrefixes) { + yield yield tslib.__await(Object.assign({ kind: "prefix" }, prefix)); + } + } + for (const blob of segment.blobItems) { + yield yield tslib.__await(Object.assign({ kind: "blob" }, blob)); + } } - }); + } + catch (e_2_1) { e_2 = { error: e_2_1 }; } + finally { + try { + if (_c && !_c.done && (_a = _b.return)) yield tslib.__await(_a.call(_b)); + } + finally { if (e_2) throw e_2.error; } + } }); - }; + } /** * Returns an async iterable iterator to list all the blobs by hierarchy. * under the specified account. @@ -40730,14 +37596,11 @@ var ContainerClient = /** @class */ (function (_super) { * @param delimiter - The character or string used to define the virtual hierarchy * @param options - Options to list blobs operation. */ - ContainerClient.prototype.listBlobsByHierarchy = function (delimiter, options) { - var _a; - var _this = this; - if (options === void 0) { options = {}; } + listBlobsByHierarchy(delimiter, options = {}) { if (delimiter === "") { throw new RangeError("delimiter should contain one or more characters"); } - var include = []; + const include = []; if (options.includeCopy) { include.push("copy"); } @@ -40759,48 +37622,51 @@ var ContainerClient = /** @class */ (function (_super) { if (options.includeTags) { include.push("tags"); } + if (options.includeDeletedWithVersions) { + include.push("deletedwithversions"); + } + if (options.includeImmutabilityPolicy) { + include.push("immutabilitypolicy"); + } + if (options.includeLegalHold) { + include.push("legalhold"); + } if (options.prefix === "") { options.prefix = undefined; } - var updatedOptions = tslib.__assign(tslib.__assign({}, options), (include.length > 0 ? { include: include } : {})); + const updatedOptions = Object.assign(Object.assign({}, options), (include.length > 0 ? { include: include } : {})); // AsyncIterableIterator to iterate over blob prefixes and blobs - var iter = this.listItemsByHierarchy(delimiter, updatedOptions); - return _a = { - /** - * The next method, part of the iteration protocol - */ - next: function () { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - return [2 /*return*/, iter.next()]; - }); - }); - } + const iter = this.listItemsByHierarchy(delimiter, updatedOptions); + return { + /** + * The next method, part of the iteration protocol + */ + async next() { + return iter.next(); }, /** * The connection to the async iterator, part of the iteration protocol */ - _a[Symbol.asyncIterator] = function () { + [Symbol.asyncIterator]() { return this; }, /** * Return an AsyncIterableIterator that works a page at a time */ - _a.byPage = function (settings) { - if (settings === void 0) { settings = {}; } - return _this.listHierarchySegments(delimiter, settings.continuationToken, tslib.__assign({ maxPageSize: settings.maxPageSize }, updatedOptions)); - }, - _a; - }; - ContainerClient.prototype.getContainerNameFromUrl = function () { - var containerName; + byPage: (settings = {}) => { + return this.listHierarchySegments(delimiter, settings.continuationToken, Object.assign({ maxPageSize: settings.maxPageSize }, updatedOptions)); + } + }; + } + getContainerNameFromUrl() { + let containerName; try { // URL may look like the following // "https://myaccount.blob.core.windows.net/mycontainer?sasString"; // "https://myaccount.blob.core.windows.net/mycontainer"; // IPv4/IPv6 address hosts, Endpoints - `http://127.0.0.1:10000/devstoreaccount1/containername` // http://localhost:10001/devstoreaccount1/containername - var parsedUrl = coreHttp.URLBuilder.parse(this.url); + const parsedUrl = coreHttp.URLBuilder.parse(this.url); if (parsedUrl.getHost().split(".")[1] === "blob") { // "https://myaccount.blob.core.windows.net/containername". // "https://customdomain.com/containername". @@ -40828,7 +37694,7 @@ var ContainerClient = /** @class */ (function (_super) { catch (error) { throw new Error("Unable to extract containerName with provided information."); } - }; + } /** * Only available for ContainerClient constructed with a shared key credential. * @@ -40840,16 +37706,15 @@ var ContainerClient = /** @class */ (function (_super) { * @param options - Optional parameters. * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token. */ - ContainerClient.prototype.generateSasUrl = function (options) { - var _this = this; - return new Promise(function (resolve) { - if (!(_this.credential instanceof StorageSharedKeyCredential)) { + generateSasUrl(options) { + return new Promise((resolve) => { + if (!(this.credential instanceof StorageSharedKeyCredential)) { throw new RangeError("Can only generate the SAS when the client is initialized with a shared key credential"); } - var sas = generateBlobSASQueryParameters(tslib.__assign({ containerName: _this._containerName }, options), _this.credential).toString(); - resolve(appendToURLQuery(_this.url, sas)); + const sas = generateBlobSASQueryParameters(Object.assign({ containerName: this._containerName }, options), this.credential).toString(); + resolve(appendToURLQuery(this.url, sas)); }); - }; + } /** * Creates a BlobBatchClient object to conduct batch operations. * @@ -40857,11 +37722,10 @@ var ContainerClient = /** @class */ (function (_super) { * * @returns A new BlobBatchClient object for this container. */ - ContainerClient.prototype.getBlobBatchClient = function () { + getBlobBatchClient() { return new BlobBatchClient(this.url, this.pipeline); - }; - return ContainerClient; -}(StorageClient)); + } +} // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. @@ -40874,8 +37738,8 @@ var ContainerClient = /** @class */ (function (_super) { * {@link AccountSASSignatureValues} object. It is possible to construct the permissions string without this class, but * the order of the permissions is particular and this class guarantees correctness. */ -var AccountSASPermissions = /** @class */ (function () { - function AccountSASPermissions() { +class AccountSASPermissions { + constructor() { /** * Permission to read resources and list queues and tables granted. */ @@ -40920,16 +37784,19 @@ var AccountSASPermissions = /** @class */ (function () { * Permission to filter blobs. */ this.filter = false; + /** + * Permission to set immutability policy. + */ + this.setImmutabilityPolicy = false; } /** * Parse initializes the AccountSASPermissions fields from a string. * * @param permissions - */ - AccountSASPermissions.parse = function (permissions) { - var accountSASPermissions = new AccountSASPermissions(); - for (var _i = 0, permissions_1 = permissions; _i < permissions_1.length; _i++) { - var c = permissions_1[_i]; + static parse(permissions) { + const accountSASPermissions = new AccountSASPermissions(); + for (const c of permissions) { switch (c) { case "r": accountSASPermissions.read = true; @@ -40964,20 +37831,23 @@ var AccountSASPermissions = /** @class */ (function () { case "f": accountSASPermissions.filter = true; break; + case "i": + accountSASPermissions.setImmutabilityPolicy = true; + break; default: - throw new RangeError("Invalid permission character: " + c); + throw new RangeError(`Invalid permission character: ${c}`); } } return accountSASPermissions; - }; + } /** * Creates a {@link AccountSASPermissions} from a raw object which contains same keys as it * and boolean values for them. * * @param permissionLike - */ - AccountSASPermissions.from = function (permissionLike) { - var accountSASPermissions = new AccountSASPermissions(); + static from(permissionLike) { + const accountSASPermissions = new AccountSASPermissions(); if (permissionLike.read) { accountSASPermissions.read = true; } @@ -41011,8 +37881,11 @@ var AccountSASPermissions = /** @class */ (function () { if (permissionLike.process) { accountSASPermissions.process = true; } + if (permissionLike.setImmutabilityPolicy) { + accountSASPermissions.setImmutabilityPolicy = true; + } return accountSASPermissions; - }; + } /** * Produces the SAS permissions string for an Azure Storage account. * Call this method to set AccountSASSignatureValues Permissions field. @@ -41023,11 +37896,11 @@ var AccountSASPermissions = /** @class */ (function () { * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas * */ - AccountSASPermissions.prototype.toString = function () { + toString() { // The order of the characters should be as specified here to ensure correctness: // https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas // Use a string array instead of string concatenating += operator for performance - var permissions = []; + const permissions = []; if (this.read) { permissions.push("r"); } @@ -41061,10 +37934,12 @@ var AccountSASPermissions = /** @class */ (function () { if (this.process) { permissions.push("p"); } + if (this.setImmutabilityPolicy) { + permissions.push("i"); + } return permissions.join(""); - }; - return AccountSASPermissions; -}()); + } +} // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. @@ -41077,8 +37952,8 @@ var AccountSASPermissions = /** @class */ (function () { * {@link AccountSASSignatureValues} object. It is possible to construct the resources string without this class, but * the order of the resources is particular and this class guarantees correctness. */ -var AccountSASResourceTypes = /** @class */ (function () { - function AccountSASResourceTypes() { +class AccountSASResourceTypes { + constructor() { /** * Permission to access service level APIs granted. */ @@ -41098,10 +37973,9 @@ var AccountSASResourceTypes = /** @class */ (function () { * * @param resourceTypes - */ - AccountSASResourceTypes.parse = function (resourceTypes) { - var accountSASResourceTypes = new AccountSASResourceTypes(); - for (var _i = 0, resourceTypes_1 = resourceTypes; _i < resourceTypes_1.length; _i++) { - var c = resourceTypes_1[_i]; + static parse(resourceTypes) { + const accountSASResourceTypes = new AccountSASResourceTypes(); + for (const c of resourceTypes) { switch (c) { case "s": accountSASResourceTypes.service = true; @@ -41113,19 +37987,19 @@ var AccountSASResourceTypes = /** @class */ (function () { accountSASResourceTypes.object = true; break; default: - throw new RangeError("Invalid resource type: " + c); + throw new RangeError(`Invalid resource type: ${c}`); } } return accountSASResourceTypes; - }; + } /** * Converts the given resource types to a string. * * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas * */ - AccountSASResourceTypes.prototype.toString = function () { - var resourceTypes = []; + toString() { + const resourceTypes = []; if (this.service) { resourceTypes.push("s"); } @@ -41136,9 +38010,8 @@ var AccountSASResourceTypes = /** @class */ (function () { resourceTypes.push("o"); } return resourceTypes.join(""); - }; - return AccountSASResourceTypes; -}()); + } +} // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. @@ -41151,8 +38024,8 @@ var AccountSASResourceTypes = /** @class */ (function () { * {@link AccountSASSignatureValues} object. It is possible to construct the services string without this class, but * the order of the services is particular and this class guarantees correctness. */ -var AccountSASServices = /** @class */ (function () { - function AccountSASServices() { +class AccountSASServices { + constructor() { /** * Permission to access blob resources granted. */ @@ -41176,10 +38049,9 @@ var AccountSASServices = /** @class */ (function () { * * @param services - */ - AccountSASServices.parse = function (services) { - var accountSASServices = new AccountSASServices(); - for (var _i = 0, services_1 = services; _i < services_1.length; _i++) { - var c = services_1[_i]; + static parse(services) { + const accountSASServices = new AccountSASServices(); + for (const c of services) { switch (c) { case "b": accountSASServices.blob = true; @@ -41194,17 +38066,17 @@ var AccountSASServices = /** @class */ (function () { accountSASServices.table = true; break; default: - throw new RangeError("Invalid service character: " + c); + throw new RangeError(`Invalid service character: ${c}`); } } return accountSASServices; - }; + } /** * Converts the given services to a string. * */ - AccountSASServices.prototype.toString = function () { - var services = []; + toString() { + const services = []; if (this.blob) { services.push("b"); } @@ -41218,9 +38090,8 @@ var AccountSASServices = /** @class */ (function () { services.push("f"); } return services.join(""); - }; - return AccountSASServices; -}()); + } +} // Copyright (c) Microsoft Corporation. /** @@ -41235,9 +38106,14 @@ var AccountSASServices = /** @class */ (function () { * @param sharedKeyCredential - */ function generateAccountSASQueryParameters(accountSASSignatureValues, sharedKeyCredential) { - var version = accountSASSignatureValues.version + const version = accountSASSignatureValues.version ? accountSASSignatureValues.version : SERVICE_VERSION; + if (accountSASSignatureValues.permissions && + accountSASSignatureValues.permissions.setImmutabilityPolicy && + version < "2020-08-04") { + throw RangeError("'version' must be >= '2020-08-04' when provided 'i' permission."); + } if (accountSASSignatureValues.permissions && accountSASSignatureValues.permissions.deleteVersion && version < "2019-10-10") { @@ -41253,10 +38129,10 @@ function generateAccountSASQueryParameters(accountSASSignatureValues, sharedKeyC version < "2019-12-12") { throw RangeError("'version' must be >= '2019-12-12' when provided 'f' permission."); } - var parsedPermissions = AccountSASPermissions.parse(accountSASSignatureValues.permissions.toString()); - var parsedServices = AccountSASServices.parse(accountSASSignatureValues.services).toString(); - var parsedResourceTypes = AccountSASResourceTypes.parse(accountSASSignatureValues.resourceTypes).toString(); - var stringToSign = [ + const parsedPermissions = AccountSASPermissions.parse(accountSASSignatureValues.permissions.toString()); + const parsedServices = AccountSASServices.parse(accountSASSignatureValues.services).toString(); + const parsedResourceTypes = AccountSASResourceTypes.parse(accountSASSignatureValues.resourceTypes).toString(); + const stringToSign = [ sharedKeyCredential.accountName, parsedPermissions, parsedServices, @@ -41270,7 +38146,7 @@ function generateAccountSASQueryParameters(accountSASSignatureValues, sharedKeyC version, "" // Account SAS requires an additional newline character ].join("\n"); - var signature = sharedKeyCredential.computeHMACSHA256(stringToSign); + const signature = sharedKeyCredential.computeHMACSHA256(stringToSign); return new SASQueryParameters(version, signature, parsedPermissions.toString(), parsedServices, parsedResourceTypes, accountSASSignatureValues.protocol, accountSASSignatureValues.startsOn, accountSASSignatureValues.expiresOn, accountSASSignatureValues.ipRange); } @@ -41278,12 +38154,13 @@ function generateAccountSASQueryParameters(accountSASSignatureValues, sharedKeyC * A BlobServiceClient represents a Client to the Azure Storage Blob service allowing you * to manipulate blob containers. */ -var BlobServiceClient = /** @class */ (function (_super) { - tslib.__extends(BlobServiceClient, _super); - function BlobServiceClient(url, credentialOrPipeline, options) { - var _this = this; - var pipeline; - if (credentialOrPipeline instanceof Pipeline) { +class BlobServiceClient extends StorageClient { + constructor(url, credentialOrPipeline, + // Legacy, no fix for eslint error without breaking. Disable it for this interface. + /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/ + options) { + let pipeline; + if (isPipelineLike(credentialOrPipeline)) { pipeline = credentialOrPipeline; } else if ((coreHttp.isNode && credentialOrPipeline instanceof StorageSharedKeyCredential) || @@ -41295,9 +38172,8 @@ var BlobServiceClient = /** @class */ (function (_super) { // The second parameter is undefined. Use anonymous credential pipeline = newPipeline(new AnonymousCredential(), options); } - _this = _super.call(this, url, pipeline) || this; - _this.serviceContext = new Service(_this.storageClientContext); - return _this; + super(url, pipeline); + this.serviceContext = new Service(this.storageClientContext); } /** * @@ -41311,25 +38187,28 @@ var BlobServiceClient = /** @class */ (function (_super) { * `BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString` * @param options - Optional. Options to configure the HTTP pipeline. */ - BlobServiceClient.fromConnectionString = function (connectionString, options) { + static fromConnectionString(connectionString, + // Legacy, no fix for eslint error without breaking. Disable it for this interface. + /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/ + options) { options = options || {}; - var extractedCreds = extractConnectionStringParts(connectionString); + const extractedCreds = extractConnectionStringParts(connectionString); if (extractedCreds.kind === "AccountConnString") { { - var sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey); + const sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey); options.proxyOptions = coreHttp.getDefaultProxySettings(extractedCreds.proxyUri); - var pipeline = newPipeline(sharedKeyCredential, options); + const pipeline = newPipeline(sharedKeyCredential, options); return new BlobServiceClient(extractedCreds.url, pipeline); } } else if (extractedCreds.kind === "SASConnString") { - var pipeline = newPipeline(new AnonymousCredential(), options); + const pipeline = newPipeline(new AnonymousCredential(), options); return new BlobServiceClient(extractedCreds.url + "?" + extractedCreds.accountSas, pipeline); } else { throw new Error("Connection string must be either an Account connection string or a SAS connection string"); } - }; + } /** * Creates a {@link ContainerClient} object * @@ -41342,9 +38221,9 @@ var BlobServiceClient = /** @class */ (function (_super) { * const containerClient = blobServiceClient.getContainerClient(""); * ``` */ - BlobServiceClient.prototype.getContainerClient = function (containerName) { + getContainerClient(containerName) { return new ContainerClient(appendToURLPath(this.url, encodeURIComponent(containerName)), this.pipeline); - }; + } /** * Create a Blob container. * @@ -41352,40 +38231,27 @@ var BlobServiceClient = /** @class */ (function (_super) { * @param options - Options to configure Container Create operation. * @returns Container creation response and the corresponding container client. */ - BlobServiceClient.prototype.createContainer = function (containerName, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, containerClient, containerCreateResponse, e_1; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobServiceClient-createContainer", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - containerClient = this.getContainerClient(containerName); - return [4 /*yield*/, containerClient.create(updatedOptions)]; - case 2: - containerCreateResponse = _b.sent(); - return [2 /*return*/, { - containerClient: containerClient, - containerCreateResponse: containerCreateResponse - }]; - case 3: - e_1 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_1.message - }); - throw e_1; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async createContainer(containerName, options = {}) { + const { span, updatedOptions } = createSpan("BlobServiceClient-createContainer", options); + try { + const containerClient = this.getContainerClient(containerName); + const containerCreateResponse = await containerClient.create(updatedOptions); + return { + containerClient, + containerCreateResponse + }; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Deletes a Blob container. * @@ -41393,35 +38259,23 @@ var BlobServiceClient = /** @class */ (function (_super) { * @param options - Options to configure Container Delete operation. * @returns Container deletion response. */ - BlobServiceClient.prototype.deleteContainer = function (containerName, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, containerClient, e_2; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobServiceClient-deleteContainer", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - containerClient = this.getContainerClient(containerName); - return [4 /*yield*/, containerClient.delete(updatedOptions)]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_2 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_2.message - }); - throw e_2; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async deleteContainer(containerName, options = {}) { + const { span, updatedOptions } = createSpan("BlobServiceClient-deleteContainer", options); + try { + const containerClient = this.getContainerClient(containerName); + return await containerClient.delete(updatedOptions); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Restore a previously deleted Blob container. * This API is only functional if Container Soft Delete is enabled for the storage account associated with the container. @@ -41431,39 +38285,27 @@ var BlobServiceClient = /** @class */ (function (_super) { * @param options - Options to configure Container Restore operation. * @returns Container deletion response. */ - BlobServiceClient.prototype.undeleteContainer = function (deletedContainerName, deletedContainerVersion, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, containerClient, containerContext, containerUndeleteResponse, e_3; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobServiceClient-undeleteContainer", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - containerClient = this.getContainerClient(options.destinationContainerName || deletedContainerName); - containerContext = new Container(containerClient["storageClientContext"]); - return [4 /*yield*/, containerContext.restore(tslib.__assign({ deletedContainerName: deletedContainerName, - deletedContainerVersion: deletedContainerVersion }, updatedOptions))]; - case 2: - containerUndeleteResponse = _b.sent(); - return [2 /*return*/, { containerClient: containerClient, containerUndeleteResponse: containerUndeleteResponse }]; - case 3: - e_3 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_3.message - }); - throw e_3; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async undeleteContainer(deletedContainerName, deletedContainerVersion, options = {}) { + const { span, updatedOptions } = createSpan("BlobServiceClient-undeleteContainer", options); + try { + const containerClient = this.getContainerClient(options.destinationContainerName || deletedContainerName); + // Hack to access a protected member. + const containerContext = new Container(containerClient["storageClientContext"]); + const containerUndeleteResponse = await containerContext.restore(Object.assign({ deletedContainerName, + deletedContainerVersion }, updatedOptions)); + return { containerClient, containerUndeleteResponse }; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Rename an existing Blob Container. * @@ -41471,40 +38313,29 @@ var BlobServiceClient = /** @class */ (function (_super) { * @param destinationContainerName - The new name of the container. * @param options - Options to configure Container Rename operation. */ + /* eslint-disable-next-line @typescript-eslint/ban-ts-comment */ // @ts-ignore Need to hide this interface for now. Make it public and turn on the live tests for it when the service is ready. - BlobServiceClient.prototype.renameContainer = function (sourceContainerName, destinationContainerName, options) { + async renameContainer(sourceContainerName, destinationContainerName, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, containerClient, containerContext, containerRenameResponse, e_4; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("BlobServiceClient-renameContainer", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - containerClient = this.getContainerClient(destinationContainerName); - containerContext = new Container(containerClient["storageClientContext"]); - return [4 /*yield*/, containerContext.rename(sourceContainerName, tslib.__assign(tslib.__assign({}, updatedOptions), { sourceLeaseId: (_a = options.sourceCondition) === null || _a === void 0 ? void 0 : _a.leaseId }))]; - case 2: - containerRenameResponse = _c.sent(); - return [2 /*return*/, { containerClient: containerClient, containerRenameResponse: containerRenameResponse }]; - case 3: - e_4 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_4.message - }); - throw e_4; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobServiceClient-renameContainer", options); + try { + const containerClient = this.getContainerClient(destinationContainerName); + // Hack to access a protected member. + const containerContext = new Container(containerClient["storageClientContext"]); + const containerRenameResponse = await containerContext.rename(sourceContainerName, Object.assign(Object.assign({}, updatedOptions), { sourceLeaseId: (_a = options.sourceCondition) === null || _a === void 0 ? void 0 : _a.leaseId })); + return { containerClient, containerRenameResponse }; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Gets the properties of a storage account’s Blob service, including properties * for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. @@ -41513,34 +38344,22 @@ var BlobServiceClient = /** @class */ (function (_super) { * @param options - Options to the Service Get Properties operation. * @returns Response data for the Service Get Properties operation. */ - BlobServiceClient.prototype.getProperties = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_5; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobServiceClient-getProperties", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.serviceContext.getProperties(tslib.__assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_5 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_5.message - }); - throw e_5; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async getProperties(options = {}) { + const { span, updatedOptions } = createSpan("BlobServiceClient-getProperties", options); + try { + return await this.serviceContext.getProperties(Object.assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Sets properties for a storage account’s Blob service endpoint, including properties * for Storage Analytics, CORS (Cross-Origin Resource Sharing) rules and soft delete settings. @@ -41550,34 +38369,22 @@ var BlobServiceClient = /** @class */ (function (_super) { * @param options - Options to the Service Set Properties operation. * @returns Response data for the Service Set Properties operation. */ - BlobServiceClient.prototype.setProperties = function (properties, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_6; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobServiceClient-setProperties", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.serviceContext.setProperties(properties, tslib.__assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_6 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_6.message - }); - throw e_6; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async setProperties(properties, options = {}) { + const { span, updatedOptions } = createSpan("BlobServiceClient-setProperties", options); + try { + return await this.serviceContext.setProperties(properties, Object.assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Retrieves statistics related to replication for the Blob service. It is only * available on the secondary location endpoint when read-access geo-redundant @@ -41587,34 +38394,22 @@ var BlobServiceClient = /** @class */ (function (_super) { * @param options - Options to the Service Get Statistics operation. * @returns Response data for the Service Get Statistics operation. */ - BlobServiceClient.prototype.getStatistics = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_7; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobServiceClient-getStatistics", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.serviceContext.getStatistics(tslib.__assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_7 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_7.message - }); - throw e_7; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async getStatistics(options = {}) { + const { span, updatedOptions } = createSpan("BlobServiceClient-getStatistics", options); + try { + return await this.serviceContext.getStatistics(Object.assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * The Get Account Information operation returns the sku name and account kind * for the specified account. @@ -41625,34 +38420,22 @@ var BlobServiceClient = /** @class */ (function (_super) { * @param options - Options to the Service Get Account Info operation. * @returns Response data for the Service Get Account Info operation. */ - BlobServiceClient.prototype.getAccountInfo = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_8; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobServiceClient-getAccountInfo", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.serviceContext.getAccountInfo(tslib.__assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_8 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_8.message - }); - throw e_8; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async getAccountInfo(options = {}) { + const { span, updatedOptions } = createSpan("BlobServiceClient-getAccountInfo", options); + try { + return await this.serviceContext.getAccountInfo(Object.assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Returns a list of the containers under the specified account. * @see https://docs.microsoft.com/en-us/rest/api/storageservices/list-containers2 @@ -41667,34 +38450,22 @@ var BlobServiceClient = /** @class */ (function (_super) { * @param options - Options to the Service List Container Segment operation. * @returns Response data for the Service List Container Segment operation. */ - BlobServiceClient.prototype.listContainersSegment = function (marker, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_9; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobServiceClient-listContainersSegment", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.serviceContext.listContainersSegment(tslib.__assign(tslib.__assign(tslib.__assign({ abortSignal: options.abortSignal, marker: marker }, options), { include: typeof options.include === "string" ? [options.include] : options.include }), convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_9 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_9.message - }); - throw e_9; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async listContainersSegment(marker, options = {}) { + const { span, updatedOptions } = createSpan("BlobServiceClient-listContainersSegment", options); + try { + return await this.serviceContext.listContainersSegment(Object.assign(Object.assign(Object.assign({ abortSignal: options.abortSignal, marker }, options), { include: typeof options.include === "string" ? [options.include] : options.include }), convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * The Filter Blobs operation enables callers to list blobs across all containers whose tags * match a given search expression. Filter blobs searches across all containers within a @@ -41713,44 +38484,31 @@ var BlobServiceClient = /** @class */ (function (_super) { * items. The marker value is opaque to the client. * @param options - Options to find blobs by tags. */ - BlobServiceClient.prototype.findBlobsByTagsSegment = function (tagFilterSqlExpression, marker, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, response, wrappedResponse, e_10; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobServiceClient-findBlobsByTagsSegment", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.serviceContext.filterBlobs(tslib.__assign({ abortSignal: options.abortSignal, where: tagFilterSqlExpression, marker: marker, maxPageSize: options.maxPageSize }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - response = _b.sent(); - wrappedResponse = tslib.__assign(tslib.__assign({}, response), { _response: response._response, blobs: response.blobs.map(function (blob) { - var _a; - var tagValue = ""; - if (((_a = blob.tags) === null || _a === void 0 ? void 0 : _a.blobTagSet.length) === 1) { - tagValue = blob.tags.blobTagSet[0].value; - } - return tslib.__assign(tslib.__assign({}, blob), { tags: toTags(blob.tags), tagValue: tagValue }); - }) }); - return [2 /*return*/, wrappedResponse]; - case 3: - e_10 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_10.message - }); - throw e_10; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async findBlobsByTagsSegment(tagFilterSqlExpression, marker, options = {}) { + const { span, updatedOptions } = createSpan("BlobServiceClient-findBlobsByTagsSegment", options); + try { + const response = await this.serviceContext.filterBlobs(Object.assign({ abortSignal: options.abortSignal, where: tagFilterSqlExpression, marker, maxPageSize: options.maxPageSize }, convertTracingToRequestOptionsBase(updatedOptions))); + const wrappedResponse = Object.assign(Object.assign({}, response), { _response: response._response, blobs: response.blobs.map((blob) => { + var _a; + let tagValue = ""; + if (((_a = blob.tags) === null || _a === void 0 ? void 0 : _a.blobTagSet.length) === 1) { + tagValue = blob.tags.blobTagSet[0].value; + } + return Object.assign(Object.assign({}, blob), { tags: toTags(blob.tags), tagValue }); + }) }); + return wrappedResponse; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Returns an AsyncIterableIterator for ServiceFindBlobsByTagsSegmentResponse. * @@ -41767,33 +38525,19 @@ var BlobServiceClient = /** @class */ (function (_super) { * items. The marker value is opaque to the client. * @param options - Options to find blobs by tags. */ - BlobServiceClient.prototype.findBlobsByTagsSegments = function (tagFilterSqlExpression, marker, options) { - if (options === void 0) { options = {}; } - return tslib.__asyncGenerator(this, arguments, function findBlobsByTagsSegments_1() { - var response; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!(!!marker || marker === undefined)) return [3 /*break*/, 6]; - _a.label = 1; - case 1: return [4 /*yield*/, tslib.__await(this.findBlobsByTagsSegment(tagFilterSqlExpression, marker, options))]; - case 2: - response = _a.sent(); - response.blobs = response.blobs || []; - marker = response.continuationToken; - return [4 /*yield*/, tslib.__await(response)]; - case 3: return [4 /*yield*/, _a.sent()]; - case 4: - _a.sent(); - _a.label = 5; - case 5: - if (marker) return [3 /*break*/, 1]; - _a.label = 6; - case 6: return [2 /*return*/]; - } - }); + findBlobsByTagsSegments(tagFilterSqlExpression, marker, options = {}) { + return tslib.__asyncGenerator(this, arguments, function* findBlobsByTagsSegments_1() { + let response; + if (!!marker || marker === undefined) { + do { + response = yield tslib.__await(this.findBlobsByTagsSegment(tagFilterSqlExpression, marker, options)); + response.blobs = response.blobs || []; + marker = response.continuationToken; + yield yield tslib.__await(response); + } while (marker); + } }); - }; + } /** * Returns an AsyncIterableIterator for blobs. * @@ -41803,49 +38547,25 @@ var BlobServiceClient = /** @class */ (function (_super) { * however, only a subset of the OData filter syntax is supported in the Blob service. * @param options - Options to findBlobsByTagsItems. */ - BlobServiceClient.prototype.findBlobsByTagsItems = function (tagFilterSqlExpression, options) { - if (options === void 0) { options = {}; } - return tslib.__asyncGenerator(this, arguments, function findBlobsByTagsItems_1() { - var marker, _a, _b, segment, e_11_1; - var e_11, _c; - return tslib.__generator(this, function (_d) { - switch (_d.label) { - case 0: - _d.trys.push([0, 7, 8, 13]); - _a = tslib.__asyncValues(this.findBlobsByTagsSegments(tagFilterSqlExpression, marker, options)); - _d.label = 1; - case 1: return [4 /*yield*/, tslib.__await(_a.next())]; - case 2: - if (!(_b = _d.sent(), !_b.done)) return [3 /*break*/, 6]; - segment = _b.value; - return [5 /*yield**/, tslib.__values(tslib.__asyncDelegator(tslib.__asyncValues(segment.blobs)))]; - case 3: return [4 /*yield*/, tslib.__await.apply(void 0, [_d.sent()])]; - case 4: - _d.sent(); - _d.label = 5; - case 5: return [3 /*break*/, 1]; - case 6: return [3 /*break*/, 13]; - case 7: - e_11_1 = _d.sent(); - e_11 = { error: e_11_1 }; - return [3 /*break*/, 13]; - case 8: - _d.trys.push([8, , 11, 12]); - if (!(_b && !_b.done && (_c = _a.return))) return [3 /*break*/, 10]; - return [4 /*yield*/, tslib.__await(_c.call(_a))]; - case 9: - _d.sent(); - _d.label = 10; - case 10: return [3 /*break*/, 12]; - case 11: - if (e_11) throw e_11.error; - return [7 /*endfinally*/]; - case 12: return [7 /*endfinally*/]; - case 13: return [2 /*return*/]; + findBlobsByTagsItems(tagFilterSqlExpression, options = {}) { + return tslib.__asyncGenerator(this, arguments, function* findBlobsByTagsItems_1() { + var e_1, _a; + let marker; + try { + for (var _b = tslib.__asyncValues(this.findBlobsByTagsSegments(tagFilterSqlExpression, marker, options)), _c; _c = yield tslib.__await(_b.next()), !_c.done;) { + const segment = _c.value; + yield tslib.__await(yield* tslib.__asyncDelegator(tslib.__asyncValues(segment.blobs))); } - }); + } + catch (e_1_1) { e_1 = { error: e_1_1 }; } + finally { + try { + if (_c && !_c.done && (_a = _b.return)) yield tslib.__await(_a.call(_b)); + } + finally { if (e_1) throw e_1.error; } + } }); - }; + } /** * Returns an async iterable iterator to find all blobs with specified tag * under the specified account. @@ -41925,36 +38645,31 @@ var BlobServiceClient = /** @class */ (function (_super) { * however, only a subset of the OData filter syntax is supported in the Blob service. * @param options - Options to find blobs by tags. */ - BlobServiceClient.prototype.findBlobsByTags = function (tagFilterSqlExpression, options) { - var _a; - var _this = this; - if (options === void 0) { options = {}; } + findBlobsByTags(tagFilterSqlExpression, options = {}) { // AsyncIterableIterator to iterate over blobs - var listSegmentOptions = tslib.__assign({}, options); - var iter = this.findBlobsByTagsItems(tagFilterSqlExpression, listSegmentOptions); - return _a = { - /** - * The next method, part of the iteration protocol - */ - next: function () { - return iter.next(); - } + const listSegmentOptions = Object.assign({}, options); + const iter = this.findBlobsByTagsItems(tagFilterSqlExpression, listSegmentOptions); + return { + /** + * The next method, part of the iteration protocol + */ + next() { + return iter.next(); }, /** * The connection to the async iterator, part of the iteration protocol */ - _a[Symbol.asyncIterator] = function () { + [Symbol.asyncIterator]() { return this; }, /** * Return an AsyncIterableIterator that works a page at a time */ - _a.byPage = function (settings) { - if (settings === void 0) { settings = {}; } - return _this.findBlobsByTagsSegments(tagFilterSqlExpression, settings.continuationToken, tslib.__assign({ maxPageSize: settings.maxPageSize }, listSegmentOptions)); - }, - _a; - }; + byPage: (settings = {}) => { + return this.findBlobsByTagsSegments(tagFilterSqlExpression, settings.continuationToken, Object.assign({ maxPageSize: settings.maxPageSize }, listSegmentOptions)); + } + }; + } /** * Returns an AsyncIterableIterator for ServiceListContainersSegmentResponses * @@ -41967,83 +38682,44 @@ var BlobServiceClient = /** @class */ (function (_super) { * items. The marker value is opaque to the client. * @param options - Options to list containers operation. */ - BlobServiceClient.prototype.listSegments = function (marker, options) { - if (options === void 0) { options = {}; } - return tslib.__asyncGenerator(this, arguments, function listSegments_1() { - var listContainersSegmentResponse; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!(!!marker || marker === undefined)) return [3 /*break*/, 7]; - _a.label = 1; - case 1: return [4 /*yield*/, tslib.__await(this.listContainersSegment(marker, options))]; - case 2: - listContainersSegmentResponse = _a.sent(); - listContainersSegmentResponse.containerItems = - listContainersSegmentResponse.containerItems || []; - marker = listContainersSegmentResponse.continuationToken; - return [4 /*yield*/, tslib.__await(listContainersSegmentResponse)]; - case 3: return [4 /*yield*/, tslib.__await.apply(void 0, [_a.sent()])]; - case 4: return [4 /*yield*/, _a.sent()]; - case 5: - _a.sent(); - _a.label = 6; - case 6: - if (marker) return [3 /*break*/, 1]; - _a.label = 7; - case 7: return [2 /*return*/]; - } - }); + listSegments(marker, options = {}) { + return tslib.__asyncGenerator(this, arguments, function* listSegments_1() { + let listContainersSegmentResponse; + if (!!marker || marker === undefined) { + do { + listContainersSegmentResponse = yield tslib.__await(this.listContainersSegment(marker, options)); + listContainersSegmentResponse.containerItems = + listContainersSegmentResponse.containerItems || []; + marker = listContainersSegmentResponse.continuationToken; + yield yield tslib.__await(yield tslib.__await(listContainersSegmentResponse)); + } while (marker); + } }); - }; + } /** * Returns an AsyncIterableIterator for Container Items * * @param options - Options to list containers operation. */ - BlobServiceClient.prototype.listItems = function (options) { - if (options === void 0) { options = {}; } - return tslib.__asyncGenerator(this, arguments, function listItems_1() { - var marker, _a, _b, segment, e_12_1; - var e_12, _c; - return tslib.__generator(this, function (_d) { - switch (_d.label) { - case 0: - _d.trys.push([0, 7, 8, 13]); - _a = tslib.__asyncValues(this.listSegments(marker, options)); - _d.label = 1; - case 1: return [4 /*yield*/, tslib.__await(_a.next())]; - case 2: - if (!(_b = _d.sent(), !_b.done)) return [3 /*break*/, 6]; - segment = _b.value; - return [5 /*yield**/, tslib.__values(tslib.__asyncDelegator(tslib.__asyncValues(segment.containerItems)))]; - case 3: return [4 /*yield*/, tslib.__await.apply(void 0, [_d.sent()])]; - case 4: - _d.sent(); - _d.label = 5; - case 5: return [3 /*break*/, 1]; - case 6: return [3 /*break*/, 13]; - case 7: - e_12_1 = _d.sent(); - e_12 = { error: e_12_1 }; - return [3 /*break*/, 13]; - case 8: - _d.trys.push([8, , 11, 12]); - if (!(_b && !_b.done && (_c = _a.return))) return [3 /*break*/, 10]; - return [4 /*yield*/, tslib.__await(_c.call(_a))]; - case 9: - _d.sent(); - _d.label = 10; - case 10: return [3 /*break*/, 12]; - case 11: - if (e_12) throw e_12.error; - return [7 /*endfinally*/]; - case 12: return [7 /*endfinally*/]; - case 13: return [2 /*return*/]; + listItems(options = {}) { + return tslib.__asyncGenerator(this, arguments, function* listItems_1() { + var e_2, _a; + let marker; + try { + for (var _b = tslib.__asyncValues(this.listSegments(marker, options)), _c; _c = yield tslib.__await(_b.next()), !_c.done;) { + const segment = _c.value; + yield tslib.__await(yield* tslib.__asyncDelegator(tslib.__asyncValues(segment.containerItems))); } - }); + } + catch (e_2_1) { e_2 = { error: e_2_1 }; } + finally { + try { + if (_c && !_c.done && (_a = _b.return)) yield tslib.__await(_a.call(_b)); + } + finally { if (e_2) throw e_2.error; } + } }); - }; + } /** * Returns an async iterable iterator to list all the containers * under the specified account. @@ -42118,14 +38794,11 @@ var BlobServiceClient = /** @class */ (function (_super) { * @param options - Options to list containers. * @returns An asyncIterableIterator that supports paging. */ - BlobServiceClient.prototype.listContainers = function (options) { - var _a; - var _this = this; - if (options === void 0) { options = {}; } + listContainers(options = {}) { if (options.prefix === "") { options.prefix = undefined; } - var include = []; + const include = []; if (options.includeDeleted) { include.push("deleted"); } @@ -42133,31 +38806,29 @@ var BlobServiceClient = /** @class */ (function (_super) { include.push("metadata"); } // AsyncIterableIterator to iterate over containers - var listSegmentOptions = tslib.__assign(tslib.__assign({}, options), (include.length > 0 ? { include: include } : {})); - var iter = this.listItems(listSegmentOptions); - return _a = { - /** - * The next method, part of the iteration protocol - */ - next: function () { - return iter.next(); - } + const listSegmentOptions = Object.assign(Object.assign({}, options), (include.length > 0 ? { include } : {})); + const iter = this.listItems(listSegmentOptions); + return { + /** + * The next method, part of the iteration protocol + */ + next() { + return iter.next(); }, /** * The connection to the async iterator, part of the iteration protocol */ - _a[Symbol.asyncIterator] = function () { + [Symbol.asyncIterator]() { return this; }, /** * Return an AsyncIterableIterator that works a page at a time */ - _a.byPage = function (settings) { - if (settings === void 0) { settings = {}; } - return _this.listSegments(settings.continuationToken, tslib.__assign({ maxPageSize: settings.maxPageSize }, listSegmentOptions)); - }, - _a; - }; + byPage: (settings = {}) => { + return this.listSegments(settings.continuationToken, Object.assign({ maxPageSize: settings.maxPageSize }, listSegmentOptions)); + } + }; + } /** * ONLY AVAILABLE WHEN USING BEARER TOKEN AUTHENTICATION (TokenCredential). * @@ -42169,49 +38840,36 @@ var BlobServiceClient = /** @class */ (function (_super) { * @param startsOn - The start time for the user delegation SAS. Must be within 7 days of the current time * @param expiresOn - The end time for the user delegation SAS. Must be within 7 days of the current time */ - BlobServiceClient.prototype.getUserDelegationKey = function (startsOn, expiresOn, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, response, userDelegationKey, res, e_13; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobServiceClient-getUserDelegationKey", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.serviceContext.getUserDelegationKey({ - startsOn: truncatedISO8061Date(startsOn, false), - expiresOn: truncatedISO8061Date(expiresOn, false) - }, tslib.__assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - response = _b.sent(); - userDelegationKey = { - signedObjectId: response.signedObjectId, - signedTenantId: response.signedTenantId, - signedStartsOn: new Date(response.signedStartsOn), - signedExpiresOn: new Date(response.signedExpiresOn), - signedService: response.signedService, - signedVersion: response.signedVersion, - value: response.value - }; - res = tslib.__assign({ _response: response._response, requestId: response.requestId, clientRequestId: response.clientRequestId, version: response.version, date: response.date, errorCode: response.errorCode }, userDelegationKey); - return [2 /*return*/, res]; - case 3: - e_13 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_13.message - }); - throw e_13; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async getUserDelegationKey(startsOn, expiresOn, options = {}) { + const { span, updatedOptions } = createSpan("BlobServiceClient-getUserDelegationKey", options); + try { + const response = await this.serviceContext.getUserDelegationKey({ + startsOn: truncatedISO8061Date(startsOn, false), + expiresOn: truncatedISO8061Date(expiresOn, false) + }, Object.assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions))); + const userDelegationKey = { + signedObjectId: response.signedObjectId, + signedTenantId: response.signedTenantId, + signedStartsOn: new Date(response.signedStartsOn), + signedExpiresOn: new Date(response.signedExpiresOn), + signedService: response.signedService, + signedVersion: response.signedVersion, + value: response.value + }; + const res = Object.assign({ _response: response._response, requestId: response.requestId, clientRequestId: response.clientRequestId, version: response.version, date: response.date, errorCode: response.errorCode }, userDelegationKey); + return res; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Creates a BlobBatchClient object to conduct batch operations. * @@ -42219,9 +38877,9 @@ var BlobServiceClient = /** @class */ (function (_super) { * * @returns A new BlobBatchClient object for this service. */ - BlobServiceClient.prototype.getBlobBatchClient = function () { + getBlobBatchClient() { return new BlobBatchClient(this.url, this.pipeline); - }; + } /** * Only available for BlobServiceClient constructed with a shared key credential. * @@ -42236,24 +38894,20 @@ var BlobServiceClient = /** @class */ (function (_super) { * @param options - Optional parameters. * @returns An account SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token. */ - BlobServiceClient.prototype.generateAccountSasUrl = function (expiresOn, permissions, resourceTypes, options) { - if (permissions === void 0) { permissions = AccountSASPermissions.parse("r"); } - if (resourceTypes === void 0) { resourceTypes = "sco"; } - if (options === void 0) { options = {}; } + generateAccountSasUrl(expiresOn, permissions = AccountSASPermissions.parse("r"), resourceTypes = "sco", options = {}) { if (!(this.credential instanceof StorageSharedKeyCredential)) { throw RangeError("Can only generate the account SAS when the client is initialized with a shared key credential"); } if (expiresOn === undefined) { - var now = new Date(); + const now = new Date(); expiresOn = new Date(now.getTime() + 3600 * 1000); } - var sas = generateAccountSASQueryParameters(tslib.__assign({ permissions: permissions, - expiresOn: expiresOn, - resourceTypes: resourceTypes, services: AccountSASServices.parse("b").toString() }, options), this.credential).toString(); + const sas = generateAccountSASQueryParameters(Object.assign({ permissions, + expiresOn, + resourceTypes, services: AccountSASServices.parse("b").toString() }, options), this.credential).toString(); return appendToURLQuery(this.url, sas); - }; - return BlobServiceClient; -}(StorageClient)); + } +} Object.defineProperty(exports, 'BaseRequestPolicy', { enumerable: true, @@ -42320,6 +38974,7 @@ exports.StorageSharedKeyCredential = StorageSharedKeyCredential; exports.StorageSharedKeyCredentialPolicy = StorageSharedKeyCredentialPolicy; exports.generateAccountSASQueryParameters = generateAccountSASQueryParameters; exports.generateBlobSASQueryParameters = generateBlobSASQueryParameters; +exports.isPipelineLike = isPipelineLike; exports.logger = logger; exports.newPipeline = newPipeline; //# sourceMappingURL=index.js.map @@ -44181,6 +40836,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.ProxyTracerProvider = void 0; var ProxyTracer_1 = __webpack_require__(398); var NoopTracerProvider_1 = __webpack_require__(162); +var NOOP_TRACER_PROVIDER = new NoopTracerProvider_1.NoopTracerProvider(); /** * Tracer provider which provides {@link ProxyTracer}s. * @@ -44201,7 +40857,7 @@ var ProxyTracerProvider = /** @class */ (function () { }; ProxyTracerProvider.prototype.getDelegate = function () { var _a; - return (_a = this._delegate) !== null && _a !== void 0 ? _a : NoopTracerProvider_1.NOOP_TRACER_PROVIDER; + return (_a = this._delegate) !== null && _a !== void 0 ? _a : NOOP_TRACER_PROVIDER; }; /** * Set the delegate tracer provider @@ -44259,6 +40915,7 @@ module.exports = function (Yallist) { Object.defineProperty(exports, "__esModule", { value: true }); exports.ProxyTracer = void 0; var NoopTracer_1 = __webpack_require__(151); +var NOOP_TRACER = new NoopTracer_1.NoopTracer(); /** * Proxy tracer provided by the proxy tracer provider */ @@ -44271,6 +40928,10 @@ var ProxyTracer = /** @class */ (function () { ProxyTracer.prototype.startSpan = function (name, options, context) { return this._getTracer().startSpan(name, options, context); }; + ProxyTracer.prototype.startActiveSpan = function (_name, _options, _context, _fn) { + var tracer = this._getTracer(); + return Reflect.apply(tracer.startActiveSpan, tracer, arguments); + }; /** * Try to get a tracer from the proxy tracer provider. * If the proxy tracer provider has no delegate, return a noop tracer. @@ -44281,7 +40942,7 @@ var ProxyTracer = /** @class */ (function () { } var tracer = this._provider.getDelegateTracer(this.name, this.version); if (!tracer) { - return NoopTracer_1.NOOP_TRACER; + return NOOP_TRACER; } this._delegate = tracer; return this._delegate; @@ -44835,12 +41496,10 @@ function parallel(list, iterator, callback) * See the License for the specific language governing permissions and * limitations under the License. */ -var __spreadArrays = (this && this.__spreadArrays) || function () { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; +var __spreadArray = (this && this.__spreadArray) || function (to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.NoopContextManager = void 0; @@ -44856,9 +41515,9 @@ var NoopContextManager = /** @class */ (function () { for (var _i = 3; _i < arguments.length; _i++) { args[_i - 3] = arguments[_i]; } - return fn.call.apply(fn, __spreadArrays([thisArg], args)); + return fn.call.apply(fn, __spreadArray([thisArg], args)); }; - NoopContextManager.prototype.bind = function (target, _context) { + NoopContextManager.prototype.bind = function (_context, target) { return target; }; NoopContextManager.prototype.enable = function () { @@ -45135,9 +41794,111 @@ exports.listTar = listTar; //# sourceMappingURL=tar.js.map /***/ }), -/* 435 */, +/* 435 */ +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.INVALID_SPAN_CONTEXT = exports.INVALID_TRACEID = exports.INVALID_SPANID = void 0; +var trace_flags_1 = __webpack_require__(975); +exports.INVALID_SPANID = '0000000000000000'; +exports.INVALID_TRACEID = '00000000000000000000000000000000'; +exports.INVALID_SPAN_CONTEXT = { + traceId: exports.INVALID_TRACEID, + spanId: exports.INVALID_SPANID, + traceFlags: trace_flags_1.TraceFlags.NONE, +}; +//# sourceMappingURL=invalid-span-constants.js.map + +/***/ }), /* 436 */, -/* 437 */, +/* 437 */ +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NonRecordingSpan = void 0; +var invalid_span_constants_1 = __webpack_require__(435); +/** + * The NonRecordingSpan is the default {@link Span} that is used when no Span + * implementation is available. All operations are no-op including context + * propagation. + */ +var NonRecordingSpan = /** @class */ (function () { + function NonRecordingSpan(_spanContext) { + if (_spanContext === void 0) { _spanContext = invalid_span_constants_1.INVALID_SPAN_CONTEXT; } + this._spanContext = _spanContext; + } + // Returns a SpanContext. + NonRecordingSpan.prototype.spanContext = function () { + return this._spanContext; + }; + // By default does nothing + NonRecordingSpan.prototype.setAttribute = function (_key, _value) { + return this; + }; + // By default does nothing + NonRecordingSpan.prototype.setAttributes = function (_attributes) { + return this; + }; + // By default does nothing + NonRecordingSpan.prototype.addEvent = function (_name, _attributes) { + return this; + }; + // By default does nothing + NonRecordingSpan.prototype.setStatus = function (_status) { + return this; + }; + // By default does nothing + NonRecordingSpan.prototype.updateName = function (_name) { + return this; + }; + // By default does nothing + NonRecordingSpan.prototype.end = function (_endTime) { }; + // isRecording always returns false for NonRecordingSpan. + NonRecordingSpan.prototype.isRecording = function () { + return false; + }; + // By default does nothing + NonRecordingSpan.prototype.recordException = function (_exception, _time) { }; + return NonRecordingSpan; +}()); +exports.NonRecordingSpan = NonRecordingSpan; +//# sourceMappingURL=NonRecordingSpan.js.map + +/***/ }), /* 438 */, /* 439 */, /* 440 */ @@ -45171,19 +41932,16 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.diag = exports.propagation = exports.trace = exports.context = exports.isValidSpanId = exports.isValidTraceId = exports.isSpanContextValid = exports.INVALID_SPAN_CONTEXT = exports.INVALID_TRACEID = exports.INVALID_SPANID = void 0; -__exportStar(__webpack_require__(792), exports); +exports.diag = exports.propagation = exports.trace = exports.context = exports.INVALID_SPAN_CONTEXT = exports.INVALID_TRACEID = exports.INVALID_SPANID = exports.isValidSpanId = exports.isValidTraceId = exports.isSpanContextValid = exports.baggageEntryMetadataFromString = void 0; +__exportStar(__webpack_require__(880), exports); +var utils_1 = __webpack_require__(112); +Object.defineProperty(exports, "baggageEntryMetadataFromString", { enumerable: true, get: function () { return utils_1.baggageEntryMetadataFromString; } }); __exportStar(__webpack_require__(452), exports); __exportStar(__webpack_require__(158), exports); __exportStar(__webpack_require__(893), exports); -__exportStar(__webpack_require__(918), exports); __exportStar(__webpack_require__(881), exports); __exportStar(__webpack_require__(906), exports); -__exportStar(__webpack_require__(727), exports); -__exportStar(__webpack_require__(851), exports); __exportStar(__webpack_require__(95), exports); -__exportStar(__webpack_require__(151), exports); -__exportStar(__webpack_require__(162), exports); __exportStar(__webpack_require__(398), exports); __exportStar(__webpack_require__(394), exports); __exportStar(__webpack_require__(781), exports); @@ -45193,20 +41951,19 @@ __exportStar(__webpack_require__(670), exports); __exportStar(__webpack_require__(59), exports); __exportStar(__webpack_require__(220), exports); __exportStar(__webpack_require__(932), exports); -__exportStar(__webpack_require__(839), exports); __exportStar(__webpack_require__(975), exports); -__exportStar(__webpack_require__(70), exports); +__exportStar(__webpack_require__(207), exports); __exportStar(__webpack_require__(773), exports); __exportStar(__webpack_require__(695), exports); var spancontext_utils_1 = __webpack_require__(629); -Object.defineProperty(exports, "INVALID_SPANID", { enumerable: true, get: function () { return spancontext_utils_1.INVALID_SPANID; } }); -Object.defineProperty(exports, "INVALID_TRACEID", { enumerable: true, get: function () { return spancontext_utils_1.INVALID_TRACEID; } }); -Object.defineProperty(exports, "INVALID_SPAN_CONTEXT", { enumerable: true, get: function () { return spancontext_utils_1.INVALID_SPAN_CONTEXT; } }); Object.defineProperty(exports, "isSpanContextValid", { enumerable: true, get: function () { return spancontext_utils_1.isSpanContextValid; } }); Object.defineProperty(exports, "isValidTraceId", { enumerable: true, get: function () { return spancontext_utils_1.isValidTraceId; } }); Object.defineProperty(exports, "isValidSpanId", { enumerable: true, get: function () { return spancontext_utils_1.isValidSpanId; } }); +var invalid_span_constants_1 = __webpack_require__(435); +Object.defineProperty(exports, "INVALID_SPANID", { enumerable: true, get: function () { return invalid_span_constants_1.INVALID_SPANID; } }); +Object.defineProperty(exports, "INVALID_TRACEID", { enumerable: true, get: function () { return invalid_span_constants_1.INVALID_TRACEID; } }); +Object.defineProperty(exports, "INVALID_SPAN_CONTEXT", { enumerable: true, get: function () { return invalid_span_constants_1.INVALID_SPAN_CONTEXT; } }); __exportStar(__webpack_require__(132), exports); -__exportStar(__webpack_require__(425), exports); __exportStar(__webpack_require__(845), exports); var context_1 = __webpack_require__(77); /** Entrypoint for context API */ @@ -45346,6 +42103,7 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau var Stream = _interopDefault(__webpack_require__(794)); var http = _interopDefault(__webpack_require__(605)); var Url = _interopDefault(__webpack_require__(835)); +var whatwgUrl = _interopDefault(__webpack_require__(70)); var https = _interopDefault(__webpack_require__(211)); var zlib = _interopDefault(__webpack_require__(761)); @@ -46480,11 +43238,32 @@ Object.defineProperty(Response.prototype, Symbol.toStringTag, { }); const INTERNALS$2 = Symbol('Request internals'); +const URL = Url.URL || whatwgUrl.URL; // fix an issue where "format", "parse" aren't a named export for node <10 const parse_url = Url.parse; const format_url = Url.format; +/** + * Wrapper around `new URL` to handle arbitrary URLs + * + * @param {string} urlStr + * @return {void} + */ +function parseURL(urlStr) { + /* + Check whether the URL is absolute or not + Scheme: https://tools.ietf.org/html/rfc3986#section-3.1 + Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3 + */ + if (/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(urlStr)) { + urlStr = new URL(urlStr).toString(); + } + + // Fallback to old implementation for arbitrary URLs + return parse_url(urlStr); +} + const streamDestructionSupported = 'destroy' in Stream.Readable.prototype; /** @@ -46521,14 +43300,14 @@ class Request { // in order to support Node.js' Url objects; though WHATWG's URL objects // will fall into this branch also (since their `toString()` will return // `href` property anyway) - parsedURL = parse_url(input.href); + parsedURL = parseURL(input.href); } else { // coerce input to a string before attempting to parse - parsedURL = parse_url(`${input}`); + parsedURL = parseURL(`${input}`); } input = {}; } else { - parsedURL = parse_url(input.url); + parsedURL = parseURL(input.url); } let method = init.method || input.method || 'GET'; @@ -47841,8 +44620,71 @@ module.exports = validRange /***/ }), /* 481 */, -/* 482 */, -/* 483 */, +/* 482 */ +/***/ (function(module) { + +module.exports = [[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1000,1000],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6000],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8000,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8000]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9000],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[30000]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13000,13000],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43000,43000],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64000,64000],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66000,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[120000,120000],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128000,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23000]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149000]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32000]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195000,195000],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[40000]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918000,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]; + +/***/ }), +/* 483 */ +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.deleteBaggage = exports.setBaggage = exports.getBaggage = void 0; +var context_1 = __webpack_require__(132); +/** + * Baggage key + */ +var BAGGAGE_KEY = context_1.createContextKey('OpenTelemetry Baggage Key'); +/** + * Retrieve the current baggage from the given context + * + * @param {Context} Context that manage all context values + * @returns {Baggage} Extracted baggage from the context + */ +function getBaggage(context) { + return context.getValue(BAGGAGE_KEY) || undefined; +} +exports.getBaggage = getBaggage; +/** + * Store a baggage in the given context + * + * @param {Context} Context that manage all context values + * @param {Baggage} baggage that will be set in the actual context + */ +function setBaggage(context, baggage) { + return context.setValue(BAGGAGE_KEY, baggage); +} +exports.setBaggage = setBaggage; +/** + * Delete the baggage stored in the given context + * + * @param {Context} Context that manage all context values + */ +function deleteBaggage(context) { + return context.deleteValue(BAGGAGE_KEY); +} +exports.deleteBaggage = deleteBaggage; +//# sourceMappingURL=context-helpers.js.map + +/***/ }), /* 484 */, /* 485 */, /* 486 */ @@ -47931,143 +44773,92 @@ Object.defineProperty(exports, '__esModule', { value: true }); function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } -var tslib = __webpack_require__(262); var util = _interopDefault(__webpack_require__(669)); var os = __webpack_require__(87); // Copyright (c) Microsoft Corporation. -function log(message) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - process.stderr.write("" + util.format.apply(util, tslib.__spread([message], args)) + os.EOL); +function log(message, ...args) { + process.stderr.write(`${util.format(message, ...args)}${os.EOL}`); } // Copyright (c) Microsoft Corporation. -var debugEnvVariable = (typeof process !== "undefined" && process.env && process.env.DEBUG) || undefined; -var enabledString; -var enabledNamespaces = []; -var skippedNamespaces = []; -var debuggers = []; +const debugEnvVariable = (typeof process !== "undefined" && process.env && process.env.DEBUG) || undefined; +let enabledString; +let enabledNamespaces = []; +let skippedNamespaces = []; +const debuggers = []; if (debugEnvVariable) { enable(debugEnvVariable); } -var debugObj = Object.assign(function (namespace) { +const debugObj = Object.assign((namespace) => { return createDebugger(namespace); }, { - enable: enable, - enabled: enabled, - disable: disable, - log: log + enable, + enabled, + disable, + log }); function enable(namespaces) { - var e_1, _a, e_2, _b; enabledString = namespaces; enabledNamespaces = []; skippedNamespaces = []; - var wildcard = /\*/g; - var namespaceList = namespaces.split(",").map(function (ns) { return ns.trim().replace(wildcard, ".*?"); }); - try { - for (var namespaceList_1 = tslib.__values(namespaceList), namespaceList_1_1 = namespaceList_1.next(); !namespaceList_1_1.done; namespaceList_1_1 = namespaceList_1.next()) { - var ns = namespaceList_1_1.value; - if (ns.startsWith("-")) { - skippedNamespaces.push(new RegExp("^" + ns.substr(1) + "$")); - } - else { - enabledNamespaces.push(new RegExp("^" + ns + "$")); - } + const wildcard = /\*/g; + const namespaceList = namespaces.split(",").map((ns) => ns.trim().replace(wildcard, ".*?")); + for (const ns of namespaceList) { + if (ns.startsWith("-")) { + skippedNamespaces.push(new RegExp(`^${ns.substr(1)}$`)); + } + else { + enabledNamespaces.push(new RegExp(`^${ns}$`)); } } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (namespaceList_1_1 && !namespaceList_1_1.done && (_a = namespaceList_1.return)) _a.call(namespaceList_1); - } - finally { if (e_1) throw e_1.error; } - } - try { - for (var debuggers_1 = tslib.__values(debuggers), debuggers_1_1 = debuggers_1.next(); !debuggers_1_1.done; debuggers_1_1 = debuggers_1.next()) { - var instance = debuggers_1_1.value; - instance.enabled = enabled(instance.namespace); - } - } - catch (e_2_1) { e_2 = { error: e_2_1 }; } - finally { - try { - if (debuggers_1_1 && !debuggers_1_1.done && (_b = debuggers_1.return)) _b.call(debuggers_1); - } - finally { if (e_2) throw e_2.error; } + for (const instance of debuggers) { + instance.enabled = enabled(instance.namespace); } } function enabled(namespace) { - var e_3, _a, e_4, _b; if (namespace.endsWith("*")) { return true; } - try { - for (var skippedNamespaces_1 = tslib.__values(skippedNamespaces), skippedNamespaces_1_1 = skippedNamespaces_1.next(); !skippedNamespaces_1_1.done; skippedNamespaces_1_1 = skippedNamespaces_1.next()) { - var skipped = skippedNamespaces_1_1.value; - if (skipped.test(namespace)) { - return false; - } + for (const skipped of skippedNamespaces) { + if (skipped.test(namespace)) { + return false; } } - catch (e_3_1) { e_3 = { error: e_3_1 }; } - finally { - try { - if (skippedNamespaces_1_1 && !skippedNamespaces_1_1.done && (_a = skippedNamespaces_1.return)) _a.call(skippedNamespaces_1); + for (const enabledNamespace of enabledNamespaces) { + if (enabledNamespace.test(namespace)) { + return true; } - finally { if (e_3) throw e_3.error; } - } - try { - for (var enabledNamespaces_1 = tslib.__values(enabledNamespaces), enabledNamespaces_1_1 = enabledNamespaces_1.next(); !enabledNamespaces_1_1.done; enabledNamespaces_1_1 = enabledNamespaces_1.next()) { - var enabledNamespace = enabledNamespaces_1_1.value; - if (enabledNamespace.test(namespace)) { - return true; - } - } - } - catch (e_4_1) { e_4 = { error: e_4_1 }; } - finally { - try { - if (enabledNamespaces_1_1 && !enabledNamespaces_1_1.done && (_b = enabledNamespaces_1.return)) _b.call(enabledNamespaces_1); - } - finally { if (e_4) throw e_4.error; } } return false; } function disable() { - var result = enabledString || ""; + const result = enabledString || ""; enable(""); return result; } function createDebugger(namespace) { - var newDebugger = Object.assign(debug, { + const newDebugger = Object.assign(debug, { enabled: enabled(namespace), - destroy: destroy, + destroy, log: debugObj.log, - namespace: namespace, - extend: extend + namespace, + extend }); - function debug() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } + function debug(...args) { if (!newDebugger.enabled) { return; } if (args.length > 0) { - args[0] = namespace + " " + args[0]; + args[0] = `${namespace} ${args[0]}`; } - newDebugger.log.apply(newDebugger, tslib.__spread(args)); + newDebugger.log(...args); } debuggers.push(newDebugger); return newDebugger; } function destroy() { - var index = debuggers.indexOf(this); + const index = debuggers.indexOf(this); if (index >= 0) { debuggers.splice(index, 1); return true; @@ -48075,36 +44866,32 @@ function destroy() { return false; } function extend(namespace) { - var newDebugger = createDebugger(this.namespace + ":" + namespace); + const newDebugger = createDebugger(`${this.namespace}:${namespace}`); newDebugger.log = this.log; return newDebugger; } // Copyright (c) Microsoft Corporation. -var registeredLoggers = new Set(); -var logLevelFromEnv = (typeof process !== "undefined" && process.env && process.env.AZURE_LOG_LEVEL) || undefined; -var azureLogLevel; +const registeredLoggers = new Set(); +const logLevelFromEnv = (typeof process !== "undefined" && process.env && process.env.AZURE_LOG_LEVEL) || undefined; +let azureLogLevel; /** * The AzureLogger provides a mechanism for overriding where logs are output to. * By default, logs are sent to stderr. * Override the `log` method to redirect logs to another location. */ -var AzureLogger = debugObj("azure"); -AzureLogger.log = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - debugObj.log.apply(debugObj, tslib.__spread(args)); +const AzureLogger = debugObj("azure"); +AzureLogger.log = (...args) => { + debugObj.log(...args); }; -var AZURE_LOG_LEVELS = ["verbose", "info", "warning", "error"]; +const AZURE_LOG_LEVELS = ["verbose", "info", "warning", "error"]; if (logLevelFromEnv) { // avoid calling setLogLevel because we don't want a mis-set environment variable to crash if (isAzureLogLevel(logLevelFromEnv)) { setLogLevel(logLevelFromEnv); } else { - console.error("AZURE_LOG_LEVEL set to unknown log level '" + logLevelFromEnv + "'; logging is not enabled. Acceptable values: " + AZURE_LOG_LEVELS.join(", ") + "."); + console.error(`AZURE_LOG_LEVEL set to unknown log level '${logLevelFromEnv}'; logging is not enabled. Acceptable values: ${AZURE_LOG_LEVELS.join(", ")}.`); } } /** @@ -48117,27 +44904,16 @@ if (logLevelFromEnv) { * - error */ function setLogLevel(level) { - var e_1, _a; if (level && !isAzureLogLevel(level)) { - throw new Error("Unknown log level '" + level + "'. Acceptable values: " + AZURE_LOG_LEVELS.join(",")); + throw new Error(`Unknown log level '${level}'. Acceptable values: ${AZURE_LOG_LEVELS.join(",")}`); } azureLogLevel = level; - var enabledNamespaces = []; - try { - for (var registeredLoggers_1 = tslib.__values(registeredLoggers), registeredLoggers_1_1 = registeredLoggers_1.next(); !registeredLoggers_1_1.done; registeredLoggers_1_1 = registeredLoggers_1.next()) { - var logger = registeredLoggers_1_1.value; - if (shouldEnable(logger)) { - enabledNamespaces.push(logger.namespace); - } + const enabledNamespaces = []; + for (const logger of registeredLoggers) { + if (shouldEnable(logger)) { + enabledNamespaces.push(logger.namespace); } } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (registeredLoggers_1_1 && !registeredLoggers_1_1.done && (_a = registeredLoggers_1.return)) _a.call(registeredLoggers_1); - } - finally { if (e_1) throw e_1.error; } - } debugObj.enable(enabledNamespaces.join(",")); } /** @@ -48146,7 +44922,7 @@ function setLogLevel(level) { function getLogLevel() { return azureLogLevel; } -var levelMap = { +const levelMap = { verbose: 400, info: 300, warning: 200, @@ -48158,7 +44934,7 @@ var levelMap = { * @hidden */ function createClientLogger(namespace) { - var clientRootLogger = AzureLogger.extend(namespace); + const clientRootLogger = AzureLogger.extend(namespace); patchLogMethod(AzureLogger, clientRootLogger); return { error: createLogger(clientRootLogger, "error"), @@ -48168,21 +44944,17 @@ function createClientLogger(namespace) { }; } function patchLogMethod(parent, child) { - child.log = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - parent.log.apply(parent, tslib.__spread(args)); + child.log = (...args) => { + parent.log(...args); }; } function createLogger(parent, level) { - var logger = Object.assign(parent.extend(level), { - level: level + const logger = Object.assign(parent.extend(level), { + level }); patchLogMethod(parent, logger); if (shouldEnable(logger)) { - var enabledNamespaces = debugObj.disable(); + const enabledNamespaces = debugObj.disable(); debugObj.enable(enabledNamespaces + "," + logger.namespace); } registeredLoggers.add(logger); @@ -48328,10 +45100,79 @@ module.exports = clean "use strict"; -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT license. -Object.defineProperty(exports, "__esModule", { value: true }); + +Object.defineProperty(exports, '__esModule', { value: true }); + __webpack_require__(71); +var tslib = __webpack_require__(671); + +// Copyright (c) Microsoft Corporation. +/** + * returns an async iterator that iterates over results. It also has a `byPage` + * method that returns pages of items at once. + * + * @param pagedResult - an object that specifies how to get pages. + * @returns a paged async iterator that iterates over results. + */ +function getPagedAsyncIterator(pagedResult) { + var _a; + const iter = getItemAsyncIterator(pagedResult); + return { + next() { + return iter.next(); + }, + [Symbol.asyncIterator]() { + return this; + }, + byPage: (_a = pagedResult === null || pagedResult === void 0 ? void 0 : pagedResult.byPage) !== null && _a !== void 0 ? _a : ((settings) => { + return getPageAsyncIterator(pagedResult, settings === null || settings === void 0 ? void 0 : settings.maxPageSize); + }) + }; +} +function getItemAsyncIterator(pagedResult, maxPageSize) { + return tslib.__asyncGenerator(this, arguments, function* getItemAsyncIterator_1() { + var e_1, _a; + const pages = getPageAsyncIterator(pagedResult, maxPageSize); + const firstVal = yield tslib.__await(pages.next()); + // if the result does not have an array shape, i.e. TPage = TElement, then we return it as is + if (!Array.isArray(firstVal.value)) { + yield yield tslib.__await(firstVal.value); + // `pages` is of type `AsyncIterableIterator` but TPage = TElement in this case + yield tslib.__await(yield* tslib.__asyncDelegator(tslib.__asyncValues(pages))); + } + else { + yield tslib.__await(yield* tslib.__asyncDelegator(tslib.__asyncValues(firstVal.value))); + try { + for (var pages_1 = tslib.__asyncValues(pages), pages_1_1; pages_1_1 = yield tslib.__await(pages_1.next()), !pages_1_1.done;) { + const page = pages_1_1.value; + // pages is of type `AsyncIterableIterator` so `page` is of type `TPage`. In this branch, + // it must be the case that `TPage = TElement[]` + yield tslib.__await(yield* tslib.__asyncDelegator(tslib.__asyncValues(page))); + } + } + catch (e_1_1) { e_1 = { error: e_1_1 }; } + finally { + try { + if (pages_1_1 && !pages_1_1.done && (_a = pages_1.return)) yield tslib.__await(_a.call(pages_1)); + } + finally { if (e_1) throw e_1.error; } + } + } + }); +} +function getPageAsyncIterator(pagedResult, maxPageSize) { + return tslib.__asyncGenerator(this, arguments, function* getPageAsyncIterator_1() { + let response = yield tslib.__await(pagedResult.getPage(pagedResult.firstPageLink, maxPageSize)); + yield yield tslib.__await(response.page); + while (response.nextPageLink) { + response = yield tslib.__await(pagedResult.getPage(response.nextPageLink, maxPageSize)); + yield yield tslib.__await(response.page); + } + }); +} + +exports.getPagedAsyncIterator = getPagedAsyncIterator; +//# sourceMappingURL=index.js.map /***/ }), @@ -48482,33 +45323,33 @@ module.exports = {"application/1d-interleaved-parityfec":{"source":"iana"},"appl */ Object.defineProperty(exports, "__esModule", { value: true }); exports.unregisterGlobal = exports.getGlobal = exports.registerGlobal = void 0; -var __1 = __webpack_require__(440); var platform_1 = __webpack_require__(910); var version_1 = __webpack_require__(133); var semver_1 = __webpack_require__(987); var major = version_1.VERSION.split('.')[0]; -var GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for("io.opentelemetry.js.api." + major); +var GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for("opentelemetry.js.api." + major); var _global = platform_1._globalThis; -function registerGlobal(type, instance, allowOverride) { +function registerGlobal(type, instance, diag, allowOverride) { var _a; if (allowOverride === void 0) { allowOverride = false; } - _global[GLOBAL_OPENTELEMETRY_API_KEY] = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) !== null && _a !== void 0 ? _a : { + var api = (_global[GLOBAL_OPENTELEMETRY_API_KEY] = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) !== null && _a !== void 0 ? _a : { version: version_1.VERSION, - }; - var api = _global[GLOBAL_OPENTELEMETRY_API_KEY]; + }); if (!allowOverride && api[type]) { // already registered an API of this type var err = new Error("@opentelemetry/api: Attempted duplicate registration of API: " + type); - __1.diag.error(err.stack || err.message); - return; + diag.error(err.stack || err.message); + return false; } if (api.version !== version_1.VERSION) { // All registered APIs must be of the same version exactly var err = new Error('@opentelemetry/api: All API registration versions must match'); - __1.diag.error(err.stack || err.message); - return; + diag.error(err.stack || err.message); + return false; } api[type] = instance; + diag.debug("@opentelemetry/api: Registered a global for " + type + " v" + version_1.VERSION + "."); + return true; } exports.registerGlobal = registerGlobal; function getGlobal(type) { @@ -48520,7 +45361,8 @@ function getGlobal(type) { return (_b = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _b === void 0 ? void 0 : _b[type]; } exports.getGlobal = getGlobal; -function unregisterGlobal(type) { +function unregisterGlobal(type, diag) { + diag.debug("@opentelemetry/api: Unregistering a global for " + type + " v" + version_1.VERSION + "."); var api = _global[GLOBAL_OPENTELEMETRY_API_KEY]; if (api) { delete api[type]; @@ -52398,76 +49240,7 @@ exports.partialMatch = partialMatch; /***/ }), /* 598 */, -/* 599 */ -/***/ (function(__unusedmodule, exports) { - -"use strict"; - -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.BaggageImpl = void 0; -var BaggageImpl = /** @class */ (function () { - function BaggageImpl(entries) { - this._entries = entries ? new Map(entries) : new Map(); - } - BaggageImpl.prototype.getEntry = function (key) { - var entry = this._entries.get(key); - if (!entry) { - return undefined; - } - return Object.assign({}, entry); - }; - BaggageImpl.prototype.getAllEntries = function () { - return Array.from(this._entries.entries()).map(function (_a) { - var k = _a[0], v = _a[1]; - return [k, v]; - }); - }; - BaggageImpl.prototype.setEntry = function (key, entry) { - var newBaggage = new BaggageImpl(this._entries); - newBaggage._entries.set(key, entry); - return newBaggage; - }; - BaggageImpl.prototype.removeEntry = function (key) { - var newBaggage = new BaggageImpl(this._entries); - newBaggage._entries.delete(key); - return newBaggage; - }; - BaggageImpl.prototype.removeEntries = function () { - var keys = []; - for (var _i = 0; _i < arguments.length; _i++) { - keys[_i] = arguments[_i]; - } - var newBaggage = new BaggageImpl(this._entries); - for (var _a = 0, keys_1 = keys; _a < keys_1.length; _a++) { - var key = keys_1[_a]; - newBaggage._entries.delete(key); - } - return newBaggage; - }; - BaggageImpl.prototype.clear = function () { - return new BaggageImpl(); - }; - return BaggageImpl; -}()); -exports.BaggageImpl = BaggageImpl; -//# sourceMappingURL=baggage.js.map - -/***/ }), +/* 599 */, /* 600 */, /* 601 */ /***/ (function(__unusedmodule, exports, __webpack_require__) { @@ -53413,23 +50186,32 @@ module.exports = require("path"); "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.isSpanContextValid = exports.isValidSpanId = exports.isValidTraceId = exports.INVALID_SPAN_CONTEXT = exports.INVALID_TRACEID = exports.INVALID_SPANID = void 0; -var trace_flags_1 = __webpack_require__(975); +exports.wrapSpanContext = exports.isSpanContextValid = exports.isValidSpanId = exports.isValidTraceId = void 0; +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +var invalid_span_constants_1 = __webpack_require__(435); +var NonRecordingSpan_1 = __webpack_require__(437); var VALID_TRACEID_REGEX = /^([0-9a-f]{32})$/i; var VALID_SPANID_REGEX = /^[0-9a-f]{16}$/i; -exports.INVALID_SPANID = '0000000000000000'; -exports.INVALID_TRACEID = '00000000000000000000000000000000'; -exports.INVALID_SPAN_CONTEXT = { - traceId: exports.INVALID_TRACEID, - spanId: exports.INVALID_SPANID, - traceFlags: trace_flags_1.TraceFlags.NONE, -}; function isValidTraceId(traceId) { - return VALID_TRACEID_REGEX.test(traceId) && traceId !== exports.INVALID_TRACEID; + return VALID_TRACEID_REGEX.test(traceId) && traceId !== invalid_span_constants_1.INVALID_TRACEID; } exports.isValidTraceId = isValidTraceId; function isValidSpanId(spanId) { - return VALID_SPANID_REGEX.test(spanId) && spanId !== exports.INVALID_SPANID; + return VALID_SPANID_REGEX.test(spanId) && spanId !== invalid_span_constants_1.INVALID_SPANID; } exports.isValidSpanId = isValidSpanId; /** @@ -53440,6 +50222,16 @@ function isSpanContextValid(spanContext) { return (isValidTraceId(spanContext.traceId) && isValidSpanId(spanContext.spanId)); } exports.isSpanContextValid = isSpanContextValid; +/** + * Wrap the given {@link SpanContext} in a new non-recording {@link Span} + * + * @param spanContext span context to be wrapped + * @returns a new non-recording {@link Span} with the provided context + */ +function wrapSpanContext(spanContext) { + return new NonRecordingSpan_1.NonRecordingSpan(spanContext); +} +exports.wrapSpanContext = wrapSpanContext; //# sourceMappingURL=spancontext-utils.js.map /***/ }), @@ -53765,7 +50557,7 @@ var __createBinding; ar[i] = from[i]; } } - return to.concat(ar || from); + return to.concat(ar || Array.prototype.slice.call(from)); }; __await = function (v) { @@ -55437,33 +52229,36 @@ var __createBinding; /***/ }), -/* 646 */ -/***/ (function(__unusedmodule, exports) { +/* 646 */, +/* 647 */, +/* 648 */, +/* 649 */ +/***/ (function(module) { "use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=Entry.js.map + +module.exports.mixin = function mixin(target, source) { + const keys = Object.getOwnPropertyNames(source); + for (let i = 0; i < keys.length; ++i) { + Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i])); + } +}; + +module.exports.wrapperSymbol = Symbol("wrapper"); +module.exports.implSymbol = Symbol("impl"); + +module.exports.wrapperForImpl = function (impl) { + return impl[module.exports.wrapperSymbol]; +}; + +module.exports.implForWrapper = function (wrapper) { + return wrapper[module.exports.implSymbol]; +}; + + /***/ }), -/* 647 */, -/* 648 */, -/* 649 */, /* 650 */, /* 651 */, /* 652 */, @@ -55866,7 +52661,76 @@ exports.safeTrimTrailingSeparator = safeTrimTrailingSeparator; /* 663 */, /* 664 */, /* 665 */, -/* 666 */, +/* 666 */ +/***/ (function(__unusedmodule, exports) { + +"use strict"; + +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BaggageImpl = void 0; +var BaggageImpl = /** @class */ (function () { + function BaggageImpl(entries) { + this._entries = entries ? new Map(entries) : new Map(); + } + BaggageImpl.prototype.getEntry = function (key) { + var entry = this._entries.get(key); + if (!entry) { + return undefined; + } + return Object.assign({}, entry); + }; + BaggageImpl.prototype.getAllEntries = function () { + return Array.from(this._entries.entries()).map(function (_a) { + var k = _a[0], v = _a[1]; + return [k, v]; + }); + }; + BaggageImpl.prototype.setEntry = function (key, entry) { + var newBaggage = new BaggageImpl(this._entries); + newBaggage._entries.set(key, entry); + return newBaggage; + }; + BaggageImpl.prototype.removeEntry = function (key) { + var newBaggage = new BaggageImpl(this._entries); + newBaggage._entries.delete(key); + return newBaggage; + }; + BaggageImpl.prototype.removeEntries = function () { + var keys = []; + for (var _i = 0; _i < arguments.length; _i++) { + keys[_i] = arguments[_i]; + } + var newBaggage = new BaggageImpl(this._entries); + for (var _a = 0, keys_1 = keys; _a < keys_1.length; _a++) { + var key = keys_1[_a]; + newBaggage._entries.delete(key); + } + return newBaggage; + }; + BaggageImpl.prototype.clear = function () { + return new BaggageImpl(); + }; + return BaggageImpl; +}()); +exports.BaggageImpl = BaggageImpl; +//# sourceMappingURL=baggage-impl.js.map + +/***/ }), /* 667 */, /* 668 */, /* 669 */ @@ -55927,7 +52791,318 @@ var SpanKind; //# sourceMappingURL=span_kind.js.map /***/ }), -/* 671 */, +/* 671 */ +/***/ (function(module) { + +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +/* global global, define, System, Reflect, Promise */ +var __extends; +var __assign; +var __rest; +var __decorate; +var __param; +var __metadata; +var __awaiter; +var __generator; +var __exportStar; +var __values; +var __read; +var __spread; +var __spreadArrays; +var __spreadArray; +var __await; +var __asyncGenerator; +var __asyncDelegator; +var __asyncValues; +var __makeTemplateObject; +var __importStar; +var __importDefault; +var __classPrivateFieldGet; +var __classPrivateFieldSet; +var __createBinding; +(function (factory) { + var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; + if (typeof define === "function" && define.amd) { + define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); }); + } + else if ( true && typeof module.exports === "object") { + factory(createExporter(root, createExporter(module.exports))); + } + else { + factory(createExporter(root)); + } + function createExporter(exports, previous) { + if (exports !== root) { + if (typeof Object.create === "function") { + Object.defineProperty(exports, "__esModule", { value: true }); + } + else { + exports.__esModule = true; + } + } + return function (id, v) { return exports[id] = previous ? previous(id, v) : v; }; + } +}) +(function (exporter) { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + + __extends = function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + + __rest = function (s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; + }; + + __decorate = function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + + __param = function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } + }; + + __metadata = function (metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); + }; + + __awaiter = function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + + __generator = function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } + }; + + __exportStar = function(m, o) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); + }; + + __createBinding = Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + }) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + }); + + __values = function (o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function () { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + + __read = function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } + catch (error) { e = { error: error }; } + finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } + finally { if (e) throw e.error; } + } + return ar; + }; + + /** @deprecated */ + __spread = function () { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read(arguments[i])); + return ar; + }; + + /** @deprecated */ + __spreadArrays = function () { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; + }; + + __spreadArray = function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); + }; + + __await = function (v) { + return this instanceof __await ? (this.v = v, this) : new __await(v); + }; + + __asyncGenerator = function (thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; + function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } + function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } + function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } + function fulfill(value) { resume("next", value); } + function reject(value) { resume("throw", value); } + function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } + }; + + __asyncDelegator = function (o) { + var i, p; + return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; + function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } + }; + + __asyncValues = function (o) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); + function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } + function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } + }; + + __makeTemplateObject = function (cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; + }; + + var __setModuleDefault = Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + }) : function(o, v) { + o["default"] = v; + }; + + __importStar = function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; + }; + + __importDefault = function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + + __classPrivateFieldGet = function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); + }; + + __classPrivateFieldSet = function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; + }; + + exporter("__extends", __extends); + exporter("__assign", __assign); + exporter("__rest", __rest); + exporter("__decorate", __decorate); + exporter("__param", __param); + exporter("__metadata", __metadata); + exporter("__awaiter", __awaiter); + exporter("__generator", __generator); + exporter("__exportStar", __exportStar); + exporter("__createBinding", __createBinding); + exporter("__values", __values); + exporter("__read", __read); + exporter("__spread", __spread); + exporter("__spreadArrays", __spreadArrays); + exporter("__spreadArray", __spreadArray); + exporter("__await", __await); + exporter("__asyncGenerator", __asyncGenerator); + exporter("__asyncDelegator", __asyncDelegator); + exporter("__asyncValues", __asyncValues); + exporter("__makeTemplateObject", __makeTemplateObject); + exporter("__importStar", __importStar); + exporter("__importDefault", __importDefault); + exporter("__classPrivateFieldGet", __classPrivateFieldGet); + exporter("__classPrivateFieldSet", __classPrivateFieldSet); +}); + + +/***/ }), /* 672 */ /***/ (function(__unusedmodule, exports, __webpack_require__) { @@ -56344,7 +53519,7 @@ function restoreCache(paths, primaryKey, restoreKeys, options) { if (core.isDebug()) { yield tar_1.listTar(archivePath, compressionMethod); } - const archiveFileSize = utils.getArchiveFileSizeIsBytes(archivePath); + const archiveFileSize = utils.getArchiveFileSizeInBytes(archivePath); core.info(`Cache Size: ~${Math.round(archiveFileSize / (1024 * 1024))} MB (${archiveFileSize} B)`); yield tar_1.extractTar(archivePath, compressionMethod); core.info('Cache restored successfully'); @@ -56389,18 +53564,29 @@ function saveCache(paths, key, options) { const archiveFolder = yield utils.createTempDirectory(); const archivePath = path.join(archiveFolder, utils.getCacheFileName(compressionMethod)); core.debug(`Archive Path: ${archivePath}`); - yield tar_1.createTar(archiveFolder, cachePaths, compressionMethod); - if (core.isDebug()) { - yield tar_1.listTar(archivePath, compressionMethod); + try { + yield tar_1.createTar(archiveFolder, cachePaths, compressionMethod); + if (core.isDebug()) { + yield tar_1.listTar(archivePath, compressionMethod); + } + const fileSizeLimit = 10 * 1024 * 1024 * 1024; // 10GB per repo limit + const archiveFileSize = utils.getArchiveFileSizeInBytes(archivePath); + core.debug(`File Size: ${archiveFileSize}`); + if (archiveFileSize > fileSizeLimit) { + throw new Error(`Cache size of ~${Math.round(archiveFileSize / (1024 * 1024))} MB (${archiveFileSize} B) is over the 10GB limit, not saving cache.`); + } + core.debug(`Saving Cache (ID: ${cacheId})`); + yield cacheHttpClient.saveCache(cacheId, archivePath, options); } - const fileSizeLimit = 5 * 1024 * 1024 * 1024; // 5GB per repo limit - const archiveFileSize = utils.getArchiveFileSizeIsBytes(archivePath); - core.debug(`File Size: ${archiveFileSize}`); - if (archiveFileSize > fileSizeLimit) { - throw new Error(`Cache size of ~${Math.round(archiveFileSize / (1024 * 1024))} MB (${archiveFileSize} B) is over the 5GB limit, not saving cache.`); + finally { + // Try to delete the archive to save space + try { + yield utils.unlinkFile(archivePath); + } + catch (error) { + core.debug(`Failed to delete archive: ${error}`); + } } - core.debug(`Saving Cache (ID: ${cacheId})`); - yield cacheHttpClient.saveCache(cacheId, archivePath, options); return cacheId; }); } @@ -56413,28 +53599,28 @@ exports.saveCache = saveCache; /***/ (function(__unusedmodule, exports) { "use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -exports.STATE_GPG_PRIVATE_KEY_FINGERPRINT = exports.INPUT_JOB_STATUS = exports.INPUT_CACHE = exports.INPUT_DEFAULT_GPG_PASSPHRASE = exports.INPUT_DEFAULT_GPG_PRIVATE_KEY = exports.INPUT_GPG_PASSPHRASE = exports.INPUT_GPG_PRIVATE_KEY = exports.INPUT_OVERWRITE_SETTINGS = exports.INPUT_SETTINGS_PATH = exports.INPUT_SERVER_PASSWORD = exports.INPUT_SERVER_USERNAME = exports.INPUT_SERVER_ID = exports.INPUT_CHECK_LATEST = exports.INPUT_JDK_FILE = exports.INPUT_DISTRIBUTION = exports.INPUT_JAVA_PACKAGE = exports.INPUT_ARCHITECTURE = exports.INPUT_JAVA_VERSION = exports.MACOS_JAVA_CONTENT_POSTFIX = void 0; -exports.MACOS_JAVA_CONTENT_POSTFIX = 'Contents/Home'; -exports.INPUT_JAVA_VERSION = 'java-version'; -exports.INPUT_ARCHITECTURE = 'architecture'; -exports.INPUT_JAVA_PACKAGE = 'java-package'; -exports.INPUT_DISTRIBUTION = 'distribution'; -exports.INPUT_JDK_FILE = 'jdkFile'; -exports.INPUT_CHECK_LATEST = 'check-latest'; -exports.INPUT_SERVER_ID = 'server-id'; -exports.INPUT_SERVER_USERNAME = 'server-username'; -exports.INPUT_SERVER_PASSWORD = 'server-password'; -exports.INPUT_SETTINGS_PATH = 'settings-path'; -exports.INPUT_OVERWRITE_SETTINGS = 'overwrite-settings'; -exports.INPUT_GPG_PRIVATE_KEY = 'gpg-private-key'; -exports.INPUT_GPG_PASSPHRASE = 'gpg-passphrase'; -exports.INPUT_DEFAULT_GPG_PRIVATE_KEY = undefined; -exports.INPUT_DEFAULT_GPG_PASSPHRASE = 'GPG_PASSPHRASE'; -exports.INPUT_CACHE = 'cache'; -exports.INPUT_JOB_STATUS = 'job-status'; -exports.STATE_GPG_PRIVATE_KEY_FINGERPRINT = 'gpg-private-key-fingerprint'; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.STATE_GPG_PRIVATE_KEY_FINGERPRINT = exports.INPUT_JOB_STATUS = exports.INPUT_CACHE = exports.INPUT_DEFAULT_GPG_PASSPHRASE = exports.INPUT_DEFAULT_GPG_PRIVATE_KEY = exports.INPUT_GPG_PASSPHRASE = exports.INPUT_GPG_PRIVATE_KEY = exports.INPUT_OVERWRITE_SETTINGS = exports.INPUT_SETTINGS_PATH = exports.INPUT_SERVER_PASSWORD = exports.INPUT_SERVER_USERNAME = exports.INPUT_SERVER_ID = exports.INPUT_CHECK_LATEST = exports.INPUT_JDK_FILE = exports.INPUT_DISTRIBUTION = exports.INPUT_JAVA_PACKAGE = exports.INPUT_ARCHITECTURE = exports.INPUT_JAVA_VERSION = exports.MACOS_JAVA_CONTENT_POSTFIX = void 0; +exports.MACOS_JAVA_CONTENT_POSTFIX = 'Contents/Home'; +exports.INPUT_JAVA_VERSION = 'java-version'; +exports.INPUT_ARCHITECTURE = 'architecture'; +exports.INPUT_JAVA_PACKAGE = 'java-package'; +exports.INPUT_DISTRIBUTION = 'distribution'; +exports.INPUT_JDK_FILE = 'jdkFile'; +exports.INPUT_CHECK_LATEST = 'check-latest'; +exports.INPUT_SERVER_ID = 'server-id'; +exports.INPUT_SERVER_USERNAME = 'server-username'; +exports.INPUT_SERVER_PASSWORD = 'server-password'; +exports.INPUT_SETTINGS_PATH = 'settings-path'; +exports.INPUT_OVERWRITE_SETTINGS = 'overwrite-settings'; +exports.INPUT_GPG_PRIVATE_KEY = 'gpg-private-key'; +exports.INPUT_GPG_PASSPHRASE = 'gpg-passphrase'; +exports.INPUT_DEFAULT_GPG_PRIVATE_KEY = undefined; +exports.INPUT_DEFAULT_GPG_PASSPHRASE = 'GPG_PASSPHRASE'; +exports.INPUT_CACHE = 'cache'; +exports.INPUT_JOB_STATUS = 'job-status'; +exports.STATE_GPG_PRIVATE_KEY_FINGERPRINT = 'gpg-private-key-fingerprint'; /***/ }), @@ -56911,7 +54097,86 @@ module.exports = valid /* 717 */, /* 718 */, /* 719 */, -/* 720 */, +/* 720 */ +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getSpanContext = exports.setSpanContext = exports.deleteSpan = exports.setSpan = exports.getSpan = void 0; +var context_1 = __webpack_require__(132); +var NonRecordingSpan_1 = __webpack_require__(437); +/** + * span key + */ +var SPAN_KEY = context_1.createContextKey('OpenTelemetry Context Key SPAN'); +/** + * Return the span if one exists + * + * @param context context to get span from + */ +function getSpan(context) { + return context.getValue(SPAN_KEY) || undefined; +} +exports.getSpan = getSpan; +/** + * Set the span on a context + * + * @param context context to use as parent + * @param span span to set active + */ +function setSpan(context, span) { + return context.setValue(SPAN_KEY, span); +} +exports.setSpan = setSpan; +/** + * Remove current span stored in the context + * + * @param context context to delete span from + */ +function deleteSpan(context) { + return context.deleteValue(SPAN_KEY); +} +exports.deleteSpan = deleteSpan; +/** + * Wrap span context in a NoopSpan and set as span in a new + * context + * + * @param context context to set active span on + * @param spanContext span context to be wrapped + */ +function setSpanContext(context, spanContext) { + return setSpan(context, new NonRecordingSpan_1.NonRecordingSpan(spanContext)); +} +exports.setSpanContext = setSpanContext; +/** + * Get the span context of the span if it exists. + * + * @param context context to get values from + */ +function getSpanContext(context) { + var _a; + return (_a = getSpan(context)) === null || _a === void 0 ? void 0 : _a.spanContext(); +} +exports.getSpanContext = getSpanContext; +//# sourceMappingURL=context-utils.js.map + +/***/ }), /* 721 */, /* 722 */ /***/ (function(module) { @@ -56968,343 +54233,9 @@ module.exports = bytesToUuid; /***/ }), -/* 725 */ -/***/ (function(module) { - -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ -/* global global, define, System, Reflect, Promise */ -var __extends; -var __assign; -var __rest; -var __decorate; -var __param; -var __metadata; -var __awaiter; -var __generator; -var __exportStar; -var __values; -var __read; -var __spread; -var __spreadArrays; -var __spreadArray; -var __await; -var __asyncGenerator; -var __asyncDelegator; -var __asyncValues; -var __makeTemplateObject; -var __importStar; -var __importDefault; -var __classPrivateFieldGet; -var __classPrivateFieldSet; -var __createBinding; -(function (factory) { - var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; - if (typeof define === "function" && define.amd) { - define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); }); - } - else if ( true && typeof module.exports === "object") { - factory(createExporter(root, createExporter(module.exports))); - } - else { - factory(createExporter(root)); - } - function createExporter(exports, previous) { - if (exports !== root) { - if (typeof Object.create === "function") { - Object.defineProperty(exports, "__esModule", { value: true }); - } - else { - exports.__esModule = true; - } - } - return function (id, v) { return exports[id] = previous ? previous(id, v) : v; }; - } -}) -(function (exporter) { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - - __extends = function (d, b) { - if (typeof b !== "function" && b !== null) - throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - - __rest = function (s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) - t[p[i]] = s[p[i]]; - } - return t; - }; - - __decorate = function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; - }; - - __param = function (paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } - }; - - __metadata = function (metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); - }; - - __awaiter = function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - - __generator = function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } - }; - - __exportStar = function(m, o) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); - }; - - __createBinding = Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); - }) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; - }); - - __values = function (o) { - var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; - if (m) return m.call(o); - if (o && typeof o.length === "number") return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; - throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); - }; - - __read = function (o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; - }; - - /** @deprecated */ - __spread = function () { - for (var ar = [], i = 0; i < arguments.length; i++) - ar = ar.concat(__read(arguments[i])); - return ar; - }; - - /** @deprecated */ - __spreadArrays = function () { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; - }; - - __spreadArray = function (to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || from); - }; - - __await = function (v) { - return this instanceof __await ? (this.v = v, this) : new __await(v); - }; - - __asyncGenerator = function (thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; - function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } - function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } - function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } - function fulfill(value) { resume("next", value); } - function reject(value) { resume("throw", value); } - function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } - }; - - __asyncDelegator = function (o) { - var i, p; - return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; - function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } - }; - - __asyncValues = function (o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } - }; - - __makeTemplateObject = function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; - }; - - var __setModuleDefault = Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - }) : function(o, v) { - o["default"] = v; - }; - - __importStar = function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; - }; - - __importDefault = function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; - }; - - __classPrivateFieldGet = function (receiver, state, kind, f) { - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); - return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); - }; - - __classPrivateFieldSet = function (receiver, state, value, kind, f) { - if (kind === "m") throw new TypeError("Private method is not writable"); - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); - return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; - }; - - exporter("__extends", __extends); - exporter("__assign", __assign); - exporter("__rest", __rest); - exporter("__decorate", __decorate); - exporter("__param", __param); - exporter("__metadata", __metadata); - exporter("__awaiter", __awaiter); - exporter("__generator", __generator); - exporter("__exportStar", __exportStar); - exporter("__createBinding", __createBinding); - exporter("__values", __values); - exporter("__read", __read); - exporter("__spread", __spread); - exporter("__spreadArrays", __spreadArrays); - exporter("__spreadArray", __spreadArray); - exporter("__await", __await); - exporter("__asyncGenerator", __asyncGenerator); - exporter("__asyncDelegator", __asyncDelegator); - exporter("__asyncValues", __asyncValues); - exporter("__makeTemplateObject", __makeTemplateObject); - exporter("__importStar", __importStar); - exporter("__importDefault", __importDefault); - exporter("__classPrivateFieldGet", __classPrivateFieldGet); - exporter("__classPrivateFieldSet", __classPrivateFieldSet); -}); - - -/***/ }), +/* 725 */, /* 726 */, -/* 727 */ -/***/ (function(__unusedmodule, exports) { - -"use strict"; - -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=Event.js.map - -/***/ }), +/* 727 */, /* 728 */ /***/ (function(__unusedmodule, exports) { @@ -58218,77 +55149,7 @@ module.exports = function(dst, src) { /***/ }), -/* 767 */ -/***/ (function(__unusedmodule, exports, __webpack_require__) { - -"use strict"; - -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.NoopSpan = void 0; -var spancontext_utils_1 = __webpack_require__(629); -/** - * The NoopSpan is the default {@link Span} that is used when no Span - * implementation is available. All operations are no-op including context - * propagation. - */ -var NoopSpan = /** @class */ (function () { - function NoopSpan(_spanContext) { - if (_spanContext === void 0) { _spanContext = spancontext_utils_1.INVALID_SPAN_CONTEXT; } - this._spanContext = _spanContext; - } - // Returns a SpanContext. - NoopSpan.prototype.context = function () { - return this._spanContext; - }; - // By default does nothing - NoopSpan.prototype.setAttribute = function (_key, _value) { - return this; - }; - // By default does nothing - NoopSpan.prototype.setAttributes = function (_attributes) { - return this; - }; - // By default does nothing - NoopSpan.prototype.addEvent = function (_name, _attributes) { - return this; - }; - // By default does nothing - NoopSpan.prototype.setStatus = function (_status) { - return this; - }; - // By default does nothing - NoopSpan.prototype.updateName = function (_name) { - return this; - }; - // By default does nothing - NoopSpan.prototype.end = function (_endTime) { }; - // isRecording always returns false for noopSpan. - NoopSpan.prototype.isRecording = function () { - return false; - }; - // By default does nothing - NoopSpan.prototype.recordException = function (_exception, _time) { }; - return NoopSpan; -}()); -exports.NoopSpan = NoopSpan; -//# sourceMappingURL=NoopSpan.js.map - -/***/ }), +/* 767 */, /* 768 */ /***/ (function(module, __unusedexports, __webpack_require__) { @@ -59076,7 +55937,209 @@ Object.defineProperty(exports, "__esModule", { value: true }); //# sourceMappingURL=Sampler.js.map /***/ }), -/* 782 */, +/* 782 */ +/***/ (function(module, __unusedexports, __webpack_require__) { + +"use strict"; + + +const conversions = __webpack_require__(149); +const utils = __webpack_require__(649); +const Impl = __webpack_require__(256); + +const impl = utils.implSymbol; + +function URL(url) { + if (!this || this[impl] || !(this instanceof URL)) { + throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function."); + } + if (arguments.length < 1) { + throw new TypeError("Failed to construct 'URL': 1 argument required, but only " + arguments.length + " present."); + } + const args = []; + for (let i = 0; i < arguments.length && i < 2; ++i) { + args[i] = arguments[i]; + } + args[0] = conversions["USVString"](args[0]); + if (args[1] !== undefined) { + args[1] = conversions["USVString"](args[1]); + } + + module.exports.setup(this, args); +} + +URL.prototype.toJSON = function toJSON() { + if (!this || !module.exports.is(this)) { + throw new TypeError("Illegal invocation"); + } + const args = []; + for (let i = 0; i < arguments.length && i < 0; ++i) { + args[i] = arguments[i]; + } + return this[impl].toJSON.apply(this[impl], args); +}; +Object.defineProperty(URL.prototype, "href", { + get() { + return this[impl].href; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].href = V; + }, + enumerable: true, + configurable: true +}); + +URL.prototype.toString = function () { + if (!this || !module.exports.is(this)) { + throw new TypeError("Illegal invocation"); + } + return this.href; +}; + +Object.defineProperty(URL.prototype, "origin", { + get() { + return this[impl].origin; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "protocol", { + get() { + return this[impl].protocol; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].protocol = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "username", { + get() { + return this[impl].username; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].username = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "password", { + get() { + return this[impl].password; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].password = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "host", { + get() { + return this[impl].host; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].host = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "hostname", { + get() { + return this[impl].hostname; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].hostname = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "port", { + get() { + return this[impl].port; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].port = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "pathname", { + get() { + return this[impl].pathname; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].pathname = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "search", { + get() { + return this[impl].search; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].search = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "hash", { + get() { + return this[impl].hash; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].hash = V; + }, + enumerable: true, + configurable: true +}); + + +module.exports = { + is(obj) { + return !!obj && obj[impl] instanceof Impl.implementation; + }, + create(constructorArgs, privateData) { + let obj = Object.create(URL.prototype); + this.setup(obj, constructorArgs, privateData); + return obj; + }, + setup(obj, constructorArgs, privateData) { + if (!privateData) privateData = {}; + privateData.wrapper = obj; + + obj[impl] = new Impl.implementation(constructorArgs, privateData); + obj[impl][utils.wrapperSymbol] = obj; + }, + interface: URL, + expose: { + Window: { URL: URL }, + Worker: { URL: URL } + } +}; + + + +/***/ }), /* 783 */, /* 784 */, /* 785 */, @@ -59094,6 +56157,7 @@ var http = __webpack_require__(605); var https = __webpack_require__(211); var parseUrl = __webpack_require__(835).parse; var fs = __webpack_require__(747); +var Stream = __webpack_require__(794).Stream; var mime = __webpack_require__(779); var asynckit = __webpack_require__(334); var populate = __webpack_require__(766); @@ -59189,8 +56253,8 @@ FormData.prototype._trackLength = function(header, value, options) { Buffer.byteLength(header) + FormData.LINE_BREAK.length; - // empty or either doesn't have path or not an http response - if (!value || ( !value.path && !(value.readable && value.hasOwnProperty('httpVersion')) )) { + // empty or either doesn't have path or not an http response or not a stream + if (!value || ( !value.path && !(value.readable && value.hasOwnProperty('httpVersion')) && !(value instanceof Stream))) { return; } @@ -59545,13 +56609,15 @@ FormData.prototype.submit = function(params, cb) { // get content length and fire away this.getLength(function(err, length) { - if (err) { + if (err && err !== 'Unknown stream') { this._error(err); return; } // add content length - request.setHeader('Content-Length', length); + if (length) { + request.setHeader('Content-Length', length); + } this.pipe(request); if (cb) { @@ -59666,74 +56732,7 @@ FormData.prototype.toString = function () { /***/ }), -/* 792 */ -/***/ (function(__unusedmodule, exports, __webpack_require__) { - -"use strict"; - -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.baggageEntryMetadataFromString = exports.createBaggage = void 0; -var baggage_1 = __webpack_require__(599); -var symbol_1 = __webpack_require__(561); -__exportStar(__webpack_require__(938), exports); -__exportStar(__webpack_require__(646), exports); -/** - * Create a new Baggage with optional entries - * - * @param entries An array of baggage entries the new baggage should contain - */ -function createBaggage(entries) { - if (entries === void 0) { entries = {}; } - return new baggage_1.BaggageImpl(new Map(Object.entries(entries))); -} -exports.createBaggage = createBaggage; -/** - * Create a serializable BaggageEntryMetadata object from a string. - * - * @param str string metadata. Format is currently not defined by the spec and has no special meaning. - * - */ -function baggageEntryMetadataFromString(str) { - if (typeof str !== 'string') { - // @TODO log diagnostic - str = ''; - } - return { - __TYPE__: symbol_1.baggageEntryMetadataSymbol, - toString: function () { - return str; - }, - }; -} -exports.baggageEntryMetadataFromString = baggageEntryMetadataFromString; -//# sourceMappingURL=index.js.map - -/***/ }), +/* 792 */, /* 793 */, /* 794 */ /***/ (function(module) { @@ -60377,7 +57376,7 @@ var __createBinding; ar[i] = from[i]; } } - return to.concat(ar || from); + return to.concat(ar || Array.prototype.slice.call(from)); }; __await = function (v) { @@ -60607,30 +57606,7 @@ module.exports = require("url"); /* 836 */, /* 837 */, /* 838 */, -/* 839 */ -/***/ (function(__unusedmodule, exports) { - -"use strict"; - -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=TimedEvent.js.map - -/***/ }), +/* 839 */, /* 840 */, /* 841 */, /* 842 */, @@ -60665,30 +57641,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); /* 848 */, /* 849 */, /* 850 */, -/* 851 */ -/***/ (function(__unusedmodule, exports) { - -"use strict"; - -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=link_context.js.map - -/***/ }), +/* 851 */, /* 852 */ /***/ (function(module, __unusedexports, __webpack_require__) { @@ -61217,7 +58170,7 @@ var __createBinding; ar[i] = from[i]; } } - return to.concat(ar || from); + return to.concat(ar || Array.prototype.slice.call(from)); }; __await = function (v) { @@ -61363,9 +58316,11 @@ module.exports = compare */ Object.defineProperty(exports, "__esModule", { value: true }); exports.TraceAPI = void 0; +var global_utils_1 = __webpack_require__(525); var ProxyTracerProvider_1 = __webpack_require__(394); var spancontext_utils_1 = __webpack_require__(629); -var global_utils_1 = __webpack_require__(525); +var context_utils_1 = __webpack_require__(720); +var diag_1 = __webpack_require__(118); var API_NAME = 'trace'; /** * Singleton object which represents the entry point to the OpenTelemetry Tracing API @@ -61374,7 +58329,13 @@ var TraceAPI = /** @class */ (function () { /** Empty private constructor prevents end users from constructing a new instance of the API */ function TraceAPI() { this._proxyTracerProvider = new ProxyTracerProvider_1.ProxyTracerProvider(); + this.wrapSpanContext = spancontext_utils_1.wrapSpanContext; this.isSpanContextValid = spancontext_utils_1.isSpanContextValid; + this.deleteSpan = context_utils_1.deleteSpan; + this.getSpan = context_utils_1.getSpan; + this.getSpanContext = context_utils_1.getSpanContext; + this.setSpan = context_utils_1.setSpan; + this.setSpanContext = context_utils_1.setSpanContext; } /** Get the singleton instance of the Trace API */ TraceAPI.getInstance = function () { @@ -61384,12 +58345,16 @@ var TraceAPI = /** @class */ (function () { return this._instance; }; /** - * Set the current global tracer. Returns the initialized global tracer provider + * Set the current global tracer. + * + * @returns true if the tracer provider was successfully registered, else false */ TraceAPI.prototype.setGlobalTracerProvider = function (provider) { - this._proxyTracerProvider.setDelegate(provider); - global_utils_1.registerGlobal(API_NAME, this._proxyTracerProvider); - return this._proxyTracerProvider; + var success = global_utils_1.registerGlobal(API_NAME, this._proxyTracerProvider, diag_1.DiagAPI.instance()); + if (success) { + this._proxyTracerProvider.setDelegate(provider); + } + return success; }; /** * Returns the global tracer provider. @@ -61405,7 +58370,7 @@ var TraceAPI = /** @class */ (function () { }; /** Remove the global tracer provider */ TraceAPI.prototype.disable = function () { - global_utils_1.unregisterGlobal(API_NAME); + global_utils_1.unregisterGlobal(API_NAME, diag_1.DiagAPI.instance()); this._proxyTracerProvider = new ProxyTracerProvider_1.ProxyTracerProvider(); }; return TraceAPI; @@ -61520,7 +58485,30 @@ module.exports = (versions, range, options) => { /***/ }), /* 878 */, /* 879 */, -/* 880 */, +/* 880 */ +/***/ (function(__unusedmodule, exports) { + +"use strict"; + +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=types.js.map + +/***/ }), /* 881 */ /***/ (function(__unusedmodule, exports) { @@ -63175,74 +60163,74 @@ function coerce (version, options) { /***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.deleteKey = exports.importKey = exports.PRIVATE_KEY_FILE = void 0; -const fs = __importStar(__webpack_require__(747)); -const path = __importStar(__webpack_require__(622)); -const io = __importStar(__webpack_require__(1)); -const exec = __importStar(__webpack_require__(986)); -const util = __importStar(__webpack_require__(322)); -exports.PRIVATE_KEY_FILE = path.join(util.getTempDir(), 'private-key.asc'); -const PRIVATE_KEY_FINGERPRINT_REGEX = /\w{40}/; -function importKey(privateKey) { - return __awaiter(this, void 0, void 0, function* () { - fs.writeFileSync(exports.PRIVATE_KEY_FILE, privateKey, { - encoding: 'utf-8', - flag: 'w' - }); - let output = ''; - const options = { - silent: true, - listeners: { - stdout: (data) => { - output += data.toString(); - } - } - }; - yield exec.exec('gpg', ['--batch', '--import-options', 'import-show', '--import', exports.PRIVATE_KEY_FILE], options); - yield io.rmRF(exports.PRIVATE_KEY_FILE); - const match = output.match(PRIVATE_KEY_FINGERPRINT_REGEX); - return match && match[0]; - }); -} -exports.importKey = importKey; -function deleteKey(keyFingerprint) { - return __awaiter(this, void 0, void 0, function* () { - yield exec.exec('gpg', ['--batch', '--yes', '--delete-secret-and-public-key', keyFingerprint], { - silent: true - }); - }); -} -exports.deleteKey = deleteKey; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.deleteKey = exports.importKey = exports.PRIVATE_KEY_FILE = void 0; +const fs = __importStar(__webpack_require__(747)); +const path = __importStar(__webpack_require__(622)); +const io = __importStar(__webpack_require__(1)); +const exec = __importStar(__webpack_require__(986)); +const util = __importStar(__webpack_require__(322)); +exports.PRIVATE_KEY_FILE = path.join(util.getTempDir(), 'private-key.asc'); +const PRIVATE_KEY_FINGERPRINT_REGEX = /\w{40}/; +function importKey(privateKey) { + return __awaiter(this, void 0, void 0, function* () { + fs.writeFileSync(exports.PRIVATE_KEY_FILE, privateKey, { + encoding: 'utf-8', + flag: 'w' + }); + let output = ''; + const options = { + silent: true, + listeners: { + stdout: (data) => { + output += data.toString(); + } + } + }; + yield exec.exec('gpg', ['--batch', '--import-options', 'import-show', '--import', exports.PRIVATE_KEY_FILE], options); + yield io.rmRF(exports.PRIVATE_KEY_FILE); + const match = output.match(PRIVATE_KEY_FINGERPRINT_REGEX); + return match && match[0]; + }); +} +exports.importKey = importKey; +function deleteKey(keyFingerprint) { + return __awaiter(this, void 0, void 0, function* () { + yield exec.exec('gpg', ['--batch', '--yes', '--delete-secret-and-public-key', keyFingerprint], { + silent: true + }); + }); +} +exports.deleteKey = deleteKey; /***/ }), @@ -63640,48 +60628,36 @@ exports.deleteKey = deleteKey; /***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; -/*! - * Copyright (c) Microsoft and contributors. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for - * license information. - * - * Azure Core LRO SDK for JavaScript - 1.0.5 - */ Object.defineProperty(exports, '__esModule', { value: true }); -var tslib = __webpack_require__(725); +var logger$1 = __webpack_require__(492); // Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. /** * When a poller is manually stopped through the `stopPolling` method, * the poller will be rejected with an instance of the PollerStoppedError. */ -var PollerStoppedError = /** @class */ (function (_super) { - tslib.__extends(PollerStoppedError, _super); - function PollerStoppedError(message) { - var _this = _super.call(this, message) || this; - _this.name = "PollerStoppedError"; - Object.setPrototypeOf(_this, PollerStoppedError.prototype); - return _this; +class PollerStoppedError extends Error { + constructor(message) { + super(message); + this.name = "PollerStoppedError"; + Object.setPrototypeOf(this, PollerStoppedError.prototype); } - return PollerStoppedError; -}(Error)); +} /** * When a poller is cancelled through the `cancelOperation` method, * the poller will be rejected with an instance of the PollerCancelledError. */ -var PollerCancelledError = /** @class */ (function (_super) { - tslib.__extends(PollerCancelledError, _super); - function PollerCancelledError(message) { - var _this = _super.call(this, message) || this; - _this.name = "PollerCancelledError"; - Object.setPrototypeOf(_this, PollerCancelledError.prototype); - return _this; +class PollerCancelledError extends Error { + constructor(message) { + super(message); + this.name = "PollerCancelledError"; + Object.setPrototypeOf(this, PollerCancelledError.prototype); } - return PollerCancelledError; -}(Error)); +} /** * A class that represents the definition of a program that polls through consecutive requests * until it reaches a state of completion. @@ -63744,7 +60720,7 @@ var PollerCancelledError = /** @class */ (function (_super) { * */ // eslint-disable-next-line no-use-before-define -var Poller = /** @class */ (function () { +class Poller { /** * A poller needs to be initialized by passing in at least the basic properties of the `PollOperation`. * @@ -63810,19 +60786,18 @@ var Poller = /** @class */ (function () { * * @param operation - Must contain the basic properties of `PollOperation`. */ - function Poller(operation) { - var _this = this; + constructor(operation) { this.stopped = true; this.pollProgressCallbacks = []; this.operation = operation; - this.promise = new Promise(function (resolve, reject) { - _this.resolve = resolve; - _this.reject = reject; + this.promise = new Promise((resolve, reject) => { + this.resolve = resolve; + this.reject = reject; }); // This prevents the UnhandledPromiseRejectionWarning in node.js from being thrown. // The above warning would get thrown if `poller.poll` is called, it returns an error, // and pullUntilDone did not have a .catch or await try/catch on it's return value. - this.promise.catch(function () { + this.promise.catch(() => { /* intentionally blank */ }); } @@ -63831,29 +60806,15 @@ var Poller = /** @class */ (function () { * Starts a loop that will break only if the poller is done * or if the poller is stopped. */ - Poller.prototype.startPolling = function () { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - if (this.stopped) { - this.stopped = false; - } - _a.label = 1; - case 1: - if (!(!this.isStopped() && !this.isDone())) return [3 /*break*/, 4]; - return [4 /*yield*/, this.poll()]; - case 2: - _a.sent(); - return [4 /*yield*/, this.delay()]; - case 3: - _a.sent(); - return [3 /*break*/, 1]; - case 4: return [2 /*return*/]; - } - }); - }); - }; + async startPolling() { + if (this.stopped) { + this.stopped = false; + } + while (!this.isStopped() && !this.isDone()) { + await this.poll(); + await this.delay(); + } + } /** * @internal * pollOnce does one polling, by calling to the update method of the underlying @@ -63863,44 +60824,31 @@ var Poller = /** @class */ (function () { * * @param options - Optional properties passed to the operation's update method. */ - Poller.prototype.pollOnce = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, e_1; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _b.trys.push([0, 3, , 4]); - if (!!this.isDone()) return [3 /*break*/, 2]; - _a = this; - return [4 /*yield*/, this.operation.update({ - abortSignal: options.abortSignal, - fireProgress: this.fireProgress.bind(this) - })]; - case 1: - _a.operation = _b.sent(); - if (this.isDone() && this.resolve) { - // If the poller has finished polling, this means we now have a result. - // However, it can be the case that TResult is instantiated to void, so - // we are not expecting a result anyway. To assert that we might not - // have a result eventually after finishing polling, we cast the result - // to TResult. - this.resolve(this.operation.state.result); - } - _b.label = 2; - case 2: return [3 /*break*/, 4]; - case 3: - e_1 = _b.sent(); - this.operation.state.error = e_1; - if (this.reject) { - this.reject(e_1); - } - throw e_1; - case 4: return [2 /*return*/]; + async pollOnce(options = {}) { + try { + if (!this.isDone()) { + this.operation = await this.operation.update({ + abortSignal: options.abortSignal, + fireProgress: this.fireProgress.bind(this) + }); + if (this.isDone() && this.resolve) { + // If the poller has finished polling, this means we now have a result. + // However, it can be the case that TResult is instantiated to void, so + // we are not expecting a result anyway. To assert that we might not + // have a result eventually after finishing polling, we cast the result + // to TResult. + this.resolve(this.operation.state.result); } - }); - }); - }; + } + } + catch (e) { + this.operation.state.error = e; + if (this.reject) { + this.reject(e); + } + throw e; + } + } /** * @internal * fireProgress calls the functions passed in via onProgress the method of the poller. @@ -63910,36 +60858,22 @@ var Poller = /** @class */ (function () { * * @param state - The current operation state. */ - Poller.prototype.fireProgress = function (state) { - for (var _i = 0, _a = this.pollProgressCallbacks; _i < _a.length; _i++) { - var callback = _a[_i]; + fireProgress(state) { + for (const callback of this.pollProgressCallbacks) { callback(state); } - }; + } /** * @internal * Invokes the underlying operation's cancel method, and rejects the * pollUntilDone promise. */ - Poller.prototype.cancelOnce = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = this; - return [4 /*yield*/, this.operation.cancel(options)]; - case 1: - _a.operation = _b.sent(); - if (this.reject) { - this.reject(new PollerCancelledError("Poller cancelled")); - } - return [2 /*return*/]; - } - }); - }); - }; + async cancelOnce(options = {}) { + this.operation = await this.operation.cancel(options); + if (this.reject) { + this.reject(new PollerCancelledError("Poller cancelled")); + } + } /** * Returns a promise that will resolve once a single polling request finishes. * It does this by calling the update method of the Poller's operation. @@ -63948,68 +60882,61 @@ var Poller = /** @class */ (function () { * * @param options - Optional properties passed to the operation's update method. */ - Poller.prototype.poll = function (options) { - var _this = this; - if (options === void 0) { options = {}; } + poll(options = {}) { if (!this.pollOncePromise) { this.pollOncePromise = this.pollOnce(options); - var clearPollOncePromise = function () { - _this.pollOncePromise = undefined; + const clearPollOncePromise = () => { + this.pollOncePromise = undefined; }; this.pollOncePromise.then(clearPollOncePromise, clearPollOncePromise).catch(this.reject); } return this.pollOncePromise; - }; + } /** * Returns a promise that will resolve once the underlying operation is completed. */ - Poller.prototype.pollUntilDone = function () { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - if (this.stopped) { - this.startPolling().catch(this.reject); - } - return [2 /*return*/, this.promise]; - }); - }); - }; + async pollUntilDone() { + if (this.stopped) { + this.startPolling().catch(this.reject); + } + return this.promise; + } /** * Invokes the provided callback after each polling is completed, * sending the current state of the poller's operation. * * It returns a method that can be used to stop receiving updates on the given callback function. */ - Poller.prototype.onProgress = function (callback) { - var _this = this; + onProgress(callback) { this.pollProgressCallbacks.push(callback); - return function () { - _this.pollProgressCallbacks = _this.pollProgressCallbacks.filter(function (c) { return c !== callback; }); + return () => { + this.pollProgressCallbacks = this.pollProgressCallbacks.filter((c) => c !== callback); }; - }; + } /** * Returns true if the poller has finished polling. */ - Poller.prototype.isDone = function () { - var state = this.operation.state; + isDone() { + const state = this.operation.state; return Boolean(state.isCompleted || state.isCancelled || state.error); - }; + } /** * Stops the poller from continuing to poll. */ - Poller.prototype.stopPolling = function () { + stopPolling() { if (!this.stopped) { this.stopped = true; if (this.reject) { this.reject(new PollerStoppedError("This poller is already stopped")); } } - }; + } /** * Returns true if the poller is stopped. */ - Poller.prototype.isStopped = function () { + isStopped() { return this.stopped; - }; + } /** * Attempts to cancel the underlying operation. * @@ -64019,8 +60946,7 @@ var Poller = /** @class */ (function () { * * @param options - Optional properties passed to the operation's update method. */ - Poller.prototype.cancelOperation = function (options) { - if (options === void 0) { options = {}; } + cancelOperation(options = {}) { if (!this.stopped) { this.stopped = true; } @@ -64031,7 +60957,7 @@ var Poller = /** @class */ (function () { throw new Error("A cancel request is currently pending"); } return this.cancelPromise; - }; + } /** * Returns the state of the operation. * @@ -64080,29 +61006,379 @@ var Poller = /** @class */ (function () { * `../test/utils/testPoller.ts` * and look for the getOperationState implementation. */ - Poller.prototype.getOperationState = function () { + getOperationState() { return this.operation.state; - }; + } /** * Returns the result value of the operation, * regardless of the state of the poller. * It can return undefined or an incomplete form of the final TResult value * depending on the implementation. */ - Poller.prototype.getResult = function () { - var state = this.operation.state; + getResult() { + const state = this.operation.state; return state.result; - }; + } /** * Returns a serialized version of the poller's operation * by invoking the operation's toString method. */ - Poller.prototype.toString = function () { + toString() { return this.operation.toString(); - }; - return Poller; -}()); + } +} +// Copyright (c) Microsoft Corporation. +/** + * The `@azure/logger` configuration for this package. + * @internal + */ +const logger = logger$1.createClientLogger("core-lro"); + +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +/** + * Detects where the continuation token is and returns it. Notice that azure-asyncoperation + * must be checked first before the other location headers because there are scenarios + * where both azure-asyncoperation and location could be present in the same response but + * azure-asyncoperation should be the one to use for polling. + */ +function getPollingUrl(rawResponse, defaultPath) { + var _a, _b, _c; + return ((_c = (_b = (_a = getAzureAsyncOperation(rawResponse)) !== null && _a !== void 0 ? _a : getLocation(rawResponse)) !== null && _b !== void 0 ? _b : getOperationLocation(rawResponse)) !== null && _c !== void 0 ? _c : defaultPath); +} +function getLocation(rawResponse) { + return rawResponse.headers["location"]; +} +function getOperationLocation(rawResponse) { + return rawResponse.headers["operation-location"]; +} +function getAzureAsyncOperation(rawResponse) { + return rawResponse.headers["azure-asyncoperation"]; +} +function inferLroMode(requestPath, requestMethod, rawResponse) { + if (getAzureAsyncOperation(rawResponse) !== undefined) { + return { + mode: "AzureAsync", + resourceLocation: requestMethod === "PUT" + ? requestPath + : requestMethod === "POST" + ? getLocation(rawResponse) + : undefined + }; + } + else if (getLocation(rawResponse) !== undefined || + getOperationLocation(rawResponse) !== undefined) { + return { + mode: "Location" + }; + } + else if (["PUT", "PATCH"].includes(requestMethod)) { + return { + mode: "Body" + }; + } + return {}; +} +class SimpleRestError extends Error { + constructor(message, statusCode) { + super(message); + this.name = "RestError"; + this.statusCode = statusCode; + Object.setPrototypeOf(this, SimpleRestError.prototype); + } +} +function isUnexpectedInitialResponse(rawResponse) { + const code = rawResponse.statusCode; + if (![203, 204, 202, 201, 200, 500].includes(code)) { + throw new SimpleRestError(`Received unexpected HTTP status code ${code} in the initial response. This may indicate a server issue.`, code); + } + return false; +} +function isUnexpectedPollingResponse(rawResponse) { + const code = rawResponse.statusCode; + if (![202, 201, 200, 500].includes(code)) { + throw new SimpleRestError(`Received unexpected HTTP status code ${code} while polling. This may indicate a server issue.`, code); + } + return false; +} + +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +const successStates = ["succeeded"]; +const failureStates = ["failed", "canceled", "cancelled"]; + +// Copyright (c) Microsoft Corporation. +function getResponseStatus(rawResponse) { + var _a; + const { status } = (_a = rawResponse.body) !== null && _a !== void 0 ? _a : {}; + return typeof status === "string" ? status.toLowerCase() : "succeeded"; +} +function isAzureAsyncPollingDone(rawResponse) { + const state = getResponseStatus(rawResponse); + if (isUnexpectedPollingResponse(rawResponse) || failureStates.includes(state)) { + throw new Error(`The long running operation has failed. The provisioning state: ${state}.`); + } + return successStates.includes(state); +} +/** + * Sends a request to the URI of the provisioned resource if needed. + */ +async function sendFinalRequest(lro, resourceLocation, lroResourceLocationConfig) { + switch (lroResourceLocationConfig) { + case "original-uri": + return lro.sendPollRequest(lro.requestPath); + case "azure-async-operation": + return undefined; + case "location": + default: + return lro.sendPollRequest(resourceLocation !== null && resourceLocation !== void 0 ? resourceLocation : lro.requestPath); + } +} +function processAzureAsyncOperationResult(lro, resourceLocation, lroResourceLocationConfig) { + return (response) => { + if (isAzureAsyncPollingDone(response.rawResponse)) { + if (resourceLocation === undefined) { + return Object.assign(Object.assign({}, response), { done: true }); + } + else { + return Object.assign(Object.assign({}, response), { done: false, next: async () => { + const finalResponse = await sendFinalRequest(lro, resourceLocation, lroResourceLocationConfig); + return Object.assign(Object.assign({}, (finalResponse !== null && finalResponse !== void 0 ? finalResponse : response)), { done: true }); + } }); + } + } + return Object.assign(Object.assign({}, response), { done: false }); + }; +} + +// Copyright (c) Microsoft Corporation. +function getProvisioningState(rawResponse) { + var _a, _b; + const { properties, provisioningState } = (_a = rawResponse.body) !== null && _a !== void 0 ? _a : {}; + const state = (_b = properties === null || properties === void 0 ? void 0 : properties.provisioningState) !== null && _b !== void 0 ? _b : provisioningState; + return typeof state === "string" ? state.toLowerCase() : "succeeded"; +} +function isBodyPollingDone(rawResponse) { + const state = getProvisioningState(rawResponse); + if (isUnexpectedPollingResponse(rawResponse) || failureStates.includes(state)) { + throw new Error(`The long running operation has failed. The provisioning state: ${state}.`); + } + return successStates.includes(state); +} +/** + * Creates a polling strategy based on BodyPolling which uses the provisioning state + * from the result to determine the current operation state + */ +function processBodyPollingOperationResult(response) { + return Object.assign(Object.assign({}, response), { done: isBodyPollingDone(response.rawResponse) }); +} + +// Copyright (c) Microsoft Corporation. +function isLocationPollingDone(rawResponse) { + return !isUnexpectedPollingResponse(rawResponse) && rawResponse.statusCode !== 202; +} +function processLocationPollingOperationResult(response) { + return Object.assign(Object.assign({}, response), { done: isLocationPollingDone(response.rawResponse) }); +} + +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +function processPassthroughOperationResult(response) { + return Object.assign(Object.assign({}, response), { done: true }); +} + +// Copyright (c) Microsoft Corporation. +/** + * creates a stepping function that maps an LRO state to another. + */ +function createGetLroStatusFromResponse(lroPrimitives, config, lroResourceLocationConfig) { + switch (config.mode) { + case "AzureAsync": { + return processAzureAsyncOperationResult(lroPrimitives, config.resourceLocation, lroResourceLocationConfig); + } + case "Location": { + return processLocationPollingOperationResult; + } + case "Body": { + return processBodyPollingOperationResult; + } + default: { + return processPassthroughOperationResult; + } + } +} +/** + * Creates a polling operation. + */ +function createPoll(lroPrimitives) { + return async (path, pollerConfig, getLroStatusFromResponse) => { + const response = await lroPrimitives.sendPollRequest(path); + const retryAfter = response.rawResponse.headers["retry-after"]; + if (retryAfter !== undefined) { + const retryAfterInMs = parseInt(retryAfter); + pollerConfig.intervalInMs = isNaN(retryAfterInMs) + ? calculatePollingIntervalFromDate(new Date(retryAfter), pollerConfig.intervalInMs) + : retryAfterInMs; + } + return getLroStatusFromResponse(response); + }; +} +function calculatePollingIntervalFromDate(retryAfterDate, defaultIntervalInMs) { + const timeNow = Math.floor(new Date().getTime()); + const retryAfterTime = retryAfterDate.getTime(); + if (timeNow < retryAfterTime) { + return retryAfterTime - timeNow; + } + return defaultIntervalInMs; +} +/** + * Creates a callback to be used to initialize the polling operation state. + * @param state - of the polling operation + * @param operationSpec - of the LRO + * @param callback - callback to be called when the operation is done + * @returns callback that initializes the state of the polling operation + */ +function createInitializeState(state, requestPath, requestMethod) { + return (response) => { + if (isUnexpectedInitialResponse(response.rawResponse)) + ; + state.initialRawResponse = response.rawResponse; + state.isStarted = true; + state.pollingURL = getPollingUrl(state.initialRawResponse, requestPath); + state.config = inferLroMode(requestPath, requestMethod, state.initialRawResponse); + /** short circuit polling if body polling is done in the initial request */ + if (state.config.mode === undefined || + (state.config.mode === "Body" && isBodyPollingDone(state.initialRawResponse))) { + state.result = response.flatResponse; + state.isCompleted = true; + } + logger.verbose(`LRO: initial state: ${JSON.stringify(state)}`); + return Boolean(state.isCompleted); + }; +} + +// Copyright (c) Microsoft Corporation. +class GenericPollOperation { + constructor(state, lro, lroResourceLocationConfig, processResult, updateState, isDone) { + this.state = state; + this.lro = lro; + this.lroResourceLocationConfig = lroResourceLocationConfig; + this.processResult = processResult; + this.updateState = updateState; + this.isDone = isDone; + } + setPollerConfig(pollerConfig) { + this.pollerConfig = pollerConfig; + } + /** + * General update function for LROPoller, the general process is as follows + * 1. Check initial operation result to determine the strategy to use + * - Strategies: Location, Azure-AsyncOperation, Original Uri + * 2. Check if the operation result has a terminal state + * - Terminal state will be determined by each strategy + * 2.1 If it is terminal state Check if a final GET request is required, if so + * send final GET request and return result from operation. If no final GET + * is required, just return the result from operation. + * - Determining what to call for final request is responsibility of each strategy + * 2.2 If it is not terminal state, call the polling operation and go to step 1 + * - Determining what to call for polling is responsibility of each strategy + * - Strategies will always use the latest URI for polling if provided otherwise + * the last known one + */ + async update(options) { + var _a, _b, _c; + const state = this.state; + let lastResponse = undefined; + if (!state.isStarted) { + const initializeState = createInitializeState(state, this.lro.requestPath, this.lro.requestMethod); + lastResponse = await this.lro.sendInitialRequest(); + initializeState(lastResponse); + } + if (!state.isCompleted) { + if (!this.poll || !this.getLroStatusFromResponse) { + if (!state.config) { + throw new Error("Bad state: LRO mode is undefined. Please check if the serialized state is well-formed."); + } + const isDone = this.isDone; + this.getLroStatusFromResponse = isDone + ? (response) => (Object.assign(Object.assign({}, response), { done: isDone(response.flatResponse, this.state) })) + : createGetLroStatusFromResponse(this.lro, state.config, this.lroResourceLocationConfig); + this.poll = createPoll(this.lro); + } + if (!state.pollingURL) { + throw new Error("Bad state: polling URL is undefined. Please check if the serialized state is well-formed."); + } + const currentState = await this.poll(state.pollingURL, this.pollerConfig, this.getLroStatusFromResponse); + logger.verbose(`LRO: polling response: ${JSON.stringify(currentState.rawResponse)}`); + if (currentState.done) { + state.result = this.processResult + ? this.processResult(currentState.flatResponse, state) + : currentState.flatResponse; + state.isCompleted = true; + } + else { + this.poll = (_a = currentState.next) !== null && _a !== void 0 ? _a : this.poll; + state.pollingURL = getPollingUrl(currentState.rawResponse, state.pollingURL); + } + lastResponse = currentState; + } + logger.verbose(`LRO: current state: ${JSON.stringify(state)}`); + if (lastResponse) { + (_b = this.updateState) === null || _b === void 0 ? void 0 : _b.call(this, state, lastResponse === null || lastResponse === void 0 ? void 0 : lastResponse.rawResponse); + } + else { + logger.error(`LRO: no response was received`); + } + (_c = options === null || options === void 0 ? void 0 : options.fireProgress) === null || _c === void 0 ? void 0 : _c.call(options, state); + return this; + } + async cancel() { + this.state.isCancelled = true; + return this; + } + /** + * Serializes the Poller operation. + */ + toString() { + return JSON.stringify({ + state: this.state + }); + } +} + +// Copyright (c) Microsoft Corporation. +function deserializeState(serializedState) { + try { + return JSON.parse(serializedState).state; + } + catch (e) { + throw new Error(`LroEngine: Unable to deserialize state: ${serializedState}`); + } +} +/** + * The LRO Engine, a class that performs polling. + */ +class LroEngine extends Poller { + constructor(lro, options) { + const { intervalInMs = 2000, resumeFrom } = options || {}; + const state = resumeFrom + ? deserializeState(resumeFrom) + : {}; + const operation = new GenericPollOperation(state, lro, options === null || options === void 0 ? void 0 : options.lroResourceLocationConfig, options === null || options === void 0 ? void 0 : options.processResult, options === null || options === void 0 ? void 0 : options.updateState, options === null || options === void 0 ? void 0 : options.isDone); + super(operation); + this.config = { intervalInMs: intervalInMs }; + operation.setPollerConfig(this.config); + } + /** + * The method used by the poller to wait before attempting to update its operation. + */ + delay() { + return new Promise((resolve) => setTimeout(() => resolve(), this.config.intervalInMs)); + } +} + +exports.LroEngine = LroEngine; exports.Poller = Poller; exports.PollerCancelledError = PollerCancelledError; exports.PollerStoppedError = PollerStoppedError; @@ -64501,160 +61777,160 @@ __exportStar(__webpack_require__(764), exports); /***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; - -/** - * @fileoverview this file provides methods handling dependency cache - */ -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.save = exports.restore = void 0; -const path_1 = __webpack_require__(622); -const os_1 = __importDefault(__webpack_require__(87)); -const cache = __importStar(__webpack_require__(692)); -const core = __importStar(__webpack_require__(470)); -const glob = __importStar(__webpack_require__(281)); -const STATE_CACHE_PRIMARY_KEY = 'cache-primary-key'; -const CACHE_MATCHED_KEY = 'cache-matched-key'; -const CACHE_KEY_PREFIX = 'setup-java'; -const supportedPackageManager = [ - { - id: 'maven', - path: [path_1.join(os_1.default.homedir(), '.m2', 'repository')], - // https://github.com/actions/cache/blob/0638051e9af2c23d10bb70fa9beffcad6cff9ce3/examples.md#java---maven - pattern: ['**/pom.xml'] - }, - { - id: 'gradle', - path: [path_1.join(os_1.default.homedir(), '.gradle', 'caches'), path_1.join(os_1.default.homedir(), '.gradle', 'wrapper')], - // https://github.com/actions/cache/blob/0638051e9af2c23d10bb70fa9beffcad6cff9ce3/examples.md#java---gradle - pattern: ['**/*.gradle*', '**/gradle-wrapper.properties'] - } -]; -function findPackageManager(id) { - const packageManager = supportedPackageManager.find(packageManager => packageManager.id === id); - if (packageManager === undefined) { - throw new Error(`unknown package manager specified: ${id}`); - } - return packageManager; -} -/** - * A function that generates a cache key to use. - * Format of the generated key will be "${{ platform }}-${{ id }}-${{ fileHash }}"". - * If there is no file matched to {@link PackageManager.path}, the generated key ends with a dash (-). - * @see {@link https://docs.github.com/en/actions/guides/caching-dependencies-to-speed-up-workflows#matching-a-cache-key|spec of cache key} - */ -function computeCacheKey(packageManager) { - return __awaiter(this, void 0, void 0, function* () { - const hash = yield glob.hashFiles(packageManager.pattern.join('\n')); - return `${CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${packageManager.id}-${hash}`; - }); -} -/** - * Restore the dependency cache - * @param id ID of the package manager, should be "maven" or "gradle" - */ -function restore(id) { - return __awaiter(this, void 0, void 0, function* () { - const packageManager = findPackageManager(id); - const primaryKey = yield computeCacheKey(packageManager); - core.debug(`primary key is ${primaryKey}`); - core.saveState(STATE_CACHE_PRIMARY_KEY, primaryKey); - if (primaryKey.endsWith('-')) { - throw new Error(`No file in ${process.cwd()} matched to [${packageManager.pattern}], make sure you have checked out the target repository`); - } - const matchedKey = yield cache.restoreCache(packageManager.path, primaryKey, [ - `${CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${id}` - ]); - if (matchedKey) { - core.saveState(CACHE_MATCHED_KEY, matchedKey); - core.info(`Cache restored from key: ${matchedKey}`); - } - else { - core.info(`${packageManager.id} cache is not found`); - } - }); -} -exports.restore = restore; -/** - * Save the dependency cache - * @param id ID of the package manager, should be "maven" or "gradle" - */ -function save(id) { - return __awaiter(this, void 0, void 0, function* () { - const packageManager = findPackageManager(id); - const matchedKey = core.getState(CACHE_MATCHED_KEY); - // Inputs are re-evaluted before the post action, so we want the original key used for restore - const primaryKey = core.getState(STATE_CACHE_PRIMARY_KEY); - if (!primaryKey) { - core.warning('Error retrieving key from state.'); - return; - } - else if (matchedKey === primaryKey) { - // no change in target directories - core.info(`Cache hit occurred on the primary key ${primaryKey}, not saving cache.`); - return; - } - try { - yield cache.saveCache(packageManager.path, primaryKey); - core.info(`Cache saved with the key: ${primaryKey}`); - } - catch (error) { - if (error.name === cache.ReserveCacheError.name) { - core.info(error.message); - } - else { - if (isProbablyGradleDaemonProblem(packageManager, error)) { - core.warning('Failed to save Gradle cache on Windows. If tar.exe reported "Permission denied", try to run Gradle with `--no-daemon` option. Refer to https://github.com/actions/cache/issues/454 for details.'); - } - throw error; - } - } - }); -} -exports.save = save; -/** - * @param packageManager the specified package manager by user - * @param error the error thrown by the saveCache - * @returns true if the given error seems related to the {@link https://github.com/actions/cache/issues/454|running Gradle Daemon issue}. - * @see {@link https://github.com/actions/cache/issues/454#issuecomment-840493935|why --no-daemon is necessary} - */ -function isProbablyGradleDaemonProblem(packageManager, error) { - if (packageManager.id !== 'gradle' || process.env['RUNNER_OS'] !== 'Windows') { - return false; - } - const message = error.message || ''; - return message.startsWith('Tar failed with error: '); -} + +/** + * @fileoverview this file provides methods handling dependency cache + */ +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.save = exports.restore = void 0; +const path_1 = __webpack_require__(622); +const os_1 = __importDefault(__webpack_require__(87)); +const cache = __importStar(__webpack_require__(692)); +const core = __importStar(__webpack_require__(470)); +const glob = __importStar(__webpack_require__(281)); +const STATE_CACHE_PRIMARY_KEY = 'cache-primary-key'; +const CACHE_MATCHED_KEY = 'cache-matched-key'; +const CACHE_KEY_PREFIX = 'setup-java'; +const supportedPackageManager = [ + { + id: 'maven', + path: [path_1.join(os_1.default.homedir(), '.m2', 'repository')], + // https://github.com/actions/cache/blob/0638051e9af2c23d10bb70fa9beffcad6cff9ce3/examples.md#java---maven + pattern: ['**/pom.xml'] + }, + { + id: 'gradle', + path: [path_1.join(os_1.default.homedir(), '.gradle', 'caches'), path_1.join(os_1.default.homedir(), '.gradle', 'wrapper')], + // https://github.com/actions/cache/blob/0638051e9af2c23d10bb70fa9beffcad6cff9ce3/examples.md#java---gradle + pattern: ['**/*.gradle*', '**/gradle-wrapper.properties'] + } +]; +function findPackageManager(id) { + const packageManager = supportedPackageManager.find(packageManager => packageManager.id === id); + if (packageManager === undefined) { + throw new Error(`unknown package manager specified: ${id}`); + } + return packageManager; +} +/** + * A function that generates a cache key to use. + * Format of the generated key will be "${{ platform }}-${{ id }}-${{ fileHash }}"". + * If there is no file matched to {@link PackageManager.path}, the generated key ends with a dash (-). + * @see {@link https://docs.github.com/en/actions/guides/caching-dependencies-to-speed-up-workflows#matching-a-cache-key|spec of cache key} + */ +function computeCacheKey(packageManager) { + return __awaiter(this, void 0, void 0, function* () { + const hash = yield glob.hashFiles(packageManager.pattern.join('\n')); + return `${CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${packageManager.id}-${hash}`; + }); +} +/** + * Restore the dependency cache + * @param id ID of the package manager, should be "maven" or "gradle" + */ +function restore(id) { + return __awaiter(this, void 0, void 0, function* () { + const packageManager = findPackageManager(id); + const primaryKey = yield computeCacheKey(packageManager); + core.debug(`primary key is ${primaryKey}`); + core.saveState(STATE_CACHE_PRIMARY_KEY, primaryKey); + if (primaryKey.endsWith('-')) { + throw new Error(`No file in ${process.cwd()} matched to [${packageManager.pattern}], make sure you have checked out the target repository`); + } + const matchedKey = yield cache.restoreCache(packageManager.path, primaryKey, [ + `${CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${id}` + ]); + if (matchedKey) { + core.saveState(CACHE_MATCHED_KEY, matchedKey); + core.info(`Cache restored from key: ${matchedKey}`); + } + else { + core.info(`${packageManager.id} cache is not found`); + } + }); +} +exports.restore = restore; +/** + * Save the dependency cache + * @param id ID of the package manager, should be "maven" or "gradle" + */ +function save(id) { + return __awaiter(this, void 0, void 0, function* () { + const packageManager = findPackageManager(id); + const matchedKey = core.getState(CACHE_MATCHED_KEY); + // Inputs are re-evaluted before the post action, so we want the original key used for restore + const primaryKey = core.getState(STATE_CACHE_PRIMARY_KEY); + if (!primaryKey) { + core.warning('Error retrieving key from state.'); + return; + } + else if (matchedKey === primaryKey) { + // no change in target directories + core.info(`Cache hit occurred on the primary key ${primaryKey}, not saving cache.`); + return; + } + try { + yield cache.saveCache(packageManager.path, primaryKey); + core.info(`Cache saved with the key: ${primaryKey}`); + } + catch (error) { + if (error.name === cache.ReserveCacheError.name) { + core.info(error.message); + } + else { + if (isProbablyGradleDaemonProblem(packageManager, error)) { + core.warning('Failed to save Gradle cache on Windows. If tar.exe reported "Permission denied", try to run Gradle with `--no-daemon` option. Refer to https://github.com/actions/cache/issues/454 for details.'); + } + throw error; + } + } + }); +} +exports.save = save; +/** + * @param packageManager the specified package manager by user + * @param error the error thrown by the saveCache + * @returns true if the given error seems related to the {@link https://github.com/actions/cache/issues/454|running Gradle Daemon issue}. + * @see {@link https://github.com/actions/cache/issues/454#issuecomment-840493935|why --no-daemon is necessary} + */ +function isProbablyGradleDaemonProblem(packageManager, error) { + if (packageManager.id !== 'gradle' || process.env['RUNNER_OS'] !== 'Windows') { + return false; + } + const message = error.message || ''; + return message.startsWith('Tar failed with error: '); +} /***/ }), @@ -64683,7 +61959,7 @@ function isProbablyGradleDaemonProblem(packageManager, error) { * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); -exports.NOOP_TEXT_MAP_PROPAGATOR = exports.NoopTextMapPropagator = void 0; +exports.NoopTextMapPropagator = void 0; /** * No-op implementations of {@link TextMapPropagator}. */ @@ -64702,7 +61978,6 @@ var NoopTextMapPropagator = /** @class */ (function () { return NoopTextMapPropagator; }()); exports.NoopTextMapPropagator = NoopTextMapPropagator; -exports.NOOP_TEXT_MAP_PROPAGATOR = new NoopTextMapPropagator(); //# sourceMappingURL=NoopTextMapPropagator.js.map /***/ }), @@ -65114,32 +62389,1312 @@ var SpanStatusCode; /* 933 */, /* 934 */, /* 935 */, -/* 936 */, -/* 937 */, -/* 938 */ -/***/ (function(__unusedmodule, exports) { +/* 936 */ +/***/ (function(module, __unusedexports, __webpack_require__) { "use strict"; + +const punycode = __webpack_require__(213); +const tr46 = __webpack_require__(361); + +const specialSchemes = { + ftp: 21, + file: null, + gopher: 70, + http: 80, + https: 443, + ws: 80, + wss: 443 +}; + +const failure = Symbol("failure"); + +function countSymbols(str) { + return punycode.ucs2.decode(str).length; +} + +function at(input, idx) { + const c = input[idx]; + return isNaN(c) ? undefined : String.fromCodePoint(c); +} + +function isASCIIDigit(c) { + return c >= 0x30 && c <= 0x39; +} + +function isASCIIAlpha(c) { + return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A); +} + +function isASCIIAlphanumeric(c) { + return isASCIIAlpha(c) || isASCIIDigit(c); +} + +function isASCIIHex(c) { + return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66); +} + +function isSingleDot(buffer) { + return buffer === "." || buffer.toLowerCase() === "%2e"; +} + +function isDoubleDot(buffer) { + buffer = buffer.toLowerCase(); + return buffer === ".." || buffer === "%2e." || buffer === ".%2e" || buffer === "%2e%2e"; +} + +function isWindowsDriveLetterCodePoints(cp1, cp2) { + return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124); +} + +function isWindowsDriveLetterString(string) { + return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === ":" || string[1] === "|"); +} + +function isNormalizedWindowsDriveLetterString(string) { + return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === ":"; +} + +function containsForbiddenHostCodePoint(string) { + return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/) !== -1; +} + +function containsForbiddenHostCodePointExcludingPercent(string) { + return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/) !== -1; +} + +function isSpecialScheme(scheme) { + return specialSchemes[scheme] !== undefined; +} + +function isSpecial(url) { + return isSpecialScheme(url.scheme); +} + +function defaultPort(scheme) { + return specialSchemes[scheme]; +} + +function percentEncode(c) { + let hex = c.toString(16).toUpperCase(); + if (hex.length === 1) { + hex = "0" + hex; + } + + return "%" + hex; +} + +function utf8PercentEncode(c) { + const buf = new Buffer(c); + + let str = ""; + + for (let i = 0; i < buf.length; ++i) { + str += percentEncode(buf[i]); + } + + return str; +} + +function utf8PercentDecode(str) { + const input = new Buffer(str); + const output = []; + for (let i = 0; i < input.length; ++i) { + if (input[i] !== 37) { + output.push(input[i]); + } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) { + output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16)); + i += 2; + } else { + output.push(input[i]); + } + } + return new Buffer(output).toString(); +} + +function isC0ControlPercentEncode(c) { + return c <= 0x1F || c > 0x7E; +} + +const extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]); +function isPathPercentEncode(c) { + return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c); +} + +const extraUserinfoPercentEncodeSet = + new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]); +function isUserinfoPercentEncode(c) { + return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c); +} + +function percentEncodeChar(c, encodeSetPredicate) { + const cStr = String.fromCodePoint(c); + + if (encodeSetPredicate(c)) { + return utf8PercentEncode(cStr); + } + + return cStr; +} + +function parseIPv4Number(input) { + let R = 10; + + if (input.length >= 2 && input.charAt(0) === "0" && input.charAt(1).toLowerCase() === "x") { + input = input.substring(2); + R = 16; + } else if (input.length >= 2 && input.charAt(0) === "0") { + input = input.substring(1); + R = 8; + } + + if (input === "") { + return 0; + } + + const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/); + if (regex.test(input)) { + return failure; + } + + return parseInt(input, R); +} + +function parseIPv4(input) { + const parts = input.split("."); + if (parts[parts.length - 1] === "") { + if (parts.length > 1) { + parts.pop(); + } + } + + if (parts.length > 4) { + return input; + } + + const numbers = []; + for (const part of parts) { + if (part === "") { + return input; + } + const n = parseIPv4Number(part); + if (n === failure) { + return input; + } + + numbers.push(n); + } + + for (let i = 0; i < numbers.length - 1; ++i) { + if (numbers[i] > 255) { + return failure; + } + } + if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) { + return failure; + } + + let ipv4 = numbers.pop(); + let counter = 0; + + for (const n of numbers) { + ipv4 += n * Math.pow(256, 3 - counter); + ++counter; + } + + return ipv4; +} + +function serializeIPv4(address) { + let output = ""; + let n = address; + + for (let i = 1; i <= 4; ++i) { + output = String(n % 256) + output; + if (i !== 4) { + output = "." + output; + } + n = Math.floor(n / 256); + } + + return output; +} + +function parseIPv6(input) { + const address = [0, 0, 0, 0, 0, 0, 0, 0]; + let pieceIndex = 0; + let compress = null; + let pointer = 0; + + input = punycode.ucs2.decode(input); + + if (input[pointer] === 58) { + if (input[pointer + 1] !== 58) { + return failure; + } + + pointer += 2; + ++pieceIndex; + compress = pieceIndex; + } + + while (pointer < input.length) { + if (pieceIndex === 8) { + return failure; + } + + if (input[pointer] === 58) { + if (compress !== null) { + return failure; + } + ++pointer; + ++pieceIndex; + compress = pieceIndex; + continue; + } + + let value = 0; + let length = 0; + + while (length < 4 && isASCIIHex(input[pointer])) { + value = value * 0x10 + parseInt(at(input, pointer), 16); + ++pointer; + ++length; + } + + if (input[pointer] === 46) { + if (length === 0) { + return failure; + } + + pointer -= length; + + if (pieceIndex > 6) { + return failure; + } + + let numbersSeen = 0; + + while (input[pointer] !== undefined) { + let ipv4Piece = null; + + if (numbersSeen > 0) { + if (input[pointer] === 46 && numbersSeen < 4) { + ++pointer; + } else { + return failure; + } + } + + if (!isASCIIDigit(input[pointer])) { + return failure; + } + + while (isASCIIDigit(input[pointer])) { + const number = parseInt(at(input, pointer)); + if (ipv4Piece === null) { + ipv4Piece = number; + } else if (ipv4Piece === 0) { + return failure; + } else { + ipv4Piece = ipv4Piece * 10 + number; + } + if (ipv4Piece > 255) { + return failure; + } + ++pointer; + } + + address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece; + + ++numbersSeen; + + if (numbersSeen === 2 || numbersSeen === 4) { + ++pieceIndex; + } + } + + if (numbersSeen !== 4) { + return failure; + } + + break; + } else if (input[pointer] === 58) { + ++pointer; + if (input[pointer] === undefined) { + return failure; + } + } else if (input[pointer] !== undefined) { + return failure; + } + + address[pieceIndex] = value; + ++pieceIndex; + } + + if (compress !== null) { + let swaps = pieceIndex - compress; + pieceIndex = 7; + while (pieceIndex !== 0 && swaps > 0) { + const temp = address[compress + swaps - 1]; + address[compress + swaps - 1] = address[pieceIndex]; + address[pieceIndex] = temp; + --pieceIndex; + --swaps; + } + } else if (compress === null && pieceIndex !== 8) { + return failure; + } + + return address; +} + +function serializeIPv6(address) { + let output = ""; + const seqResult = findLongestZeroSequence(address); + const compress = seqResult.idx; + let ignore0 = false; + + for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) { + if (ignore0 && address[pieceIndex] === 0) { + continue; + } else if (ignore0) { + ignore0 = false; + } + + if (compress === pieceIndex) { + const separator = pieceIndex === 0 ? "::" : ":"; + output += separator; + ignore0 = true; + continue; + } + + output += address[pieceIndex].toString(16); + + if (pieceIndex !== 7) { + output += ":"; + } + } + + return output; +} + +function parseHost(input, isSpecialArg) { + if (input[0] === "[") { + if (input[input.length - 1] !== "]") { + return failure; + } + + return parseIPv6(input.substring(1, input.length - 1)); + } + + if (!isSpecialArg) { + return parseOpaqueHost(input); + } + + const domain = utf8PercentDecode(input); + const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false); + if (asciiDomain === null) { + return failure; + } + + if (containsForbiddenHostCodePoint(asciiDomain)) { + return failure; + } + + const ipv4Host = parseIPv4(asciiDomain); + if (typeof ipv4Host === "number" || ipv4Host === failure) { + return ipv4Host; + } + + return asciiDomain; +} + +function parseOpaqueHost(input) { + if (containsForbiddenHostCodePointExcludingPercent(input)) { + return failure; + } + + let output = ""; + const decoded = punycode.ucs2.decode(input); + for (let i = 0; i < decoded.length; ++i) { + output += percentEncodeChar(decoded[i], isC0ControlPercentEncode); + } + return output; +} + +function findLongestZeroSequence(arr) { + let maxIdx = null; + let maxLen = 1; // only find elements > 1 + let currStart = null; + let currLen = 0; + + for (let i = 0; i < arr.length; ++i) { + if (arr[i] !== 0) { + if (currLen > maxLen) { + maxIdx = currStart; + maxLen = currLen; + } + + currStart = null; + currLen = 0; + } else { + if (currStart === null) { + currStart = i; + } + ++currLen; + } + } + + // if trailing zeros + if (currLen > maxLen) { + maxIdx = currStart; + maxLen = currLen; + } + + return { + idx: maxIdx, + len: maxLen + }; +} + +function serializeHost(host) { + if (typeof host === "number") { + return serializeIPv4(host); + } + + // IPv6 serializer + if (host instanceof Array) { + return "[" + serializeIPv6(host) + "]"; + } + + return host; +} + +function trimControlChars(url) { + return url.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g, ""); +} + +function trimTabAndNewline(url) { + return url.replace(/\u0009|\u000A|\u000D/g, ""); +} + +function shortenPath(url) { + const path = url.path; + if (path.length === 0) { + return; + } + if (url.scheme === "file" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) { + return; + } + + path.pop(); +} + +function includesCredentials(url) { + return url.username !== "" || url.password !== ""; +} + +function cannotHaveAUsernamePasswordPort(url) { + return url.host === null || url.host === "" || url.cannotBeABaseURL || url.scheme === "file"; +} + +function isNormalizedWindowsDriveLetter(string) { + return /^[A-Za-z]:$/.test(string); +} + +function URLStateMachine(input, base, encodingOverride, url, stateOverride) { + this.pointer = 0; + this.input = input; + this.base = base || null; + this.encodingOverride = encodingOverride || "utf-8"; + this.stateOverride = stateOverride; + this.url = url; + this.failure = false; + this.parseError = false; + + if (!this.url) { + this.url = { + scheme: "", + username: "", + password: "", + host: null, + port: null, + path: [], + query: null, + fragment: null, + + cannotBeABaseURL: false + }; + + const res = trimControlChars(this.input); + if (res !== this.input) { + this.parseError = true; + } + this.input = res; + } + + const res = trimTabAndNewline(this.input); + if (res !== this.input) { + this.parseError = true; + } + this.input = res; + + this.state = stateOverride || "scheme start"; + + this.buffer = ""; + this.atFlag = false; + this.arrFlag = false; + this.passwordTokenSeenFlag = false; + + this.input = punycode.ucs2.decode(this.input); + + for (; this.pointer <= this.input.length; ++this.pointer) { + const c = this.input[this.pointer]; + const cStr = isNaN(c) ? undefined : String.fromCodePoint(c); + + // exec state machine + const ret = this["parse " + this.state](c, cStr); + if (!ret) { + break; // terminate algorithm + } else if (ret === failure) { + this.failure = true; + break; + } + } +} + +URLStateMachine.prototype["parse scheme start"] = function parseSchemeStart(c, cStr) { + if (isASCIIAlpha(c)) { + this.buffer += cStr.toLowerCase(); + this.state = "scheme"; + } else if (!this.stateOverride) { + this.state = "no scheme"; + --this.pointer; + } else { + this.parseError = true; + return failure; + } + + return true; +}; + +URLStateMachine.prototype["parse scheme"] = function parseScheme(c, cStr) { + if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) { + this.buffer += cStr.toLowerCase(); + } else if (c === 58) { + if (this.stateOverride) { + if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) { + return false; + } + + if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) { + return false; + } + + if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === "file") { + return false; + } + + if (this.url.scheme === "file" && (this.url.host === "" || this.url.host === null)) { + return false; + } + } + this.url.scheme = this.buffer; + this.buffer = ""; + if (this.stateOverride) { + return false; + } + if (this.url.scheme === "file") { + if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) { + this.parseError = true; + } + this.state = "file"; + } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) { + this.state = "special relative or authority"; + } else if (isSpecial(this.url)) { + this.state = "special authority slashes"; + } else if (this.input[this.pointer + 1] === 47) { + this.state = "path or authority"; + ++this.pointer; + } else { + this.url.cannotBeABaseURL = true; + this.url.path.push(""); + this.state = "cannot-be-a-base-URL path"; + } + } else if (!this.stateOverride) { + this.buffer = ""; + this.state = "no scheme"; + this.pointer = -1; + } else { + this.parseError = true; + return failure; + } + + return true; +}; + +URLStateMachine.prototype["parse no scheme"] = function parseNoScheme(c) { + if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) { + return failure; + } else if (this.base.cannotBeABaseURL && c === 35) { + this.url.scheme = this.base.scheme; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + this.url.fragment = ""; + this.url.cannotBeABaseURL = true; + this.state = "fragment"; + } else if (this.base.scheme === "file") { + this.state = "file"; + --this.pointer; + } else { + this.state = "relative"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse special relative or authority"] = function parseSpecialRelativeOrAuthority(c) { + if (c === 47 && this.input[this.pointer + 1] === 47) { + this.state = "special authority ignore slashes"; + ++this.pointer; + } else { + this.parseError = true; + this.state = "relative"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse path or authority"] = function parsePathOrAuthority(c) { + if (c === 47) { + this.state = "authority"; + } else { + this.state = "path"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse relative"] = function parseRelative(c) { + this.url.scheme = this.base.scheme; + if (isNaN(c)) { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + } else if (c === 47) { + this.state = "relative slash"; + } else if (c === 63) { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(); + this.url.query = ""; + this.state = "query"; + } else if (c === 35) { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + this.url.fragment = ""; + this.state = "fragment"; + } else if (isSpecial(this.url) && c === 92) { + this.parseError = true; + this.state = "relative slash"; + } else { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(0, this.base.path.length - 1); + + this.state = "path"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse relative slash"] = function parseRelativeSlash(c) { + if (isSpecial(this.url) && (c === 47 || c === 92)) { + if (c === 92) { + this.parseError = true; + } + this.state = "special authority ignore slashes"; + } else if (c === 47) { + this.state = "authority"; + } else { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.state = "path"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse special authority slashes"] = function parseSpecialAuthoritySlashes(c) { + if (c === 47 && this.input[this.pointer + 1] === 47) { + this.state = "special authority ignore slashes"; + ++this.pointer; + } else { + this.parseError = true; + this.state = "special authority ignore slashes"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse special authority ignore slashes"] = function parseSpecialAuthorityIgnoreSlashes(c) { + if (c !== 47 && c !== 92) { + this.state = "authority"; + --this.pointer; + } else { + this.parseError = true; + } + + return true; +}; + +URLStateMachine.prototype["parse authority"] = function parseAuthority(c, cStr) { + if (c === 64) { + this.parseError = true; + if (this.atFlag) { + this.buffer = "%40" + this.buffer; + } + this.atFlag = true; + + // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars + const len = countSymbols(this.buffer); + for (let pointer = 0; pointer < len; ++pointer) { + const codePoint = this.buffer.codePointAt(pointer); + + if (codePoint === 58 && !this.passwordTokenSeenFlag) { + this.passwordTokenSeenFlag = true; + continue; + } + const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode); + if (this.passwordTokenSeenFlag) { + this.url.password += encodedCodePoints; + } else { + this.url.username += encodedCodePoints; + } + } + this.buffer = ""; + } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || + (isSpecial(this.url) && c === 92)) { + if (this.atFlag && this.buffer === "") { + this.parseError = true; + return failure; + } + this.pointer -= countSymbols(this.buffer) + 1; + this.buffer = ""; + this.state = "host"; + } else { + this.buffer += cStr; + } + + return true; +}; + +URLStateMachine.prototype["parse hostname"] = +URLStateMachine.prototype["parse host"] = function parseHostName(c, cStr) { + if (this.stateOverride && this.url.scheme === "file") { + --this.pointer; + this.state = "file host"; + } else if (c === 58 && !this.arrFlag) { + if (this.buffer === "") { + this.parseError = true; + return failure; + } + + const host = parseHost(this.buffer, isSpecial(this.url)); + if (host === failure) { + return failure; + } + + this.url.host = host; + this.buffer = ""; + this.state = "port"; + if (this.stateOverride === "hostname") { + return false; + } + } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || + (isSpecial(this.url) && c === 92)) { + --this.pointer; + if (isSpecial(this.url) && this.buffer === "") { + this.parseError = true; + return failure; + } else if (this.stateOverride && this.buffer === "" && + (includesCredentials(this.url) || this.url.port !== null)) { + this.parseError = true; + return false; + } + + const host = parseHost(this.buffer, isSpecial(this.url)); + if (host === failure) { + return failure; + } + + this.url.host = host; + this.buffer = ""; + this.state = "path start"; + if (this.stateOverride) { + return false; + } + } else { + if (c === 91) { + this.arrFlag = true; + } else if (c === 93) { + this.arrFlag = false; + } + this.buffer += cStr; + } + + return true; +}; + +URLStateMachine.prototype["parse port"] = function parsePort(c, cStr) { + if (isASCIIDigit(c)) { + this.buffer += cStr; + } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || + (isSpecial(this.url) && c === 92) || + this.stateOverride) { + if (this.buffer !== "") { + const port = parseInt(this.buffer); + if (port > Math.pow(2, 16) - 1) { + this.parseError = true; + return failure; + } + this.url.port = port === defaultPort(this.url.scheme) ? null : port; + this.buffer = ""; + } + if (this.stateOverride) { + return false; + } + this.state = "path start"; + --this.pointer; + } else { + this.parseError = true; + return failure; + } + + return true; +}; + +const fileOtherwiseCodePoints = new Set([47, 92, 63, 35]); + +URLStateMachine.prototype["parse file"] = function parseFile(c) { + this.url.scheme = "file"; + + if (c === 47 || c === 92) { + if (c === 92) { + this.parseError = true; + } + this.state = "file slash"; + } else if (this.base !== null && this.base.scheme === "file") { + if (isNaN(c)) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + } else if (c === 63) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + this.url.query = ""; + this.state = "query"; + } else if (c === 35) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + this.url.fragment = ""; + this.state = "fragment"; + } else { + if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points + !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) || + (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points + !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + shortenPath(this.url); + } else { + this.parseError = true; + } + + this.state = "path"; + --this.pointer; + } + } else { + this.state = "path"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse file slash"] = function parseFileSlash(c) { + if (c === 47 || c === 92) { + if (c === 92) { + this.parseError = true; + } + this.state = "file host"; + } else { + if (this.base !== null && this.base.scheme === "file") { + if (isNormalizedWindowsDriveLetterString(this.base.path[0])) { + this.url.path.push(this.base.path[0]); + } else { + this.url.host = this.base.host; + } + } + this.state = "path"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse file host"] = function parseFileHost(c, cStr) { + if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) { + --this.pointer; + if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) { + this.parseError = true; + this.state = "path"; + } else if (this.buffer === "") { + this.url.host = ""; + if (this.stateOverride) { + return false; + } + this.state = "path start"; + } else { + let host = parseHost(this.buffer, isSpecial(this.url)); + if (host === failure) { + return failure; + } + if (host === "localhost") { + host = ""; + } + this.url.host = host; + + if (this.stateOverride) { + return false; + } + + this.buffer = ""; + this.state = "path start"; + } + } else { + this.buffer += cStr; + } + + return true; +}; + +URLStateMachine.prototype["parse path start"] = function parsePathStart(c) { + if (isSpecial(this.url)) { + if (c === 92) { + this.parseError = true; + } + this.state = "path"; + + if (c !== 47 && c !== 92) { + --this.pointer; + } + } else if (!this.stateOverride && c === 63) { + this.url.query = ""; + this.state = "query"; + } else if (!this.stateOverride && c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } else if (c !== undefined) { + this.state = "path"; + if (c !== 47) { + --this.pointer; + } + } + + return true; +}; + +URLStateMachine.prototype["parse path"] = function parsePath(c) { + if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) || + (!this.stateOverride && (c === 63 || c === 35))) { + if (isSpecial(this.url) && c === 92) { + this.parseError = true; + } + + if (isDoubleDot(this.buffer)) { + shortenPath(this.url); + if (c !== 47 && !(isSpecial(this.url) && c === 92)) { + this.url.path.push(""); + } + } else if (isSingleDot(this.buffer) && c !== 47 && + !(isSpecial(this.url) && c === 92)) { + this.url.path.push(""); + } else if (!isSingleDot(this.buffer)) { + if (this.url.scheme === "file" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) { + if (this.url.host !== "" && this.url.host !== null) { + this.parseError = true; + this.url.host = ""; + } + this.buffer = this.buffer[0] + ":"; + } + this.url.path.push(this.buffer); + } + this.buffer = ""; + if (this.url.scheme === "file" && (c === undefined || c === 63 || c === 35)) { + while (this.url.path.length > 1 && this.url.path[0] === "") { + this.parseError = true; + this.url.path.shift(); + } + } + if (c === 63) { + this.url.query = ""; + this.state = "query"; + } + if (c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } + } else { + // TODO: If c is not a URL code point and not "%", parse error. + + if (c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + + this.buffer += percentEncodeChar(c, isPathPercentEncode); + } + + return true; +}; + +URLStateMachine.prototype["parse cannot-be-a-base-URL path"] = function parseCannotBeABaseURLPath(c) { + if (c === 63) { + this.url.query = ""; + this.state = "query"; + } else if (c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } else { + // TODO: Add: not a URL code point + if (!isNaN(c) && c !== 37) { + this.parseError = true; + } + + if (c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + + if (!isNaN(c)) { + this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode); + } + } + + return true; +}; + +URLStateMachine.prototype["parse query"] = function parseQuery(c, cStr) { + if (isNaN(c) || (!this.stateOverride && c === 35)) { + if (!isSpecial(this.url) || this.url.scheme === "ws" || this.url.scheme === "wss") { + this.encodingOverride = "utf-8"; + } + + const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead + for (let i = 0; i < buffer.length; ++i) { + if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 || + buffer[i] === 0x3C || buffer[i] === 0x3E) { + this.url.query += percentEncode(buffer[i]); + } else { + this.url.query += String.fromCodePoint(buffer[i]); + } + } + + this.buffer = ""; + if (c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } + } else { + // TODO: If c is not a URL code point and not "%", parse error. + if (c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + + this.buffer += cStr; + } + + return true; +}; + +URLStateMachine.prototype["parse fragment"] = function parseFragment(c) { + if (isNaN(c)) { // do nothing + } else if (c === 0x0) { + this.parseError = true; + } else { + // TODO: If c is not a URL code point and not "%", parse error. + if (c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + + this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode); + } + + return true; +}; + +function serializeURL(url, excludeFragment) { + let output = url.scheme + ":"; + if (url.host !== null) { + output += "//"; + + if (url.username !== "" || url.password !== "") { + output += url.username; + if (url.password !== "") { + output += ":" + url.password; + } + output += "@"; + } + + output += serializeHost(url.host); + + if (url.port !== null) { + output += ":" + url.port; + } + } else if (url.host === null && url.scheme === "file") { + output += "//"; + } + + if (url.cannotBeABaseURL) { + output += url.path[0]; + } else { + for (const string of url.path) { + output += "/" + string; + } + } + + if (url.query !== null) { + output += "?" + url.query; + } + + if (!excludeFragment && url.fragment !== null) { + output += "#" + url.fragment; + } + + return output; +} + +function serializeOrigin(tuple) { + let result = tuple.scheme + "://"; + result += serializeHost(tuple.host); + + if (tuple.port !== null) { + result += ":" + tuple.port; + } + + return result; +} + +module.exports.serializeURL = serializeURL; + +module.exports.serializeURLOrigin = function (url) { + // https://url.spec.whatwg.org/#concept-url-origin + switch (url.scheme) { + case "blob": + try { + return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0])); + } catch (e) { + // serializing an opaque origin returns "null" + return "null"; + } + case "ftp": + case "gopher": + case "http": + case "https": + case "ws": + case "wss": + return serializeOrigin({ + scheme: url.scheme, + host: url.host, + port: url.port + }); + case "file": + // spec says "exercise to the reader", chrome says "file://" + return "file://"; + default: + // serializing an opaque origin returns "null" + return "null"; + } +}; + +module.exports.basicURLParse = function (input, options) { + if (options === undefined) { + options = {}; + } + + const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride); + if (usm.failure) { + return "failure"; + } + + return usm.url; +}; + +module.exports.setTheUsername = function (url, username) { + url.username = ""; + const decoded = punycode.ucs2.decode(username); + for (let i = 0; i < decoded.length; ++i) { + url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode); + } +}; + +module.exports.setThePassword = function (url, password) { + url.password = ""; + const decoded = punycode.ucs2.decode(password); + for (let i = 0; i < decoded.length; ++i) { + url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode); + } +}; + +module.exports.serializeHost = serializeHost; + +module.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort; + +module.exports.serializeInteger = function (integer) { + return String(integer); +}; + +module.exports.parseURL = function (input, options) { + if (options === undefined) { + options = {}; + } + + // We don't handle blobs, so this just delegates: + return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride }); +}; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=Baggage.js.map /***/ }), +/* 937 */, +/* 938 */, /* 939 */ /***/ (function(module, __unusedexports, __webpack_require__) { @@ -66183,7 +64738,7 @@ exports.exec = exec; Object.defineProperty(exports, "__esModule", { value: true }); exports.isCompatible = exports._makeCompatibilityCheck = void 0; var version_1 = __webpack_require__(133); -var re = /^(\d+)\.(\d+)\.(\d+)(?:-(.*))?$/; +var re = /^(\d+)\.(\d+)\.(\d+)(-(.+))?$/; /** * Create a function to test an API version to see if it is compatible with the provided ownVersion. * @@ -66212,7 +64767,14 @@ function _makeCompatibilityCheck(ownVersion) { major: +myVersionMatch[1], minor: +myVersionMatch[2], patch: +myVersionMatch[3], + prerelease: myVersionMatch[4], }; + // if ownVersion has a prerelease tag, versions must match exactly + if (ownVersionParsed.prerelease != null) { + return function isExactmatch(globalVersion) { + return globalVersion === ownVersion; + }; + } function _reject(v) { rejectedVersions.add(v); return false; @@ -66238,7 +64800,12 @@ function _makeCompatibilityCheck(ownVersion) { major: +globalVersionMatch[1], minor: +globalVersionMatch[2], patch: +globalVersionMatch[3], + prerelease: globalVersionMatch[4], }; + // if globalVersion has a prerelease tag, versions must match exactly + if (globalVersionParsed.prerelease != null) { + return _reject(globalVersion); + } // major versions must match if (ownVersionParsed.major !== globalVersionParsed.major) { return _reject(globalVersion); diff --git a/dist/setup/index.js b/dist/setup/index.js index fea1844..19fd501 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -617,10 +617,10 @@ function createTempDirectory() { }); } exports.createTempDirectory = createTempDirectory; -function getArchiveFileSizeIsBytes(filePath) { +function getArchiveFileSizeInBytes(filePath) { return fs.statSync(filePath).size; } -exports.getArchiveFileSizeIsBytes = getArchiveFileSizeIsBytes; +exports.getArchiveFileSizeInBytes = getArchiveFileSizeInBytes; function resolvePaths(patterns) { var e_1, _a; var _b; @@ -881,16 +881,24 @@ exports.NonDocumentTypeChildNodeImpl = NonDocumentTypeChildNodeImpl; */ Object.defineProperty(exports, "__esModule", { value: true }); exports.PropagationAPI = void 0; -var NoopTextMapPropagator_1 = __webpack_require__(637); -var TextMapPropagator_1 = __webpack_require__(649); var global_utils_1 = __webpack_require__(525); +var NoopTextMapPropagator_1 = __webpack_require__(637); +var TextMapPropagator_1 = __webpack_require__(875); +var context_helpers_1 = __webpack_require__(838); +var utils_1 = __webpack_require__(872); +var diag_1 = __webpack_require__(118); var API_NAME = 'propagation'; +var NOOP_TEXT_MAP_PROPAGATOR = new NoopTextMapPropagator_1.NoopTextMapPropagator(); /** * Singleton object which represents the entry point to the OpenTelemetry Propagation API */ var PropagationAPI = /** @class */ (function () { /** Empty private constructor prevents end users from constructing a new instance of the API */ function PropagationAPI() { + this.createBaggage = utils_1.createBaggage; + this.getBaggage = context_helpers_1.getBaggage; + this.setBaggage = context_helpers_1.setBaggage; + this.deleteBaggage = context_helpers_1.deleteBaggage; } /** Get the singleton instance of the Propagator API */ PropagationAPI.getInstance = function () { @@ -900,11 +908,12 @@ var PropagationAPI = /** @class */ (function () { return this._instance; }; /** - * Set the current propagator. Returns the initialized propagator + * Set the current propagator. + * + * @returns true if the propagator was successfully registered, else false */ PropagationAPI.prototype.setGlobalPropagator = function (propagator) { - global_utils_1.registerGlobal(API_NAME, propagator); - return propagator; + return global_utils_1.registerGlobal(API_NAME, propagator, diag_1.DiagAPI.instance()); }; /** * Inject context into a carrier to be propagated inter-process @@ -936,10 +945,10 @@ var PropagationAPI = /** @class */ (function () { }; /** Remove the global propagator */ PropagationAPI.prototype.disable = function () { - global_utils_1.unregisterGlobal(API_NAME); + global_utils_1.unregisterGlobal(API_NAME, diag_1.DiagAPI.instance()); }; PropagationAPI.prototype._getGlobalPropagator = function () { - return global_utils_1.getGlobal(API_NAME) || NoopTextMapPropagator_1.NOOP_TEXT_MAP_PROPAGATOR; + return global_utils_1.getGlobal(API_NAME) || NOOP_TEXT_MAP_PROPAGATOR; }; return PropagationAPI; }()); @@ -4179,27 +4188,21 @@ module.exports = SemVer /* 68 */, /* 69 */, /* 70 */ -/***/ (function(__unusedmodule, exports) { +/***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=trace_state.js.map + +exports.URL = __webpack_require__(600).interface; +exports.serializeURL = __webpack_require__(936).serializeURL; +exports.serializeURLOrigin = __webpack_require__(936).serializeURLOrigin; +exports.basicURLParse = __webpack_require__(936).basicURLParse; +exports.setTheUsername = __webpack_require__(936).setTheUsername; +exports.setThePassword = __webpack_require__(936).setThePassword; +exports.serializeHost = __webpack_require__(936).serializeHost; +exports.serializeInteger = __webpack_require__(936).serializeInteger; +exports.parseURL = __webpack_require__(936).parseURL; + /***/ }), /* 71 */ @@ -4222,205 +4225,6 @@ if (typeof Symbol === undefined || !Symbol.asyncIterator) { Object.defineProperty(exports, '__esModule', { value: true }); var api = __webpack_require__(440); -var tslib = __webpack_require__(144); - -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT license. -/** - * A no-op implementation of Span that can safely be used without side-effects. - */ -var NoOpSpan = /** @class */ (function () { - function NoOpSpan() { - } - /** - * Returns the SpanContext associated with this Span. - */ - NoOpSpan.prototype.context = function () { - return { - spanId: "", - traceId: "", - traceFlags: 0 /* NONE */ - }; - }; - /** - * Marks the end of Span execution. - * @param _endTime - The time to use as the Span's end time. Defaults to - * the current time. - */ - NoOpSpan.prototype.end = function (_endTime) { - /* Noop */ - }; - /** - * Sets an attribute on the Span - * @param _key - The attribute key - * @param _value - The attribute value - */ - NoOpSpan.prototype.setAttribute = function (_key, _value) { - return this; - }; - /** - * Sets attributes on the Span - * @param _attributes - The attributes to add - */ - NoOpSpan.prototype.setAttributes = function (_attributes) { - return this; - }; - /** - * Adds an event to the Span - * @param _name - The name of the event - * @param _attributes - The associated attributes to add for this event - */ - NoOpSpan.prototype.addEvent = function (_name, _attributes) { - return this; - }; - /** - * Sets a status on the span. Overrides the default of SpanStatusCode.OK. - * @param _status - The status to set. - */ - NoOpSpan.prototype.setStatus = function (_status) { - return this; - }; - /** - * Updates the name of the Span - * @param _name - the new Span name - */ - NoOpSpan.prototype.updateName = function (_name) { - return this; - }; - /** - * Returns whether this span will be recorded - */ - NoOpSpan.prototype.isRecording = function () { - return false; - }; - /** - * Sets exception as a span event - * @param exception - the exception the only accepted values are string or Error - * @param time - the time to set as Span's event time. If not provided, - * use the current time. - */ - NoOpSpan.prototype.recordException = function (_exception, _time) { - /* do nothing */ - }; - return NoOpSpan; -}()); - -// Copyright (c) Microsoft Corporation. -/** - * A no-op implementation of Tracer that can be used when tracing - * is disabled. - */ -var NoOpTracer = /** @class */ (function () { - function NoOpTracer() { - } - /** - * Starts a new Span. - * @param _name - The name of the span. - * @param _options - The SpanOptions used during Span creation. - */ - NoOpTracer.prototype.startSpan = function (_name, _options) { - return new NoOpSpan(); - }; - /** - * Returns the current Span from the current context, if available. - */ - NoOpTracer.prototype.getCurrentSpan = function () { - return new NoOpSpan(); - }; - /** - * Executes the given function within the context provided by a Span. - * @param _span - The span that provides the context. - * @param fn - The function to be executed. - */ - NoOpTracer.prototype.withSpan = function (_span, fn) { - return fn(); - }; - /** - * Bind a Span as the target's scope - * @param target - An object to bind the scope. - * @param _span - A specific Span to use. Otherwise, use the current one. - */ - NoOpTracer.prototype.bind = function (target, _span) { - return target; - }; - return NoOpTracer; -}()); - -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT license. -function getGlobalObject() { - return global; -} - -// Copyright (c) Microsoft Corporation. -// V1 = OpenTelemetry 0.1 -// V2 = OpenTelemetry 0.2 -// V3 = OpenTelemetry 0.6.1 -// V4 = OpenTelemetry 1.0.0-rc.0 -var GLOBAL_TRACER_VERSION = 4; -// preview5 shipped with @azure/core-tracing.tracerCache -// and didn't have smart detection for collisions -var GLOBAL_TRACER_SYMBOL = Symbol.for("@azure/core-tracing.tracerCache3"); -var cache; -function loadTracerCache() { - var globalObj = getGlobalObject(); - var existingCache = globalObj[GLOBAL_TRACER_SYMBOL]; - var setGlobalCache = true; - if (existingCache) { - if (existingCache.version === GLOBAL_TRACER_VERSION) { - cache = existingCache; - } - else { - setGlobalCache = false; - if (existingCache.tracer) { - throw new Error("Two incompatible versions of @azure/core-tracing have been loaded.\n This library is " + GLOBAL_TRACER_VERSION + ", existing is " + existingCache.version + "."); - } - } - } - if (!cache) { - cache = { - tracer: undefined, - version: GLOBAL_TRACER_VERSION - }; - } - if (setGlobalCache) { - globalObj[GLOBAL_TRACER_SYMBOL] = cache; - } -} -function getCache() { - if (!cache) { - loadTracerCache(); - } - return cache; -} - -// Copyright (c) Microsoft Corporation. -var defaultTracer; -function getDefaultTracer() { - if (!defaultTracer) { - defaultTracer = new NoOpTracer(); - } - return defaultTracer; -} -/** - * Sets the global tracer, enabling tracing for the Azure SDK. - * @param tracer - An OpenTelemetry Tracer instance. - */ -function setTracer(tracer) { - var cache = getCache(); - cache.tracer = tracer; -} -/** - * Retrieves the active tracer, or returns a - * no-op implementation if one is not set. - */ -function getTracer() { - var cache = getCache(); - if (!cache.tracer) { - return getDefaultTracer(); - } - return cache.tracer; -} // Copyright (c) Microsoft Corporation. (function (SpanKind) { @@ -4455,7 +4259,7 @@ function getTracer() { * @param context - context to get span from */ function getSpan(context) { - return api.getSpan(context); + return api.trace.getSpan(context); } /** * Set the span on a context @@ -4464,7 +4268,7 @@ function getSpan(context) { * @param span - span to set active */ function setSpan(context, span) { - return api.setSpan(context, span); + return api.trace.setSpan(context, span); } /** * Wrap span context in a NoopSpan and set as span in a new @@ -4474,7 +4278,7 @@ function setSpan(context, span) { * @param spanContext - span context to be wrapped */ function setSpanContext(context, spanContext) { - return api.setSpanContext(context, spanContext); + return api.trace.setSpanContext(context, spanContext); } /** * Get the span context of the span if it exists. @@ -4482,10 +4286,24 @@ function setSpanContext(context, spanContext) { * @param context - context to get values from */ function getSpanContext(context) { - return api.getSpanContext(context); + return api.trace.getSpanContext(context); +} +/** + * Returns true of the given {@link SpanContext} is valid. + * A valid {@link SpanContext} is one which has a valid trace ID and span ID as per the spec. + * + * @param context - the {@link SpanContext} to validate. + * + * @returns true if the {@link SpanContext} is valid, false otherwise. + */ +function isSpanContextValid(context) { + return api.trace.isSpanContextValid(context); +} +function getTracer(name, version) { + return api.trace.getTracer(name || "azure/core-tracing", version); } /** Entrypoint for context API */ -var context = api.context; +const context = api.context; (function (SpanStatusCode) { /** * The default status. @@ -4503,422 +4321,18 @@ var context = api.context; })(exports.SpanStatusCode || (exports.SpanStatusCode = {})); // Copyright (c) Microsoft Corporation. -// Licensed under the MIT license. -/** - * @internal - */ -var OpenCensusTraceStateWrapper = /** @class */ (function () { - function OpenCensusTraceStateWrapper(state) { - this._state = state; +function isTracingDisabled() { + var _a; + if (typeof process === "undefined") { + // not supported in browser for now without polyfills + return false; } - OpenCensusTraceStateWrapper.prototype.get = function (_key) { - throw new Error("Method not implemented."); - }; - OpenCensusTraceStateWrapper.prototype.set = function (_key, _value) { - throw new Error("Method not implemented."); - }; - OpenCensusTraceStateWrapper.prototype.unset = function (_key) { - throw new Error("Method not implemented"); - }; - OpenCensusTraceStateWrapper.prototype.serialize = function () { - return this._state || ""; - }; - return OpenCensusTraceStateWrapper; -}()); - -// Copyright (c) Microsoft Corporation. -/** An enumeration of canonical status codes. */ -var CanonicalCode; -(function (CanonicalCode) { - /** - * Not an error; returned on success - */ - CanonicalCode[CanonicalCode["OK"] = 0] = "OK"; - /** - * Internal errors. Means some invariants expected by underlying - * system has been broken. If you see one of these errors, - * something is very broken. - */ - CanonicalCode[CanonicalCode["INTERNAL"] = 13] = "INTERNAL"; -})(CanonicalCode || (CanonicalCode = {})); -function isWrappedSpan(span) { - return !!span && span.getWrappedSpan !== undefined; + const azureTracingDisabledValue = (_a = process.env.AZURE_TRACING_DISABLED) === null || _a === void 0 ? void 0 : _a.toLowerCase(); + if (azureTracingDisabledValue === "false" || azureTracingDisabledValue === "0") { + return false; + } + return Boolean(azureTracingDisabledValue); } -function isTracer(tracerOrSpan) { - return tracerOrSpan.getWrappedTracer !== undefined; -} -/** - * An implementation of OpenTelemetry Span that wraps an OpenCensus Span. - */ -var OpenCensusSpanWrapper = /** @class */ (function () { - function OpenCensusSpanWrapper(tracerOrSpan, name, options, context$1) { - if (name === void 0) { name = ""; } - if (options === void 0) { options = {}; } - if (isTracer(tracerOrSpan)) { - var span = getSpan(context$1 !== null && context$1 !== void 0 ? context$1 : context.active()); - var parent = isWrappedSpan(span) ? span.getWrappedSpan() : undefined; - this._span = tracerOrSpan.getWrappedTracer().startChildSpan({ - name: name, - childOf: parent - }); - this._span.start(); - if (options.links) { - for (var _i = 0, _a = options.links; _i < _a.length; _i++) { - var link = _a[_i]; - // Since there is no way to set the link relationship, leave it as Unspecified. - this._span.addLink(link.context.traceId, link.context.spanId, 0 /* LinkType.UNSPECIFIED */, link.attributes); - } - } - } - else { - this._span = tracerOrSpan; - } - } - /** - * The underlying OpenCensus Span - */ - OpenCensusSpanWrapper.prototype.getWrappedSpan = function () { - return this._span; - }; - /** - * Marks the end of Span execution. - * @param endTime - The time to use as the Span's end time. Defaults to - * the current time. - */ - OpenCensusSpanWrapper.prototype.end = function (_endTime) { - this._span.end(); - }; - /** - * Returns the SpanContext associated with this Span. - */ - OpenCensusSpanWrapper.prototype.context = function () { - var openCensusSpanContext = this._span.spanContext; - return { - spanId: openCensusSpanContext.spanId, - traceId: openCensusSpanContext.traceId, - traceFlags: openCensusSpanContext.options, - traceState: new OpenCensusTraceStateWrapper(openCensusSpanContext.traceState) - }; - }; - /** - * Sets an attribute on the Span - * @param key - The attribute key - * @param value - The attribute value - */ - OpenCensusSpanWrapper.prototype.setAttribute = function (key, value) { - this._span.addAttribute(key, value); - return this; - }; - /** - * Sets attributes on the Span - * @param attributes - The attributes to add - */ - OpenCensusSpanWrapper.prototype.setAttributes = function (attributes) { - this._span.attributes = attributes; - return this; - }; - /** - * Adds an event to the Span - * @param name - The name of the event - * @param attributes - The associated attributes to add for this event - */ - OpenCensusSpanWrapper.prototype.addEvent = function (_name, _attributes) { - throw new Error("Method not implemented."); - }; - /** - * Sets a status on the span. Overrides the default of SpanStatusCode.OK. - * @param status - The status to set. - */ - OpenCensusSpanWrapper.prototype.setStatus = function (status) { - switch (status.code) { - case exports.SpanStatusCode.ERROR: { - this._span.setStatus(CanonicalCode.INTERNAL, status.message); - break; - } - case exports.SpanStatusCode.OK: { - this._span.setStatus(CanonicalCode.OK, status.message); - break; - } - case exports.SpanStatusCode.UNSET: { - break; - } - } - return this; - }; - /** - * Updates the name of the Span - * @param name - The new Span name - */ - OpenCensusSpanWrapper.prototype.updateName = function (name) { - this._span.name = name; - return this; - }; - /** - * Returns whether this span will be recorded - */ - OpenCensusSpanWrapper.prototype.isRecording = function () { - // NoRecordSpans have an empty traceId - return !!this._span.traceId; - }; - /** - * Sets exception as a span event - * @param exception - the exception the only accepted values are string or Error - * @param time - the time to set as Span's event time. If not provided, - * use the current time. - */ - OpenCensusSpanWrapper.prototype.recordException = function (_exception, _time) { - throw new Error("Method not implemented"); - }; - return OpenCensusSpanWrapper; -}()); - -// Copyright (c) Microsoft Corporation. -/** - * An implementation of OpenTelemetry Tracer that wraps an OpenCensus Tracer. - */ -var OpenCensusTracerWrapper = /** @class */ (function () { - /** - * Create a new wrapper around a given OpenCensus Tracer. - * @param tracer - The OpenCensus Tracer to wrap. - */ - function OpenCensusTracerWrapper(tracer) { - this._tracer = tracer; - } - /** - * The wrapped OpenCensus Tracer - */ - OpenCensusTracerWrapper.prototype.getWrappedTracer = function () { - return this._tracer; - }; - /** - * Starts a new Span. - * @param name - The name of the span. - * @param options - The SpanOptions used during Span creation. - */ - OpenCensusTracerWrapper.prototype.startSpan = function (name, options) { - return new OpenCensusSpanWrapper(this, name, options); - }; - /** - * Returns the current Span from the current context, if available. - */ - OpenCensusTracerWrapper.prototype.getCurrentSpan = function () { - return undefined; - }; - /** - * Executes the given function within the context provided by a Span. - * @param _span - The span that provides the context. - * @param _fn - The function to be executed. - */ - OpenCensusTracerWrapper.prototype.withSpan = function (_span, _fn) { - throw new Error("Method not implemented."); - }; - /** - * Bind a Span as the target's scope - * @param target - An object to bind the scope. - * @param _span - A specific Span to use. Otherwise, use the current one. - */ - OpenCensusTracerWrapper.prototype.bind = function (_target, _span) { - throw new Error("Method not implemented."); - }; - return OpenCensusTracerWrapper; -}()); - -// Copyright (c) Microsoft Corporation. -/** - * A mock span useful for testing. - */ -var TestSpan = /** @class */ (function (_super) { - tslib.__extends(TestSpan, _super); - /** - * Starts a new Span. - * @param parentTracer- The tracer that created this Span - * @param name - The name of the span. - * @param context - The SpanContext this span belongs to - * @param kind - The SpanKind of this Span - * @param parentSpanId - The identifier of the parent Span - * @param startTime - The startTime of the event (defaults to now) - */ - function TestSpan(parentTracer, name, context, kind, parentSpanId, startTime) { - if (startTime === void 0) { startTime = Date.now(); } - var _this = _super.call(this) || this; - _this._tracer = parentTracer; - _this.name = name; - _this.kind = kind; - _this.startTime = startTime; - _this.parentSpanId = parentSpanId; - _this.status = { - code: exports.SpanStatusCode.OK - }; - _this.endCalled = false; - _this._context = context; - _this.attributes = {}; - return _this; - } - /** - * Returns the Tracer that created this Span - */ - TestSpan.prototype.tracer = function () { - return this._tracer; - }; - /** - * Returns the SpanContext associated with this Span. - */ - TestSpan.prototype.context = function () { - return this._context; - }; - /** - * Marks the end of Span execution. - * @param _endTime - The time to use as the Span's end time. Defaults to - * the current time. - */ - TestSpan.prototype.end = function (_endTime) { - this.endCalled = true; - }; - /** - * Sets a status on the span. Overrides the default of SpanStatusCode.OK. - * @param status - The status to set. - */ - TestSpan.prototype.setStatus = function (status) { - this.status = status; - return this; - }; - /** - * Returns whether this span will be recorded - */ - TestSpan.prototype.isRecording = function () { - return true; - }; - /** - * Sets an attribute on the Span - * @param key - The attribute key - * @param value - The attribute value - */ - TestSpan.prototype.setAttribute = function (key, value) { - this.attributes[key] = value; - return this; - }; - /** - * Sets attributes on the Span - * @param attributes - The attributes to add - */ - TestSpan.prototype.setAttributes = function (attributes) { - for (var _i = 0, _a = Object.keys(attributes); _i < _a.length; _i++) { - var key = _a[_i]; - this.attributes[key] = attributes[key]; - } - return this; - }; - return TestSpan; -}(NoOpSpan)); - -// Copyright (c) Microsoft Corporation. -/** - * A mock tracer useful for testing - */ -var TestTracer = /** @class */ (function (_super) { - tslib.__extends(TestTracer, _super); - function TestTracer() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.traceIdCounter = 0; - _this.spanIdCounter = 0; - _this.rootSpans = []; - _this.knownSpans = []; - return _this; - } - TestTracer.prototype.getNextTraceId = function () { - this.traceIdCounter++; - return String(this.traceIdCounter); - }; - TestTracer.prototype.getNextSpanId = function () { - this.spanIdCounter++; - return String(this.spanIdCounter); - }; - /** - * Returns all Spans that were created without a parent - */ - TestTracer.prototype.getRootSpans = function () { - return this.rootSpans; - }; - /** - * Returns all Spans this Tracer knows about - */ - TestTracer.prototype.getKnownSpans = function () { - return this.knownSpans; - }; - /** - * Returns all Spans where end() has not been called - */ - TestTracer.prototype.getActiveSpans = function () { - return this.knownSpans.filter(function (span) { - return !span.endCalled; - }); - }; - /** - * Return all Spans for a particular trace, grouped by their - * parent Span in a tree-like structure - * @param traceId - The traceId to return the graph for - */ - TestTracer.prototype.getSpanGraph = function (traceId) { - var traceSpans = this.knownSpans.filter(function (span) { - return span.context().traceId === traceId; - }); - var roots = []; - var nodeMap = new Map(); - for (var _i = 0, traceSpans_1 = traceSpans; _i < traceSpans_1.length; _i++) { - var span = traceSpans_1[_i]; - var spanId = span.context().spanId; - var node = { - name: span.name, - children: [] - }; - nodeMap.set(spanId, node); - if (span.parentSpanId) { - var parent = nodeMap.get(span.parentSpanId); - if (!parent) { - throw new Error("Span with name " + node.name + " has an unknown parentSpan with id " + span.parentSpanId); - } - parent.children.push(node); - } - else { - roots.push(node); - } - } - return { - roots: roots - }; - }; - /** - * Starts a new Span. - * @param name - The name of the span. - * @param options - The SpanOptions used during Span creation. - */ - TestTracer.prototype.startSpan = function (name, options, context$1) { - var parentContext = getSpanContext(context$1 || context.active()); - var traceId; - var isRootSpan = false; - if (parentContext && parentContext.traceId) { - traceId = parentContext.traceId; - } - else { - traceId = this.getNextTraceId(); - isRootSpan = true; - } - var spanContext = { - traceId: traceId, - spanId: this.getNextSpanId(), - traceFlags: 0 /* NONE */ - }; - var span = new TestSpan(this, name, spanContext, (options === null || options === void 0 ? void 0 : options.kind) || exports.SpanKind.INTERNAL, parentContext ? parentContext.spanId : undefined, options === null || options === void 0 ? void 0 : options.startTime); - this.knownSpans.push(span); - if (isRootSpan) { - this.rootSpans.push(span); - } - return span; - }; - return TestTracer; -}(NoOpTracer)); - -// Copyright (c) Microsoft Corporation. /** * Creates a function that can be used to create spans using the global tracer. * @@ -4939,22 +4353,28 @@ var TestTracer = /** @class */ (function (_super) { */ function createSpanFunction(args) { return function (operationName, operationOptions) { - var tracer = getTracer(); - var tracingOptions = (operationOptions === null || operationOptions === void 0 ? void 0 : operationOptions.tracingOptions) || {}; - var spanOptions = tslib.__assign({ kind: exports.SpanKind.INTERNAL }, tracingOptions.spanOptions); - var spanName = args.packagePrefix ? args.packagePrefix + "." + operationName : operationName; - var span = tracer.startSpan(spanName, spanOptions, tracingOptions.tracingContext); + const tracer = getTracer(); + const tracingOptions = (operationOptions === null || operationOptions === void 0 ? void 0 : operationOptions.tracingOptions) || {}; + const spanOptions = Object.assign({ kind: exports.SpanKind.INTERNAL }, tracingOptions.spanOptions); + const spanName = args.packagePrefix ? `${args.packagePrefix}.${operationName}` : operationName; + let span; + if (isTracingDisabled()) { + span = api.trace.wrapSpanContext(api.INVALID_SPAN_CONTEXT); + } + else { + span = tracer.startSpan(spanName, spanOptions, tracingOptions.tracingContext); + } if (args.namespace) { span.setAttribute("az.namespace", args.namespace); } - var newSpanOptions = tracingOptions.spanOptions || {}; + let newSpanOptions = tracingOptions.spanOptions || {}; if (span.isRecording() && args.namespace) { - newSpanOptions = tslib.__assign(tslib.__assign({}, tracingOptions.spanOptions), { attributes: tslib.__assign(tslib.__assign({}, spanOptions.attributes), { "az.namespace": args.namespace }) }); + newSpanOptions = Object.assign(Object.assign({}, tracingOptions.spanOptions), { attributes: Object.assign(Object.assign({}, spanOptions.attributes), { "az.namespace": args.namespace }) }); } - var newTracingOptions = tslib.__assign(tslib.__assign({}, tracingOptions), { spanOptions: newSpanOptions, tracingContext: setSpan(tracingOptions.tracingContext || context.active(), span) }); - var newOperationOptions = tslib.__assign(tslib.__assign({}, operationOptions), { tracingOptions: newTracingOptions }); + const newTracingOptions = Object.assign(Object.assign({}, tracingOptions), { spanOptions: newSpanOptions, tracingContext: setSpan(tracingOptions.tracingContext || context.active(), span) }); + const newOperationOptions = Object.assign(Object.assign({}, operationOptions), { tracingOptions: newTracingOptions }); return { - span: span, + span, updatedOptions: newOperationOptions }; }; @@ -4962,26 +4382,26 @@ function createSpanFunction(args) { // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -var VERSION = "00"; +const VERSION = "00"; /** * Generates a `SpanContext` given a `traceparent` header value. * @param traceParent - Serialized span context data as a `traceparent` header value. * @returns The `SpanContext` generated from the `traceparent` value. */ function extractSpanContextFromTraceParentHeader(traceParentHeader) { - var parts = traceParentHeader.split("-"); + const parts = traceParentHeader.split("-"); if (parts.length !== 4) { return; } - var version = parts[0], traceId = parts[1], spanId = parts[2], traceOptions = parts[3]; + const [version, traceId, spanId, traceOptions] = parts; if (version !== VERSION) { return; } - var traceFlags = parseInt(traceOptions, 16); - var spanContext = { - spanId: spanId, - traceId: traceId, - traceFlags: traceFlags + const traceFlags = parseInt(traceOptions, 16); + const spanContext = { + spanId, + traceId, + traceFlags }; return spanContext; } @@ -4991,7 +4411,7 @@ function extractSpanContextFromTraceParentHeader(traceParentHeader) { * @returns The `spanContext` represented as a `traceparent` value. */ function getTraceParentHeader(spanContext) { - var missingFields = []; + const missingFields = []; if (!spanContext.traceId) { missingFields.push("traceId"); } @@ -5001,19 +4421,13 @@ function getTraceParentHeader(spanContext) { if (missingFields.length) { return; } - var flags = spanContext.traceFlags || 0 /* NONE */; - var hexFlags = flags.toString(16); - var traceFlags = hexFlags.length === 1 ? "0" + hexFlags : hexFlags; + const flags = spanContext.traceFlags || 0 /* NONE */; + const hexFlags = flags.toString(16); + const traceFlags = hexFlags.length === 1 ? `0${hexFlags}` : hexFlags; // https://www.w3.org/TR/trace-context/#traceparent-header-field-values - return VERSION + "-" + spanContext.traceId + "-" + spanContext.spanId + "-" + traceFlags; + return `${VERSION}-${spanContext.traceId}-${spanContext.spanId}-${traceFlags}`; } -exports.NoOpSpan = NoOpSpan; -exports.NoOpTracer = NoOpTracer; -exports.OpenCensusSpanWrapper = OpenCensusSpanWrapper; -exports.OpenCensusTracerWrapper = OpenCensusTracerWrapper; -exports.TestSpan = TestSpan; -exports.TestTracer = TestTracer; exports.context = context; exports.createSpanFunction = createSpanFunction; exports.extractSpanContextFromTraceParentHeader = extractSpanContextFromTraceParentHeader; @@ -5021,9 +4435,9 @@ exports.getSpan = getSpan; exports.getSpanContext = getSpanContext; exports.getTraceParentHeader = getTraceParentHeader; exports.getTracer = getTracer; +exports.isSpanContextValid = isSpanContextValid; exports.setSpan = setSpan; exports.setSpanContext = setSpanContext; -exports.setTracer = setTracer; //# sourceMappingURL=index.js.map @@ -5111,17 +4525,16 @@ module.exports = new Type('tag:yaml.org,2002:pairs', { * See the License for the specific language governing permissions and * limitations under the License. */ -var __spreadArrays = (this && this.__spreadArrays) || function () { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; +var __spreadArray = (this && this.__spreadArray) || function (to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ContextAPI = void 0; var NoopContextManager_1 = __webpack_require__(754); var global_utils_1 = __webpack_require__(525); +var diag_1 = __webpack_require__(118); var API_NAME = 'context'; var NOOP_CONTEXT_MANAGER = new NoopContextManager_1.NoopContextManager(); /** @@ -5139,11 +4552,12 @@ var ContextAPI = /** @class */ (function () { return this._instance; }; /** - * Set the current context manager. Returns the initialized context manager + * Set the current context manager. + * + * @returns true if the context manager was successfully registered, else false */ ContextAPI.prototype.setGlobalContextManager = function (contextManager) { - global_utils_1.registerGlobal(API_NAME, contextManager); - return contextManager; + return global_utils_1.registerGlobal(API_NAME, contextManager, diag_1.DiagAPI.instance()); }; /** * Get the currently active context @@ -5165,17 +4579,16 @@ var ContextAPI = /** @class */ (function () { for (var _i = 3; _i < arguments.length; _i++) { args[_i - 3] = arguments[_i]; } - return (_a = this._getContextManager()).with.apply(_a, __spreadArrays([context, fn, thisArg], args)); + return (_a = this._getContextManager()).with.apply(_a, __spreadArray([context, fn, thisArg], args)); }; /** * Bind a context to a target function or event emitter * - * @param target function or event emitter to bind * @param context context to bind to the event emitter or function. Defaults to the currently active context + * @param target function or event emitter to bind */ - ContextAPI.prototype.bind = function (target, context) { - if (context === void 0) { context = this.active(); } - return this._getContextManager().bind(target, context); + ContextAPI.prototype.bind = function (context, target) { + return this._getContextManager().bind(context, target); }; ContextAPI.prototype._getContextManager = function () { return global_utils_1.getGlobal(API_NAME) || NOOP_CONTEXT_MANAGER; @@ -5183,7 +4596,7 @@ var ContextAPI = /** @class */ (function () { /** Disable and remove the global context manager */ ContextAPI.prototype.disable = function () { this._getContextManager().disable(); - global_utils_1.unregisterGlobal(API_NAME); + global_utils_1.unregisterGlobal(API_NAME, diag_1.DiagAPI.instance()); }; return ContextAPI; }()); @@ -5264,167 +4677,167 @@ exports.toCommandValue = toCommandValue; /***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.JavaBase = void 0; -const tc = __importStar(__webpack_require__(139)); -const core = __importStar(__webpack_require__(470)); -const fs = __importStar(__webpack_require__(747)); -const semver_1 = __importDefault(__webpack_require__(876)); -const path_1 = __importDefault(__webpack_require__(622)); -const httpm = __importStar(__webpack_require__(539)); -const util_1 = __webpack_require__(322); -const constants_1 = __webpack_require__(211); -class JavaBase { - constructor(distribution, installerOptions) { - this.distribution = distribution; - this.http = new httpm.HttpClient('actions/setup-java', undefined, { - allowRetries: true, - maxRetries: 3 - }); - ({ version: this.version, stable: this.stable } = this.normalizeVersion(installerOptions.version)); - this.architecture = installerOptions.architecture; - this.packageType = installerOptions.packageType; - this.checkLatest = installerOptions.checkLatest; - } - setupJava() { - return __awaiter(this, void 0, void 0, function* () { - let foundJava = this.findInToolcache(); - if (foundJava && !this.checkLatest) { - core.info(`Resolved Java ${foundJava.version} from tool-cache`); - } - else { - core.info('Trying to resolve the latest version from remote'); - const javaRelease = yield this.findPackageForDownload(this.version); - core.info(`Resolved latest version as ${javaRelease.version}`); - if ((foundJava === null || foundJava === void 0 ? void 0 : foundJava.version) === javaRelease.version) { - core.info(`Resolved Java ${foundJava.version} from tool-cache`); - } - else { - core.info('Trying to download...'); - foundJava = yield this.downloadTool(javaRelease); - core.info(`Java ${foundJava.version} was downloaded`); - } - } - // JDK folder may contain postfix "Contents/Home" on macOS - const macOSPostfixPath = path_1.default.join(foundJava.path, constants_1.MACOS_JAVA_CONTENT_POSTFIX); - if (process.platform === 'darwin' && fs.existsSync(macOSPostfixPath)) { - foundJava.path = macOSPostfixPath; - } - core.info(`Setting Java ${foundJava.version} as the default`); - this.setJavaDefault(foundJava.version, foundJava.path); - return foundJava; - }); - } - get toolcacheFolderName() { - return `Java_${this.distribution}_${this.packageType}`; - } - getToolcacheVersionName(version) { - if (!this.stable) { - if (version.includes('+')) { - return version.replace('+', '-ea.'); - } - else { - return `${version}-ea`; - } - } - // Kotlin and some Java dependencies don't work properly when Java path contains "+" sign - // so replace "/hostedtoolcache/Java/11.0.3+4/x64" to "/hostedtoolcache/Java/11.0.3-4/x64" when saves to cache - // related issue: https://github.com/actions/virtual-environments/issues/3014 - return version.replace('+', '-'); - } - findInToolcache() { - // we can't use tc.find directly because firstly, we need to filter versions by stability flag - // if *-ea is provided, take only ea versions from toolcache, otherwise - only stable versions - const availableVersions = tc - .findAllVersions(this.toolcacheFolderName, this.architecture) - .map(item => { - return { - version: item - .replace('-ea.', '+') - .replace(/-ea$/, '') - // Kotlin and some Java dependencies don't work properly when Java path contains "+" sign - // so replace "/hostedtoolcache/Java/11.0.3-4/x64" to "/hostedtoolcache/Java/11.0.3+4/x64" when retrieves to cache - // related issue: https://github.com/actions/virtual-environments/issues/3014 - .replace('-', '+'), - path: util_1.getToolcachePath(this.toolcacheFolderName, item, this.architecture) || '', - stable: !item.includes('-ea') - }; - }) - .filter(item => item.stable === this.stable); - const satisfiedVersions = availableVersions - .filter(item => util_1.isVersionSatisfies(this.version, item.version)) - .filter(item => item.path) - .sort((a, b) => { - return -semver_1.default.compareBuild(a.version, b.version); - }); - if (!satisfiedVersions || satisfiedVersions.length === 0) { - return null; - } - return { - version: satisfiedVersions[0].version, - path: satisfiedVersions[0].path - }; - } - normalizeVersion(version) { - let stable = true; - if (version.endsWith('-ea')) { - version = version.replace(/-ea$/, ''); - stable = false; - } - else if (version.includes('-ea.')) { - // transform '11.0.3-ea.2' -> '11.0.3+2' - version = version.replace('-ea.', '+'); - stable = false; - } - if (!semver_1.default.validRange(version)) { - throw new Error(`The string '${version}' is not valid SemVer notation for a Java version. Please check README file for code snippets and more detailed information`); - } - return { - version, - stable - }; - } - setJavaDefault(version, toolPath) { - core.exportVariable('JAVA_HOME', toolPath); - core.addPath(path_1.default.join(toolPath, 'bin')); - core.setOutput('distribution', this.distribution); - core.setOutput('path', toolPath); - core.setOutput('version', version); - } -} -exports.JavaBase = JavaBase; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.JavaBase = void 0; +const tc = __importStar(__webpack_require__(139)); +const core = __importStar(__webpack_require__(470)); +const fs = __importStar(__webpack_require__(747)); +const semver_1 = __importDefault(__webpack_require__(876)); +const path_1 = __importDefault(__webpack_require__(622)); +const httpm = __importStar(__webpack_require__(539)); +const util_1 = __webpack_require__(322); +const constants_1 = __webpack_require__(211); +class JavaBase { + constructor(distribution, installerOptions) { + this.distribution = distribution; + this.http = new httpm.HttpClient('actions/setup-java', undefined, { + allowRetries: true, + maxRetries: 3 + }); + ({ version: this.version, stable: this.stable } = this.normalizeVersion(installerOptions.version)); + this.architecture = installerOptions.architecture; + this.packageType = installerOptions.packageType; + this.checkLatest = installerOptions.checkLatest; + } + setupJava() { + return __awaiter(this, void 0, void 0, function* () { + let foundJava = this.findInToolcache(); + if (foundJava && !this.checkLatest) { + core.info(`Resolved Java ${foundJava.version} from tool-cache`); + } + else { + core.info('Trying to resolve the latest version from remote'); + const javaRelease = yield this.findPackageForDownload(this.version); + core.info(`Resolved latest version as ${javaRelease.version}`); + if ((foundJava === null || foundJava === void 0 ? void 0 : foundJava.version) === javaRelease.version) { + core.info(`Resolved Java ${foundJava.version} from tool-cache`); + } + else { + core.info('Trying to download...'); + foundJava = yield this.downloadTool(javaRelease); + core.info(`Java ${foundJava.version} was downloaded`); + } + } + // JDK folder may contain postfix "Contents/Home" on macOS + const macOSPostfixPath = path_1.default.join(foundJava.path, constants_1.MACOS_JAVA_CONTENT_POSTFIX); + if (process.platform === 'darwin' && fs.existsSync(macOSPostfixPath)) { + foundJava.path = macOSPostfixPath; + } + core.info(`Setting Java ${foundJava.version} as the default`); + this.setJavaDefault(foundJava.version, foundJava.path); + return foundJava; + }); + } + get toolcacheFolderName() { + return `Java_${this.distribution}_${this.packageType}`; + } + getToolcacheVersionName(version) { + if (!this.stable) { + if (version.includes('+')) { + return version.replace('+', '-ea.'); + } + else { + return `${version}-ea`; + } + } + // Kotlin and some Java dependencies don't work properly when Java path contains "+" sign + // so replace "/hostedtoolcache/Java/11.0.3+4/x64" to "/hostedtoolcache/Java/11.0.3-4/x64" when saves to cache + // related issue: https://github.com/actions/virtual-environments/issues/3014 + return version.replace('+', '-'); + } + findInToolcache() { + // we can't use tc.find directly because firstly, we need to filter versions by stability flag + // if *-ea is provided, take only ea versions from toolcache, otherwise - only stable versions + const availableVersions = tc + .findAllVersions(this.toolcacheFolderName, this.architecture) + .map(item => { + return { + version: item + .replace('-ea.', '+') + .replace(/-ea$/, '') + // Kotlin and some Java dependencies don't work properly when Java path contains "+" sign + // so replace "/hostedtoolcache/Java/11.0.3-4/x64" to "/hostedtoolcache/Java/11.0.3+4/x64" when retrieves to cache + // related issue: https://github.com/actions/virtual-environments/issues/3014 + .replace('-', '+'), + path: util_1.getToolcachePath(this.toolcacheFolderName, item, this.architecture) || '', + stable: !item.includes('-ea') + }; + }) + .filter(item => item.stable === this.stable); + const satisfiedVersions = availableVersions + .filter(item => util_1.isVersionSatisfies(this.version, item.version)) + .filter(item => item.path) + .sort((a, b) => { + return -semver_1.default.compareBuild(a.version, b.version); + }); + if (!satisfiedVersions || satisfiedVersions.length === 0) { + return null; + } + return { + version: satisfiedVersions[0].version, + path: satisfiedVersions[0].path + }; + } + normalizeVersion(version) { + let stable = true; + if (version.endsWith('-ea')) { + version = version.replace(/-ea$/, ''); + stable = false; + } + else if (version.includes('-ea.')) { + // transform '11.0.3-ea.2' -> '11.0.3+2' + version = version.replace('-ea.', '+'); + stable = false; + } + if (!semver_1.default.validRange(version)) { + throw new Error(`The string '${version}' is not valid SemVer notation for a Java version. Please check README file for code snippets and more detailed information`); + } + return { + version, + stable + }; + } + setJavaDefault(version, toolPath) { + core.exportVariable('JAVA_HOME', toolPath); + core.addPath(path_1.default.join(toolPath, 'bin')); + core.setOutput('distribution', this.distribution); + core.setOutput('path', toolPath); + core.setOutput('version', version); + } +} +exports.JavaBase = JavaBase; /***/ }), @@ -9180,48 +8593,36 @@ exports.eventTarget_removeAllEventListeners = eventTarget_removeAllEventListener /***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; -/*! - * Copyright (c) Microsoft and contributors. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for - * license information. - * - * Azure Core LRO SDK for JavaScript - 1.0.5 - */ Object.defineProperty(exports, '__esModule', { value: true }); -var tslib = __webpack_require__(725); +var logger$1 = __webpack_require__(492); // Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. /** * When a poller is manually stopped through the `stopPolling` method, * the poller will be rejected with an instance of the PollerStoppedError. */ -var PollerStoppedError = /** @class */ (function (_super) { - tslib.__extends(PollerStoppedError, _super); - function PollerStoppedError(message) { - var _this = _super.call(this, message) || this; - _this.name = "PollerStoppedError"; - Object.setPrototypeOf(_this, PollerStoppedError.prototype); - return _this; +class PollerStoppedError extends Error { + constructor(message) { + super(message); + this.name = "PollerStoppedError"; + Object.setPrototypeOf(this, PollerStoppedError.prototype); } - return PollerStoppedError; -}(Error)); +} /** * When a poller is cancelled through the `cancelOperation` method, * the poller will be rejected with an instance of the PollerCancelledError. */ -var PollerCancelledError = /** @class */ (function (_super) { - tslib.__extends(PollerCancelledError, _super); - function PollerCancelledError(message) { - var _this = _super.call(this, message) || this; - _this.name = "PollerCancelledError"; - Object.setPrototypeOf(_this, PollerCancelledError.prototype); - return _this; +class PollerCancelledError extends Error { + constructor(message) { + super(message); + this.name = "PollerCancelledError"; + Object.setPrototypeOf(this, PollerCancelledError.prototype); } - return PollerCancelledError; -}(Error)); +} /** * A class that represents the definition of a program that polls through consecutive requests * until it reaches a state of completion. @@ -9284,7 +8685,7 @@ var PollerCancelledError = /** @class */ (function (_super) { * */ // eslint-disable-next-line no-use-before-define -var Poller = /** @class */ (function () { +class Poller { /** * A poller needs to be initialized by passing in at least the basic properties of the `PollOperation`. * @@ -9350,19 +8751,18 @@ var Poller = /** @class */ (function () { * * @param operation - Must contain the basic properties of `PollOperation`. */ - function Poller(operation) { - var _this = this; + constructor(operation) { this.stopped = true; this.pollProgressCallbacks = []; this.operation = operation; - this.promise = new Promise(function (resolve, reject) { - _this.resolve = resolve; - _this.reject = reject; + this.promise = new Promise((resolve, reject) => { + this.resolve = resolve; + this.reject = reject; }); // This prevents the UnhandledPromiseRejectionWarning in node.js from being thrown. // The above warning would get thrown if `poller.poll` is called, it returns an error, // and pullUntilDone did not have a .catch or await try/catch on it's return value. - this.promise.catch(function () { + this.promise.catch(() => { /* intentionally blank */ }); } @@ -9371,29 +8771,15 @@ var Poller = /** @class */ (function () { * Starts a loop that will break only if the poller is done * or if the poller is stopped. */ - Poller.prototype.startPolling = function () { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - if (this.stopped) { - this.stopped = false; - } - _a.label = 1; - case 1: - if (!(!this.isStopped() && !this.isDone())) return [3 /*break*/, 4]; - return [4 /*yield*/, this.poll()]; - case 2: - _a.sent(); - return [4 /*yield*/, this.delay()]; - case 3: - _a.sent(); - return [3 /*break*/, 1]; - case 4: return [2 /*return*/]; - } - }); - }); - }; + async startPolling() { + if (this.stopped) { + this.stopped = false; + } + while (!this.isStopped() && !this.isDone()) { + await this.poll(); + await this.delay(); + } + } /** * @internal * pollOnce does one polling, by calling to the update method of the underlying @@ -9403,44 +8789,31 @@ var Poller = /** @class */ (function () { * * @param options - Optional properties passed to the operation's update method. */ - Poller.prototype.pollOnce = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, e_1; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _b.trys.push([0, 3, , 4]); - if (!!this.isDone()) return [3 /*break*/, 2]; - _a = this; - return [4 /*yield*/, this.operation.update({ - abortSignal: options.abortSignal, - fireProgress: this.fireProgress.bind(this) - })]; - case 1: - _a.operation = _b.sent(); - if (this.isDone() && this.resolve) { - // If the poller has finished polling, this means we now have a result. - // However, it can be the case that TResult is instantiated to void, so - // we are not expecting a result anyway. To assert that we might not - // have a result eventually after finishing polling, we cast the result - // to TResult. - this.resolve(this.operation.state.result); - } - _b.label = 2; - case 2: return [3 /*break*/, 4]; - case 3: - e_1 = _b.sent(); - this.operation.state.error = e_1; - if (this.reject) { - this.reject(e_1); - } - throw e_1; - case 4: return [2 /*return*/]; + async pollOnce(options = {}) { + try { + if (!this.isDone()) { + this.operation = await this.operation.update({ + abortSignal: options.abortSignal, + fireProgress: this.fireProgress.bind(this) + }); + if (this.isDone() && this.resolve) { + // If the poller has finished polling, this means we now have a result. + // However, it can be the case that TResult is instantiated to void, so + // we are not expecting a result anyway. To assert that we might not + // have a result eventually after finishing polling, we cast the result + // to TResult. + this.resolve(this.operation.state.result); } - }); - }); - }; + } + } + catch (e) { + this.operation.state.error = e; + if (this.reject) { + this.reject(e); + } + throw e; + } + } /** * @internal * fireProgress calls the functions passed in via onProgress the method of the poller. @@ -9450,36 +8823,22 @@ var Poller = /** @class */ (function () { * * @param state - The current operation state. */ - Poller.prototype.fireProgress = function (state) { - for (var _i = 0, _a = this.pollProgressCallbacks; _i < _a.length; _i++) { - var callback = _a[_i]; + fireProgress(state) { + for (const callback of this.pollProgressCallbacks) { callback(state); } - }; + } /** * @internal * Invokes the underlying operation's cancel method, and rejects the * pollUntilDone promise. */ - Poller.prototype.cancelOnce = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = this; - return [4 /*yield*/, this.operation.cancel(options)]; - case 1: - _a.operation = _b.sent(); - if (this.reject) { - this.reject(new PollerCancelledError("Poller cancelled")); - } - return [2 /*return*/]; - } - }); - }); - }; + async cancelOnce(options = {}) { + this.operation = await this.operation.cancel(options); + if (this.reject) { + this.reject(new PollerCancelledError("Poller cancelled")); + } + } /** * Returns a promise that will resolve once a single polling request finishes. * It does this by calling the update method of the Poller's operation. @@ -9488,68 +8847,61 @@ var Poller = /** @class */ (function () { * * @param options - Optional properties passed to the operation's update method. */ - Poller.prototype.poll = function (options) { - var _this = this; - if (options === void 0) { options = {}; } + poll(options = {}) { if (!this.pollOncePromise) { this.pollOncePromise = this.pollOnce(options); - var clearPollOncePromise = function () { - _this.pollOncePromise = undefined; + const clearPollOncePromise = () => { + this.pollOncePromise = undefined; }; this.pollOncePromise.then(clearPollOncePromise, clearPollOncePromise).catch(this.reject); } return this.pollOncePromise; - }; + } /** * Returns a promise that will resolve once the underlying operation is completed. */ - Poller.prototype.pollUntilDone = function () { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - if (this.stopped) { - this.startPolling().catch(this.reject); - } - return [2 /*return*/, this.promise]; - }); - }); - }; + async pollUntilDone() { + if (this.stopped) { + this.startPolling().catch(this.reject); + } + return this.promise; + } /** * Invokes the provided callback after each polling is completed, * sending the current state of the poller's operation. * * It returns a method that can be used to stop receiving updates on the given callback function. */ - Poller.prototype.onProgress = function (callback) { - var _this = this; + onProgress(callback) { this.pollProgressCallbacks.push(callback); - return function () { - _this.pollProgressCallbacks = _this.pollProgressCallbacks.filter(function (c) { return c !== callback; }); + return () => { + this.pollProgressCallbacks = this.pollProgressCallbacks.filter((c) => c !== callback); }; - }; + } /** * Returns true if the poller has finished polling. */ - Poller.prototype.isDone = function () { - var state = this.operation.state; + isDone() { + const state = this.operation.state; return Boolean(state.isCompleted || state.isCancelled || state.error); - }; + } /** * Stops the poller from continuing to poll. */ - Poller.prototype.stopPolling = function () { + stopPolling() { if (!this.stopped) { this.stopped = true; if (this.reject) { this.reject(new PollerStoppedError("This poller is already stopped")); } } - }; + } /** * Returns true if the poller is stopped. */ - Poller.prototype.isStopped = function () { + isStopped() { return this.stopped; - }; + } /** * Attempts to cancel the underlying operation. * @@ -9559,8 +8911,7 @@ var Poller = /** @class */ (function () { * * @param options - Optional properties passed to the operation's update method. */ - Poller.prototype.cancelOperation = function (options) { - if (options === void 0) { options = {}; } + cancelOperation(options = {}) { if (!this.stopped) { this.stopped = true; } @@ -9571,7 +8922,7 @@ var Poller = /** @class */ (function () { throw new Error("A cancel request is currently pending"); } return this.cancelPromise; - }; + } /** * Returns the state of the operation. * @@ -9620,29 +8971,379 @@ var Poller = /** @class */ (function () { * `../test/utils/testPoller.ts` * and look for the getOperationState implementation. */ - Poller.prototype.getOperationState = function () { + getOperationState() { return this.operation.state; - }; + } /** * Returns the result value of the operation, * regardless of the state of the poller. * It can return undefined or an incomplete form of the final TResult value * depending on the implementation. */ - Poller.prototype.getResult = function () { - var state = this.operation.state; + getResult() { + const state = this.operation.state; return state.result; - }; + } /** * Returns a serialized version of the poller's operation * by invoking the operation's toString method. */ - Poller.prototype.toString = function () { + toString() { return this.operation.toString(); - }; - return Poller; -}()); + } +} +// Copyright (c) Microsoft Corporation. +/** + * The `@azure/logger` configuration for this package. + * @internal + */ +const logger = logger$1.createClientLogger("core-lro"); + +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +/** + * Detects where the continuation token is and returns it. Notice that azure-asyncoperation + * must be checked first before the other location headers because there are scenarios + * where both azure-asyncoperation and location could be present in the same response but + * azure-asyncoperation should be the one to use for polling. + */ +function getPollingUrl(rawResponse, defaultPath) { + var _a, _b, _c; + return ((_c = (_b = (_a = getAzureAsyncOperation(rawResponse)) !== null && _a !== void 0 ? _a : getLocation(rawResponse)) !== null && _b !== void 0 ? _b : getOperationLocation(rawResponse)) !== null && _c !== void 0 ? _c : defaultPath); +} +function getLocation(rawResponse) { + return rawResponse.headers["location"]; +} +function getOperationLocation(rawResponse) { + return rawResponse.headers["operation-location"]; +} +function getAzureAsyncOperation(rawResponse) { + return rawResponse.headers["azure-asyncoperation"]; +} +function inferLroMode(requestPath, requestMethod, rawResponse) { + if (getAzureAsyncOperation(rawResponse) !== undefined) { + return { + mode: "AzureAsync", + resourceLocation: requestMethod === "PUT" + ? requestPath + : requestMethod === "POST" + ? getLocation(rawResponse) + : undefined + }; + } + else if (getLocation(rawResponse) !== undefined || + getOperationLocation(rawResponse) !== undefined) { + return { + mode: "Location" + }; + } + else if (["PUT", "PATCH"].includes(requestMethod)) { + return { + mode: "Body" + }; + } + return {}; +} +class SimpleRestError extends Error { + constructor(message, statusCode) { + super(message); + this.name = "RestError"; + this.statusCode = statusCode; + Object.setPrototypeOf(this, SimpleRestError.prototype); + } +} +function isUnexpectedInitialResponse(rawResponse) { + const code = rawResponse.statusCode; + if (![203, 204, 202, 201, 200, 500].includes(code)) { + throw new SimpleRestError(`Received unexpected HTTP status code ${code} in the initial response. This may indicate a server issue.`, code); + } + return false; +} +function isUnexpectedPollingResponse(rawResponse) { + const code = rawResponse.statusCode; + if (![202, 201, 200, 500].includes(code)) { + throw new SimpleRestError(`Received unexpected HTTP status code ${code} while polling. This may indicate a server issue.`, code); + } + return false; +} + +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +const successStates = ["succeeded"]; +const failureStates = ["failed", "canceled", "cancelled"]; + +// Copyright (c) Microsoft Corporation. +function getResponseStatus(rawResponse) { + var _a; + const { status } = (_a = rawResponse.body) !== null && _a !== void 0 ? _a : {}; + return typeof status === "string" ? status.toLowerCase() : "succeeded"; +} +function isAzureAsyncPollingDone(rawResponse) { + const state = getResponseStatus(rawResponse); + if (isUnexpectedPollingResponse(rawResponse) || failureStates.includes(state)) { + throw new Error(`The long running operation has failed. The provisioning state: ${state}.`); + } + return successStates.includes(state); +} +/** + * Sends a request to the URI of the provisioned resource if needed. + */ +async function sendFinalRequest(lro, resourceLocation, lroResourceLocationConfig) { + switch (lroResourceLocationConfig) { + case "original-uri": + return lro.sendPollRequest(lro.requestPath); + case "azure-async-operation": + return undefined; + case "location": + default: + return lro.sendPollRequest(resourceLocation !== null && resourceLocation !== void 0 ? resourceLocation : lro.requestPath); + } +} +function processAzureAsyncOperationResult(lro, resourceLocation, lroResourceLocationConfig) { + return (response) => { + if (isAzureAsyncPollingDone(response.rawResponse)) { + if (resourceLocation === undefined) { + return Object.assign(Object.assign({}, response), { done: true }); + } + else { + return Object.assign(Object.assign({}, response), { done: false, next: async () => { + const finalResponse = await sendFinalRequest(lro, resourceLocation, lroResourceLocationConfig); + return Object.assign(Object.assign({}, (finalResponse !== null && finalResponse !== void 0 ? finalResponse : response)), { done: true }); + } }); + } + } + return Object.assign(Object.assign({}, response), { done: false }); + }; +} + +// Copyright (c) Microsoft Corporation. +function getProvisioningState(rawResponse) { + var _a, _b; + const { properties, provisioningState } = (_a = rawResponse.body) !== null && _a !== void 0 ? _a : {}; + const state = (_b = properties === null || properties === void 0 ? void 0 : properties.provisioningState) !== null && _b !== void 0 ? _b : provisioningState; + return typeof state === "string" ? state.toLowerCase() : "succeeded"; +} +function isBodyPollingDone(rawResponse) { + const state = getProvisioningState(rawResponse); + if (isUnexpectedPollingResponse(rawResponse) || failureStates.includes(state)) { + throw new Error(`The long running operation has failed. The provisioning state: ${state}.`); + } + return successStates.includes(state); +} +/** + * Creates a polling strategy based on BodyPolling which uses the provisioning state + * from the result to determine the current operation state + */ +function processBodyPollingOperationResult(response) { + return Object.assign(Object.assign({}, response), { done: isBodyPollingDone(response.rawResponse) }); +} + +// Copyright (c) Microsoft Corporation. +function isLocationPollingDone(rawResponse) { + return !isUnexpectedPollingResponse(rawResponse) && rawResponse.statusCode !== 202; +} +function processLocationPollingOperationResult(response) { + return Object.assign(Object.assign({}, response), { done: isLocationPollingDone(response.rawResponse) }); +} + +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +function processPassthroughOperationResult(response) { + return Object.assign(Object.assign({}, response), { done: true }); +} + +// Copyright (c) Microsoft Corporation. +/** + * creates a stepping function that maps an LRO state to another. + */ +function createGetLroStatusFromResponse(lroPrimitives, config, lroResourceLocationConfig) { + switch (config.mode) { + case "AzureAsync": { + return processAzureAsyncOperationResult(lroPrimitives, config.resourceLocation, lroResourceLocationConfig); + } + case "Location": { + return processLocationPollingOperationResult; + } + case "Body": { + return processBodyPollingOperationResult; + } + default: { + return processPassthroughOperationResult; + } + } +} +/** + * Creates a polling operation. + */ +function createPoll(lroPrimitives) { + return async (path, pollerConfig, getLroStatusFromResponse) => { + const response = await lroPrimitives.sendPollRequest(path); + const retryAfter = response.rawResponse.headers["retry-after"]; + if (retryAfter !== undefined) { + const retryAfterInMs = parseInt(retryAfter); + pollerConfig.intervalInMs = isNaN(retryAfterInMs) + ? calculatePollingIntervalFromDate(new Date(retryAfter), pollerConfig.intervalInMs) + : retryAfterInMs; + } + return getLroStatusFromResponse(response); + }; +} +function calculatePollingIntervalFromDate(retryAfterDate, defaultIntervalInMs) { + const timeNow = Math.floor(new Date().getTime()); + const retryAfterTime = retryAfterDate.getTime(); + if (timeNow < retryAfterTime) { + return retryAfterTime - timeNow; + } + return defaultIntervalInMs; +} +/** + * Creates a callback to be used to initialize the polling operation state. + * @param state - of the polling operation + * @param operationSpec - of the LRO + * @param callback - callback to be called when the operation is done + * @returns callback that initializes the state of the polling operation + */ +function createInitializeState(state, requestPath, requestMethod) { + return (response) => { + if (isUnexpectedInitialResponse(response.rawResponse)) + ; + state.initialRawResponse = response.rawResponse; + state.isStarted = true; + state.pollingURL = getPollingUrl(state.initialRawResponse, requestPath); + state.config = inferLroMode(requestPath, requestMethod, state.initialRawResponse); + /** short circuit polling if body polling is done in the initial request */ + if (state.config.mode === undefined || + (state.config.mode === "Body" && isBodyPollingDone(state.initialRawResponse))) { + state.result = response.flatResponse; + state.isCompleted = true; + } + logger.verbose(`LRO: initial state: ${JSON.stringify(state)}`); + return Boolean(state.isCompleted); + }; +} + +// Copyright (c) Microsoft Corporation. +class GenericPollOperation { + constructor(state, lro, lroResourceLocationConfig, processResult, updateState, isDone) { + this.state = state; + this.lro = lro; + this.lroResourceLocationConfig = lroResourceLocationConfig; + this.processResult = processResult; + this.updateState = updateState; + this.isDone = isDone; + } + setPollerConfig(pollerConfig) { + this.pollerConfig = pollerConfig; + } + /** + * General update function for LROPoller, the general process is as follows + * 1. Check initial operation result to determine the strategy to use + * - Strategies: Location, Azure-AsyncOperation, Original Uri + * 2. Check if the operation result has a terminal state + * - Terminal state will be determined by each strategy + * 2.1 If it is terminal state Check if a final GET request is required, if so + * send final GET request and return result from operation. If no final GET + * is required, just return the result from operation. + * - Determining what to call for final request is responsibility of each strategy + * 2.2 If it is not terminal state, call the polling operation and go to step 1 + * - Determining what to call for polling is responsibility of each strategy + * - Strategies will always use the latest URI for polling if provided otherwise + * the last known one + */ + async update(options) { + var _a, _b, _c; + const state = this.state; + let lastResponse = undefined; + if (!state.isStarted) { + const initializeState = createInitializeState(state, this.lro.requestPath, this.lro.requestMethod); + lastResponse = await this.lro.sendInitialRequest(); + initializeState(lastResponse); + } + if (!state.isCompleted) { + if (!this.poll || !this.getLroStatusFromResponse) { + if (!state.config) { + throw new Error("Bad state: LRO mode is undefined. Please check if the serialized state is well-formed."); + } + const isDone = this.isDone; + this.getLroStatusFromResponse = isDone + ? (response) => (Object.assign(Object.assign({}, response), { done: isDone(response.flatResponse, this.state) })) + : createGetLroStatusFromResponse(this.lro, state.config, this.lroResourceLocationConfig); + this.poll = createPoll(this.lro); + } + if (!state.pollingURL) { + throw new Error("Bad state: polling URL is undefined. Please check if the serialized state is well-formed."); + } + const currentState = await this.poll(state.pollingURL, this.pollerConfig, this.getLroStatusFromResponse); + logger.verbose(`LRO: polling response: ${JSON.stringify(currentState.rawResponse)}`); + if (currentState.done) { + state.result = this.processResult + ? this.processResult(currentState.flatResponse, state) + : currentState.flatResponse; + state.isCompleted = true; + } + else { + this.poll = (_a = currentState.next) !== null && _a !== void 0 ? _a : this.poll; + state.pollingURL = getPollingUrl(currentState.rawResponse, state.pollingURL); + } + lastResponse = currentState; + } + logger.verbose(`LRO: current state: ${JSON.stringify(state)}`); + if (lastResponse) { + (_b = this.updateState) === null || _b === void 0 ? void 0 : _b.call(this, state, lastResponse === null || lastResponse === void 0 ? void 0 : lastResponse.rawResponse); + } + else { + logger.error(`LRO: no response was received`); + } + (_c = options === null || options === void 0 ? void 0 : options.fireProgress) === null || _c === void 0 ? void 0 : _c.call(options, state); + return this; + } + async cancel() { + this.state.isCancelled = true; + return this; + } + /** + * Serializes the Poller operation. + */ + toString() { + return JSON.stringify({ + state: this.state + }); + } +} + +// Copyright (c) Microsoft Corporation. +function deserializeState(serializedState) { + try { + return JSON.parse(serializedState).state; + } + catch (e) { + throw new Error(`LroEngine: Unable to deserialize state: ${serializedState}`); + } +} +/** + * The LRO Engine, a class that performs polling. + */ +class LroEngine extends Poller { + constructor(lro, options) { + const { intervalInMs = 2000, resumeFrom } = options || {}; + const state = resumeFrom + ? deserializeState(resumeFrom) + : {}; + const operation = new GenericPollOperation(state, lro, options === null || options === void 0 ? void 0 : options.lroResourceLocationConfig, options === null || options === void 0 ? void 0 : options.processResult, options === null || options === void 0 ? void 0 : options.updateState, options === null || options === void 0 ? void 0 : options.isDone); + super(operation); + this.config = { intervalInMs: intervalInMs }; + operation.setPollerConfig(this.config); + } + /** + * The method used by the poller to wait before attempting to update its operation. + */ + delay() { + return new Promise((resolve) => setTimeout(() => resolve(), this.config.intervalInMs)); + } +} + +exports.LroEngine = LroEngine; exports.Poller = Poller; exports.PollerCancelledError = PollerCancelledError; exports.PollerStoppedError = PollerStoppedError; @@ -9962,7 +9663,7 @@ function uploadChunk(httpClient, resourceUrl, openStream, start, end) { function uploadFile(httpClient, cacheId, archivePath, options) { return __awaiter(this, void 0, void 0, function* () { // Upload Chunks - const fileSize = fs.statSync(archivePath).size; + const fileSize = utils.getArchiveFileSizeInBytes(archivePath); const resourceUrl = getCacheApiUrl(`caches/${cacheId.toString()}`); const fd = fs.openSync(archivePath, 'r'); const uploadOptions = options_1.getUploadOptions(options); @@ -10012,7 +9713,7 @@ function saveCache(cacheId, archivePath, options) { yield uploadFile(httpClient, cacheId, archivePath, options); // Commit Cache core.debug('Commiting cache'); - const cacheSize = utils.getArchiveFileSizeIsBytes(archivePath); + const cacheSize = utils.getArchiveFileSizeInBytes(archivePath); core.info(`Cache Size: ~${Math.round(cacheSize / (1024 * 1024))} MB (${cacheSize} B)`); const commitCacheResponse = yield commitCache(httpClient, cacheId, cacheSize); if (!requestUtils_1.isSuccessStatusCode(commitCacheResponse.statusCode)) { @@ -10065,6 +9766,7 @@ exports.saveCache = saveCache; */ Object.defineProperty(exports, "__esModule", { value: true }); exports.DiagAPI = void 0; +var ComponentLogger_1 = __webpack_require__(362); var logLevelLogger_1 = __webpack_require__(673); var types_1 = __webpack_require__(360); var global_utils_1 = __webpack_require__(525); @@ -10095,7 +9797,7 @@ var DiagAPI = /** @class */ (function () { var self = this; // DiagAPI specific functions self.setLogger = function (logger, logLevel) { - var _a; + var _a, _b; if (logLevel === void 0) { logLevel = types_1.DiagLogLevel.INFO; } if (logger === self) { // There isn't much we can do here. @@ -10103,12 +9805,23 @@ var DiagAPI = /** @class */ (function () { // Try to log to self. If a logger was previously registered it will receive the log. var err = new Error('Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation'); self.error((_a = err.stack) !== null && _a !== void 0 ? _a : err.message); - return; + return false; } - global_utils_1.registerGlobal('diag', logLevelLogger_1.createLogLevelDiagLogger(logLevel, logger), true); + var oldLogger = global_utils_1.getGlobal('diag'); + var newLogger = logLevelLogger_1.createLogLevelDiagLogger(logLevel, logger); + // There already is an logger registered. We'll let it know before overwriting it. + if (oldLogger) { + var stack = (_b = new Error().stack) !== null && _b !== void 0 ? _b : ''; + oldLogger.warn("Current logger will be overwritten from " + stack); + newLogger.warn("Current logger will overwrite one already registered from " + stack); + } + return global_utils_1.registerGlobal('diag', newLogger, self, true); }; self.disable = function () { - global_utils_1.unregisterGlobal(API_NAME); + global_utils_1.unregisterGlobal(API_NAME, self); + }; + self.createComponentLogger = function (options) { + return new ComponentLogger_1.DiagComponentLogger(options); }; self.verbose = _logProxy('verbose'); self.debug = _logProxy('debug'); @@ -10705,7 +10418,7 @@ module.exports = require("child_process"); /* 130 */, /* 131 */, /* 132 */ -/***/ (function(__unusedmodule, exports, __webpack_require__) { +/***/ (function(__unusedmodule, exports) { "use strict"; @@ -10725,109 +10438,15 @@ module.exports = require("child_process"); * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); -exports.ROOT_CONTEXT = exports.createContextKey = exports.setBaggage = exports.getBaggage = exports.isInstrumentationSuppressed = exports.unsuppressInstrumentation = exports.suppressInstrumentation = exports.getSpanContext = exports.setSpanContext = exports.setSpan = exports.getSpan = void 0; -var NoopSpan_1 = __webpack_require__(767); -/** - * span key - */ -var SPAN_KEY = createContextKey('OpenTelemetry Context Key SPAN'); -/** - * Shared key for indicating if instrumentation should be suppressed beyond - * this current scope. - */ -var SUPPRESS_INSTRUMENTATION_KEY = createContextKey('OpenTelemetry Context Key SUPPRESS_INSTRUMENTATION'); -/** - * Baggage key - */ -var BAGGAGE_KEY = createContextKey('OpenTelemetry Baggage Key'); -/** - * Return the span if one exists - * - * @param context context to get span from - */ -function getSpan(context) { - return context.getValue(SPAN_KEY) || undefined; -} -exports.getSpan = getSpan; -/** - * Set the span on a context - * - * @param context context to use as parent - * @param span span to set active - */ -function setSpan(context, span) { - return context.setValue(SPAN_KEY, span); -} -exports.setSpan = setSpan; -/** - * Wrap span context in a NoopSpan and set as span in a new - * context - * - * @param context context to set active span on - * @param spanContext span context to be wrapped - */ -function setSpanContext(context, spanContext) { - return setSpan(context, new NoopSpan_1.NoopSpan(spanContext)); -} -exports.setSpanContext = setSpanContext; -/** - * Get the span context of the span if it exists. - * - * @param context context to get values from - */ -function getSpanContext(context) { - var _a; - return (_a = getSpan(context)) === null || _a === void 0 ? void 0 : _a.context(); -} -exports.getSpanContext = getSpanContext; -/** - * Sets value on context to indicate that instrumentation should - * be suppressed beyond this current scope. - * - * @param context context to set the suppress instrumentation value on. - */ -function suppressInstrumentation(context) { - return context.setValue(SUPPRESS_INSTRUMENTATION_KEY, true); -} -exports.suppressInstrumentation = suppressInstrumentation; -/** - * Sets value on context to indicate that instrumentation should - * no-longer be suppressed beyond this current scope. - * - * @param context context to set the suppress instrumentation value on. - */ -function unsuppressInstrumentation(context) { - return context.setValue(SUPPRESS_INSTRUMENTATION_KEY, false); -} -exports.unsuppressInstrumentation = unsuppressInstrumentation; -/** - * Return current suppress instrumentation value for the given context, - * if it exists. - * - * @param context context check for the suppress instrumentation value. - */ -function isInstrumentationSuppressed(context) { - return Boolean(context.getValue(SUPPRESS_INSTRUMENTATION_KEY)); -} -exports.isInstrumentationSuppressed = isInstrumentationSuppressed; -/** - * @param {Context} Context that manage all context values - * @returns {Baggage} Extracted baggage from the context - */ -function getBaggage(context) { - return context.getValue(BAGGAGE_KEY) || undefined; -} -exports.getBaggage = getBaggage; -/** - * @param {Context} Context that manage all context values - * @param {Baggage} baggage that will be set in the actual context - */ -function setBaggage(context, baggage) { - return context.setValue(BAGGAGE_KEY, baggage); -} -exports.setBaggage = setBaggage; +exports.ROOT_CONTEXT = exports.createContextKey = void 0; /** Get a key to uniquely identify a context value */ function createContextKey(description) { + // The specification states that for the same input, multiple calls should + // return different keys. Due to the nature of the JS dependency management + // system, this creates problems where multiple versions of some package + // could hold different keys for the same property. + // + // Therefore, we use Symbol.for which returns the same key for the same input. return Symbol.for(description); } exports.createContextKey = createContextKey; @@ -10883,7 +10502,7 @@ exports.ROOT_CONTEXT = new BaseContext(); Object.defineProperty(exports, "__esModule", { value: true }); exports.VERSION = void 0; // this is autogenerated file, see scripts/version-update.js -exports.VERSION = '1.0.0-rc.0'; +exports.VERSION = '1.0.3'; //# sourceMappingURL=version.js.map /***/ }), @@ -11822,314 +11441,104 @@ module.exports = parseOptions /***/ }), /* 144 */ -/***/ (function(module) { +/***/ (function(__unusedmodule, exports, __webpack_require__) { -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ -/* global global, define, System, Reflect, Promise */ -var __extends; -var __assign; -var __rest; -var __decorate; -var __param; -var __metadata; -var __awaiter; -var __generator; -var __exportStar; -var __values; -var __read; -var __spread; -var __spreadArrays; -var __spreadArray; -var __await; -var __asyncGenerator; -var __asyncDelegator; -var __asyncValues; -var __makeTemplateObject; -var __importStar; -var __importDefault; -var __classPrivateFieldGet; -var __classPrivateFieldSet; -var __createBinding; -(function (factory) { - var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; - if (typeof define === "function" && define.amd) { - define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); }); - } - else if ( true && typeof module.exports === "object") { - factory(createExporter(root, createExporter(module.exports))); - } - else { - factory(createExporter(root)); - } - function createExporter(exports, previous) { - if (exports !== root) { - if (typeof Object.create === "function") { - Object.defineProperty(exports, "__esModule", { value: true }); - } - else { - exports.__esModule = true; - } - } - return function (id, v) { return exports[id] = previous ? previous(id, v) : v; }; - } -}) -(function (exporter) { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - - __extends = function (d, b) { - if (typeof b !== "function" && b !== null) - throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - - __rest = function (s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) - t[p[i]] = s[p[i]]; - } - return t; - }; - - __decorate = function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; - }; - - __param = function (paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } - }; - - __metadata = function (metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); - }; - - __awaiter = function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - - __generator = function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } - }; - - __exportStar = function(m, o) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); - }; - - __createBinding = Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); - }) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; - }); - - __values = function (o) { - var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; - if (m) return m.call(o); - if (o && typeof o.length === "number") return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; - throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); - }; - - __read = function (o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; - }; - - /** @deprecated */ - __spread = function () { - for (var ar = [], i = 0; i < arguments.length; i++) - ar = ar.concat(__read(arguments[i])); - return ar; - }; - - /** @deprecated */ - __spreadArrays = function () { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; - }; - - __spreadArray = function (to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || from); - }; - - __await = function (v) { - return this instanceof __await ? (this.v = v, this) : new __await(v); - }; - - __asyncGenerator = function (thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; - function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } - function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } - function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } - function fulfill(value) { resume("next", value); } - function reject(value) { resume("throw", value); } - function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } - }; - - __asyncDelegator = function (o) { - var i, p; - return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; - function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } - }; - - __asyncValues = function (o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } - }; - - __makeTemplateObject = function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; - }; - - var __setModuleDefault = Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - }) : function(o, v) { - o["default"] = v; - }; - - __importStar = function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; - }; - - __importDefault = function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; - }; - - __classPrivateFieldGet = function (receiver, state, kind, f) { - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); - return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); - }; - - __classPrivateFieldSet = function (receiver, state, value, kind, f) { - if (kind === "m") throw new TypeError("Private method is not writable"); - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); - return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; - }; - - exporter("__extends", __extends); - exporter("__assign", __assign); - exporter("__rest", __rest); - exporter("__decorate", __decorate); - exporter("__param", __param); - exporter("__metadata", __metadata); - exporter("__awaiter", __awaiter); - exporter("__generator", __generator); - exporter("__exportStar", __exportStar); - exporter("__createBinding", __createBinding); - exporter("__values", __values); - exporter("__read", __read); - exporter("__spread", __spread); - exporter("__spreadArrays", __spreadArrays); - exporter("__spreadArray", __spreadArray); - exporter("__await", __await); - exporter("__asyncGenerator", __asyncGenerator); - exporter("__asyncDelegator", __asyncDelegator); - exporter("__asyncValues", __asyncValues); - exporter("__makeTemplateObject", __makeTemplateObject); - exporter("__importStar", __importStar); - exporter("__importDefault", __importDefault); - exporter("__classPrivateFieldGet", __classPrivateFieldGet); - exporter("__classPrivateFieldSet", __classPrivateFieldSet); -}); +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LocalDistribution = void 0; +const tc = __importStar(__webpack_require__(139)); +const core = __importStar(__webpack_require__(470)); +const fs_1 = __importDefault(__webpack_require__(747)); +const path_1 = __importDefault(__webpack_require__(622)); +const base_installer_1 = __webpack_require__(83); +const util_1 = __webpack_require__(322); +const constants_1 = __webpack_require__(211); +class LocalDistribution extends base_installer_1.JavaBase { + constructor(installerOptions, jdkFile) { + super('jdkfile', installerOptions); + this.jdkFile = jdkFile; + } + setupJava() { + return __awaiter(this, void 0, void 0, function* () { + let foundJava = this.findInToolcache(); + if (foundJava) { + core.info(`Resolved Java ${foundJava.version} from tool-cache`); + } + else { + core.info(`Java ${this.version} was not found in tool-cache. Trying to unpack JDK file...`); + if (!this.jdkFile) { + throw new Error("'jdkFile' is not specified"); + } + const jdkFilePath = path_1.default.resolve(this.jdkFile); + const stats = fs_1.default.statSync(jdkFilePath); + if (!stats.isFile()) { + throw new Error(`JDK file was not found in path '${jdkFilePath}'`); + } + core.info(`Extracting Java from '${jdkFilePath}'`); + const extractedJavaPath = yield util_1.extractJdkFile(jdkFilePath); + const archiveName = fs_1.default.readdirSync(extractedJavaPath)[0]; + const archivePath = path_1.default.join(extractedJavaPath, archiveName); + const javaVersion = this.version; + let javaPath = yield tc.cacheDir(archivePath, this.toolcacheFolderName, this.getToolcacheVersionName(javaVersion), this.architecture); + // for different Java distributions, postfix can exist or not so need to check both cases + if (process.platform === 'darwin' && + fs_1.default.existsSync(path_1.default.join(javaPath, constants_1.MACOS_JAVA_CONTENT_POSTFIX))) { + javaPath = path_1.default.join(javaPath, constants_1.MACOS_JAVA_CONTENT_POSTFIX); + } + foundJava = { + version: javaVersion, + path: javaPath + }; + } + core.info(`Setting Java ${foundJava.version} as default`); + this.setJavaDefault(foundJava.version, foundJava.path); + return foundJava; + }); + } + findPackageForDownload(version) { + return __awaiter(this, void 0, void 0, function* () { + throw new Error('This method should not be implemented in local file provider'); + }); + } + downloadTool(javaRelease) { + return __awaiter(this, void 0, void 0, function* () { + throw new Error('This method should not be implemented in local file provider'); + }); + } +} +exports.LocalDistribution = LocalDistribution; /***/ }), @@ -12325,7 +11734,202 @@ exports.fromPromise = function (fn) { /***/ }), /* 148 */, -/* 149 */, +/* 149 */ +/***/ (function(module) { + +"use strict"; + + +var conversions = {}; +module.exports = conversions; + +function sign(x) { + return x < 0 ? -1 : 1; +} + +function evenRound(x) { + // Round x to the nearest integer, choosing the even integer if it lies halfway between two. + if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor) + return Math.floor(x); + } else { + return Math.round(x); + } +} + +function createNumberConversion(bitLength, typeOpts) { + if (!typeOpts.unsigned) { + --bitLength; + } + const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength); + const upperBound = Math.pow(2, bitLength) - 1; + + const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength); + const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1); + + return function(V, opts) { + if (!opts) opts = {}; + + let x = +V; + + if (opts.enforceRange) { + if (!Number.isFinite(x)) { + throw new TypeError("Argument is not a finite number"); + } + + x = sign(x) * Math.floor(Math.abs(x)); + if (x < lowerBound || x > upperBound) { + throw new TypeError("Argument is not in byte range"); + } + + return x; + } + + if (!isNaN(x) && opts.clamp) { + x = evenRound(x); + + if (x < lowerBound) x = lowerBound; + if (x > upperBound) x = upperBound; + return x; + } + + if (!Number.isFinite(x) || x === 0) { + return 0; + } + + x = sign(x) * Math.floor(Math.abs(x)); + x = x % moduloVal; + + if (!typeOpts.unsigned && x >= moduloBound) { + return x - moduloVal; + } else if (typeOpts.unsigned) { + if (x < 0) { + x += moduloVal; + } else if (x === -0) { // don't return negative zero + return 0; + } + } + + return x; + } +} + +conversions["void"] = function () { + return undefined; +}; + +conversions["boolean"] = function (val) { + return !!val; +}; + +conversions["byte"] = createNumberConversion(8, { unsigned: false }); +conversions["octet"] = createNumberConversion(8, { unsigned: true }); + +conversions["short"] = createNumberConversion(16, { unsigned: false }); +conversions["unsigned short"] = createNumberConversion(16, { unsigned: true }); + +conversions["long"] = createNumberConversion(32, { unsigned: false }); +conversions["unsigned long"] = createNumberConversion(32, { unsigned: true }); + +conversions["long long"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 }); +conversions["unsigned long long"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 }); + +conversions["double"] = function (V) { + const x = +V; + + if (!Number.isFinite(x)) { + throw new TypeError("Argument is not a finite floating-point value"); + } + + return x; +}; + +conversions["unrestricted double"] = function (V) { + const x = +V; + + if (isNaN(x)) { + throw new TypeError("Argument is NaN"); + } + + return x; +}; + +// not quite valid, but good enough for JS +conversions["float"] = conversions["double"]; +conversions["unrestricted float"] = conversions["unrestricted double"]; + +conversions["DOMString"] = function (V, opts) { + if (!opts) opts = {}; + + if (opts.treatNullAsEmptyString && V === null) { + return ""; + } + + return String(V); +}; + +conversions["ByteString"] = function (V, opts) { + const x = String(V); + let c = undefined; + for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) { + if (c > 255) { + throw new TypeError("Argument is not a valid bytestring"); + } + } + + return x; +}; + +conversions["USVString"] = function (V) { + const S = String(V); + const n = S.length; + const U = []; + for (let i = 0; i < n; ++i) { + const c = S.charCodeAt(i); + if (c < 0xD800 || c > 0xDFFF) { + U.push(String.fromCodePoint(c)); + } else if (0xDC00 <= c && c <= 0xDFFF) { + U.push(String.fromCodePoint(0xFFFD)); + } else { + if (i === n - 1) { + U.push(String.fromCodePoint(0xFFFD)); + } else { + const d = S.charCodeAt(i + 1); + if (0xDC00 <= d && d <= 0xDFFF) { + const a = c & 0x3FF; + const b = d & 0x3FF; + U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b)); + ++i; + } else { + U.push(String.fromCodePoint(0xFFFD)); + } + } + } + } + + return U.join(''); +}; + +conversions["Date"] = function (V, opts) { + if (!(V instanceof Date)) { + throw new TypeError("Argument is not a Date object"); + } + if (isNaN(V)) { + return undefined; + } + + return V; +}; + +conversions["RegExp"] = function (V, opts) { + if (!(V instanceof RegExp)) { + V = new RegExp(V); + } + + return V; +}; + + +/***/ }), /* 150 */, /* 151 */ /***/ (function(__unusedmodule, exports, __webpack_require__) { @@ -14438,7 +14042,30 @@ exports.HTMLCollectionImpl = HTMLCollectionImpl; /***/ }), /* 205 */, /* 206 */, -/* 207 */, +/* 207 */ +/***/ (function(__unusedmodule, exports) { + +"use strict"; + +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=trace_state.js.map + +/***/ }), /* 208 */, /* 209 */, /* 210 */ @@ -14463,28 +14090,28 @@ exports.HTMLCollectionImpl = HTMLCollectionImpl; /***/ (function(__unusedmodule, exports) { "use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -exports.STATE_GPG_PRIVATE_KEY_FINGERPRINT = exports.INPUT_JOB_STATUS = exports.INPUT_CACHE = exports.INPUT_DEFAULT_GPG_PASSPHRASE = exports.INPUT_DEFAULT_GPG_PRIVATE_KEY = exports.INPUT_GPG_PASSPHRASE = exports.INPUT_GPG_PRIVATE_KEY = exports.INPUT_OVERWRITE_SETTINGS = exports.INPUT_SETTINGS_PATH = exports.INPUT_SERVER_PASSWORD = exports.INPUT_SERVER_USERNAME = exports.INPUT_SERVER_ID = exports.INPUT_CHECK_LATEST = exports.INPUT_JDK_FILE = exports.INPUT_DISTRIBUTION = exports.INPUT_JAVA_PACKAGE = exports.INPUT_ARCHITECTURE = exports.INPUT_JAVA_VERSION = exports.MACOS_JAVA_CONTENT_POSTFIX = void 0; -exports.MACOS_JAVA_CONTENT_POSTFIX = 'Contents/Home'; -exports.INPUT_JAVA_VERSION = 'java-version'; -exports.INPUT_ARCHITECTURE = 'architecture'; -exports.INPUT_JAVA_PACKAGE = 'java-package'; -exports.INPUT_DISTRIBUTION = 'distribution'; -exports.INPUT_JDK_FILE = 'jdkFile'; -exports.INPUT_CHECK_LATEST = 'check-latest'; -exports.INPUT_SERVER_ID = 'server-id'; -exports.INPUT_SERVER_USERNAME = 'server-username'; -exports.INPUT_SERVER_PASSWORD = 'server-password'; -exports.INPUT_SETTINGS_PATH = 'settings-path'; -exports.INPUT_OVERWRITE_SETTINGS = 'overwrite-settings'; -exports.INPUT_GPG_PRIVATE_KEY = 'gpg-private-key'; -exports.INPUT_GPG_PASSPHRASE = 'gpg-passphrase'; -exports.INPUT_DEFAULT_GPG_PRIVATE_KEY = undefined; -exports.INPUT_DEFAULT_GPG_PASSPHRASE = 'GPG_PASSPHRASE'; -exports.INPUT_CACHE = 'cache'; -exports.INPUT_JOB_STATUS = 'job-status'; -exports.STATE_GPG_PRIVATE_KEY_FINGERPRINT = 'gpg-private-key-fingerprint'; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.STATE_GPG_PRIVATE_KEY_FINGERPRINT = exports.INPUT_JOB_STATUS = exports.INPUT_CACHE = exports.INPUT_DEFAULT_GPG_PASSPHRASE = exports.INPUT_DEFAULT_GPG_PRIVATE_KEY = exports.INPUT_GPG_PASSPHRASE = exports.INPUT_GPG_PRIVATE_KEY = exports.INPUT_OVERWRITE_SETTINGS = exports.INPUT_SETTINGS_PATH = exports.INPUT_SERVER_PASSWORD = exports.INPUT_SERVER_USERNAME = exports.INPUT_SERVER_ID = exports.INPUT_CHECK_LATEST = exports.INPUT_JDK_FILE = exports.INPUT_DISTRIBUTION = exports.INPUT_JAVA_PACKAGE = exports.INPUT_ARCHITECTURE = exports.INPUT_JAVA_VERSION = exports.MACOS_JAVA_CONTENT_POSTFIX = void 0; +exports.MACOS_JAVA_CONTENT_POSTFIX = 'Contents/Home'; +exports.INPUT_JAVA_VERSION = 'java-version'; +exports.INPUT_ARCHITECTURE = 'architecture'; +exports.INPUT_JAVA_PACKAGE = 'java-package'; +exports.INPUT_DISTRIBUTION = 'distribution'; +exports.INPUT_JDK_FILE = 'jdkFile'; +exports.INPUT_CHECK_LATEST = 'check-latest'; +exports.INPUT_SERVER_ID = 'server-id'; +exports.INPUT_SERVER_USERNAME = 'server-username'; +exports.INPUT_SERVER_PASSWORD = 'server-password'; +exports.INPUT_SETTINGS_PATH = 'settings-path'; +exports.INPUT_OVERWRITE_SETTINGS = 'overwrite-settings'; +exports.INPUT_GPG_PRIVATE_KEY = 'gpg-private-key'; +exports.INPUT_GPG_PASSPHRASE = 'gpg-passphrase'; +exports.INPUT_DEFAULT_GPG_PRIVATE_KEY = undefined; +exports.INPUT_DEFAULT_GPG_PASSPHRASE = 'GPG_PASSPHRASE'; +exports.INPUT_CACHE = 'cache'; +exports.INPUT_JOB_STATUS = 'job-status'; +exports.STATE_GPG_PRIVATE_KEY_FINGERPRINT = 'gpg-private-key-fingerprint'; /***/ }), @@ -14529,10 +14156,12 @@ module.exports = require("punycode"); * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); -exports.NOOP_TRACER = exports.NoopTracer = void 0; -var context_1 = __webpack_require__(132); -var NoopSpan_1 = __webpack_require__(767); +exports.NoopTracer = void 0; +var context_1 = __webpack_require__(77); +var context_utils_1 = __webpack_require__(969); +var NonRecordingSpan_1 = __webpack_require__(437); var spancontext_utils_1 = __webpack_require__(453); +var context = context_1.ContextAPI.getInstance(); /** * No-op implementations of {@link Tracer}. */ @@ -14543,17 +14172,41 @@ var NoopTracer = /** @class */ (function () { NoopTracer.prototype.startSpan = function (name, options, context) { var root = Boolean(options === null || options === void 0 ? void 0 : options.root); if (root) { - return new NoopSpan_1.NoopSpan(); + return new NonRecordingSpan_1.NonRecordingSpan(); } - var parentFromContext = context && context_1.getSpanContext(context); + var parentFromContext = context && context_utils_1.getSpanContext(context); if (isSpanContext(parentFromContext) && spancontext_utils_1.isSpanContextValid(parentFromContext)) { - return new NoopSpan_1.NoopSpan(parentFromContext); + return new NonRecordingSpan_1.NonRecordingSpan(parentFromContext); } else { - return new NoopSpan_1.NoopSpan(); + return new NonRecordingSpan_1.NonRecordingSpan(); } }; + NoopTracer.prototype.startActiveSpan = function (name, arg2, arg3, arg4) { + var opts; + var ctx; + var fn; + if (arguments.length < 2) { + return; + } + else if (arguments.length === 2) { + fn = arg2; + } + else if (arguments.length === 3) { + opts = arg2; + fn = arg3; + } + else { + opts = arg2; + ctx = arg3; + fn = arg4; + } + var parentContext = ctx !== null && ctx !== void 0 ? ctx : context.active(); + var span = this.startSpan(name, opts, parentContext); + var contextWithSpanSet = context_utils_1.setSpan(parentContext, span); + return context.with(contextWithSpanSet, fn, undefined, span); + }; return NoopTracer; }()); exports.NoopTracer = NoopTracer; @@ -14563,7 +14216,6 @@ function isSpanContext(spanContext) { typeof spanContext['traceId'] === 'string' && typeof spanContext['traceFlags'] === 'number'); } -exports.NOOP_TRACER = new NoopTracer(); //# sourceMappingURL=NoopTracer.js.map /***/ }), @@ -14631,7 +14283,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); -exports.NOOP_TRACER_PROVIDER = exports.NoopTracerProvider = void 0; +exports.NoopTracerProvider = void 0; var NoopTracer_1 = __webpack_require__(216); /** * An implementation of the {@link TracerProvider} which returns an impotent @@ -14643,12 +14295,11 @@ var NoopTracerProvider = /** @class */ (function () { function NoopTracerProvider() { } NoopTracerProvider.prototype.getTracer = function (_name, _version) { - return NoopTracer_1.NOOP_TRACER; + return new NoopTracer_1.NoopTracer(); }; return NoopTracerProvider; }()); exports.NoopTracerProvider = NoopTracerProvider; -exports.NOOP_TRACER_PROVIDER = new NoopTracerProvider(); //# sourceMappingURL=NoopTracerProvider.js.map /***/ }), @@ -15378,7 +15029,7 @@ function downloadCacheHttpClient(archiveLocation, archivePath) { const contentLengthHeader = downloadResponse.message.headers['content-length']; if (contentLengthHeader) { const expectedLength = parseInt(contentLengthHeader); - const actualLength = utils.getArchiveFileSizeIsBytes(archivePath); + const actualLength = utils.getArchiveFileSizeInBytes(archivePath); if (actualLength !== expectedLength) { throw new Error(`Incomplete download. Expected file size: ${expectedLength}, actual file size: ${actualLength}`); } @@ -15483,7 +15134,213 @@ exports.fragmentCB = builder_1.fragmentCB; //# sourceMappingURL=index.js.map /***/ }), -/* 256 */, +/* 256 */ +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +const usm = __webpack_require__(936); + +exports.implementation = class URLImpl { + constructor(constructorArgs) { + const url = constructorArgs[0]; + const base = constructorArgs[1]; + + let parsedBase = null; + if (base !== undefined) { + parsedBase = usm.basicURLParse(base); + if (parsedBase === "failure") { + throw new TypeError("Invalid base URL"); + } + } + + const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase }); + if (parsedURL === "failure") { + throw new TypeError("Invalid URL"); + } + + this._url = parsedURL; + + // TODO: query stuff + } + + get href() { + return usm.serializeURL(this._url); + } + + set href(v) { + const parsedURL = usm.basicURLParse(v); + if (parsedURL === "failure") { + throw new TypeError("Invalid URL"); + } + + this._url = parsedURL; + } + + get origin() { + return usm.serializeURLOrigin(this._url); + } + + get protocol() { + return this._url.scheme + ":"; + } + + set protocol(v) { + usm.basicURLParse(v + ":", { url: this._url, stateOverride: "scheme start" }); + } + + get username() { + return this._url.username; + } + + set username(v) { + if (usm.cannotHaveAUsernamePasswordPort(this._url)) { + return; + } + + usm.setTheUsername(this._url, v); + } + + get password() { + return this._url.password; + } + + set password(v) { + if (usm.cannotHaveAUsernamePasswordPort(this._url)) { + return; + } + + usm.setThePassword(this._url, v); + } + + get host() { + const url = this._url; + + if (url.host === null) { + return ""; + } + + if (url.port === null) { + return usm.serializeHost(url.host); + } + + return usm.serializeHost(url.host) + ":" + usm.serializeInteger(url.port); + } + + set host(v) { + if (this._url.cannotBeABaseURL) { + return; + } + + usm.basicURLParse(v, { url: this._url, stateOverride: "host" }); + } + + get hostname() { + if (this._url.host === null) { + return ""; + } + + return usm.serializeHost(this._url.host); + } + + set hostname(v) { + if (this._url.cannotBeABaseURL) { + return; + } + + usm.basicURLParse(v, { url: this._url, stateOverride: "hostname" }); + } + + get port() { + if (this._url.port === null) { + return ""; + } + + return usm.serializeInteger(this._url.port); + } + + set port(v) { + if (usm.cannotHaveAUsernamePasswordPort(this._url)) { + return; + } + + if (v === "") { + this._url.port = null; + } else { + usm.basicURLParse(v, { url: this._url, stateOverride: "port" }); + } + } + + get pathname() { + if (this._url.cannotBeABaseURL) { + return this._url.path[0]; + } + + if (this._url.path.length === 0) { + return ""; + } + + return "/" + this._url.path.join("/"); + } + + set pathname(v) { + if (this._url.cannotBeABaseURL) { + return; + } + + this._url.path = []; + usm.basicURLParse(v, { url: this._url, stateOverride: "path start" }); + } + + get search() { + if (this._url.query === null || this._url.query === "") { + return ""; + } + + return "?" + this._url.query; + } + + set search(v) { + // TODO: query stuff + + const url = this._url; + + if (v === "") { + url.query = null; + return; + } + + const input = v[0] === "?" ? v.substring(1) : v; + url.query = ""; + usm.basicURLParse(input, { url, stateOverride: "query" }); + } + + get hash() { + if (this._url.fragment === null || this._url.fragment === "") { + return ""; + } + + return "#" + this._url.fragment; + } + + set hash(v) { + if (v === "") { + this._url.fragment = null; + return; + } + + const input = v[0] === "#" ? v.substring(1) : v; + this._url.fragment = ""; + usm.basicURLParse(input, { url: this._url, stateOverride: "fragment" }); + } + + toJSON() { + return this.href; + } +}; + + +/***/ }), /* 257 */ /***/ (function(module, __unusedexports, __webpack_require__) { @@ -16291,318 +16148,7 @@ module.exports = intersects /***/ }), /* 260 */, /* 261 */, -/* 262 */ -/***/ (function(module) { - -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ -/* global global, define, System, Reflect, Promise */ -var __extends; -var __assign; -var __rest; -var __decorate; -var __param; -var __metadata; -var __awaiter; -var __generator; -var __exportStar; -var __values; -var __read; -var __spread; -var __spreadArrays; -var __spreadArray; -var __await; -var __asyncGenerator; -var __asyncDelegator; -var __asyncValues; -var __makeTemplateObject; -var __importStar; -var __importDefault; -var __classPrivateFieldGet; -var __classPrivateFieldSet; -var __createBinding; -(function (factory) { - var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; - if (typeof define === "function" && define.amd) { - define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); }); - } - else if ( true && typeof module.exports === "object") { - factory(createExporter(root, createExporter(module.exports))); - } - else { - factory(createExporter(root)); - } - function createExporter(exports, previous) { - if (exports !== root) { - if (typeof Object.create === "function") { - Object.defineProperty(exports, "__esModule", { value: true }); - } - else { - exports.__esModule = true; - } - } - return function (id, v) { return exports[id] = previous ? previous(id, v) : v; }; - } -}) -(function (exporter) { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - - __extends = function (d, b) { - if (typeof b !== "function" && b !== null) - throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - - __rest = function (s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) - t[p[i]] = s[p[i]]; - } - return t; - }; - - __decorate = function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; - }; - - __param = function (paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } - }; - - __metadata = function (metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); - }; - - __awaiter = function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - - __generator = function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } - }; - - __exportStar = function(m, o) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); - }; - - __createBinding = Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); - }) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; - }); - - __values = function (o) { - var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; - if (m) return m.call(o); - if (o && typeof o.length === "number") return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; - throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); - }; - - __read = function (o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; - }; - - /** @deprecated */ - __spread = function () { - for (var ar = [], i = 0; i < arguments.length; i++) - ar = ar.concat(__read(arguments[i])); - return ar; - }; - - /** @deprecated */ - __spreadArrays = function () { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; - }; - - __spreadArray = function (to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || from); - }; - - __await = function (v) { - return this instanceof __await ? (this.v = v, this) : new __await(v); - }; - - __asyncGenerator = function (thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; - function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } - function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } - function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } - function fulfill(value) { resume("next", value); } - function reject(value) { resume("throw", value); } - function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } - }; - - __asyncDelegator = function (o) { - var i, p; - return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; - function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } - }; - - __asyncValues = function (o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } - }; - - __makeTemplateObject = function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; - }; - - var __setModuleDefault = Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - }) : function(o, v) { - o["default"] = v; - }; - - __importStar = function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; - }; - - __importDefault = function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; - }; - - __classPrivateFieldGet = function (receiver, state, kind, f) { - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); - return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); - }; - - __classPrivateFieldSet = function (receiver, state, value, kind, f) { - if (kind === "m") throw new TypeError("Private method is not writable"); - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); - return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; - }; - - exporter("__extends", __extends); - exporter("__assign", __assign); - exporter("__rest", __rest); - exporter("__decorate", __decorate); - exporter("__param", __param); - exporter("__metadata", __metadata); - exporter("__awaiter", __awaiter); - exporter("__generator", __generator); - exporter("__exportStar", __exportStar); - exporter("__createBinding", __createBinding); - exporter("__values", __values); - exporter("__read", __read); - exporter("__spread", __spread); - exporter("__spreadArrays", __spreadArrays); - exporter("__spreadArray", __spreadArray); - exporter("__await", __await); - exporter("__asyncGenerator", __asyncGenerator); - exporter("__asyncDelegator", __asyncDelegator); - exporter("__asyncValues", __asyncValues); - exporter("__makeTemplateObject", __makeTemplateObject); - exporter("__importStar", __importStar); - exporter("__importDefault", __importDefault); - exporter("__classPrivateFieldGet", __classPrivateFieldGet); - exporter("__classPrivateFieldSet", __classPrivateFieldSet); -}); - - -/***/ }), +/* 262 */, /* 263 */ /***/ (function(__unusedmodule, exports) { @@ -18887,160 +18433,160 @@ module.exports = satisfies /***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; - -/** - * @fileoverview this file provides methods handling dependency cache - */ -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.save = exports.restore = void 0; -const path_1 = __webpack_require__(622); -const os_1 = __importDefault(__webpack_require__(87)); -const cache = __importStar(__webpack_require__(692)); -const core = __importStar(__webpack_require__(470)); -const glob = __importStar(__webpack_require__(281)); -const STATE_CACHE_PRIMARY_KEY = 'cache-primary-key'; -const CACHE_MATCHED_KEY = 'cache-matched-key'; -const CACHE_KEY_PREFIX = 'setup-java'; -const supportedPackageManager = [ - { - id: 'maven', - path: [path_1.join(os_1.default.homedir(), '.m2', 'repository')], - // https://github.com/actions/cache/blob/0638051e9af2c23d10bb70fa9beffcad6cff9ce3/examples.md#java---maven - pattern: ['**/pom.xml'] - }, - { - id: 'gradle', - path: [path_1.join(os_1.default.homedir(), '.gradle', 'caches'), path_1.join(os_1.default.homedir(), '.gradle', 'wrapper')], - // https://github.com/actions/cache/blob/0638051e9af2c23d10bb70fa9beffcad6cff9ce3/examples.md#java---gradle - pattern: ['**/*.gradle*', '**/gradle-wrapper.properties'] - } -]; -function findPackageManager(id) { - const packageManager = supportedPackageManager.find(packageManager => packageManager.id === id); - if (packageManager === undefined) { - throw new Error(`unknown package manager specified: ${id}`); - } - return packageManager; -} -/** - * A function that generates a cache key to use. - * Format of the generated key will be "${{ platform }}-${{ id }}-${{ fileHash }}"". - * If there is no file matched to {@link PackageManager.path}, the generated key ends with a dash (-). - * @see {@link https://docs.github.com/en/actions/guides/caching-dependencies-to-speed-up-workflows#matching-a-cache-key|spec of cache key} - */ -function computeCacheKey(packageManager) { - return __awaiter(this, void 0, void 0, function* () { - const hash = yield glob.hashFiles(packageManager.pattern.join('\n')); - return `${CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${packageManager.id}-${hash}`; - }); -} -/** - * Restore the dependency cache - * @param id ID of the package manager, should be "maven" or "gradle" - */ -function restore(id) { - return __awaiter(this, void 0, void 0, function* () { - const packageManager = findPackageManager(id); - const primaryKey = yield computeCacheKey(packageManager); - core.debug(`primary key is ${primaryKey}`); - core.saveState(STATE_CACHE_PRIMARY_KEY, primaryKey); - if (primaryKey.endsWith('-')) { - throw new Error(`No file in ${process.cwd()} matched to [${packageManager.pattern}], make sure you have checked out the target repository`); - } - const matchedKey = yield cache.restoreCache(packageManager.path, primaryKey, [ - `${CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${id}` - ]); - if (matchedKey) { - core.saveState(CACHE_MATCHED_KEY, matchedKey); - core.info(`Cache restored from key: ${matchedKey}`); - } - else { - core.info(`${packageManager.id} cache is not found`); - } - }); -} -exports.restore = restore; -/** - * Save the dependency cache - * @param id ID of the package manager, should be "maven" or "gradle" - */ -function save(id) { - return __awaiter(this, void 0, void 0, function* () { - const packageManager = findPackageManager(id); - const matchedKey = core.getState(CACHE_MATCHED_KEY); - // Inputs are re-evaluted before the post action, so we want the original key used for restore - const primaryKey = core.getState(STATE_CACHE_PRIMARY_KEY); - if (!primaryKey) { - core.warning('Error retrieving key from state.'); - return; - } - else if (matchedKey === primaryKey) { - // no change in target directories - core.info(`Cache hit occurred on the primary key ${primaryKey}, not saving cache.`); - return; - } - try { - yield cache.saveCache(packageManager.path, primaryKey); - core.info(`Cache saved with the key: ${primaryKey}`); - } - catch (error) { - if (error.name === cache.ReserveCacheError.name) { - core.info(error.message); - } - else { - if (isProbablyGradleDaemonProblem(packageManager, error)) { - core.warning('Failed to save Gradle cache on Windows. If tar.exe reported "Permission denied", try to run Gradle with `--no-daemon` option. Refer to https://github.com/actions/cache/issues/454 for details.'); - } - throw error; - } - } - }); -} -exports.save = save; -/** - * @param packageManager the specified package manager by user - * @param error the error thrown by the saveCache - * @returns true if the given error seems related to the {@link https://github.com/actions/cache/issues/454|running Gradle Daemon issue}. - * @see {@link https://github.com/actions/cache/issues/454#issuecomment-840493935|why --no-daemon is necessary} - */ -function isProbablyGradleDaemonProblem(packageManager, error) { - if (packageManager.id !== 'gradle' || process.env['RUNNER_OS'] !== 'Windows') { - return false; - } - const message = error.message || ''; - return message.startsWith('Tar failed with error: '); -} + +/** + * @fileoverview this file provides methods handling dependency cache + */ +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.save = exports.restore = void 0; +const path_1 = __webpack_require__(622); +const os_1 = __importDefault(__webpack_require__(87)); +const cache = __importStar(__webpack_require__(692)); +const core = __importStar(__webpack_require__(470)); +const glob = __importStar(__webpack_require__(281)); +const STATE_CACHE_PRIMARY_KEY = 'cache-primary-key'; +const CACHE_MATCHED_KEY = 'cache-matched-key'; +const CACHE_KEY_PREFIX = 'setup-java'; +const supportedPackageManager = [ + { + id: 'maven', + path: [path_1.join(os_1.default.homedir(), '.m2', 'repository')], + // https://github.com/actions/cache/blob/0638051e9af2c23d10bb70fa9beffcad6cff9ce3/examples.md#java---maven + pattern: ['**/pom.xml'] + }, + { + id: 'gradle', + path: [path_1.join(os_1.default.homedir(), '.gradle', 'caches'), path_1.join(os_1.default.homedir(), '.gradle', 'wrapper')], + // https://github.com/actions/cache/blob/0638051e9af2c23d10bb70fa9beffcad6cff9ce3/examples.md#java---gradle + pattern: ['**/*.gradle*', '**/gradle-wrapper.properties'] + } +]; +function findPackageManager(id) { + const packageManager = supportedPackageManager.find(packageManager => packageManager.id === id); + if (packageManager === undefined) { + throw new Error(`unknown package manager specified: ${id}`); + } + return packageManager; +} +/** + * A function that generates a cache key to use. + * Format of the generated key will be "${{ platform }}-${{ id }}-${{ fileHash }}"". + * If there is no file matched to {@link PackageManager.path}, the generated key ends with a dash (-). + * @see {@link https://docs.github.com/en/actions/guides/caching-dependencies-to-speed-up-workflows#matching-a-cache-key|spec of cache key} + */ +function computeCacheKey(packageManager) { + return __awaiter(this, void 0, void 0, function* () { + const hash = yield glob.hashFiles(packageManager.pattern.join('\n')); + return `${CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${packageManager.id}-${hash}`; + }); +} +/** + * Restore the dependency cache + * @param id ID of the package manager, should be "maven" or "gradle" + */ +function restore(id) { + return __awaiter(this, void 0, void 0, function* () { + const packageManager = findPackageManager(id); + const primaryKey = yield computeCacheKey(packageManager); + core.debug(`primary key is ${primaryKey}`); + core.saveState(STATE_CACHE_PRIMARY_KEY, primaryKey); + if (primaryKey.endsWith('-')) { + throw new Error(`No file in ${process.cwd()} matched to [${packageManager.pattern}], make sure you have checked out the target repository`); + } + const matchedKey = yield cache.restoreCache(packageManager.path, primaryKey, [ + `${CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${id}` + ]); + if (matchedKey) { + core.saveState(CACHE_MATCHED_KEY, matchedKey); + core.info(`Cache restored from key: ${matchedKey}`); + } + else { + core.info(`${packageManager.id} cache is not found`); + } + }); +} +exports.restore = restore; +/** + * Save the dependency cache + * @param id ID of the package manager, should be "maven" or "gradle" + */ +function save(id) { + return __awaiter(this, void 0, void 0, function* () { + const packageManager = findPackageManager(id); + const matchedKey = core.getState(CACHE_MATCHED_KEY); + // Inputs are re-evaluted before the post action, so we want the original key used for restore + const primaryKey = core.getState(STATE_CACHE_PRIMARY_KEY); + if (!primaryKey) { + core.warning('Error retrieving key from state.'); + return; + } + else if (matchedKey === primaryKey) { + // no change in target directories + core.info(`Cache hit occurred on the primary key ${primaryKey}, not saving cache.`); + return; + } + try { + yield cache.saveCache(packageManager.path, primaryKey); + core.info(`Cache saved with the key: ${primaryKey}`); + } + catch (error) { + if (error.name === cache.ReserveCacheError.name) { + core.info(error.message); + } + else { + if (isProbablyGradleDaemonProblem(packageManager, error)) { + core.warning('Failed to save Gradle cache on Windows. If tar.exe reported "Permission denied", try to run Gradle with `--no-daemon` option. Refer to https://github.com/actions/cache/issues/454 for details.'); + } + throw error; + } + } + }); +} +exports.save = save; +/** + * @param packageManager the specified package manager by user + * @param error the error thrown by the saveCache + * @returns true if the given error seems related to the {@link https://github.com/actions/cache/issues/454|running Gradle Daemon issue}. + * @see {@link https://github.com/actions/cache/issues/454#issuecomment-840493935|why --no-daemon is necessary} + */ +function isProbablyGradleDaemonProblem(packageManager, error) { + if (packageManager.id !== 'gradle' || process.env['RUNNER_OS'] !== 'Windows') { + return false; + } + const message = error.message || ''; + return message.startsWith('Tar failed with error: '); +} /***/ }), @@ -19050,116 +18596,116 @@ function isProbablyGradleDaemonProblem(packageManager, error) { /***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.isJobStatusSuccess = exports.getToolcachePath = exports.isVersionSatisfies = exports.getDownloadArchiveExtension = exports.extractJdkFile = exports.getVersionFromToolcachePath = exports.getBooleanInput = exports.getTempDir = void 0; -const os_1 = __importDefault(__webpack_require__(87)); -const path_1 = __importDefault(__webpack_require__(622)); -const fs = __importStar(__webpack_require__(747)); -const semver = __importStar(__webpack_require__(876)); -const core = __importStar(__webpack_require__(470)); -const tc = __importStar(__webpack_require__(139)); -const constants_1 = __webpack_require__(211); -function getTempDir() { - let tempDirectory = process.env['RUNNER_TEMP'] || os_1.default.tmpdir(); - return tempDirectory; -} -exports.getTempDir = getTempDir; -function getBooleanInput(inputName, defaultValue = false) { - return (core.getInput(inputName) || String(defaultValue)).toUpperCase() === 'TRUE'; -} -exports.getBooleanInput = getBooleanInput; -function getVersionFromToolcachePath(toolPath) { - if (toolPath) { - return path_1.default.basename(path_1.default.dirname(toolPath)); - } - return toolPath; -} -exports.getVersionFromToolcachePath = getVersionFromToolcachePath; -function extractJdkFile(toolPath, extension) { - return __awaiter(this, void 0, void 0, function* () { - if (!extension) { - extension = toolPath.endsWith('.tar.gz') ? 'tar.gz' : path_1.default.extname(toolPath); - if (extension.startsWith('.')) { - extension = extension.substring(1); - } - } - switch (extension) { - case 'tar.gz': - case 'tar': - return yield tc.extractTar(toolPath); - case 'zip': - return yield tc.extractZip(toolPath); - default: - return yield tc.extract7z(toolPath); - } - }); -} -exports.extractJdkFile = extractJdkFile; -function getDownloadArchiveExtension() { - return process.platform === 'win32' ? 'zip' : 'tar.gz'; -} -exports.getDownloadArchiveExtension = getDownloadArchiveExtension; -function isVersionSatisfies(range, version) { - var _a; - if (semver.valid(range)) { - // if full version with build digit is provided as a range (such as '1.2.3+4') - // we should check for exact equal via compareBuild - // since semver.satisfies doesn't handle 4th digit - const semRange = semver.parse(range); - if (semRange && ((_a = semRange.build) === null || _a === void 0 ? void 0 : _a.length) > 0) { - return semver.compareBuild(range, version) === 0; - } - } - return semver.satisfies(version, range); -} -exports.isVersionSatisfies = isVersionSatisfies; -function getToolcachePath(toolName, version, architecture) { - var _a; - const toolcacheRoot = (_a = process.env['RUNNER_TOOL_CACHE']) !== null && _a !== void 0 ? _a : ''; - const fullPath = path_1.default.join(toolcacheRoot, toolName, version, architecture); - if (fs.existsSync(fullPath)) { - return fullPath; - } - return null; -} -exports.getToolcachePath = getToolcachePath; -function isJobStatusSuccess() { - const jobStatus = core.getInput(constants_1.INPUT_JOB_STATUS); - return jobStatus === 'success'; -} -exports.isJobStatusSuccess = isJobStatusSuccess; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isJobStatusSuccess = exports.getToolcachePath = exports.isVersionSatisfies = exports.getDownloadArchiveExtension = exports.extractJdkFile = exports.getVersionFromToolcachePath = exports.getBooleanInput = exports.getTempDir = void 0; +const os_1 = __importDefault(__webpack_require__(87)); +const path_1 = __importDefault(__webpack_require__(622)); +const fs = __importStar(__webpack_require__(747)); +const semver = __importStar(__webpack_require__(876)); +const core = __importStar(__webpack_require__(470)); +const tc = __importStar(__webpack_require__(139)); +const constants_1 = __webpack_require__(211); +function getTempDir() { + let tempDirectory = process.env['RUNNER_TEMP'] || os_1.default.tmpdir(); + return tempDirectory; +} +exports.getTempDir = getTempDir; +function getBooleanInput(inputName, defaultValue = false) { + return (core.getInput(inputName) || String(defaultValue)).toUpperCase() === 'TRUE'; +} +exports.getBooleanInput = getBooleanInput; +function getVersionFromToolcachePath(toolPath) { + if (toolPath) { + return path_1.default.basename(path_1.default.dirname(toolPath)); + } + return toolPath; +} +exports.getVersionFromToolcachePath = getVersionFromToolcachePath; +function extractJdkFile(toolPath, extension) { + return __awaiter(this, void 0, void 0, function* () { + if (!extension) { + extension = toolPath.endsWith('.tar.gz') ? 'tar.gz' : path_1.default.extname(toolPath); + if (extension.startsWith('.')) { + extension = extension.substring(1); + } + } + switch (extension) { + case 'tar.gz': + case 'tar': + return yield tc.extractTar(toolPath); + case 'zip': + return yield tc.extractZip(toolPath); + default: + return yield tc.extract7z(toolPath); + } + }); +} +exports.extractJdkFile = extractJdkFile; +function getDownloadArchiveExtension() { + return process.platform === 'win32' ? 'zip' : 'tar.gz'; +} +exports.getDownloadArchiveExtension = getDownloadArchiveExtension; +function isVersionSatisfies(range, version) { + var _a; + if (semver.valid(range)) { + // if full version with build digit is provided as a range (such as '1.2.3+4') + // we should check for exact equal via compareBuild + // since semver.satisfies doesn't handle 4th digit + const semRange = semver.parse(range); + if (semRange && ((_a = semRange.build) === null || _a === void 0 ? void 0 : _a.length) > 0) { + return semver.compareBuild(range, version) === 0; + } + } + return semver.satisfies(version, range); +} +exports.isVersionSatisfies = isVersionSatisfies; +function getToolcachePath(toolName, version, architecture) { + var _a; + const toolcacheRoot = (_a = process.env['RUNNER_TOOL_CACHE']) !== null && _a !== void 0 ? _a : ''; + const fullPath = path_1.default.join(toolcacheRoot, toolName, version, architecture); + if (fs.existsSync(fullPath)) { + return fullPath; + } + return null; +} +exports.getToolcachePath = getToolcachePath; +function isJobStatusSuccess() { + const jobStatus = core.getInput(constants_1.INPUT_JOB_STATUS); + return jobStatus === 'success'; +} +exports.isJobStatusSuccess = isJobStatusSuccess; /***/ }), @@ -19405,7 +18951,6 @@ Object.defineProperty(exports, '__esModule', { value: true }); function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } -var tslib = __webpack_require__(909); var uuid = __webpack_require__(585); var tough = __webpack_require__(929); var http = __webpack_require__(605); @@ -19418,6 +18963,7 @@ var url = __webpack_require__(835); var stream = __webpack_require__(794); var logger$1 = __webpack_require__(492); var tunnel = __webpack_require__(856); +var tslib = __webpack_require__(909); var coreAuth = __webpack_require__(229); var xml2js = __webpack_require__(992); var os = __webpack_require__(87); @@ -19434,7 +18980,7 @@ function getHeaderKey(headerName) { } function isHttpHeadersLike(object) { if (object && typeof object === "object") { - var castObject = object; + const castObject = object; if (typeof castObject.rawHeaders === "function" && typeof castObject.clone === "function" && typeof castObject.get === "function" && @@ -19453,11 +18999,11 @@ function isHttpHeadersLike(object) { /** * A collection of HTTP header key/value pairs. */ -var HttpHeaders = /** @class */ (function () { - function HttpHeaders(rawHeaders) { +class HttpHeaders { + constructor(rawHeaders) { this._headersMap = {}; if (rawHeaders) { - for (var headerName in rawHeaders) { + for (const headerName in rawHeaders) { this.set(headerName, rawHeaders[headerName]); } } @@ -19468,100 +19014,104 @@ var HttpHeaders = /** @class */ (function () { * @param headerName - The name of the header to set. This value is case-insensitive. * @param headerValue - The value of the header to set. */ - HttpHeaders.prototype.set = function (headerName, headerValue) { + set(headerName, headerValue) { this._headersMap[getHeaderKey(headerName)] = { name: headerName, value: headerValue.toString() }; - }; + } /** * Get the header value for the provided header name, or undefined if no header exists in this * collection with the provided name. * @param headerName - The name of the header. */ - HttpHeaders.prototype.get = function (headerName) { - var header = this._headersMap[getHeaderKey(headerName)]; + get(headerName) { + const header = this._headersMap[getHeaderKey(headerName)]; return !header ? undefined : header.value; - }; + } /** * Get whether or not this header collection contains a header entry for the provided header name. */ - HttpHeaders.prototype.contains = function (headerName) { + contains(headerName) { return !!this._headersMap[getHeaderKey(headerName)]; - }; + } /** * Remove the header with the provided headerName. Return whether or not the header existed and * was removed. * @param headerName - The name of the header to remove. */ - HttpHeaders.prototype.remove = function (headerName) { - var result = this.contains(headerName); + remove(headerName) { + const result = this.contains(headerName); delete this._headersMap[getHeaderKey(headerName)]; return result; - }; + } /** * Get the headers that are contained this collection as an object. */ - HttpHeaders.prototype.rawHeaders = function () { - var result = {}; - for (var headerKey in this._headersMap) { - var header = this._headersMap[headerKey]; + rawHeaders() { + const result = {}; + for (const headerKey in this._headersMap) { + const header = this._headersMap[headerKey]; result[header.name.toLowerCase()] = header.value; } return result; - }; + } /** * Get the headers that are contained in this collection as an array. */ - HttpHeaders.prototype.headersArray = function () { - var headers = []; - for (var headerKey in this._headersMap) { + headersArray() { + const headers = []; + for (const headerKey in this._headersMap) { headers.push(this._headersMap[headerKey]); } return headers; - }; + } /** * Get the header names that are contained in this collection. */ - HttpHeaders.prototype.headerNames = function () { - var headerNames = []; - var headers = this.headersArray(); - for (var i = 0; i < headers.length; ++i) { + headerNames() { + const headerNames = []; + const headers = this.headersArray(); + for (let i = 0; i < headers.length; ++i) { headerNames.push(headers[i].name); } return headerNames; - }; + } /** * Get the header values that are contained in this collection. */ - HttpHeaders.prototype.headerValues = function () { - var headerValues = []; - var headers = this.headersArray(); - for (var i = 0; i < headers.length; ++i) { + headerValues() { + const headerValues = []; + const headers = this.headersArray(); + for (let i = 0; i < headers.length; ++i) { headerValues.push(headers[i].value); } return headerValues; - }; + } /** * Get the JSON object representation of this HTTP header collection. */ - HttpHeaders.prototype.toJson = function () { + toJson() { return this.rawHeaders(); - }; + } /** * Get the string representation of this HTTP header collection. */ - HttpHeaders.prototype.toString = function () { + toString() { return JSON.stringify(this.toJson()); - }; + } /** * Create a deep clone/copy of this HttpHeaders collection. */ - HttpHeaders.prototype.clone = function () { - return new HttpHeaders(this.rawHeaders()); - }; - return HttpHeaders; -}()); + clone() { + const resultPreservingCasing = {}; + for (const headerKey in this._headersMap) { + const header = this._headersMap[headerKey]; + resultPreservingCasing[header.name] = header.value; + } + return new HttpHeaders(resultPreservingCasing); + } +} // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. @@ -19579,7 +19129,7 @@ function encodeString(value) { function encodeByteArray(value) { // Buffer.from accepts | -- the TypeScript definition is off here // https://nodejs.org/api/buffer.html#buffer_class_method_buffer_from_arraybuffer_byteoffset_length - var bufferValue = value instanceof Buffer ? value : Buffer.from(value.buffer); + const bufferValue = value instanceof Buffer ? value : Buffer.from(value.buffer); return bufferValue.toString("base64"); } /** @@ -19592,11 +19142,11 @@ function decodeString(value) { // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -var Constants = { +const Constants = { /** * The core-http version */ - coreHttpVersion: "1.2.6", + coreHttpVersion: "2.2.2", /** * Specifies HTTP. */ @@ -19635,7 +19185,8 @@ var Constants = { PATCH: "PATCH" }, StatusCodes: { - TooManyRequests: 429 + TooManyRequests: 429, + ServiceUnavailable: 503 } }, /** @@ -19665,18 +19216,18 @@ var Constants = { /** * Default key used to access the XML attributes. */ -var XML_ATTRKEY = "$"; +const XML_ATTRKEY = "$"; /** * Default key used to access the XML value content. */ -var XML_CHARKEY = "_"; +const XML_CHARKEY = "_"; // Copyright (c) Microsoft Corporation. -var validUuidRegex = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/i; +const validUuidRegex = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/i; /** * A constant that indicates whether the environment is node.js or browser based. */ -var isNode = typeof process !== "undefined" && +const isNode = typeof process !== "undefined" && !!process.version && !!process.versions && !!process.versions.node; @@ -19702,7 +19253,7 @@ function encodeUri(uri) { * @returns The stripped version of Http Response. */ function stripResponse(response) { - var strippedResponse = {}; + const strippedResponse = {}; strippedResponse.body = response.bodyAsText; strippedResponse.headers = response.headers; strippedResponse.status = response.status; @@ -19716,7 +19267,7 @@ function stripResponse(response) { * @returns The stripped version of Http Request. */ function stripRequest(request) { - var strippedRequest = request.clone(); + const strippedRequest = request.clone(); if (strippedRequest.headers) { strippedRequest.headers.remove("authorization"); } @@ -19749,21 +19300,12 @@ function generateUuid() { * @returns A chain of resolved or rejected promises */ function executePromisesSequentially(promiseFactories, kickstart) { - var result = Promise.resolve(kickstart); - promiseFactories.forEach(function (promiseFactory) { + let result = Promise.resolve(kickstart); + promiseFactories.forEach((promiseFactory) => { result = result.then(promiseFactory); }); return result; } -/** - * A wrapper for setTimeout that resolves a promise after t milliseconds. - * @param t - The number of milliseconds to be delayed. - * @param value - The value to be resolved with after a timeout of t milliseconds. - * @returns Resolved promise - */ -function delay(t, value) { - return new Promise(function (resolve) { return setTimeout(function () { return resolve(value); }, t); }); -} /** * Converts a Promise to a callback. * @param promise - The Promise to be converted to a callback @@ -19776,13 +19318,13 @@ function promiseToCallback(promise) { throw new Error("The provided input is not a Promise."); } // eslint-disable-next-line @typescript-eslint/ban-types - return function (cb) { + return (cb) => { promise - .then(function (data) { + .then((data) => { // eslint-disable-next-line promise/no-callback-in-promise return cb(undefined, data); }) - .catch(function (err) { + .catch((err) => { // eslint-disable-next-line promise/no-callback-in-promise cb(err); }); @@ -19797,26 +19339,25 @@ function promiseToServiceCallback(promise) { if (typeof promise.then !== "function") { throw new Error("The provided input is not a Promise."); } - return function (cb) { + return (cb) => { promise - .then(function (data) { + .then((data) => { return process.nextTick(cb, undefined, data.parsedBody, data.request, data); }) - .catch(function (err) { + .catch((err) => { process.nextTick(cb, err); }); }; } function prepareXMLRootList(obj, elementName, xmlNamespaceKey, xmlNamespace) { - var _a, _b, _c; if (!Array.isArray(obj)) { obj = [obj]; } if (!xmlNamespaceKey || !xmlNamespace) { - return _a = {}, _a[elementName] = obj, _a; + return { [elementName]: obj }; } - var result = (_b = {}, _b[elementName] = obj, _b); - result[XML_ATTRKEY] = (_c = {}, _c[xmlNamespaceKey] = xmlNamespace, _c); + const result = { [elementName]: obj }; + result[XML_ATTRKEY] = { [xmlNamespaceKey]: xmlNamespace }; return result; } /** @@ -19825,14 +19366,14 @@ function prepareXMLRootList(obj, elementName, xmlNamespaceKey, xmlNamespace) { * @param sourceCtors - An array of source objects from which the properties need to be taken. */ function applyMixins(targetCtorParam, sourceCtors) { - var castTargetCtorParam = targetCtorParam; - sourceCtors.forEach(function (sourceCtor) { - Object.getOwnPropertyNames(sourceCtor.prototype).forEach(function (name) { + const castTargetCtorParam = targetCtorParam; + sourceCtors.forEach((sourceCtor) => { + Object.getOwnPropertyNames(sourceCtor.prototype).forEach((name) => { castTargetCtorParam.prototype[name] = sourceCtor.prototype[name]; }); }); } -var validateISODuration = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; +const validateISODuration = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; /** * Indicates whether the given string is in ISO 8601 format. * @param value - The value to be validated for ISO 8601 duration format. @@ -19882,19 +19423,18 @@ function isObject(input) { } // Copyright (c) Microsoft Corporation. -var Serializer = /** @class */ (function () { - function Serializer(modelMappers, isXML) { - if (modelMappers === void 0) { modelMappers = {}; } +class Serializer { + constructor(modelMappers = {}, isXML) { this.modelMappers = modelMappers; this.isXML = isXML; } - Serializer.prototype.validateConstraints = function (mapper, value, objectName) { - var failValidation = function (constraintName, constraintValue) { - throw new Error("\"" + objectName + "\" with value \"" + value + "\" should satisfy the constraint \"" + constraintName + "\": " + constraintValue + "."); + validateConstraints(mapper, value, objectName) { + const failValidation = (constraintName, constraintValue) => { + throw new Error(`"${objectName}" with value "${value}" should satisfy the constraint "${constraintName}": ${constraintValue}.`); }; if (mapper.constraints && value != undefined) { - var valueAsNumber = value; - var _a = mapper.constraints, ExclusiveMaximum = _a.ExclusiveMaximum, ExclusiveMinimum = _a.ExclusiveMinimum, InclusiveMaximum = _a.InclusiveMaximum, InclusiveMinimum = _a.InclusiveMinimum, MaxItems = _a.MaxItems, MaxLength = _a.MaxLength, MinItems = _a.MinItems, MinLength = _a.MinLength, MultipleOf = _a.MultipleOf, Pattern = _a.Pattern, UniqueItems = _a.UniqueItems; + const valueAsNumber = value; + const { ExclusiveMaximum, ExclusiveMinimum, InclusiveMaximum, InclusiveMinimum, MaxItems, MaxLength, MinItems, MinLength, MultipleOf, Pattern, UniqueItems } = mapper.constraints; if (ExclusiveMaximum != undefined && valueAsNumber >= ExclusiveMaximum) { failValidation("ExclusiveMaximum", ExclusiveMaximum); } @@ -19907,7 +19447,7 @@ var Serializer = /** @class */ (function () { if (InclusiveMinimum != undefined && valueAsNumber < InclusiveMinimum) { failValidation("InclusiveMinimum", InclusiveMinimum); } - var valueAsArray = value; + const valueAsArray = value; if (MaxItems != undefined && valueAsArray.length > MaxItems) { failValidation("MaxItems", MaxItems); } @@ -19924,17 +19464,17 @@ var Serializer = /** @class */ (function () { failValidation("MultipleOf", MultipleOf); } if (Pattern) { - var pattern = typeof Pattern === "string" ? new RegExp(Pattern) : Pattern; + const pattern = typeof Pattern === "string" ? new RegExp(Pattern) : Pattern; if (typeof value !== "string" || value.match(pattern) === null) { failValidation("Pattern", Pattern); } } if (UniqueItems && - valueAsArray.some(function (item, i, ar) { return ar.indexOf(item) !== i; })) { + valueAsArray.some((item, i, ar) => ar.indexOf(item) !== i)) { failValidation("UniqueItems", UniqueItems); } } - }; + } /** * Serialize the given object based on its metadata defined in the mapper * @@ -19944,16 +19484,15 @@ var Serializer = /** @class */ (function () { * @param options - additional options to deserialization * @returns A valid serialized Javascript object */ - Serializer.prototype.serialize = function (mapper, object, objectName, options) { + serialize(mapper, object, objectName, options = {}) { var _a, _b, _c; - if (options === void 0) { options = {}; } - var updatedOptions = { + const updatedOptions = { rootName: (_a = options.rootName) !== null && _a !== void 0 ? _a : "", includeRoot: (_b = options.includeRoot) !== null && _b !== void 0 ? _b : false, xmlCharKey: (_c = options.xmlCharKey) !== null && _c !== void 0 ? _c : XML_CHARKEY }; - var payload = {}; - var mapperType = mapper.type.name; + let payload = {}; + const mapperType = mapper.type.name; if (!objectName) { objectName = mapper.serializedName; } @@ -19972,15 +19511,15 @@ var Serializer = /** @class */ (function () { // true || null | undefined/null // false || X | undefined // undefined || X | undefined/null - var required = mapper.required, nullable = mapper.nullable; + const { required, nullable } = mapper; if (required && nullable && object === undefined) { - throw new Error(objectName + " cannot be undefined."); + throw new Error(`${objectName} cannot be undefined.`); } if (required && !nullable && object == undefined) { - throw new Error(objectName + " cannot be null or undefined."); + throw new Error(`${objectName} cannot be null or undefined.`); } if (!required && nullable === false && object === null) { - throw new Error(objectName + " cannot be null."); + throw new Error(`${objectName} cannot be null.`); } if (object == undefined) { payload = object; @@ -19995,7 +19534,7 @@ var Serializer = /** @class */ (function () { payload = serializeBasicTypes(mapperType, objectName, object); } else if (mapperType.match(/^Enum$/i) !== null) { - var enumMapper = mapper; + const enumMapper = mapper; payload = serializeEnumType(objectName, enumMapper.type.allowedValues, object); } else if (mapperType.match(/^(Date|DateTime|TimeSpan|DateTimeRfc1123|UnixTime)$/i) !== null) { @@ -20018,7 +19557,7 @@ var Serializer = /** @class */ (function () { } } return payload; - }; + } /** * Deserialize the given object based on its metadata defined in the mapper * @@ -20028,10 +19567,9 @@ var Serializer = /** @class */ (function () { * @param options - Controls behavior of XML parser and builder. * @returns A valid deserialized Javascript object */ - Serializer.prototype.deserialize = function (mapper, responseBody, objectName, options) { + deserialize(mapper, responseBody, objectName, options = {}) { var _a, _b, _c; - if (options === void 0) { options = {}; } - var updatedOptions = { + const updatedOptions = { rootName: (_a = options.rootName) !== null && _a !== void 0 ? _a : "", includeRoot: (_b = options.includeRoot) !== null && _b !== void 0 ? _b : false, xmlCharKey: (_c = options.xmlCharKey) !== null && _c !== void 0 ? _c : XML_CHARKEY @@ -20049,8 +19587,8 @@ var Serializer = /** @class */ (function () { } return responseBody; } - var payload; - var mapperType = mapper.type.name; + let payload; + const mapperType = mapper.type.name; if (!objectName) { objectName = mapper.serializedName; } @@ -20059,8 +19597,8 @@ var Serializer = /** @class */ (function () { } else { if (this.isXML) { - var xmlCharKey = updatedOptions.xmlCharKey; - var castResponseBody = responseBody; + const xmlCharKey = updatedOptions.xmlCharKey; + const castResponseBody = responseBody; /** * If the mapper specifies this as a non-composite type value but the responseBody contains * both header ("$" i.e., XML_ATTRKEY) and body ("#" i.e., XML_CHARKEY) properties, @@ -20114,11 +19652,10 @@ var Serializer = /** @class */ (function () { payload = mapper.defaultValue; } return payload; - }; - return Serializer; -}()); + } +} function trimEnd(str, ch) { - var len = str.length; + let len = str.length; while (len - 1 >= 0 && str[len - 1] === ch) { --len; } @@ -20129,10 +19666,10 @@ function bufferToBase64Url(buffer) { return undefined; } if (!(buffer instanceof Uint8Array)) { - throw new Error("Please provide an input of type Uint8Array for converting to Base64Url."); + throw new Error(`Please provide an input of type Uint8Array for converting to Base64Url.`); } // Uint8Array to Base64. - var str = encodeByteArray(buffer); + const str = encodeByteArray(buffer); // Base64 to Base64Url. return trimEnd(str, "=") .replace(/\+/g, "-") @@ -20151,12 +19688,11 @@ function base64UrlToByteArray(str) { return decodeString(str); } function splitSerializeName(prop) { - var classes = []; - var partialclass = ""; + const classes = []; + let partialclass = ""; if (prop) { - var subwords = prop.split("."); - for (var _i = 0, subwords_1 = subwords; _i < subwords_1.length; _i++) { - var item = subwords_1[_i]; + const subwords = prop.split("."); + for (const item of subwords) { if (item.charAt(item.length - 1) === "\\") { partialclass += item.substr(0, item.length - 1) + "."; } @@ -20188,32 +19724,32 @@ function serializeBasicTypes(typeName, objectName, value) { if (value !== null && value !== undefined) { if (typeName.match(/^Number$/i) !== null) { if (typeof value !== "number") { - throw new Error(objectName + " with value " + value + " must be of type number."); + throw new Error(`${objectName} with value ${value} must be of type number.`); } } else if (typeName.match(/^String$/i) !== null) { if (typeof value.valueOf() !== "string") { - throw new Error(objectName + " with value \"" + value + "\" must be of type string."); + throw new Error(`${objectName} with value "${value}" must be of type string.`); } } else if (typeName.match(/^Uuid$/i) !== null) { if (!(typeof value.valueOf() === "string" && isValidUuid(value))) { - throw new Error(objectName + " with value \"" + value + "\" must be of type string and a valid uuid."); + throw new Error(`${objectName} with value "${value}" must be of type string and a valid uuid.`); } } else if (typeName.match(/^Boolean$/i) !== null) { if (typeof value !== "boolean") { - throw new Error(objectName + " with value " + value + " must be of type boolean."); + throw new Error(`${objectName} with value ${value} must be of type boolean.`); } } else if (typeName.match(/^Stream$/i) !== null) { - var objectType = typeof value; + const objectType = typeof value; if (objectType !== "string" && objectType !== "function" && !(value instanceof ArrayBuffer) && !ArrayBuffer.isView(value) && !((typeof Blob === "function" || typeof Blob === "object") && value instanceof Blob)) { - throw new Error(objectName + " must be a string, Blob, ArrayBuffer, ArrayBufferView, or a function returning NodeJS.ReadableStream."); + throw new Error(`${objectName} must be a string, Blob, ArrayBuffer, ArrayBufferView, or a function returning NodeJS.ReadableStream.`); } } } @@ -20221,34 +19757,34 @@ function serializeBasicTypes(typeName, objectName, value) { } function serializeEnumType(objectName, allowedValues, value) { if (!allowedValues) { - throw new Error("Please provide a set of allowedValues to validate " + objectName + " as an Enum Type."); + throw new Error(`Please provide a set of allowedValues to validate ${objectName} as an Enum Type.`); } - var isPresent = allowedValues.some(function (item) { + const isPresent = allowedValues.some((item) => { if (typeof item.valueOf() === "string") { return item.toLowerCase() === value.toLowerCase(); } return item === value; }); if (!isPresent) { - throw new Error(value + " is not a valid value for " + objectName + ". The valid values are: " + JSON.stringify(allowedValues) + "."); + throw new Error(`${value} is not a valid value for ${objectName}. The valid values are: ${JSON.stringify(allowedValues)}.`); } return value; } function serializeByteArrayType(objectName, value) { - var returnValue = ""; + let returnValue = ""; if (value != undefined) { if (!(value instanceof Uint8Array)) { - throw new Error(objectName + " must be of type Uint8Array."); + throw new Error(`${objectName} must be of type Uint8Array.`); } returnValue = encodeByteArray(value); } return returnValue; } function serializeBase64UrlType(objectName, value) { - var returnValue = ""; + let returnValue = ""; if (value != undefined) { if (!(value instanceof Uint8Array)) { - throw new Error(objectName + " must be of type Uint8Array."); + throw new Error(`${objectName} must be of type Uint8Array.`); } returnValue = bufferToBase64Url(value) || ""; } @@ -20259,7 +19795,7 @@ function serializeDateTypes(typeName, value, objectName) { if (typeName.match(/^Date$/i) !== null) { if (!(value instanceof Date || (typeof value.valueOf() === "string" && !isNaN(Date.parse(value))))) { - throw new Error(objectName + " must be an instanceof Date or a string in ISO8601 format."); + throw new Error(`${objectName} must be an instanceof Date or a string in ISO8601 format.`); } value = value instanceof Date @@ -20269,58 +19805,57 @@ function serializeDateTypes(typeName, value, objectName) { else if (typeName.match(/^DateTime$/i) !== null) { if (!(value instanceof Date || (typeof value.valueOf() === "string" && !isNaN(Date.parse(value))))) { - throw new Error(objectName + " must be an instanceof Date or a string in ISO8601 format."); + throw new Error(`${objectName} must be an instanceof Date or a string in ISO8601 format.`); } value = value instanceof Date ? value.toISOString() : new Date(value).toISOString(); } else if (typeName.match(/^DateTimeRfc1123$/i) !== null) { if (!(value instanceof Date || (typeof value.valueOf() === "string" && !isNaN(Date.parse(value))))) { - throw new Error(objectName + " must be an instanceof Date or a string in RFC-1123 format."); + throw new Error(`${objectName} must be an instanceof Date or a string in RFC-1123 format.`); } value = value instanceof Date ? value.toUTCString() : new Date(value).toUTCString(); } else if (typeName.match(/^UnixTime$/i) !== null) { if (!(value instanceof Date || (typeof value.valueOf() === "string" && !isNaN(Date.parse(value))))) { - throw new Error(objectName + " must be an instanceof Date or a string in RFC-1123/ISO8601 format " + - "for it to be serialized in UnixTime/Epoch format."); + throw new Error(`${objectName} must be an instanceof Date or a string in RFC-1123/ISO8601 format ` + + `for it to be serialized in UnixTime/Epoch format.`); } value = dateToUnixTime(value); } else if (typeName.match(/^TimeSpan$/i) !== null) { if (!isDuration(value)) { - throw new Error(objectName + " must be a string in ISO 8601 format. Instead was \"" + value + "\"."); + throw new Error(`${objectName} must be a string in ISO 8601 format. Instead was "${value}".`); } } } return value; } function serializeSequenceType(serializer, mapper, object, objectName, isXml, options) { - var _a, _b; if (!Array.isArray(object)) { - throw new Error(objectName + " must be of type Array."); + throw new Error(`${objectName} must be of type Array.`); } - var elementType = mapper.type.element; + const elementType = mapper.type.element; if (!elementType || typeof elementType !== "object") { - throw new Error("element\" metadata for an Array must be defined in the " + - ("mapper and it must of type \"object\" in " + objectName + ".")); + throw new Error(`element" metadata for an Array must be defined in the ` + + `mapper and it must of type "object" in ${objectName}.`); } - var tempArray = []; - for (var i = 0; i < object.length; i++) { - var serializedValue = serializer.serialize(elementType, object[i], objectName, options); + const tempArray = []; + for (let i = 0; i < object.length; i++) { + const serializedValue = serializer.serialize(elementType, object[i], objectName, options); if (isXml && elementType.xmlNamespace) { - var xmlnsKey = elementType.xmlNamespacePrefix - ? "xmlns:" + elementType.xmlNamespacePrefix + const xmlnsKey = elementType.xmlNamespacePrefix + ? `xmlns:${elementType.xmlNamespacePrefix}` : "xmlns"; if (elementType.type.name === "Composite") { - tempArray[i] = tslib.__assign({}, serializedValue); - tempArray[i][XML_ATTRKEY] = (_a = {}, _a[xmlnsKey] = elementType.xmlNamespace, _a); + tempArray[i] = Object.assign({}, serializedValue); + tempArray[i][XML_ATTRKEY] = { [xmlnsKey]: elementType.xmlNamespace }; } else { tempArray[i] = {}; tempArray[i][options.xmlCharKey] = serializedValue; - tempArray[i][XML_ATTRKEY] = (_b = {}, _b[xmlnsKey] = elementType.xmlNamespace, _b); + tempArray[i][XML_ATTRKEY] = { [xmlnsKey]: elementType.xmlNamespace }; } } else { @@ -20330,27 +19865,25 @@ function serializeSequenceType(serializer, mapper, object, objectName, isXml, op return tempArray; } function serializeDictionaryType(serializer, mapper, object, objectName, isXml, options) { - var _a; if (typeof object !== "object") { - throw new Error(objectName + " must be of type object."); + throw new Error(`${objectName} must be of type object.`); } - var valueType = mapper.type.value; + const valueType = mapper.type.value; if (!valueType || typeof valueType !== "object") { - throw new Error("\"value\" metadata for a Dictionary must be defined in the " + - ("mapper and it must of type \"object\" in " + objectName + ".")); + throw new Error(`"value" metadata for a Dictionary must be defined in the ` + + `mapper and it must of type "object" in ${objectName}.`); } - var tempDictionary = {}; - for (var _i = 0, _b = Object.keys(object); _i < _b.length; _i++) { - var key = _b[_i]; - var serializedValue = serializer.serialize(valueType, object[key], objectName, options); + const tempDictionary = {}; + for (const key of Object.keys(object)) { + const serializedValue = serializer.serialize(valueType, object[key], objectName, options); // If the element needs an XML namespace we need to add it within the $ property tempDictionary[key] = getXmlObjectValue(valueType, serializedValue, isXml, options); } // Add the namespace to the root element if needed if (isXml && mapper.xmlNamespace) { - var xmlnsKey = mapper.xmlNamespacePrefix ? "xmlns:" + mapper.xmlNamespacePrefix : "xmlns"; - var result = tempDictionary; - result[XML_ATTRKEY] = (_a = {}, _a[xmlnsKey] = mapper.xmlNamespace, _a); + const xmlnsKey = mapper.xmlNamespacePrefix ? `xmlns:${mapper.xmlNamespacePrefix}` : "xmlns"; + const result = tempDictionary; + result[XML_ATTRKEY] = { [xmlnsKey]: mapper.xmlNamespace }; return result; } return tempDictionary; @@ -20362,9 +19895,9 @@ function serializeDictionaryType(serializer, mapper, object, objectName, isXml, * @param objectName - Name of the object being serialized */ function resolveAdditionalProperties(serializer, mapper, objectName) { - var additionalProperties = mapper.type.additionalProperties; + const additionalProperties = mapper.type.additionalProperties; if (!additionalProperties && mapper.type.className) { - var modelMapper = resolveReferencedMapper(serializer, mapper, objectName); + const modelMapper = resolveReferencedMapper(serializer, mapper, objectName); return modelMapper === null || modelMapper === void 0 ? void 0 : modelMapper.type.additionalProperties; } return additionalProperties; @@ -20376,9 +19909,9 @@ function resolveAdditionalProperties(serializer, mapper, objectName) { * @param objectName - Name of the object being serialized */ function resolveReferencedMapper(serializer, mapper, objectName) { - var className = mapper.type.className; + const className = mapper.type.className; if (!className) { - throw new Error("Class name for model \"" + objectName + "\" is not provided in the mapper \"" + JSON.stringify(mapper, undefined, 2) + "\"."); + throw new Error(`Class name for model "${objectName}" is not provided in the mapper "${JSON.stringify(mapper, undefined, 2)}".`); } return serializer.modelMappers[className]; } @@ -20388,36 +19921,34 @@ function resolveReferencedMapper(serializer, mapper, objectName) { * @param mapper - The composite mapper to resolve */ function resolveModelProperties(serializer, mapper, objectName) { - var modelProps = mapper.type.modelProperties; + let modelProps = mapper.type.modelProperties; if (!modelProps) { - var modelMapper = resolveReferencedMapper(serializer, mapper, objectName); + const modelMapper = resolveReferencedMapper(serializer, mapper, objectName); if (!modelMapper) { - throw new Error("mapper() cannot be null or undefined for model \"" + mapper.type.className + "\"."); + throw new Error(`mapper() cannot be null or undefined for model "${mapper.type.className}".`); } modelProps = modelMapper === null || modelMapper === void 0 ? void 0 : modelMapper.type.modelProperties; if (!modelProps) { - throw new Error("modelProperties cannot be null or undefined in the " + - ("mapper \"" + JSON.stringify(modelMapper) + "\" of type \"" + mapper.type.className + "\" for object \"" + objectName + "\".")); + throw new Error(`modelProperties cannot be null or undefined in the ` + + `mapper "${JSON.stringify(modelMapper)}" of type "${mapper.type.className}" for object "${objectName}".`); } } return modelProps; } function serializeCompositeType(serializer, mapper, object, objectName, isXml, options) { - var _a, _b; if (getPolymorphicDiscriminatorRecursively(serializer, mapper)) { mapper = getPolymorphicMapper(serializer, mapper, object, "clientName"); } if (object != undefined) { - var payload = {}; - var modelProps = resolveModelProperties(serializer, mapper, objectName); - for (var _i = 0, _c = Object.keys(modelProps); _i < _c.length; _i++) { - var key = _c[_i]; - var propertyMapper = modelProps[key]; + const payload = {}; + const modelProps = resolveModelProperties(serializer, mapper, objectName); + for (const key of Object.keys(modelProps)) { + const propertyMapper = modelProps[key]; if (propertyMapper.readOnly) { continue; } - var propName = void 0; - var parentObject = payload; + let propName; + let parentObject = payload; if (serializer.isXML) { if (propertyMapper.xmlIsWrapped) { propName = propertyMapper.xmlName; @@ -20427,11 +19958,10 @@ function serializeCompositeType(serializer, mapper, object, objectName, isXml, o } } else { - var paths = splitSerializeName(propertyMapper.serializedName); + const paths = splitSerializeName(propertyMapper.serializedName); propName = paths.pop(); - for (var _d = 0, paths_1 = paths; _d < paths_1.length; _d++) { - var pathName = paths_1[_d]; - var childObject = parentObject[pathName]; + for (const pathName of paths) { + const childObject = parentObject[pathName]; if (childObject == undefined && (object[key] != undefined || propertyMapper.defaultValue !== undefined)) { parentObject[pathName] = {}; @@ -20441,24 +19971,24 @@ function serializeCompositeType(serializer, mapper, object, objectName, isXml, o } if (parentObject != undefined) { if (isXml && mapper.xmlNamespace) { - var xmlnsKey = mapper.xmlNamespacePrefix - ? "xmlns:" + mapper.xmlNamespacePrefix + const xmlnsKey = mapper.xmlNamespacePrefix + ? `xmlns:${mapper.xmlNamespacePrefix}` : "xmlns"; - parentObject[XML_ATTRKEY] = tslib.__assign(tslib.__assign({}, parentObject[XML_ATTRKEY]), (_a = {}, _a[xmlnsKey] = mapper.xmlNamespace, _a)); + parentObject[XML_ATTRKEY] = Object.assign(Object.assign({}, parentObject[XML_ATTRKEY]), { [xmlnsKey]: mapper.xmlNamespace }); } - var propertyObjectName = propertyMapper.serializedName !== "" + const propertyObjectName = propertyMapper.serializedName !== "" ? objectName + "." + propertyMapper.serializedName : objectName; - var toSerialize = object[key]; - var polymorphicDiscriminator = getPolymorphicDiscriminatorRecursively(serializer, mapper); + let toSerialize = object[key]; + const polymorphicDiscriminator = getPolymorphicDiscriminatorRecursively(serializer, mapper); if (polymorphicDiscriminator && polymorphicDiscriminator.clientName === key && toSerialize == undefined) { toSerialize = mapper.serializedName; } - var serializedValue = serializer.serialize(propertyMapper, toSerialize, propertyObjectName, options); + const serializedValue = serializer.serialize(propertyMapper, toSerialize, propertyObjectName, options); if (serializedValue !== undefined && propName != undefined) { - var value = getXmlObjectValue(propertyMapper, serializedValue, isXml, options); + const value = getXmlObjectValue(propertyMapper, serializedValue, isXml, options); if (isXml && propertyMapper.xmlIsAttribute) { // XML_ATTRKEY, i.e., $ is the key attributes are kept under in xml2js. // This keeps things simple while preventing name collision @@ -20467,7 +19997,7 @@ function serializeCompositeType(serializer, mapper, object, objectName, isXml, o parentObject[XML_ATTRKEY][propName] = serializedValue; } else if (isXml && propertyMapper.xmlIsWrapped) { - parentObject[propName] = (_b = {}, _b[propertyMapper.xmlElementName] = value, _b); + parentObject[propName] = { [propertyMapper.xmlElementName]: value }; } else { parentObject[propName] = value; @@ -20475,17 +20005,14 @@ function serializeCompositeType(serializer, mapper, object, objectName, isXml, o } } } - var additionalPropertiesMapper = resolveAdditionalProperties(serializer, mapper, objectName); + const additionalPropertiesMapper = resolveAdditionalProperties(serializer, mapper, objectName); if (additionalPropertiesMapper) { - var propNames = Object.keys(modelProps); - var _loop_1 = function (clientPropName) { - var isAdditionalProperty = propNames.every(function (pn) { return pn !== clientPropName; }); + const propNames = Object.keys(modelProps); + for (const clientPropName in object) { + const isAdditionalProperty = propNames.every((pn) => pn !== clientPropName); if (isAdditionalProperty) { payload[clientPropName] = serializer.serialize(additionalPropertiesMapper, object[clientPropName], objectName + '["' + clientPropName + '"]', options); } - }; - for (var clientPropName in object) { - _loop_1(clientPropName); } } return payload; @@ -20493,25 +20020,24 @@ function serializeCompositeType(serializer, mapper, object, objectName, isXml, o return object; } function getXmlObjectValue(propertyMapper, serializedValue, isXml, options) { - var _a; if (!isXml || !propertyMapper.xmlNamespace) { return serializedValue; } - var xmlnsKey = propertyMapper.xmlNamespacePrefix - ? "xmlns:" + propertyMapper.xmlNamespacePrefix + const xmlnsKey = propertyMapper.xmlNamespacePrefix + ? `xmlns:${propertyMapper.xmlNamespacePrefix}` : "xmlns"; - var xmlNamespace = (_a = {}, _a[xmlnsKey] = propertyMapper.xmlNamespace, _a); + const xmlNamespace = { [xmlnsKey]: propertyMapper.xmlNamespace }; if (["Composite"].includes(propertyMapper.type.name)) { if (serializedValue[XML_ATTRKEY]) { return serializedValue; } else { - var result_1 = tslib.__assign({}, serializedValue); - result_1[XML_ATTRKEY] = xmlNamespace; - return result_1; + const result = Object.assign({}, serializedValue); + result[XML_ATTRKEY] = xmlNamespace; + return result; } } - var result = {}; + const result = {}; result[options.xmlCharKey] = serializedValue; result[XML_ATTRKEY] = xmlNamespace; return result; @@ -20524,24 +20050,22 @@ function deserializeCompositeType(serializer, mapper, responseBody, objectName, if (getPolymorphicDiscriminatorRecursively(serializer, mapper)) { mapper = getPolymorphicMapper(serializer, mapper, responseBody, "serializedName"); } - var modelProps = resolveModelProperties(serializer, mapper, objectName); - var instance = {}; - var handledPropertyNames = []; - for (var _i = 0, _b = Object.keys(modelProps); _i < _b.length; _i++) { - var key = _b[_i]; - var propertyMapper = modelProps[key]; - var paths = splitSerializeName(modelProps[key].serializedName); + const modelProps = resolveModelProperties(serializer, mapper, objectName); + let instance = {}; + const handledPropertyNames = []; + for (const key of Object.keys(modelProps)) { + const propertyMapper = modelProps[key]; + const paths = splitSerializeName(modelProps[key].serializedName); handledPropertyNames.push(paths[0]); - var serializedName = propertyMapper.serializedName, xmlName = propertyMapper.xmlName, xmlElementName = propertyMapper.xmlElementName; - var propertyObjectName = objectName; + const { serializedName, xmlName, xmlElementName } = propertyMapper; + let propertyObjectName = objectName; if (serializedName !== "" && serializedName !== undefined) { propertyObjectName = objectName + "." + serializedName; } - var headerCollectionPrefix = propertyMapper.headerCollectionPrefix; + const headerCollectionPrefix = propertyMapper.headerCollectionPrefix; if (headerCollectionPrefix) { - var dictionary = {}; - for (var _c = 0, _d = Object.keys(responseBody); _c < _d.length; _c++) { - var headerKey = _d[_c]; + const dictionary = {}; + for (const headerKey of Object.keys(responseBody)) { if (headerKey.startsWith(headerCollectionPrefix)) { dictionary[headerKey.substring(headerCollectionPrefix.length)] = serializer.deserialize(propertyMapper.type.value, responseBody[headerKey], propertyObjectName, options); } @@ -20554,7 +20078,7 @@ function deserializeCompositeType(serializer, mapper, responseBody, objectName, instance[key] = serializer.deserialize(propertyMapper, responseBody[XML_ATTRKEY][xmlName], propertyObjectName, options); } else { - var propertyName = xmlElementName || xmlName || serializedName; + const propertyName = xmlElementName || xmlName || serializedName; if (propertyMapper.xmlIsWrapped) { /* a list of wrapped by For the xml example below @@ -20570,29 +20094,28 @@ function deserializeCompositeType(serializer, mapper, responseBody, objectName, } xmlName is "Cors" and xmlElementName is"CorsRule". */ - var wrapped = responseBody[xmlName]; - var elementList = (_a = wrapped === null || wrapped === void 0 ? void 0 : wrapped[xmlElementName]) !== null && _a !== void 0 ? _a : []; + const wrapped = responseBody[xmlName]; + const elementList = (_a = wrapped === null || wrapped === void 0 ? void 0 : wrapped[xmlElementName]) !== null && _a !== void 0 ? _a : []; instance[key] = serializer.deserialize(propertyMapper, elementList, propertyObjectName, options); } else { - var property = responseBody[propertyName]; + const property = responseBody[propertyName]; instance[key] = serializer.deserialize(propertyMapper, property, propertyObjectName, options); } } } else { // deserialize the property if it is present in the provided responseBody instance - var propertyInstance = void 0; - var res = responseBody; + let propertyInstance; + let res = responseBody; // traversing the object step by step. - for (var _e = 0, paths_2 = paths; _e < paths_2.length; _e++) { - var item = paths_2[_e]; + for (const item of paths) { if (!res) break; res = res[item]; } propertyInstance = res; - var polymorphicDiscriminator = mapper.type.polymorphicDiscriminator; + const polymorphicDiscriminator = mapper.type.polymorphicDiscriminator; // checking that the model property name (key)(ex: "fishtype") and the // clientName of the polymorphicDiscriminator {metadata} (ex: "fishtype") // instead of the serializedName of the polymorphicDiscriminator (ex: "fish.type") @@ -20607,15 +20130,14 @@ function deserializeCompositeType(serializer, mapper, responseBody, objectName, propertyInstance == undefined) { propertyInstance = mapper.serializedName; } - var serializedValue = void 0; + let serializedValue; // paging if (Array.isArray(responseBody[key]) && modelProps[key].serializedName === "") { propertyInstance = responseBody[key]; - var arrayInstance = serializer.deserialize(propertyMapper, propertyInstance, propertyObjectName, options); + const arrayInstance = serializer.deserialize(propertyMapper, propertyInstance, propertyObjectName, options); // Copy over any properties that have already been added into the instance, where they do // not exist on the newly de-serialized array - for (var _f = 0, _g = Object.entries(instance); _f < _g.length; _f++) { - var _h = _g[_f], k = _h[0], v = _h[1]; + for (const [k, v] of Object.entries(instance)) { if (!Object.prototype.hasOwnProperty.call(arrayInstance, k)) { arrayInstance[k] = v; } @@ -20628,26 +20150,25 @@ function deserializeCompositeType(serializer, mapper, responseBody, objectName, } } } - var additionalPropertiesMapper = mapper.type.additionalProperties; + const additionalPropertiesMapper = mapper.type.additionalProperties; if (additionalPropertiesMapper) { - var isAdditionalProperty = function (responsePropName) { - for (var clientPropName in modelProps) { - var paths = splitSerializeName(modelProps[clientPropName].serializedName); + const isAdditionalProperty = (responsePropName) => { + for (const clientPropName in modelProps) { + const paths = splitSerializeName(modelProps[clientPropName].serializedName); if (paths[0] === responsePropName) { return false; } } return true; }; - for (var responsePropName in responseBody) { + for (const responsePropName in responseBody) { if (isAdditionalProperty(responsePropName)) { instance[responsePropName] = serializer.deserialize(additionalPropertiesMapper, responseBody[responsePropName], objectName + '["' + responsePropName + '"]', options); } } } else if (responseBody) { - for (var _j = 0, _k = Object.keys(responseBody); _j < _k.length; _j++) { - var key = _k[_j]; + for (const key of Object.keys(responseBody)) { if (instance[key] === undefined && !handledPropertyNames.includes(key) && !isSpecialXmlProperty(key, options)) { @@ -20658,15 +20179,14 @@ function deserializeCompositeType(serializer, mapper, responseBody, objectName, return instance; } function deserializeDictionaryType(serializer, mapper, responseBody, objectName, options) { - var value = mapper.type.value; + const value = mapper.type.value; if (!value || typeof value !== "object") { - throw new Error("\"value\" metadata for a Dictionary must be defined in the " + - ("mapper and it must of type \"object\" in " + objectName)); + throw new Error(`"value" metadata for a Dictionary must be defined in the ` + + `mapper and it must of type "object" in ${objectName}`); } if (responseBody) { - var tempDictionary = {}; - for (var _i = 0, _a = Object.keys(responseBody); _i < _a.length; _i++) { - var key = _a[_i]; + const tempDictionary = {}; + for (const key of Object.keys(responseBody)) { tempDictionary[key] = serializer.deserialize(value, responseBody[key], objectName, options); } return tempDictionary; @@ -20674,36 +20194,36 @@ function deserializeDictionaryType(serializer, mapper, responseBody, objectName, return responseBody; } function deserializeSequenceType(serializer, mapper, responseBody, objectName, options) { - var element = mapper.type.element; + const element = mapper.type.element; if (!element || typeof element !== "object") { - throw new Error("element\" metadata for an Array must be defined in the " + - ("mapper and it must of type \"object\" in " + objectName)); + throw new Error(`element" metadata for an Array must be defined in the ` + + `mapper and it must of type "object" in ${objectName}`); } if (responseBody) { if (!Array.isArray(responseBody)) { // xml2js will interpret a single element array as just the element, so force it to be an array responseBody = [responseBody]; } - var tempArray = []; - for (var i = 0; i < responseBody.length; i++) { - tempArray[i] = serializer.deserialize(element, responseBody[i], objectName + "[" + i + "]", options); + const tempArray = []; + for (let i = 0; i < responseBody.length; i++) { + tempArray[i] = serializer.deserialize(element, responseBody[i], `${objectName}[${i}]`, options); } return tempArray; } return responseBody; } function getPolymorphicMapper(serializer, mapper, object, polymorphicPropertyName) { - var polymorphicDiscriminator = getPolymorphicDiscriminatorRecursively(serializer, mapper); + const polymorphicDiscriminator = getPolymorphicDiscriminatorRecursively(serializer, mapper); if (polymorphicDiscriminator) { - var discriminatorName = polymorphicDiscriminator[polymorphicPropertyName]; + const discriminatorName = polymorphicDiscriminator[polymorphicPropertyName]; if (discriminatorName != undefined) { - var discriminatorValue = object[discriminatorName]; + const discriminatorValue = object[discriminatorName]; if (discriminatorValue != undefined) { - var typeName = mapper.type.uberParent || mapper.type.className; - var indexDiscriminator = discriminatorValue === typeName + const typeName = mapper.type.uberParent || mapper.type.className; + const indexDiscriminator = discriminatorValue === typeName ? discriminatorValue : typeName + "." + discriminatorValue; - var polymorphicMapper = serializer.modelMappers.discriminators[indexDiscriminator]; + const polymorphicMapper = serializer.modelMappers.discriminators[indexDiscriminator]; if (polymorphicMapper) { mapper = polymorphicMapper; } @@ -20724,7 +20244,7 @@ function getPolymorphicDiscriminatorSafely(serializer, typeName) { } // TODO: why is this here? function serializeObject(toSerialize) { - var castToSerialize = toSerialize; + const castToSerialize = toSerialize; if (toSerialize == undefined) return undefined; if (toSerialize instanceof Uint8Array) { @@ -20735,15 +20255,15 @@ function serializeObject(toSerialize) { return toSerialize.toISOString(); } else if (Array.isArray(toSerialize)) { - var array = []; - for (var i = 0; i < toSerialize.length; i++) { + const array = []; + for (let i = 0; i < toSerialize.length; i++) { array.push(serializeObject(toSerialize[i])); } return array; } else if (typeof toSerialize === "object") { - var dictionary = {}; - for (var property in toSerialize) { + const dictionary = {}; + for (const property in toSerialize) { dictionary[property] = serializeObject(castToSerialize[property]); } return dictionary; @@ -20754,15 +20274,14 @@ function serializeObject(toSerialize) { * Utility function to create a K:V from a list of strings */ function strEnum(o) { - var result = {}; - for (var _i = 0, o_1 = o; _i < o_1.length; _i++) { - var key = o_1[_i]; + const result = {}; + for (const key of o) { result[key] = key; } return result; } // eslint-disable-next-line @typescript-eslint/no-redeclare -var MapperType = strEnum([ +const MapperType = strEnum([ "Base64Url", "Boolean", "ByteArray", @@ -20784,7 +20303,7 @@ var MapperType = strEnum([ // Copyright (c) Microsoft Corporation. function isWebResourceLike(object) { if (object && typeof object === "object") { - var castObject = object; + const castObject = object; if (typeof castObject.url === "string" && typeof castObject.method === "string" && typeof castObject.headers === "object" && @@ -20803,8 +20322,8 @@ function isWebResourceLike(object) { * This class provides an abstraction over a REST call by being library / implementation agnostic and wrapping the necessary * properties to initiate a request. */ -var WebResource = /** @class */ (function () { - function WebResource(url, method, body, query, headers, streamResponseBody, withCredentials, abortSignal, timeout, onUploadProgress, onDownloadProgress, proxySettings, keepAlive, decompressResponse, streamResponseStatusCodes) { +class WebResource { + constructor(url, method, body, query, headers, streamResponseBody, withCredentials, abortSignal, timeout, onUploadProgress, onDownloadProgress, proxySettings, keepAlive, decompressResponse, streamResponseStatusCodes) { this.streamResponseBody = streamResponseBody; this.streamResponseStatusCodes = streamResponseStatusCodes; this.url = url || ""; @@ -20828,20 +20347,20 @@ var WebResource = /** @class */ (function () { * headers["accept-language"] are defined. It will throw an error if one of the above * mentioned properties are not defined. */ - WebResource.prototype.validateRequestProperties = function () { + validateRequestProperties() { if (!this.method) { throw new Error("WebResource.method is required."); } if (!this.url) { throw new Error("WebResource.url is required."); } - }; + } /** * Prepares the request. * @param options - Options to provide for preparing the request. * @returns Returns the prepared WebResource (HTTP Request) object that needs to be given to the request pipeline. */ - WebResource.prototype.prepare = function (options) { + prepare(options) { if (!options) { throw new Error("options object is required"); } @@ -20870,7 +20389,7 @@ var WebResource = /** @class */ (function () { } // set the method if (options.method) { - var validMethods = ["GET", "PUT", "HEAD", "DELETE", "OPTIONS", "POST", "PATCH", "TRACE"]; + const validMethods = ["GET", "PUT", "HEAD", "DELETE", "OPTIONS", "POST", "PATCH", "TRACE"]; if (validMethods.indexOf(options.method.toUpperCase()) === -1) { throw new Error('The provided method "' + options.method + @@ -20881,70 +20400,70 @@ var WebResource = /** @class */ (function () { this.method = options.method.toUpperCase(); // construct the url if path template is provided if (options.pathTemplate) { - var pathTemplate_1 = options.pathTemplate, pathParameters_1 = options.pathParameters; - if (typeof pathTemplate_1 !== "string") { + const { pathTemplate, pathParameters } = options; + if (typeof pathTemplate !== "string") { throw new Error('options.pathTemplate must be of type "string".'); } if (!options.baseUrl) { options.baseUrl = "https://management.azure.com"; } - var baseUrl = options.baseUrl; - var url_1 = baseUrl + + const baseUrl = options.baseUrl; + let url = baseUrl + (baseUrl.endsWith("/") ? "" : "/") + - (pathTemplate_1.startsWith("/") ? pathTemplate_1.slice(1) : pathTemplate_1); - var segments = url_1.match(/({[\w-]*\s*[\w-]*})/gi); + (pathTemplate.startsWith("/") ? pathTemplate.slice(1) : pathTemplate); + const segments = url.match(/({[\w-]*\s*[\w-]*})/gi); if (segments && segments.length) { - if (!pathParameters_1) { - throw new Error("pathTemplate: " + pathTemplate_1 + " has been provided. Hence, options.pathParameters must also be provided."); + if (!pathParameters) { + throw new Error(`pathTemplate: ${pathTemplate} has been provided. Hence, options.pathParameters must also be provided.`); } segments.forEach(function (item) { - var pathParamName = item.slice(1, -1); - var pathParam = pathParameters_1[pathParamName]; + const pathParamName = item.slice(1, -1); + const pathParam = pathParameters[pathParamName]; if (pathParam === null || pathParam === undefined || !(typeof pathParam === "string" || typeof pathParam === "object")) { - var stringifiedPathParameters = JSON.stringify(pathParameters_1, undefined, 2); - throw new Error("pathTemplate: " + pathTemplate_1 + " contains the path parameter " + pathParamName + - (" however, it is not present in parameters: " + stringifiedPathParameters + ".") + - ("The value of the path parameter can either be a \"string\" of the form { " + pathParamName + ": \"some sample value\" } or ") + - ("it can be an \"object\" of the form { \"" + pathParamName + "\": { value: \"some sample value\", skipUrlEncoding: true } }.")); + const stringifiedPathParameters = JSON.stringify(pathParameters, undefined, 2); + throw new Error(`pathTemplate: ${pathTemplate} contains the path parameter ${pathParamName}` + + ` however, it is not present in parameters: ${stringifiedPathParameters}.` + + `The value of the path parameter can either be a "string" of the form { ${pathParamName}: "some sample value" } or ` + + `it can be an "object" of the form { "${pathParamName}": { value: "some sample value", skipUrlEncoding: true } }.`); } if (typeof pathParam.valueOf() === "string") { - url_1 = url_1.replace(item, encodeURIComponent(pathParam)); + url = url.replace(item, encodeURIComponent(pathParam)); } if (typeof pathParam.valueOf() === "object") { if (!pathParam.value) { - throw new Error("options.pathParameters[" + pathParamName + "] is of type \"object\" but it does not contain a \"value\" property."); + throw new Error(`options.pathParameters[${pathParamName}] is of type "object" but it does not contain a "value" property.`); } if (pathParam.skipUrlEncoding) { - url_1 = url_1.replace(item, pathParam.value); + url = url.replace(item, pathParam.value); } else { - url_1 = url_1.replace(item, encodeURIComponent(pathParam.value)); + url = url.replace(item, encodeURIComponent(pathParam.value)); } } }); } - this.url = url_1; + this.url = url; } // append query parameters to the url if they are provided. They can be provided with pathTemplate or url option. if (options.queryParameters) { - var queryParameters = options.queryParameters; + const queryParameters = options.queryParameters; if (typeof queryParameters !== "object") { - throw new Error("options.queryParameters must be of type object. It should be a JSON object " + - "of \"query-parameter-name\" as the key and the \"query-parameter-value\" as the value. " + - "The \"query-parameter-value\" may be fo type \"string\" or an \"object\" of the form { value: \"query-parameter-value\", skipUrlEncoding: true }."); + throw new Error(`options.queryParameters must be of type object. It should be a JSON object ` + + `of "query-parameter-name" as the key and the "query-parameter-value" as the value. ` + + `The "query-parameter-value" may be fo type "string" or an "object" of the form { value: "query-parameter-value", skipUrlEncoding: true }.`); } // append question mark if it is not present in the url if (this.url && this.url.indexOf("?") === -1) { this.url += "?"; } // construct queryString - var queryParams = []; + const queryParams = []; // We need to populate this.query as a dictionary if the request is being used for Sway's validateRequest(). this.query = {}; - for (var queryParamName in queryParameters) { - var queryParam = queryParameters[queryParamName]; + for (const queryParamName in queryParameters) { + const queryParam = queryParameters[queryParamName]; if (queryParam) { if (typeof queryParam === "string") { queryParams.push(queryParamName + "=" + encodeURIComponent(queryParam)); @@ -20952,7 +20471,7 @@ var WebResource = /** @class */ (function () { } else if (typeof queryParam === "object") { if (!queryParam.value) { - throw new Error("options.queryParameters[" + queryParamName + "] is of type \"object\" but it does not contain a \"value\" property."); + throw new Error(`options.queryParameters[${queryParamName}] is of type "object" but it does not contain a "value" property.`); } if (queryParam.skipUrlEncoding) { queryParams.push(queryParamName + "=" + queryParam.value); @@ -20970,9 +20489,8 @@ var WebResource = /** @class */ (function () { } // add headers to the request if they are provided if (options.headers) { - var headers = options.headers; - for (var _i = 0, _a = Object.keys(options.headers); _i < _a.length; _i++) { - var headerName = _a[_i]; + const headers = options.headers; + for (const headerName of Object.keys(options.headers)) { this.headers.set(headerName, headers[headerName]); } } @@ -21019,13 +20537,13 @@ var WebResource = /** @class */ (function () { this.onDownloadProgress = options.onDownloadProgress; this.onUploadProgress = options.onUploadProgress; return this; - }; + } /** * Clone this WebResource HTTP request object. * @returns The clone of this WebResource HTTP request object. */ - WebResource.prototype.clone = function () { - var result = new WebResource(this.url, this.method, this.body, this.query, this.headers && this.headers.clone(), this.streamResponseBody, this.withCredentials, this.abortSignal, this.timeout, this.onUploadProgress, this.onDownloadProgress, this.proxySettings, this.keepAlive, this.decompressResponse, this.streamResponseStatusCodes); + clone() { + const result = new WebResource(this.url, this.method, this.body, this.query, this.headers && this.headers.clone(), this.streamResponseBody, this.withCredentials, this.abortSignal, this.timeout, this.onUploadProgress, this.onDownloadProgress, this.proxySettings, this.keepAlive, this.decompressResponse, this.streamResponseStatusCodes); if (this.formData) { result.formData = this.formData; } @@ -21039,43 +20557,42 @@ var WebResource = /** @class */ (function () { result.operationResponseGetter = this.operationResponseGetter; } return result; - }; - return WebResource; -}()); + } +} // Copyright (c) Microsoft Corporation. -var custom = util.inspect.custom; +const custom = util.inspect.custom; // Copyright (c) Microsoft Corporation. /** * A class that handles the query portion of a URLBuilder. */ -var URLQuery = /** @class */ (function () { - function URLQuery() { +class URLQuery { + constructor() { this._rawQuery = {}; } /** * Get whether or not there any query parameters in this URLQuery. */ - URLQuery.prototype.any = function () { + any() { return Object.keys(this._rawQuery).length > 0; - }; + } /** * Get the keys of the query string. */ - URLQuery.prototype.keys = function () { + keys() { return Object.keys(this._rawQuery); - }; + } /** * Set a query parameter with the provided name and value. If the parameterValue is undefined or * empty, then this will attempt to remove an existing query parameter with the provided * parameterName. */ - URLQuery.prototype.set = function (parameterName, parameterValue) { - var caseParameterValue = parameterValue; + set(parameterName, parameterValue) { + const caseParameterValue = parameterValue; if (parameterName) { if (caseParameterValue !== undefined && caseParameterValue !== null) { - var newValue = Array.isArray(caseParameterValue) + const newValue = Array.isArray(caseParameterValue) ? caseParameterValue : caseParameterValue.toString(); this._rawQuery[parameterName] = newValue; @@ -21084,52 +20601,51 @@ var URLQuery = /** @class */ (function () { delete this._rawQuery[parameterName]; } } - }; + } /** * Get the value of the query parameter with the provided name. If no parameter exists with the * provided parameter name, then undefined will be returned. */ - URLQuery.prototype.get = function (parameterName) { + get(parameterName) { return parameterName ? this._rawQuery[parameterName] : undefined; - }; + } /** * Get the string representation of this query. The return value will not start with a "?". */ - URLQuery.prototype.toString = function () { - var result = ""; - for (var parameterName in this._rawQuery) { + toString() { + let result = ""; + for (const parameterName in this._rawQuery) { if (result) { result += "&"; } - var parameterValue = this._rawQuery[parameterName]; + const parameterValue = this._rawQuery[parameterName]; if (Array.isArray(parameterValue)) { - var parameterStrings = []; - for (var _i = 0, parameterValue_1 = parameterValue; _i < parameterValue_1.length; _i++) { - var parameterValueElement = parameterValue_1[_i]; - parameterStrings.push(parameterName + "=" + parameterValueElement); + const parameterStrings = []; + for (const parameterValueElement of parameterValue) { + parameterStrings.push(`${parameterName}=${parameterValueElement}`); } result += parameterStrings.join("&"); } else { - result += parameterName + "=" + parameterValue; + result += `${parameterName}=${parameterValue}`; } } return result; - }; + } /** * Parse a URLQuery from the provided text. */ - URLQuery.parse = function (text) { - var result = new URLQuery(); + static parse(text) { + const result = new URLQuery(); if (text) { if (text.startsWith("?")) { text = text.substring(1); } - var currentState = "ParameterName"; - var parameterName = ""; - var parameterValue = ""; - for (var i = 0; i < text.length; ++i) { - var currentCharacter = text[i]; + let currentState = "ParameterName"; + let parameterName = ""; + let parameterValue = ""; + for (let i = 0; i < text.length; ++i) { + const currentCharacter = text[i]; switch (currentState) { case "ParameterName": switch (currentCharacter) { @@ -21167,81 +20683,78 @@ var URLQuery = /** @class */ (function () { } } return result; - }; - return URLQuery; -}()); + } +} /** * A class that handles creating, modifying, and parsing URLs. */ -var URLBuilder = /** @class */ (function () { - function URLBuilder() { - } +class URLBuilder { /** * Set the scheme/protocol for this URL. If the provided scheme contains other parts of a URL * (such as a host, port, path, or query), those parts will be added to this URL as well. */ - URLBuilder.prototype.setScheme = function (scheme) { + setScheme(scheme) { if (!scheme) { this._scheme = undefined; } else { this.set(scheme, "SCHEME"); } - }; + } /** * Get the scheme that has been set in this URL. */ - URLBuilder.prototype.getScheme = function () { + getScheme() { return this._scheme; - }; + } /** * Set the host for this URL. If the provided host contains other parts of a URL (such as a * port, path, or query), those parts will be added to this URL as well. */ - URLBuilder.prototype.setHost = function (host) { + setHost(host) { if (!host) { this._host = undefined; } else { this.set(host, "SCHEME_OR_HOST"); } - }; + } /** * Get the host that has been set in this URL. */ - URLBuilder.prototype.getHost = function () { + getHost() { return this._host; - }; + } /** * Set the port for this URL. If the provided port contains other parts of a URL (such as a * path or query), those parts will be added to this URL as well. */ - URLBuilder.prototype.setPort = function (port) { + setPort(port) { if (port === undefined || port === null || port === "") { this._port = undefined; } else { this.set(port.toString(), "PORT"); } - }; + } /** * Get the port that has been set in this URL. */ - URLBuilder.prototype.getPort = function () { + getPort() { return this._port; - }; + } /** * Set the path for this URL. If the provided path contains a query, then it will be added to * this URL as well. */ - URLBuilder.prototype.setPath = function (path) { + setPath(path) { if (!path) { this._path = undefined; } else { - var schemeIndex = path.indexOf("://"); + const schemeIndex = path.indexOf("://"); if (schemeIndex !== -1) { - var schemeStart = path.lastIndexOf("/", schemeIndex); + const schemeStart = path.lastIndexOf("/", schemeIndex); // Make sure to only grab the URL part of the path before setting the state back to SCHEME // this will handle cases such as "/a/b/c/https://microsoft.com" => "https://microsoft.com" this.set(schemeStart === -1 ? path : path.substr(schemeStart + 1), "SCHEME"); @@ -21250,14 +20763,14 @@ var URLBuilder = /** @class */ (function () { this.set(path, "PATH"); } } - }; + } /** * Append the provided path to this URL's existing path. If the provided path contains a query, * then it will be added to this URL as well. */ - URLBuilder.prototype.appendPath = function (path) { + appendPath(path) { if (path) { - var currentPath = this.getPath(); + let currentPath = this.getPath(); if (currentPath) { if (!currentPath.endsWith("/")) { currentPath += "/"; @@ -21269,58 +20782,58 @@ var URLBuilder = /** @class */ (function () { } this.set(path, "PATH"); } - }; + } /** * Get the path that has been set in this URL. */ - URLBuilder.prototype.getPath = function () { + getPath() { return this._path; - }; + } /** * Set the query in this URL. */ - URLBuilder.prototype.setQuery = function (query) { + setQuery(query) { if (!query) { this._query = undefined; } else { this._query = URLQuery.parse(query); } - }; + } /** * Set a query parameter with the provided name and value in this URL's query. If the provided * query parameter value is undefined or empty, then the query parameter will be removed if it * existed. */ - URLBuilder.prototype.setQueryParameter = function (queryParameterName, queryParameterValue) { + setQueryParameter(queryParameterName, queryParameterValue) { if (queryParameterName) { if (!this._query) { this._query = new URLQuery(); } this._query.set(queryParameterName, queryParameterValue); } - }; + } /** * Get the value of the query parameter with the provided query parameter name. If no query * parameter exists with the provided name, then undefined will be returned. */ - URLBuilder.prototype.getQueryParameterValue = function (queryParameterName) { + getQueryParameterValue(queryParameterName) { return this._query ? this._query.get(queryParameterName) : undefined; - }; + } /** * Get the query in this URL. */ - URLBuilder.prototype.getQuery = function () { + getQuery() { return this._query ? this._query.toString() : undefined; - }; + } /** * Set the parts of this URL by parsing the provided text using the provided startState. */ - URLBuilder.prototype.set = function (text, startState) { - var tokenizer = new URLTokenizer(text, startState); + set(text, startState) { + const tokenizer = new URLTokenizer(text, startState); while (tokenizer.next()) { - var token = tokenizer.current(); - var tokenPath = void 0; + const token = tokenizer.current(); + let tokenPath; if (token) { switch (token.type) { case "SCHEME": @@ -21342,21 +20855,21 @@ var URLBuilder = /** @class */ (function () { this._query = URLQuery.parse(token.text); break; default: - throw new Error("Unrecognized URLTokenType: " + token.type); + throw new Error(`Unrecognized URLTokenType: ${token.type}`); } } } - }; - URLBuilder.prototype.toString = function () { - var result = ""; + } + toString() { + let result = ""; if (this._scheme) { - result += this._scheme + "://"; + result += `${this._scheme}://`; } if (this._host) { result += this._host; } if (this._port) { - result += ":" + this._port; + result += `:${this._port}`; } if (this._path) { if (!this._path.startsWith("/")) { @@ -21365,15 +20878,15 @@ var URLBuilder = /** @class */ (function () { result += this._path; } if (this._query && this._query.any()) { - result += "?" + this._query.toString(); + result += `?${this._query.toString()}`; } return result; - }; + } /** * If the provided searchValue is found in this URLBuilder, then replace it with the provided * replaceValue. */ - URLBuilder.prototype.replaceAll = function (searchValue, replaceValue) { + replaceAll(searchValue, replaceValue) { if (searchValue) { this.setScheme(replaceAll(this.getScheme(), searchValue, replaceValue)); this.setHost(replaceAll(this.getHost(), searchValue, replaceValue)); @@ -21381,42 +20894,40 @@ var URLBuilder = /** @class */ (function () { this.setPath(replaceAll(this.getPath(), searchValue, replaceValue)); this.setQuery(replaceAll(this.getQuery(), searchValue, replaceValue)); } - }; - URLBuilder.parse = function (text) { - var result = new URLBuilder(); + } + static parse(text) { + const result = new URLBuilder(); result.set(text, "SCHEME_OR_HOST"); return result; - }; - return URLBuilder; -}()); -var URLToken = /** @class */ (function () { - function URLToken(text, type) { + } +} +class URLToken { + constructor(text, type) { this.text = text; this.type = type; } - URLToken.scheme = function (text) { + static scheme(text) { return new URLToken(text, "SCHEME"); - }; - URLToken.host = function (text) { + } + static host(text) { return new URLToken(text, "HOST"); - }; - URLToken.port = function (text) { + } + static port(text) { return new URLToken(text, "PORT"); - }; - URLToken.path = function (text) { + } + static path(text) { return new URLToken(text, "PATH"); - }; - URLToken.query = function (text) { + } + static query(text) { return new URLToken(text, "QUERY"); - }; - return URLToken; -}()); + } +} /** * Get whether or not the provided character (single character string) is an alphanumeric (letter or * digit) character. */ function isAlphaNumericCharacter(character) { - var characterCode = character.charCodeAt(0); + const characterCode = character.charCodeAt(0); return ((48 /* '0' */ <= characterCode && characterCode <= 57) /* '9' */ || (65 /* 'A' */ <= characterCode && characterCode <= 90) /* 'Z' */ || (97 /* 'a' */ <= characterCode && characterCode <= 122) /* 'z' */); @@ -21424,8 +20935,8 @@ function isAlphaNumericCharacter(character) { /** * A class that tokenizes URL strings. */ -var URLTokenizer = /** @class */ (function () { - function URLTokenizer(_text, state) { +class URLTokenizer { + constructor(_text, state) { this._text = _text; this._textLength = _text ? _text.length : 0; this._currentState = state !== undefined && state !== null ? state : "SCHEME_OR_HOST"; @@ -21435,13 +20946,13 @@ var URLTokenizer = /** @class */ (function () { * Get the current URLToken this URLTokenizer is pointing at, or undefined if the URLTokenizer * hasn't started or has finished tokenizing. */ - URLTokenizer.prototype.current = function () { + current() { return this._currentToken; - }; + } /** * Advance to the next URLToken and return whether or not a URLToken was found. */ - URLTokenizer.prototype.next = function () { + next() { if (!hasCurrentCharacter(this)) { this._currentToken = undefined; } @@ -21466,18 +20977,17 @@ var URLTokenizer = /** @class */ (function () { nextQuery(this); break; default: - throw new Error("Unrecognized URLTokenizerState: " + this._currentState); + throw new Error(`Unrecognized URLTokenizerState: ${this._currentState}`); } } return !!this._currentToken; - }; - return URLTokenizer; -}()); + } +} /** * Read the remaining characters from this Tokenizer's character stream. */ function readRemaining(tokenizer) { - var result = ""; + let result = ""; if (tokenizer._currentIndex < tokenizer._textLength) { result = tokenizer._text.substring(tokenizer._currentIndex); tokenizer._currentIndex = tokenizer._textLength; @@ -21513,7 +21023,7 @@ function nextCharacter(tokenizer, step) { * Tokenizer's stream of characters. */ function peekCharacters(tokenizer, charactersToPeek) { - var endIndex = tokenizer._currentIndex + charactersToPeek; + let endIndex = tokenizer._currentIndex + charactersToPeek; if (tokenizer._textLength < endIndex) { endIndex = tokenizer._textLength; } @@ -21524,9 +21034,9 @@ function peekCharacters(tokenizer, charactersToPeek) { * is false when provided the current character. */ function readWhile(tokenizer, condition) { - var result = ""; + let result = ""; while (hasCurrentCharacter(tokenizer)) { - var currentCharacter = getCurrentCharacter(tokenizer); + const currentCharacter = getCurrentCharacter(tokenizer); if (!condition(currentCharacter)) { break; } @@ -21542,21 +21052,17 @@ function readWhile(tokenizer, condition) { * character stream is reached. */ function readWhileLetterOrDigit(tokenizer) { - return readWhile(tokenizer, function (character) { return isAlphaNumericCharacter(character); }); + return readWhile(tokenizer, (character) => isAlphaNumericCharacter(character)); } /** * Read characters from this Tokenizer until one of the provided terminating characters is read or * the end of the character stream is reached. */ -function readUntilCharacter(tokenizer) { - var terminatingCharacters = []; - for (var _i = 1; _i < arguments.length; _i++) { - terminatingCharacters[_i - 1] = arguments[_i]; - } - return readWhile(tokenizer, function (character) { return terminatingCharacters.indexOf(character) === -1; }); +function readUntilCharacter(tokenizer, ...terminatingCharacters) { + return readWhile(tokenizer, (character) => terminatingCharacters.indexOf(character) === -1); } function nextScheme(tokenizer) { - var scheme = readWhileLetterOrDigit(tokenizer); + const scheme = readWhileLetterOrDigit(tokenizer); tokenizer._currentToken = URLToken.scheme(scheme); if (!hasCurrentCharacter(tokenizer)) { tokenizer._currentState = "DONE"; @@ -21566,7 +21072,7 @@ function nextScheme(tokenizer) { } } function nextSchemeOrHost(tokenizer) { - var schemeOrHost = readUntilCharacter(tokenizer, ":", "/", "?"); + const schemeOrHost = readUntilCharacter(tokenizer, ":", "/", "?"); if (!hasCurrentCharacter(tokenizer)) { tokenizer._currentToken = URLToken.host(schemeOrHost); tokenizer._currentState = "DONE"; @@ -21595,7 +21101,7 @@ function nextHost(tokenizer) { if (peekCharacters(tokenizer, 3) === "://") { nextCharacter(tokenizer, 3); } - var host = readUntilCharacter(tokenizer, ":", "/", "?"); + const host = readUntilCharacter(tokenizer, ":", "/", "?"); tokenizer._currentToken = URLToken.host(host); if (!hasCurrentCharacter(tokenizer)) { tokenizer._currentState = "DONE"; @@ -21614,7 +21120,7 @@ function nextPort(tokenizer) { if (getCurrentCharacter(tokenizer) === ":") { nextCharacter(tokenizer); } - var port = readUntilCharacter(tokenizer, "/", "?"); + const port = readUntilCharacter(tokenizer, "/", "?"); tokenizer._currentToken = URLToken.port(port); if (!hasCurrentCharacter(tokenizer)) { tokenizer._currentState = "DONE"; @@ -21627,7 +21133,7 @@ function nextPort(tokenizer) { } } function nextPath(tokenizer) { - var path = readUntilCharacter(tokenizer, "?"); + const path = readUntilCharacter(tokenizer, "?"); tokenizer._currentToken = URLToken.path(path); if (!hasCurrentCharacter(tokenizer)) { tokenizer._currentState = "DONE"; @@ -21640,14 +21146,14 @@ function nextQuery(tokenizer) { if (getCurrentCharacter(tokenizer) === "?") { nextCharacter(tokenizer); } - var query = readRemaining(tokenizer); + const query = readRemaining(tokenizer); tokenizer._currentToken = URLToken.query(query); tokenizer._currentState = "DONE"; } // Copyright (c) Microsoft Corporation. -var RedactedString = "REDACTED"; -var defaultAllowedHeaderNames = [ +const RedactedString = "REDACTED"; +const defaultAllowedHeaderNames = [ "x-ms-client-request-id", "x-ms-return-client-request-id", "x-ms-useragent", @@ -21687,35 +21193,33 @@ var defaultAllowedHeaderNames = [ "Transfer-Encoding", "User-Agent" ]; -var defaultAllowedQueryParameters = ["api-version"]; -var Sanitizer = /** @class */ (function () { - function Sanitizer(_a) { - var _b = _a === void 0 ? {} : _a, _c = _b.allowedHeaderNames, allowedHeaderNames = _c === void 0 ? [] : _c, _d = _b.allowedQueryParameters, allowedQueryParameters = _d === void 0 ? [] : _d; +const defaultAllowedQueryParameters = ["api-version"]; +class Sanitizer { + constructor({ allowedHeaderNames = [], allowedQueryParameters = [] } = {}) { allowedHeaderNames = Array.isArray(allowedHeaderNames) ? defaultAllowedHeaderNames.concat(allowedHeaderNames) : defaultAllowedHeaderNames; allowedQueryParameters = Array.isArray(allowedQueryParameters) ? defaultAllowedQueryParameters.concat(allowedQueryParameters) : defaultAllowedQueryParameters; - this.allowedHeaderNames = new Set(allowedHeaderNames.map(function (n) { return n.toLowerCase(); })); - this.allowedQueryParameters = new Set(allowedQueryParameters.map(function (p) { return p.toLowerCase(); })); + this.allowedHeaderNames = new Set(allowedHeaderNames.map((n) => n.toLowerCase())); + this.allowedQueryParameters = new Set(allowedQueryParameters.map((p) => p.toLowerCase())); } - Sanitizer.prototype.sanitize = function (obj) { - var _this = this; - var seen = new Set(); - return JSON.stringify(obj, function (key, value) { + sanitize(obj) { + const seen = new Set(); + return JSON.stringify(obj, (key, value) => { // Ensure Errors include their interesting non-enumerable members if (value instanceof Error) { - return tslib.__assign(tslib.__assign({}, value), { name: value.name, message: value.message }); + return Object.assign(Object.assign({}, value), { name: value.name, message: value.message }); } if (key === "_headersMap") { - return _this.sanitizeHeaders(value); + return this.sanitizeHeaders(value); } else if (key === "url") { - return _this.sanitizeUrl(value); + return this.sanitizeUrl(value); } else if (key === "query") { - return _this.sanitizeQuery(value); + return this.sanitizeQuery(value); } else if (key === "body") { // Don't log the request body @@ -21738,20 +21242,19 @@ var Sanitizer = /** @class */ (function () { } return value; }, 2); - }; - Sanitizer.prototype.sanitizeHeaders = function (value) { - return this.sanitizeObject(value, this.allowedHeaderNames, function (v, k) { return v[k].value; }); - }; - Sanitizer.prototype.sanitizeQuery = function (value) { - return this.sanitizeObject(value, this.allowedQueryParameters, function (v, k) { return v[k]; }); - }; - Sanitizer.prototype.sanitizeObject = function (value, allowedKeys, accessor) { + } + sanitizeHeaders(value) { + return this.sanitizeObject(value, this.allowedHeaderNames, (v, k) => v[k].value); + } + sanitizeQuery(value) { + return this.sanitizeObject(value, this.allowedQueryParameters, (v, k) => v[k]); + } + sanitizeObject(value, allowedKeys, accessor) { if (typeof value !== "object" || value === null) { return value; } - var sanitized = {}; - for (var _i = 0, _a = Object.keys(value); _i < _a.length; _i++) { - var k = _a[_i]; + const sanitized = {}; + for (const k of Object.keys(value)) { if (allowedKeys.has(k.toLowerCase())) { sanitized[k] = accessor(value, k); } @@ -21760,267 +21263,233 @@ var Sanitizer = /** @class */ (function () { } } return sanitized; - }; - Sanitizer.prototype.sanitizeUrl = function (value) { + } + sanitizeUrl(value) { if (typeof value !== "string" || value === null) { return value; } - var urlBuilder = URLBuilder.parse(value); - var queryString = urlBuilder.getQuery(); + const urlBuilder = URLBuilder.parse(value); + const queryString = urlBuilder.getQuery(); if (!queryString) { return value; } - var query = URLQuery.parse(queryString); - for (var _i = 0, _a = query.keys(); _i < _a.length; _i++) { - var k = _a[_i]; + const query = URLQuery.parse(queryString); + for (const k of query.keys()) { if (!this.allowedQueryParameters.has(k.toLowerCase())) { query.set(k, RedactedString); } } urlBuilder.setQuery(query.toString()); return urlBuilder.toString(); - }; - return Sanitizer; -}()); + } +} // Copyright (c) Microsoft Corporation. -var errorSanitizer = new Sanitizer(); -var RestError = /** @class */ (function (_super) { - tslib.__extends(RestError, _super); - function RestError(message, code, statusCode, request, response) { - var _this = _super.call(this, message) || this; - _this.name = "RestError"; - _this.code = code; - _this.statusCode = statusCode; - _this.request = request; - _this.response = response; - Object.setPrototypeOf(_this, RestError.prototype); - return _this; +const errorSanitizer = new Sanitizer(); +class RestError extends Error { + constructor(message, code, statusCode, request, response) { + super(message); + this.name = "RestError"; + this.code = code; + this.statusCode = statusCode; + this.request = request; + this.response = response; + Object.setPrototypeOf(this, RestError.prototype); } /** * Logging method for util.inspect in Node */ - RestError.prototype[custom] = function () { - return "RestError: " + this.message + " \n " + errorSanitizer.sanitize(this); - }; - RestError.REQUEST_SEND_ERROR = "REQUEST_SEND_ERROR"; - RestError.PARSE_ERROR = "PARSE_ERROR"; - return RestError; -}(Error)); - -// Copyright (c) Microsoft Corporation. -var logger = logger$1.createClientLogger("core-http"); - -// Copyright (c) Microsoft Corporation. -var ReportTransform = /** @class */ (function (_super) { - tslib.__extends(ReportTransform, _super); - function ReportTransform(progressCallback) { - var _this = _super.call(this) || this; - _this.progressCallback = progressCallback; - _this.loadedBytes = 0; - return _this; + [custom]() { + return `RestError: ${this.message} \n ${errorSanitizer.sanitize(this)}`; } - ReportTransform.prototype._transform = function (chunk, _encoding, callback) { +} +RestError.REQUEST_SEND_ERROR = "REQUEST_SEND_ERROR"; +RestError.PARSE_ERROR = "PARSE_ERROR"; + +// Copyright (c) Microsoft Corporation. +const logger = logger$1.createClientLogger("core-http"); + +// Copyright (c) Microsoft Corporation. +class ReportTransform extends stream.Transform { + constructor(progressCallback) { + super(); + this.progressCallback = progressCallback; + this.loadedBytes = 0; + } + _transform(chunk, _encoding, callback) { this.push(chunk); this.loadedBytes += chunk.length; this.progressCallback({ loadedBytes: this.loadedBytes }); callback(undefined); - }; - return ReportTransform; -}(stream.Transform)); -var FetchHttpClient = /** @class */ (function () { - function FetchHttpClient() { } - FetchHttpClient.prototype.sendRequest = function (httpRequest) { +} +class FetchHttpClient { + async sendRequest(httpRequest) { var _a; - return tslib.__awaiter(this, void 0, void 0, function () { - var abortController$1, abortListener, formData, requestForm_1, appendFormValue, _i, _b, formKey, formValue, j, contentType, body, onUploadProgress, uploadReportStream, platformSpecificRequestInit, requestInit, operationResponse, response, headers, streaming, _c, onDownloadProgress, responseBody, downloadReportStream, length_1, error_1, fetchError, uploadStreamDone, downloadStreamDone; - var _d; - return tslib.__generator(this, function (_e) { - switch (_e.label) { - case 0: - if (!httpRequest && typeof httpRequest !== "object") { - throw new Error("'httpRequest' (WebResourceLike) cannot be null or undefined and must be of type object."); - } - abortController$1 = new abortController.AbortController(); - if (httpRequest.abortSignal) { - if (httpRequest.abortSignal.aborted) { - throw new abortController.AbortError("The operation was aborted."); - } - abortListener = function (event) { - if (event.type === "abort") { - abortController$1.abort(); - } - }; - httpRequest.abortSignal.addEventListener("abort", abortListener); - } - if (httpRequest.timeout) { - setTimeout(function () { - abortController$1.abort(); - }, httpRequest.timeout); - } - if (httpRequest.formData) { - formData = httpRequest.formData; - requestForm_1 = new FormData(); - appendFormValue = function (key, value) { - // value function probably returns a stream so we can provide a fresh stream on each retry - if (typeof value === "function") { - value = value(); - } - if (value && - Object.prototype.hasOwnProperty.call(value, "value") && - Object.prototype.hasOwnProperty.call(value, "options")) { - requestForm_1.append(key, value.value, value.options); - } - else { - requestForm_1.append(key, value); - } - }; - for (_i = 0, _b = Object.keys(formData); _i < _b.length; _i++) { - formKey = _b[_i]; - formValue = formData[formKey]; - if (Array.isArray(formValue)) { - for (j = 0; j < formValue.length; j++) { - appendFormValue(formKey, formValue[j]); - } - } - else { - appendFormValue(formKey, formValue); - } - } - httpRequest.body = requestForm_1; - httpRequest.formData = undefined; - contentType = httpRequest.headers.get("Content-Type"); - if (contentType && contentType.indexOf("multipart/form-data") !== -1) { - if (typeof requestForm_1.getBoundary === "function") { - httpRequest.headers.set("Content-Type", "multipart/form-data; boundary=" + requestForm_1.getBoundary()); - } - else { - // browser will automatically apply a suitable content-type header - httpRequest.headers.remove("Content-Type"); - } - } - } - body = httpRequest.body - ? typeof httpRequest.body === "function" - ? httpRequest.body() - : httpRequest.body - : undefined; - if (httpRequest.onUploadProgress && httpRequest.body) { - onUploadProgress = httpRequest.onUploadProgress; - uploadReportStream = new ReportTransform(onUploadProgress); - if (isReadableStream(body)) { - body.pipe(uploadReportStream); - } - else { - uploadReportStream.end(body); - } - body = uploadReportStream; - } - return [4 /*yield*/, this.prepareRequest(httpRequest)]; - case 1: - platformSpecificRequestInit = _e.sent(); - requestInit = tslib.__assign({ body: body, headers: httpRequest.headers.rawHeaders(), method: httpRequest.method, signal: abortController$1.signal, redirect: "manual" }, platformSpecificRequestInit); - _e.label = 2; - case 2: - _e.trys.push([2, 8, 9, 10]); - return [4 /*yield*/, this.fetch(httpRequest.url, requestInit)]; - case 3: - response = _e.sent(); - headers = parseHeaders(response.headers); - streaming = ((_a = httpRequest.streamResponseStatusCodes) === null || _a === void 0 ? void 0 : _a.has(response.status)) || - httpRequest.streamResponseBody; - _d = { - headers: headers, - request: httpRequest, - status: response.status, - readableStreamBody: streaming - ? response.body - : undefined - }; - if (!!streaming) return [3 /*break*/, 5]; - return [4 /*yield*/, response.text()]; - case 4: - _c = _e.sent(); - return [3 /*break*/, 6]; - case 5: - _c = undefined; - _e.label = 6; - case 6: - operationResponse = (_d.bodyAsText = _c, - _d); - onDownloadProgress = httpRequest.onDownloadProgress; - if (onDownloadProgress) { - responseBody = response.body || undefined; - if (isReadableStream(responseBody)) { - downloadReportStream = new ReportTransform(onDownloadProgress); - responseBody.pipe(downloadReportStream); - operationResponse.readableStreamBody = downloadReportStream; - } - else { - length_1 = parseInt(headers.get("Content-Length")) || undefined; - if (length_1) { - // Calling callback for non-stream response for consistency with browser - onDownloadProgress({ loadedBytes: length_1 }); - } - } - } - return [4 /*yield*/, this.processRequest(operationResponse)]; - case 7: - _e.sent(); - return [2 /*return*/, operationResponse]; - case 8: - error_1 = _e.sent(); - fetchError = error_1; - if (fetchError.code === "ENOTFOUND") { - throw new RestError(fetchError.message, RestError.REQUEST_SEND_ERROR, undefined, httpRequest); - } - else if (fetchError.type === "aborted") { - throw new abortController.AbortError("The operation was aborted."); - } - throw fetchError; - case 9: - // clean up event listener - if (httpRequest.abortSignal && abortListener) { - uploadStreamDone = Promise.resolve(); - if (isReadableStream(body)) { - uploadStreamDone = isStreamComplete(body); - } - downloadStreamDone = Promise.resolve(); - if (isReadableStream(operationResponse === null || operationResponse === void 0 ? void 0 : operationResponse.readableStreamBody)) { - downloadStreamDone = isStreamComplete(operationResponse.readableStreamBody); - } - Promise.all([uploadStreamDone, downloadStreamDone]) - .then(function () { - var _a; - (_a = httpRequest.abortSignal) === null || _a === void 0 ? void 0 : _a.removeEventListener("abort", abortListener); - return; - }) - .catch(function (e) { - logger.warning("Error when cleaning up abortListener on httpRequest", e); - }); - } - return [7 /*endfinally*/]; - case 10: return [2 /*return*/]; + if (!httpRequest && typeof httpRequest !== "object") { + throw new Error("'httpRequest' (WebResourceLike) cannot be null or undefined and must be of type object."); + } + const abortController$1 = new abortController.AbortController(); + let abortListener; + if (httpRequest.abortSignal) { + if (httpRequest.abortSignal.aborted) { + throw new abortController.AbortError("The operation was aborted."); + } + abortListener = (event) => { + if (event.type === "abort") { + abortController$1.abort(); } - }); - }); - }; - return FetchHttpClient; -}()); + }; + httpRequest.abortSignal.addEventListener("abort", abortListener); + } + if (httpRequest.timeout) { + setTimeout(() => { + abortController$1.abort(); + }, httpRequest.timeout); + } + if (httpRequest.formData) { + const formData = httpRequest.formData; + const requestForm = new FormData(); + const appendFormValue = (key, value) => { + // value function probably returns a stream so we can provide a fresh stream on each retry + if (typeof value === "function") { + value = value(); + } + if (value && + Object.prototype.hasOwnProperty.call(value, "value") && + Object.prototype.hasOwnProperty.call(value, "options")) { + requestForm.append(key, value.value, value.options); + } + else { + requestForm.append(key, value); + } + }; + for (const formKey of Object.keys(formData)) { + const formValue = formData[formKey]; + if (Array.isArray(formValue)) { + for (let j = 0; j < formValue.length; j++) { + appendFormValue(formKey, formValue[j]); + } + } + else { + appendFormValue(formKey, formValue); + } + } + httpRequest.body = requestForm; + httpRequest.formData = undefined; + const contentType = httpRequest.headers.get("Content-Type"); + if (contentType && contentType.indexOf("multipart/form-data") !== -1) { + if (typeof requestForm.getBoundary === "function") { + httpRequest.headers.set("Content-Type", `multipart/form-data; boundary=${requestForm.getBoundary()}`); + } + else { + // browser will automatically apply a suitable content-type header + httpRequest.headers.remove("Content-Type"); + } + } + } + let body = httpRequest.body + ? typeof httpRequest.body === "function" + ? httpRequest.body() + : httpRequest.body + : undefined; + if (httpRequest.onUploadProgress && httpRequest.body) { + const onUploadProgress = httpRequest.onUploadProgress; + const uploadReportStream = new ReportTransform(onUploadProgress); + if (isReadableStream(body)) { + body.pipe(uploadReportStream); + } + else { + uploadReportStream.end(body); + } + body = uploadReportStream; + } + const platformSpecificRequestInit = await this.prepareRequest(httpRequest); + const requestInit = Object.assign({ body: body, headers: httpRequest.headers.rawHeaders(), method: httpRequest.method, signal: abortController$1.signal, redirect: "manual" }, platformSpecificRequestInit); + let operationResponse; + try { + const response = await this.fetch(httpRequest.url, requestInit); + const headers = parseHeaders(response.headers); + const streaming = ((_a = httpRequest.streamResponseStatusCodes) === null || _a === void 0 ? void 0 : _a.has(response.status)) || + httpRequest.streamResponseBody; + operationResponse = { + headers: headers, + request: httpRequest, + status: response.status, + readableStreamBody: streaming + ? response.body + : undefined, + bodyAsText: !streaming ? await response.text() : undefined + }; + const onDownloadProgress = httpRequest.onDownloadProgress; + if (onDownloadProgress) { + const responseBody = response.body || undefined; + if (isReadableStream(responseBody)) { + const downloadReportStream = new ReportTransform(onDownloadProgress); + responseBody.pipe(downloadReportStream); + operationResponse.readableStreamBody = downloadReportStream; + } + else { + const length = parseInt(headers.get("Content-Length")) || undefined; + if (length) { + // Calling callback for non-stream response for consistency with browser + onDownloadProgress({ loadedBytes: length }); + } + } + } + await this.processRequest(operationResponse); + return operationResponse; + } + catch (error) { + const fetchError = error; + if (fetchError.code === "ENOTFOUND") { + throw new RestError(fetchError.message, RestError.REQUEST_SEND_ERROR, undefined, httpRequest); + } + else if (fetchError.type === "aborted") { + throw new abortController.AbortError("The operation was aborted."); + } + throw fetchError; + } + finally { + // clean up event listener + if (httpRequest.abortSignal && abortListener) { + let uploadStreamDone = Promise.resolve(); + if (isReadableStream(body)) { + uploadStreamDone = isStreamComplete(body); + } + let downloadStreamDone = Promise.resolve(); + if (isReadableStream(operationResponse === null || operationResponse === void 0 ? void 0 : operationResponse.readableStreamBody)) { + downloadStreamDone = isStreamComplete(operationResponse.readableStreamBody, abortController$1); + } + Promise.all([uploadStreamDone, downloadStreamDone]) + .then(() => { + var _a; + (_a = httpRequest.abortSignal) === null || _a === void 0 ? void 0 : _a.removeEventListener("abort", abortListener); + return; + }) + .catch((e) => { + logger.warning("Error when cleaning up abortListener on httpRequest", e); + }); + } + } + } +} function isReadableStream(body) { return body && typeof body.pipe === "function"; } -function isStreamComplete(stream) { - return new Promise(function (resolve) { - stream.on("close", resolve); - stream.on("end", resolve); - stream.on("error", resolve); +function isStreamComplete(stream, aborter) { + return new Promise((resolve) => { + stream.once("close", () => { + aborter === null || aborter === void 0 ? void 0 : aborter.abort(); + resolve(); + }); + stream.once("end", resolve); + stream.once("error", resolve); }); } function parseHeaders(headers) { - var httpHeaders = new HttpHeaders(); - headers.forEach(function (value, key) { + const httpHeaders = new HttpHeaders(); + headers.forEach((value, key) => { httpHeaders.set(key, value); }); return httpHeaders; @@ -22028,14 +21497,14 @@ function parseHeaders(headers) { // Copyright (c) Microsoft Corporation. function createProxyAgent(requestUrl, proxySettings, headers) { - var host = URLBuilder.parse(proxySettings.host).getHost(); + const host = URLBuilder.parse(proxySettings.host).getHost(); if (!host) { throw new Error("Expecting a non-empty host in proxy settings."); } if (!isValidPort(proxySettings.port)) { throw new Error("Expecting a valid port number in the range of [0, 65535] in proxy settings."); } - var tunnelOptions = { + const tunnelOptions = { proxy: { host: host, port: proxySettings.port, @@ -22043,18 +21512,21 @@ function createProxyAgent(requestUrl, proxySettings, headers) { } }; if (proxySettings.username && proxySettings.password) { - tunnelOptions.proxy.proxyAuth = proxySettings.username + ":" + proxySettings.password; + tunnelOptions.proxy.proxyAuth = `${proxySettings.username}:${proxySettings.password}`; } - var isRequestHttps = isUrlHttps(requestUrl); - var isProxyHttps = isUrlHttps(proxySettings.host); - var proxyAgent = { + else if (proxySettings.username) { + tunnelOptions.proxy.proxyAuth = `${proxySettings.username}`; + } + const isRequestHttps = isUrlHttps(requestUrl); + const isProxyHttps = isUrlHttps(proxySettings.host); + const proxyAgent = { isHttps: isRequestHttps, agent: createTunnel(isRequestHttps, isProxyHttps, tunnelOptions) }; return proxyAgent; } function isUrlHttps(url) { - var urlScheme = URLBuilder.parse(url).getScheme() || ""; + const urlScheme = URLBuilder.parse(url).getScheme() || ""; return urlScheme.toLowerCase() === "https"; } function createTunnel(isRequestHttps, isProxyHttps, tunnelOptions) { @@ -22081,41 +21553,45 @@ function isValidPort(port) { function getCachedAgent(isHttps, agentCache) { return isHttps ? agentCache.httpsAgent : agentCache.httpAgent; } -var NodeFetchHttpClient = /** @class */ (function (_super) { - tslib.__extends(NodeFetchHttpClient, _super); - function NodeFetchHttpClient() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.proxyAgents = {}; - _this.keepAliveAgents = {}; - _this.cookieJar = new tough.CookieJar(undefined, { looseMode: true }); - return _this; +class NodeFetchHttpClient extends FetchHttpClient { + constructor() { + super(...arguments); + // a mapping of proxy settings string `${host}:${port}:${username}:${password}` to agent + this.proxyAgentMap = new Map(); + this.keepAliveAgents = {}; + this.cookieJar = new tough.CookieJar(undefined, { looseMode: true }); } - NodeFetchHttpClient.prototype.getOrCreateAgent = function (httpRequest) { - var isHttps = isUrlHttps(httpRequest.url); + getOrCreateAgent(httpRequest) { + var _a; + const isHttps = isUrlHttps(httpRequest.url); // At the moment, proxy settings and keepAlive are mutually // exclusive because the 'tunnel' library currently lacks the // ability to create a proxy with keepAlive turned on. if (httpRequest.proxySettings) { - var agent = getCachedAgent(isHttps, this.proxyAgents); + const { host, port, username, password } = httpRequest.proxySettings; + const key = `${host}:${port}:${username}:${password}`; + const proxyAgents = (_a = this.proxyAgentMap.get(key)) !== null && _a !== void 0 ? _a : {}; + let agent = getCachedAgent(isHttps, proxyAgents); if (agent) { return agent; } - var tunnel = createProxyAgent(httpRequest.url, httpRequest.proxySettings, httpRequest.headers); + const tunnel = createProxyAgent(httpRequest.url, httpRequest.proxySettings, httpRequest.headers); agent = tunnel.agent; if (tunnel.isHttps) { - this.proxyAgents.httpsAgent = tunnel.agent; + proxyAgents.httpsAgent = tunnel.agent; } else { - this.proxyAgents.httpAgent = tunnel.agent; + proxyAgents.httpAgent = tunnel.agent; } + this.proxyAgentMap.set(key, proxyAgents); return agent; } else if (httpRequest.keepAlive) { - var agent = getCachedAgent(isHttps, this.keepAliveAgents); + let agent = getCachedAgent(isHttps, this.keepAliveAgents); if (agent) { return agent; } - var agentOptions = { + const agentOptions = { keepAlive: httpRequest.keepAlive }; if (isHttps) { @@ -22129,77 +21605,49 @@ var NodeFetchHttpClient = /** @class */ (function (_super) { else { return isHttps ? https.globalAgent : http.globalAgent; } - }; + } // eslint-disable-next-line @azure/azure-sdk/ts-apisurface-standardized-verbs - NodeFetchHttpClient.prototype.fetch = function (input, init) { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - return [2 /*return*/, node_fetch(input, init)]; + async fetch(input, init) { + return node_fetch(input, init); + } + async prepareRequest(httpRequest) { + const requestInit = {}; + if (this.cookieJar && !httpRequest.headers.get("Cookie")) { + const cookieString = await new Promise((resolve, reject) => { + this.cookieJar.getCookieString(httpRequest.url, (err, cookie) => { + if (err) { + reject(err); + } + else { + resolve(cookie); + } + }); }); - }); - }; - NodeFetchHttpClient.prototype.prepareRequest = function (httpRequest) { - return tslib.__awaiter(this, void 0, void 0, function () { - var requestInit, cookieString; - var _this = this; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - requestInit = {}; - if (!(this.cookieJar && !httpRequest.headers.get("Cookie"))) return [3 /*break*/, 2]; - return [4 /*yield*/, new Promise(function (resolve, reject) { - _this.cookieJar.getCookieString(httpRequest.url, function (err, cookie) { - if (err) { - reject(err); - } - else { - resolve(cookie); - } - }); - })]; - case 1: - cookieString = _a.sent(); - httpRequest.headers.set("Cookie", cookieString); - _a.label = 2; - case 2: - // Set the http(s) agent - requestInit.agent = this.getOrCreateAgent(httpRequest); - requestInit.compress = httpRequest.decompressResponse; - return [2 /*return*/, requestInit]; - } - }); - }); - }; - NodeFetchHttpClient.prototype.processRequest = function (operationResponse) { - return tslib.__awaiter(this, void 0, void 0, function () { - var setCookieHeader_1; - var _this = this; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!this.cookieJar) return [3 /*break*/, 2]; - setCookieHeader_1 = operationResponse.headers.get("Set-Cookie"); - if (!(setCookieHeader_1 !== undefined)) return [3 /*break*/, 2]; - return [4 /*yield*/, new Promise(function (resolve, reject) { - _this.cookieJar.setCookie(setCookieHeader_1, operationResponse.request.url, { ignoreError: true }, function (err) { - if (err) { - reject(err); - } - else { - resolve(); - } - }); - })]; - case 1: - _a.sent(); - _a.label = 2; - case 2: return [2 /*return*/]; - } - }); - }); - }; - return NodeFetchHttpClient; -}(FetchHttpClient)); + httpRequest.headers.set("Cookie", cookieString); + } + // Set the http(s) agent + requestInit.agent = this.getOrCreateAgent(httpRequest); + requestInit.compress = httpRequest.decompressResponse; + return requestInit; + } + async processRequest(operationResponse) { + if (this.cookieJar) { + const setCookieHeader = operationResponse.headers.get("Set-Cookie"); + if (setCookieHeader !== undefined) { + await new Promise((resolve, reject) => { + this.cookieJar.setCookie(setCookieHeader, operationResponse.request.url, { ignoreError: true }, (err) => { + if (err) { + reject(err); + } + else { + resolve(); + } + }); + }); + } + } + } +} // Copyright (c) Microsoft Corporation. (function (HttpPipelineLogLevel) { @@ -22227,21 +21675,23 @@ var NodeFetchHttpClient = /** @class */ (function (_super) { * @param opts - OperationOptions object to convert to RequestOptionsBase */ function operationOptionsToRequestOptionsBase(opts) { - var requestOptions = opts.requestOptions, tracingOptions = opts.tracingOptions, additionalOptions = tslib.__rest(opts, ["requestOptions", "tracingOptions"]); - var result = additionalOptions; + var _a; + const { requestOptions, tracingOptions } = opts, additionalOptions = tslib.__rest(opts, ["requestOptions", "tracingOptions"]); + let result = additionalOptions; if (requestOptions) { - result = tslib.__assign(tslib.__assign({}, result), requestOptions); + result = Object.assign(Object.assign({}, result), requestOptions); } if (tracingOptions) { - result.spanOptions = tracingOptions.spanOptions; result.tracingContext = tracingOptions.tracingContext; + // By passing spanOptions if they exist at runtime, we're backwards compatible with @azure/core-tracing@preview.13 and earlier. + result.spanOptions = (_a = tracingOptions) === null || _a === void 0 ? void 0 : _a.spanOptions; } return result; } // Copyright (c) Microsoft Corporation. -var BaseRequestPolicy = /** @class */ (function () { - function BaseRequestPolicy(_nextPolicy, _options) { +class BaseRequestPolicy { + constructor(_nextPolicy, _options) { this._nextPolicy = _nextPolicy; this._options = _options; } @@ -22250,25 +21700,24 @@ var BaseRequestPolicy = /** @class */ (function () { * @param logLevel - The log level of the log that will be logged. * @returns Whether or not a log with the provided log level should be logged. */ - BaseRequestPolicy.prototype.shouldLog = function (logLevel) { + shouldLog(logLevel) { return this._options.shouldLog(logLevel); - }; + } /** * Attempt to log the provided message to the provided logger. If no logger was provided or if * the log level does not meat the logger's threshold, then nothing will be logged. * @param logLevel - The log level of this log. * @param message - The message of this log. */ - BaseRequestPolicy.prototype.log = function (logLevel, message) { + log(logLevel, message) { this._options.log(logLevel, message); - }; - return BaseRequestPolicy; -}()); + } +} /** * Optional properties that can be used when creating a RequestPolicy. */ -var RequestPolicyOptions = /** @class */ (function () { - function RequestPolicyOptions(_logger) { +class RequestPolicyOptions { + constructor(_logger) { this._logger = _logger; } /** @@ -22276,104 +21725,89 @@ var RequestPolicyOptions = /** @class */ (function () { * @param logLevel - The log level of the log that will be logged. * @returns Whether or not a log with the provided log level should be logged. */ - RequestPolicyOptions.prototype.shouldLog = function (logLevel) { + shouldLog(logLevel) { return (!!this._logger && logLevel !== exports.HttpPipelineLogLevel.OFF && logLevel <= this._logger.minimumLogLevel); - }; + } /** * Attempt to log the provided message to the provided logger. If no logger was provided or if * the log level does not meet the logger's threshold, then nothing will be logged. * @param logLevel - The log level of this log. * @param message - The message of this log. */ - RequestPolicyOptions.prototype.log = function (logLevel, message) { + log(logLevel, message) { if (this._logger && this.shouldLog(logLevel)) { this._logger.log(logLevel, message); } - }; - return RequestPolicyOptions; -}()); + } +} // Copyright (c) Microsoft Corporation. -function logPolicy(loggingOptions) { - if (loggingOptions === void 0) { loggingOptions = {}; } +function logPolicy(loggingOptions = {}) { return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new LogPolicy(nextPolicy, options, loggingOptions); } }; } -var LogPolicy = /** @class */ (function (_super) { - tslib.__extends(LogPolicy, _super); - function LogPolicy(nextPolicy, options, _a) { - var _b = _a === void 0 ? {} : _a, _c = _b.logger, logger$1 = _c === void 0 ? logger.info : _c, _d = _b.allowedHeaderNames, allowedHeaderNames = _d === void 0 ? [] : _d, _e = _b.allowedQueryParameters, allowedQueryParameters = _e === void 0 ? [] : _e; - var _this = _super.call(this, nextPolicy, options) || this; - _this.logger = logger$1; - _this.sanitizer = new Sanitizer({ allowedHeaderNames: allowedHeaderNames, allowedQueryParameters: allowedQueryParameters }); - return _this; +class LogPolicy extends BaseRequestPolicy { + constructor(nextPolicy, options, { logger: logger$1 = logger.info, allowedHeaderNames = [], allowedQueryParameters = [] } = {}) { + super(nextPolicy, options); + this.logger = logger$1; + this.sanitizer = new Sanitizer({ allowedHeaderNames, allowedQueryParameters }); } - Object.defineProperty(LogPolicy.prototype, "allowedHeaderNames", { - /** - * Header names whose values will be logged when logging is enabled. Defaults to - * Date, traceparent, x-ms-client-request-id, and x-ms-request id. Any headers - * specified in this field will be added to that list. Any other values will - * be written to logs as "REDACTED". - * @deprecated Pass these into the constructor instead. - */ - get: function () { - return this.sanitizer.allowedHeaderNames; - }, - /** - * Header names whose values will be logged when logging is enabled. Defaults to - * Date, traceparent, x-ms-client-request-id, and x-ms-request id. Any headers - * specified in this field will be added to that list. Any other values will - * be written to logs as "REDACTED". - * @deprecated Pass these into the constructor instead. - */ - set: function (allowedHeaderNames) { - this.sanitizer.allowedHeaderNames = allowedHeaderNames; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(LogPolicy.prototype, "allowedQueryParameters", { - /** - * Query string names whose values will be logged when logging is enabled. By default no - * query string values are logged. - * @deprecated Pass these into the constructor instead. - */ - get: function () { - return this.sanitizer.allowedQueryParameters; - }, - /** - * Query string names whose values will be logged when logging is enabled. By default no - * query string values are logged. - * @deprecated Pass these into the constructor instead. - */ - set: function (allowedQueryParameters) { - this.sanitizer.allowedQueryParameters = allowedQueryParameters; - }, - enumerable: false, - configurable: true - }); - LogPolicy.prototype.sendRequest = function (request) { - var _this = this; + /** + * Header names whose values will be logged when logging is enabled. Defaults to + * Date, traceparent, x-ms-client-request-id, and x-ms-request id. Any headers + * specified in this field will be added to that list. Any other values will + * be written to logs as "REDACTED". + * @deprecated Pass these into the constructor instead. + */ + get allowedHeaderNames() { + return this.sanitizer.allowedHeaderNames; + } + /** + * Header names whose values will be logged when logging is enabled. Defaults to + * Date, traceparent, x-ms-client-request-id, and x-ms-request id. Any headers + * specified in this field will be added to that list. Any other values will + * be written to logs as "REDACTED". + * @deprecated Pass these into the constructor instead. + */ + set allowedHeaderNames(allowedHeaderNames) { + this.sanitizer.allowedHeaderNames = allowedHeaderNames; + } + /** + * Query string names whose values will be logged when logging is enabled. By default no + * query string values are logged. + * @deprecated Pass these into the constructor instead. + */ + get allowedQueryParameters() { + return this.sanitizer.allowedQueryParameters; + } + /** + * Query string names whose values will be logged when logging is enabled. By default no + * query string values are logged. + * @deprecated Pass these into the constructor instead. + */ + set allowedQueryParameters(allowedQueryParameters) { + this.sanitizer.allowedQueryParameters = allowedQueryParameters; + } + sendRequest(request) { if (!this.logger.enabled) return this._nextPolicy.sendRequest(request); this.logRequest(request); - return this._nextPolicy.sendRequest(request).then(function (response) { return _this.logResponse(response); }); - }; - LogPolicy.prototype.logRequest = function (request) { - this.logger("Request: " + this.sanitizer.sanitize(request)); - }; - LogPolicy.prototype.logResponse = function (response) { - this.logger("Response status code: " + response.status); - this.logger("Headers: " + this.sanitizer.sanitize(response.headers)); + return this._nextPolicy.sendRequest(request).then((response) => this.logResponse(response)); + } + logRequest(request) { + this.logger(`Request: ${this.sanitizer.sanitize(request)}`); + } + logResponse(response) { + this.logger(`Response status code: ${response.status}`); + this.logger(`Headers: ${this.sanitizer.sanitize(response.headers)}`); return response; - }; - return LogPolicy; -}(BaseRequestPolicy)); + } +} // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. @@ -22386,7 +21820,7 @@ function getPathStringFromParameter(parameter) { return getPathStringFromParameterPath(parameter.parameterPath, parameter.mapper); } function getPathStringFromParameterPath(parameterPath, mapper) { - var result; + let result; if (typeof parameterPath === "string") { result = parameterPath; } @@ -22405,9 +21839,9 @@ function getPathStringFromParameterPath(parameterPath, mapper) { * @internal */ function getStreamResponseStatusCodes(operationSpec) { - var result = new Set(); - for (var statusCode in operationSpec.responses) { - var operationResponse = operationSpec.responses[statusCode]; + const result = new Set(); + for (const statusCode in operationSpec.responses) { + const operationResponse = operationSpec.responses[statusCode]; if (operationResponse.bodyMapper && operationResponse.bodyMapper.type.name === MapperType.Stream) { result.add(Number(statusCode)); @@ -22421,7 +21855,7 @@ function getStreamResponseStatusCodes(operationSpec) { // by the xm2js library is mutable. See https://github.com/Leonidas-from-XIV/node-xml2js/issues/536 // By creating a new copy of the settings each time we instantiate the parser, // we are safeguarding against the possibility of the default settings being mutated elsewhere unintentionally. -var xml2jsDefaultOptionsV2 = { +const xml2jsDefaultOptionsV2 = { explicitCharkey: false, trim: false, normalize: false, @@ -22462,10 +21896,10 @@ var xml2jsDefaultOptionsV2 = { cdata: false }; // The xml2js settings for general XML parsing operations. -var xml2jsParserSettings = Object.assign({}, xml2jsDefaultOptionsV2); +const xml2jsParserSettings = Object.assign({}, xml2jsDefaultOptionsV2); xml2jsParserSettings.explicitArray = false; // The xml2js settings for general XML building operations. -var xml2jsBuilderSettings = Object.assign({}, xml2jsDefaultOptionsV2); +const xml2jsBuilderSettings = Object.assign({}, xml2jsDefaultOptionsV2); xml2jsBuilderSettings.explicitArray = false; xml2jsBuilderSettings.renderOpts = { pretty: false @@ -22475,12 +21909,11 @@ xml2jsBuilderSettings.renderOpts = { * @param obj - JSON object to be converted into XML string * @param opts - Options that govern the parsing of given JSON object */ -function stringifyXML(obj, opts) { +function stringifyXML(obj, opts = {}) { var _a; - if (opts === void 0) { opts = {}; } xml2jsBuilderSettings.rootName = opts.rootName; xml2jsBuilderSettings.charkey = (_a = opts.xmlCharKey) !== null && _a !== void 0 ? _a : XML_CHARKEY; - var builder = new xml2js.Builder(xml2jsBuilderSettings); + const builder = new xml2js.Builder(xml2jsBuilderSettings); return builder.buildObject(obj); } /** @@ -22488,18 +21921,17 @@ function stringifyXML(obj, opts) { * @param str - String containing the XML content to be parsed into JSON * @param opts - Options that govern the parsing of given xml string */ -function parseXML(str, opts) { +function parseXML(str, opts = {}) { var _a; - if (opts === void 0) { opts = {}; } xml2jsParserSettings.explicitRoot = !!opts.includeRoot; xml2jsParserSettings.charkey = (_a = opts.xmlCharKey) !== null && _a !== void 0 ? _a : XML_CHARKEY; - var xmlParser = new xml2js.Parser(xml2jsParserSettings); - return new Promise(function (resolve, reject) { + const xmlParser = new xml2js.Parser(xml2jsParserSettings); + return new Promise((resolve, reject) => { if (!str) { reject(new Error("Document is empty")); } else { - xmlParser.parseString(str, function (err, res) { + xmlParser.parseString(str, (err, res) => { if (err) { reject(err); } @@ -22518,14 +21950,14 @@ function parseXML(str, opts) { */ function deserializationPolicy(deserializationContentTypes, parsingOptions) { return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new DeserializationPolicy(nextPolicy, options, deserializationContentTypes, parsingOptions); } }; } -var defaultJsonContentTypes = ["application/json", "text/json"]; -var defaultXmlContentTypes = ["application/xml", "application/atom+xml"]; -var DefaultDeserializationOptions = { +const defaultJsonContentTypes = ["application/json", "text/json"]; +const defaultXmlContentTypes = ["application/xml", "application/atom+xml"]; +const DefaultDeserializationOptions = { expectedContentTypes: { json: defaultJsonContentTypes, xml: defaultXmlContentTypes @@ -22535,39 +21967,28 @@ var DefaultDeserializationOptions = { * A RequestPolicy that will deserialize HTTP response bodies and headers as they pass through the * HTTP pipeline. */ -var DeserializationPolicy = /** @class */ (function (_super) { - tslib.__extends(DeserializationPolicy, _super); - function DeserializationPolicy(nextPolicy, requestPolicyOptions, deserializationContentTypes, parsingOptions) { - if (parsingOptions === void 0) { parsingOptions = {}; } +class DeserializationPolicy extends BaseRequestPolicy { + constructor(nextPolicy, requestPolicyOptions, deserializationContentTypes, parsingOptions = {}) { var _a; - var _this = _super.call(this, nextPolicy, requestPolicyOptions) || this; - _this.jsonContentTypes = + super(nextPolicy, requestPolicyOptions); + this.jsonContentTypes = (deserializationContentTypes && deserializationContentTypes.json) || defaultJsonContentTypes; - _this.xmlContentTypes = + this.xmlContentTypes = (deserializationContentTypes && deserializationContentTypes.xml) || defaultXmlContentTypes; - _this.xmlCharKey = (_a = parsingOptions.xmlCharKey) !== null && _a !== void 0 ? _a : XML_CHARKEY; - return _this; + this.xmlCharKey = (_a = parsingOptions.xmlCharKey) !== null && _a !== void 0 ? _a : XML_CHARKEY; } - DeserializationPolicy.prototype.sendRequest = function (request) { - return tslib.__awaiter(this, void 0, void 0, function () { - var _this = this; - return tslib.__generator(this, function (_a) { - return [2 /*return*/, this._nextPolicy.sendRequest(request).then(function (response) { - return deserializeResponseBody(_this.jsonContentTypes, _this.xmlContentTypes, response, { - xmlCharKey: _this.xmlCharKey - }); - })]; - }); - }); - }; - return DeserializationPolicy; -}(BaseRequestPolicy)); + async sendRequest(request) { + return this._nextPolicy.sendRequest(request).then((response) => deserializeResponseBody(this.jsonContentTypes, this.xmlContentTypes, response, { + xmlCharKey: this.xmlCharKey + })); + } +} function getOperationResponse(parsedResponse) { - var result; - var request = parsedResponse.request; - var operationSpec = request.operationSpec; + let result; + const request = parsedResponse.request; + const operationSpec = request.operationSpec; if (operationSpec) { - var operationResponseGetter = request.operationResponseGetter; + const operationResponseGetter = request.operationResponseGetter; if (!operationResponseGetter) { result = operationSpec.responses[parsedResponse.status]; } @@ -22578,8 +21999,8 @@ function getOperationResponse(parsedResponse) { return result; } function shouldDeserializeResponse(parsedResponse) { - var shouldDeserialize = parsedResponse.request.shouldDeserialize; - var result; + const shouldDeserialize = parsedResponse.request.shouldDeserialize; + let result; if (shouldDeserialize === undefined) { result = true; } @@ -22591,24 +22012,23 @@ function shouldDeserializeResponse(parsedResponse) { } return result; } -function deserializeResponseBody(jsonContentTypes, xmlContentTypes, response, options) { +function deserializeResponseBody(jsonContentTypes, xmlContentTypes, response, options = {}) { var _a, _b, _c; - if (options === void 0) { options = {}; } - var updatedOptions = { + const updatedOptions = { rootName: (_a = options.rootName) !== null && _a !== void 0 ? _a : "", includeRoot: (_b = options.includeRoot) !== null && _b !== void 0 ? _b : false, xmlCharKey: (_c = options.xmlCharKey) !== null && _c !== void 0 ? _c : XML_CHARKEY }; - return parse(jsonContentTypes, xmlContentTypes, response, updatedOptions).then(function (parsedResponse) { + return parse(jsonContentTypes, xmlContentTypes, response, updatedOptions).then((parsedResponse) => { if (!shouldDeserializeResponse(parsedResponse)) { return parsedResponse; } - var operationSpec = parsedResponse.request.operationSpec; + const operationSpec = parsedResponse.request.operationSpec; if (!operationSpec || !operationSpec.responses) { return parsedResponse; } - var responseSpec = getOperationResponse(parsedResponse); - var _a = handleErrorResponse(parsedResponse, operationSpec, responseSpec), error = _a.error, shouldReturnResponse = _a.shouldReturnResponse; + const responseSpec = getOperationResponse(parsedResponse); + const { error, shouldReturnResponse } = handleErrorResponse(parsedResponse, operationSpec, responseSpec); if (error) { throw error; } @@ -22619,7 +22039,7 @@ function deserializeResponseBody(jsonContentTypes, xmlContentTypes, response, op // use it to deserialize the response. if (responseSpec) { if (responseSpec.bodyMapper) { - var valueToDeserialize = parsedResponse.parsedBody; + let valueToDeserialize = parsedResponse.parsedBody; if (operationSpec.isXML && responseSpec.bodyMapper.type.name === MapperType.Sequence) { valueToDeserialize = typeof valueToDeserialize === "object" @@ -22630,7 +22050,7 @@ function deserializeResponseBody(jsonContentTypes, xmlContentTypes, response, op parsedResponse.parsedBody = operationSpec.serializer.deserialize(responseSpec.bodyMapper, valueToDeserialize, "operationRes.parsedBody", options); } catch (innerError) { - var restError = new RestError("Error " + innerError + " occurred in deserializing the responseBody - " + parsedResponse.bodyAsText, undefined, parsedResponse.status, parsedResponse.request, parsedResponse); + const restError = new RestError(`Error ${innerError} occurred in deserializing the responseBody - ${parsedResponse.bodyAsText}`, undefined, parsedResponse.status, parsedResponse.request, parsedResponse); throw restError; } } @@ -22646,14 +22066,14 @@ function deserializeResponseBody(jsonContentTypes, xmlContentTypes, response, op }); } function isOperationSpecEmpty(operationSpec) { - var expectedStatusCodes = Object.keys(operationSpec.responses); + const expectedStatusCodes = Object.keys(operationSpec.responses); return (expectedStatusCodes.length === 0 || (expectedStatusCodes.length === 1 && expectedStatusCodes[0] === "default")); } function handleErrorResponse(parsedResponse, operationSpec, responseSpec) { var _a; - var isSuccessByStatus = 200 <= parsedResponse.status && parsedResponse.status < 300; - var isExpectedStatusCode = isOperationSpecEmpty(operationSpec) + const isSuccessByStatus = 200 <= parsedResponse.status && parsedResponse.status < 300; + const isExpectedStatusCode = isOperationSpecEmpty(operationSpec) ? isSuccessByStatus : !!responseSpec; if (isExpectedStatusCode) { @@ -22666,35 +22086,35 @@ function handleErrorResponse(parsedResponse, operationSpec, responseSpec) { return { error: null, shouldReturnResponse: false }; } } - var errorResponseSpec = responseSpec !== null && responseSpec !== void 0 ? responseSpec : operationSpec.responses.default; - var streaming = ((_a = parsedResponse.request.streamResponseStatusCodes) === null || _a === void 0 ? void 0 : _a.has(parsedResponse.status)) || + const errorResponseSpec = responseSpec !== null && responseSpec !== void 0 ? responseSpec : operationSpec.responses.default; + const streaming = ((_a = parsedResponse.request.streamResponseStatusCodes) === null || _a === void 0 ? void 0 : _a.has(parsedResponse.status)) || parsedResponse.request.streamResponseBody; - var initialErrorMessage = streaming - ? "Unexpected status code: " + parsedResponse.status + const initialErrorMessage = streaming + ? `Unexpected status code: ${parsedResponse.status}` : parsedResponse.bodyAsText; - var error = new RestError(initialErrorMessage, undefined, parsedResponse.status, parsedResponse.request, parsedResponse); + const error = new RestError(initialErrorMessage, undefined, parsedResponse.status, parsedResponse.request, parsedResponse); // If the item failed but there's no error spec or default spec to deserialize the error, // we should fail so we just throw the parsed response if (!errorResponseSpec) { throw error; } - var defaultBodyMapper = errorResponseSpec.bodyMapper; - var defaultHeadersMapper = errorResponseSpec.headersMapper; + const defaultBodyMapper = errorResponseSpec.bodyMapper; + const defaultHeadersMapper = errorResponseSpec.headersMapper; try { // If error response has a body, try to deserialize it using default body mapper. // Then try to extract error code & message from it if (parsedResponse.parsedBody) { - var parsedBody = parsedResponse.parsedBody; - var parsedError = void 0; + const parsedBody = parsedResponse.parsedBody; + let parsedError; if (defaultBodyMapper) { - var valueToDeserialize = parsedBody; + let valueToDeserialize = parsedBody; if (operationSpec.isXML && defaultBodyMapper.type.name === MapperType.Sequence) { valueToDeserialize = typeof parsedBody === "object" ? parsedBody[defaultBodyMapper.xmlElementName] : []; } parsedError = operationSpec.serializer.deserialize(defaultBodyMapper, valueToDeserialize, "error.response.parsedBody"); } - var internalError = parsedBody.error || parsedError || parsedBody; + const internalError = parsedBody.error || parsedError || parsedBody; error.code = internalError.code; if (internalError.message) { error.message = internalError.message; @@ -22709,36 +22129,36 @@ function handleErrorResponse(parsedResponse, operationSpec, responseSpec) { } } catch (defaultError) { - error.message = "Error \"" + defaultError.message + "\" occurred in deserializing the responseBody - \"" + parsedResponse.bodyAsText + "\" for the default response."; + error.message = `Error "${defaultError.message}" occurred in deserializing the responseBody - "${parsedResponse.bodyAsText}" for the default response.`; } - return { error: error, shouldReturnResponse: false }; + return { error, shouldReturnResponse: false }; } function parse(jsonContentTypes, xmlContentTypes, operationResponse, opts) { var _a; - var errorHandler = function (err) { - var msg = "Error \"" + err + "\" occurred while parsing the response body - " + operationResponse.bodyAsText + "."; - var errCode = err.code || RestError.PARSE_ERROR; - var e = new RestError(msg, errCode, operationResponse.status, operationResponse.request, operationResponse); + const errorHandler = (err) => { + const msg = `Error "${err}" occurred while parsing the response body - ${operationResponse.bodyAsText}.`; + const errCode = err.code || RestError.PARSE_ERROR; + const e = new RestError(msg, errCode, operationResponse.status, operationResponse.request, operationResponse); return Promise.reject(e); }; - var streaming = ((_a = operationResponse.request.streamResponseStatusCodes) === null || _a === void 0 ? void 0 : _a.has(operationResponse.status)) || + const streaming = ((_a = operationResponse.request.streamResponseStatusCodes) === null || _a === void 0 ? void 0 : _a.has(operationResponse.status)) || operationResponse.request.streamResponseBody; if (!streaming && operationResponse.bodyAsText) { - var text_1 = operationResponse.bodyAsText; - var contentType = operationResponse.headers.get("Content-Type") || ""; - var contentComponents = !contentType + const text = operationResponse.bodyAsText; + const contentType = operationResponse.headers.get("Content-Type") || ""; + const contentComponents = !contentType ? [] - : contentType.split(";").map(function (component) { return component.toLowerCase(); }); + : contentType.split(";").map((component) => component.toLowerCase()); if (contentComponents.length === 0 || - contentComponents.some(function (component) { return jsonContentTypes.indexOf(component) !== -1; })) { - return new Promise(function (resolve) { - operationResponse.parsedBody = JSON.parse(text_1); + contentComponents.some((component) => jsonContentTypes.indexOf(component) !== -1)) { + return new Promise((resolve) => { + operationResponse.parsedBody = JSON.parse(text); resolve(operationResponse); }).catch(errorHandler); } - else if (contentComponents.some(function (component) { return xmlContentTypes.indexOf(component) !== -1; })) { - return parseXML(text_1, opts) - .then(function (body) { + else if (contentComponents.some((component) => xmlContentTypes.indexOf(component) !== -1)) { + return parseXML(text, opts) + .then((body) => { operationResponse.parsedBody = body; return operationResponse; }) @@ -22750,11 +22170,11 @@ function parse(jsonContentTypes, xmlContentTypes, operationResponse, opts) { // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -var DEFAULT_CLIENT_RETRY_COUNT = 3; +const DEFAULT_CLIENT_RETRY_COUNT = 3; // intervals are in ms -var DEFAULT_CLIENT_RETRY_INTERVAL = 1000 * 30; -var DEFAULT_CLIENT_MAX_RETRY_INTERVAL = 1000 * 90; -var DEFAULT_CLIENT_MIN_RETRY_INTERVAL = 1000 * 3; +const DEFAULT_CLIENT_RETRY_INTERVAL = 1000 * 30; +const DEFAULT_CLIENT_MAX_RETRY_INTERVAL = 1000 * 90; +const DEFAULT_CLIENT_MIN_RETRY_INTERVAL = 1000 * 3; function isNumber(n) { return typeof n === "number"; } @@ -22781,8 +22201,7 @@ function shouldRetry(retryLimit, predicate, retryData, response, error) { * @param retryData - The retry data. * @param err - The operation"s error, if any. */ -function updateRetryData(retryOptions, retryData, err) { - if (retryData === void 0) { retryData = { retryCount: 0, retryInterval: 0 }; } +function updateRetryData(retryOptions, retryData = { retryCount: 0, retryInterval: 0 }, err) { if (err) { if (retryData.error) { err.innerError = retryData.error; @@ -22792,18 +22211,72 @@ function updateRetryData(retryOptions, retryData, err) { // Adjust retry count retryData.retryCount++; // Adjust retry interval - var incrementDelta = Math.pow(2, retryData.retryCount - 1) - 1; - var boundedRandDelta = retryOptions.retryInterval * 0.8 + + let incrementDelta = Math.pow(2, retryData.retryCount - 1) - 1; + const boundedRandDelta = retryOptions.retryInterval * 0.8 + Math.floor(Math.random() * (retryOptions.retryInterval * 0.4)); incrementDelta *= boundedRandDelta; retryData.retryInterval = Math.min(retryOptions.minRetryInterval + incrementDelta, retryOptions.maxRetryInterval); return retryData; } +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +/** + * Helper TypeGuard that checks if the value is not null or undefined. + * @param thing - Anything + * @internal + */ +function isDefined(thing) { + return typeof thing !== "undefined" && thing !== null; +} + +// Copyright (c) Microsoft Corporation. +const StandardAbortMessage = "The operation was aborted."; +/** + * A wrapper for setTimeout that resolves a promise after delayInMs milliseconds. + * @param delayInMs - The number of milliseconds to be delayed. + * @param value - The value to be resolved with after a timeout of t milliseconds. + * @param options - The options for delay - currently abort options + * @param abortSignal - The abortSignal associated with containing operation. + * @param abortErrorMsg - The abort error message associated with containing operation. + * @returns - Resolved promise + */ +function delay(delayInMs, value, options) { + return new Promise((resolve, reject) => { + let timer = undefined; + let onAborted = undefined; + const rejectOnAbort = () => { + return reject(new abortController.AbortError((options === null || options === void 0 ? void 0 : options.abortErrorMsg) ? options === null || options === void 0 ? void 0 : options.abortErrorMsg : StandardAbortMessage)); + }; + const removeListeners = () => { + if ((options === null || options === void 0 ? void 0 : options.abortSignal) && onAborted) { + options.abortSignal.removeEventListener("abort", onAborted); + } + }; + onAborted = () => { + if (isDefined(timer)) { + clearTimeout(timer); + } + removeListeners(); + return rejectOnAbort(); + }; + if ((options === null || options === void 0 ? void 0 : options.abortSignal) && options.abortSignal.aborted) { + return rejectOnAbort(); + } + timer = setTimeout(() => { + removeListeners(); + resolve(value); + }, delayInMs); + if (options === null || options === void 0 ? void 0 : options.abortSignal) { + options.abortSignal.addEventListener("abort", onAborted); + } + }); +} + // Copyright (c) Microsoft Corporation. function exponentialRetryPolicy(retryCount, retryInterval, maxRetryInterval) { return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new ExponentialRetryPolicy(nextPolicy, options, retryCount, retryInterval, maxRetryInterval); } }; @@ -22811,7 +22284,7 @@ function exponentialRetryPolicy(retryCount, retryInterval, maxRetryInterval) { (function (RetryMode) { RetryMode[RetryMode["Exponential"] = 0] = "Exponential"; })(exports.RetryMode || (exports.RetryMode = {})); -var DefaultRetryOptions = { +const DefaultRetryOptions = { maxRetries: DEFAULT_CLIENT_RETRY_COUNT, retryDelayInMs: DEFAULT_CLIENT_RETRY_INTERVAL, maxRetryDelayInMs: DEFAULT_CLIENT_MAX_RETRY_INTERVAL @@ -22819,8 +22292,7 @@ var DefaultRetryOptions = { /** * Instantiates a new "ExponentialRetryPolicyFilter" instance. */ -var ExponentialRetryPolicy = /** @class */ (function (_super) { - tslib.__extends(ExponentialRetryPolicy, _super); +class ExponentialRetryPolicy extends BaseRequestPolicy { /** * @param nextPolicy - The next RequestPolicy in the pipeline chain. * @param options - The options for this RequestPolicy. @@ -22829,217 +22301,188 @@ var ExponentialRetryPolicy = /** @class */ (function (_super) { * @param minRetryInterval - The minimum retry interval, in milliseconds. * @param maxRetryInterval - The maximum retry interval, in milliseconds. */ - function ExponentialRetryPolicy(nextPolicy, options, retryCount, retryInterval, maxRetryInterval) { - var _this = _super.call(this, nextPolicy, options) || this; - _this.retryCount = isNumber(retryCount) ? retryCount : DEFAULT_CLIENT_RETRY_COUNT; - _this.retryInterval = isNumber(retryInterval) ? retryInterval : DEFAULT_CLIENT_RETRY_INTERVAL; - _this.maxRetryInterval = isNumber(maxRetryInterval) + constructor(nextPolicy, options, retryCount, retryInterval, maxRetryInterval) { + super(nextPolicy, options); + this.retryCount = isNumber(retryCount) ? retryCount : DEFAULT_CLIENT_RETRY_COUNT; + this.retryInterval = isNumber(retryInterval) ? retryInterval : DEFAULT_CLIENT_RETRY_INTERVAL; + this.maxRetryInterval = isNumber(maxRetryInterval) ? maxRetryInterval : DEFAULT_CLIENT_MAX_RETRY_INTERVAL; - return _this; } - ExponentialRetryPolicy.prototype.sendRequest = function (request) { - var _this = this; + sendRequest(request) { return this._nextPolicy .sendRequest(request.clone()) - .then(function (response) { return retry(_this, request, response); }) - .catch(function (error) { return retry(_this, request, error.response, undefined, error); }); - }; - return ExponentialRetryPolicy; -}(BaseRequestPolicy)); -function retry(policy, request, response, retryData, requestError) { - return tslib.__awaiter(this, void 0, void 0, function () { - function shouldPolicyRetry(responseParam) { - var statusCode = responseParam === null || responseParam === void 0 ? void 0 : responseParam.status; - if (statusCode === undefined || - (statusCode < 500 && statusCode !== 408) || - statusCode === 501 || - statusCode === 505) { - return false; - } - return true; + .then((response) => retry(this, request, response)) + .catch((error) => retry(this, request, error.response, undefined, error)); + } +} +async function retry(policy, request, response, retryData, requestError) { + function shouldPolicyRetry(responseParam) { + const statusCode = responseParam === null || responseParam === void 0 ? void 0 : responseParam.status; + if (statusCode === 503 && (response === null || response === void 0 ? void 0 : response.headers.get(Constants.HeaderConstants.RETRY_AFTER))) { + return false; } - var isAborted, res, err_1, err; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - retryData = updateRetryData({ - retryInterval: policy.retryInterval, - minRetryInterval: 0, - maxRetryInterval: policy.maxRetryInterval - }, retryData, requestError); - isAborted = request.abortSignal && request.abortSignal.aborted; - if (!(!isAborted && shouldRetry(policy.retryCount, shouldPolicyRetry, retryData, response))) return [3 /*break*/, 6]; - logger.info("Retrying request in " + retryData.retryInterval); - _a.label = 1; - case 1: - _a.trys.push([1, 4, , 5]); - return [4 /*yield*/, delay(retryData.retryInterval)]; - case 2: - _a.sent(); - return [4 /*yield*/, policy._nextPolicy.sendRequest(request.clone())]; - case 3: - res = _a.sent(); - return [2 /*return*/, retry(policy, request, res, retryData)]; - case 4: - err_1 = _a.sent(); - return [2 /*return*/, retry(policy, request, response, retryData, err_1)]; - case 5: return [3 /*break*/, 7]; - case 6: - if (isAborted || requestError || !response) { - err = retryData.error || - new RestError("Failed to send the request.", RestError.REQUEST_SEND_ERROR, response && response.status, response && response.request, response); - throw err; - } - else { - return [2 /*return*/, response]; - } - case 7: return [2 /*return*/]; - } - }); - }); + if (statusCode === undefined || + (statusCode < 500 && statusCode !== 408) || + statusCode === 501 || + statusCode === 505) { + return false; + } + return true; + } + retryData = updateRetryData({ + retryInterval: policy.retryInterval, + minRetryInterval: 0, + maxRetryInterval: policy.maxRetryInterval + }, retryData, requestError); + const isAborted = request.abortSignal && request.abortSignal.aborted; + if (!isAborted && shouldRetry(policy.retryCount, shouldPolicyRetry, retryData, response)) { + logger.info(`Retrying request in ${retryData.retryInterval}`); + try { + await delay(retryData.retryInterval); + const res = await policy._nextPolicy.sendRequest(request.clone()); + return retry(policy, request, res, retryData); + } + catch (err) { + return retry(policy, request, response, retryData, err); + } + } + else if (isAborted || requestError || !response) { + // If the operation failed in the end, return all errors instead of just the last one + const err = retryData.error || + new RestError("Failed to send the request.", RestError.REQUEST_SEND_ERROR, response && response.status, response && response.request, response); + throw err; + } + else { + return response; + } } // Copyright (c) Microsoft Corporation. -function generateClientRequestIdPolicy(requestIdHeaderName) { - if (requestIdHeaderName === void 0) { requestIdHeaderName = "x-ms-client-request-id"; } +function generateClientRequestIdPolicy(requestIdHeaderName = "x-ms-client-request-id") { return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new GenerateClientRequestIdPolicy(nextPolicy, options, requestIdHeaderName); } }; } -var GenerateClientRequestIdPolicy = /** @class */ (function (_super) { - tslib.__extends(GenerateClientRequestIdPolicy, _super); - function GenerateClientRequestIdPolicy(nextPolicy, options, _requestIdHeaderName) { - var _this = _super.call(this, nextPolicy, options) || this; - _this._requestIdHeaderName = _requestIdHeaderName; - return _this; +class GenerateClientRequestIdPolicy extends BaseRequestPolicy { + constructor(nextPolicy, options, _requestIdHeaderName) { + super(nextPolicy, options); + this._requestIdHeaderName = _requestIdHeaderName; } - GenerateClientRequestIdPolicy.prototype.sendRequest = function (request) { + sendRequest(request) { if (!request.headers.contains(this._requestIdHeaderName)) { request.headers.set(this._requestIdHeaderName, request.requestId); } return this._nextPolicy.sendRequest(request); - }; - return GenerateClientRequestIdPolicy; -}(BaseRequestPolicy)); + } +} // Copyright (c) Microsoft Corporation. function getDefaultUserAgentKey() { return Constants.HeaderConstants.USER_AGENT; } function getPlatformSpecificData() { - var runtimeInfo = { + const runtimeInfo = { key: "Node", value: process.version }; - var osInfo = { + const osInfo = { key: "OS", - value: "(" + os.arch() + "-" + os.type() + "-" + os.release() + ")" + value: `(${os.arch()}-${os.type()}-${os.release()})` }; return [runtimeInfo, osInfo]; } // Copyright (c) Microsoft Corporation. function getRuntimeInfo() { - var msRestRuntime = { + const msRestRuntime = { key: "core-http", value: Constants.coreHttpVersion }; return [msRestRuntime]; } -function getUserAgentString(telemetryInfo, keySeparator, valueSeparator) { - if (keySeparator === void 0) { keySeparator = " "; } - if (valueSeparator === void 0) { valueSeparator = "/"; } +function getUserAgentString(telemetryInfo, keySeparator = " ", valueSeparator = "/") { return telemetryInfo - .map(function (info) { - var value = info.value ? "" + valueSeparator + info.value : ""; - return "" + info.key + value; + .map((info) => { + const value = info.value ? `${valueSeparator}${info.value}` : ""; + return `${info.key}${value}`; }) .join(keySeparator); } -var getDefaultUserAgentHeaderName = getDefaultUserAgentKey; +const getDefaultUserAgentHeaderName = getDefaultUserAgentKey; function getDefaultUserAgentValue() { - var runtimeInfo = getRuntimeInfo(); - var platformSpecificData = getPlatformSpecificData(); - var userAgent = getUserAgentString(runtimeInfo.concat(platformSpecificData)); + const runtimeInfo = getRuntimeInfo(); + const platformSpecificData = getPlatformSpecificData(); + const userAgent = getUserAgentString(runtimeInfo.concat(platformSpecificData)); return userAgent; } function userAgentPolicy(userAgentData) { - var key = !userAgentData || userAgentData.key === undefined || userAgentData.key === null + const key = !userAgentData || userAgentData.key === undefined || userAgentData.key === null ? getDefaultUserAgentKey() : userAgentData.key; - var value = !userAgentData || userAgentData.value === undefined || userAgentData.value === null + const value = !userAgentData || userAgentData.value === undefined || userAgentData.value === null ? getDefaultUserAgentValue() : userAgentData.value; return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new UserAgentPolicy(nextPolicy, options, key, value); } }; } -var UserAgentPolicy = /** @class */ (function (_super) { - tslib.__extends(UserAgentPolicy, _super); - function UserAgentPolicy(_nextPolicy, _options, headerKey, headerValue) { - var _this = _super.call(this, _nextPolicy, _options) || this; - _this._nextPolicy = _nextPolicy; - _this._options = _options; - _this.headerKey = headerKey; - _this.headerValue = headerValue; - return _this; +class UserAgentPolicy extends BaseRequestPolicy { + constructor(_nextPolicy, _options, headerKey, headerValue) { + super(_nextPolicy, _options); + this._nextPolicy = _nextPolicy; + this._options = _options; + this.headerKey = headerKey; + this.headerValue = headerValue; } - UserAgentPolicy.prototype.sendRequest = function (request) { + sendRequest(request) { this.addUserAgentHeader(request); return this._nextPolicy.sendRequest(request); - }; - UserAgentPolicy.prototype.addUserAgentHeader = function (request) { + } + addUserAgentHeader(request) { if (!request.headers) { request.headers = new HttpHeaders(); } if (!request.headers.get(this.headerKey) && this.headerValue) { request.headers.set(this.headerKey, this.headerValue); } - }; - return UserAgentPolicy; -}(BaseRequestPolicy)); + } +} // Copyright (c) Microsoft Corporation. /** * Methods that are allowed to follow redirects 301 and 302 */ -var allowedRedirect = ["GET", "HEAD"]; -var DefaultRedirectOptions = { +const allowedRedirect = ["GET", "HEAD"]; +const DefaultRedirectOptions = { handleRedirects: true, maxRetries: 20 }; -function redirectPolicy(maximumRetries) { - if (maximumRetries === void 0) { maximumRetries = 20; } +function redirectPolicy(maximumRetries = 20) { return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new RedirectPolicy(nextPolicy, options, maximumRetries); } }; } -var RedirectPolicy = /** @class */ (function (_super) { - tslib.__extends(RedirectPolicy, _super); - function RedirectPolicy(nextPolicy, options, maxRetries) { - if (maxRetries === void 0) { maxRetries = 20; } - var _this = _super.call(this, nextPolicy, options) || this; - _this.maxRetries = maxRetries; - return _this; +class RedirectPolicy extends BaseRequestPolicy { + constructor(nextPolicy, options, maxRetries = 20) { + super(nextPolicy, options); + this.maxRetries = maxRetries; } - RedirectPolicy.prototype.sendRequest = function (request) { - var _this = this; + sendRequest(request) { return this._nextPolicy .sendRequest(request) - .then(function (response) { return handleRedirect(_this, response, 0); }); - }; - return RedirectPolicy; -}(BaseRequestPolicy)); + .then((response) => handleRedirect(this, response, 0)); + } +} function handleRedirect(policy, response, currentRetries) { - var request = response.request, status = response.status; - var locationHeader = response.headers.get("location"); + const { request, status } = response; + const locationHeader = response.headers.get("location"); if (locationHeader && (status === 300 || (status === 301 && allowedRedirect.includes(request.method)) || @@ -23047,7 +22490,7 @@ function handleRedirect(policy, response, currentRetries) { (status === 303 && request.method === "POST") || status === 307) && (!policy.maxRetries || currentRetries < policy.maxRetries)) { - var builder = URLBuilder.parse(request.url); + const builder = URLBuilder.parse(request.url); builder.setPath(locationHeader); request.url = builder.toString(); // POST request with Status code 303 should be converted into a @@ -23058,47 +22501,41 @@ function handleRedirect(policy, response, currentRetries) { } return policy._nextPolicy .sendRequest(request) - .then(function (res) { return handleRedirect(policy, res, currentRetries + 1); }); + .then((res) => handleRedirect(policy, res, currentRetries + 1)); } return Promise.resolve(response); } // Copyright (c) Microsoft Corporation. -function rpRegistrationPolicy(retryTimeout) { - if (retryTimeout === void 0) { retryTimeout = 30; } +function rpRegistrationPolicy(retryTimeout = 30) { return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new RPRegistrationPolicy(nextPolicy, options, retryTimeout); } }; } -var RPRegistrationPolicy = /** @class */ (function (_super) { - tslib.__extends(RPRegistrationPolicy, _super); - function RPRegistrationPolicy(nextPolicy, options, _retryTimeout) { - if (_retryTimeout === void 0) { _retryTimeout = 30; } - var _this = _super.call(this, nextPolicy, options) || this; - _this._retryTimeout = _retryTimeout; - return _this; +class RPRegistrationPolicy extends BaseRequestPolicy { + constructor(nextPolicy, options, _retryTimeout = 30) { + super(nextPolicy, options); + this._retryTimeout = _retryTimeout; } - RPRegistrationPolicy.prototype.sendRequest = function (request) { - var _this = this; + sendRequest(request) { return this._nextPolicy .sendRequest(request.clone()) - .then(function (response) { return registerIfNeeded(_this, request, response); }); - }; - return RPRegistrationPolicy; -}(BaseRequestPolicy)); + .then((response) => registerIfNeeded(this, request, response)); + } +} function registerIfNeeded(policy, request, response) { if (response.status === 409) { - var rpName = checkRPNotRegisteredError(response.bodyAsText); + const rpName = checkRPNotRegisteredError(response.bodyAsText); if (rpName) { - var urlPrefix = extractSubscriptionUrl(request.url); + const urlPrefix = extractSubscriptionUrl(request.url); return (registerRP(policy, urlPrefix, rpName, request) // Autoregistration of ${provider} failed for some reason. We will not return this error // instead will return the initial response with 409 status code back to the user. // do nothing here as we are returning the original response at the end of this method. - .catch(function () { return false; }) - .then(function (registrationStatus) { + .catch(() => false) + .then((registrationStatus) => { if (registrationStatus) { // Retry the original request. We have to change the x-ms-client-request-id // otherwise Azure endpoint will return the initial 409 (cached) response. @@ -23117,9 +22554,8 @@ function registerIfNeeded(policy, request, response) { * @param reuseUrlToo - Should the url from the original request be reused as well. Default false. * @returns A new request object with desired headers. */ -function getRequestEssentials(originalRequest, reuseUrlToo) { - if (reuseUrlToo === void 0) { reuseUrlToo = false; } - var reqOptions = originalRequest.clone(); +function getRequestEssentials(originalRequest, reuseUrlToo = false) { + const reqOptions = originalRequest.clone(); if (reuseUrlToo) { reqOptions.url = originalRequest.url; } @@ -23137,7 +22573,7 @@ function getRequestEssentials(originalRequest, reuseUrlToo) { * @returns The name of the RP if condition is satisfied else undefined. */ function checkRPNotRegisteredError(body) { - var result, responseBody; + let result, responseBody; if (body) { try { responseBody = JSON.parse(body); @@ -23150,7 +22586,7 @@ function checkRPNotRegisteredError(body) { responseBody.error.message && responseBody.error.code && responseBody.error.code === "MissingSubscriptionRegistration") { - var matchRes = responseBody.error.message.match(/.*'(.*)'/i); + const matchRes = responseBody.error.message.match(/.*'(.*)'/i); if (matchRes) { result = matchRes.pop(); } @@ -23165,13 +22601,13 @@ function checkRPNotRegisteredError(body) { * @returns The url prefix as explained above. */ function extractSubscriptionUrl(url) { - var result; - var matchRes = url.match(/.*\/subscriptions\/[a-f0-9-]+\//gi); + let result; + const matchRes = url.match(/.*\/subscriptions\/[a-f0-9-]+\//gi); if (matchRes && matchRes[0]) { result = matchRes[0]; } else { - throw new Error("Unable to extract subscriptionId from the given url - " + url + "."); + throw new Error(`Unable to extract subscriptionId from the given url - ${url}.`); } return result; } @@ -23182,20 +22618,18 @@ function extractSubscriptionUrl(url) { * @param provider - The provider name to be registered. * @param originalRequest - The original request sent by the user that returned a 409 response * with a message that the provider is not registered. - * @param callback - The callback that handles the RP registration */ -function registerRP(policy, urlPrefix, provider, originalRequest) { - var postUrl = urlPrefix + "providers/" + provider + "/register?api-version=2016-02-01"; - var getUrl = urlPrefix + "providers/" + provider + "?api-version=2016-02-01"; - var reqOptions = getRequestEssentials(originalRequest); +async function registerRP(policy, urlPrefix, provider, originalRequest) { + const postUrl = `${urlPrefix}providers/${provider}/register?api-version=2016-02-01`; + const getUrl = `${urlPrefix}providers/${provider}?api-version=2016-02-01`; + const reqOptions = getRequestEssentials(originalRequest); reqOptions.method = "POST"; reqOptions.url = postUrl; - return policy._nextPolicy.sendRequest(reqOptions).then(function (response) { - if (response.status !== 200) { - throw new Error("Autoregistration of " + provider + " failed. Please try registering manually."); - } - return getRegistrationStatus(policy, getUrl, originalRequest); - }); + const response = await policy._nextPolicy.sendRequest(reqOptions); + if (response.status !== 200) { + throw new Error(`Autoregistration of ${provider} failed. Please try registering manually.`); + } + return getRegistrationStatus(policy, getUrl, originalRequest); } /** * Polls the registration status of the provider that was registered. Polling happens at an interval of 30 seconds. @@ -23206,25 +22640,24 @@ function registerRP(policy, urlPrefix, provider, originalRequest) { * with a message that the provider is not registered. * @returns True if RP Registration is successful. */ -function getRegistrationStatus(policy, url, originalRequest) { - var reqOptions = getRequestEssentials(originalRequest); +async function getRegistrationStatus(policy, url, originalRequest) { + const reqOptions = getRequestEssentials(originalRequest); reqOptions.url = url; reqOptions.method = "GET"; - return policy._nextPolicy.sendRequest(reqOptions).then(function (res) { - var obj = res.parsedBody; - if (res.parsedBody && obj.registrationState && obj.registrationState === "Registered") { - return true; - } - else { - return delay(policy._retryTimeout * 1000) - .then(function () { return getRegistrationStatus(policy, url, originalRequest); }); - } - }); + const res = await policy._nextPolicy.sendRequest(reqOptions); + const obj = res.parsedBody; + if (res.parsedBody && obj.registrationState && obj.registrationState === "Registered") { + return true; + } + else { + await delay(policy._retryTimeout * 1000); + return getRegistrationStatus(policy, url, originalRequest); + } } // Copyright (c) Microsoft Corporation. // Default options for the cycler if none are provided -var DEFAULT_CYCLER_OPTIONS = { +const DEFAULT_CYCLER_OPTIONS = { forcedRefreshWindowInMs: 1000, retryIntervalInMs: 3000, refreshWindowInMs: 1000 * 60 * 2 // Start refreshing 2m before expiry @@ -23242,59 +22675,33 @@ var DEFAULT_CYCLER_OPTIONS = { * throwing an exception * @returns - a promise that, if it resolves, will resolve with an access token */ -function beginRefresh(getAccessToken, retryIntervalInMs, timeoutInMs) { - return tslib.__awaiter(this, void 0, void 0, function () { - // This wrapper handles exceptions gracefully as long as we haven't exceeded - // the timeout. - function tryGetAccessToken() { - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, finalToken; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - if (!(Date.now() < timeoutInMs)) return [3 /*break*/, 5]; - _b.label = 1; - case 1: - _b.trys.push([1, 3, , 4]); - return [4 /*yield*/, getAccessToken()]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - _a = _b.sent(); - return [2 /*return*/, null]; - case 4: return [3 /*break*/, 7]; - case 5: return [4 /*yield*/, getAccessToken()]; - case 6: - finalToken = _b.sent(); - // Timeout is up, so throw if it's still null - if (finalToken === null) { - throw new Error("Failed to refresh access token."); - } - return [2 /*return*/, finalToken]; - case 7: return [2 /*return*/]; - } - }); - }); - } - var token; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, tryGetAccessToken()]; - case 1: - token = _a.sent(); - _a.label = 2; - case 2: - if (!(token === null)) return [3 /*break*/, 5]; - return [4 /*yield*/, delay(retryIntervalInMs)]; - case 3: - _a.sent(); - return [4 /*yield*/, tryGetAccessToken()]; - case 4: - token = _a.sent(); - return [3 /*break*/, 2]; - case 5: return [2 /*return*/, token]; +async function beginRefresh(getAccessToken, retryIntervalInMs, timeoutInMs) { + // This wrapper handles exceptions gracefully as long as we haven't exceeded + // the timeout. + async function tryGetAccessToken() { + if (Date.now() < timeoutInMs) { + try { + return await getAccessToken(); } - }); - }); + catch (_a) { + return null; + } + } + else { + const finalToken = await getAccessToken(); + // Timeout is up, so throw if it's still null + if (finalToken === null) { + throw new Error("Failed to refresh access token."); + } + return finalToken; + } + } + let token = await tryGetAccessToken(); + while (token === null) { + await delay(retryIntervalInMs); + token = await tryGetAccessToken(); + } + return token; } /** * Creates a token cycler from a credential, scopes, and optional settings. @@ -23312,15 +22719,14 @@ function beginRefresh(getAccessToken, retryIntervalInMs, timeoutInMs) { * @returns - a function that reliably produces a valid access token */ function createTokenCycler(credential, scopes, tokenCyclerOptions) { - var _this = this; - var refreshWorker = null; - var token = null; - var options = tslib.__assign(tslib.__assign({}, DEFAULT_CYCLER_OPTIONS), tokenCyclerOptions); + let refreshWorker = null; + let token = null; + const options = Object.assign(Object.assign({}, DEFAULT_CYCLER_OPTIONS), tokenCyclerOptions); /** * This little holder defines several predicates that we use to construct * the rules of refreshing the token. */ - var cycler = { + const cycler = { /** * Produces true if a refresh job is currently in progress. */ @@ -23352,20 +22758,18 @@ function createTokenCycler(credential, scopes, tokenCyclerOptions) { var _a; if (!cycler.isRefreshing) { // We bind `scopes` here to avoid passing it around a lot - var tryGetAccessToken = function () { - return credential.getToken(scopes, getTokenOptions); - }; + const tryGetAccessToken = () => credential.getToken(scopes, getTokenOptions); // Take advantage of promise chaining to insert an assignment to `token` // before the refresh can be considered done. refreshWorker = beginRefresh(tryGetAccessToken, options.retryIntervalInMs, // If we don't have a token, then we should timeout immediately (_a = token === null || token === void 0 ? void 0 : token.expiresOnTimestamp) !== null && _a !== void 0 ? _a : Date.now()) - .then(function (_token) { + .then((_token) => { refreshWorker = null; token = _token; return token; }) - .catch(function (reason) { + .catch((reason) => { // We also should reset the refresher if we enter a failed state. All // existing awaiters will throw, but subsequent requests will start a // new retry chain. @@ -23376,25 +22780,23 @@ function createTokenCycler(credential, scopes, tokenCyclerOptions) { } return refreshWorker; } - return function (tokenOptions) { return tslib.__awaiter(_this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - // - // Simple rules: - // - If we MUST refresh, then return the refresh task, blocking - // the pipeline until a token is available. - // - If we SHOULD refresh, then run refresh but don't return it - // (we can still use the cached token). - // - Return the token, since it's fine if we didn't return in - // step 1. - // - if (cycler.mustRefresh) - return [2 /*return*/, refresh(tokenOptions)]; - if (cycler.shouldRefresh) { - refresh(tokenOptions); - } - return [2 /*return*/, token]; - }); - }); }; + return async (tokenOptions) => { + // + // Simple rules: + // - If we MUST refresh, then return the refresh task, blocking + // the pipeline until a token is available. + // - If we SHOULD refresh, then run refresh but don't return it + // (we can still use the cached token). + // - Return the token, since it's fine if we didn't return in + // step 1. + // + if (cycler.mustRefresh) + return refresh(tokenOptions); + if (cycler.shouldRefresh) { + refresh(tokenOptions); + } + return token; + }; } // #endregion /** @@ -23406,36 +22808,27 @@ function createTokenCycler(credential, scopes, tokenCyclerOptions) { */ function bearerTokenAuthenticationPolicy(credential, scopes) { // This simple function encapsulates the entire process of reliably retrieving the token - var getToken = createTokenCycler(credential, scopes /* , options */); - var BearerTokenAuthenticationPolicy = /** @class */ (function (_super) { - tslib.__extends(BearerTokenAuthenticationPolicy, _super); - function BearerTokenAuthenticationPolicy(nextPolicy, options) { - return _super.call(this, nextPolicy, options) || this; + const getToken = createTokenCycler(credential, scopes /* , options */); + class BearerTokenAuthenticationPolicy extends BaseRequestPolicy { + constructor(nextPolicy, options) { + super(nextPolicy, options); } - BearerTokenAuthenticationPolicy.prototype.sendRequest = function (webResource) { - return tslib.__awaiter(this, void 0, void 0, function () { - var token; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, getToken({ - abortSignal: webResource.abortSignal, - tracingOptions: { - spanOptions: webResource.spanOptions, - tracingContext: webResource.tracingContext - } - })]; - case 1: - token = (_a.sent()).token; - webResource.headers.set(Constants.HeaderConstants.AUTHORIZATION, "Bearer " + token); - return [2 /*return*/, this._nextPolicy.sendRequest(webResource)]; - } - }); + async sendRequest(webResource) { + if (!webResource.url.toLowerCase().startsWith("https://")) { + throw new Error("Bearer token authentication is not permitted for non-TLS protected (non-https) URLs."); + } + const { token } = await getToken({ + abortSignal: webResource.abortSignal, + tracingOptions: { + tracingContext: webResource.tracingContext + } }); - }; - return BearerTokenAuthenticationPolicy; - }(BaseRequestPolicy)); + webResource.headers.set(Constants.HeaderConstants.AUTHORIZATION, `Bearer ${token}`); + return this._nextPolicy.sendRequest(webResource); + } + } return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new BearerTokenAuthenticationPolicy(nextPolicy, options); } }; @@ -23444,7 +22837,7 @@ function bearerTokenAuthenticationPolicy(credential, scopes) { // Copyright (c) Microsoft Corporation. function systemErrorRetryPolicy(retryCount, retryInterval, minRetryInterval, maxRetryInterval) { return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new SystemErrorRetryPolicy(nextPolicy, options, retryCount, retryInterval, minRetryInterval, maxRetryInterval); } }; @@ -23455,69 +22848,55 @@ function systemErrorRetryPolicy(retryCount, retryInterval, minRetryInterval, max * @param minRetryInterval - The minimum retry interval, in milliseconds. * @param maxRetryInterval - The maximum retry interval, in milliseconds. */ -var SystemErrorRetryPolicy = /** @class */ (function (_super) { - tslib.__extends(SystemErrorRetryPolicy, _super); - function SystemErrorRetryPolicy(nextPolicy, options, retryCount, retryInterval, minRetryInterval, maxRetryInterval) { - var _this = _super.call(this, nextPolicy, options) || this; - _this.retryCount = isNumber(retryCount) ? retryCount : DEFAULT_CLIENT_RETRY_COUNT; - _this.retryInterval = isNumber(retryInterval) ? retryInterval : DEFAULT_CLIENT_RETRY_INTERVAL; - _this.minRetryInterval = isNumber(minRetryInterval) +class SystemErrorRetryPolicy extends BaseRequestPolicy { + constructor(nextPolicy, options, retryCount, retryInterval, minRetryInterval, maxRetryInterval) { + super(nextPolicy, options); + this.retryCount = isNumber(retryCount) ? retryCount : DEFAULT_CLIENT_RETRY_COUNT; + this.retryInterval = isNumber(retryInterval) ? retryInterval : DEFAULT_CLIENT_RETRY_INTERVAL; + this.minRetryInterval = isNumber(minRetryInterval) ? minRetryInterval : DEFAULT_CLIENT_MIN_RETRY_INTERVAL; - _this.maxRetryInterval = isNumber(maxRetryInterval) + this.maxRetryInterval = isNumber(maxRetryInterval) ? maxRetryInterval : DEFAULT_CLIENT_MAX_RETRY_INTERVAL; - return _this; } - SystemErrorRetryPolicy.prototype.sendRequest = function (request) { - var _this = this; + sendRequest(request) { return this._nextPolicy .sendRequest(request.clone()) - .catch(function (error) { return retry$1(_this, request, error.response, error); }); - }; - return SystemErrorRetryPolicy; -}(BaseRequestPolicy)); -function retry$1(policy, request, operationResponse, err, retryData) { - return tslib.__awaiter(this, void 0, void 0, function () { - function shouldPolicyRetry(_response, error) { - if (error && - error.code && - (error.code === "ETIMEDOUT" || - error.code === "ESOCKETTIMEDOUT" || - error.code === "ECONNREFUSED" || - error.code === "ECONNRESET" || - error.code === "ENOENT")) { - return true; - } - return false; + .catch((error) => retry$1(this, request, error.response, error)); + } +} +async function retry$1(policy, request, operationResponse, err, retryData) { + retryData = updateRetryData(policy, retryData, err); + function shouldPolicyRetry(_response, error) { + if (error && + error.code && + (error.code === "ETIMEDOUT" || + error.code === "ESOCKETTIMEDOUT" || + error.code === "ECONNREFUSED" || + error.code === "ECONNRESET" || + error.code === "ENOENT")) { + return true; } - var nestedErr_1; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - retryData = updateRetryData(policy, retryData, err); - if (!shouldRetry(policy.retryCount, shouldPolicyRetry, retryData, operationResponse, err)) return [3 /*break*/, 5]; - _a.label = 1; - case 1: - _a.trys.push([1, 3, , 4]); - return [4 /*yield*/, delay(retryData.retryInterval)]; - case 2: - _a.sent(); - return [2 /*return*/, policy._nextPolicy.sendRequest(request.clone())]; - case 3: - nestedErr_1 = _a.sent(); - return [2 /*return*/, retry$1(policy, request, operationResponse, nestedErr_1, retryData)]; - case 4: return [3 /*break*/, 6]; - case 5: - if (err) { - // If the operation failed in the end, return all errors instead of just the last one - return [2 /*return*/, Promise.reject(retryData.error)]; - } - return [2 /*return*/, operationResponse]; - case 6: return [2 /*return*/]; - } - }); - }); + return false; + } + if (shouldRetry(policy.retryCount, shouldPolicyRetry, retryData, operationResponse, err)) { + // If previous operation ended with an error and the policy allows a retry, do that + try { + await delay(retryData.retryInterval); + return policy._nextPolicy.sendRequest(request.clone()); + } + catch (nestedErr) { + return retry$1(policy, request, operationResponse, nestedErr, retryData); + } + } + else { + if (err) { + // If the operation failed in the end, return all errors instead of just the last one + return Promise.reject(retryData.error); + } + return operationResponse; + } } // Copyright (c) Microsoft Corporation. @@ -23531,34 +22910,37 @@ function retry$1(policy, request, operationResponse, err, retryData) { // Copyright (c) Microsoft Corporation. /** + * Stores the patterns specified in NO_PROXY environment variable. * @internal */ -var noProxyList = []; -var noProxyListLoaded = false; -var byPassedList = new Map(); +const globalNoProxyList = []; +let noProxyListLoaded = false; +/** A cache of whether a host should bypass the proxy. */ +const globalBypassedMap = new Map(); function loadEnvironmentProxyValue() { if (!process) { return undefined; } - var httpsProxy = getEnvironmentValue(Constants.HTTPS_PROXY); - var allProxy = getEnvironmentValue(Constants.ALL_PROXY); - var httpProxy = getEnvironmentValue(Constants.HTTP_PROXY); + const httpsProxy = getEnvironmentValue(Constants.HTTPS_PROXY); + const allProxy = getEnvironmentValue(Constants.ALL_PROXY); + const httpProxy = getEnvironmentValue(Constants.HTTP_PROXY); return httpsProxy || allProxy || httpProxy; } -// Check whether the host of a given `uri` is in the noProxyList. -// If there's a match, any request sent to the same host won't have the proxy settings set. -// This implementation is a port of https://github.com/Azure/azure-sdk-for-net/blob/8cca811371159e527159c7eb65602477898683e2/sdk/core/Azure.Core/src/Pipeline/Internal/HttpEnvironmentProxy.cs#L210 -function isBypassed(uri) { +/** + * Check whether the host of a given `uri` matches any pattern in the no proxy list. + * If there's a match, any request sent to the same host shouldn't have the proxy settings set. + * This implementation is a port of https://github.com/Azure/azure-sdk-for-net/blob/8cca811371159e527159c7eb65602477898683e2/sdk/core/Azure.Core/src/Pipeline/Internal/HttpEnvironmentProxy.cs#L210 + */ +function isBypassed(uri, noProxyList, bypassedMap) { if (noProxyList.length === 0) { return false; } - var host = URLBuilder.parse(uri).getHost(); - if (byPassedList.has(host)) { - return byPassedList.get(host); + const host = URLBuilder.parse(uri).getHost(); + if (bypassedMap === null || bypassedMap === void 0 ? void 0 : bypassedMap.has(host)) { + return bypassedMap.get(host); } - var isBypassedFlag = false; - for (var _i = 0, noProxyList_1 = noProxyList; _i < noProxyList_1.length; _i++) { - var pattern = noProxyList_1[_i]; + let isBypassedFlag = false; + for (const pattern of noProxyList) { if (pattern[0] === ".") { // This should match either domain it self or any subdomain or host // .foo.com will match foo.com it self or *.foo.com @@ -23577,20 +22959,20 @@ function isBypassed(uri) { } } } - byPassedList.set(host, isBypassedFlag); + bypassedMap === null || bypassedMap === void 0 ? void 0 : bypassedMap.set(host, isBypassedFlag); return isBypassedFlag; } /** * @internal */ function loadNoProxy() { - var noProxy = getEnvironmentValue(Constants.NO_PROXY); + const noProxy = getEnvironmentValue(Constants.NO_PROXY); noProxyListLoaded = true; if (noProxy) { return noProxy .split(",") - .map(function (item) { return item.trim(); }) - .filter(function (item) { return item.length; }); + .map((item) => item.trim()) + .filter((item) => item.length); } return []; } @@ -23601,174 +22983,184 @@ function getDefaultProxySettings(proxyUrl) { return undefined; } } - var _a = extractAuthFromUrl(proxyUrl), username = _a.username, password = _a.password, urlWithoutAuth = _a.urlWithoutAuth; - var parsedUrl = URLBuilder.parse(urlWithoutAuth); - var schema = parsedUrl.getScheme() ? parsedUrl.getScheme() + "://" : ""; + const { username, password, urlWithoutAuth } = extractAuthFromUrl(proxyUrl); + const parsedUrl = URLBuilder.parse(urlWithoutAuth); + const schema = parsedUrl.getScheme() ? parsedUrl.getScheme() + "://" : ""; return { host: schema + parsedUrl.getHost(), port: Number.parseInt(parsedUrl.getPort() || "80"), - username: username, - password: password + username, + password }; } -function proxyPolicy(proxySettings) { +/** + * A policy that allows one to apply proxy settings to all requests. + * If not passed static settings, they will be retrieved from the HTTPS_PROXY + * or HTTP_PROXY environment variables. + * @param proxySettings - ProxySettings to use on each request. + * @param options - additional settings, for example, custom NO_PROXY patterns + */ +function proxyPolicy(proxySettings, options) { if (!proxySettings) { proxySettings = getDefaultProxySettings(); } if (!noProxyListLoaded) { - noProxyList.push.apply(noProxyList, loadNoProxy()); + globalNoProxyList.push(...loadNoProxy()); } return { - create: function (nextPolicy, options) { - return new ProxyPolicy(nextPolicy, options, proxySettings); + create: (nextPolicy, requestPolicyOptions) => { + return new ProxyPolicy(nextPolicy, requestPolicyOptions, proxySettings, options === null || options === void 0 ? void 0 : options.customNoProxyList); } }; } function extractAuthFromUrl(url) { - var atIndex = url.indexOf("@"); + const atIndex = url.indexOf("@"); if (atIndex === -1) { return { urlWithoutAuth: url }; } - var schemeIndex = url.indexOf("://"); - var authStart = schemeIndex !== -1 ? schemeIndex + 3 : 0; - var auth = url.substring(authStart, atIndex); - var colonIndex = auth.indexOf(":"); - var hasPassword = colonIndex !== -1; - var username = hasPassword ? auth.substring(0, colonIndex) : auth; - var password = hasPassword ? auth.substring(colonIndex + 1) : undefined; - var urlWithoutAuth = url.substring(0, authStart) + url.substring(atIndex + 1); + const schemeIndex = url.indexOf("://"); + const authStart = schemeIndex !== -1 ? schemeIndex + 3 : 0; + const auth = url.substring(authStart, atIndex); + const colonIndex = auth.indexOf(":"); + const hasPassword = colonIndex !== -1; + const username = hasPassword ? auth.substring(0, colonIndex) : auth; + const password = hasPassword ? auth.substring(colonIndex + 1) : undefined; + const urlWithoutAuth = url.substring(0, authStart) + url.substring(atIndex + 1); return { - username: username, - password: password, - urlWithoutAuth: urlWithoutAuth + username, + password, + urlWithoutAuth }; } -var ProxyPolicy = /** @class */ (function (_super) { - tslib.__extends(ProxyPolicy, _super); - function ProxyPolicy(nextPolicy, options, proxySettings) { - var _this = _super.call(this, nextPolicy, options) || this; - _this.proxySettings = proxySettings; - return _this; +class ProxyPolicy extends BaseRequestPolicy { + constructor(nextPolicy, options, proxySettings, customNoProxyList) { + super(nextPolicy, options); + this.proxySettings = proxySettings; + this.customNoProxyList = customNoProxyList; } - ProxyPolicy.prototype.sendRequest = function (request) { - if (!request.proxySettings && !isBypassed(request.url)) { + sendRequest(request) { + var _a; + if (!request.proxySettings && + !isBypassed(request.url, (_a = this.customNoProxyList) !== null && _a !== void 0 ? _a : globalNoProxyList, this.customNoProxyList ? undefined : globalBypassedMap)) { request.proxySettings = this.proxySettings; } return this._nextPolicy.sendRequest(request); - }; - return ProxyPolicy; -}(BaseRequestPolicy)); + } +} // Copyright (c) Microsoft Corporation. -var StatusCodes = Constants.HttpConstants.StatusCodes; +// Licensed under the MIT license. +/** + * Maximum number of retries for the throttling retry policy + */ +const DEFAULT_CLIENT_MAX_RETRY_COUNT = 3; + +// Copyright (c) Microsoft Corporation. +const StatusCodes = Constants.HttpConstants.StatusCodes; function throttlingRetryPolicy() { return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new ThrottlingRetryPolicy(nextPolicy, options); } }; } +const StandardAbortMessage$1 = "The operation was aborted."; /** * To learn more, please refer to * https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-request-limits, * https://docs.microsoft.com/en-us/azure/azure-subscription-service-limits and * https://docs.microsoft.com/en-us/azure/virtual-machines/troubleshooting/troubleshooting-throttling-errors */ -var ThrottlingRetryPolicy = /** @class */ (function (_super) { - tslib.__extends(ThrottlingRetryPolicy, _super); - function ThrottlingRetryPolicy(nextPolicy, options, _handleResponse) { - var _this = _super.call(this, nextPolicy, options) || this; - _this._handleResponse = _handleResponse || _this._defaultResponseHandler; - return _this; +class ThrottlingRetryPolicy extends BaseRequestPolicy { + constructor(nextPolicy, options, _handleResponse) { + super(nextPolicy, options); + this.numberOfRetries = 0; + this._handleResponse = _handleResponse || this._defaultResponseHandler; } - ThrottlingRetryPolicy.prototype.sendRequest = function (httpRequest) { - return tslib.__awaiter(this, void 0, void 0, function () { - var _this = this; - return tslib.__generator(this, function (_a) { - return [2 /*return*/, this._nextPolicy.sendRequest(httpRequest.clone()).then(function (response) { - if (response.status !== StatusCodes.TooManyRequests) { - return response; - } - else { - return _this._handleResponse(httpRequest, response); - } - })]; - }); - }); - }; - ThrottlingRetryPolicy.prototype._defaultResponseHandler = function (httpRequest, httpResponse) { - return tslib.__awaiter(this, void 0, void 0, function () { - var retryAfterHeader, delayInMs; - var _this = this; - return tslib.__generator(this, function (_a) { - retryAfterHeader = httpResponse.headers.get(Constants.HeaderConstants.RETRY_AFTER); - if (retryAfterHeader) { - delayInMs = ThrottlingRetryPolicy.parseRetryAfterHeader(retryAfterHeader); - if (delayInMs) { - return [2 /*return*/, delay(delayInMs).then(function (_) { return _this._nextPolicy.sendRequest(httpRequest); })]; - } + async sendRequest(httpRequest) { + const response = await this._nextPolicy.sendRequest(httpRequest.clone()); + if (response.status !== StatusCodes.TooManyRequests && + response.status !== StatusCodes.ServiceUnavailable) { + return response; + } + else { + return this._handleResponse(httpRequest, response); + } + } + async _defaultResponseHandler(httpRequest, httpResponse) { + var _a; + const retryAfterHeader = httpResponse.headers.get(Constants.HeaderConstants.RETRY_AFTER); + if (retryAfterHeader) { + const delayInMs = ThrottlingRetryPolicy.parseRetryAfterHeader(retryAfterHeader); + if (delayInMs) { + this.numberOfRetries += 1; + await delay(delayInMs, undefined, { + abortSignal: httpRequest.abortSignal, + abortErrorMsg: StandardAbortMessage$1 + }); + if ((_a = httpRequest.abortSignal) === null || _a === void 0 ? void 0 : _a.aborted) { + throw new abortController.AbortError(StandardAbortMessage$1); } - return [2 /*return*/, httpResponse]; - }); - }); - }; - ThrottlingRetryPolicy.parseRetryAfterHeader = function (headerValue) { - var retryAfterInSeconds = Number(headerValue); + if (this.numberOfRetries < DEFAULT_CLIENT_MAX_RETRY_COUNT) { + return this.sendRequest(httpRequest); + } + else { + return this._nextPolicy.sendRequest(httpRequest); + } + } + } + return httpResponse; + } + static parseRetryAfterHeader(headerValue) { + const retryAfterInSeconds = Number(headerValue); if (Number.isNaN(retryAfterInSeconds)) { return ThrottlingRetryPolicy.parseDateRetryAfterHeader(headerValue); } else { return retryAfterInSeconds * 1000; } - }; - ThrottlingRetryPolicy.parseDateRetryAfterHeader = function (headerValue) { + } + static parseDateRetryAfterHeader(headerValue) { try { - var now = Date.now(); - var date = Date.parse(headerValue); - var diff = date - now; + const now = Date.now(); + const date = Date.parse(headerValue); + const diff = date - now; return Number.isNaN(diff) ? undefined : diff; } catch (error) { return undefined; } - }; - return ThrottlingRetryPolicy; -}(BaseRequestPolicy)); + } +} // Copyright (c) Microsoft Corporation. function signingPolicy(authenticationProvider) { return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new SigningPolicy(nextPolicy, options, authenticationProvider); } }; } -var SigningPolicy = /** @class */ (function (_super) { - tslib.__extends(SigningPolicy, _super); - function SigningPolicy(nextPolicy, options, authenticationProvider) { - var _this = _super.call(this, nextPolicy, options) || this; - _this.authenticationProvider = authenticationProvider; - return _this; +class SigningPolicy extends BaseRequestPolicy { + constructor(nextPolicy, options, authenticationProvider) { + super(nextPolicy, options); + this.authenticationProvider = authenticationProvider; } - SigningPolicy.prototype.signRequest = function (request) { + signRequest(request) { return this.authenticationProvider.signRequest(request); - }; - SigningPolicy.prototype.sendRequest = function (request) { - var _this = this; - return this.signRequest(request).then(function (nextRequest) { - return _this._nextPolicy.sendRequest(nextRequest); - }); - }; - return SigningPolicy; -}(BaseRequestPolicy)); + } + sendRequest(request) { + return this.signRequest(request).then((nextRequest) => this._nextPolicy.sendRequest(nextRequest)); + } +} // Copyright (c) Microsoft Corporation. -var DefaultKeepAliveOptions = { +const DefaultKeepAliveOptions = { enable: true }; function keepAlivePolicy(keepAliveOptions) { return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new KeepAlivePolicy(nextPolicy, options, keepAliveOptions || DefaultKeepAliveOptions); } }; @@ -23776,8 +23168,7 @@ function keepAlivePolicy(keepAliveOptions) { /** * KeepAlivePolicy is a policy used to control keep alive settings for every request. */ -var KeepAlivePolicy = /** @class */ (function (_super) { - tslib.__extends(KeepAlivePolicy, _super); +class KeepAlivePolicy extends BaseRequestPolicy { /** * Creates an instance of KeepAlivePolicy. * @@ -23785,10 +23176,9 @@ var KeepAlivePolicy = /** @class */ (function (_super) { * @param options - * @param keepAliveOptions - */ - function KeepAlivePolicy(nextPolicy, options, keepAliveOptions) { - var _this = _super.call(this, nextPolicy, options) || this; - _this.keepAliveOptions = keepAliveOptions; - return _this; + constructor(nextPolicy, options, keepAliveOptions) { + super(nextPolicy, options); + this.keepAliveOptions = keepAliveOptions; } /** * Sends out request. @@ -23796,104 +23186,126 @@ var KeepAlivePolicy = /** @class */ (function (_super) { * @param request - * @returns */ - KeepAlivePolicy.prototype.sendRequest = function (request) { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - request.keepAlive = this.keepAliveOptions.enable; - return [2 /*return*/, this._nextPolicy.sendRequest(request)]; - }); - }); - }; - return KeepAlivePolicy; -}(BaseRequestPolicy)); + async sendRequest(request) { + request.keepAlive = this.keepAliveOptions.enable; + return this._nextPolicy.sendRequest(request); + } +} // Copyright (c) Microsoft Corporation. -var createSpan = coreTracing.createSpanFunction({ +const createSpan = coreTracing.createSpanFunction({ packagePrefix: "", namespace: "" }); -function tracingPolicy(tracingOptions) { - if (tracingOptions === void 0) { tracingOptions = {}; } +function tracingPolicy(tracingOptions = {}) { return { - create: function (nextPolicy, options) { + create(nextPolicy, options) { return new TracingPolicy(nextPolicy, options, tracingOptions); } }; } -var TracingPolicy = /** @class */ (function (_super) { - tslib.__extends(TracingPolicy, _super); - function TracingPolicy(nextPolicy, options, tracingOptions) { - var _this = _super.call(this, nextPolicy, options) || this; - _this.userAgent = tracingOptions.userAgent; - return _this; +class TracingPolicy extends BaseRequestPolicy { + constructor(nextPolicy, options, tracingOptions) { + super(nextPolicy, options); + this.userAgent = tracingOptions.userAgent; } - TracingPolicy.prototype.sendRequest = function (request) { - return tslib.__awaiter(this, void 0, void 0, function () { - var path, span, spanContext, traceParentHeader, traceState, response, serviceRequestId, err_1; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!request.tracingContext) { - return [2 /*return*/, this._nextPolicy.sendRequest(request)]; - } - path = URLBuilder.parse(request.url).getPath() || "/"; - span = createSpan(path, { - tracingOptions: { - spanOptions: tslib.__assign(tslib.__assign({}, request.spanOptions), { kind: coreTracing.SpanKind.CLIENT }), - tracingContext: request.tracingContext - } - }).span; - span.setAttributes({ - "http.method": request.method, - "http.url": request.url, - requestId: request.requestId - }); - if (this.userAgent) { - span.setAttribute("http.user_agent", this.userAgent); - } - _a.label = 1; - case 1: - _a.trys.push([1, 3, 4, 5]); - spanContext = span.context(); - traceParentHeader = coreTracing.getTraceParentHeader(spanContext); - if (traceParentHeader) { - request.headers.set("traceparent", traceParentHeader); - traceState = spanContext.traceState && spanContext.traceState.serialize(); - // if tracestate is set, traceparent MUST be set, so only set tracestate after traceparent - if (traceState) { - request.headers.set("tracestate", traceState); - } - } - return [4 /*yield*/, this._nextPolicy.sendRequest(request)]; - case 2: - response = _a.sent(); - span.setAttribute("http.status_code", response.status); - serviceRequestId = response.headers.get("x-ms-request-id"); - if (serviceRequestId) { - span.setAttribute("serviceRequestId", serviceRequestId); - } - span.setStatus({ - code: coreTracing.SpanStatusCode.OK - }); - return [2 /*return*/, response]; - case 3: - err_1 = _a.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: err_1.message - }); - span.setAttribute("http.status_code", err_1.statusCode); - throw err_1; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; + async sendRequest(request) { + if (!request.tracingContext) { + return this._nextPolicy.sendRequest(request); + } + const span = this.tryCreateSpan(request); + if (!span) { + return this._nextPolicy.sendRequest(request); + } + try { + const response = await this._nextPolicy.sendRequest(request); + this.tryProcessResponse(span, response); + return response; + } + catch (err) { + this.tryProcessError(span, err); + throw err; + } + } + tryCreateSpan(request) { + var _a; + try { + const path = URLBuilder.parse(request.url).getPath() || "/"; + // Passing spanOptions as part of tracingOptions to maintain compatibility @azure/core-tracing@preview.13 and earlier. + // We can pass this as a separate parameter once we upgrade to the latest core-tracing. + const { span } = createSpan(path, { + tracingOptions: { + spanOptions: Object.assign(Object.assign({}, request.spanOptions), { kind: coreTracing.SpanKind.CLIENT }), + tracingContext: request.tracingContext } }); - }); - }; - return TracingPolicy; -}(BaseRequestPolicy)); + // If the span is not recording, don't do any more work. + if (!span.isRecording()) { + span.end(); + return undefined; + } + const namespaceFromContext = (_a = request.tracingContext) === null || _a === void 0 ? void 0 : _a.getValue(Symbol.for("az.namespace")); + if (typeof namespaceFromContext === "string") { + span.setAttribute("az.namespace", namespaceFromContext); + } + span.setAttributes({ + "http.method": request.method, + "http.url": request.url, + requestId: request.requestId + }); + if (this.userAgent) { + span.setAttribute("http.user_agent", this.userAgent); + } + // set headers + const spanContext = span.spanContext(); + const traceParentHeader = coreTracing.getTraceParentHeader(spanContext); + if (traceParentHeader && coreTracing.isSpanContextValid(spanContext)) { + request.headers.set("traceparent", traceParentHeader); + const traceState = spanContext.traceState && spanContext.traceState.serialize(); + // if tracestate is set, traceparent MUST be set, so only set tracestate after traceparent + if (traceState) { + request.headers.set("tracestate", traceState); + } + } + return span; + } + catch (error) { + logger.warning(`Skipping creating a tracing span due to an error: ${error.message}`); + return undefined; + } + } + tryProcessError(span, err) { + try { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: err.message + }); + if (err.statusCode) { + span.setAttribute("http.status_code", err.statusCode); + } + span.end(); + } + catch (error) { + logger.warning(`Skipping tracing span processing due to an error: ${error.message}`); + } + } + tryProcessResponse(span, response) { + try { + span.setAttribute("http.status_code", response.status); + const serviceRequestId = response.headers.get("x-ms-request-id"); + if (serviceRequestId) { + span.setAttribute("serviceRequestId", serviceRequestId); + } + span.setStatus({ + code: coreTracing.SpanStatusCode.OK + }); + span.end(); + } + catch (error) { + logger.warning(`Skipping tracing span processing due to an error: ${error.message}`); + } + } +} // Copyright (c) Microsoft Corporation. /** @@ -23902,7 +23314,7 @@ var TracingPolicy = /** @class */ (function (_super) { */ function disableResponseDecompressionPolicy() { return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new DisableResponseDecompressionPolicy(nextPolicy, options); } }; @@ -23911,8 +23323,7 @@ function disableResponseDecompressionPolicy() { * A policy to disable response decompression according to Accept-Encoding header * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding */ -var DisableResponseDecompressionPolicy = /** @class */ (function (_super) { - tslib.__extends(DisableResponseDecompressionPolicy, _super); +class DisableResponseDecompressionPolicy extends BaseRequestPolicy { /** * Creates an instance of DisableResponseDecompressionPolicy. * @@ -23921,8 +23332,8 @@ var DisableResponseDecompressionPolicy = /** @class */ (function (_super) { */ // The parent constructor is protected. /* eslint-disable-next-line @typescript-eslint/no-useless-constructor */ - function DisableResponseDecompressionPolicy(nextPolicy, options) { - return _super.call(this, nextPolicy, options) || this; + constructor(nextPolicy, options) { + super(nextPolicy, options); } /** * Sends out request. @@ -23930,21 +23341,16 @@ var DisableResponseDecompressionPolicy = /** @class */ (function (_super) { * @param request - * @returns */ - DisableResponseDecompressionPolicy.prototype.sendRequest = function (request) { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - request.decompressResponse = false; - return [2 /*return*/, this._nextPolicy.sendRequest(request)]; - }); - }); - }; - return DisableResponseDecompressionPolicy; -}(BaseRequestPolicy)); + async sendRequest(request) { + request.decompressResponse = false; + return this._nextPolicy.sendRequest(request); + } +} // Copyright (c) Microsoft Corporation. function ndJsonPolicy() { return { - create: function (nextPolicy, options) { + create: (nextPolicy, options) => { return new NdJsonPolicy(nextPolicy, options); } }; @@ -23952,37 +23358,30 @@ function ndJsonPolicy() { /** * NdJsonPolicy that formats a JSON array as newline-delimited JSON */ -var NdJsonPolicy = /** @class */ (function (_super) { - tslib.__extends(NdJsonPolicy, _super); +class NdJsonPolicy extends BaseRequestPolicy { /** * Creates an instance of KeepAlivePolicy. */ - function NdJsonPolicy(nextPolicy, options) { - return _super.call(this, nextPolicy, options) || this; + constructor(nextPolicy, options) { + super(nextPolicy, options); } /** * Sends a request. */ - NdJsonPolicy.prototype.sendRequest = function (request) { - return tslib.__awaiter(this, void 0, void 0, function () { - var body; - return tslib.__generator(this, function (_a) { - // There currently isn't a good way to bypass the serializer - if (typeof request.body === "string" && request.body.startsWith("[")) { - body = JSON.parse(request.body); - if (Array.isArray(body)) { - request.body = body.map(function (item) { return JSON.stringify(item) + "\n"; }).join(""); - } - } - return [2 /*return*/, this._nextPolicy.sendRequest(request)]; - }); - }); - }; - return NdJsonPolicy; -}(BaseRequestPolicy)); + async sendRequest(request) { + // There currently isn't a good way to bypass the serializer + if (typeof request.body === "string" && request.body.startsWith("[")) { + const body = JSON.parse(request.body); + if (Array.isArray(body)) { + request.body = body.map((item) => JSON.stringify(item) + "\n").join(""); + } + } + return this._nextPolicy.sendRequest(request); + } +} // Copyright (c) Microsoft Corporation. -var cachedHttpClient; +let cachedHttpClient; function getCachedDefaultHttpClient() { if (!cachedHttpClient) { cachedHttpClient = new NodeFetchHttpClient(); @@ -23994,29 +23393,28 @@ function getCachedDefaultHttpClient() { /** * ServiceClient sends service requests and receives responses. */ -var ServiceClient = /** @class */ (function () { +class ServiceClient { /** * The ServiceClient constructor * @param credentials - The credentials used for authentication with the service. * @param options - The service client options that govern the behavior of the client. */ - function ServiceClient(credentials, + constructor(credentials, /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */ options) { - var _this = this; if (!options) { options = {}; } this._withCredentials = options.withCredentials || false; this._httpClient = options.httpClient || getCachedDefaultHttpClient(); this._requestPolicyOptions = new RequestPolicyOptions(options.httpPipelineLogger); - var requestPolicyFactories; + let requestPolicyFactories; if (Array.isArray(options.requestPolicyFactories)) { logger.info("ServiceClient: using custom request policies"); requestPolicyFactories = options.requestPolicyFactories; } else { - var authPolicyFactory = undefined; + let authPolicyFactory = undefined; if (coreAuth.isTokenCredential(credentials)) { logger.info("ServiceClient: creating bearer token authentication policy from provided credentials"); // Create a wrapped RequestPolicyFactory here so that we can provide the @@ -24025,16 +23423,16 @@ var ServiceClient = /** @class */ (function () { // implementations do not set baseUri until after ServiceClient's constructor // is finished, leaving baseUri empty at the time when it is needed to // build the correct scope name. - var wrappedPolicyFactory = function () { - var bearerTokenPolicyFactory = undefined; + const wrappedPolicyFactory = () => { + let bearerTokenPolicyFactory = undefined; // eslint-disable-next-line @typescript-eslint/no-this-alias - var serviceClient = _this; - var serviceClientOptions = options; + const serviceClient = this; + const serviceClientOptions = options; return { - create: function (nextPolicy, createOptions) { - var credentialScopes = getCredentialScopes(serviceClientOptions, serviceClient.baseUri); + create(nextPolicy, createOptions) { + const credentialScopes = getCredentialScopes(serviceClientOptions, serviceClient.baseUri); if (!credentialScopes) { - throw new Error("When using credential, the ServiceClient must contain a baseUri or a credentialScopes in ServiceClientOptions. Unable to create a bearerTokenAuthenticationPolicy"); + throw new Error(`When using credential, the ServiceClient must contain a baseUri or a credentialScopes in ServiceClientOptions. Unable to create a bearerTokenAuthenticationPolicy`); } if (bearerTokenPolicyFactory === undefined || bearerTokenPolicyFactory === null) { bearerTokenPolicyFactory = bearerTokenAuthenticationPolicy(credentials, credentialScopes); @@ -24057,7 +23455,7 @@ var ServiceClient = /** @class */ (function () { if (options.requestPolicyFactories) { // options.requestPolicyFactories can also be a function that manipulates // the default requestPolicyFactories array - var newRequestPolicyFactories = options.requestPolicyFactories(requestPolicyFactories); + const newRequestPolicyFactories = options.requestPolicyFactories(requestPolicyFactories); if (newRequestPolicyFactories) { requestPolicyFactories = newRequestPolicyFactories; } @@ -24068,11 +23466,11 @@ var ServiceClient = /** @class */ (function () { /** * Send the provided httpRequest. */ - ServiceClient.prototype.sendRequest = function (options) { + sendRequest(options) { if (options === null || options === undefined || typeof options !== "object") { throw new Error("options cannot be null or undefined and it must be of type object."); } - var httpRequest; + let httpRequest; try { if (isWebResourceLike(options)) { options.validateRequestProperties(); @@ -24086,242 +23484,221 @@ var ServiceClient = /** @class */ (function () { catch (error) { return Promise.reject(error); } - var httpPipeline = this._httpClient; + let httpPipeline = this._httpClient; if (this._requestPolicyFactories && this._requestPolicyFactories.length > 0) { - for (var i = this._requestPolicyFactories.length - 1; i >= 0; --i) { + for (let i = this._requestPolicyFactories.length - 1; i >= 0; --i) { httpPipeline = this._requestPolicyFactories[i].create(httpPipeline, this._requestPolicyOptions); } } return httpPipeline.sendRequest(httpRequest); - }; + } /** * Send an HTTP request that is populated using the provided OperationSpec. * @param operationArguments - The arguments that the HTTP request's templated values will be populated from. * @param operationSpec - The OperationSpec to use to populate the httpRequest. * @param callback - The callback to call when the response is received. */ - ServiceClient.prototype.sendOperationRequest = function (operationArguments, operationSpec, callback) { + async sendOperationRequest(operationArguments, operationSpec, callback) { var _a; - return tslib.__awaiter(this, void 0, void 0, function () { - var serializerOptions, httpRequest, result, baseUri, requestUrl, _i, _b, urlParameter, urlParameterValue, _c, _d, queryParameter, queryParameterValue, index, item, index, contentType, _e, _f, headerParameter, headerValue, headerCollectionPrefix, _g, _h, key, options, customHeaderName, rawResponse, sendRequestError, error_1, error_2, cb; - return tslib.__generator(this, function (_j) { - switch (_j.label) { - case 0: - if (typeof operationArguments.options === "function") { - callback = operationArguments.options; - operationArguments.options = undefined; - } - serializerOptions = (_a = operationArguments.options) === null || _a === void 0 ? void 0 : _a.serializerOptions; - httpRequest = new WebResource(); - _j.label = 1; - case 1: - _j.trys.push([1, 6, , 7]); - baseUri = operationSpec.baseUrl || this.baseUri; - if (!baseUri) { - throw new Error("If operationSpec.baseUrl is not specified, then the ServiceClient must have a baseUri string property that contains the base URL to use."); - } - httpRequest.method = operationSpec.httpMethod; - httpRequest.operationSpec = operationSpec; - requestUrl = URLBuilder.parse(baseUri); - if (operationSpec.path) { - requestUrl.appendPath(operationSpec.path); - } - if (operationSpec.urlParameters && operationSpec.urlParameters.length > 0) { - for (_i = 0, _b = operationSpec.urlParameters; _i < _b.length; _i++) { - urlParameter = _b[_i]; - urlParameterValue = getOperationArgumentValueFromParameter(this, operationArguments, urlParameter, operationSpec.serializer); - urlParameterValue = operationSpec.serializer.serialize(urlParameter.mapper, urlParameterValue, getPathStringFromParameter(urlParameter), serializerOptions); - if (!urlParameter.skipEncoding) { - urlParameterValue = encodeURIComponent(urlParameterValue); + if (typeof operationArguments.options === "function") { + callback = operationArguments.options; + operationArguments.options = undefined; + } + const serializerOptions = (_a = operationArguments.options) === null || _a === void 0 ? void 0 : _a.serializerOptions; + const httpRequest = new WebResource(); + let result; + try { + const baseUri = operationSpec.baseUrl || this.baseUri; + if (!baseUri) { + throw new Error("If operationSpec.baseUrl is not specified, then the ServiceClient must have a baseUri string property that contains the base URL to use."); + } + httpRequest.method = operationSpec.httpMethod; + httpRequest.operationSpec = operationSpec; + const requestUrl = URLBuilder.parse(baseUri); + if (operationSpec.path) { + requestUrl.appendPath(operationSpec.path); + } + if (operationSpec.urlParameters && operationSpec.urlParameters.length > 0) { + for (const urlParameter of operationSpec.urlParameters) { + let urlParameterValue = getOperationArgumentValueFromParameter(this, operationArguments, urlParameter, operationSpec.serializer); + urlParameterValue = operationSpec.serializer.serialize(urlParameter.mapper, urlParameterValue, getPathStringFromParameter(urlParameter), serializerOptions); + if (!urlParameter.skipEncoding) { + urlParameterValue = encodeURIComponent(urlParameterValue); + } + requestUrl.replaceAll(`{${urlParameter.mapper.serializedName || getPathStringFromParameter(urlParameter)}}`, urlParameterValue); + } + } + if (operationSpec.queryParameters && operationSpec.queryParameters.length > 0) { + for (const queryParameter of operationSpec.queryParameters) { + let queryParameterValue = getOperationArgumentValueFromParameter(this, operationArguments, queryParameter, operationSpec.serializer); + if (queryParameterValue !== undefined && queryParameterValue !== null) { + queryParameterValue = operationSpec.serializer.serialize(queryParameter.mapper, queryParameterValue, getPathStringFromParameter(queryParameter), serializerOptions); + if (queryParameter.collectionFormat !== undefined && + queryParameter.collectionFormat !== null) { + if (queryParameter.collectionFormat === exports.QueryCollectionFormat.Multi) { + if (queryParameterValue.length === 0) { + // The collection is empty, no need to try serializing the current queryParam + continue; } - requestUrl.replaceAll("{" + (urlParameter.mapper.serializedName || getPathStringFromParameter(urlParameter)) + "}", urlParameterValue); - } - } - if (operationSpec.queryParameters && operationSpec.queryParameters.length > 0) { - for (_c = 0, _d = operationSpec.queryParameters; _c < _d.length; _c++) { - queryParameter = _d[_c]; - queryParameterValue = getOperationArgumentValueFromParameter(this, operationArguments, queryParameter, operationSpec.serializer); - if (queryParameterValue !== undefined && queryParameterValue !== null) { - queryParameterValue = operationSpec.serializer.serialize(queryParameter.mapper, queryParameterValue, getPathStringFromParameter(queryParameter), serializerOptions); - if (queryParameter.collectionFormat !== undefined && - queryParameter.collectionFormat !== null) { - if (queryParameter.collectionFormat === exports.QueryCollectionFormat.Multi) { - if (queryParameterValue.length === 0) { - // The collection is empty, no need to try serializing the current queryParam - continue; - } - else { - for (index in queryParameterValue) { - item = queryParameterValue[index]; - queryParameterValue[index] = - item === undefined || item === null ? "" : item.toString(); - } - } - } - else if (queryParameter.collectionFormat === exports.QueryCollectionFormat.Ssv || - queryParameter.collectionFormat === exports.QueryCollectionFormat.Tsv) { - queryParameterValue = queryParameterValue.join(queryParameter.collectionFormat); - } - } - if (!queryParameter.skipEncoding) { - if (Array.isArray(queryParameterValue)) { - for (index in queryParameterValue) { - if (queryParameterValue[index] !== undefined && - queryParameterValue[index] !== null) { - queryParameterValue[index] = encodeURIComponent(queryParameterValue[index]); - } - } - } - else { - queryParameterValue = encodeURIComponent(queryParameterValue); - } - } - if (queryParameter.collectionFormat !== undefined && - queryParameter.collectionFormat !== null && - queryParameter.collectionFormat !== exports.QueryCollectionFormat.Multi && - queryParameter.collectionFormat !== exports.QueryCollectionFormat.Ssv && - queryParameter.collectionFormat !== exports.QueryCollectionFormat.Tsv) { - queryParameterValue = queryParameterValue.join(queryParameter.collectionFormat); - } - requestUrl.setQueryParameter(queryParameter.mapper.serializedName || getPathStringFromParameter(queryParameter), queryParameterValue); - } - } - } - httpRequest.url = requestUrl.toString(); - contentType = operationSpec.contentType || this.requestContentType; - if (contentType && operationSpec.requestBody) { - httpRequest.headers.set("Content-Type", contentType); - } - if (operationSpec.headerParameters) { - for (_e = 0, _f = operationSpec.headerParameters; _e < _f.length; _e++) { - headerParameter = _f[_e]; - headerValue = getOperationArgumentValueFromParameter(this, operationArguments, headerParameter, operationSpec.serializer); - if (headerValue !== undefined && headerValue !== null) { - headerValue = operationSpec.serializer.serialize(headerParameter.mapper, headerValue, getPathStringFromParameter(headerParameter), serializerOptions); - headerCollectionPrefix = headerParameter.mapper - .headerCollectionPrefix; - if (headerCollectionPrefix) { - for (_g = 0, _h = Object.keys(headerValue); _g < _h.length; _g++) { - key = _h[_g]; - httpRequest.headers.set(headerCollectionPrefix + key, headerValue[key]); - } - } - else { - httpRequest.headers.set(headerParameter.mapper.serializedName || - getPathStringFromParameter(headerParameter), headerValue); + else { + for (const index in queryParameterValue) { + const item = queryParameterValue[index]; + queryParameterValue[index] = + item === undefined || item === null ? "" : item.toString(); } } } + else if (queryParameter.collectionFormat === exports.QueryCollectionFormat.Ssv || + queryParameter.collectionFormat === exports.QueryCollectionFormat.Tsv) { + queryParameterValue = queryParameterValue.join(queryParameter.collectionFormat); + } } - options = operationArguments.options; - if (options) { - if (options.customHeaders) { - for (customHeaderName in options.customHeaders) { - httpRequest.headers.set(customHeaderName, options.customHeaders[customHeaderName]); + if (!queryParameter.skipEncoding) { + if (Array.isArray(queryParameterValue)) { + for (const index in queryParameterValue) { + if (queryParameterValue[index] !== undefined && + queryParameterValue[index] !== null) { + queryParameterValue[index] = encodeURIComponent(queryParameterValue[index]); + } } } - if (options.abortSignal) { - httpRequest.abortSignal = options.abortSignal; - } - if (options.timeout) { - httpRequest.timeout = options.timeout; - } - if (options.onUploadProgress) { - httpRequest.onUploadProgress = options.onUploadProgress; - } - if (options.onDownloadProgress) { - httpRequest.onDownloadProgress = options.onDownloadProgress; - } - if (options.spanOptions) { - httpRequest.spanOptions = options.spanOptions; - } - if (options.tracingContext) { - httpRequest.tracingContext = options.tracingContext; - } - if (options.shouldDeserialize !== undefined && options.shouldDeserialize !== null) { - httpRequest.shouldDeserialize = options.shouldDeserialize; + else { + queryParameterValue = encodeURIComponent(queryParameterValue); } } - httpRequest.withCredentials = this._withCredentials; - serializeRequestBody(this, httpRequest, operationArguments, operationSpec); - if (httpRequest.streamResponseStatusCodes === undefined) { - httpRequest.streamResponseStatusCodes = getStreamResponseStatusCodes(operationSpec); + if (queryParameter.collectionFormat !== undefined && + queryParameter.collectionFormat !== null && + queryParameter.collectionFormat !== exports.QueryCollectionFormat.Multi && + queryParameter.collectionFormat !== exports.QueryCollectionFormat.Ssv && + queryParameter.collectionFormat !== exports.QueryCollectionFormat.Tsv) { + queryParameterValue = queryParameterValue.join(queryParameter.collectionFormat); } - rawResponse = void 0; - sendRequestError = void 0; - _j.label = 2; - case 2: - _j.trys.push([2, 4, , 5]); - return [4 /*yield*/, this.sendRequest(httpRequest)]; - case 3: - rawResponse = _j.sent(); - return [3 /*break*/, 5]; - case 4: - error_1 = _j.sent(); - sendRequestError = error_1; - return [3 /*break*/, 5]; - case 5: - if (sendRequestError) { - if (sendRequestError.response) { - sendRequestError.details = flattenResponse(sendRequestError.response, operationSpec.responses[sendRequestError.statusCode] || - operationSpec.responses["default"]); + requestUrl.setQueryParameter(queryParameter.mapper.serializedName || getPathStringFromParameter(queryParameter), queryParameterValue); + } + } + } + httpRequest.url = requestUrl.toString(); + const contentType = operationSpec.contentType || this.requestContentType; + if (contentType && operationSpec.requestBody) { + httpRequest.headers.set("Content-Type", contentType); + } + if (operationSpec.headerParameters) { + for (const headerParameter of operationSpec.headerParameters) { + let headerValue = getOperationArgumentValueFromParameter(this, operationArguments, headerParameter, operationSpec.serializer); + if (headerValue !== undefined && headerValue !== null) { + headerValue = operationSpec.serializer.serialize(headerParameter.mapper, headerValue, getPathStringFromParameter(headerParameter), serializerOptions); + const headerCollectionPrefix = headerParameter.mapper + .headerCollectionPrefix; + if (headerCollectionPrefix) { + for (const key of Object.keys(headerValue)) { + httpRequest.headers.set(headerCollectionPrefix + key, headerValue[key]); } - result = Promise.reject(sendRequestError); } else { - result = Promise.resolve(flattenResponse(rawResponse, operationSpec.responses[rawResponse.status])); + httpRequest.headers.set(headerParameter.mapper.serializedName || + getPathStringFromParameter(headerParameter), headerValue); } - return [3 /*break*/, 7]; - case 6: - error_2 = _j.sent(); - result = Promise.reject(error_2); - return [3 /*break*/, 7]; - case 7: - cb = callback; - if (cb) { - result - .then(function (res) { return cb(null, res._response.parsedBody, res._response.request, res._response); }) - .catch(function (err) { return cb(err); }); - } - return [2 /*return*/, result]; + } } - }); - }); - }; - return ServiceClient; -}()); + } + const options = operationArguments.options; + if (options) { + if (options.customHeaders) { + for (const customHeaderName in options.customHeaders) { + httpRequest.headers.set(customHeaderName, options.customHeaders[customHeaderName]); + } + } + if (options.abortSignal) { + httpRequest.abortSignal = options.abortSignal; + } + if (options.timeout) { + httpRequest.timeout = options.timeout; + } + if (options.onUploadProgress) { + httpRequest.onUploadProgress = options.onUploadProgress; + } + if (options.onDownloadProgress) { + httpRequest.onDownloadProgress = options.onDownloadProgress; + } + if (options.spanOptions) { + // By passing spanOptions if they exist at runtime, we're backwards compatible with @azure/core-tracing@preview.13 and earlier. + httpRequest.spanOptions = options.spanOptions; + } + if (options.tracingContext) { + httpRequest.tracingContext = options.tracingContext; + } + if (options.shouldDeserialize !== undefined && options.shouldDeserialize !== null) { + httpRequest.shouldDeserialize = options.shouldDeserialize; + } + } + httpRequest.withCredentials = this._withCredentials; + serializeRequestBody(this, httpRequest, operationArguments, operationSpec); + if (httpRequest.streamResponseStatusCodes === undefined) { + httpRequest.streamResponseStatusCodes = getStreamResponseStatusCodes(operationSpec); + } + let rawResponse; + let sendRequestError; + try { + rawResponse = await this.sendRequest(httpRequest); + } + catch (error) { + sendRequestError = error; + } + if (sendRequestError) { + if (sendRequestError.response) { + sendRequestError.details = flattenResponse(sendRequestError.response, operationSpec.responses[sendRequestError.statusCode] || + operationSpec.responses["default"]); + } + result = Promise.reject(sendRequestError); + } + else { + result = Promise.resolve(flattenResponse(rawResponse, operationSpec.responses[rawResponse.status])); + } + } + catch (error) { + result = Promise.reject(error); + } + const cb = callback; + if (cb) { + result + .then((res) => cb(null, res._response.parsedBody, res._response.request, res._response)) + .catch((err) => cb(err)); + } + return result; + } +} function serializeRequestBody(serviceClient, httpRequest, operationArguments, operationSpec) { var _a, _b, _c, _d, _e, _f; - var serializerOptions = (_b = (_a = operationArguments.options) === null || _a === void 0 ? void 0 : _a.serializerOptions) !== null && _b !== void 0 ? _b : {}; - var updatedOptions = { + const serializerOptions = (_b = (_a = operationArguments.options) === null || _a === void 0 ? void 0 : _a.serializerOptions) !== null && _b !== void 0 ? _b : {}; + const updatedOptions = { rootName: (_c = serializerOptions.rootName) !== null && _c !== void 0 ? _c : "", includeRoot: (_d = serializerOptions.includeRoot) !== null && _d !== void 0 ? _d : false, xmlCharKey: (_e = serializerOptions.xmlCharKey) !== null && _e !== void 0 ? _e : XML_CHARKEY }; - var xmlCharKey = serializerOptions.xmlCharKey; + const xmlCharKey = serializerOptions.xmlCharKey; if (operationSpec.requestBody && operationSpec.requestBody.mapper) { httpRequest.body = getOperationArgumentValueFromParameter(serviceClient, operationArguments, operationSpec.requestBody, operationSpec.serializer); - var bodyMapper = operationSpec.requestBody.mapper; - var required = bodyMapper.required, xmlName = bodyMapper.xmlName, xmlElementName = bodyMapper.xmlElementName, serializedName = bodyMapper.serializedName, xmlNamespace = bodyMapper.xmlNamespace, xmlNamespacePrefix = bodyMapper.xmlNamespacePrefix; - var typeName = bodyMapper.type.name; + const bodyMapper = operationSpec.requestBody.mapper; + const { required, xmlName, xmlElementName, serializedName, xmlNamespace, xmlNamespacePrefix } = bodyMapper; + const typeName = bodyMapper.type.name; try { if ((httpRequest.body !== undefined && httpRequest.body !== null) || required) { - var requestBodyParameterPathString = getPathStringFromParameter(operationSpec.requestBody); + const requestBodyParameterPathString = getPathStringFromParameter(operationSpec.requestBody); httpRequest.body = operationSpec.serializer.serialize(bodyMapper, httpRequest.body, requestBodyParameterPathString, updatedOptions); - var isStream = typeName === MapperType.Stream; + const isStream = typeName === MapperType.Stream; if (operationSpec.isXML) { - var xmlnsKey = xmlNamespacePrefix ? "xmlns:" + xmlNamespacePrefix : "xmlns"; - var value = getXmlValueWithNamespace(xmlNamespace, xmlnsKey, typeName, httpRequest.body, updatedOptions); + const xmlnsKey = xmlNamespacePrefix ? `xmlns:${xmlNamespacePrefix}` : "xmlns"; + const value = getXmlValueWithNamespace(xmlNamespace, xmlnsKey, typeName, httpRequest.body, updatedOptions); if (typeName === MapperType.Sequence) { httpRequest.body = stringifyXML(prepareXMLRootList(value, xmlElementName || xmlName || serializedName, xmlnsKey, xmlNamespace), { rootName: xmlName || serializedName, - xmlCharKey: xmlCharKey + xmlCharKey }); } else if (!isStream) { httpRequest.body = stringifyXML(value, { rootName: xmlName || serializedName, - xmlCharKey: xmlCharKey + xmlCharKey }); } } @@ -24337,16 +23714,15 @@ function serializeRequestBody(serviceClient, httpRequest, operationArguments, op } } catch (error) { - throw new Error("Error \"" + error.message + "\" occurred in serializing the payload - " + JSON.stringify(serializedName, undefined, " ") + "."); + throw new Error(`Error "${error.message}" occurred in serializing the payload - ${JSON.stringify(serializedName, undefined, " ")}.`); } } else if (operationSpec.formDataParameters && operationSpec.formDataParameters.length > 0) { httpRequest.formData = {}; - for (var _i = 0, _g = operationSpec.formDataParameters; _i < _g.length; _i++) { - var formDataParameter = _g[_i]; - var formDataParameterValue = getOperationArgumentValueFromParameter(serviceClient, operationArguments, formDataParameter, operationSpec.serializer); + for (const formDataParameter of operationSpec.formDataParameters) { + const formDataParameterValue = getOperationArgumentValueFromParameter(serviceClient, operationArguments, formDataParameter, operationSpec.serializer); if (formDataParameterValue !== undefined && formDataParameterValue !== null) { - var formDataParameterPropertyName = formDataParameter.mapper.serializedName || getPathStringFromParameter(formDataParameter); + const formDataParameterPropertyName = formDataParameter.mapper.serializedName || getPathStringFromParameter(formDataParameter); httpRequest.formData[formDataParameterPropertyName] = operationSpec.serializer.serialize(formDataParameter.mapper, formDataParameterValue, getPathStringFromParameter(formDataParameter), updatedOptions); } } @@ -24356,19 +23732,18 @@ function serializeRequestBody(serviceClient, httpRequest, operationArguments, op * Adds an xml namespace to the xml serialized object if needed, otherwise it just returns the value itself */ function getXmlValueWithNamespace(xmlNamespace, xmlnsKey, typeName, serializedValue, options) { - var _a; // Composite and Sequence schemas already got their root namespace set during serialization // We just need to add xmlns to the other schema types if (xmlNamespace && !["Composite", "Sequence", "Dictionary"].includes(typeName)) { - var result = {}; + const result = {}; result[options.xmlCharKey] = serializedValue; - result[XML_ATTRKEY] = (_a = {}, _a[xmlnsKey] = xmlNamespace, _a); + result[XML_ATTRKEY] = { [xmlnsKey]: xmlNamespace }; return result; } return serializedValue; } function getValueOrFunctionResult(value, defaultValueCreator) { - var result; + let result; if (typeof value === "string") { result = value; } @@ -24381,15 +23756,15 @@ function getValueOrFunctionResult(value, defaultValueCreator) { return result; } function createDefaultRequestPolicyFactories(authPolicyFactory, options) { - var factories = []; + const factories = []; if (options.generateClientRequestIdHeader) { factories.push(generateClientRequestIdPolicy(options.clientRequestIdHeaderName)); } if (authPolicyFactory) { factories.push(authPolicyFactory); } - var userAgentHeaderName = getValueOrFunctionResult(options.userAgentHeaderName, getDefaultUserAgentHeaderName); - var userAgentHeaderValue = getValueOrFunctionResult(options.userAgent, getDefaultUserAgentValue); + const userAgentHeaderName = getValueOrFunctionResult(options.userAgentHeaderName, getDefaultUserAgentHeaderName); + const userAgentHeaderValue = getValueOrFunctionResult(options.userAgent, getDefaultUserAgentValue); if (userAgentHeaderName && userAgentHeaderValue) { factories.push(userAgentPolicy({ key: userAgentHeaderName, value: userAgentHeaderValue })); } @@ -24401,37 +23776,37 @@ function createDefaultRequestPolicyFactories(authPolicyFactory, options) { factories.push(throttlingRetryPolicy()); } factories.push(deserializationPolicy(options.deserializationContentTypes)); - { + if (isNode) { factories.push(proxyPolicy(options.proxySettings)); } factories.push(logPolicy({ logger: logger.info })); return factories; } function createPipelineFromOptions(pipelineOptions, authPolicyFactory) { - var requestPolicyFactories = []; + const requestPolicyFactories = []; if (pipelineOptions.sendStreamingJson) { requestPolicyFactories.push(ndJsonPolicy()); } - var userAgentValue = undefined; + let userAgentValue = undefined; if (pipelineOptions.userAgentOptions && pipelineOptions.userAgentOptions.userAgentPrefix) { - var userAgentInfo = []; + const userAgentInfo = []; userAgentInfo.push(pipelineOptions.userAgentOptions.userAgentPrefix); // Add the default user agent value if it isn't already specified // by the userAgentPrefix option. - var defaultUserAgentInfo = getDefaultUserAgentValue(); + const defaultUserAgentInfo = getDefaultUserAgentValue(); if (userAgentInfo.indexOf(defaultUserAgentInfo) === -1) { userAgentInfo.push(defaultUserAgentInfo); } userAgentValue = userAgentInfo.join(" "); } - var keepAliveOptions = tslib.__assign(tslib.__assign({}, DefaultKeepAliveOptions), pipelineOptions.keepAliveOptions); - var retryOptions = tslib.__assign(tslib.__assign({}, DefaultRetryOptions), pipelineOptions.retryOptions); - var redirectOptions = tslib.__assign(tslib.__assign({}, DefaultRedirectOptions), pipelineOptions.redirectOptions); - { + const keepAliveOptions = Object.assign(Object.assign({}, DefaultKeepAliveOptions), pipelineOptions.keepAliveOptions); + const retryOptions = Object.assign(Object.assign({}, DefaultRetryOptions), pipelineOptions.retryOptions); + const redirectOptions = Object.assign(Object.assign({}, DefaultRedirectOptions), pipelineOptions.redirectOptions); + if (isNode) { requestPolicyFactories.push(proxyPolicy(pipelineOptions.proxyOptions)); } - var deserializationOptions = tslib.__assign(tslib.__assign({}, DefaultDeserializationOptions), pipelineOptions.deserializationOptions); - var loggingOptions = tslib.__assign({}, pipelineOptions.loggingOptions); + const deserializationOptions = Object.assign(Object.assign({}, DefaultDeserializationOptions), pipelineOptions.deserializationOptions); + const loggingOptions = Object.assign({}, pipelineOptions.loggingOptions); requestPolicyFactories.push(tracingPolicy({ userAgent: userAgentValue }), keepAlivePolicy(keepAliveOptions), userAgentPolicy({ value: userAgentValue }), generateClientRequestIdPolicy(), deserializationPolicy(deserializationOptions.expectedContentTypes), throttlingRetryPolicy(), systemErrorRetryPolicy(), exponentialRetryPolicy(retryOptions.maxRetries, retryOptions.retryDelayInMs, retryOptions.maxRetryDelayInMs)); if (redirectOptions.handleRedirects) { requestPolicyFactories.push(redirectPolicy(redirectOptions.maxRetries)); @@ -24445,7 +23820,7 @@ function createPipelineFromOptions(pipelineOptions, authPolicyFactory) { } return { httpClient: pipelineOptions.httpClient, - requestPolicyFactories: requestPolicyFactories + requestPolicyFactories }; } function getOperationArgumentValueFromParameter(serviceClient, operationArguments, parameter, serializer) { @@ -24453,22 +23828,22 @@ function getOperationArgumentValueFromParameter(serviceClient, operationArgument } function getOperationArgumentValueFromParameterPath(serviceClient, operationArguments, parameterPath, parameterMapper, serializer) { var _a; - var value; + let value; if (typeof parameterPath === "string") { parameterPath = [parameterPath]; } - var serializerOptions = (_a = operationArguments.options) === null || _a === void 0 ? void 0 : _a.serializerOptions; + const serializerOptions = (_a = operationArguments.options) === null || _a === void 0 ? void 0 : _a.serializerOptions; if (Array.isArray(parameterPath)) { if (parameterPath.length > 0) { if (parameterMapper.isConstant) { value = parameterMapper.defaultValue; } else { - var propertySearchResult = getPropertyFromParameterPath(operationArguments, parameterPath); + let propertySearchResult = getPropertyFromParameterPath(operationArguments, parameterPath); if (!propertySearchResult.propertyFound) { propertySearchResult = getPropertyFromParameterPath(serviceClient, parameterPath); } - var useDefaultValue = false; + let useDefaultValue = false; if (!propertySearchResult.propertyFound) { useDefaultValue = parameterMapper.required || @@ -24477,7 +23852,7 @@ function getOperationArgumentValueFromParameterPath(serviceClient, operationArgu value = useDefaultValue ? parameterMapper.defaultValue : propertySearchResult.propertyValue; } // Serialize just for validation purposes. - var parameterPathString = getPathStringFromParameterPath(parameterPath, parameterMapper); + const parameterPathString = getPathStringFromParameterPath(parameterPath, parameterMapper); serializer.serialize(parameterMapper, value, parameterPathString, serializerOptions); } } @@ -24485,12 +23860,12 @@ function getOperationArgumentValueFromParameterPath(serviceClient, operationArgu if (parameterMapper.required) { value = {}; } - for (var propertyName in parameterPath) { - var propertyMapper = parameterMapper.type.modelProperties[propertyName]; - var propertyPath = parameterPath[propertyName]; - var propertyValue = getOperationArgumentValueFromParameterPath(serviceClient, operationArguments, propertyPath, propertyMapper, serializer); + for (const propertyName in parameterPath) { + const propertyMapper = parameterMapper.type.modelProperties[propertyName]; + const propertyPath = parameterPath[propertyName]; + const propertyValue = getOperationArgumentValueFromParameterPath(serviceClient, operationArguments, propertyPath, propertyMapper, serializer); // Serialize just for validation purposes. - var propertyPathString = getPathStringFromParameterPath(propertyPath, propertyMapper); + const propertyPathString = getPathStringFromParameterPath(propertyPath, propertyMapper); serializer.serialize(propertyMapper, propertyValue, propertyPathString, serializerOptions); if (propertyValue !== undefined && propertyValue !== null) { if (!value) { @@ -24503,10 +23878,10 @@ function getOperationArgumentValueFromParameterPath(serviceClient, operationArgu return value; } function getPropertyFromParameterPath(parent, parameterPath) { - var result = { propertyFound: false }; - var i = 0; + const result = { propertyFound: false }; + let i = 0; for (; i < parameterPath.length; ++i) { - var parameterPathPart = parameterPath[i]; + const parameterPathPart = parameterPath[i]; // Make sure to check inherited properties too, so don't use hasOwnProperty(). if (parent !== undefined && parent !== null && parameterPathPart in parent) { parent = parent[parameterPathPart]; @@ -24522,31 +23897,29 @@ function getPropertyFromParameterPath(parent, parameterPath) { return result; } function flattenResponse(_response, responseSpec) { - var parsedHeaders = _response.parsedHeaders; - var bodyMapper = responseSpec && responseSpec.bodyMapper; - var addOperationResponse = function (obj) { + const parsedHeaders = _response.parsedHeaders; + const bodyMapper = responseSpec && responseSpec.bodyMapper; + const addOperationResponse = (obj) => { return Object.defineProperty(obj, "_response", { value: _response }); }; if (bodyMapper) { - var typeName = bodyMapper.type.name; + const typeName = bodyMapper.type.name; if (typeName === "Stream") { - return addOperationResponse(tslib.__assign(tslib.__assign({}, parsedHeaders), { blobBody: _response.blobBody, readableStreamBody: _response.readableStreamBody })); + return addOperationResponse(Object.assign(Object.assign({}, parsedHeaders), { blobBody: _response.blobBody, readableStreamBody: _response.readableStreamBody })); } - var modelProperties_1 = (typeName === "Composite" && bodyMapper.type.modelProperties) || {}; - var isPageableResponse = Object.keys(modelProperties_1).some(function (k) { return modelProperties_1[k].serializedName === ""; }); + const modelProperties = (typeName === "Composite" && bodyMapper.type.modelProperties) || {}; + const isPageableResponse = Object.keys(modelProperties).some((k) => modelProperties[k].serializedName === ""); if (typeName === "Sequence" || isPageableResponse) { - var arrayResponse = tslib.__spreadArray([], (_response.parsedBody || [])); - for (var _i = 0, _a = Object.keys(modelProperties_1); _i < _a.length; _i++) { - var key = _a[_i]; - if (modelProperties_1[key].serializedName) { + const arrayResponse = [...(_response.parsedBody || [])]; + for (const key of Object.keys(modelProperties)) { + if (modelProperties[key].serializedName) { arrayResponse[key] = _response.parsedBody[key]; } } if (parsedHeaders) { - for (var _b = 0, _c = Object.keys(parsedHeaders); _b < _c.length; _b++) { - var key = _c[_b]; + for (const key of Object.keys(parsedHeaders)) { arrayResponse[key] = parsedHeaders[key]; } } @@ -24554,26 +23927,26 @@ function flattenResponse(_response, responseSpec) { return arrayResponse; } if (typeName === "Composite" || typeName === "Dictionary") { - return addOperationResponse(tslib.__assign(tslib.__assign({}, parsedHeaders), _response.parsedBody)); + return addOperationResponse(Object.assign(Object.assign({}, parsedHeaders), _response.parsedBody)); } } if (bodyMapper || _response.request.method === "HEAD" || isPrimitiveType(_response.parsedBody)) { // primitive body types and HEAD booleans - return addOperationResponse(tslib.__assign(tslib.__assign({}, parsedHeaders), { body: _response.parsedBody })); + return addOperationResponse(Object.assign(Object.assign({}, parsedHeaders), { body: _response.parsedBody })); } - return addOperationResponse(tslib.__assign(tslib.__assign({}, parsedHeaders), _response.parsedBody)); + return addOperationResponse(Object.assign(Object.assign({}, parsedHeaders), _response.parsedBody)); } function getCredentialScopes(options, baseUri) { if (options === null || options === void 0 ? void 0 : options.credentialScopes) { - var scopes = options.credentialScopes; + const scopes = options.credentialScopes; return Array.isArray(scopes) - ? scopes.map(function (scope) { return new url.URL(scope).toString(); }) + ? scopes.map((scope) => new url.URL(scope).toString()) : new url.URL(scopes).toString(); } if (baseUri) { - return baseUri + "/.default"; + return `${baseUri}/.default`; } return undefined; } @@ -24597,7 +23970,7 @@ function createSpanFunction(args) { /** * Defines the default token refresh buffer duration. */ -var TokenRefreshBufferMs = 2 * 60 * 1000; // 2 Minutes +const TokenRefreshBufferMs = 2 * 60 * 1000; // 2 Minutes /** * Provides an {@link AccessTokenCache} implementation which clears * the cached {@link AccessToken}'s after the expiresOnTimestamp has @@ -24605,38 +23978,36 @@ var TokenRefreshBufferMs = 2 * 60 * 1000; // 2 Minutes * * @deprecated No longer used in the bearer authorization policy. */ -var ExpiringAccessTokenCache = /** @class */ (function () { +class ExpiringAccessTokenCache { /** * Constructs an instance of {@link ExpiringAccessTokenCache} with * an optional expiration buffer time. */ - function ExpiringAccessTokenCache(tokenRefreshBufferMs) { - if (tokenRefreshBufferMs === void 0) { tokenRefreshBufferMs = TokenRefreshBufferMs; } + constructor(tokenRefreshBufferMs = TokenRefreshBufferMs) { this.cachedToken = undefined; this.tokenRefreshBufferMs = tokenRefreshBufferMs; } - ExpiringAccessTokenCache.prototype.setCachedToken = function (accessToken) { + setCachedToken(accessToken) { this.cachedToken = accessToken; - }; - ExpiringAccessTokenCache.prototype.getCachedToken = function () { + } + getCachedToken() { if (this.cachedToken && Date.now() + this.tokenRefreshBufferMs >= this.cachedToken.expiresOnTimestamp) { this.cachedToken = undefined; } return this.cachedToken; - }; - return ExpiringAccessTokenCache; -}()); + } +} // Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. /** * Helps the core-http token authentication policies with requesting a new token if we're not currently waiting for a new token. * * @deprecated No longer used in the bearer authorization policy. */ -var AccessTokenRefresher = /** @class */ (function () { - function AccessTokenRefresher(credential, scopes, requiredMillisecondsBeforeNewRefresh) { - if (requiredMillisecondsBeforeNewRefresh === void 0) { requiredMillisecondsBeforeNewRefresh = 30000; } +class AccessTokenRefresher { + constructor(credential, scopes, requiredMillisecondsBeforeNewRefresh = 30000) { this.credential = credential; this.scopes = scopes; this.requiredMillisecondsBeforeNewRefresh = requiredMillisecondsBeforeNewRefresh; @@ -24646,49 +24017,38 @@ var AccessTokenRefresher = /** @class */ (function () { * Returns true if the required milliseconds(defaulted to 30000) have been passed signifying * that we are ready for a new refresh. */ - AccessTokenRefresher.prototype.isReady = function () { + isReady() { // We're only ready for a new refresh if the required milliseconds have passed. return (!this.lastCalled || Date.now() - this.lastCalled > this.requiredMillisecondsBeforeNewRefresh); - }; + } /** * Stores the time in which it is called, * then requests a new token, * then sets this.promise to undefined, * then returns the token. */ - AccessTokenRefresher.prototype.getToken = function (options) { - return tslib.__awaiter(this, void 0, void 0, function () { - var token; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - this.lastCalled = Date.now(); - return [4 /*yield*/, this.credential.getToken(this.scopes, options)]; - case 1: - token = _a.sent(); - this.promise = undefined; - return [2 /*return*/, token || undefined]; - } - }); - }); - }; + async getToken(options) { + this.lastCalled = Date.now(); + const token = await this.credential.getToken(this.scopes, options); + this.promise = undefined; + return token || undefined; + } /** * Requests a new token if we're not currently waiting for a new token. * Returns null if the required time between each call hasn't been reached. */ - AccessTokenRefresher.prototype.refresh = function (options) { + refresh(options) { if (!this.promise) { this.promise = this.getToken(options); } return this.promise; - }; - return AccessTokenRefresher; -}()); + } +} // Copyright (c) Microsoft Corporation. -var HeaderConstants = Constants.HeaderConstants; -var DEFAULT_AUTHORIZATION_SCHEME = "Basic"; -var BasicAuthenticationCredentials = /** @class */ (function () { +const HeaderConstants = Constants.HeaderConstants; +const DEFAULT_AUTHORIZATION_SCHEME = "Basic"; +class BasicAuthenticationCredentials { /** * Creates a new BasicAuthenticationCredentials object. * @@ -24696,8 +24056,7 @@ var BasicAuthenticationCredentials = /** @class */ (function () { * @param password - Password. * @param authorizationScheme - The authorization scheme. */ - function BasicAuthenticationCredentials(userName, password, authorizationScheme) { - if (authorizationScheme === void 0) { authorizationScheme = DEFAULT_AUTHORIZATION_SCHEME; } + constructor(userName, password, authorizationScheme = DEFAULT_AUTHORIZATION_SCHEME) { this.authorizationScheme = DEFAULT_AUTHORIZATION_SCHEME; if (userName === null || userName === undefined || typeof userName.valueOf() !== "string") { throw new Error("userName cannot be null or undefined and must be of type string."); @@ -24715,28 +24074,27 @@ var BasicAuthenticationCredentials = /** @class */ (function () { * @param webResource - The WebResourceLike to be signed. * @returns The signed request object. */ - BasicAuthenticationCredentials.prototype.signRequest = function (webResource) { - var credentials = this.userName + ":" + this.password; - var encodedCredentials = this.authorizationScheme + " " + encodeString(credentials); + signRequest(webResource) { + const credentials = `${this.userName}:${this.password}`; + const encodedCredentials = `${this.authorizationScheme} ${encodeString(credentials)}`; if (!webResource.headers) webResource.headers = new HttpHeaders(); webResource.headers.set(HeaderConstants.AUTHORIZATION, encodedCredentials); return Promise.resolve(webResource); - }; - return BasicAuthenticationCredentials; -}()); + } +} // Copyright (c) Microsoft Corporation. /** * Authenticates to a service using an API key. */ -var ApiKeyCredentials = /** @class */ (function () { +class ApiKeyCredentials { /** * @param options - Specifies the options to be provided for auth. Either header or query needs to be provided. */ - function ApiKeyCredentials(options) { + constructor(options) { if (!options || (options && !options.inHeader && !options.inQuery)) { - throw new Error("options cannot be null or undefined. Either \"inHeader\" or \"inQuery\" property of the options object needs to be provided."); + throw new Error(`options cannot be null or undefined. Either "inHeader" or "inQuery" property of the options object needs to be provided.`); } this.inHeader = options.inHeader; this.inQuery = options.inQuery; @@ -24747,60 +24105,55 @@ var ApiKeyCredentials = /** @class */ (function () { * @param webResource - The WebResourceLike to be signed. * @returns The signed request object. */ - ApiKeyCredentials.prototype.signRequest = function (webResource) { + signRequest(webResource) { if (!webResource) { - return Promise.reject(new Error("webResource cannot be null or undefined and must be of type \"object\".")); + return Promise.reject(new Error(`webResource cannot be null or undefined and must be of type "object".`)); } if (this.inHeader) { if (!webResource.headers) { webResource.headers = new HttpHeaders(); } - for (var headerName in this.inHeader) { + for (const headerName in this.inHeader) { webResource.headers.set(headerName, this.inHeader[headerName]); } } if (this.inQuery) { if (!webResource.url) { - return Promise.reject(new Error("url cannot be null in the request object.")); + return Promise.reject(new Error(`url cannot be null in the request object.`)); } if (webResource.url.indexOf("?") < 0) { webResource.url += "?"; } - for (var key in this.inQuery) { + for (const key in this.inQuery) { if (!webResource.url.endsWith("?")) { webResource.url += "&"; } - webResource.url += key + "=" + this.inQuery[key]; + webResource.url += `${key}=${this.inQuery[key]}`; } } return Promise.resolve(webResource); - }; - return ApiKeyCredentials; -}()); + } +} // Copyright (c) Microsoft Corporation. -var TopicCredentials = /** @class */ (function (_super) { - tslib.__extends(TopicCredentials, _super); +class TopicCredentials extends ApiKeyCredentials { /** * Creates a new EventGrid TopicCredentials object. * * @param topicKey - The EventGrid topic key */ - function TopicCredentials(topicKey) { - var _this = this; + constructor(topicKey) { if (!topicKey || (topicKey && typeof topicKey !== "string")) { throw new Error("topicKey cannot be null or undefined and must be of type string."); } - var options = { + const options = { inHeader: { "aeg-sas-key": topicKey } }; - _this = _super.call(this, options) || this; - return _this; + super(options); } - return TopicCredentials; -}(ApiKeyCredentials)); +} Object.defineProperty(exports, 'isTokenCredential', { enumerable: true, @@ -24871,132 +24224,132 @@ exports.userAgentPolicy = userAgentPolicy; /***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.generate = exports.createAuthenticationSettings = exports.configureAuthentication = exports.SETTINGS_FILE = exports.M2_DIR = void 0; -const path = __importStar(__webpack_require__(622)); -const core = __importStar(__webpack_require__(470)); -const io = __importStar(__webpack_require__(1)); -const fs = __importStar(__webpack_require__(747)); -const os = __importStar(__webpack_require__(87)); -const xmlbuilder2_1 = __webpack_require__(255); -const constants = __importStar(__webpack_require__(211)); -const gpg = __importStar(__webpack_require__(884)); -const util_1 = __webpack_require__(322); -exports.M2_DIR = '.m2'; -exports.SETTINGS_FILE = 'settings.xml'; -function configureAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - const id = core.getInput(constants.INPUT_SERVER_ID); - const username = core.getInput(constants.INPUT_SERVER_USERNAME); - const password = core.getInput(constants.INPUT_SERVER_PASSWORD); - const settingsDirectory = core.getInput(constants.INPUT_SETTINGS_PATH) || path.join(os.homedir(), exports.M2_DIR); - const overwriteSettings = util_1.getBooleanInput(constants.INPUT_OVERWRITE_SETTINGS, true); - const gpgPrivateKey = core.getInput(constants.INPUT_GPG_PRIVATE_KEY) || constants.INPUT_DEFAULT_GPG_PRIVATE_KEY; - const gpgPassphrase = core.getInput(constants.INPUT_GPG_PASSPHRASE) || - (gpgPrivateKey ? constants.INPUT_DEFAULT_GPG_PASSPHRASE : undefined); - if (gpgPrivateKey) { - core.setSecret(gpgPrivateKey); - } - yield createAuthenticationSettings(id, username, password, settingsDirectory, overwriteSettings, gpgPassphrase); - if (gpgPrivateKey) { - core.info('Importing private gpg key'); - const keyFingerprint = (yield gpg.importKey(gpgPrivateKey)) || ''; - core.saveState(constants.STATE_GPG_PRIVATE_KEY_FINGERPRINT, keyFingerprint); - } - }); -} -exports.configureAuthentication = configureAuthentication; -function createAuthenticationSettings(id, username, password, settingsDirectory, overwriteSettings, gpgPassphrase = undefined) { - return __awaiter(this, void 0, void 0, function* () { - core.info(`Creating ${exports.SETTINGS_FILE} with server-id: ${id}`); - // when an alternate m2 location is specified use only that location (no .m2 directory) - // otherwise use the home/.m2/ path - yield io.mkdirP(settingsDirectory); - yield write(settingsDirectory, generate(id, username, password, gpgPassphrase), overwriteSettings); - }); -} -exports.createAuthenticationSettings = createAuthenticationSettings; -// only exported for testing purposes -function generate(id, username, password, gpgPassphrase) { - const xmlObj = { - settings: { - '@xmlns': 'http://maven.apache.org/SETTINGS/1.0.0', - '@xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance', - '@xsi:schemaLocation': 'http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd', - servers: { - server: [ - { - id: id, - username: `\${env.${username}}`, - password: `\${env.${password}}` - } - ] - } - } - }; - if (gpgPassphrase) { - const gpgServer = { - id: 'gpg.passphrase', - passphrase: `\${env.${gpgPassphrase}}` - }; - xmlObj.settings.servers.server.push(gpgServer); - } - return xmlbuilder2_1.create(xmlObj).end({ - headless: true, - prettyPrint: true, - width: 80 - }); -} -exports.generate = generate; -function write(directory, settings, overwriteSettings) { - return __awaiter(this, void 0, void 0, function* () { - const location = path.join(directory, exports.SETTINGS_FILE); - const settingsExists = fs.existsSync(location); - if (settingsExists && overwriteSettings) { - core.info(`Overwriting existing file ${location}`); - } - else if (!settingsExists) { - core.info(`Writing to ${location}`); - } - else { - core.info(`Skipping generation ${location} because file already exists and overwriting is not required`); - return; - } - return fs.writeFileSync(location, settings, { - encoding: 'utf-8', - flag: 'w' - }); - }); -} + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.generate = exports.createAuthenticationSettings = exports.configureAuthentication = exports.SETTINGS_FILE = exports.M2_DIR = void 0; +const path = __importStar(__webpack_require__(622)); +const core = __importStar(__webpack_require__(470)); +const io = __importStar(__webpack_require__(1)); +const fs = __importStar(__webpack_require__(747)); +const os = __importStar(__webpack_require__(87)); +const xmlbuilder2_1 = __webpack_require__(255); +const constants = __importStar(__webpack_require__(211)); +const gpg = __importStar(__webpack_require__(884)); +const util_1 = __webpack_require__(322); +exports.M2_DIR = '.m2'; +exports.SETTINGS_FILE = 'settings.xml'; +function configureAuthentication() { + return __awaiter(this, void 0, void 0, function* () { + const id = core.getInput(constants.INPUT_SERVER_ID); + const username = core.getInput(constants.INPUT_SERVER_USERNAME); + const password = core.getInput(constants.INPUT_SERVER_PASSWORD); + const settingsDirectory = core.getInput(constants.INPUT_SETTINGS_PATH) || path.join(os.homedir(), exports.M2_DIR); + const overwriteSettings = util_1.getBooleanInput(constants.INPUT_OVERWRITE_SETTINGS, true); + const gpgPrivateKey = core.getInput(constants.INPUT_GPG_PRIVATE_KEY) || constants.INPUT_DEFAULT_GPG_PRIVATE_KEY; + const gpgPassphrase = core.getInput(constants.INPUT_GPG_PASSPHRASE) || + (gpgPrivateKey ? constants.INPUT_DEFAULT_GPG_PASSPHRASE : undefined); + if (gpgPrivateKey) { + core.setSecret(gpgPrivateKey); + } + yield createAuthenticationSettings(id, username, password, settingsDirectory, overwriteSettings, gpgPassphrase); + if (gpgPrivateKey) { + core.info('Importing private gpg key'); + const keyFingerprint = (yield gpg.importKey(gpgPrivateKey)) || ''; + core.saveState(constants.STATE_GPG_PRIVATE_KEY_FINGERPRINT, keyFingerprint); + } + }); +} +exports.configureAuthentication = configureAuthentication; +function createAuthenticationSettings(id, username, password, settingsDirectory, overwriteSettings, gpgPassphrase = undefined) { + return __awaiter(this, void 0, void 0, function* () { + core.info(`Creating ${exports.SETTINGS_FILE} with server-id: ${id}`); + // when an alternate m2 location is specified use only that location (no .m2 directory) + // otherwise use the home/.m2/ path + yield io.mkdirP(settingsDirectory); + yield write(settingsDirectory, generate(id, username, password, gpgPassphrase), overwriteSettings); + }); +} +exports.createAuthenticationSettings = createAuthenticationSettings; +// only exported for testing purposes +function generate(id, username, password, gpgPassphrase) { + const xmlObj = { + settings: { + '@xmlns': 'http://maven.apache.org/SETTINGS/1.0.0', + '@xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance', + '@xsi:schemaLocation': 'http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd', + servers: { + server: [ + { + id: id, + username: `\${env.${username}}`, + password: `\${env.${password}}` + } + ] + } + } + }; + if (gpgPassphrase) { + const gpgServer = { + id: 'gpg.passphrase', + passphrase: `\${env.${gpgPassphrase}}` + }; + xmlObj.settings.servers.server.push(gpgServer); + } + return xmlbuilder2_1.create(xmlObj).end({ + headless: true, + prettyPrint: true, + width: 80 + }); +} +exports.generate = generate; +function write(directory, settings, overwriteSettings) { + return __awaiter(this, void 0, void 0, function* () { + const location = path.join(directory, exports.SETTINGS_FILE); + const settingsExists = fs.existsSync(location); + if (settingsExists && overwriteSettings) { + core.info(`Overwriting existing file ${location}`); + } + else if (!settingsExists) { + core.info(`Writing to ${location}`); + } + else { + core.info(`Skipping generation ${location} because file already exists and overwriting is not required`); + return; + } + return fs.writeFileSync(location, settings, { + encoding: 'utf-8', + flag: 'w' + }); + }); +} /***/ }), @@ -26024,8 +25377,292 @@ var DiagLogLevel; //# sourceMappingURL=types.js.map /***/ }), -/* 361 */, -/* 362 */, +/* 361 */ +/***/ (function(module, __unusedexports, __webpack_require__) { + +"use strict"; + + +var punycode = __webpack_require__(213); +var mappingTable = __webpack_require__(482); + +var PROCESSING_OPTIONS = { + TRANSITIONAL: 0, + NONTRANSITIONAL: 1 +}; + +function normalize(str) { // fix bug in v8 + return str.split('\u0000').map(function (s) { return s.normalize('NFC'); }).join('\u0000'); +} + +function findStatus(val) { + var start = 0; + var end = mappingTable.length - 1; + + while (start <= end) { + var mid = Math.floor((start + end) / 2); + + var target = mappingTable[mid]; + if (target[0][0] <= val && target[0][1] >= val) { + return target; + } else if (target[0][0] > val) { + end = mid - 1; + } else { + start = mid + 1; + } + } + + return null; +} + +var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; + +function countSymbols(string) { + return string + // replace every surrogate pair with a BMP symbol + .replace(regexAstralSymbols, '_') + // then get the length + .length; +} + +function mapChars(domain_name, useSTD3, processing_option) { + var hasError = false; + var processed = ""; + + var len = countSymbols(domain_name); + for (var i = 0; i < len; ++i) { + var codePoint = domain_name.codePointAt(i); + var status = findStatus(codePoint); + + switch (status[1]) { + case "disallowed": + hasError = true; + processed += String.fromCodePoint(codePoint); + break; + case "ignored": + break; + case "mapped": + processed += String.fromCodePoint.apply(String, status[2]); + break; + case "deviation": + if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) { + processed += String.fromCodePoint.apply(String, status[2]); + } else { + processed += String.fromCodePoint(codePoint); + } + break; + case "valid": + processed += String.fromCodePoint(codePoint); + break; + case "disallowed_STD3_mapped": + if (useSTD3) { + hasError = true; + processed += String.fromCodePoint(codePoint); + } else { + processed += String.fromCodePoint.apply(String, status[2]); + } + break; + case "disallowed_STD3_valid": + if (useSTD3) { + hasError = true; + } + + processed += String.fromCodePoint(codePoint); + break; + } + } + + return { + string: processed, + error: hasError + }; +} + +var combiningMarksRegex = /[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/; + +function validateLabel(label, processing_option) { + if (label.substr(0, 4) === "xn--") { + label = punycode.toUnicode(label); + processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL; + } + + var error = false; + + if (normalize(label) !== label || + (label[3] === "-" && label[4] === "-") || + label[0] === "-" || label[label.length - 1] === "-" || + label.indexOf(".") !== -1 || + label.search(combiningMarksRegex) === 0) { + error = true; + } + + var len = countSymbols(label); + for (var i = 0; i < len; ++i) { + var status = findStatus(label.codePointAt(i)); + if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== "valid") || + (processing === PROCESSING_OPTIONS.NONTRANSITIONAL && + status[1] !== "valid" && status[1] !== "deviation")) { + error = true; + break; + } + } + + return { + label: label, + error: error + }; +} + +function processing(domain_name, useSTD3, processing_option) { + var result = mapChars(domain_name, useSTD3, processing_option); + result.string = normalize(result.string); + + var labels = result.string.split("."); + for (var i = 0; i < labels.length; ++i) { + try { + var validation = validateLabel(labels[i]); + labels[i] = validation.label; + result.error = result.error || validation.error; + } catch(e) { + result.error = true; + } + } + + return { + string: labels.join("."), + error: result.error + }; +} + +module.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) { + var result = processing(domain_name, useSTD3, processing_option); + var labels = result.string.split("."); + labels = labels.map(function(l) { + try { + return punycode.toASCII(l); + } catch(e) { + result.error = true; + return l; + } + }); + + if (verifyDnsLength) { + var total = labels.slice(0, labels.length - 1).join(".").length; + if (total.length > 253 || total.length === 0) { + result.error = true; + } + + for (var i=0; i < labels.length; ++i) { + if (labels.length > 63 || labels.length === 0) { + result.error = true; + break; + } + } + } + + if (result.error) return null; + return labels.join("."); +}; + +module.exports.toUnicode = function(domain_name, useSTD3) { + var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL); + + return { + domain: result.string, + error: result.error + }; +}; + +module.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS; + + +/***/ }), +/* 362 */ +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DiagComponentLogger = void 0; +var global_utils_1 = __webpack_require__(525); +/** + * Component Logger which is meant to be used as part of any component which + * will add automatically additional namespace in front of the log message. + * It will then forward all message to global diag logger + * @example + * const cLogger = diag.createComponentLogger({ namespace: '@opentelemetry/instrumentation-http' }); + * cLogger.debug('test'); + * // @opentelemetry/instrumentation-http test + */ +var DiagComponentLogger = /** @class */ (function () { + function DiagComponentLogger(props) { + this._namespace = props.namespace || 'DiagComponentLogger'; + } + DiagComponentLogger.prototype.debug = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return logProxy('debug', this._namespace, args); + }; + DiagComponentLogger.prototype.error = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return logProxy('error', this._namespace, args); + }; + DiagComponentLogger.prototype.info = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return logProxy('info', this._namespace, args); + }; + DiagComponentLogger.prototype.warn = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return logProxy('warn', this._namespace, args); + }; + DiagComponentLogger.prototype.verbose = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return logProxy('verbose', this._namespace, args); + }; + return DiagComponentLogger; +}()); +exports.DiagComponentLogger = DiagComponentLogger; +function logProxy(funcName, namespace, args) { + var logger = global_utils_1.getGlobal('diag'); + // shortcut if logger not set + if (!logger) { + return; + } + args.unshift(namespace); + return logger[funcName].apply(logger, args); +} +//# sourceMappingURL=ComponentLogger.js.map + +/***/ }), /* 363 */, /* 364 */, /* 365 */, @@ -26509,6 +26146,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.ProxyTracerProvider = void 0; var ProxyTracer_1 = __webpack_require__(398); var NoopTracerProvider_1 = __webpack_require__(224); +var NOOP_TRACER_PROVIDER = new NoopTracerProvider_1.NoopTracerProvider(); /** * Tracer provider which provides {@link ProxyTracer}s. * @@ -26529,7 +26167,7 @@ var ProxyTracerProvider = /** @class */ (function () { }; ProxyTracerProvider.prototype.getDelegate = function () { var _a; - return (_a = this._delegate) !== null && _a !== void 0 ? _a : NoopTracerProvider_1.NOOP_TRACER_PROVIDER; + return (_a = this._delegate) !== null && _a !== void 0 ? _a : NOOP_TRACER_PROVIDER; }; /** * Set the delegate tracer provider @@ -26587,6 +26225,7 @@ module.exports = function (Yallist) { Object.defineProperty(exports, "__esModule", { value: true }); exports.ProxyTracer = void 0; var NoopTracer_1 = __webpack_require__(216); +var NOOP_TRACER = new NoopTracer_1.NoopTracer(); /** * Proxy tracer provided by the proxy tracer provider */ @@ -26599,6 +26238,10 @@ var ProxyTracer = /** @class */ (function () { ProxyTracer.prototype.startSpan = function (name, options, context) { return this._getTracer().startSpan(name, options, context); }; + ProxyTracer.prototype.startActiveSpan = function (_name, _options, _context, _fn) { + var tracer = this._getTracer(); + return Reflect.apply(tracer.startActiveSpan, tracer, arguments); + }; /** * Try to get a tracer from the proxy tracer provider. * If the proxy tracer provider has no delegate, return a noop tracer. @@ -26609,7 +26252,7 @@ var ProxyTracer = /** @class */ (function () { } var tracer = this._provider.getDelegateTracer(this.name, this.version); if (!tracer) { - return NoopTracer_1.NOOP_TRACER; + return NOOP_TRACER; } this._delegate = tracer; return this._delegate; @@ -28797,176 +28440,278 @@ exports.listTar = listTar; //# sourceMappingURL=tar.js.map /***/ }), -/* 435 */, +/* 435 */ +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.INVALID_SPAN_CONTEXT = exports.INVALID_TRACEID = exports.INVALID_SPANID = void 0; +var trace_flags_1 = __webpack_require__(975); +exports.INVALID_SPANID = '0000000000000000'; +exports.INVALID_TRACEID = '00000000000000000000000000000000'; +exports.INVALID_SPAN_CONTEXT = { + traceId: exports.INVALID_TRACEID, + spanId: exports.INVALID_SPANID, + traceFlags: trace_flags_1.TraceFlags.NONE, +}; +//# sourceMappingURL=invalid-span-constants.js.map + +/***/ }), /* 436 */, -/* 437 */, +/* 437 */ +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NonRecordingSpan = void 0; +var invalid_span_constants_1 = __webpack_require__(435); +/** + * The NonRecordingSpan is the default {@link Span} that is used when no Span + * implementation is available. All operations are no-op including context + * propagation. + */ +var NonRecordingSpan = /** @class */ (function () { + function NonRecordingSpan(_spanContext) { + if (_spanContext === void 0) { _spanContext = invalid_span_constants_1.INVALID_SPAN_CONTEXT; } + this._spanContext = _spanContext; + } + // Returns a SpanContext. + NonRecordingSpan.prototype.spanContext = function () { + return this._spanContext; + }; + // By default does nothing + NonRecordingSpan.prototype.setAttribute = function (_key, _value) { + return this; + }; + // By default does nothing + NonRecordingSpan.prototype.setAttributes = function (_attributes) { + return this; + }; + // By default does nothing + NonRecordingSpan.prototype.addEvent = function (_name, _attributes) { + return this; + }; + // By default does nothing + NonRecordingSpan.prototype.setStatus = function (_status) { + return this; + }; + // By default does nothing + NonRecordingSpan.prototype.updateName = function (_name) { + return this; + }; + // By default does nothing + NonRecordingSpan.prototype.end = function (_endTime) { }; + // isRecording always returns false for NonRecordingSpan. + NonRecordingSpan.prototype.isRecording = function () { + return false; + }; + // By default does nothing + NonRecordingSpan.prototype.recordException = function (_exception, _time) { }; + return NonRecordingSpan; +}()); +exports.NonRecordingSpan = NonRecordingSpan; +//# sourceMappingURL=NonRecordingSpan.js.map + +/***/ }), /* 438 */, /* 439 */ /***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.TemurinDistribution = exports.TemurinImplementation = void 0; -const core = __importStar(__webpack_require__(470)); -const tc = __importStar(__webpack_require__(139)); -const fs_1 = __importDefault(__webpack_require__(747)); -const path_1 = __importDefault(__webpack_require__(622)); -const semver_1 = __importDefault(__webpack_require__(876)); -const base_installer_1 = __webpack_require__(83); -const util_1 = __webpack_require__(322); -var TemurinImplementation; -(function (TemurinImplementation) { - TemurinImplementation["Hotspot"] = "Hotspot"; -})(TemurinImplementation = exports.TemurinImplementation || (exports.TemurinImplementation = {})); -class TemurinDistribution extends base_installer_1.JavaBase { - constructor(installerOptions, jvmImpl) { - super(`Temurin-${jvmImpl}`, installerOptions); - this.jvmImpl = jvmImpl; - } - findPackageForDownload(version) { - return __awaiter(this, void 0, void 0, function* () { - const availableVersionsRaw = yield this.getAvailableVersions(); - const availableVersionsWithBinaries = availableVersionsRaw - .filter(item => item.binaries.length > 0) - .map(item => { - // normalize 17.0.0-beta+33.0.202107301459 to 17.0.0+33.0.202107301459 for earlier access versions - const formattedVersion = this.stable - ? item.version_data.semver - : item.version_data.semver.replace('-beta+', '+'); - return { - version: formattedVersion, - url: item.binaries[0].package.link - }; - }); - const satisfiedVersions = availableVersionsWithBinaries - .filter(item => util_1.isVersionSatisfies(version, item.version)) - .sort((a, b) => { - return -semver_1.default.compareBuild(a.version, b.version); - }); - const resolvedFullVersion = satisfiedVersions.length > 0 ? satisfiedVersions[0] : null; - if (!resolvedFullVersion) { - const availableOptions = availableVersionsWithBinaries.map(item => item.version).join(', '); - const availableOptionsMessage = availableOptions - ? `\nAvailable versions: ${availableOptions}` - : ''; - throw new Error(`Could not find satisfied version for SemVer '${version}'. ${availableOptionsMessage}`); - } - return resolvedFullVersion; - }); - } - downloadTool(javaRelease) { - return __awaiter(this, void 0, void 0, function* () { - let javaPath; - let extractedJavaPath; - core.info(`Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...`); - const javaArchivePath = yield tc.downloadTool(javaRelease.url); - core.info(`Extracting Java archive...`); - let extension = util_1.getDownloadArchiveExtension(); - extractedJavaPath = yield util_1.extractJdkFile(javaArchivePath, extension); - const archiveName = fs_1.default.readdirSync(extractedJavaPath)[0]; - const archivePath = path_1.default.join(extractedJavaPath, archiveName); - const version = this.getToolcacheVersionName(javaRelease.version); - javaPath = yield tc.cacheDir(archivePath, this.toolcacheFolderName, version, this.architecture); - return { version: javaRelease.version, path: javaPath }; - }); - } - get toolcacheFolderName() { - return super.toolcacheFolderName; - } - getAvailableVersions() { - return __awaiter(this, void 0, void 0, function* () { - const platform = this.getPlatformOption(); - const arch = this.architecture; - const imageType = this.packageType; - const versionRange = encodeURI('[1.0,100.0]'); // retrieve all available versions - const releaseType = this.stable ? 'ga' : 'ea'; - console.time('temurin-retrieve-available-versions'); - const baseRequestArguments = [ - `project=jdk`, - 'vendor=adoptium', - `heap_size=normal`, - 'sort_method=DEFAULT', - 'sort_order=DESC', - `os=${platform}`, - `architecture=${arch}`, - `image_type=${imageType}`, - `release_type=${releaseType}`, - `jvm_impl=${this.jvmImpl.toLowerCase()}` - ].join('&'); - // need to iterate through all pages to retrieve the list of all versions - // Adoptium API doesn't provide way to retrieve the count of pages to iterate so infinity loop - let page_index = 0; - const availableVersions = []; - while (true) { - const requestArguments = `${baseRequestArguments}&page_size=20&page=${page_index}`; - const availableVersionsUrl = `https://api.adoptium.net/v3/assets/version/${versionRange}?${requestArguments}`; - if (core.isDebug() && page_index === 0) { - // url is identical except page_index so print it once for debug - core.debug(`Gathering available versions from '${availableVersionsUrl}'`); - } - const paginationPage = (yield this.http.getJson(availableVersionsUrl)).result; - if (paginationPage === null || paginationPage.length === 0) { - // break infinity loop because we have reached end of pagination - break; - } - availableVersions.push(...paginationPage); - page_index++; - } - if (core.isDebug()) { - core.startGroup('Print information about available versions'); - console.timeEnd('temurin-retrieve-available-versions'); - console.log(`Available versions: [${availableVersions.length}]`); - console.log(availableVersions.map(item => item.version_data.semver).join(', ')); - core.endGroup(); - } - return availableVersions; - }); - } - getPlatformOption() { - // Adoptium has own platform names so need to map them - switch (process.platform) { - case 'darwin': - return 'mac'; - case 'win32': - return 'windows'; - default: - return process.platform; - } - } -} -exports.TemurinDistribution = TemurinDistribution; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TemurinDistribution = exports.TemurinImplementation = void 0; +const core = __importStar(__webpack_require__(470)); +const tc = __importStar(__webpack_require__(139)); +const fs_1 = __importDefault(__webpack_require__(747)); +const path_1 = __importDefault(__webpack_require__(622)); +const semver_1 = __importDefault(__webpack_require__(876)); +const base_installer_1 = __webpack_require__(83); +const util_1 = __webpack_require__(322); +var TemurinImplementation; +(function (TemurinImplementation) { + TemurinImplementation["Hotspot"] = "Hotspot"; +})(TemurinImplementation = exports.TemurinImplementation || (exports.TemurinImplementation = {})); +class TemurinDistribution extends base_installer_1.JavaBase { + constructor(installerOptions, jvmImpl) { + super(`Temurin-${jvmImpl}`, installerOptions); + this.jvmImpl = jvmImpl; + } + findPackageForDownload(version) { + return __awaiter(this, void 0, void 0, function* () { + const availableVersionsRaw = yield this.getAvailableVersions(); + const availableVersionsWithBinaries = availableVersionsRaw + .filter(item => item.binaries.length > 0) + .map(item => { + // normalize 17.0.0-beta+33.0.202107301459 to 17.0.0+33.0.202107301459 for earlier access versions + const formattedVersion = this.stable + ? item.version_data.semver + : item.version_data.semver.replace('-beta+', '+'); + return { + version: formattedVersion, + url: item.binaries[0].package.link + }; + }); + const satisfiedVersions = availableVersionsWithBinaries + .filter(item => util_1.isVersionSatisfies(version, item.version)) + .sort((a, b) => { + return -semver_1.default.compareBuild(a.version, b.version); + }); + const resolvedFullVersion = satisfiedVersions.length > 0 ? satisfiedVersions[0] : null; + if (!resolvedFullVersion) { + const availableOptions = availableVersionsWithBinaries.map(item => item.version).join(', '); + const availableOptionsMessage = availableOptions + ? `\nAvailable versions: ${availableOptions}` + : ''; + throw new Error(`Could not find satisfied version for SemVer '${version}'. ${availableOptionsMessage}`); + } + return resolvedFullVersion; + }); + } + downloadTool(javaRelease) { + return __awaiter(this, void 0, void 0, function* () { + let javaPath; + let extractedJavaPath; + core.info(`Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...`); + const javaArchivePath = yield tc.downloadTool(javaRelease.url); + core.info(`Extracting Java archive...`); + let extension = util_1.getDownloadArchiveExtension(); + extractedJavaPath = yield util_1.extractJdkFile(javaArchivePath, extension); + const archiveName = fs_1.default.readdirSync(extractedJavaPath)[0]; + const archivePath = path_1.default.join(extractedJavaPath, archiveName); + const version = this.getToolcacheVersionName(javaRelease.version); + javaPath = yield tc.cacheDir(archivePath, this.toolcacheFolderName, version, this.architecture); + return { version: javaRelease.version, path: javaPath }; + }); + } + get toolcacheFolderName() { + return super.toolcacheFolderName; + } + getAvailableVersions() { + return __awaiter(this, void 0, void 0, function* () { + const platform = this.getPlatformOption(); + const arch = this.architecture; + const imageType = this.packageType; + const versionRange = encodeURI('[1.0,100.0]'); // retrieve all available versions + const releaseType = this.stable ? 'ga' : 'ea'; + console.time('temurin-retrieve-available-versions'); + const baseRequestArguments = [ + `project=jdk`, + 'vendor=adoptium', + `heap_size=normal`, + 'sort_method=DEFAULT', + 'sort_order=DESC', + `os=${platform}`, + `architecture=${arch}`, + `image_type=${imageType}`, + `release_type=${releaseType}`, + `jvm_impl=${this.jvmImpl.toLowerCase()}` + ].join('&'); + // need to iterate through all pages to retrieve the list of all versions + // Adoptium API doesn't provide way to retrieve the count of pages to iterate so infinity loop + let page_index = 0; + const availableVersions = []; + while (true) { + const requestArguments = `${baseRequestArguments}&page_size=20&page=${page_index}`; + const availableVersionsUrl = `https://api.adoptium.net/v3/assets/version/${versionRange}?${requestArguments}`; + if (core.isDebug() && page_index === 0) { + // url is identical except page_index so print it once for debug + core.debug(`Gathering available versions from '${availableVersionsUrl}'`); + } + const paginationPage = (yield this.http.getJson(availableVersionsUrl)).result; + if (paginationPage === null || paginationPage.length === 0) { + // break infinity loop because we have reached end of pagination + break; + } + availableVersions.push(...paginationPage); + page_index++; + } + if (core.isDebug()) { + core.startGroup('Print information about available versions'); + console.timeEnd('temurin-retrieve-available-versions'); + console.log(`Available versions: [${availableVersions.length}]`); + console.log(availableVersions.map(item => item.version_data.semver).join(', ')); + core.endGroup(); + } + return availableVersions; + }); + } + getPlatformOption() { + // Adoptium has own platform names so need to map them + switch (process.platform) { + case 'darwin': + return 'mac'; + case 'win32': + return 'windows'; + default: + return process.platform; + } + } +} +exports.TemurinDistribution = TemurinDistribution; /***/ }), @@ -29001,19 +28746,16 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.diag = exports.propagation = exports.trace = exports.context = exports.isValidSpanId = exports.isValidTraceId = exports.isSpanContextValid = exports.INVALID_SPAN_CONTEXT = exports.INVALID_TRACEID = exports.INVALID_SPANID = void 0; -__exportStar(__webpack_require__(792), exports); +exports.diag = exports.propagation = exports.trace = exports.context = exports.INVALID_SPAN_CONTEXT = exports.INVALID_TRACEID = exports.INVALID_SPANID = exports.isValidSpanId = exports.isValidTraceId = exports.isSpanContextValid = exports.baggageEntryMetadataFromString = void 0; +__exportStar(__webpack_require__(880), exports); +var utils_1 = __webpack_require__(872); +Object.defineProperty(exports, "baggageEntryMetadataFromString", { enumerable: true, get: function () { return utils_1.baggageEntryMetadataFromString; } }); __exportStar(__webpack_require__(452), exports); __exportStar(__webpack_require__(158), exports); __exportStar(__webpack_require__(893), exports); -__exportStar(__webpack_require__(637), exports); -__exportStar(__webpack_require__(649), exports); +__exportStar(__webpack_require__(875), exports); __exportStar(__webpack_require__(906), exports); -__exportStar(__webpack_require__(727), exports); -__exportStar(__webpack_require__(851), exports); __exportStar(__webpack_require__(843), exports); -__exportStar(__webpack_require__(216), exports); -__exportStar(__webpack_require__(224), exports); __exportStar(__webpack_require__(398), exports); __exportStar(__webpack_require__(394), exports); __exportStar(__webpack_require__(79), exports); @@ -29023,25 +28765,24 @@ __exportStar(__webpack_require__(670), exports); __exportStar(__webpack_require__(59), exports); __exportStar(__webpack_require__(220), exports); __exportStar(__webpack_require__(409), exports); -__exportStar(__webpack_require__(839), exports); __exportStar(__webpack_require__(975), exports); -__exportStar(__webpack_require__(70), exports); +__exportStar(__webpack_require__(207), exports); __exportStar(__webpack_require__(694), exports); __exportStar(__webpack_require__(977), exports); var spancontext_utils_1 = __webpack_require__(453); -Object.defineProperty(exports, "INVALID_SPANID", { enumerable: true, get: function () { return spancontext_utils_1.INVALID_SPANID; } }); -Object.defineProperty(exports, "INVALID_TRACEID", { enumerable: true, get: function () { return spancontext_utils_1.INVALID_TRACEID; } }); -Object.defineProperty(exports, "INVALID_SPAN_CONTEXT", { enumerable: true, get: function () { return spancontext_utils_1.INVALID_SPAN_CONTEXT; } }); Object.defineProperty(exports, "isSpanContextValid", { enumerable: true, get: function () { return spancontext_utils_1.isSpanContextValid; } }); Object.defineProperty(exports, "isValidTraceId", { enumerable: true, get: function () { return spancontext_utils_1.isValidTraceId; } }); Object.defineProperty(exports, "isValidSpanId", { enumerable: true, get: function () { return spancontext_utils_1.isValidSpanId; } }); +var invalid_span_constants_1 = __webpack_require__(435); +Object.defineProperty(exports, "INVALID_SPANID", { enumerable: true, get: function () { return invalid_span_constants_1.INVALID_SPANID; } }); +Object.defineProperty(exports, "INVALID_TRACEID", { enumerable: true, get: function () { return invalid_span_constants_1.INVALID_TRACEID; } }); +Object.defineProperty(exports, "INVALID_SPAN_CONTEXT", { enumerable: true, get: function () { return invalid_span_constants_1.INVALID_SPAN_CONTEXT; } }); __exportStar(__webpack_require__(132), exports); -__exportStar(__webpack_require__(754), exports); __exportStar(__webpack_require__(845), exports); var context_1 = __webpack_require__(77); /** Entrypoint for context API */ exports.context = context_1.ContextAPI.getInstance(); -var trace_1 = __webpack_require__(875); +var trace_1 = __webpack_require__(895); /** Entrypoint for trace API */ exports.trace = trace_1.TraceAPI.getInstance(); var propagation_1 = __webpack_require__(21); @@ -29351,23 +29092,32 @@ Object.defineProperty(exports, "__esModule", { value: true }); "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.isSpanContextValid = exports.isValidSpanId = exports.isValidTraceId = exports.INVALID_SPAN_CONTEXT = exports.INVALID_TRACEID = exports.INVALID_SPANID = void 0; -var trace_flags_1 = __webpack_require__(975); +exports.wrapSpanContext = exports.isSpanContextValid = exports.isValidSpanId = exports.isValidTraceId = void 0; +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +var invalid_span_constants_1 = __webpack_require__(435); +var NonRecordingSpan_1 = __webpack_require__(437); var VALID_TRACEID_REGEX = /^([0-9a-f]{32})$/i; var VALID_SPANID_REGEX = /^[0-9a-f]{16}$/i; -exports.INVALID_SPANID = '0000000000000000'; -exports.INVALID_TRACEID = '00000000000000000000000000000000'; -exports.INVALID_SPAN_CONTEXT = { - traceId: exports.INVALID_TRACEID, - spanId: exports.INVALID_SPANID, - traceFlags: trace_flags_1.TraceFlags.NONE, -}; function isValidTraceId(traceId) { - return VALID_TRACEID_REGEX.test(traceId) && traceId !== exports.INVALID_TRACEID; + return VALID_TRACEID_REGEX.test(traceId) && traceId !== invalid_span_constants_1.INVALID_TRACEID; } exports.isValidTraceId = isValidTraceId; function isValidSpanId(spanId) { - return VALID_SPANID_REGEX.test(spanId) && spanId !== exports.INVALID_SPANID; + return VALID_SPANID_REGEX.test(spanId) && spanId !== invalid_span_constants_1.INVALID_SPANID; } exports.isValidSpanId = isValidSpanId; /** @@ -29378,6 +29128,16 @@ function isSpanContextValid(spanContext) { return (isValidTraceId(spanContext.traceId) && isValidSpanId(spanContext.spanId)); } exports.isSpanContextValid = isSpanContextValid; +/** + * Wrap the given {@link SpanContext} in a new non-recording {@link Span} + * + * @param spanContext span context to be wrapped + * @returns a new non-recording {@link Span} with the provided context + */ +function wrapSpanContext(spanContext) { + return new NonRecordingSpan_1.NonRecordingSpan(spanContext); +} +exports.wrapSpanContext = wrapSpanContext; //# sourceMappingURL=spancontext-utils.js.map /***/ }), @@ -29394,6 +29154,7 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau var Stream = _interopDefault(__webpack_require__(794)); var http = _interopDefault(__webpack_require__(605)); var Url = _interopDefault(__webpack_require__(835)); +var whatwgUrl = _interopDefault(__webpack_require__(70)); var https = _interopDefault(__webpack_require__(34)); var zlib = _interopDefault(__webpack_require__(761)); @@ -30528,11 +30289,32 @@ Object.defineProperty(Response.prototype, Symbol.toStringTag, { }); const INTERNALS$2 = Symbol('Request internals'); +const URL = Url.URL || whatwgUrl.URL; // fix an issue where "format", "parse" aren't a named export for node <10 const parse_url = Url.parse; const format_url = Url.format; +/** + * Wrapper around `new URL` to handle arbitrary URLs + * + * @param {string} urlStr + * @return {void} + */ +function parseURL(urlStr) { + /* + Check whether the URL is absolute or not + Scheme: https://tools.ietf.org/html/rfc3986#section-3.1 + Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3 + */ + if (/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(urlStr)) { + urlStr = new URL(urlStr).toString(); + } + + // Fallback to old implementation for arbitrary URLs + return parse_url(urlStr); +} + const streamDestructionSupported = 'destroy' in Stream.Readable.prototype; /** @@ -30569,14 +30351,14 @@ class Request { // in order to support Node.js' Url objects; though WHATWG's URL objects // will fall into this branch also (since their `toString()` will return // `href` property anyway) - parsedURL = parse_url(input.href); + parsedURL = parseURL(input.href); } else { // coerce input to a string before attempting to parse - parsedURL = parse_url(`${input}`); + parsedURL = parseURL(`${input}`); } input = {}; } else { - parsedURL = parse_url(input.url); + parsedURL = parseURL(input.url); } let method = init.method || input.method || 'GET'; @@ -36566,7 +36348,12 @@ module.exports = validRange /***/ }), /* 481 */, -/* 482 */, +/* 482 */ +/***/ (function(module) { + +module.exports = [[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1000,1000],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6000],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8000,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8000]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9000],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[30000]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13000,13000],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43000,43000],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64000,64000],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66000,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[120000,120000],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128000,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23000]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149000]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32000]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195000,195000],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[40000]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918000,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]; + +/***/ }), /* 483 */ /***/ (function(__unusedmodule, exports, __webpack_require__) { @@ -37278,143 +37065,92 @@ Object.defineProperty(exports, '__esModule', { value: true }); function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } -var tslib = __webpack_require__(262); var util = _interopDefault(__webpack_require__(669)); var os = __webpack_require__(87); // Copyright (c) Microsoft Corporation. -function log(message) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - process.stderr.write("" + util.format.apply(util, tslib.__spread([message], args)) + os.EOL); +function log(message, ...args) { + process.stderr.write(`${util.format(message, ...args)}${os.EOL}`); } // Copyright (c) Microsoft Corporation. -var debugEnvVariable = (typeof process !== "undefined" && process.env && process.env.DEBUG) || undefined; -var enabledString; -var enabledNamespaces = []; -var skippedNamespaces = []; -var debuggers = []; +const debugEnvVariable = (typeof process !== "undefined" && process.env && process.env.DEBUG) || undefined; +let enabledString; +let enabledNamespaces = []; +let skippedNamespaces = []; +const debuggers = []; if (debugEnvVariable) { enable(debugEnvVariable); } -var debugObj = Object.assign(function (namespace) { +const debugObj = Object.assign((namespace) => { return createDebugger(namespace); }, { - enable: enable, - enabled: enabled, - disable: disable, - log: log + enable, + enabled, + disable, + log }); function enable(namespaces) { - var e_1, _a, e_2, _b; enabledString = namespaces; enabledNamespaces = []; skippedNamespaces = []; - var wildcard = /\*/g; - var namespaceList = namespaces.split(",").map(function (ns) { return ns.trim().replace(wildcard, ".*?"); }); - try { - for (var namespaceList_1 = tslib.__values(namespaceList), namespaceList_1_1 = namespaceList_1.next(); !namespaceList_1_1.done; namespaceList_1_1 = namespaceList_1.next()) { - var ns = namespaceList_1_1.value; - if (ns.startsWith("-")) { - skippedNamespaces.push(new RegExp("^" + ns.substr(1) + "$")); - } - else { - enabledNamespaces.push(new RegExp("^" + ns + "$")); - } + const wildcard = /\*/g; + const namespaceList = namespaces.split(",").map((ns) => ns.trim().replace(wildcard, ".*?")); + for (const ns of namespaceList) { + if (ns.startsWith("-")) { + skippedNamespaces.push(new RegExp(`^${ns.substr(1)}$`)); + } + else { + enabledNamespaces.push(new RegExp(`^${ns}$`)); } } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (namespaceList_1_1 && !namespaceList_1_1.done && (_a = namespaceList_1.return)) _a.call(namespaceList_1); - } - finally { if (e_1) throw e_1.error; } - } - try { - for (var debuggers_1 = tslib.__values(debuggers), debuggers_1_1 = debuggers_1.next(); !debuggers_1_1.done; debuggers_1_1 = debuggers_1.next()) { - var instance = debuggers_1_1.value; - instance.enabled = enabled(instance.namespace); - } - } - catch (e_2_1) { e_2 = { error: e_2_1 }; } - finally { - try { - if (debuggers_1_1 && !debuggers_1_1.done && (_b = debuggers_1.return)) _b.call(debuggers_1); - } - finally { if (e_2) throw e_2.error; } + for (const instance of debuggers) { + instance.enabled = enabled(instance.namespace); } } function enabled(namespace) { - var e_3, _a, e_4, _b; if (namespace.endsWith("*")) { return true; } - try { - for (var skippedNamespaces_1 = tslib.__values(skippedNamespaces), skippedNamespaces_1_1 = skippedNamespaces_1.next(); !skippedNamespaces_1_1.done; skippedNamespaces_1_1 = skippedNamespaces_1.next()) { - var skipped = skippedNamespaces_1_1.value; - if (skipped.test(namespace)) { - return false; - } + for (const skipped of skippedNamespaces) { + if (skipped.test(namespace)) { + return false; } } - catch (e_3_1) { e_3 = { error: e_3_1 }; } - finally { - try { - if (skippedNamespaces_1_1 && !skippedNamespaces_1_1.done && (_a = skippedNamespaces_1.return)) _a.call(skippedNamespaces_1); + for (const enabledNamespace of enabledNamespaces) { + if (enabledNamespace.test(namespace)) { + return true; } - finally { if (e_3) throw e_3.error; } - } - try { - for (var enabledNamespaces_1 = tslib.__values(enabledNamespaces), enabledNamespaces_1_1 = enabledNamespaces_1.next(); !enabledNamespaces_1_1.done; enabledNamespaces_1_1 = enabledNamespaces_1.next()) { - var enabledNamespace = enabledNamespaces_1_1.value; - if (enabledNamespace.test(namespace)) { - return true; - } - } - } - catch (e_4_1) { e_4 = { error: e_4_1 }; } - finally { - try { - if (enabledNamespaces_1_1 && !enabledNamespaces_1_1.done && (_b = enabledNamespaces_1.return)) _b.call(enabledNamespaces_1); - } - finally { if (e_4) throw e_4.error; } } return false; } function disable() { - var result = enabledString || ""; + const result = enabledString || ""; enable(""); return result; } function createDebugger(namespace) { - var newDebugger = Object.assign(debug, { + const newDebugger = Object.assign(debug, { enabled: enabled(namespace), - destroy: destroy, + destroy, log: debugObj.log, - namespace: namespace, - extend: extend + namespace, + extend }); - function debug() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } + function debug(...args) { if (!newDebugger.enabled) { return; } if (args.length > 0) { - args[0] = namespace + " " + args[0]; + args[0] = `${namespace} ${args[0]}`; } - newDebugger.log.apply(newDebugger, tslib.__spread(args)); + newDebugger.log(...args); } debuggers.push(newDebugger); return newDebugger; } function destroy() { - var index = debuggers.indexOf(this); + const index = debuggers.indexOf(this); if (index >= 0) { debuggers.splice(index, 1); return true; @@ -37422,36 +37158,32 @@ function destroy() { return false; } function extend(namespace) { - var newDebugger = createDebugger(this.namespace + ":" + namespace); + const newDebugger = createDebugger(`${this.namespace}:${namespace}`); newDebugger.log = this.log; return newDebugger; } // Copyright (c) Microsoft Corporation. -var registeredLoggers = new Set(); -var logLevelFromEnv = (typeof process !== "undefined" && process.env && process.env.AZURE_LOG_LEVEL) || undefined; -var azureLogLevel; +const registeredLoggers = new Set(); +const logLevelFromEnv = (typeof process !== "undefined" && process.env && process.env.AZURE_LOG_LEVEL) || undefined; +let azureLogLevel; /** * The AzureLogger provides a mechanism for overriding where logs are output to. * By default, logs are sent to stderr. * Override the `log` method to redirect logs to another location. */ -var AzureLogger = debugObj("azure"); -AzureLogger.log = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - debugObj.log.apply(debugObj, tslib.__spread(args)); +const AzureLogger = debugObj("azure"); +AzureLogger.log = (...args) => { + debugObj.log(...args); }; -var AZURE_LOG_LEVELS = ["verbose", "info", "warning", "error"]; +const AZURE_LOG_LEVELS = ["verbose", "info", "warning", "error"]; if (logLevelFromEnv) { // avoid calling setLogLevel because we don't want a mis-set environment variable to crash if (isAzureLogLevel(logLevelFromEnv)) { setLogLevel(logLevelFromEnv); } else { - console.error("AZURE_LOG_LEVEL set to unknown log level '" + logLevelFromEnv + "'; logging is not enabled. Acceptable values: " + AZURE_LOG_LEVELS.join(", ") + "."); + console.error(`AZURE_LOG_LEVEL set to unknown log level '${logLevelFromEnv}'; logging is not enabled. Acceptable values: ${AZURE_LOG_LEVELS.join(", ")}.`); } } /** @@ -37464,27 +37196,16 @@ if (logLevelFromEnv) { * - error */ function setLogLevel(level) { - var e_1, _a; if (level && !isAzureLogLevel(level)) { - throw new Error("Unknown log level '" + level + "'. Acceptable values: " + AZURE_LOG_LEVELS.join(",")); + throw new Error(`Unknown log level '${level}'. Acceptable values: ${AZURE_LOG_LEVELS.join(",")}`); } azureLogLevel = level; - var enabledNamespaces = []; - try { - for (var registeredLoggers_1 = tslib.__values(registeredLoggers), registeredLoggers_1_1 = registeredLoggers_1.next(); !registeredLoggers_1_1.done; registeredLoggers_1_1 = registeredLoggers_1.next()) { - var logger = registeredLoggers_1_1.value; - if (shouldEnable(logger)) { - enabledNamespaces.push(logger.namespace); - } + const enabledNamespaces = []; + for (const logger of registeredLoggers) { + if (shouldEnable(logger)) { + enabledNamespaces.push(logger.namespace); } } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (registeredLoggers_1_1 && !registeredLoggers_1_1.done && (_a = registeredLoggers_1.return)) _a.call(registeredLoggers_1); - } - finally { if (e_1) throw e_1.error; } - } debugObj.enable(enabledNamespaces.join(",")); } /** @@ -37493,7 +37214,7 @@ function setLogLevel(level) { function getLogLevel() { return azureLogLevel; } -var levelMap = { +const levelMap = { verbose: 400, info: 300, warning: 200, @@ -37505,7 +37226,7 @@ var levelMap = { * @hidden */ function createClientLogger(namespace) { - var clientRootLogger = AzureLogger.extend(namespace); + const clientRootLogger = AzureLogger.extend(namespace); patchLogMethod(AzureLogger, clientRootLogger); return { error: createLogger(clientRootLogger, "error"), @@ -37515,21 +37236,17 @@ function createClientLogger(namespace) { }; } function patchLogMethod(parent, child) { - child.log = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - parent.log.apply(parent, tslib.__spread(args)); + child.log = (...args) => { + parent.log(...args); }; } function createLogger(parent, level) { - var logger = Object.assign(parent.extend(level), { - level: level + const logger = Object.assign(parent.extend(level), { + level }); patchLogMethod(parent, logger); if (shouldEnable(logger)) { - var enabledNamespaces = debugObj.disable(); + const enabledNamespaces = debugObj.disable(); debugObj.enable(enabledNamespaces + "," + logger.namespace); } registeredLoggers.add(logger); @@ -38555,185 +38272,242 @@ module.exports = clean /***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.LibericaDistributions = void 0; -const base_installer_1 = __webpack_require__(83); -const semver_1 = __importDefault(__webpack_require__(876)); -const util_1 = __webpack_require__(322); -const core = __importStar(__webpack_require__(470)); -const tc = __importStar(__webpack_require__(139)); -const fs_1 = __importDefault(__webpack_require__(747)); -const path_1 = __importDefault(__webpack_require__(622)); -const supportedPlatform = `'linux', 'linux-musl', 'macos', 'solaris', 'windows'`; -const supportedArchitecture = `'x86', 'x64', 'armv7', 'aarch64', 'ppc64le'`; -class LibericaDistributions extends base_installer_1.JavaBase { - constructor(installerOptions) { - super('Liberica', installerOptions); - } - downloadTool(javaRelease) { - return __awaiter(this, void 0, void 0, function* () { - core.info(`Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...`); - const javaArchivePath = yield tc.downloadTool(javaRelease.url); - core.info(`Extracting Java archive...`); - const extension = util_1.getDownloadArchiveExtension(); - const extractedJavaPath = yield util_1.extractJdkFile(javaArchivePath, extension); - const archiveName = fs_1.default.readdirSync(extractedJavaPath)[0]; - const archivePath = path_1.default.join(extractedJavaPath, archiveName); - const javaPath = yield tc.cacheDir(archivePath, this.toolcacheFolderName, this.getToolcacheVersionName(javaRelease.version), this.architecture); - return { version: javaRelease.version, path: javaPath }; - }); - } - findPackageForDownload(range) { - return __awaiter(this, void 0, void 0, function* () { - const availableVersionsRaw = yield this.getAvailableVersions(); - const availableVersions = availableVersionsRaw.map(item => ({ - url: item.downloadUrl, - version: this.convertVersionToSemver(item) - })); - const satisfiedVersion = availableVersions - .filter(item => util_1.isVersionSatisfies(range, item.version)) - .sort((a, b) => -semver_1.default.compareBuild(a.version, b.version))[0]; - if (!satisfiedVersion) { - const availableOptions = availableVersions.map(item => item.version).join(', '); - const availableOptionsMessage = availableOptions - ? `\nAvailable versions: ${availableOptions}` - : ''; - throw new Error(`Could not find satisfied version for semver ${range}. ${availableOptionsMessage}`); - } - return satisfiedVersion; - }); - } - getAvailableVersions() { - var _a; - return __awaiter(this, void 0, void 0, function* () { - console.time('liberica-retrieve-available-versions'); - const url = this.prepareAvailableVersionsUrl(); - if (core.isDebug()) { - core.debug(`Gathering available versions from '${url}'`); - } - const availableVersions = (_a = (yield this.http.getJson(url)).result) !== null && _a !== void 0 ? _a : []; - if (core.isDebug()) { - core.startGroup('Print information about available versions'); - console.timeEnd('liberica-retrieve-available-versions'); - console.log(`Available versions: [${availableVersions.length}]`); - console.log(availableVersions.map(item => item.version)); - core.endGroup(); - } - return availableVersions; - }); - } - prepareAvailableVersionsUrl() { - const urlOptions = Object.assign(Object.assign({ os: this.getPlatformOption(), 'bundle-type': this.getBundleType() }, this.getArchitectureOptions()), { 'build-type': this.stable ? 'all' : 'ea', 'installation-type': 'archive', fields: 'downloadUrl,version,featureVersion,interimVersion,updateVersion,buildVersion' }); - const searchParams = new URLSearchParams(urlOptions).toString(); - return `https://api.bell-sw.com/v1/liberica/releases?${searchParams}`; - } - getBundleType() { - const [bundleType, feature] = this.packageType.split('+'); - if (feature === null || feature === void 0 ? void 0 : feature.includes('fx')) { - return bundleType + '-full'; - } - return bundleType; - } - getArchitectureOptions() { - switch (this.architecture) { - case 'x86': - return { bitness: '32', arch: 'x86' }; - case 'x64': - return { bitness: '64', arch: 'x86' }; - case 'armv7': - return { bitness: '32', arch: 'arm' }; - case 'aarch64': - return { bitness: '64', arch: 'arm' }; - case 'ppc64le': - return { bitness: '64', arch: 'ppc' }; - default: - throw new Error(`Architecture '${this.architecture}' is not supported. Supported architectures: ${supportedArchitecture}`); - } - } - getPlatformOption(platform = process.platform) { - switch (platform) { - case 'darwin': - return 'macos'; - case 'win32': - case 'cygwin': - return 'windows'; - case 'linux': - return 'linux'; - case 'sunos': - return 'solaris'; - default: - throw new Error(`Platform '${platform}' is not supported. Supported platforms: ${supportedPlatform}`); - } - } - convertVersionToSemver(version) { - let { buildVersion, featureVersion, interimVersion, updateVersion } = version; - const mainVersion = [featureVersion, interimVersion, updateVersion].join('.'); - if (buildVersion != 0) { - return `${mainVersion}+${buildVersion}`; - } - return mainVersion; - } -} -exports.LibericaDistributions = LibericaDistributions; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LibericaDistributions = void 0; +const base_installer_1 = __webpack_require__(83); +const semver_1 = __importDefault(__webpack_require__(876)); +const util_1 = __webpack_require__(322); +const core = __importStar(__webpack_require__(470)); +const tc = __importStar(__webpack_require__(139)); +const fs_1 = __importDefault(__webpack_require__(747)); +const path_1 = __importDefault(__webpack_require__(622)); +const supportedPlatform = `'linux', 'linux-musl', 'macos', 'solaris', 'windows'`; +const supportedArchitecture = `'x86', 'x64', 'armv7', 'aarch64', 'ppc64le'`; +class LibericaDistributions extends base_installer_1.JavaBase { + constructor(installerOptions) { + super('Liberica', installerOptions); + } + downloadTool(javaRelease) { + return __awaiter(this, void 0, void 0, function* () { + core.info(`Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...`); + const javaArchivePath = yield tc.downloadTool(javaRelease.url); + core.info(`Extracting Java archive...`); + const extension = util_1.getDownloadArchiveExtension(); + const extractedJavaPath = yield util_1.extractJdkFile(javaArchivePath, extension); + const archiveName = fs_1.default.readdirSync(extractedJavaPath)[0]; + const archivePath = path_1.default.join(extractedJavaPath, archiveName); + const javaPath = yield tc.cacheDir(archivePath, this.toolcacheFolderName, this.getToolcacheVersionName(javaRelease.version), this.architecture); + return { version: javaRelease.version, path: javaPath }; + }); + } + findPackageForDownload(range) { + return __awaiter(this, void 0, void 0, function* () { + const availableVersionsRaw = yield this.getAvailableVersions(); + const availableVersions = availableVersionsRaw.map(item => ({ + url: item.downloadUrl, + version: this.convertVersionToSemver(item) + })); + const satisfiedVersion = availableVersions + .filter(item => util_1.isVersionSatisfies(range, item.version)) + .sort((a, b) => -semver_1.default.compareBuild(a.version, b.version))[0]; + if (!satisfiedVersion) { + const availableOptions = availableVersions.map(item => item.version).join(', '); + const availableOptionsMessage = availableOptions + ? `\nAvailable versions: ${availableOptions}` + : ''; + throw new Error(`Could not find satisfied version for semver ${range}. ${availableOptionsMessage}`); + } + return satisfiedVersion; + }); + } + getAvailableVersions() { + var _a; + return __awaiter(this, void 0, void 0, function* () { + console.time('liberica-retrieve-available-versions'); + const url = this.prepareAvailableVersionsUrl(); + if (core.isDebug()) { + core.debug(`Gathering available versions from '${url}'`); + } + const availableVersions = (_a = (yield this.http.getJson(url)).result) !== null && _a !== void 0 ? _a : []; + if (core.isDebug()) { + core.startGroup('Print information about available versions'); + console.timeEnd('liberica-retrieve-available-versions'); + console.log(`Available versions: [${availableVersions.length}]`); + console.log(availableVersions.map(item => item.version)); + core.endGroup(); + } + return availableVersions; + }); + } + prepareAvailableVersionsUrl() { + const urlOptions = Object.assign(Object.assign({ os: this.getPlatformOption(), 'bundle-type': this.getBundleType() }, this.getArchitectureOptions()), { 'build-type': this.stable ? 'all' : 'ea', 'installation-type': 'archive', fields: 'downloadUrl,version,featureVersion,interimVersion,updateVersion,buildVersion' }); + const searchParams = new URLSearchParams(urlOptions).toString(); + return `https://api.bell-sw.com/v1/liberica/releases?${searchParams}`; + } + getBundleType() { + const [bundleType, feature] = this.packageType.split('+'); + if (feature === null || feature === void 0 ? void 0 : feature.includes('fx')) { + return bundleType + '-full'; + } + return bundleType; + } + getArchitectureOptions() { + switch (this.architecture) { + case 'x86': + return { bitness: '32', arch: 'x86' }; + case 'x64': + return { bitness: '64', arch: 'x86' }; + case 'armv7': + return { bitness: '32', arch: 'arm' }; + case 'aarch64': + return { bitness: '64', arch: 'arm' }; + case 'ppc64le': + return { bitness: '64', arch: 'ppc' }; + default: + throw new Error(`Architecture '${this.architecture}' is not supported. Supported architectures: ${supportedArchitecture}`); + } + } + getPlatformOption(platform = process.platform) { + switch (platform) { + case 'darwin': + return 'macos'; + case 'win32': + case 'cygwin': + return 'windows'; + case 'linux': + return 'linux'; + case 'sunos': + return 'solaris'; + default: + throw new Error(`Platform '${platform}' is not supported. Supported platforms: ${supportedPlatform}`); + } + } + convertVersionToSemver(version) { + let { buildVersion, featureVersion, interimVersion, updateVersion } = version; + const mainVersion = [featureVersion, interimVersion, updateVersion].join('.'); + if (buildVersion != 0) { + return `${mainVersion}+${buildVersion}`; + } + return mainVersion; + } +} +exports.LibericaDistributions = LibericaDistributions; /***/ }), /* 508 */, /* 509 */, /* 510 */ -/***/ (function(__unusedmodule, exports) { +/***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; -/* - * Copyright The OpenTelemetry Authors + +Object.defineProperty(exports, '__esModule', { value: true }); + +__webpack_require__(71); +var tslib = __webpack_require__(671); + +// Copyright (c) Microsoft Corporation. +/** + * returns an async iterator that iterates over results. It also has a `byPage` + * method that returns pages of items at once. * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * @param pagedResult - an object that specifies how to get pages. + * @returns a paged async iterator that iterates over results. */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=Entry.js.map +function getPagedAsyncIterator(pagedResult) { + var _a; + const iter = getItemAsyncIterator(pagedResult); + return { + next() { + return iter.next(); + }, + [Symbol.asyncIterator]() { + return this; + }, + byPage: (_a = pagedResult === null || pagedResult === void 0 ? void 0 : pagedResult.byPage) !== null && _a !== void 0 ? _a : ((settings) => { + return getPageAsyncIterator(pagedResult, settings === null || settings === void 0 ? void 0 : settings.maxPageSize); + }) + }; +} +function getItemAsyncIterator(pagedResult, maxPageSize) { + return tslib.__asyncGenerator(this, arguments, function* getItemAsyncIterator_1() { + var e_1, _a; + const pages = getPageAsyncIterator(pagedResult, maxPageSize); + const firstVal = yield tslib.__await(pages.next()); + // if the result does not have an array shape, i.e. TPage = TElement, then we return it as is + if (!Array.isArray(firstVal.value)) { + yield yield tslib.__await(firstVal.value); + // `pages` is of type `AsyncIterableIterator` but TPage = TElement in this case + yield tslib.__await(yield* tslib.__asyncDelegator(tslib.__asyncValues(pages))); + } + else { + yield tslib.__await(yield* tslib.__asyncDelegator(tslib.__asyncValues(firstVal.value))); + try { + for (var pages_1 = tslib.__asyncValues(pages), pages_1_1; pages_1_1 = yield tslib.__await(pages_1.next()), !pages_1_1.done;) { + const page = pages_1_1.value; + // pages is of type `AsyncIterableIterator` so `page` is of type `TPage`. In this branch, + // it must be the case that `TPage = TElement[]` + yield tslib.__await(yield* tslib.__asyncDelegator(tslib.__asyncValues(page))); + } + } + catch (e_1_1) { e_1 = { error: e_1_1 }; } + finally { + try { + if (pages_1_1 && !pages_1_1.done && (_a = pages_1.return)) yield tslib.__await(_a.call(pages_1)); + } + finally { if (e_1) throw e_1.error; } + } + } + }); +} +function getPageAsyncIterator(pagedResult, maxPageSize) { + return tslib.__asyncGenerator(this, arguments, function* getPageAsyncIterator_1() { + let response = yield tslib.__await(pagedResult.getPage(pagedResult.firstPageLink, maxPageSize)); + yield yield tslib.__await(response.page); + while (response.nextPageLink) { + response = yield tslib.__await(pagedResult.getPage(response.nextPageLink, maxPageSize)); + yield yield tslib.__await(response.page); + } + }); +} + +exports.getPagedAsyncIterator = getPagedAsyncIterator; +//# sourceMappingURL=index.js.map + /***/ }), /* 511 */, @@ -39050,33 +38824,33 @@ exports.CompareCache = CompareCache; */ Object.defineProperty(exports, "__esModule", { value: true }); exports.unregisterGlobal = exports.getGlobal = exports.registerGlobal = void 0; -var __1 = __webpack_require__(440); var platform_1 = __webpack_require__(127); var version_1 = __webpack_require__(133); var semver_1 = __webpack_require__(987); var major = version_1.VERSION.split('.')[0]; -var GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for("io.opentelemetry.js.api." + major); +var GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for("opentelemetry.js.api." + major); var _global = platform_1._globalThis; -function registerGlobal(type, instance, allowOverride) { +function registerGlobal(type, instance, diag, allowOverride) { var _a; if (allowOverride === void 0) { allowOverride = false; } - _global[GLOBAL_OPENTELEMETRY_API_KEY] = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) !== null && _a !== void 0 ? _a : { + var api = (_global[GLOBAL_OPENTELEMETRY_API_KEY] = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) !== null && _a !== void 0 ? _a : { version: version_1.VERSION, - }; - var api = _global[GLOBAL_OPENTELEMETRY_API_KEY]; + }); if (!allowOverride && api[type]) { // already registered an API of this type var err = new Error("@opentelemetry/api: Attempted duplicate registration of API: " + type); - __1.diag.error(err.stack || err.message); - return; + diag.error(err.stack || err.message); + return false; } if (api.version !== version_1.VERSION) { // All registered APIs must be of the same version exactly var err = new Error('@opentelemetry/api: All API registration versions must match'); - __1.diag.error(err.stack || err.message); - return; + diag.error(err.stack || err.message); + return false; } api[type] = instance; + diag.debug("@opentelemetry/api: Registered a global for " + type + " v" + version_1.VERSION + "."); + return true; } exports.registerGlobal = registerGlobal; function getGlobal(type) { @@ -39088,7 +38862,8 @@ function getGlobal(type) { return (_b = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _b === void 0 ? void 0 : _b[type]; } exports.getGlobal = getGlobal; -function unregisterGlobal(type) { +function unregisterGlobal(type, diag) { + diag.debug("@opentelemetry/api: Unregistering a global for " + type + " v" + version_1.VERSION + "."); var api = _global[GLOBAL_OPENTELEMETRY_API_KEY]; if (api) { delete api[type]; @@ -44880,170 +44655,170 @@ exports.ShadowRootImpl = ShadowRootImpl; /***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.AdoptDistribution = exports.AdoptImplementation = void 0; -const core = __importStar(__webpack_require__(470)); -const tc = __importStar(__webpack_require__(139)); -const fs_1 = __importDefault(__webpack_require__(747)); -const path_1 = __importDefault(__webpack_require__(622)); -const semver_1 = __importDefault(__webpack_require__(876)); -const base_installer_1 = __webpack_require__(83); -const util_1 = __webpack_require__(322); -var AdoptImplementation; -(function (AdoptImplementation) { - AdoptImplementation["Hotspot"] = "Hotspot"; - AdoptImplementation["OpenJ9"] = "OpenJ9"; -})(AdoptImplementation = exports.AdoptImplementation || (exports.AdoptImplementation = {})); -class AdoptDistribution extends base_installer_1.JavaBase { - constructor(installerOptions, jvmImpl) { - super(`Adopt-${jvmImpl}`, installerOptions); - this.jvmImpl = jvmImpl; - } - findPackageForDownload(version) { - return __awaiter(this, void 0, void 0, function* () { - const availableVersionsRaw = yield this.getAvailableVersions(); - const availableVersionsWithBinaries = availableVersionsRaw - .filter(item => item.binaries.length > 0) - .map(item => { - return { - version: item.version_data.semver, - url: item.binaries[0].package.link - }; - }); - const satisfiedVersions = availableVersionsWithBinaries - .filter(item => util_1.isVersionSatisfies(version, item.version)) - .sort((a, b) => { - return -semver_1.default.compareBuild(a.version, b.version); - }); - const resolvedFullVersion = satisfiedVersions.length > 0 ? satisfiedVersions[0] : null; - if (!resolvedFullVersion) { - const availableOptions = availableVersionsWithBinaries.map(item => item.version).join(', '); - const availableOptionsMessage = availableOptions - ? `\nAvailable versions: ${availableOptions}` - : ''; - throw new Error(`Could not find satisfied version for SemVer '${version}'. ${availableOptionsMessage}`); - } - return resolvedFullVersion; - }); - } - downloadTool(javaRelease) { - return __awaiter(this, void 0, void 0, function* () { - let javaPath; - let extractedJavaPath; - core.info(`Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...`); - const javaArchivePath = yield tc.downloadTool(javaRelease.url); - core.info(`Extracting Java archive...`); - let extension = util_1.getDownloadArchiveExtension(); - extractedJavaPath = yield util_1.extractJdkFile(javaArchivePath, extension); - const archiveName = fs_1.default.readdirSync(extractedJavaPath)[0]; - const archivePath = path_1.default.join(extractedJavaPath, archiveName); - const version = this.getToolcacheVersionName(javaRelease.version); - javaPath = yield tc.cacheDir(archivePath, this.toolcacheFolderName, version, this.architecture); - return { version: javaRelease.version, path: javaPath }; - }); - } - get toolcacheFolderName() { - if (this.jvmImpl === AdoptImplementation.Hotspot) { - // exclude Hotspot postfix from distribution name because Hosted runners have pre-cached Adopt OpenJDK under "Java_Adopt_jdk" - // for more information see: https://github.com/actions/setup-java/pull/155#discussion_r610451063 - return `Java_Adopt_${this.packageType}`; - } - return super.toolcacheFolderName; - } - getAvailableVersions() { - return __awaiter(this, void 0, void 0, function* () { - const platform = this.getPlatformOption(); - const arch = this.architecture; - const imageType = this.packageType; - const versionRange = encodeURI('[1.0,100.0]'); // retrieve all available versions - const releaseType = this.stable ? 'ga' : 'ea'; - console.time('adopt-retrieve-available-versions'); - const baseRequestArguments = [ - `project=jdk`, - 'vendor=adoptopenjdk', - `heap_size=normal`, - 'sort_method=DEFAULT', - 'sort_order=DESC', - `os=${platform}`, - `architecture=${arch}`, - `image_type=${imageType}`, - `release_type=${releaseType}`, - `jvm_impl=${this.jvmImpl.toLowerCase()}` - ].join('&'); - // need to iterate through all pages to retrieve the list of all versions - // Adopt API doesn't provide way to retrieve the count of pages to iterate so infinity loop - let page_index = 0; - const availableVersions = []; - while (true) { - const requestArguments = `${baseRequestArguments}&page_size=20&page=${page_index}`; - const availableVersionsUrl = `https://api.adoptopenjdk.net/v3/assets/version/${versionRange}?${requestArguments}`; - if (core.isDebug() && page_index === 0) { - // url is identical except page_index so print it once for debug - core.debug(`Gathering available versions from '${availableVersionsUrl}'`); - } - const paginationPage = (yield this.http.getJson(availableVersionsUrl)).result; - if (paginationPage === null || paginationPage.length === 0) { - // break infinity loop because we have reached end of pagination - break; - } - availableVersions.push(...paginationPage); - page_index++; - } - if (core.isDebug()) { - core.startGroup('Print information about available versions'); - console.timeEnd('adopt-retrieve-available-versions'); - console.log(`Available versions: [${availableVersions.length}]`); - console.log(availableVersions.map(item => item.version_data.semver).join(', ')); - core.endGroup(); - } - return availableVersions; - }); - } - getPlatformOption() { - // Adopt has own platform names so need to map them - switch (process.platform) { - case 'darwin': - return 'mac'; - case 'win32': - return 'windows'; - default: - return process.platform; - } - } -} -exports.AdoptDistribution = AdoptDistribution; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AdoptDistribution = exports.AdoptImplementation = void 0; +const core = __importStar(__webpack_require__(470)); +const tc = __importStar(__webpack_require__(139)); +const fs_1 = __importDefault(__webpack_require__(747)); +const path_1 = __importDefault(__webpack_require__(622)); +const semver_1 = __importDefault(__webpack_require__(876)); +const base_installer_1 = __webpack_require__(83); +const util_1 = __webpack_require__(322); +var AdoptImplementation; +(function (AdoptImplementation) { + AdoptImplementation["Hotspot"] = "Hotspot"; + AdoptImplementation["OpenJ9"] = "OpenJ9"; +})(AdoptImplementation = exports.AdoptImplementation || (exports.AdoptImplementation = {})); +class AdoptDistribution extends base_installer_1.JavaBase { + constructor(installerOptions, jvmImpl) { + super(`Adopt-${jvmImpl}`, installerOptions); + this.jvmImpl = jvmImpl; + } + findPackageForDownload(version) { + return __awaiter(this, void 0, void 0, function* () { + const availableVersionsRaw = yield this.getAvailableVersions(); + const availableVersionsWithBinaries = availableVersionsRaw + .filter(item => item.binaries.length > 0) + .map(item => { + return { + version: item.version_data.semver, + url: item.binaries[0].package.link + }; + }); + const satisfiedVersions = availableVersionsWithBinaries + .filter(item => util_1.isVersionSatisfies(version, item.version)) + .sort((a, b) => { + return -semver_1.default.compareBuild(a.version, b.version); + }); + const resolvedFullVersion = satisfiedVersions.length > 0 ? satisfiedVersions[0] : null; + if (!resolvedFullVersion) { + const availableOptions = availableVersionsWithBinaries.map(item => item.version).join(', '); + const availableOptionsMessage = availableOptions + ? `\nAvailable versions: ${availableOptions}` + : ''; + throw new Error(`Could not find satisfied version for SemVer '${version}'. ${availableOptionsMessage}`); + } + return resolvedFullVersion; + }); + } + downloadTool(javaRelease) { + return __awaiter(this, void 0, void 0, function* () { + let javaPath; + let extractedJavaPath; + core.info(`Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...`); + const javaArchivePath = yield tc.downloadTool(javaRelease.url); + core.info(`Extracting Java archive...`); + let extension = util_1.getDownloadArchiveExtension(); + extractedJavaPath = yield util_1.extractJdkFile(javaArchivePath, extension); + const archiveName = fs_1.default.readdirSync(extractedJavaPath)[0]; + const archivePath = path_1.default.join(extractedJavaPath, archiveName); + const version = this.getToolcacheVersionName(javaRelease.version); + javaPath = yield tc.cacheDir(archivePath, this.toolcacheFolderName, version, this.architecture); + return { version: javaRelease.version, path: javaPath }; + }); + } + get toolcacheFolderName() { + if (this.jvmImpl === AdoptImplementation.Hotspot) { + // exclude Hotspot postfix from distribution name because Hosted runners have pre-cached Adopt OpenJDK under "Java_Adopt_jdk" + // for more information see: https://github.com/actions/setup-java/pull/155#discussion_r610451063 + return `Java_Adopt_${this.packageType}`; + } + return super.toolcacheFolderName; + } + getAvailableVersions() { + return __awaiter(this, void 0, void 0, function* () { + const platform = this.getPlatformOption(); + const arch = this.architecture; + const imageType = this.packageType; + const versionRange = encodeURI('[1.0,100.0]'); // retrieve all available versions + const releaseType = this.stable ? 'ga' : 'ea'; + console.time('adopt-retrieve-available-versions'); + const baseRequestArguments = [ + `project=jdk`, + 'vendor=adoptopenjdk', + `heap_size=normal`, + 'sort_method=DEFAULT', + 'sort_order=DESC', + `os=${platform}`, + `architecture=${arch}`, + `image_type=${imageType}`, + `release_type=${releaseType}`, + `jvm_impl=${this.jvmImpl.toLowerCase()}` + ].join('&'); + // need to iterate through all pages to retrieve the list of all versions + // Adopt API doesn't provide way to retrieve the count of pages to iterate so infinity loop + let page_index = 0; + const availableVersions = []; + while (true) { + const requestArguments = `${baseRequestArguments}&page_size=20&page=${page_index}`; + const availableVersionsUrl = `https://api.adoptopenjdk.net/v3/assets/version/${versionRange}?${requestArguments}`; + if (core.isDebug() && page_index === 0) { + // url is identical except page_index so print it once for debug + core.debug(`Gathering available versions from '${availableVersionsUrl}'`); + } + const paginationPage = (yield this.http.getJson(availableVersionsUrl)).result; + if (paginationPage === null || paginationPage.length === 0) { + // break infinity loop because we have reached end of pagination + break; + } + availableVersions.push(...paginationPage); + page_index++; + } + if (core.isDebug()) { + core.startGroup('Print information about available versions'); + console.timeEnd('adopt-retrieve-available-versions'); + console.log(`Available versions: [${availableVersions.length}]`); + console.log(availableVersions.map(item => item.version_data.semver).join(', ')); + core.endGroup(); + } + return availableVersions; + }); + } + getPlatformOption() { + // Adopt has own platform names so need to map them + switch (process.platform) { + case 'darwin': + return 'mac'; + case 'win32': + return 'windows'; + default: + return process.platform; + } + } +} +exports.AdoptDistribution = AdoptDistribution; /***/ }), @@ -46549,77 +46324,210 @@ exports.EventTargetImpl = EventTargetImpl; /***/ }), /* 598 */, -/* 599 */ -/***/ (function(__unusedmodule, exports) { +/* 599 */, +/* 600 */ +/***/ (function(module, __unusedexports, __webpack_require__) { "use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.BaggageImpl = void 0; -var BaggageImpl = /** @class */ (function () { - function BaggageImpl(entries) { - this._entries = entries ? new Map(entries) : new Map(); - } - BaggageImpl.prototype.getEntry = function (key) { - var entry = this._entries.get(key); - if (!entry) { - return undefined; - } - return Object.assign({}, entry); - }; - BaggageImpl.prototype.getAllEntries = function () { - return Array.from(this._entries.entries()).map(function (_a) { - var k = _a[0], v = _a[1]; - return [k, v]; - }); - }; - BaggageImpl.prototype.setEntry = function (key, entry) { - var newBaggage = new BaggageImpl(this._entries); - newBaggage._entries.set(key, entry); - return newBaggage; - }; - BaggageImpl.prototype.removeEntry = function (key) { - var newBaggage = new BaggageImpl(this._entries); - newBaggage._entries.delete(key); - return newBaggage; - }; - BaggageImpl.prototype.removeEntries = function () { - var keys = []; - for (var _i = 0; _i < arguments.length; _i++) { - keys[_i] = arguments[_i]; - } - var newBaggage = new BaggageImpl(this._entries); - for (var _a = 0, keys_1 = keys; _a < keys_1.length; _a++) { - var key = keys_1[_a]; - newBaggage._entries.delete(key); - } - return newBaggage; - }; - BaggageImpl.prototype.clear = function () { - return new BaggageImpl(); - }; - return BaggageImpl; -}()); -exports.BaggageImpl = BaggageImpl; -//# sourceMappingURL=baggage.js.map + +const conversions = __webpack_require__(149); +const utils = __webpack_require__(649); +const Impl = __webpack_require__(256); + +const impl = utils.implSymbol; + +function URL(url) { + if (!this || this[impl] || !(this instanceof URL)) { + throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function."); + } + if (arguments.length < 1) { + throw new TypeError("Failed to construct 'URL': 1 argument required, but only " + arguments.length + " present."); + } + const args = []; + for (let i = 0; i < arguments.length && i < 2; ++i) { + args[i] = arguments[i]; + } + args[0] = conversions["USVString"](args[0]); + if (args[1] !== undefined) { + args[1] = conversions["USVString"](args[1]); + } + + module.exports.setup(this, args); +} + +URL.prototype.toJSON = function toJSON() { + if (!this || !module.exports.is(this)) { + throw new TypeError("Illegal invocation"); + } + const args = []; + for (let i = 0; i < arguments.length && i < 0; ++i) { + args[i] = arguments[i]; + } + return this[impl].toJSON.apply(this[impl], args); +}; +Object.defineProperty(URL.prototype, "href", { + get() { + return this[impl].href; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].href = V; + }, + enumerable: true, + configurable: true +}); + +URL.prototype.toString = function () { + if (!this || !module.exports.is(this)) { + throw new TypeError("Illegal invocation"); + } + return this.href; +}; + +Object.defineProperty(URL.prototype, "origin", { + get() { + return this[impl].origin; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "protocol", { + get() { + return this[impl].protocol; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].protocol = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "username", { + get() { + return this[impl].username; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].username = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "password", { + get() { + return this[impl].password; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].password = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "host", { + get() { + return this[impl].host; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].host = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "hostname", { + get() { + return this[impl].hostname; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].hostname = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "port", { + get() { + return this[impl].port; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].port = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "pathname", { + get() { + return this[impl].pathname; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].pathname = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "search", { + get() { + return this[impl].search; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].search = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "hash", { + get() { + return this[impl].hash; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].hash = V; + }, + enumerable: true, + configurable: true +}); + + +module.exports = { + is(obj) { + return !!obj && obj[impl] instanceof Impl.implementation; + }, + create(constructorArgs, privateData) { + let obj = Object.create(URL.prototype); + this.setup(obj, constructorArgs, privateData); + return obj; + }, + setup(obj, constructorArgs, privateData) { + if (!privateData) privateData = {}; + privateData.wrapper = obj; + + obj[impl] = new Impl.implementation(constructorArgs, privateData); + obj[impl][utils.wrapperSymbol] = obj; + }, + interface: URL, + expose: { + Window: { URL: URL }, + Worker: { URL: URL } + } +}; + + /***/ }), -/* 600 */, /* 601 */ /***/ (function(__unusedmodule, exports, __webpack_require__) { @@ -48330,7 +48238,7 @@ exports.NodeListImpl = NodeListImpl; * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); -exports.NOOP_TEXT_MAP_PROPAGATOR = exports.NoopTextMapPropagator = void 0; +exports.NoopTextMapPropagator = void 0; /** * No-op implementations of {@link TextMapPropagator}. */ @@ -48349,7 +48257,6 @@ var NoopTextMapPropagator = /** @class */ (function () { return NoopTextMapPropagator; }()); exports.NoopTextMapPropagator = NoopTextMapPropagator; -exports.NOOP_TEXT_MAP_PROPAGATOR = new NoopTextMapPropagator(); //# sourceMappingURL=NoopTextMapPropagator.js.map /***/ }), @@ -48659,7 +48566,7 @@ var __createBinding; ar[i] = from[i]; } } - return to.concat(ar || from); + return to.concat(ar || Array.prototype.slice.call(from)); }; __await = function (v) { @@ -50736,50 +50643,30 @@ exports.dom = DOMImpl.instance; /***/ }), /* 649 */ -/***/ (function(__unusedmodule, exports) { +/***/ (function(module) { "use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.defaultTextMapSetter = exports.defaultTextMapGetter = void 0; -exports.defaultTextMapGetter = { - get: function (carrier, key) { - if (carrier == null) { - return undefined; - } - return carrier[key]; - }, - keys: function (carrier) { - if (carrier == null) { - return []; - } - return Object.keys(carrier); - }, + +module.exports.mixin = function mixin(target, source) { + const keys = Object.getOwnPropertyNames(source); + for (let i = 0; i < keys.length; ++i) { + Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i])); + } }; -exports.defaultTextMapSetter = { - set: function (carrier, key, value) { - if (carrier == null) { - return; - } - carrier[key] = value; - }, + +module.exports.wrapperSymbol = Symbol("wrapper"); +module.exports.implSymbol = Symbol("impl"); + +module.exports.wrapperForImpl = function (impl) { + return impl[module.exports.wrapperSymbol]; }; -//# sourceMappingURL=TextMapPropagator.js.map + +module.exports.implForWrapper = function (wrapper) { + return wrapper[module.exports.implSymbol]; +}; + + /***/ }), /* 650 */ @@ -52114,7 +52001,76 @@ exports.namespace_extractQName = namespace_extractQName; /***/ }), /* 665 */, -/* 666 */, +/* 666 */ +/***/ (function(__unusedmodule, exports) { + +"use strict"; + +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BaggageImpl = void 0; +var BaggageImpl = /** @class */ (function () { + function BaggageImpl(entries) { + this._entries = entries ? new Map(entries) : new Map(); + } + BaggageImpl.prototype.getEntry = function (key) { + var entry = this._entries.get(key); + if (!entry) { + return undefined; + } + return Object.assign({}, entry); + }; + BaggageImpl.prototype.getAllEntries = function () { + return Array.from(this._entries.entries()).map(function (_a) { + var k = _a[0], v = _a[1]; + return [k, v]; + }); + }; + BaggageImpl.prototype.setEntry = function (key, entry) { + var newBaggage = new BaggageImpl(this._entries); + newBaggage._entries.set(key, entry); + return newBaggage; + }; + BaggageImpl.prototype.removeEntry = function (key) { + var newBaggage = new BaggageImpl(this._entries); + newBaggage._entries.delete(key); + return newBaggage; + }; + BaggageImpl.prototype.removeEntries = function () { + var keys = []; + for (var _i = 0; _i < arguments.length; _i++) { + keys[_i] = arguments[_i]; + } + var newBaggage = new BaggageImpl(this._entries); + for (var _a = 0, keys_1 = keys; _a < keys_1.length; _a++) { + var key = keys_1[_a]; + newBaggage._entries.delete(key); + } + return newBaggage; + }; + BaggageImpl.prototype.clear = function () { + return new BaggageImpl(); + }; + return BaggageImpl; +}()); +exports.BaggageImpl = BaggageImpl; +//# sourceMappingURL=baggage-impl.js.map + +/***/ }), /* 667 */, /* 668 */, /* 669 */ @@ -52175,7 +52131,318 @@ var SpanKind; //# sourceMappingURL=span_kind.js.map /***/ }), -/* 671 */, +/* 671 */ +/***/ (function(module) { + +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +/* global global, define, System, Reflect, Promise */ +var __extends; +var __assign; +var __rest; +var __decorate; +var __param; +var __metadata; +var __awaiter; +var __generator; +var __exportStar; +var __values; +var __read; +var __spread; +var __spreadArrays; +var __spreadArray; +var __await; +var __asyncGenerator; +var __asyncDelegator; +var __asyncValues; +var __makeTemplateObject; +var __importStar; +var __importDefault; +var __classPrivateFieldGet; +var __classPrivateFieldSet; +var __createBinding; +(function (factory) { + var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; + if (typeof define === "function" && define.amd) { + define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); }); + } + else if ( true && typeof module.exports === "object") { + factory(createExporter(root, createExporter(module.exports))); + } + else { + factory(createExporter(root)); + } + function createExporter(exports, previous) { + if (exports !== root) { + if (typeof Object.create === "function") { + Object.defineProperty(exports, "__esModule", { value: true }); + } + else { + exports.__esModule = true; + } + } + return function (id, v) { return exports[id] = previous ? previous(id, v) : v; }; + } +}) +(function (exporter) { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + + __extends = function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + + __rest = function (s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; + }; + + __decorate = function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + + __param = function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } + }; + + __metadata = function (metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); + }; + + __awaiter = function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + + __generator = function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } + }; + + __exportStar = function(m, o) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); + }; + + __createBinding = Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + }) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + }); + + __values = function (o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function () { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + + __read = function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } + catch (error) { e = { error: error }; } + finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } + finally { if (e) throw e.error; } + } + return ar; + }; + + /** @deprecated */ + __spread = function () { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read(arguments[i])); + return ar; + }; + + /** @deprecated */ + __spreadArrays = function () { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; + }; + + __spreadArray = function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); + }; + + __await = function (v) { + return this instanceof __await ? (this.v = v, this) : new __await(v); + }; + + __asyncGenerator = function (thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; + function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } + function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } + function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } + function fulfill(value) { resume("next", value); } + function reject(value) { resume("throw", value); } + function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } + }; + + __asyncDelegator = function (o) { + var i, p; + return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; + function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } + }; + + __asyncValues = function (o) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); + function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } + function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } + }; + + __makeTemplateObject = function (cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; + }; + + var __setModuleDefault = Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + }) : function(o, v) { + o["default"] = v; + }; + + __importStar = function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; + }; + + __importDefault = function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + + __classPrivateFieldGet = function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); + }; + + __classPrivateFieldSet = function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; + }; + + exporter("__extends", __extends); + exporter("__assign", __assign); + exporter("__rest", __rest); + exporter("__decorate", __decorate); + exporter("__param", __param); + exporter("__metadata", __metadata); + exporter("__awaiter", __awaiter); + exporter("__generator", __generator); + exporter("__exportStar", __exportStar); + exporter("__createBinding", __createBinding); + exporter("__values", __values); + exporter("__read", __read); + exporter("__spread", __spread); + exporter("__spreadArrays", __spreadArrays); + exporter("__spreadArray", __spreadArray); + exporter("__await", __await); + exporter("__asyncGenerator", __asyncGenerator); + exporter("__asyncDelegator", __asyncDelegator); + exporter("__asyncValues", __asyncValues); + exporter("__makeTemplateObject", __makeTemplateObject); + exporter("__importStar", __importStar); + exporter("__importDefault", __importDefault); + exporter("__classPrivateFieldGet", __classPrivateFieldGet); + exporter("__classPrivateFieldSet", __classPrivateFieldSet); +}); + + +/***/ }), /* 672 */ /***/ (function(__unusedmodule, exports, __webpack_require__) { @@ -53557,7 +53824,7 @@ function restoreCache(paths, primaryKey, restoreKeys, options) { if (core.isDebug()) { yield tar_1.listTar(archivePath, compressionMethod); } - const archiveFileSize = utils.getArchiveFileSizeIsBytes(archivePath); + const archiveFileSize = utils.getArchiveFileSizeInBytes(archivePath); core.info(`Cache Size: ~${Math.round(archiveFileSize / (1024 * 1024))} MB (${archiveFileSize} B)`); yield tar_1.extractTar(archivePath, compressionMethod); core.info('Cache restored successfully'); @@ -53602,18 +53869,29 @@ function saveCache(paths, key, options) { const archiveFolder = yield utils.createTempDirectory(); const archivePath = path.join(archiveFolder, utils.getCacheFileName(compressionMethod)); core.debug(`Archive Path: ${archivePath}`); - yield tar_1.createTar(archiveFolder, cachePaths, compressionMethod); - if (core.isDebug()) { - yield tar_1.listTar(archivePath, compressionMethod); + try { + yield tar_1.createTar(archiveFolder, cachePaths, compressionMethod); + if (core.isDebug()) { + yield tar_1.listTar(archivePath, compressionMethod); + } + const fileSizeLimit = 10 * 1024 * 1024 * 1024; // 10GB per repo limit + const archiveFileSize = utils.getArchiveFileSizeInBytes(archivePath); + core.debug(`File Size: ${archiveFileSize}`); + if (archiveFileSize > fileSizeLimit) { + throw new Error(`Cache size of ~${Math.round(archiveFileSize / (1024 * 1024))} MB (${archiveFileSize} B) is over the 10GB limit, not saving cache.`); + } + core.debug(`Saving Cache (ID: ${cacheId})`); + yield cacheHttpClient.saveCache(cacheId, archivePath, options); } - const fileSizeLimit = 5 * 1024 * 1024 * 1024; // 5GB per repo limit - const archiveFileSize = utils.getArchiveFileSizeIsBytes(archivePath); - core.debug(`File Size: ${archiveFileSize}`); - if (archiveFileSize > fileSizeLimit) { - throw new Error(`Cache size of ~${Math.round(archiveFileSize / (1024 * 1024))} MB (${archiveFileSize} B) is over the 5GB limit, not saving cache.`); + finally { + // Try to delete the archive to save space + try { + yield utils.unlinkFile(archivePath); + } + catch (error) { + core.debug(`Failed to delete archive: ${error}`); + } } - core.debug(`Saving Cache (ID: ${cacheId})`); - yield cacheHttpClient.saveCache(cacheId, archivePath, options); return cacheId; }); } @@ -55552,18 +55830,7 @@ exports.abort_signalAbort = abort_signalAbort; //# sourceMappingURL=AbortAlgorithm.js.map /***/ }), -/* 711 */ -/***/ (function(__unusedmodule, exports, __webpack_require__) { - -"use strict"; - -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT license. -Object.defineProperty(exports, "__esModule", { value: true }); -__webpack_require__(71); - - -/***/ }), +/* 711 */, /* 712 */, /* 713 */, /* 714 */ @@ -55705,343 +55972,9 @@ module.exports = new Schema({ /***/ }), -/* 725 */ -/***/ (function(module) { - -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ -/* global global, define, System, Reflect, Promise */ -var __extends; -var __assign; -var __rest; -var __decorate; -var __param; -var __metadata; -var __awaiter; -var __generator; -var __exportStar; -var __values; -var __read; -var __spread; -var __spreadArrays; -var __spreadArray; -var __await; -var __asyncGenerator; -var __asyncDelegator; -var __asyncValues; -var __makeTemplateObject; -var __importStar; -var __importDefault; -var __classPrivateFieldGet; -var __classPrivateFieldSet; -var __createBinding; -(function (factory) { - var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; - if (typeof define === "function" && define.amd) { - define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); }); - } - else if ( true && typeof module.exports === "object") { - factory(createExporter(root, createExporter(module.exports))); - } - else { - factory(createExporter(root)); - } - function createExporter(exports, previous) { - if (exports !== root) { - if (typeof Object.create === "function") { - Object.defineProperty(exports, "__esModule", { value: true }); - } - else { - exports.__esModule = true; - } - } - return function (id, v) { return exports[id] = previous ? previous(id, v) : v; }; - } -}) -(function (exporter) { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - - __extends = function (d, b) { - if (typeof b !== "function" && b !== null) - throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - - __rest = function (s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) - t[p[i]] = s[p[i]]; - } - return t; - }; - - __decorate = function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; - }; - - __param = function (paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } - }; - - __metadata = function (metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); - }; - - __awaiter = function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - - __generator = function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } - }; - - __exportStar = function(m, o) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); - }; - - __createBinding = Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); - }) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; - }); - - __values = function (o) { - var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; - if (m) return m.call(o); - if (o && typeof o.length === "number") return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; - throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); - }; - - __read = function (o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; - }; - - /** @deprecated */ - __spread = function () { - for (var ar = [], i = 0; i < arguments.length; i++) - ar = ar.concat(__read(arguments[i])); - return ar; - }; - - /** @deprecated */ - __spreadArrays = function () { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; - }; - - __spreadArray = function (to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || from); - }; - - __await = function (v) { - return this instanceof __await ? (this.v = v, this) : new __await(v); - }; - - __asyncGenerator = function (thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; - function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } - function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } - function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } - function fulfill(value) { resume("next", value); } - function reject(value) { resume("throw", value); } - function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } - }; - - __asyncDelegator = function (o) { - var i, p; - return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; - function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } - }; - - __asyncValues = function (o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } - }; - - __makeTemplateObject = function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; - }; - - var __setModuleDefault = Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - }) : function(o, v) { - o["default"] = v; - }; - - __importStar = function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; - }; - - __importDefault = function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; - }; - - __classPrivateFieldGet = function (receiver, state, kind, f) { - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); - return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); - }; - - __classPrivateFieldSet = function (receiver, state, value, kind, f) { - if (kind === "m") throw new TypeError("Private method is not writable"); - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); - return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; - }; - - exporter("__extends", __extends); - exporter("__assign", __assign); - exporter("__rest", __rest); - exporter("__decorate", __decorate); - exporter("__param", __param); - exporter("__metadata", __metadata); - exporter("__awaiter", __awaiter); - exporter("__generator", __generator); - exporter("__exportStar", __exportStar); - exporter("__createBinding", __createBinding); - exporter("__values", __values); - exporter("__read", __read); - exporter("__spread", __spread); - exporter("__spreadArrays", __spreadArrays); - exporter("__spreadArray", __spreadArray); - exporter("__await", __await); - exporter("__asyncGenerator", __asyncGenerator); - exporter("__asyncDelegator", __asyncDelegator); - exporter("__asyncValues", __asyncValues); - exporter("__makeTemplateObject", __makeTemplateObject); - exporter("__importStar", __importStar); - exporter("__importDefault", __importDefault); - exporter("__classPrivateFieldGet", __classPrivateFieldGet); - exporter("__classPrivateFieldSet", __classPrivateFieldSet); -}); - - -/***/ }), +/* 725 */, /* 726 */, -/* 727 */ -/***/ (function(__unusedmodule, exports) { - -"use strict"; - -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=Event.js.map - -/***/ }), +/* 727 */, /* 728 */ /***/ (function(__unusedmodule, exports) { @@ -56063,44 +55996,44 @@ exports.SearchState = SearchState; /***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getJavaDistribution = void 0; -const installer_1 = __webpack_require__(757); -const installer_2 = __webpack_require__(834); -const installer_3 = __webpack_require__(584); -const installer_4 = __webpack_require__(439); -const installer_5 = __webpack_require__(507); -var JavaDistribution; -(function (JavaDistribution) { - JavaDistribution["Adopt"] = "adopt"; - JavaDistribution["AdoptHotspot"] = "adopt-hotspot"; - JavaDistribution["AdoptOpenJ9"] = "adopt-openj9"; - JavaDistribution["Temurin"] = "temurin"; - JavaDistribution["Zulu"] = "zulu"; - JavaDistribution["Liberica"] = "liberica"; - JavaDistribution["JdkFile"] = "jdkfile"; -})(JavaDistribution || (JavaDistribution = {})); -function getJavaDistribution(distributionName, installerOptions, jdkFile) { - switch (distributionName) { - case JavaDistribution.JdkFile: - return new installer_1.LocalDistribution(installerOptions, jdkFile); - case JavaDistribution.Adopt: - case JavaDistribution.AdoptHotspot: - return new installer_3.AdoptDistribution(installerOptions, installer_3.AdoptImplementation.Hotspot); - case JavaDistribution.AdoptOpenJ9: - return new installer_3.AdoptDistribution(installerOptions, installer_3.AdoptImplementation.OpenJ9); - case JavaDistribution.Temurin: - return new installer_4.TemurinDistribution(installerOptions, installer_4.TemurinImplementation.Hotspot); - case JavaDistribution.Zulu: - return new installer_2.ZuluDistribution(installerOptions); - case JavaDistribution.Liberica: - return new installer_5.LibericaDistributions(installerOptions); - default: - return null; - } -} -exports.getJavaDistribution = getJavaDistribution; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getJavaDistribution = void 0; +const installer_1 = __webpack_require__(144); +const installer_2 = __webpack_require__(834); +const installer_3 = __webpack_require__(584); +const installer_4 = __webpack_require__(439); +const installer_5 = __webpack_require__(507); +var JavaDistribution; +(function (JavaDistribution) { + JavaDistribution["Adopt"] = "adopt"; + JavaDistribution["AdoptHotspot"] = "adopt-hotspot"; + JavaDistribution["AdoptOpenJ9"] = "adopt-openj9"; + JavaDistribution["Temurin"] = "temurin"; + JavaDistribution["Zulu"] = "zulu"; + JavaDistribution["Liberica"] = "liberica"; + JavaDistribution["JdkFile"] = "jdkfile"; +})(JavaDistribution || (JavaDistribution = {})); +function getJavaDistribution(distributionName, installerOptions, jdkFile) { + switch (distributionName) { + case JavaDistribution.JdkFile: + return new installer_1.LocalDistribution(installerOptions, jdkFile); + case JavaDistribution.Adopt: + case JavaDistribution.AdoptHotspot: + return new installer_3.AdoptDistribution(installerOptions, installer_3.AdoptImplementation.Hotspot); + case JavaDistribution.AdoptOpenJ9: + return new installer_3.AdoptDistribution(installerOptions, installer_3.AdoptImplementation.OpenJ9); + case JavaDistribution.Temurin: + return new installer_4.TemurinDistribution(installerOptions, installer_4.TemurinImplementation.Hotspot); + case JavaDistribution.Zulu: + return new installer_2.ZuluDistribution(installerOptions); + case JavaDistribution.Liberica: + return new installer_5.LibericaDistributions(installerOptions); + default: + return null; + } +} +exports.getJavaDistribution = getJavaDistribution; /***/ }), @@ -56955,12 +56888,10 @@ module.exports = cmp * See the License for the specific language governing permissions and * limitations under the License. */ -var __spreadArrays = (this && this.__spreadArrays) || function () { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; +var __spreadArray = (this && this.__spreadArray) || function (to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.NoopContextManager = void 0; @@ -56976,9 +56907,9 @@ var NoopContextManager = /** @class */ (function () { for (var _i = 3; _i < arguments.length; _i++) { args[_i - 3] = arguments[_i]; } - return fn.call.apply(fn, __spreadArrays([thisArg], args)); + return fn.call.apply(fn, __spreadArray([thisArg], args)); }; - NoopContextManager.prototype.bind = function (target, _context) { + NoopContextManager.prototype.bind = function (_context, target) { return target; }; NoopContextManager.prototype.enable = function () { @@ -57028,108 +56959,7 @@ exports.NoopContextManager = NoopContextManager; /***/ }), /* 756 */, -/* 757 */ -/***/ (function(__unusedmodule, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.LocalDistribution = void 0; -const tc = __importStar(__webpack_require__(139)); -const core = __importStar(__webpack_require__(470)); -const fs_1 = __importDefault(__webpack_require__(747)); -const path_1 = __importDefault(__webpack_require__(622)); -const base_installer_1 = __webpack_require__(83); -const util_1 = __webpack_require__(322); -const constants_1 = __webpack_require__(211); -class LocalDistribution extends base_installer_1.JavaBase { - constructor(installerOptions, jdkFile) { - super('jdkfile', installerOptions); - this.jdkFile = jdkFile; - } - setupJava() { - return __awaiter(this, void 0, void 0, function* () { - let foundJava = this.findInToolcache(); - if (foundJava) { - core.info(`Resolved Java ${foundJava.version} from tool-cache`); - } - else { - core.info(`Java ${this.version} was not found in tool-cache. Trying to unpack JDK file...`); - if (!this.jdkFile) { - throw new Error("'jdkFile' is not specified"); - } - const jdkFilePath = path_1.default.resolve(this.jdkFile); - const stats = fs_1.default.statSync(jdkFilePath); - if (!stats.isFile()) { - throw new Error(`JDK file was not found in path '${jdkFilePath}'`); - } - core.info(`Extracting Java from '${jdkFilePath}'`); - const extractedJavaPath = yield util_1.extractJdkFile(jdkFilePath); - const archiveName = fs_1.default.readdirSync(extractedJavaPath)[0]; - const archivePath = path_1.default.join(extractedJavaPath, archiveName); - const javaVersion = this.version; - let javaPath = yield tc.cacheDir(archivePath, this.toolcacheFolderName, this.getToolcacheVersionName(javaVersion), this.architecture); - // for different Java distributions, postfix can exist or not so need to check both cases - if (process.platform === 'darwin' && - fs_1.default.existsSync(path_1.default.join(javaPath, constants_1.MACOS_JAVA_CONTENT_POSTFIX))) { - javaPath = path_1.default.join(javaPath, constants_1.MACOS_JAVA_CONTENT_POSTFIX); - } - foundJava = { - version: javaVersion, - path: javaPath - }; - } - core.info(`Setting Java ${foundJava.version} as default`); - this.setJavaDefault(foundJava.version, foundJava.path); - return foundJava; - }); - } - findPackageForDownload(version) { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('This method should not be implemented in local file provider'); - }); - } - downloadTool(javaRelease) { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('This method should not be implemented in local file provider'); - }); - } -} -exports.LocalDistribution = LocalDistribution; - - -/***/ }), +/* 757 */, /* 758 */, /* 759 */, /* 760 */ @@ -57545,77 +57375,7 @@ module.exports = function(dst, src) { /***/ }), -/* 767 */ -/***/ (function(__unusedmodule, exports, __webpack_require__) { - -"use strict"; - -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.NoopSpan = void 0; -var spancontext_utils_1 = __webpack_require__(453); -/** - * The NoopSpan is the default {@link Span} that is used when no Span - * implementation is available. All operations are no-op including context - * propagation. - */ -var NoopSpan = /** @class */ (function () { - function NoopSpan(_spanContext) { - if (_spanContext === void 0) { _spanContext = spancontext_utils_1.INVALID_SPAN_CONTEXT; } - this._spanContext = _spanContext; - } - // Returns a SpanContext. - NoopSpan.prototype.context = function () { - return this._spanContext; - }; - // By default does nothing - NoopSpan.prototype.setAttribute = function (_key, _value) { - return this; - }; - // By default does nothing - NoopSpan.prototype.setAttributes = function (_attributes) { - return this; - }; - // By default does nothing - NoopSpan.prototype.addEvent = function (_name, _attributes) { - return this; - }; - // By default does nothing - NoopSpan.prototype.setStatus = function (_status) { - return this; - }; - // By default does nothing - NoopSpan.prototype.updateName = function (_name) { - return this; - }; - // By default does nothing - NoopSpan.prototype.end = function (_endTime) { }; - // isRecording always returns false for noopSpan. - NoopSpan.prototype.isRecording = function () { - return false; - }; - // By default does nothing - NoopSpan.prototype.recordException = function (_exception, _time) { }; - return NoopSpan; -}()); -exports.NoopSpan = NoopSpan; -//# sourceMappingURL=NoopSpan.js.map - -/***/ }), +/* 767 */, /* 768 */ /***/ (function(module, __unusedexports, __webpack_require__) { @@ -59113,6 +58873,7 @@ var http = __webpack_require__(605); var https = __webpack_require__(34); var parseUrl = __webpack_require__(835).parse; var fs = __webpack_require__(747); +var Stream = __webpack_require__(794).Stream; var mime = __webpack_require__(779); var asynckit = __webpack_require__(334); var populate = __webpack_require__(766); @@ -59208,8 +58969,8 @@ FormData.prototype._trackLength = function(header, value, options) { Buffer.byteLength(header) + FormData.LINE_BREAK.length; - // empty or either doesn't have path or not an http response - if (!value || ( !value.path && !(value.readable && value.hasOwnProperty('httpVersion')) )) { + // empty or either doesn't have path or not an http response or not a stream + if (!value || ( !value.path && !(value.readable && value.hasOwnProperty('httpVersion')) && !(value instanceof Stream))) { return; } @@ -59564,13 +59325,15 @@ FormData.prototype.submit = function(params, cb) { // get content length and fire away this.getLength(function(err, length) { - if (err) { + if (err && err !== 'Unknown stream') { this._error(err); return; } // add content length - request.setHeader('Content-Length', length); + if (length) { + request.setHeader('Content-Length', length); + } this.pipe(request); if (cb) { @@ -59685,74 +59448,7 @@ FormData.prototype.toString = function () { /***/ }), -/* 792 */ -/***/ (function(__unusedmodule, exports, __webpack_require__) { - -"use strict"; - -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.baggageEntryMetadataFromString = exports.createBaggage = void 0; -var baggage_1 = __webpack_require__(599); -var symbol_1 = __webpack_require__(561); -__exportStar(__webpack_require__(938), exports); -__exportStar(__webpack_require__(510), exports); -/** - * Create a new Baggage with optional entries - * - * @param entries An array of baggage entries the new baggage should contain - */ -function createBaggage(entries) { - if (entries === void 0) { entries = {}; } - return new baggage_1.BaggageImpl(new Map(Object.entries(entries))); -} -exports.createBaggage = createBaggage; -/** - * Create a serializable BaggageEntryMetadata object from a string. - * - * @param str string metadata. Format is currently not defined by the spec and has no special meaning. - * - */ -function baggageEntryMetadataFromString(str) { - if (typeof str !== 'string') { - // @TODO log diagnostic - str = ''; - } - return { - __TYPE__: symbol_1.baggageEntryMetadataSymbol, - toString: function () { - return str; - }, - }; -} -exports.baggageEntryMetadataFromString = baggageEntryMetadataFromString; -//# sourceMappingURL=index.js.map - -/***/ }), +/* 792 */, /* 793 */, /* 794 */ /***/ (function(module) { @@ -60087,83 +59783,83 @@ module.exports = new Type('tag:yaml.org,2002:null', { /***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const core = __importStar(__webpack_require__(470)); -const auth = __importStar(__webpack_require__(331)); -const util_1 = __webpack_require__(322); -const constants = __importStar(__webpack_require__(211)); -const cache_1 = __webpack_require__(319); -const path = __importStar(__webpack_require__(622)); -const distribution_factory_1 = __webpack_require__(729); -function run() { - return __awaiter(this, void 0, void 0, function* () { - try { - const version = core.getInput(constants.INPUT_JAVA_VERSION, { required: true }); - const distributionName = core.getInput(constants.INPUT_DISTRIBUTION, { required: true }); - const architecture = core.getInput(constants.INPUT_ARCHITECTURE); - const packageType = core.getInput(constants.INPUT_JAVA_PACKAGE); - const jdkFile = core.getInput(constants.INPUT_JDK_FILE); - const cache = core.getInput(constants.INPUT_CACHE); - const checkLatest = util_1.getBooleanInput(constants.INPUT_CHECK_LATEST, false); - const installerOptions = { - architecture, - packageType, - version, - checkLatest - }; - const distribution = distribution_factory_1.getJavaDistribution(distributionName, installerOptions, jdkFile); - if (!distribution) { - throw new Error(`No supported distribution was found for input ${distributionName}`); - } - const result = yield distribution.setupJava(); - core.info(''); - core.info('Java configuration:'); - core.info(` Distribution: ${distributionName}`); - core.info(` Version: ${result.version}`); - core.info(` Path: ${result.path}`); - core.info(''); - const matchersPath = path.join(__dirname, '..', '..', '.github'); - core.info(`##[add-matcher]${path.join(matchersPath, 'java.json')}`); - yield auth.configureAuthentication(); - if (cache) { - yield cache_1.restore(cache); - } - } - catch (error) { - core.setFailed(error.message); - } - }); -} -run(); + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const core = __importStar(__webpack_require__(470)); +const auth = __importStar(__webpack_require__(331)); +const util_1 = __webpack_require__(322); +const constants = __importStar(__webpack_require__(211)); +const cache_1 = __webpack_require__(319); +const path = __importStar(__webpack_require__(622)); +const distribution_factory_1 = __webpack_require__(729); +function run() { + return __awaiter(this, void 0, void 0, function* () { + try { + const version = core.getInput(constants.INPUT_JAVA_VERSION, { required: true }); + const distributionName = core.getInput(constants.INPUT_DISTRIBUTION, { required: true }); + const architecture = core.getInput(constants.INPUT_ARCHITECTURE); + const packageType = core.getInput(constants.INPUT_JAVA_PACKAGE); + const jdkFile = core.getInput(constants.INPUT_JDK_FILE); + const cache = core.getInput(constants.INPUT_CACHE); + const checkLatest = util_1.getBooleanInput(constants.INPUT_CHECK_LATEST, false); + const installerOptions = { + architecture, + packageType, + version, + checkLatest + }; + const distribution = distribution_factory_1.getJavaDistribution(distributionName, installerOptions, jdkFile); + if (!distribution) { + throw new Error(`No supported distribution was found for input ${distributionName}`); + } + const result = yield distribution.setupJava(); + core.info(''); + core.info('Java configuration:'); + core.info(` Distribution: ${distributionName}`); + core.info(` Version: ${result.version}`); + core.info(` Path: ${result.path}`); + core.info(''); + const matchersPath = path.join(__dirname, '..', '..', '.github'); + core.info(`##[add-matcher]${path.join(matchersPath, 'java.json')}`); + yield auth.configureAuthentication(); + if (cache) { + yield cache_1.restore(cache); + } + } + catch (error) { + core.setFailed(error.message); + } + }); +} +run(); /***/ }), @@ -63148,7 +62844,7 @@ var __createBinding; ar[i] = from[i]; } } - return to.concat(ar || from); + return to.concat(ar || Array.prototype.slice.call(from)); }; __await = function (v) { @@ -63682,7 +63378,7 @@ var abortController = __webpack_require__(819); var os = __webpack_require__(87); var crypto = __webpack_require__(373); var stream = __webpack_require__(794); -__webpack_require__(711); +__webpack_require__(510); var coreLro = __webpack_require__(110); var events = __webpack_require__(614); var fs = __webpack_require__(747); @@ -63695,7 +63391,7 @@ var util = __webpack_require__(669); * Code generated by Microsoft (R) AutoRest Code Generator. * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -var BlobServiceProperties = { +const BlobServiceProperties = { serializedName: "BlobServiceProperties", xmlName: "StorageServiceProperties", type: { @@ -63767,7 +63463,7 @@ var BlobServiceProperties = { } } }; -var Logging = { +const Logging = { serializedName: "Logging", type: { name: "Composite", @@ -63816,7 +63512,7 @@ var Logging = { } } }; -var RetentionPolicy = { +const RetentionPolicy = { serializedName: "RetentionPolicy", type: { name: "Composite", @@ -63843,7 +63539,7 @@ var RetentionPolicy = { } } }; -var Metrics = { +const Metrics = { serializedName: "Metrics", type: { name: "Composite", @@ -63882,7 +63578,7 @@ var Metrics = { } } }; -var CorsRule = { +const CorsRule = { serializedName: "CorsRule", type: { name: "Composite", @@ -63934,7 +63630,7 @@ var CorsRule = { } } }; -var StaticWebsite = { +const StaticWebsite = { serializedName: "StaticWebsite", type: { name: "Composite", @@ -63972,7 +63668,7 @@ var StaticWebsite = { } } }; -var StorageError = { +const StorageError = { serializedName: "StorageError", type: { name: "Composite", @@ -63995,7 +63691,7 @@ var StorageError = { } } }; -var BlobServiceStatistics = { +const BlobServiceStatistics = { serializedName: "BlobServiceStatistics", xmlName: "StorageServiceStats", type: { @@ -64013,7 +63709,7 @@ var BlobServiceStatistics = { } } }; -var GeoReplication = { +const GeoReplication = { serializedName: "GeoReplication", type: { name: "Composite", @@ -64039,7 +63735,7 @@ var GeoReplication = { } } }; -var ListContainersSegmentResponse = { +const ListContainersSegmentResponse = { serializedName: "ListContainersSegmentResponse", xmlName: "EnumerationResults", type: { @@ -64102,7 +63798,7 @@ var ListContainersSegmentResponse = { } } }; -var ContainerItem = { +const ContainerItem = { serializedName: "ContainerItem", xmlName: "Container", type: { @@ -64150,7 +63846,7 @@ var ContainerItem = { } } }; -var ContainerProperties = { +const ContainerProperties = { serializedName: "ContainerProperties", type: { name: "Composite", @@ -64251,11 +63947,18 @@ var ContainerProperties = { type: { name: "Number" } + }, + isImmutableStorageWithVersioningEnabled: { + serializedName: "ImmutableStorageWithVersioningEnabled", + xmlName: "ImmutableStorageWithVersioningEnabled", + type: { + name: "Boolean" + } } } } }; -var KeyInfo = { +const KeyInfo = { serializedName: "KeyInfo", type: { name: "Composite", @@ -64280,7 +63983,7 @@ var KeyInfo = { } } }; -var UserDelegationKey = { +const UserDelegationKey = { serializedName: "UserDelegationKey", type: { name: "Composite", @@ -64345,7 +64048,7 @@ var UserDelegationKey = { } } }; -var FilterBlobSegment = { +const FilterBlobSegment = { serializedName: "FilterBlobSegment", xmlName: "EnumerationResults", type: { @@ -64395,7 +64098,7 @@ var FilterBlobSegment = { } } }; -var FilterBlobItem = { +const FilterBlobItem = { serializedName: "FilterBlobItem", xmlName: "Blob", type: { @@ -64429,7 +64132,7 @@ var FilterBlobItem = { } } }; -var BlobTags = { +const BlobTags = { serializedName: "BlobTags", xmlName: "Tags", type: { @@ -64455,7 +64158,7 @@ var BlobTags = { } } }; -var BlobTag = { +const BlobTag = { serializedName: "BlobTag", xmlName: "Tag", type: { @@ -64481,7 +64184,7 @@ var BlobTag = { } } }; -var SignedIdentifier = { +const SignedIdentifier = { serializedName: "SignedIdentifier", xmlName: "SignedIdentifier", type: { @@ -64507,7 +64210,7 @@ var SignedIdentifier = { } } }; -var AccessPolicy = { +const AccessPolicy = { serializedName: "AccessPolicy", type: { name: "Composite", @@ -64537,7 +64240,7 @@ var AccessPolicy = { } } }; -var ListBlobsFlatSegmentResponse = { +const ListBlobsFlatSegmentResponse = { serializedName: "ListBlobsFlatSegmentResponse", xmlName: "EnumerationResults", type: { @@ -64601,7 +64304,7 @@ var ListBlobsFlatSegmentResponse = { } } }; -var BlobFlatListSegment = { +const BlobFlatListSegment = { serializedName: "BlobFlatListSegment", xmlName: "Blobs", type: { @@ -64626,7 +64329,7 @@ var BlobFlatListSegment = { } } }; -var BlobItemInternal = { +const BlobItemInternal = { serializedName: "BlobItemInternal", xmlName: "Blob", type: { @@ -64702,11 +64405,18 @@ var BlobItemInternal = { name: "Dictionary", value: { type: { name: "String" } } } + }, + hasVersionsOnly: { + serializedName: "HasVersionsOnly", + xmlName: "HasVersionsOnly", + type: { + name: "Boolean" + } } } } }; -var BlobPropertiesInternal = { +const BlobPropertiesInternal = { serializedName: "BlobPropertiesInternal", xmlName: "Properties", type: { @@ -65005,11 +64715,33 @@ var BlobPropertiesInternal = { type: { name: "DateTimeRfc1123" } + }, + immutabilityPolicyExpiresOn: { + serializedName: "ImmutabilityPolicyUntilDate", + xmlName: "ImmutabilityPolicyUntilDate", + type: { + name: "DateTimeRfc1123" + } + }, + immutabilityPolicyMode: { + serializedName: "ImmutabilityPolicyMode", + xmlName: "ImmutabilityPolicyMode", + type: { + name: "Enum", + allowedValues: ["Mutable", "Unlocked", "Locked"] + } + }, + legalHold: { + serializedName: "LegalHold", + xmlName: "LegalHold", + type: { + name: "Boolean" + } } } } }; -var ListBlobsHierarchySegmentResponse = { +const ListBlobsHierarchySegmentResponse = { serializedName: "ListBlobsHierarchySegmentResponse", xmlName: "EnumerationResults", type: { @@ -65080,7 +64812,7 @@ var ListBlobsHierarchySegmentResponse = { } } }; -var BlobHierarchyListSegment = { +const BlobHierarchyListSegment = { serializedName: "BlobHierarchyListSegment", xmlName: "Blobs", type: { @@ -65119,7 +64851,7 @@ var BlobHierarchyListSegment = { } } }; -var BlobPrefix = { +const BlobPrefix = { serializedName: "BlobPrefix", type: { name: "Composite", @@ -65136,47 +64868,7 @@ var BlobPrefix = { } } }; -var DataLakeStorageError = { - serializedName: "DataLakeStorageError", - type: { - name: "Composite", - className: "DataLakeStorageError", - modelProperties: { - dataLakeStorageErrorDetails: { - serializedName: "error", - xmlName: "error", - type: { - name: "Composite", - className: "DataLakeStorageErrorError" - } - } - } - } -}; -var DataLakeStorageErrorError = { - serializedName: "DataLakeStorageErrorError", - type: { - name: "Composite", - className: "DataLakeStorageErrorError", - modelProperties: { - code: { - serializedName: "Code", - xmlName: "Code", - type: { - name: "String" - } - }, - message: { - serializedName: "Message", - xmlName: "Message", - type: { - name: "String" - } - } - } - } -}; -var BlockLookupList = { +const BlockLookupList = { serializedName: "BlockLookupList", xmlName: "BlockList", type: { @@ -65225,7 +64917,7 @@ var BlockLookupList = { } } }; -var BlockList = { +const BlockList = { serializedName: "BlockList", type: { name: "Composite", @@ -65264,7 +64956,7 @@ var BlockList = { } } }; -var Block = { +const Block = { serializedName: "Block", type: { name: "Composite", @@ -65289,7 +64981,7 @@ var Block = { } } }; -var PageList = { +const PageList = { serializedName: "PageList", type: { name: "Composite", @@ -65326,7 +65018,7 @@ var PageList = { } } }; -var PageRange = { +const PageRange = { serializedName: "PageRange", xmlName: "PageRange", type: { @@ -65352,7 +65044,7 @@ var PageRange = { } } }; -var ClearRange = { +const ClearRange = { serializedName: "ClearRange", xmlName: "ClearRange", type: { @@ -65378,7 +65070,7 @@ var ClearRange = { } } }; -var QueryRequest = { +const QueryRequest = { serializedName: "QueryRequest", xmlName: "QueryRequest", type: { @@ -65420,7 +65112,7 @@ var QueryRequest = { } } }; -var QuerySerialization = { +const QuerySerialization = { serializedName: "QuerySerialization", type: { name: "Composite", @@ -65437,7 +65129,7 @@ var QuerySerialization = { } } }; -var QueryFormat = { +const QueryFormat = { serializedName: "QueryFormat", type: { name: "Composite", @@ -65445,10 +65137,11 @@ var QueryFormat = { modelProperties: { type: { serializedName: "Type", + required: true, xmlName: "Type", type: { name: "Enum", - allowedValues: ["delimited", "json", "arrow"] + allowedValues: ["delimited", "json", "arrow", "parquet"] } }, delimitedTextConfiguration: { @@ -65474,11 +65167,18 @@ var QueryFormat = { name: "Composite", className: "ArrowConfiguration" } + }, + parquetTextConfiguration: { + serializedName: "ParquetTextConfiguration", + xmlName: "ParquetTextConfiguration", + type: { + name: "any" + } } } } }; -var DelimitedTextConfiguration = { +const DelimitedTextConfiguration = { serializedName: "DelimitedTextConfiguration", xmlName: "DelimitedTextConfiguration", type: { @@ -65487,7 +65187,6 @@ var DelimitedTextConfiguration = { modelProperties: { columnSeparator: { serializedName: "ColumnSeparator", - required: true, xmlName: "ColumnSeparator", type: { name: "String" @@ -65495,7 +65194,6 @@ var DelimitedTextConfiguration = { }, fieldQuote: { serializedName: "FieldQuote", - required: true, xmlName: "FieldQuote", type: { name: "String" @@ -65503,7 +65201,6 @@ var DelimitedTextConfiguration = { }, recordSeparator: { serializedName: "RecordSeparator", - required: true, xmlName: "RecordSeparator", type: { name: "String" @@ -65511,7 +65208,6 @@ var DelimitedTextConfiguration = { }, escapeChar: { serializedName: "EscapeChar", - required: true, xmlName: "EscapeChar", type: { name: "String" @@ -65519,7 +65215,6 @@ var DelimitedTextConfiguration = { }, headersPresent: { serializedName: "HeadersPresent", - required: true, xmlName: "HasHeaders", type: { name: "Boolean" @@ -65528,7 +65223,7 @@ var DelimitedTextConfiguration = { } } }; -var JsonTextConfiguration = { +const JsonTextConfiguration = { serializedName: "JsonTextConfiguration", xmlName: "JsonTextConfiguration", type: { @@ -65537,7 +65232,6 @@ var JsonTextConfiguration = { modelProperties: { recordSeparator: { serializedName: "RecordSeparator", - required: true, xmlName: "RecordSeparator", type: { name: "String" @@ -65546,7 +65240,7 @@ var JsonTextConfiguration = { } } }; -var ArrowConfiguration = { +const ArrowConfiguration = { serializedName: "ArrowConfiguration", xmlName: "ArrowConfiguration", type: { @@ -65572,7 +65266,7 @@ var ArrowConfiguration = { } } }; -var ArrowField = { +const ArrowField = { serializedName: "ArrowField", xmlName: "Field", type: { @@ -65611,7 +65305,7 @@ var ArrowField = { } } }; -var ServiceSetPropertiesHeaders = { +const ServiceSetPropertiesHeaders = { serializedName: "Service_setPropertiesHeaders", type: { name: "Composite", @@ -65648,7 +65342,7 @@ var ServiceSetPropertiesHeaders = { } } }; -var ServiceSetPropertiesExceptionHeaders = { +const ServiceSetPropertiesExceptionHeaders = { serializedName: "Service_setPropertiesExceptionHeaders", type: { name: "Composite", @@ -65664,7 +65358,7 @@ var ServiceSetPropertiesExceptionHeaders = { } } }; -var ServiceGetPropertiesHeaders = { +const ServiceGetPropertiesHeaders = { serializedName: "Service_getPropertiesHeaders", type: { name: "Composite", @@ -65701,7 +65395,7 @@ var ServiceGetPropertiesHeaders = { } } }; -var ServiceGetPropertiesExceptionHeaders = { +const ServiceGetPropertiesExceptionHeaders = { serializedName: "Service_getPropertiesExceptionHeaders", type: { name: "Composite", @@ -65717,7 +65411,7 @@ var ServiceGetPropertiesExceptionHeaders = { } } }; -var ServiceGetStatisticsHeaders = { +const ServiceGetStatisticsHeaders = { serializedName: "Service_getStatisticsHeaders", type: { name: "Composite", @@ -65761,7 +65455,7 @@ var ServiceGetStatisticsHeaders = { } } }; -var ServiceGetStatisticsExceptionHeaders = { +const ServiceGetStatisticsExceptionHeaders = { serializedName: "Service_getStatisticsExceptionHeaders", type: { name: "Composite", @@ -65777,7 +65471,7 @@ var ServiceGetStatisticsExceptionHeaders = { } } }; -var ServiceListContainersSegmentHeaders = { +const ServiceListContainersSegmentHeaders = { serializedName: "Service_listContainersSegmentHeaders", type: { name: "Composite", @@ -65814,7 +65508,7 @@ var ServiceListContainersSegmentHeaders = { } } }; -var ServiceListContainersSegmentExceptionHeaders = { +const ServiceListContainersSegmentExceptionHeaders = { serializedName: "Service_listContainersSegmentExceptionHeaders", type: { name: "Composite", @@ -65830,7 +65524,7 @@ var ServiceListContainersSegmentExceptionHeaders = { } } }; -var ServiceGetUserDelegationKeyHeaders = { +const ServiceGetUserDelegationKeyHeaders = { serializedName: "Service_getUserDelegationKeyHeaders", type: { name: "Composite", @@ -65874,7 +65568,7 @@ var ServiceGetUserDelegationKeyHeaders = { } } }; -var ServiceGetUserDelegationKeyExceptionHeaders = { +const ServiceGetUserDelegationKeyExceptionHeaders = { serializedName: "Service_getUserDelegationKeyExceptionHeaders", type: { name: "Composite", @@ -65890,7 +65584,7 @@ var ServiceGetUserDelegationKeyExceptionHeaders = { } } }; -var ServiceGetAccountInfoHeaders = { +const ServiceGetAccountInfoHeaders = { serializedName: "Service_getAccountInfoHeaders", type: { name: "Composite", @@ -65969,7 +65663,7 @@ var ServiceGetAccountInfoHeaders = { } } }; -var ServiceGetAccountInfoExceptionHeaders = { +const ServiceGetAccountInfoExceptionHeaders = { serializedName: "Service_getAccountInfoExceptionHeaders", type: { name: "Composite", @@ -65985,7 +65679,7 @@ var ServiceGetAccountInfoExceptionHeaders = { } } }; -var ServiceSubmitBatchHeaders = { +const ServiceSubmitBatchHeaders = { serializedName: "Service_submitBatchHeaders", type: { name: "Composite", @@ -66029,7 +65723,7 @@ var ServiceSubmitBatchHeaders = { } } }; -var ServiceSubmitBatchExceptionHeaders = { +const ServiceSubmitBatchExceptionHeaders = { serializedName: "Service_submitBatchExceptionHeaders", type: { name: "Composite", @@ -66045,7 +65739,7 @@ var ServiceSubmitBatchExceptionHeaders = { } } }; -var ServiceFilterBlobsHeaders = { +const ServiceFilterBlobsHeaders = { serializedName: "Service_filterBlobsHeaders", type: { name: "Composite", @@ -66089,7 +65783,7 @@ var ServiceFilterBlobsHeaders = { } } }; -var ServiceFilterBlobsExceptionHeaders = { +const ServiceFilterBlobsExceptionHeaders = { serializedName: "Service_filterBlobsExceptionHeaders", type: { name: "Composite", @@ -66105,7 +65799,7 @@ var ServiceFilterBlobsExceptionHeaders = { } } }; -var ContainerCreateHeaders = { +const ContainerCreateHeaders = { serializedName: "Container_createHeaders", type: { name: "Composite", @@ -66163,7 +65857,7 @@ var ContainerCreateHeaders = { } } }; -var ContainerCreateExceptionHeaders = { +const ContainerCreateExceptionHeaders = { serializedName: "Container_createExceptionHeaders", type: { name: "Composite", @@ -66179,7 +65873,7 @@ var ContainerCreateExceptionHeaders = { } } }; -var ContainerGetPropertiesHeaders = { +const ContainerGetPropertiesHeaders = { serializedName: "Container_getPropertiesHeaders", type: { name: "Composite", @@ -66302,6 +65996,13 @@ var ContainerGetPropertiesHeaders = { name: "Boolean" } }, + isImmutableStorageWithVersioningEnabled: { + serializedName: "x-ms-immutable-storage-with-versioning-enabled", + xmlName: "x-ms-immutable-storage-with-versioning-enabled", + type: { + name: "Boolean" + } + }, errorCode: { serializedName: "x-ms-error-code", xmlName: "x-ms-error-code", @@ -66312,7 +66013,7 @@ var ContainerGetPropertiesHeaders = { } } }; -var ContainerGetPropertiesExceptionHeaders = { +const ContainerGetPropertiesExceptionHeaders = { serializedName: "Container_getPropertiesExceptionHeaders", type: { name: "Composite", @@ -66328,7 +66029,7 @@ var ContainerGetPropertiesExceptionHeaders = { } } }; -var ContainerDeleteHeaders = { +const ContainerDeleteHeaders = { serializedName: "Container_deleteHeaders", type: { name: "Composite", @@ -66372,7 +66073,7 @@ var ContainerDeleteHeaders = { } } }; -var ContainerDeleteExceptionHeaders = { +const ContainerDeleteExceptionHeaders = { serializedName: "Container_deleteExceptionHeaders", type: { name: "Composite", @@ -66388,7 +66089,7 @@ var ContainerDeleteExceptionHeaders = { } } }; -var ContainerSetMetadataHeaders = { +const ContainerSetMetadataHeaders = { serializedName: "Container_setMetadataHeaders", type: { name: "Composite", @@ -66446,7 +66147,7 @@ var ContainerSetMetadataHeaders = { } } }; -var ContainerSetMetadataExceptionHeaders = { +const ContainerSetMetadataExceptionHeaders = { serializedName: "Container_setMetadataExceptionHeaders", type: { name: "Composite", @@ -66462,7 +66163,7 @@ var ContainerSetMetadataExceptionHeaders = { } } }; -var ContainerGetAccessPolicyHeaders = { +const ContainerGetAccessPolicyHeaders = { serializedName: "Container_getAccessPolicyHeaders", type: { name: "Composite", @@ -66528,7 +66229,7 @@ var ContainerGetAccessPolicyHeaders = { } } }; -var ContainerGetAccessPolicyExceptionHeaders = { +const ContainerGetAccessPolicyExceptionHeaders = { serializedName: "Container_getAccessPolicyExceptionHeaders", type: { name: "Composite", @@ -66544,7 +66245,7 @@ var ContainerGetAccessPolicyExceptionHeaders = { } } }; -var ContainerSetAccessPolicyHeaders = { +const ContainerSetAccessPolicyHeaders = { serializedName: "Container_setAccessPolicyHeaders", type: { name: "Composite", @@ -66602,7 +66303,7 @@ var ContainerSetAccessPolicyHeaders = { } } }; -var ContainerSetAccessPolicyExceptionHeaders = { +const ContainerSetAccessPolicyExceptionHeaders = { serializedName: "Container_setAccessPolicyExceptionHeaders", type: { name: "Composite", @@ -66618,7 +66319,7 @@ var ContainerSetAccessPolicyExceptionHeaders = { } } }; -var ContainerRestoreHeaders = { +const ContainerRestoreHeaders = { serializedName: "Container_restoreHeaders", type: { name: "Composite", @@ -66662,7 +66363,7 @@ var ContainerRestoreHeaders = { } } }; -var ContainerRestoreExceptionHeaders = { +const ContainerRestoreExceptionHeaders = { serializedName: "Container_restoreExceptionHeaders", type: { name: "Composite", @@ -66678,7 +66379,7 @@ var ContainerRestoreExceptionHeaders = { } } }; -var ContainerRenameHeaders = { +const ContainerRenameHeaders = { serializedName: "Container_renameHeaders", type: { name: "Composite", @@ -66722,7 +66423,7 @@ var ContainerRenameHeaders = { } } }; -var ContainerRenameExceptionHeaders = { +const ContainerRenameExceptionHeaders = { serializedName: "Container_renameExceptionHeaders", type: { name: "Composite", @@ -66738,7 +66439,7 @@ var ContainerRenameExceptionHeaders = { } } }; -var ContainerSubmitBatchHeaders = { +const ContainerSubmitBatchHeaders = { serializedName: "Container_submitBatchHeaders", type: { name: "Composite", @@ -66768,7 +66469,7 @@ var ContainerSubmitBatchHeaders = { } } }; -var ContainerSubmitBatchExceptionHeaders = { +const ContainerSubmitBatchExceptionHeaders = { serializedName: "Container_submitBatchExceptionHeaders", type: { name: "Composite", @@ -66784,7 +66485,7 @@ var ContainerSubmitBatchExceptionHeaders = { } } }; -var ContainerAcquireLeaseHeaders = { +const ContainerAcquireLeaseHeaders = { serializedName: "Container_acquireLeaseHeaders", type: { name: "Composite", @@ -66842,7 +66543,7 @@ var ContainerAcquireLeaseHeaders = { } } }; -var ContainerAcquireLeaseExceptionHeaders = { +const ContainerAcquireLeaseExceptionHeaders = { serializedName: "Container_acquireLeaseExceptionHeaders", type: { name: "Composite", @@ -66858,7 +66559,7 @@ var ContainerAcquireLeaseExceptionHeaders = { } } }; -var ContainerReleaseLeaseHeaders = { +const ContainerReleaseLeaseHeaders = { serializedName: "Container_releaseLeaseHeaders", type: { name: "Composite", @@ -66909,7 +66610,7 @@ var ContainerReleaseLeaseHeaders = { } } }; -var ContainerReleaseLeaseExceptionHeaders = { +const ContainerReleaseLeaseExceptionHeaders = { serializedName: "Container_releaseLeaseExceptionHeaders", type: { name: "Composite", @@ -66925,7 +66626,7 @@ var ContainerReleaseLeaseExceptionHeaders = { } } }; -var ContainerRenewLeaseHeaders = { +const ContainerRenewLeaseHeaders = { serializedName: "Container_renewLeaseHeaders", type: { name: "Composite", @@ -66983,7 +66684,7 @@ var ContainerRenewLeaseHeaders = { } } }; -var ContainerRenewLeaseExceptionHeaders = { +const ContainerRenewLeaseExceptionHeaders = { serializedName: "Container_renewLeaseExceptionHeaders", type: { name: "Composite", @@ -66999,7 +66700,7 @@ var ContainerRenewLeaseExceptionHeaders = { } } }; -var ContainerBreakLeaseHeaders = { +const ContainerBreakLeaseHeaders = { serializedName: "Container_breakLeaseHeaders", type: { name: "Composite", @@ -67057,7 +66758,7 @@ var ContainerBreakLeaseHeaders = { } } }; -var ContainerBreakLeaseExceptionHeaders = { +const ContainerBreakLeaseExceptionHeaders = { serializedName: "Container_breakLeaseExceptionHeaders", type: { name: "Composite", @@ -67073,7 +66774,7 @@ var ContainerBreakLeaseExceptionHeaders = { } } }; -var ContainerChangeLeaseHeaders = { +const ContainerChangeLeaseHeaders = { serializedName: "Container_changeLeaseHeaders", type: { name: "Composite", @@ -67131,7 +66832,7 @@ var ContainerChangeLeaseHeaders = { } } }; -var ContainerChangeLeaseExceptionHeaders = { +const ContainerChangeLeaseExceptionHeaders = { serializedName: "Container_changeLeaseExceptionHeaders", type: { name: "Composite", @@ -67147,7 +66848,7 @@ var ContainerChangeLeaseExceptionHeaders = { } } }; -var ContainerListBlobFlatSegmentHeaders = { +const ContainerListBlobFlatSegmentHeaders = { serializedName: "Container_listBlobFlatSegmentHeaders", type: { name: "Composite", @@ -67198,7 +66899,7 @@ var ContainerListBlobFlatSegmentHeaders = { } } }; -var ContainerListBlobFlatSegmentExceptionHeaders = { +const ContainerListBlobFlatSegmentExceptionHeaders = { serializedName: "Container_listBlobFlatSegmentExceptionHeaders", type: { name: "Composite", @@ -67214,7 +66915,7 @@ var ContainerListBlobFlatSegmentExceptionHeaders = { } } }; -var ContainerListBlobHierarchySegmentHeaders = { +const ContainerListBlobHierarchySegmentHeaders = { serializedName: "Container_listBlobHierarchySegmentHeaders", type: { name: "Composite", @@ -67265,7 +66966,7 @@ var ContainerListBlobHierarchySegmentHeaders = { } } }; -var ContainerListBlobHierarchySegmentExceptionHeaders = { +const ContainerListBlobHierarchySegmentExceptionHeaders = { serializedName: "Container_listBlobHierarchySegmentExceptionHeaders", type: { name: "Composite", @@ -67281,7 +66982,7 @@ var ContainerListBlobHierarchySegmentExceptionHeaders = { } } }; -var ContainerGetAccountInfoHeaders = { +const ContainerGetAccountInfoHeaders = { serializedName: "Container_getAccountInfoHeaders", type: { name: "Composite", @@ -67346,7 +67047,7 @@ var ContainerGetAccountInfoHeaders = { } } }; -var ContainerGetAccountInfoExceptionHeaders = { +const ContainerGetAccountInfoExceptionHeaders = { serializedName: "Container_getAccountInfoExceptionHeaders", type: { name: "Composite", @@ -67362,440 +67063,7 @@ var ContainerGetAccountInfoExceptionHeaders = { } } }; -var DirectoryCreateHeaders = { - serializedName: "Directory_createHeaders", - type: { - name: "Composite", - className: "DirectoryCreateHeaders", - modelProperties: { - etag: { - serializedName: "etag", - xmlName: "etag", - type: { - name: "String" - } - }, - lastModified: { - serializedName: "last-modified", - xmlName: "last-modified", - type: { - name: "DateTimeRfc1123" - } - }, - clientRequestId: { - serializedName: "x-ms-client-request-id", - xmlName: "x-ms-client-request-id", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - }, - contentLength: { - serializedName: "content-length", - xmlName: "content-length", - type: { - name: "Number" - } - }, - date: { - serializedName: "date", - xmlName: "date", - type: { - name: "DateTimeRfc1123" - } - } - } - } -}; -var DirectoryCreateExceptionHeaders = { - serializedName: "Directory_createExceptionHeaders", - type: { - name: "Composite", - className: "DirectoryCreateExceptionHeaders", - modelProperties: { - clientRequestId: { - serializedName: "x-ms-client-request-id", - xmlName: "x-ms-client-request-id", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - } - } - } -}; -var DirectoryRenameHeaders = { - serializedName: "Directory_renameHeaders", - type: { - name: "Composite", - className: "DirectoryRenameHeaders", - modelProperties: { - marker: { - serializedName: "x-ms-continuation", - xmlName: "x-ms-continuation", - type: { - name: "String" - } - }, - etag: { - serializedName: "etag", - xmlName: "etag", - type: { - name: "String" - } - }, - lastModified: { - serializedName: "last-modified", - xmlName: "last-modified", - type: { - name: "DateTimeRfc1123" - } - }, - clientRequestId: { - serializedName: "x-ms-client-request-id", - xmlName: "x-ms-client-request-id", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - }, - contentLength: { - serializedName: "content-length", - xmlName: "content-length", - type: { - name: "Number" - } - }, - date: { - serializedName: "date", - xmlName: "date", - type: { - name: "DateTimeRfc1123" - } - } - } - } -}; -var DirectoryRenameExceptionHeaders = { - serializedName: "Directory_renameExceptionHeaders", - type: { - name: "Composite", - className: "DirectoryRenameExceptionHeaders", - modelProperties: { - clientRequestId: { - serializedName: "x-ms-client-request-id", - xmlName: "x-ms-client-request-id", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - } - } - } -}; -var DirectoryDeleteHeaders = { - serializedName: "Directory_deleteHeaders", - type: { - name: "Composite", - className: "DirectoryDeleteHeaders", - modelProperties: { - marker: { - serializedName: "x-ms-continuation", - xmlName: "x-ms-continuation", - type: { - name: "String" - } - }, - clientRequestId: { - serializedName: "x-ms-client-request-id", - xmlName: "x-ms-client-request-id", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - }, - date: { - serializedName: "date", - xmlName: "date", - type: { - name: "DateTimeRfc1123" - } - } - } - } -}; -var DirectoryDeleteExceptionHeaders = { - serializedName: "Directory_deleteExceptionHeaders", - type: { - name: "Composite", - className: "DirectoryDeleteExceptionHeaders", - modelProperties: { - clientRequestId: { - serializedName: "x-ms-client-request-id", - xmlName: "x-ms-client-request-id", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - } - } - } -}; -var DirectorySetAccessControlHeaders = { - serializedName: "Directory_setAccessControlHeaders", - type: { - name: "Composite", - className: "DirectorySetAccessControlHeaders", - modelProperties: { - date: { - serializedName: "date", - xmlName: "date", - type: { - name: "DateTimeRfc1123" - } - }, - etag: { - serializedName: "etag", - xmlName: "etag", - type: { - name: "String" - } - }, - lastModified: { - serializedName: "last-modified", - xmlName: "last-modified", - type: { - name: "DateTimeRfc1123" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - } - } - } -}; -var DirectorySetAccessControlExceptionHeaders = { - serializedName: "Directory_setAccessControlExceptionHeaders", - type: { - name: "Composite", - className: "DirectorySetAccessControlExceptionHeaders", - modelProperties: { - clientRequestId: { - serializedName: "x-ms-client-request-id", - xmlName: "x-ms-client-request-id", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - } - } - } -}; -var DirectoryGetAccessControlHeaders = { - serializedName: "Directory_getAccessControlHeaders", - type: { - name: "Composite", - className: "DirectoryGetAccessControlHeaders", - modelProperties: { - date: { - serializedName: "date", - xmlName: "date", - type: { - name: "DateTimeRfc1123" - } - }, - etag: { - serializedName: "etag", - xmlName: "etag", - type: { - name: "String" - } - }, - lastModified: { - serializedName: "last-modified", - xmlName: "last-modified", - type: { - name: "DateTimeRfc1123" - } - }, - xMsOwner: { - serializedName: "x-ms-owner", - xmlName: "x-ms-owner", - type: { - name: "String" - } - }, - xMsGroup: { - serializedName: "x-ms-group", - xmlName: "x-ms-group", - type: { - name: "String" - } - }, - xMsPermissions: { - serializedName: "x-ms-permissions", - xmlName: "x-ms-permissions", - type: { - name: "String" - } - }, - xMsAcl: { - serializedName: "x-ms-acl", - xmlName: "x-ms-acl", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - } - } - } -}; -var DirectoryGetAccessControlExceptionHeaders = { - serializedName: "Directory_getAccessControlExceptionHeaders", - type: { - name: "Composite", - className: "DirectoryGetAccessControlExceptionHeaders", - modelProperties: { - clientRequestId: { - serializedName: "x-ms-client-request-id", - xmlName: "x-ms-client-request-id", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - } - } - } -}; -var BlobDownloadHeaders = { +const BlobDownloadHeaders = { serializedName: "Blob_downloadHeaders", type: { name: "Composite", @@ -68089,11 +67357,26 @@ var BlobDownloadHeaders = { name: "DateTimeRfc1123" } }, - contentCrc64: { - serializedName: "x-ms-content-crc64", - xmlName: "x-ms-content-crc64", + immutabilityPolicyExpiresOn: { + serializedName: "x-ms-immutability-policy-until-date", + xmlName: "x-ms-immutability-policy-until-date", type: { - name: "ByteArray" + name: "DateTimeRfc1123" + } + }, + immutabilityPolicyMode: { + serializedName: "x-ms-immutability-policy-mode", + xmlName: "x-ms-immutability-policy-mode", + type: { + name: "Enum", + allowedValues: ["Mutable", "Unlocked", "Locked"] + } + }, + legalHold: { + serializedName: "x-ms-legal-hold", + xmlName: "x-ms-legal-hold", + type: { + name: "Boolean" } }, errorCode: { @@ -68102,11 +67385,18 @@ var BlobDownloadHeaders = { type: { name: "String" } + }, + contentCrc64: { + serializedName: "x-ms-content-crc64", + xmlName: "x-ms-content-crc64", + type: { + name: "ByteArray" + } } } } }; -var BlobDownloadExceptionHeaders = { +const BlobDownloadExceptionHeaders = { serializedName: "Blob_downloadExceptionHeaders", type: { name: "Composite", @@ -68122,7 +67412,7 @@ var BlobDownloadExceptionHeaders = { } } }; -var BlobGetPropertiesHeaders = { +const BlobGetPropertiesHeaders = { serializedName: "Blob_getPropertiesHeaders", type: { name: "Composite", @@ -68466,6 +67756,28 @@ var BlobGetPropertiesHeaders = { name: "DateTimeRfc1123" } }, + immutabilityPolicyExpiresOn: { + serializedName: "x-ms-immutability-policy-until-date", + xmlName: "x-ms-immutability-policy-until-date", + type: { + name: "DateTimeRfc1123" + } + }, + immutabilityPolicyMode: { + serializedName: "x-ms-immutability-policy-mode", + xmlName: "x-ms-immutability-policy-mode", + type: { + name: "Enum", + allowedValues: ["Mutable", "Unlocked", "Locked"] + } + }, + legalHold: { + serializedName: "x-ms-legal-hold", + xmlName: "x-ms-legal-hold", + type: { + name: "Boolean" + } + }, errorCode: { serializedName: "x-ms-error-code", xmlName: "x-ms-error-code", @@ -68476,7 +67788,7 @@ var BlobGetPropertiesHeaders = { } } }; -var BlobGetPropertiesExceptionHeaders = { +const BlobGetPropertiesExceptionHeaders = { serializedName: "Blob_getPropertiesExceptionHeaders", type: { name: "Composite", @@ -68492,7 +67804,7 @@ var BlobGetPropertiesExceptionHeaders = { } } }; -var BlobDeleteHeaders = { +const BlobDeleteHeaders = { serializedName: "Blob_deleteHeaders", type: { name: "Composite", @@ -68536,7 +67848,7 @@ var BlobDeleteHeaders = { } } }; -var BlobDeleteExceptionHeaders = { +const BlobDeleteExceptionHeaders = { serializedName: "Blob_deleteExceptionHeaders", type: { name: "Composite", @@ -68552,271 +67864,7 @@ var BlobDeleteExceptionHeaders = { } } }; -var BlobSetAccessControlHeaders = { - serializedName: "Blob_setAccessControlHeaders", - type: { - name: "Composite", - className: "BlobSetAccessControlHeaders", - modelProperties: { - date: { - serializedName: "date", - xmlName: "date", - type: { - name: "DateTimeRfc1123" - } - }, - etag: { - serializedName: "etag", - xmlName: "etag", - type: { - name: "String" - } - }, - lastModified: { - serializedName: "last-modified", - xmlName: "last-modified", - type: { - name: "DateTimeRfc1123" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - } - } - } -}; -var BlobSetAccessControlExceptionHeaders = { - serializedName: "Blob_setAccessControlExceptionHeaders", - type: { - name: "Composite", - className: "BlobSetAccessControlExceptionHeaders", - modelProperties: { - clientRequestId: { - serializedName: "x-ms-client-request-id", - xmlName: "x-ms-client-request-id", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - } - } - } -}; -var BlobGetAccessControlHeaders = { - serializedName: "Blob_getAccessControlHeaders", - type: { - name: "Composite", - className: "BlobGetAccessControlHeaders", - modelProperties: { - date: { - serializedName: "date", - xmlName: "date", - type: { - name: "DateTimeRfc1123" - } - }, - etag: { - serializedName: "etag", - xmlName: "etag", - type: { - name: "String" - } - }, - lastModified: { - serializedName: "last-modified", - xmlName: "last-modified", - type: { - name: "DateTimeRfc1123" - } - }, - xMsOwner: { - serializedName: "x-ms-owner", - xmlName: "x-ms-owner", - type: { - name: "String" - } - }, - xMsGroup: { - serializedName: "x-ms-group", - xmlName: "x-ms-group", - type: { - name: "String" - } - }, - xMsPermissions: { - serializedName: "x-ms-permissions", - xmlName: "x-ms-permissions", - type: { - name: "String" - } - }, - xMsAcl: { - serializedName: "x-ms-acl", - xmlName: "x-ms-acl", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - } - } - } -}; -var BlobGetAccessControlExceptionHeaders = { - serializedName: "Blob_getAccessControlExceptionHeaders", - type: { - name: "Composite", - className: "BlobGetAccessControlExceptionHeaders", - modelProperties: { - clientRequestId: { - serializedName: "x-ms-client-request-id", - xmlName: "x-ms-client-request-id", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - } - } - } -}; -var BlobRenameHeaders = { - serializedName: "Blob_renameHeaders", - type: { - name: "Composite", - className: "BlobRenameHeaders", - modelProperties: { - etag: { - serializedName: "etag", - xmlName: "etag", - type: { - name: "String" - } - }, - lastModified: { - serializedName: "last-modified", - xmlName: "last-modified", - type: { - name: "DateTimeRfc1123" - } - }, - clientRequestId: { - serializedName: "x-ms-client-request-id", - xmlName: "x-ms-client-request-id", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - }, - contentLength: { - serializedName: "content-length", - xmlName: "content-length", - type: { - name: "Number" - } - }, - date: { - serializedName: "date", - xmlName: "date", - type: { - name: "DateTimeRfc1123" - } - } - } - } -}; -var BlobRenameExceptionHeaders = { - serializedName: "Blob_renameExceptionHeaders", - type: { - name: "Composite", - className: "BlobRenameExceptionHeaders", - modelProperties: { - clientRequestId: { - serializedName: "x-ms-client-request-id", - xmlName: "x-ms-client-request-id", - type: { - name: "String" - } - }, - requestId: { - serializedName: "x-ms-request-id", - xmlName: "x-ms-request-id", - type: { - name: "String" - } - }, - version: { - serializedName: "x-ms-version", - xmlName: "x-ms-version", - type: { - name: "String" - } - } - } - } -}; -var BlobUndeleteHeaders = { +const BlobUndeleteHeaders = { serializedName: "Blob_undeleteHeaders", type: { name: "Composite", @@ -68860,7 +67908,7 @@ var BlobUndeleteHeaders = { } } }; -var BlobUndeleteExceptionHeaders = { +const BlobUndeleteExceptionHeaders = { serializedName: "Blob_undeleteExceptionHeaders", type: { name: "Composite", @@ -68876,7 +67924,7 @@ var BlobUndeleteExceptionHeaders = { } } }; -var BlobSetExpiryHeaders = { +const BlobSetExpiryHeaders = { serializedName: "Blob_setExpiryHeaders", type: { name: "Composite", @@ -68927,7 +67975,7 @@ var BlobSetExpiryHeaders = { } } }; -var BlobSetExpiryExceptionHeaders = { +const BlobSetExpiryExceptionHeaders = { serializedName: "Blob_setExpiryExceptionHeaders", type: { name: "Composite", @@ -68943,7 +67991,7 @@ var BlobSetExpiryExceptionHeaders = { } } }; -var BlobSetHttpHeadersHeaders = { +const BlobSetHttpHeadersHeaders = { serializedName: "Blob_setHttpHeadersHeaders", type: { name: "Composite", @@ -69008,7 +68056,7 @@ var BlobSetHttpHeadersHeaders = { } } }; -var BlobSetHttpHeadersExceptionHeaders = { +const BlobSetHttpHeadersExceptionHeaders = { serializedName: "Blob_setHttpHeadersExceptionHeaders", type: { name: "Composite", @@ -69024,7 +68072,188 @@ var BlobSetHttpHeadersExceptionHeaders = { } } }; -var BlobSetMetadataHeaders = { +const BlobSetImmutabilityPolicyHeaders = { + serializedName: "Blob_setImmutabilityPolicyHeaders", + type: { + name: "Composite", + className: "BlobSetImmutabilityPolicyHeaders", + modelProperties: { + clientRequestId: { + serializedName: "x-ms-client-request-id", + xmlName: "x-ms-client-request-id", + type: { + name: "String" + } + }, + requestId: { + serializedName: "x-ms-request-id", + xmlName: "x-ms-request-id", + type: { + name: "String" + } + }, + version: { + serializedName: "x-ms-version", + xmlName: "x-ms-version", + type: { + name: "String" + } + }, + date: { + serializedName: "date", + xmlName: "date", + type: { + name: "DateTimeRfc1123" + } + }, + immutabilityPolicyExpiry: { + serializedName: "x-ms-immutability-policy-until-date", + xmlName: "x-ms-immutability-policy-until-date", + type: { + name: "DateTimeRfc1123" + } + }, + immutabilityPolicyMode: { + serializedName: "x-ms-immutability-policy-mode", + xmlName: "x-ms-immutability-policy-mode", + type: { + name: "Enum", + allowedValues: ["Mutable", "Unlocked", "Locked"] + } + } + } + } +}; +const BlobSetImmutabilityPolicyExceptionHeaders = { + serializedName: "Blob_setImmutabilityPolicyExceptionHeaders", + type: { + name: "Composite", + className: "BlobSetImmutabilityPolicyExceptionHeaders", + modelProperties: { + errorCode: { + serializedName: "x-ms-error-code", + xmlName: "x-ms-error-code", + type: { + name: "String" + } + } + } + } +}; +const BlobDeleteImmutabilityPolicyHeaders = { + serializedName: "Blob_deleteImmutabilityPolicyHeaders", + type: { + name: "Composite", + className: "BlobDeleteImmutabilityPolicyHeaders", + modelProperties: { + clientRequestId: { + serializedName: "x-ms-client-request-id", + xmlName: "x-ms-client-request-id", + type: { + name: "String" + } + }, + requestId: { + serializedName: "x-ms-request-id", + xmlName: "x-ms-request-id", + type: { + name: "String" + } + }, + version: { + serializedName: "x-ms-version", + xmlName: "x-ms-version", + type: { + name: "String" + } + }, + date: { + serializedName: "date", + xmlName: "date", + type: { + name: "DateTimeRfc1123" + } + } + } + } +}; +const BlobDeleteImmutabilityPolicyExceptionHeaders = { + serializedName: "Blob_deleteImmutabilityPolicyExceptionHeaders", + type: { + name: "Composite", + className: "BlobDeleteImmutabilityPolicyExceptionHeaders", + modelProperties: { + errorCode: { + serializedName: "x-ms-error-code", + xmlName: "x-ms-error-code", + type: { + name: "String" + } + } + } + } +}; +const BlobSetLegalHoldHeaders = { + serializedName: "Blob_setLegalHoldHeaders", + type: { + name: "Composite", + className: "BlobSetLegalHoldHeaders", + modelProperties: { + clientRequestId: { + serializedName: "x-ms-client-request-id", + xmlName: "x-ms-client-request-id", + type: { + name: "String" + } + }, + requestId: { + serializedName: "x-ms-request-id", + xmlName: "x-ms-request-id", + type: { + name: "String" + } + }, + version: { + serializedName: "x-ms-version", + xmlName: "x-ms-version", + type: { + name: "String" + } + }, + date: { + serializedName: "date", + xmlName: "date", + type: { + name: "DateTimeRfc1123" + } + }, + legalHold: { + serializedName: "x-ms-legal-hold", + xmlName: "x-ms-legal-hold", + type: { + name: "Boolean" + } + } + } + } +}; +const BlobSetLegalHoldExceptionHeaders = { + serializedName: "Blob_setLegalHoldExceptionHeaders", + type: { + name: "Composite", + className: "BlobSetLegalHoldExceptionHeaders", + modelProperties: { + errorCode: { + serializedName: "x-ms-error-code", + xmlName: "x-ms-error-code", + type: { + name: "String" + } + } + } + } +}; +const BlobSetMetadataHeaders = { serializedName: "Blob_setMetadataHeaders", type: { name: "Composite", @@ -69110,7 +68339,7 @@ var BlobSetMetadataHeaders = { } } }; -var BlobSetMetadataExceptionHeaders = { +const BlobSetMetadataExceptionHeaders = { serializedName: "Blob_setMetadataExceptionHeaders", type: { name: "Composite", @@ -69126,7 +68355,7 @@ var BlobSetMetadataExceptionHeaders = { } } }; -var BlobAcquireLeaseHeaders = { +const BlobAcquireLeaseHeaders = { serializedName: "Blob_acquireLeaseHeaders", type: { name: "Composite", @@ -69184,7 +68413,7 @@ var BlobAcquireLeaseHeaders = { } } }; -var BlobAcquireLeaseExceptionHeaders = { +const BlobAcquireLeaseExceptionHeaders = { serializedName: "Blob_acquireLeaseExceptionHeaders", type: { name: "Composite", @@ -69200,7 +68429,7 @@ var BlobAcquireLeaseExceptionHeaders = { } } }; -var BlobReleaseLeaseHeaders = { +const BlobReleaseLeaseHeaders = { serializedName: "Blob_releaseLeaseHeaders", type: { name: "Composite", @@ -69251,7 +68480,7 @@ var BlobReleaseLeaseHeaders = { } } }; -var BlobReleaseLeaseExceptionHeaders = { +const BlobReleaseLeaseExceptionHeaders = { serializedName: "Blob_releaseLeaseExceptionHeaders", type: { name: "Composite", @@ -69267,7 +68496,7 @@ var BlobReleaseLeaseExceptionHeaders = { } } }; -var BlobRenewLeaseHeaders = { +const BlobRenewLeaseHeaders = { serializedName: "Blob_renewLeaseHeaders", type: { name: "Composite", @@ -69325,7 +68554,7 @@ var BlobRenewLeaseHeaders = { } } }; -var BlobRenewLeaseExceptionHeaders = { +const BlobRenewLeaseExceptionHeaders = { serializedName: "Blob_renewLeaseExceptionHeaders", type: { name: "Composite", @@ -69341,7 +68570,7 @@ var BlobRenewLeaseExceptionHeaders = { } } }; -var BlobChangeLeaseHeaders = { +const BlobChangeLeaseHeaders = { serializedName: "Blob_changeLeaseHeaders", type: { name: "Composite", @@ -69399,7 +68628,7 @@ var BlobChangeLeaseHeaders = { } } }; -var BlobChangeLeaseExceptionHeaders = { +const BlobChangeLeaseExceptionHeaders = { serializedName: "Blob_changeLeaseExceptionHeaders", type: { name: "Composite", @@ -69415,7 +68644,7 @@ var BlobChangeLeaseExceptionHeaders = { } } }; -var BlobBreakLeaseHeaders = { +const BlobBreakLeaseHeaders = { serializedName: "Blob_breakLeaseHeaders", type: { name: "Composite", @@ -69473,7 +68702,7 @@ var BlobBreakLeaseHeaders = { } } }; -var BlobBreakLeaseExceptionHeaders = { +const BlobBreakLeaseExceptionHeaders = { serializedName: "Blob_breakLeaseExceptionHeaders", type: { name: "Composite", @@ -69489,7 +68718,7 @@ var BlobBreakLeaseExceptionHeaders = { } } }; -var BlobCreateSnapshotHeaders = { +const BlobCreateSnapshotHeaders = { serializedName: "Blob_createSnapshotHeaders", type: { name: "Composite", @@ -69568,7 +68797,7 @@ var BlobCreateSnapshotHeaders = { } } }; -var BlobCreateSnapshotExceptionHeaders = { +const BlobCreateSnapshotExceptionHeaders = { serializedName: "Blob_createSnapshotExceptionHeaders", type: { name: "Composite", @@ -69584,7 +68813,7 @@ var BlobCreateSnapshotExceptionHeaders = { } } }; -var BlobStartCopyFromURLHeaders = { +const BlobStartCopyFromURLHeaders = { serializedName: "Blob_startCopyFromURLHeaders", type: { name: "Composite", @@ -69664,7 +68893,7 @@ var BlobStartCopyFromURLHeaders = { } } }; -var BlobStartCopyFromURLExceptionHeaders = { +const BlobStartCopyFromURLExceptionHeaders = { serializedName: "Blob_startCopyFromURLExceptionHeaders", type: { name: "Composite", @@ -69680,7 +68909,7 @@ var BlobStartCopyFromURLExceptionHeaders = { } } }; -var BlobCopyFromURLHeaders = { +const BlobCopyFromURLHeaders = { serializedName: "Blob_copyFromURLHeaders", type: { name: "Composite", @@ -69774,7 +69003,7 @@ var BlobCopyFromURLHeaders = { } } }; -var BlobCopyFromURLExceptionHeaders = { +const BlobCopyFromURLExceptionHeaders = { serializedName: "Blob_copyFromURLExceptionHeaders", type: { name: "Composite", @@ -69790,7 +69019,7 @@ var BlobCopyFromURLExceptionHeaders = { } } }; -var BlobAbortCopyFromURLHeaders = { +const BlobAbortCopyFromURLHeaders = { serializedName: "Blob_abortCopyFromURLHeaders", type: { name: "Composite", @@ -69834,7 +69063,7 @@ var BlobAbortCopyFromURLHeaders = { } } }; -var BlobAbortCopyFromURLExceptionHeaders = { +const BlobAbortCopyFromURLExceptionHeaders = { serializedName: "Blob_abortCopyFromURLExceptionHeaders", type: { name: "Composite", @@ -69850,7 +69079,7 @@ var BlobAbortCopyFromURLExceptionHeaders = { } } }; -var BlobSetTierHeaders = { +const BlobSetTierHeaders = { serializedName: "Blob_setTierHeaders", type: { name: "Composite", @@ -69887,7 +69116,7 @@ var BlobSetTierHeaders = { } } }; -var BlobSetTierExceptionHeaders = { +const BlobSetTierExceptionHeaders = { serializedName: "Blob_setTierExceptionHeaders", type: { name: "Composite", @@ -69903,7 +69132,7 @@ var BlobSetTierExceptionHeaders = { } } }; -var BlobGetAccountInfoHeaders = { +const BlobGetAccountInfoHeaders = { serializedName: "Blob_getAccountInfoHeaders", type: { name: "Composite", @@ -69968,7 +69197,7 @@ var BlobGetAccountInfoHeaders = { } } }; -var BlobGetAccountInfoExceptionHeaders = { +const BlobGetAccountInfoExceptionHeaders = { serializedName: "Blob_getAccountInfoExceptionHeaders", type: { name: "Composite", @@ -69984,7 +69213,7 @@ var BlobGetAccountInfoExceptionHeaders = { } } }; -var BlobQueryHeaders = { +const BlobQueryHeaders = { serializedName: "Blob_queryHeaders", type: { name: "Composite", @@ -70226,24 +69455,24 @@ var BlobQueryHeaders = { name: "ByteArray" } }, - contentCrc64: { - serializedName: "x-ms-content-crc64", - xmlName: "x-ms-content-crc64", - type: { - name: "ByteArray" - } - }, errorCode: { serializedName: "x-ms-error-code", xmlName: "x-ms-error-code", type: { name: "String" } + }, + contentCrc64: { + serializedName: "x-ms-content-crc64", + xmlName: "x-ms-content-crc64", + type: { + name: "ByteArray" + } } } } }; -var BlobQueryExceptionHeaders = { +const BlobQueryExceptionHeaders = { serializedName: "Blob_queryExceptionHeaders", type: { name: "Composite", @@ -70259,7 +69488,7 @@ var BlobQueryExceptionHeaders = { } } }; -var BlobGetTagsHeaders = { +const BlobGetTagsHeaders = { serializedName: "Blob_getTagsHeaders", type: { name: "Composite", @@ -70303,7 +69532,7 @@ var BlobGetTagsHeaders = { } } }; -var BlobGetTagsExceptionHeaders = { +const BlobGetTagsExceptionHeaders = { serializedName: "Blob_getTagsExceptionHeaders", type: { name: "Composite", @@ -70319,7 +69548,7 @@ var BlobGetTagsExceptionHeaders = { } } }; -var BlobSetTagsHeaders = { +const BlobSetTagsHeaders = { serializedName: "Blob_setTagsHeaders", type: { name: "Composite", @@ -70363,7 +69592,7 @@ var BlobSetTagsHeaders = { } } }; -var BlobSetTagsExceptionHeaders = { +const BlobSetTagsExceptionHeaders = { serializedName: "Blob_setTagsExceptionHeaders", type: { name: "Composite", @@ -70379,7 +69608,7 @@ var BlobSetTagsExceptionHeaders = { } } }; -var PageBlobCreateHeaders = { +const PageBlobCreateHeaders = { serializedName: "PageBlob_createHeaders", type: { name: "Composite", @@ -70472,7 +69701,7 @@ var PageBlobCreateHeaders = { } } }; -var PageBlobCreateExceptionHeaders = { +const PageBlobCreateExceptionHeaders = { serializedName: "PageBlob_createExceptionHeaders", type: { name: "Composite", @@ -70488,7 +69717,7 @@ var PageBlobCreateExceptionHeaders = { } } }; -var PageBlobUploadPagesHeaders = { +const PageBlobUploadPagesHeaders = { serializedName: "PageBlob_uploadPagesHeaders", type: { name: "Composite", @@ -70588,7 +69817,7 @@ var PageBlobUploadPagesHeaders = { } } }; -var PageBlobUploadPagesExceptionHeaders = { +const PageBlobUploadPagesExceptionHeaders = { serializedName: "PageBlob_uploadPagesExceptionHeaders", type: { name: "Composite", @@ -70604,7 +69833,7 @@ var PageBlobUploadPagesExceptionHeaders = { } } }; -var PageBlobClearPagesHeaders = { +const PageBlobClearPagesHeaders = { serializedName: "PageBlob_clearPagesHeaders", type: { name: "Composite", @@ -70683,7 +69912,7 @@ var PageBlobClearPagesHeaders = { } } }; -var PageBlobClearPagesExceptionHeaders = { +const PageBlobClearPagesExceptionHeaders = { serializedName: "PageBlob_clearPagesExceptionHeaders", type: { name: "Composite", @@ -70699,7 +69928,7 @@ var PageBlobClearPagesExceptionHeaders = { } } }; -var PageBlobUploadPagesFromURLHeaders = { +const PageBlobUploadPagesFromURLHeaders = { serializedName: "PageBlob_uploadPagesFromURLHeaders", type: { name: "Composite", @@ -70792,7 +70021,7 @@ var PageBlobUploadPagesFromURLHeaders = { } } }; -var PageBlobUploadPagesFromURLExceptionHeaders = { +const PageBlobUploadPagesFromURLExceptionHeaders = { serializedName: "PageBlob_uploadPagesFromURLExceptionHeaders", type: { name: "Composite", @@ -70808,7 +70037,7 @@ var PageBlobUploadPagesFromURLExceptionHeaders = { } } }; -var PageBlobGetPageRangesHeaders = { +const PageBlobGetPageRangesHeaders = { serializedName: "PageBlob_getPageRangesHeaders", type: { name: "Composite", @@ -70873,7 +70102,7 @@ var PageBlobGetPageRangesHeaders = { } } }; -var PageBlobGetPageRangesExceptionHeaders = { +const PageBlobGetPageRangesExceptionHeaders = { serializedName: "PageBlob_getPageRangesExceptionHeaders", type: { name: "Composite", @@ -70889,7 +70118,7 @@ var PageBlobGetPageRangesExceptionHeaders = { } } }; -var PageBlobGetPageRangesDiffHeaders = { +const PageBlobGetPageRangesDiffHeaders = { serializedName: "PageBlob_getPageRangesDiffHeaders", type: { name: "Composite", @@ -70954,7 +70183,7 @@ var PageBlobGetPageRangesDiffHeaders = { } } }; -var PageBlobGetPageRangesDiffExceptionHeaders = { +const PageBlobGetPageRangesDiffExceptionHeaders = { serializedName: "PageBlob_getPageRangesDiffExceptionHeaders", type: { name: "Composite", @@ -70970,7 +70199,7 @@ var PageBlobGetPageRangesDiffExceptionHeaders = { } } }; -var PageBlobResizeHeaders = { +const PageBlobResizeHeaders = { serializedName: "PageBlob_resizeHeaders", type: { name: "Composite", @@ -71035,7 +70264,7 @@ var PageBlobResizeHeaders = { } } }; -var PageBlobResizeExceptionHeaders = { +const PageBlobResizeExceptionHeaders = { serializedName: "PageBlob_resizeExceptionHeaders", type: { name: "Composite", @@ -71051,7 +70280,7 @@ var PageBlobResizeExceptionHeaders = { } } }; -var PageBlobUpdateSequenceNumberHeaders = { +const PageBlobUpdateSequenceNumberHeaders = { serializedName: "PageBlob_updateSequenceNumberHeaders", type: { name: "Composite", @@ -71116,7 +70345,7 @@ var PageBlobUpdateSequenceNumberHeaders = { } } }; -var PageBlobUpdateSequenceNumberExceptionHeaders = { +const PageBlobUpdateSequenceNumberExceptionHeaders = { serializedName: "PageBlob_updateSequenceNumberExceptionHeaders", type: { name: "Composite", @@ -71132,7 +70361,7 @@ var PageBlobUpdateSequenceNumberExceptionHeaders = { } } }; -var PageBlobCopyIncrementalHeaders = { +const PageBlobCopyIncrementalHeaders = { serializedName: "PageBlob_copyIncrementalHeaders", type: { name: "Composite", @@ -71205,7 +70434,7 @@ var PageBlobCopyIncrementalHeaders = { } } }; -var PageBlobCopyIncrementalExceptionHeaders = { +const PageBlobCopyIncrementalExceptionHeaders = { serializedName: "PageBlob_copyIncrementalExceptionHeaders", type: { name: "Composite", @@ -71221,7 +70450,7 @@ var PageBlobCopyIncrementalExceptionHeaders = { } } }; -var AppendBlobCreateHeaders = { +const AppendBlobCreateHeaders = { serializedName: "AppendBlob_createHeaders", type: { name: "Composite", @@ -71314,7 +70543,7 @@ var AppendBlobCreateHeaders = { } } }; -var AppendBlobCreateExceptionHeaders = { +const AppendBlobCreateExceptionHeaders = { serializedName: "AppendBlob_createExceptionHeaders", type: { name: "Composite", @@ -71330,7 +70559,7 @@ var AppendBlobCreateExceptionHeaders = { } } }; -var AppendBlobAppendBlockHeaders = { +const AppendBlobAppendBlockHeaders = { serializedName: "AppendBlob_appendBlockHeaders", type: { name: "Composite", @@ -71437,7 +70666,7 @@ var AppendBlobAppendBlockHeaders = { } } }; -var AppendBlobAppendBlockExceptionHeaders = { +const AppendBlobAppendBlockExceptionHeaders = { serializedName: "AppendBlob_appendBlockExceptionHeaders", type: { name: "Composite", @@ -71453,7 +70682,7 @@ var AppendBlobAppendBlockExceptionHeaders = { } } }; -var AppendBlobAppendBlockFromUrlHeaders = { +const AppendBlobAppendBlockFromUrlHeaders = { serializedName: "AppendBlob_appendBlockFromUrlHeaders", type: { name: "Composite", @@ -71553,7 +70782,7 @@ var AppendBlobAppendBlockFromUrlHeaders = { } } }; -var AppendBlobAppendBlockFromUrlExceptionHeaders = { +const AppendBlobAppendBlockFromUrlExceptionHeaders = { serializedName: "AppendBlob_appendBlockFromUrlExceptionHeaders", type: { name: "Composite", @@ -71569,7 +70798,7 @@ var AppendBlobAppendBlockFromUrlExceptionHeaders = { } } }; -var AppendBlobSealHeaders = { +const AppendBlobSealHeaders = { serializedName: "AppendBlob_sealHeaders", type: { name: "Composite", @@ -71627,7 +70856,7 @@ var AppendBlobSealHeaders = { } } }; -var AppendBlobSealExceptionHeaders = { +const AppendBlobSealExceptionHeaders = { serializedName: "AppendBlob_sealExceptionHeaders", type: { name: "Composite", @@ -71643,7 +70872,7 @@ var AppendBlobSealExceptionHeaders = { } } }; -var BlockBlobUploadHeaders = { +const BlockBlobUploadHeaders = { serializedName: "BlockBlob_uploadHeaders", type: { name: "Composite", @@ -71736,7 +70965,7 @@ var BlockBlobUploadHeaders = { } } }; -var BlockBlobUploadExceptionHeaders = { +const BlockBlobUploadExceptionHeaders = { serializedName: "BlockBlob_uploadExceptionHeaders", type: { name: "Composite", @@ -71752,7 +70981,7 @@ var BlockBlobUploadExceptionHeaders = { } } }; -var BlockBlobPutBlobFromUrlHeaders = { +const BlockBlobPutBlobFromUrlHeaders = { serializedName: "BlockBlob_putBlobFromUrlHeaders", type: { name: "Composite", @@ -71845,7 +71074,7 @@ var BlockBlobPutBlobFromUrlHeaders = { } } }; -var BlockBlobPutBlobFromUrlExceptionHeaders = { +const BlockBlobPutBlobFromUrlExceptionHeaders = { serializedName: "BlockBlob_putBlobFromUrlExceptionHeaders", type: { name: "Composite", @@ -71861,7 +71090,7 @@ var BlockBlobPutBlobFromUrlExceptionHeaders = { } } }; -var BlockBlobStageBlockHeaders = { +const BlockBlobStageBlockHeaders = { serializedName: "BlockBlob_stageBlockHeaders", type: { name: "Composite", @@ -71940,7 +71169,7 @@ var BlockBlobStageBlockHeaders = { } } }; -var BlockBlobStageBlockExceptionHeaders = { +const BlockBlobStageBlockExceptionHeaders = { serializedName: "BlockBlob_stageBlockExceptionHeaders", type: { name: "Composite", @@ -71956,7 +71185,7 @@ var BlockBlobStageBlockExceptionHeaders = { } } }; -var BlockBlobStageBlockFromURLHeaders = { +const BlockBlobStageBlockFromURLHeaders = { serializedName: "BlockBlob_stageBlockFromURLHeaders", type: { name: "Composite", @@ -72035,7 +71264,7 @@ var BlockBlobStageBlockFromURLHeaders = { } } }; -var BlockBlobStageBlockFromURLExceptionHeaders = { +const BlockBlobStageBlockFromURLExceptionHeaders = { serializedName: "BlockBlob_stageBlockFromURLExceptionHeaders", type: { name: "Composite", @@ -72051,7 +71280,7 @@ var BlockBlobStageBlockFromURLExceptionHeaders = { } } }; -var BlockBlobCommitBlockListHeaders = { +const BlockBlobCommitBlockListHeaders = { serializedName: "BlockBlob_commitBlockListHeaders", type: { name: "Composite", @@ -72151,7 +71380,7 @@ var BlockBlobCommitBlockListHeaders = { } } }; -var BlockBlobCommitBlockListExceptionHeaders = { +const BlockBlobCommitBlockListExceptionHeaders = { serializedName: "BlockBlob_commitBlockListExceptionHeaders", type: { name: "Composite", @@ -72167,7 +71396,7 @@ var BlockBlobCommitBlockListExceptionHeaders = { } } }; -var BlockBlobGetBlockListHeaders = { +const BlockBlobGetBlockListHeaders = { serializedName: "BlockBlob_getBlockListHeaders", type: { name: "Composite", @@ -72239,7 +71468,7 @@ var BlockBlobGetBlockListHeaders = { } } }; -var BlockBlobGetBlockListExceptionHeaders = { +const BlockBlobGetBlockListExceptionHeaders = { serializedName: "BlockBlob_getBlockListExceptionHeaders", type: { name: "Composite", @@ -72285,8 +71514,6 @@ var Mappers = /*#__PURE__*/Object.freeze({ ListBlobsHierarchySegmentResponse: ListBlobsHierarchySegmentResponse, BlobHierarchyListSegment: BlobHierarchyListSegment, BlobPrefix: BlobPrefix, - DataLakeStorageError: DataLakeStorageError, - DataLakeStorageErrorError: DataLakeStorageErrorError, BlockLookupList: BlockLookupList, BlockList: BlockList, Block: Block, @@ -72350,34 +71577,24 @@ var Mappers = /*#__PURE__*/Object.freeze({ ContainerListBlobHierarchySegmentExceptionHeaders: ContainerListBlobHierarchySegmentExceptionHeaders, ContainerGetAccountInfoHeaders: ContainerGetAccountInfoHeaders, ContainerGetAccountInfoExceptionHeaders: ContainerGetAccountInfoExceptionHeaders, - DirectoryCreateHeaders: DirectoryCreateHeaders, - DirectoryCreateExceptionHeaders: DirectoryCreateExceptionHeaders, - DirectoryRenameHeaders: DirectoryRenameHeaders, - DirectoryRenameExceptionHeaders: DirectoryRenameExceptionHeaders, - DirectoryDeleteHeaders: DirectoryDeleteHeaders, - DirectoryDeleteExceptionHeaders: DirectoryDeleteExceptionHeaders, - DirectorySetAccessControlHeaders: DirectorySetAccessControlHeaders, - DirectorySetAccessControlExceptionHeaders: DirectorySetAccessControlExceptionHeaders, - DirectoryGetAccessControlHeaders: DirectoryGetAccessControlHeaders, - DirectoryGetAccessControlExceptionHeaders: DirectoryGetAccessControlExceptionHeaders, BlobDownloadHeaders: BlobDownloadHeaders, BlobDownloadExceptionHeaders: BlobDownloadExceptionHeaders, BlobGetPropertiesHeaders: BlobGetPropertiesHeaders, BlobGetPropertiesExceptionHeaders: BlobGetPropertiesExceptionHeaders, BlobDeleteHeaders: BlobDeleteHeaders, BlobDeleteExceptionHeaders: BlobDeleteExceptionHeaders, - BlobSetAccessControlHeaders: BlobSetAccessControlHeaders, - BlobSetAccessControlExceptionHeaders: BlobSetAccessControlExceptionHeaders, - BlobGetAccessControlHeaders: BlobGetAccessControlHeaders, - BlobGetAccessControlExceptionHeaders: BlobGetAccessControlExceptionHeaders, - BlobRenameHeaders: BlobRenameHeaders, - BlobRenameExceptionHeaders: BlobRenameExceptionHeaders, BlobUndeleteHeaders: BlobUndeleteHeaders, BlobUndeleteExceptionHeaders: BlobUndeleteExceptionHeaders, BlobSetExpiryHeaders: BlobSetExpiryHeaders, BlobSetExpiryExceptionHeaders: BlobSetExpiryExceptionHeaders, BlobSetHttpHeadersHeaders: BlobSetHttpHeadersHeaders, BlobSetHttpHeadersExceptionHeaders: BlobSetHttpHeadersExceptionHeaders, + BlobSetImmutabilityPolicyHeaders: BlobSetImmutabilityPolicyHeaders, + BlobSetImmutabilityPolicyExceptionHeaders: BlobSetImmutabilityPolicyExceptionHeaders, + BlobDeleteImmutabilityPolicyHeaders: BlobDeleteImmutabilityPolicyHeaders, + BlobDeleteImmutabilityPolicyExceptionHeaders: BlobDeleteImmutabilityPolicyExceptionHeaders, + BlobSetLegalHoldHeaders: BlobSetLegalHoldHeaders, + BlobSetLegalHoldExceptionHeaders: BlobSetLegalHoldExceptionHeaders, BlobSetMetadataHeaders: BlobSetMetadataHeaders, BlobSetMetadataExceptionHeaders: BlobSetMetadataExceptionHeaders, BlobAcquireLeaseHeaders: BlobAcquireLeaseHeaders, @@ -72455,7 +71672,7 @@ var Mappers = /*#__PURE__*/Object.freeze({ * Code generated by Microsoft (R) AutoRest Code Generator. * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -var contentType = { +const contentType = { parameterPath: ["options", "contentType"], mapper: { defaultValue: "application/xml", @@ -72466,11 +71683,11 @@ var contentType = { } } }; -var blobServiceProperties = { +const blobServiceProperties = { parameterPath: "blobServiceProperties", mapper: BlobServiceProperties }; -var accept = { +const accept = { parameterPath: "accept", mapper: { defaultValue: "application/xml", @@ -72481,7 +71698,7 @@ var accept = { } } }; -var url = { +const url = { parameterPath: "url", mapper: { serializedName: "url", @@ -72493,7 +71710,7 @@ var url = { }, skipEncoding: true }; -var restype = { +const restype = { parameterPath: "restype", mapper: { defaultValue: "service", @@ -72504,7 +71721,7 @@ var restype = { } } }; -var comp = { +const comp = { parameterPath: "comp", mapper: { defaultValue: "properties", @@ -72515,7 +71732,7 @@ var comp = { } } }; -var timeoutInSeconds = { +const timeoutInSeconds = { parameterPath: ["options", "timeoutInSeconds"], mapper: { constraints: { @@ -72528,10 +71745,10 @@ var timeoutInSeconds = { } } }; -var version = { +const version = { parameterPath: "version", mapper: { - defaultValue: "2020-08-04", + defaultValue: "2020-10-02", isConstant: true, serializedName: "x-ms-version", type: { @@ -72539,7 +71756,7 @@ var version = { } } }; -var requestId = { +const requestId = { parameterPath: ["options", "requestId"], mapper: { serializedName: "x-ms-client-request-id", @@ -72549,7 +71766,7 @@ var requestId = { } } }; -var accept1 = { +const accept1 = { parameterPath: "accept", mapper: { defaultValue: "application/xml", @@ -72560,7 +71777,7 @@ var accept1 = { } } }; -var comp1 = { +const comp1 = { parameterPath: "comp", mapper: { defaultValue: "stats", @@ -72571,7 +71788,7 @@ var comp1 = { } } }; -var comp2 = { +const comp2 = { parameterPath: "comp", mapper: { defaultValue: "list", @@ -72582,7 +71799,7 @@ var comp2 = { } } }; -var prefix = { +const prefix = { parameterPath: ["options", "prefix"], mapper: { serializedName: "prefix", @@ -72592,7 +71809,7 @@ var prefix = { } } }; -var marker = { +const marker = { parameterPath: ["options", "marker"], mapper: { serializedName: "marker", @@ -72602,7 +71819,7 @@ var marker = { } } }; -var maxPageSize = { +const maxPageSize = { parameterPath: ["options", "maxPageSize"], mapper: { constraints: { @@ -72615,7 +71832,7 @@ var maxPageSize = { } } }; -var include = { +const include = { parameterPath: ["options", "include"], mapper: { serializedName: "include", @@ -72633,11 +71850,11 @@ var include = { }, collectionFormat: coreHttp.QueryCollectionFormat.Csv }; -var keyInfo = { +const keyInfo = { parameterPath: "keyInfo", mapper: KeyInfo }; -var comp3 = { +const comp3 = { parameterPath: "comp", mapper: { defaultValue: "userdelegationkey", @@ -72648,7 +71865,7 @@ var comp3 = { } } }; -var restype1 = { +const restype1 = { parameterPath: "restype", mapper: { defaultValue: "account", @@ -72659,7 +71876,7 @@ var restype1 = { } } }; -var body = { +const body = { parameterPath: "body", mapper: { serializedName: "body", @@ -72670,7 +71887,7 @@ var body = { } } }; -var comp4 = { +const comp4 = { parameterPath: "comp", mapper: { defaultValue: "batch", @@ -72681,7 +71898,7 @@ var comp4 = { } } }; -var contentLength = { +const contentLength = { parameterPath: "contentLength", mapper: { serializedName: "Content-Length", @@ -72692,7 +71909,7 @@ var contentLength = { } } }; -var multipartContentType = { +const multipartContentType = { parameterPath: "multipartContentType", mapper: { serializedName: "Content-Type", @@ -72703,7 +71920,7 @@ var multipartContentType = { } } }; -var comp5 = { +const comp5 = { parameterPath: "comp", mapper: { defaultValue: "blobs", @@ -72714,7 +71931,7 @@ var comp5 = { } } }; -var where = { +const where = { parameterPath: ["options", "where"], mapper: { serializedName: "where", @@ -72724,7 +71941,7 @@ var where = { } } }; -var restype2 = { +const restype2 = { parameterPath: "restype", mapper: { defaultValue: "container", @@ -72735,7 +71952,7 @@ var restype2 = { } } }; -var metadata = { +const metadata = { parameterPath: ["options", "metadata"], mapper: { serializedName: "x-ms-meta", @@ -72747,7 +71964,7 @@ var metadata = { headerCollectionPrefix: "x-ms-meta-" } }; -var access = { +const access = { parameterPath: ["options", "access"], mapper: { serializedName: "x-ms-blob-public-access", @@ -72758,7 +71975,7 @@ var access = { } } }; -var defaultEncryptionScope = { +const defaultEncryptionScope = { parameterPath: [ "options", "containerEncryptionScope", @@ -72772,7 +71989,7 @@ var defaultEncryptionScope = { } } }; -var preventEncryptionScopeOverride = { +const preventEncryptionScopeOverride = { parameterPath: [ "options", "containerEncryptionScope", @@ -72786,7 +72003,7 @@ var preventEncryptionScopeOverride = { } } }; -var leaseId = { +const leaseId = { parameterPath: ["options", "leaseAccessConditions", "leaseId"], mapper: { serializedName: "x-ms-lease-id", @@ -72796,7 +72013,7 @@ var leaseId = { } } }; -var ifModifiedSince = { +const ifModifiedSince = { parameterPath: ["options", "modifiedAccessConditions", "ifModifiedSince"], mapper: { serializedName: "If-Modified-Since", @@ -72806,7 +72023,7 @@ var ifModifiedSince = { } } }; -var ifUnmodifiedSince = { +const ifUnmodifiedSince = { parameterPath: ["options", "modifiedAccessConditions", "ifUnmodifiedSince"], mapper: { serializedName: "If-Unmodified-Since", @@ -72816,7 +72033,7 @@ var ifUnmodifiedSince = { } } }; -var comp6 = { +const comp6 = { parameterPath: "comp", mapper: { defaultValue: "metadata", @@ -72827,7 +72044,7 @@ var comp6 = { } } }; -var comp7 = { +const comp7 = { parameterPath: "comp", mapper: { defaultValue: "acl", @@ -72838,7 +72055,7 @@ var comp7 = { } } }; -var containerAcl = { +const containerAcl = { parameterPath: ["options", "containerAcl"], mapper: { serializedName: "containerAcl", @@ -72856,7 +72073,7 @@ var containerAcl = { } } }; -var comp8 = { +const comp8 = { parameterPath: "comp", mapper: { defaultValue: "undelete", @@ -72867,7 +72084,7 @@ var comp8 = { } } }; -var deletedContainerName = { +const deletedContainerName = { parameterPath: ["options", "deletedContainerName"], mapper: { serializedName: "x-ms-deleted-container-name", @@ -72877,7 +72094,7 @@ var deletedContainerName = { } } }; -var deletedContainerVersion = { +const deletedContainerVersion = { parameterPath: ["options", "deletedContainerVersion"], mapper: { serializedName: "x-ms-deleted-container-version", @@ -72887,7 +72104,7 @@ var deletedContainerVersion = { } } }; -var comp9 = { +const comp9 = { parameterPath: "comp", mapper: { defaultValue: "rename", @@ -72898,7 +72115,7 @@ var comp9 = { } } }; -var sourceContainerName = { +const sourceContainerName = { parameterPath: "sourceContainerName", mapper: { serializedName: "x-ms-source-container-name", @@ -72909,7 +72126,7 @@ var sourceContainerName = { } } }; -var sourceLeaseId = { +const sourceLeaseId = { parameterPath: ["options", "sourceLeaseId"], mapper: { serializedName: "x-ms-source-lease-id", @@ -72919,7 +72136,7 @@ var sourceLeaseId = { } } }; -var comp10 = { +const comp10 = { parameterPath: "comp", mapper: { defaultValue: "lease", @@ -72930,7 +72147,7 @@ var comp10 = { } } }; -var action = { +const action = { parameterPath: "action", mapper: { defaultValue: "acquire", @@ -72941,7 +72158,7 @@ var action = { } } }; -var duration = { +const duration = { parameterPath: ["options", "duration"], mapper: { serializedName: "x-ms-lease-duration", @@ -72951,7 +72168,7 @@ var duration = { } } }; -var proposedLeaseId = { +const proposedLeaseId = { parameterPath: ["options", "proposedLeaseId"], mapper: { serializedName: "x-ms-proposed-lease-id", @@ -72961,7 +72178,7 @@ var proposedLeaseId = { } } }; -var action1 = { +const action1 = { parameterPath: "action", mapper: { defaultValue: "release", @@ -72972,7 +72189,7 @@ var action1 = { } } }; -var leaseId1 = { +const leaseId1 = { parameterPath: "leaseId", mapper: { serializedName: "x-ms-lease-id", @@ -72983,7 +72200,7 @@ var leaseId1 = { } } }; -var action2 = { +const action2 = { parameterPath: "action", mapper: { defaultValue: "renew", @@ -72994,7 +72211,7 @@ var action2 = { } } }; -var action3 = { +const action3 = { parameterPath: "action", mapper: { defaultValue: "break", @@ -73005,7 +72222,7 @@ var action3 = { } } }; -var breakPeriod = { +const breakPeriod = { parameterPath: ["options", "breakPeriod"], mapper: { serializedName: "x-ms-lease-break-period", @@ -73015,7 +72232,7 @@ var breakPeriod = { } } }; -var action4 = { +const action4 = { parameterPath: "action", mapper: { defaultValue: "change", @@ -73026,7 +72243,7 @@ var action4 = { } } }; -var proposedLeaseId1 = { +const proposedLeaseId1 = { parameterPath: "proposedLeaseId", mapper: { serializedName: "x-ms-proposed-lease-id", @@ -73037,7 +72254,7 @@ var proposedLeaseId1 = { } } }; -var include1 = { +const include1 = { parameterPath: ["options", "include"], mapper: { serializedName: "include", @@ -73055,7 +72272,10 @@ var include1 = { "snapshots", "uncommittedblobs", "versions", - "tags" + "tags", + "immutabilitypolicy", + "legalhold", + "deletedwithversions" ] } } @@ -73063,7 +72283,7 @@ var include1 = { }, collectionFormat: coreHttp.QueryCollectionFormat.Csv }; -var delimiter = { +const delimiter = { parameterPath: "delimiter", mapper: { serializedName: "delimiter", @@ -73074,243 +72294,7 @@ var delimiter = { } } }; -var directoryProperties = { - parameterPath: ["options", "directoryProperties"], - mapper: { - serializedName: "x-ms-properties", - xmlName: "x-ms-properties", - type: { - name: "String" - } - } -}; -var posixPermissions = { - parameterPath: ["options", "posixPermissions"], - mapper: { - serializedName: "x-ms-permissions", - xmlName: "x-ms-permissions", - type: { - name: "String" - } - } -}; -var posixUmask = { - parameterPath: ["options", "posixUmask"], - mapper: { - serializedName: "x-ms-umask", - xmlName: "x-ms-umask", - type: { - name: "String" - } - } -}; -var cacheControl = { - parameterPath: ["options", "directoryHttpHeaders", "cacheControl"], - mapper: { - serializedName: "x-ms-cache-control", - xmlName: "x-ms-cache-control", - type: { - name: "String" - } - } -}; -var contentType1 = { - parameterPath: ["options", "directoryHttpHeaders", "contentType"], - mapper: { - serializedName: "x-ms-content-type", - xmlName: "x-ms-content-type", - type: { - name: "String" - } - } -}; -var contentEncoding = { - parameterPath: ["options", "directoryHttpHeaders", "contentEncoding"], - mapper: { - serializedName: "x-ms-content-encoding", - xmlName: "x-ms-content-encoding", - type: { - name: "String" - } - } -}; -var contentLanguage = { - parameterPath: ["options", "directoryHttpHeaders", "contentLanguage"], - mapper: { - serializedName: "x-ms-content-language", - xmlName: "x-ms-content-language", - type: { - name: "String" - } - } -}; -var contentDisposition = { - parameterPath: ["options", "directoryHttpHeaders", "contentDisposition"], - mapper: { - serializedName: "x-ms-content-disposition", - xmlName: "x-ms-content-disposition", - type: { - name: "String" - } - } -}; -var ifMatch = { - parameterPath: ["options", "modifiedAccessConditions", "ifMatch"], - mapper: { - serializedName: "If-Match", - xmlName: "If-Match", - type: { - name: "String" - } - } -}; -var ifNoneMatch = { - parameterPath: ["options", "modifiedAccessConditions", "ifNoneMatch"], - mapper: { - serializedName: "If-None-Match", - xmlName: "If-None-Match", - type: { - name: "String" - } - } -}; -var pathRenameMode = { - parameterPath: ["options", "pathRenameMode"], - mapper: { - serializedName: "mode", - xmlName: "mode", - type: { - name: "Enum", - allowedValues: ["legacy", "posix"] - } - } -}; -var renameSource = { - parameterPath: "renameSource", - mapper: { - serializedName: "x-ms-rename-source", - required: true, - xmlName: "x-ms-rename-source", - type: { - name: "String" - } - } -}; -var sourceIfModifiedSince = { - parameterPath: [ - "options", - "sourceModifiedAccessConditions", - "sourceIfModifiedSince" - ], - mapper: { - serializedName: "x-ms-source-if-modified-since", - xmlName: "x-ms-source-if-modified-since", - type: { - name: "DateTimeRfc1123" - } - } -}; -var sourceIfUnmodifiedSince = { - parameterPath: [ - "options", - "sourceModifiedAccessConditions", - "sourceIfUnmodifiedSince" - ], - mapper: { - serializedName: "x-ms-source-if-unmodified-since", - xmlName: "x-ms-source-if-unmodified-since", - type: { - name: "DateTimeRfc1123" - } - } -}; -var sourceIfMatch = { - parameterPath: ["options", "sourceModifiedAccessConditions", "sourceIfMatch"], - mapper: { - serializedName: "x-ms-source-if-match", - xmlName: "x-ms-source-if-match", - type: { - name: "String" - } - } -}; -var sourceIfNoneMatch = { - parameterPath: [ - "options", - "sourceModifiedAccessConditions", - "sourceIfNoneMatch" - ], - mapper: { - serializedName: "x-ms-source-if-none-match", - xmlName: "x-ms-source-if-none-match", - type: { - name: "String" - } - } -}; -var action5 = { - parameterPath: "action", - mapper: { - defaultValue: "setAccessControl", - isConstant: true, - serializedName: "action", - type: { - name: "String" - } - } -}; -var owner = { - parameterPath: ["options", "owner"], - mapper: { - serializedName: "x-ms-owner", - xmlName: "x-ms-owner", - type: { - name: "String" - } - } -}; -var group = { - parameterPath: ["options", "group"], - mapper: { - serializedName: "x-ms-group", - xmlName: "x-ms-group", - type: { - name: "String" - } - } -}; -var posixAcl = { - parameterPath: ["options", "posixAcl"], - mapper: { - serializedName: "x-ms-acl", - xmlName: "x-ms-acl", - type: { - name: "String" - } - } -}; -var action6 = { - parameterPath: "action", - mapper: { - defaultValue: "getAccessControl", - isConstant: true, - serializedName: "action", - type: { - name: "String" - } - } -}; -var upn = { - parameterPath: ["options", "upn"], - mapper: { - serializedName: "upn", - xmlName: "upn", - type: { - name: "Boolean" - } - } -}; -var snapshot = { +const snapshot = { parameterPath: ["options", "snapshot"], mapper: { serializedName: "snapshot", @@ -73320,7 +72304,7 @@ var snapshot = { } } }; -var versionId = { +const versionId = { parameterPath: ["options", "versionId"], mapper: { serializedName: "versionid", @@ -73330,7 +72314,7 @@ var versionId = { } } }; -var range = { +const range = { parameterPath: ["options", "range"], mapper: { serializedName: "x-ms-range", @@ -73340,7 +72324,7 @@ var range = { } } }; -var rangeGetContentMD5 = { +const rangeGetContentMD5 = { parameterPath: ["options", "rangeGetContentMD5"], mapper: { serializedName: "x-ms-range-get-content-md5", @@ -73350,7 +72334,7 @@ var rangeGetContentMD5 = { } } }; -var rangeGetContentCRC64 = { +const rangeGetContentCRC64 = { parameterPath: ["options", "rangeGetContentCRC64"], mapper: { serializedName: "x-ms-range-get-content-crc64", @@ -73360,7 +72344,7 @@ var rangeGetContentCRC64 = { } } }; -var encryptionKey = { +const encryptionKey = { parameterPath: ["options", "cpkInfo", "encryptionKey"], mapper: { serializedName: "x-ms-encryption-key", @@ -73370,7 +72354,7 @@ var encryptionKey = { } } }; -var encryptionKeySha256 = { +const encryptionKeySha256 = { parameterPath: ["options", "cpkInfo", "encryptionKeySha256"], mapper: { serializedName: "x-ms-encryption-key-sha256", @@ -73380,7 +72364,7 @@ var encryptionKeySha256 = { } } }; -var encryptionAlgorithm = { +const encryptionAlgorithm = { parameterPath: ["options", "encryptionAlgorithm"], mapper: { defaultValue: "AES256", @@ -73391,7 +72375,27 @@ var encryptionAlgorithm = { } } }; -var ifTags = { +const ifMatch = { + parameterPath: ["options", "modifiedAccessConditions", "ifMatch"], + mapper: { + serializedName: "If-Match", + xmlName: "If-Match", + type: { + name: "String" + } + } +}; +const ifNoneMatch = { + parameterPath: ["options", "modifiedAccessConditions", "ifNoneMatch"], + mapper: { + serializedName: "If-None-Match", + xmlName: "If-None-Match", + type: { + name: "String" + } + } +}; +const ifTags = { parameterPath: ["options", "modifiedAccessConditions", "ifTags"], mapper: { serializedName: "x-ms-if-tags", @@ -73401,7 +72405,7 @@ var ifTags = { } } }; -var deleteSnapshots = { +const deleteSnapshots = { parameterPath: ["options", "deleteSnapshots"], mapper: { serializedName: "x-ms-delete-snapshots", @@ -73412,7 +72416,7 @@ var deleteSnapshots = { } } }; -var blobDeleteType = { +const blobDeleteType = { parameterPath: ["options", "blobDeleteType"], mapper: { serializedName: "deletetype", @@ -73422,7 +72426,7 @@ var blobDeleteType = { } } }; -var comp11 = { +const comp11 = { parameterPath: "comp", mapper: { defaultValue: "expiry", @@ -73433,7 +72437,7 @@ var comp11 = { } } }; -var expiryOptions = { +const expiryOptions = { parameterPath: "expiryOptions", mapper: { serializedName: "x-ms-expiry-option", @@ -73444,7 +72448,7 @@ var expiryOptions = { } } }; -var expiresOn = { +const expiresOn = { parameterPath: ["options", "expiresOn"], mapper: { serializedName: "x-ms-expiry-time", @@ -73454,7 +72458,7 @@ var expiresOn = { } } }; -var blobCacheControl = { +const blobCacheControl = { parameterPath: ["options", "blobHttpHeaders", "blobCacheControl"], mapper: { serializedName: "x-ms-blob-cache-control", @@ -73464,7 +72468,7 @@ var blobCacheControl = { } } }; -var blobContentType = { +const blobContentType = { parameterPath: ["options", "blobHttpHeaders", "blobContentType"], mapper: { serializedName: "x-ms-blob-content-type", @@ -73474,7 +72478,7 @@ var blobContentType = { } } }; -var blobContentMD5 = { +const blobContentMD5 = { parameterPath: ["options", "blobHttpHeaders", "blobContentMD5"], mapper: { serializedName: "x-ms-blob-content-md5", @@ -73484,7 +72488,7 @@ var blobContentMD5 = { } } }; -var blobContentEncoding = { +const blobContentEncoding = { parameterPath: ["options", "blobHttpHeaders", "blobContentEncoding"], mapper: { serializedName: "x-ms-blob-content-encoding", @@ -73494,7 +72498,7 @@ var blobContentEncoding = { } } }; -var blobContentLanguage = { +const blobContentLanguage = { parameterPath: ["options", "blobHttpHeaders", "blobContentLanguage"], mapper: { serializedName: "x-ms-blob-content-language", @@ -73504,7 +72508,7 @@ var blobContentLanguage = { } } }; -var blobContentDisposition = { +const blobContentDisposition = { parameterPath: ["options", "blobHttpHeaders", "blobContentDisposition"], mapper: { serializedName: "x-ms-blob-content-disposition", @@ -73514,7 +72518,61 @@ var blobContentDisposition = { } } }; -var encryptionScope = { +const comp12 = { + parameterPath: "comp", + mapper: { + defaultValue: "immutabilityPolicies", + isConstant: true, + serializedName: "comp", + type: { + name: "String" + } + } +}; +const immutabilityPolicyExpiry = { + parameterPath: ["options", "immutabilityPolicyExpiry"], + mapper: { + serializedName: "x-ms-immutability-policy-until-date", + xmlName: "x-ms-immutability-policy-until-date", + type: { + name: "DateTimeRfc1123" + } + } +}; +const immutabilityPolicyMode = { + parameterPath: ["options", "immutabilityPolicyMode"], + mapper: { + serializedName: "x-ms-immutability-policy-mode", + xmlName: "x-ms-immutability-policy-mode", + type: { + name: "Enum", + allowedValues: ["Mutable", "Unlocked", "Locked"] + } + } +}; +const comp13 = { + parameterPath: "comp", + mapper: { + defaultValue: "legalhold", + isConstant: true, + serializedName: "comp", + type: { + name: "String" + } + } +}; +const legalHold = { + parameterPath: "legalHold", + mapper: { + serializedName: "x-ms-legal-hold", + required: true, + xmlName: "x-ms-legal-hold", + type: { + name: "Boolean" + } + } +}; +const encryptionScope = { parameterPath: ["options", "encryptionScope"], mapper: { serializedName: "x-ms-encryption-scope", @@ -73524,7 +72582,7 @@ var encryptionScope = { } } }; -var comp12 = { +const comp14 = { parameterPath: "comp", mapper: { defaultValue: "snapshot", @@ -73535,7 +72593,7 @@ var comp12 = { } } }; -var tier = { +const tier = { parameterPath: ["options", "tier"], mapper: { serializedName: "x-ms-access-tier", @@ -73561,7 +72619,7 @@ var tier = { } } }; -var rehydratePriority = { +const rehydratePriority = { parameterPath: ["options", "rehydratePriority"], mapper: { serializedName: "x-ms-rehydrate-priority", @@ -73572,7 +72630,59 @@ var rehydratePriority = { } } }; -var sourceIfTags = { +const sourceIfModifiedSince = { + parameterPath: [ + "options", + "sourceModifiedAccessConditions", + "sourceIfModifiedSince" + ], + mapper: { + serializedName: "x-ms-source-if-modified-since", + xmlName: "x-ms-source-if-modified-since", + type: { + name: "DateTimeRfc1123" + } + } +}; +const sourceIfUnmodifiedSince = { + parameterPath: [ + "options", + "sourceModifiedAccessConditions", + "sourceIfUnmodifiedSince" + ], + mapper: { + serializedName: "x-ms-source-if-unmodified-since", + xmlName: "x-ms-source-if-unmodified-since", + type: { + name: "DateTimeRfc1123" + } + } +}; +const sourceIfMatch = { + parameterPath: ["options", "sourceModifiedAccessConditions", "sourceIfMatch"], + mapper: { + serializedName: "x-ms-source-if-match", + xmlName: "x-ms-source-if-match", + type: { + name: "String" + } + } +}; +const sourceIfNoneMatch = { + parameterPath: [ + "options", + "sourceModifiedAccessConditions", + "sourceIfNoneMatch" + ], + mapper: { + serializedName: "x-ms-source-if-none-match", + xmlName: "x-ms-source-if-none-match", + type: { + name: "String" + } + } +}; +const sourceIfTags = { parameterPath: ["options", "sourceModifiedAccessConditions", "sourceIfTags"], mapper: { serializedName: "x-ms-source-if-tags", @@ -73582,7 +72692,7 @@ var sourceIfTags = { } } }; -var copySource = { +const copySource = { parameterPath: "copySource", mapper: { serializedName: "x-ms-copy-source", @@ -73593,7 +72703,7 @@ var copySource = { } } }; -var blobTagsString = { +const blobTagsString = { parameterPath: ["options", "blobTagsString"], mapper: { serializedName: "x-ms-tags", @@ -73603,7 +72713,7 @@ var blobTagsString = { } } }; -var sealBlob = { +const sealBlob = { parameterPath: ["options", "sealBlob"], mapper: { serializedName: "x-ms-seal-blob", @@ -73613,7 +72723,17 @@ var sealBlob = { } } }; -var xMsRequiresSync = { +const legalHold1 = { + parameterPath: ["options", "legalHold"], + mapper: { + serializedName: "x-ms-legal-hold", + xmlName: "x-ms-legal-hold", + type: { + name: "Boolean" + } + } +}; +const xMsRequiresSync = { parameterPath: "xMsRequiresSync", mapper: { defaultValue: "true", @@ -73624,7 +72744,7 @@ var xMsRequiresSync = { } } }; -var sourceContentMD5 = { +const sourceContentMD5 = { parameterPath: ["options", "sourceContentMD5"], mapper: { serializedName: "x-ms-source-content-md5", @@ -73634,7 +72754,17 @@ var sourceContentMD5 = { } } }; -var comp13 = { +const copySourceAuthorization = { + parameterPath: ["options", "copySourceAuthorization"], + mapper: { + serializedName: "x-ms-copy-source-authorization", + xmlName: "x-ms-copy-source-authorization", + type: { + name: "String" + } + } +}; +const comp15 = { parameterPath: "comp", mapper: { defaultValue: "copy", @@ -73645,7 +72775,7 @@ var comp13 = { } } }; -var copyActionAbortConstant = { +const copyActionAbortConstant = { parameterPath: "copyActionAbortConstant", mapper: { defaultValue: "abort", @@ -73656,7 +72786,7 @@ var copyActionAbortConstant = { } } }; -var copyId = { +const copyId = { parameterPath: "copyId", mapper: { serializedName: "copyid", @@ -73667,7 +72797,7 @@ var copyId = { } } }; -var comp14 = { +const comp16 = { parameterPath: "comp", mapper: { defaultValue: "tier", @@ -73678,7 +72808,7 @@ var comp14 = { } } }; -var tier1 = { +const tier1 = { parameterPath: "tier", mapper: { serializedName: "x-ms-access-tier", @@ -73705,11 +72835,11 @@ var tier1 = { } } }; -var queryRequest = { +const queryRequest = { parameterPath: ["options", "queryRequest"], mapper: QueryRequest }; -var comp15 = { +const comp17 = { parameterPath: "comp", mapper: { defaultValue: "query", @@ -73720,7 +72850,7 @@ var comp15 = { } } }; -var comp16 = { +const comp18 = { parameterPath: "comp", mapper: { defaultValue: "tags", @@ -73731,11 +72861,11 @@ var comp16 = { } } }; -var tags = { +const tags = { parameterPath: ["options", "tags"], mapper: BlobTags }; -var transactionalContentMD5 = { +const transactionalContentMD5 = { parameterPath: ["options", "transactionalContentMD5"], mapper: { serializedName: "Content-MD5", @@ -73745,7 +72875,7 @@ var transactionalContentMD5 = { } } }; -var transactionalContentCrc64 = { +const transactionalContentCrc64 = { parameterPath: ["options", "transactionalContentCrc64"], mapper: { serializedName: "x-ms-content-crc64", @@ -73755,7 +72885,7 @@ var transactionalContentCrc64 = { } } }; -var blobType = { +const blobType = { parameterPath: "blobType", mapper: { defaultValue: "PageBlob", @@ -73766,7 +72896,7 @@ var blobType = { } } }; -var blobContentLength = { +const blobContentLength = { parameterPath: "blobContentLength", mapper: { serializedName: "x-ms-blob-content-length", @@ -73777,7 +72907,7 @@ var blobContentLength = { } } }; -var blobSequenceNumber = { +const blobSequenceNumber = { parameterPath: ["options", "blobSequenceNumber"], mapper: { serializedName: "x-ms-blob-sequence-number", @@ -73787,7 +72917,7 @@ var blobSequenceNumber = { } } }; -var contentType2 = { +const contentType1 = { parameterPath: ["options", "contentType"], mapper: { defaultValue: "application/octet-stream", @@ -73798,7 +72928,7 @@ var contentType2 = { } } }; -var body1 = { +const body1 = { parameterPath: "body", mapper: { serializedName: "body", @@ -73809,7 +72939,7 @@ var body1 = { } } }; -var accept2 = { +const accept2 = { parameterPath: "accept", mapper: { defaultValue: "application/xml", @@ -73820,7 +72950,7 @@ var accept2 = { } } }; -var comp17 = { +const comp19 = { parameterPath: "comp", mapper: { defaultValue: "page", @@ -73831,7 +72961,7 @@ var comp17 = { } } }; -var pageWrite = { +const pageWrite = { parameterPath: "pageWrite", mapper: { defaultValue: "update", @@ -73842,7 +72972,7 @@ var pageWrite = { } } }; -var ifSequenceNumberLessThanOrEqualTo = { +const ifSequenceNumberLessThanOrEqualTo = { parameterPath: [ "options", "sequenceNumberAccessConditions", @@ -73856,7 +72986,7 @@ var ifSequenceNumberLessThanOrEqualTo = { } } }; -var ifSequenceNumberLessThan = { +const ifSequenceNumberLessThan = { parameterPath: [ "options", "sequenceNumberAccessConditions", @@ -73870,7 +73000,7 @@ var ifSequenceNumberLessThan = { } } }; -var ifSequenceNumberEqualTo = { +const ifSequenceNumberEqualTo = { parameterPath: [ "options", "sequenceNumberAccessConditions", @@ -73884,7 +73014,7 @@ var ifSequenceNumberEqualTo = { } } }; -var pageWrite1 = { +const pageWrite1 = { parameterPath: "pageWrite", mapper: { defaultValue: "clear", @@ -73895,7 +73025,7 @@ var pageWrite1 = { } } }; -var sourceUrl = { +const sourceUrl = { parameterPath: "sourceUrl", mapper: { serializedName: "x-ms-copy-source", @@ -73906,7 +73036,7 @@ var sourceUrl = { } } }; -var sourceRange = { +const sourceRange = { parameterPath: "sourceRange", mapper: { serializedName: "x-ms-source-range", @@ -73917,7 +73047,7 @@ var sourceRange = { } } }; -var sourceContentCrc64 = { +const sourceContentCrc64 = { parameterPath: ["options", "sourceContentCrc64"], mapper: { serializedName: "x-ms-source-content-crc64", @@ -73927,7 +73057,7 @@ var sourceContentCrc64 = { } } }; -var range1 = { +const range1 = { parameterPath: "range", mapper: { serializedName: "x-ms-range", @@ -73938,7 +73068,7 @@ var range1 = { } } }; -var comp18 = { +const comp20 = { parameterPath: "comp", mapper: { defaultValue: "pagelist", @@ -73949,7 +73079,7 @@ var comp18 = { } } }; -var prevsnapshot = { +const prevsnapshot = { parameterPath: ["options", "prevsnapshot"], mapper: { serializedName: "prevsnapshot", @@ -73959,7 +73089,7 @@ var prevsnapshot = { } } }; -var prevSnapshotUrl = { +const prevSnapshotUrl = { parameterPath: ["options", "prevSnapshotUrl"], mapper: { serializedName: "x-ms-previous-snapshot-url", @@ -73969,7 +73099,7 @@ var prevSnapshotUrl = { } } }; -var sequenceNumberAction = { +const sequenceNumberAction = { parameterPath: "sequenceNumberAction", mapper: { serializedName: "x-ms-sequence-number-action", @@ -73981,7 +73111,7 @@ var sequenceNumberAction = { } } }; -var comp19 = { +const comp21 = { parameterPath: "comp", mapper: { defaultValue: "incrementalcopy", @@ -73992,7 +73122,7 @@ var comp19 = { } } }; -var blobType1 = { +const blobType1 = { parameterPath: "blobType", mapper: { defaultValue: "AppendBlob", @@ -74003,7 +73133,7 @@ var blobType1 = { } } }; -var comp20 = { +const comp22 = { parameterPath: "comp", mapper: { defaultValue: "appendblock", @@ -74014,7 +73144,7 @@ var comp20 = { } } }; -var maxSize = { +const maxSize = { parameterPath: ["options", "appendPositionAccessConditions", "maxSize"], mapper: { serializedName: "x-ms-blob-condition-maxsize", @@ -74024,7 +73154,7 @@ var maxSize = { } } }; -var appendPosition = { +const appendPosition = { parameterPath: [ "options", "appendPositionAccessConditions", @@ -74038,7 +73168,7 @@ var appendPosition = { } } }; -var sourceRange1 = { +const sourceRange1 = { parameterPath: ["options", "sourceRange"], mapper: { serializedName: "x-ms-source-range", @@ -74048,7 +73178,7 @@ var sourceRange1 = { } } }; -var comp21 = { +const comp23 = { parameterPath: "comp", mapper: { defaultValue: "seal", @@ -74059,7 +73189,7 @@ var comp21 = { } } }; -var blobType2 = { +const blobType2 = { parameterPath: "blobType", mapper: { defaultValue: "BlockBlob", @@ -74070,7 +73200,7 @@ var blobType2 = { } } }; -var copySourceBlobProperties = { +const copySourceBlobProperties = { parameterPath: ["options", "copySourceBlobProperties"], mapper: { serializedName: "x-ms-copy-source-blob-properties", @@ -74080,7 +73210,7 @@ var copySourceBlobProperties = { } } }; -var comp22 = { +const comp24 = { parameterPath: "comp", mapper: { defaultValue: "block", @@ -74091,7 +73221,7 @@ var comp22 = { } } }; -var blockId = { +const blockId = { parameterPath: "blockId", mapper: { serializedName: "blockid", @@ -74102,11 +73232,11 @@ var blockId = { } } }; -var blocks = { +const blocks = { parameterPath: "blocks", mapper: BlockLookupList }; -var comp23 = { +const comp25 = { parameterPath: "comp", mapper: { defaultValue: "blocklist", @@ -74117,7 +73247,7 @@ var comp23 = { } } }; -var listType = { +const listType = { parameterPath: "listType", mapper: { defaultValue: "committed", @@ -74139,12 +73269,12 @@ var listType = { * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ /** Class representing a Service. */ -var Service = /** @class */ (function () { +class Service { /** * Initialize a new instance of the class Service class. * @param client Reference to the service client */ - function Service(client) { + constructor(client) { this.client = client; } /** @@ -74153,69 +73283,69 @@ var Service = /** @class */ (function () { * @param blobServiceProperties The StorageService properties. * @param options The options parameters. */ - Service.prototype.setProperties = function (blobServiceProperties, options) { - var operationArguments = { - blobServiceProperties: blobServiceProperties, + setProperties(blobServiceProperties, options) { + const operationArguments = { + blobServiceProperties, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, setPropertiesOperationSpec); - }; + } /** * gets the properties of a storage account's Blob service, including properties for Storage Analytics * and CORS (Cross-Origin Resource Sharing) rules. * @param options The options parameters. */ - Service.prototype.getProperties = function (options) { - var operationArguments = { + getProperties(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getPropertiesOperationSpec); - }; + } /** * Retrieves statistics related to replication for the Blob service. It is only available on the * secondary location endpoint when read-access geo-redundant replication is enabled for the storage * account. * @param options The options parameters. */ - Service.prototype.getStatistics = function (options) { - var operationArguments = { + getStatistics(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getStatisticsOperationSpec); - }; + } /** * The List Containers Segment operation returns a list of the containers under the specified account * @param options The options parameters. */ - Service.prototype.listContainersSegment = function (options) { - var operationArguments = { + listContainersSegment(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, listContainersSegmentOperationSpec); - }; + } /** * Retrieves a user delegation key for the Blob service. This is only a valid operation when using * bearer token authentication. * @param keyInfo Key information * @param options The options parameters. */ - Service.prototype.getUserDelegationKey = function (keyInfo, options) { - var operationArguments = { - keyInfo: keyInfo, + getUserDelegationKey(keyInfo, options) { + const operationArguments = { + keyInfo, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getUserDelegationKeyOperationSpec); - }; + } /** * Returns the sku name and account kind * @param options The options parameters. */ - Service.prototype.getAccountInfo = function (options) { - var operationArguments = { + getAccountInfo(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getAccountInfoOperationSpec); - }; + } /** * The Batch operation allows multiple API calls to be embedded into a single HTTP request. * @param contentLength The length of the request. @@ -74224,32 +73354,31 @@ var Service = /** @class */ (function () { * @param body Initial data * @param options The options parameters. */ - Service.prototype.submitBatch = function (contentLength, multipartContentType, body, options) { - var operationArguments = { - contentLength: contentLength, - multipartContentType: multipartContentType, - body: body, + submitBatch(contentLength, multipartContentType, body, options) { + const operationArguments = { + contentLength, + multipartContentType, + body, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, submitBatchOperationSpec); - }; + } /** * The Filter Blobs operation enables callers to list blobs across all containers whose tags match a * given search expression. Filter blobs searches across all containers within a storage account but * can be scoped within the expression to a single container. * @param options The options parameters. */ - Service.prototype.filterBlobs = function (options) { - var operationArguments = { + filterBlobs(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, filterBlobsOperationSpec); - }; - return Service; -}()); + } +} // Operation Specifications -var xmlSerializer = new coreHttp.Serializer(Mappers, /* isXml */ true); -var setPropertiesOperationSpec = { +const xmlSerializer = new coreHttp.Serializer(Mappers, /* isXml */ true); +const setPropertiesOperationSpec = { path: "/", httpMethod: "PUT", responses: { @@ -74279,7 +73408,7 @@ var setPropertiesOperationSpec = { mediaType: "xml", serializer: xmlSerializer }; -var getPropertiesOperationSpec = { +const getPropertiesOperationSpec = { path: "/", httpMethod: "GET", responses: { @@ -74306,7 +73435,7 @@ var getPropertiesOperationSpec = { isXML: true, serializer: xmlSerializer }; -var getStatisticsOperationSpec = { +const getStatisticsOperationSpec = { path: "/", httpMethod: "GET", responses: { @@ -74333,7 +73462,7 @@ var getStatisticsOperationSpec = { isXML: true, serializer: xmlSerializer }; -var listContainersSegmentOperationSpec = { +const listContainersSegmentOperationSpec = { path: "/", httpMethod: "GET", responses: { @@ -74363,7 +73492,7 @@ var listContainersSegmentOperationSpec = { isXML: true, serializer: xmlSerializer }; -var getUserDelegationKeyOperationSpec = { +const getUserDelegationKeyOperationSpec = { path: "/", httpMethod: "POST", responses: { @@ -74394,7 +73523,7 @@ var getUserDelegationKeyOperationSpec = { mediaType: "xml", serializer: xmlSerializer }; -var getAccountInfoOperationSpec = { +const getAccountInfoOperationSpec = { path: "/", httpMethod: "GET", responses: { @@ -74412,7 +73541,7 @@ var getAccountInfoOperationSpec = { isXML: true, serializer: xmlSerializer }; -var submitBatchOperationSpec = { +const submitBatchOperationSpec = { path: "/", httpMethod: "POST", responses: { @@ -74444,7 +73573,7 @@ var submitBatchOperationSpec = { mediaType: "xml", serializer: xmlSerializer }; -var filterBlobsOperationSpec = { +const filterBlobsOperationSpec = { path: "/", httpMethod: "GET", responses: { @@ -74482,12 +73611,12 @@ var filterBlobsOperationSpec = { * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ /** Class representing a Container. */ -var Container = /** @class */ (function () { +class Container { /** * Initialize a new instance of the class Container class. * @param client Reference to the service client */ - function Container(client) { + constructor(client) { this.client = client; } /** @@ -74495,88 +73624,88 @@ var Container = /** @class */ (function () { * exists, the operation fails * @param options The options parameters. */ - Container.prototype.create = function (options) { - var operationArguments = { + create(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, createOperationSpec); - }; + } /** * returns all user-defined metadata and system properties for the specified container. The data * returned does not include the container's list of blobs * @param options The options parameters. */ - Container.prototype.getProperties = function (options) { - var operationArguments = { + getProperties(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getPropertiesOperationSpec$1); - }; + } /** * operation marks the specified container for deletion. The container and any blobs contained within * it are later deleted during garbage collection * @param options The options parameters. */ - Container.prototype.delete = function (options) { - var operationArguments = { + delete(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, deleteOperationSpec); - }; + } /** * operation sets one or more user-defined name-value pairs for the specified container. * @param options The options parameters. */ - Container.prototype.setMetadata = function (options) { - var operationArguments = { + setMetadata(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, setMetadataOperationSpec); - }; + } /** * gets the permissions for the specified container. The permissions indicate whether container data * may be accessed publicly. * @param options The options parameters. */ - Container.prototype.getAccessPolicy = function (options) { - var operationArguments = { + getAccessPolicy(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getAccessPolicyOperationSpec); - }; + } /** * sets the permissions for the specified container. The permissions indicate whether blobs in a * container may be accessed publicly. * @param options The options parameters. */ - Container.prototype.setAccessPolicy = function (options) { - var operationArguments = { + setAccessPolicy(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, setAccessPolicyOperationSpec); - }; + } /** * Restores a previously-deleted container. * @param options The options parameters. */ - Container.prototype.restore = function (options) { - var operationArguments = { + restore(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, restoreOperationSpec); - }; + } /** * Renames an existing container. * @param sourceContainerName Required. Specifies the name of the container to rename. * @param options The options parameters. */ - Container.prototype.rename = function (sourceContainerName, options) { - var operationArguments = { - sourceContainerName: sourceContainerName, + rename(sourceContainerName, options) { + const operationArguments = { + sourceContainerName, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, renameOperationSpec); - }; + } /** * The Batch operation allows multiple API calls to be embedded into a single HTTP request. * @param contentLength The length of the request. @@ -74585,63 +73714,63 @@ var Container = /** @class */ (function () { * @param body Initial data * @param options The options parameters. */ - Container.prototype.submitBatch = function (contentLength, multipartContentType, body, options) { - var operationArguments = { - contentLength: contentLength, - multipartContentType: multipartContentType, - body: body, + submitBatch(contentLength, multipartContentType, body, options) { + const operationArguments = { + contentLength, + multipartContentType, + body, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, submitBatchOperationSpec$1); - }; + } /** * [Update] establishes and manages a lock on a container for delete operations. The lock duration can * be 15 to 60 seconds, or can be infinite * @param options The options parameters. */ - Container.prototype.acquireLease = function (options) { - var operationArguments = { + acquireLease(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, acquireLeaseOperationSpec); - }; + } /** * [Update] establishes and manages a lock on a container for delete operations. The lock duration can * be 15 to 60 seconds, or can be infinite * @param leaseId Specifies the current lease ID on the resource. * @param options The options parameters. */ - Container.prototype.releaseLease = function (leaseId, options) { - var operationArguments = { - leaseId: leaseId, + releaseLease(leaseId, options) { + const operationArguments = { + leaseId, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, releaseLeaseOperationSpec); - }; + } /** * [Update] establishes and manages a lock on a container for delete operations. The lock duration can * be 15 to 60 seconds, or can be infinite * @param leaseId Specifies the current lease ID on the resource. * @param options The options parameters. */ - Container.prototype.renewLease = function (leaseId, options) { - var operationArguments = { - leaseId: leaseId, + renewLease(leaseId, options) { + const operationArguments = { + leaseId, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, renewLeaseOperationSpec); - }; + } /** * [Update] establishes and manages a lock on a container for delete operations. The lock duration can * be 15 to 60 seconds, or can be infinite * @param options The options parameters. */ - Container.prototype.breakLease = function (options) { - var operationArguments = { + breakLease(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, breakLeaseOperationSpec); - }; + } /** * [Update] establishes and manages a lock on a container for delete operations. The lock duration can * be 15 to 60 seconds, or can be infinite @@ -74651,24 +73780,24 @@ var Container = /** @class */ (function () { * (String) for a list of valid GUID string formats. * @param options The options parameters. */ - Container.prototype.changeLease = function (leaseId, proposedLeaseId, options) { - var operationArguments = { - leaseId: leaseId, - proposedLeaseId: proposedLeaseId, + changeLease(leaseId, proposedLeaseId, options) { + const operationArguments = { + leaseId, + proposedLeaseId, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, changeLeaseOperationSpec); - }; + } /** * [Update] The List Blobs operation returns a list of the blobs under the specified container * @param options The options parameters. */ - Container.prototype.listBlobFlatSegment = function (options) { - var operationArguments = { + listBlobFlatSegment(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, listBlobFlatSegmentOperationSpec); - }; + } /** * [Update] The List Blobs operation returns a list of the blobs under the specified container * @param delimiter When the request includes this parameter, the operation returns a BlobPrefix @@ -74677,28 +73806,27 @@ var Container = /** @class */ (function () { * character or a string. * @param options The options parameters. */ - Container.prototype.listBlobHierarchySegment = function (delimiter, options) { - var operationArguments = { - delimiter: delimiter, + listBlobHierarchySegment(delimiter, options) { + const operationArguments = { + delimiter, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, listBlobHierarchySegmentOperationSpec); - }; + } /** * Returns the sku name and account kind * @param options The options parameters. */ - Container.prototype.getAccountInfo = function (options) { - var operationArguments = { + getAccountInfo(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getAccountInfoOperationSpec$1); - }; - return Container; -}()); + } +} // Operation Specifications -var xmlSerializer$1 = new coreHttp.Serializer(Mappers, /* isXml */ true); -var createOperationSpec = { +const xmlSerializer$1 = new coreHttp.Serializer(Mappers, /* isXml */ true); +const createOperationSpec = { path: "/{containerName}", httpMethod: "PUT", responses: { @@ -74724,7 +73852,7 @@ var createOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var getPropertiesOperationSpec$1 = { +const getPropertiesOperationSpec$1 = { path: "/{containerName}", httpMethod: "GET", responses: { @@ -74747,7 +73875,7 @@ var getPropertiesOperationSpec$1 = { isXML: true, serializer: xmlSerializer$1 }; -var deleteOperationSpec = { +const deleteOperationSpec = { path: "/{containerName}", httpMethod: "DELETE", responses: { @@ -74772,7 +73900,7 @@ var deleteOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var setMetadataOperationSpec = { +const setMetadataOperationSpec = { path: "/{containerName}", httpMethod: "PUT", responses: { @@ -74801,7 +73929,7 @@ var setMetadataOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var getAccessPolicyOperationSpec = { +const getAccessPolicyOperationSpec = { path: "/{containerName}", httpMethod: "GET", responses: { @@ -74840,7 +73968,7 @@ var getAccessPolicyOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var setAccessPolicyOperationSpec = { +const setAccessPolicyOperationSpec = { path: "/{containerName}", httpMethod: "PUT", responses: { @@ -74874,7 +74002,7 @@ var setAccessPolicyOperationSpec = { mediaType: "xml", serializer: xmlSerializer$1 }; -var restoreOperationSpec = { +const restoreOperationSpec = { path: "/{containerName}", httpMethod: "PUT", responses: { @@ -74902,7 +74030,7 @@ var restoreOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var renameOperationSpec = { +const renameOperationSpec = { path: "/{containerName}", httpMethod: "PUT", responses: { @@ -74930,7 +74058,7 @@ var renameOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var submitBatchOperationSpec$1 = { +const submitBatchOperationSpec$1 = { path: "/{containerName}", httpMethod: "POST", responses: { @@ -74966,7 +74094,7 @@ var submitBatchOperationSpec$1 = { mediaType: "xml", serializer: xmlSerializer$1 }; -var acquireLeaseOperationSpec = { +const acquireLeaseOperationSpec = { path: "/{containerName}", httpMethod: "PUT", responses: { @@ -74997,7 +74125,7 @@ var acquireLeaseOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var releaseLeaseOperationSpec = { +const releaseLeaseOperationSpec = { path: "/{containerName}", httpMethod: "PUT", responses: { @@ -75027,7 +74155,7 @@ var releaseLeaseOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var renewLeaseOperationSpec = { +const renewLeaseOperationSpec = { path: "/{containerName}", httpMethod: "PUT", responses: { @@ -75057,7 +74185,7 @@ var renewLeaseOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var breakLeaseOperationSpec = { +const breakLeaseOperationSpec = { path: "/{containerName}", httpMethod: "PUT", responses: { @@ -75087,7 +74215,7 @@ var breakLeaseOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var changeLeaseOperationSpec = { +const changeLeaseOperationSpec = { path: "/{containerName}", httpMethod: "PUT", responses: { @@ -75118,7 +74246,7 @@ var changeLeaseOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var listBlobFlatSegmentOperationSpec = { +const listBlobFlatSegmentOperationSpec = { path: "/{containerName}", httpMethod: "GET", responses: { @@ -75149,7 +74277,7 @@ var listBlobFlatSegmentOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var listBlobHierarchySegmentOperationSpec = { +const listBlobHierarchySegmentOperationSpec = { path: "/{containerName}", httpMethod: "GET", responses: { @@ -75181,7 +74309,7 @@ var listBlobHierarchySegmentOperationSpec = { isXML: true, serializer: xmlSerializer$1 }; -var getAccountInfoOperationSpec$1 = { +const getAccountInfoOperationSpec$1 = { path: "/{containerName}", httpMethod: "GET", responses: { @@ -75208,12 +74336,12 @@ var getAccountInfoOperationSpec$1 = { * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ /** Class representing a Blob. */ -var Blob$1 = /** @class */ (function () { +class Blob$1 { /** * Initialize a new instance of the class Blob class. * @param client Reference to the service client */ - function Blob(client) { + constructor(client) { this.client = client; } /** @@ -75221,23 +74349,23 @@ var Blob$1 = /** @class */ (function () { * properties. You can also call Download to read a snapshot. * @param options The options parameters. */ - Blob.prototype.download = function (options) { - var operationArguments = { + download(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, downloadOperationSpec); - }; + } /** * The Get Properties operation returns all user-defined metadata, standard HTTP properties, and system * properties for the blob. It does not return the content of the blob. * @param options The options parameters. */ - Blob.prototype.getProperties = function (options) { - var operationArguments = { + getProperties(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getPropertiesOperationSpec$2); - }; + } /** * If the storage account's soft delete feature is disabled then, when a blob is deleted, it is * permanently removed from the storage account. If the storage account's soft delete feature is @@ -75253,130 +74381,124 @@ var Blob$1 = /** @class */ (function () { * (ResourceNotFound). * @param options The options parameters. */ - Blob.prototype.delete = function (options) { - var operationArguments = { + delete(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, deleteOperationSpec$1); - }; - /** - * Set the owner, group, permissions, or access control list for a blob. - * @param options The options parameters. - */ - Blob.prototype.setAccessControl = function (options) { - var operationArguments = { - options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) - }; - return this.client.sendOperationRequest(operationArguments, setAccessControlOperationSpec); - }; - /** - * Get the owner, group, permissions, or access control list for a blob. - * @param options The options parameters. - */ - Blob.prototype.getAccessControl = function (options) { - var operationArguments = { - options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) - }; - return this.client.sendOperationRequest(operationArguments, getAccessControlOperationSpec); - }; - /** - * Rename a blob/file. By default, the destination is overwritten and if the destination already - * exists and has a lease the lease is broken. This operation supports conditional HTTP requests. For - * more information, see [Specifying Conditional Headers for Blob Service - * Operations](https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations). - * To fail if the destination already exists, use a conditional request with If-None-Match: "*". - * @param renameSource The file or directory to be renamed. The value must have the following format: - * "/{filesysystem}/{path}". If "x-ms-properties" is specified, the properties will overwrite the - * existing properties; otherwise, the existing properties will be preserved. - * @param options The options parameters. - */ - Blob.prototype.rename = function (renameSource, options) { - var operationArguments = { - renameSource: renameSource, - options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) - }; - return this.client.sendOperationRequest(operationArguments, renameOperationSpec$1); - }; + } /** * Undelete a blob that was previously soft deleted * @param options The options parameters. */ - Blob.prototype.undelete = function (options) { - var operationArguments = { + undelete(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, undeleteOperationSpec); - }; + } /** * Sets the time a blob will expire and be deleted. * @param expiryOptions Required. Indicates mode of the expiry time * @param options The options parameters. */ - Blob.prototype.setExpiry = function (expiryOptions, options) { - var operationArguments = { - expiryOptions: expiryOptions, + setExpiry(expiryOptions, options) { + const operationArguments = { + expiryOptions, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, setExpiryOperationSpec); - }; + } /** * The Set HTTP Headers operation sets system properties on the blob * @param options The options parameters. */ - Blob.prototype.setHttpHeaders = function (options) { - var operationArguments = { + setHttpHeaders(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, setHttpHeadersOperationSpec); - }; + } + /** + * The Set Immutability Policy operation sets the immutability policy on the blob + * @param options The options parameters. + */ + setImmutabilityPolicy(options) { + const operationArguments = { + options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) + }; + return this.client.sendOperationRequest(operationArguments, setImmutabilityPolicyOperationSpec); + } + /** + * The Delete Immutability Policy operation deletes the immutability policy on the blob + * @param options The options parameters. + */ + deleteImmutabilityPolicy(options) { + const operationArguments = { + options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) + }; + return this.client.sendOperationRequest(operationArguments, deleteImmutabilityPolicyOperationSpec); + } + /** + * The Set Legal Hold operation sets a legal hold on the blob. + * @param legalHold Specified if a legal hold should be set on the blob. + * @param options The options parameters. + */ + setLegalHold(legalHold, options) { + const operationArguments = { + legalHold, + options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) + }; + return this.client.sendOperationRequest(operationArguments, setLegalHoldOperationSpec); + } /** * The Set Blob Metadata operation sets user-defined metadata for the specified blob as one or more * name-value pairs * @param options The options parameters. */ - Blob.prototype.setMetadata = function (options) { - var operationArguments = { + setMetadata(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, setMetadataOperationSpec$1); - }; + } /** * [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete * operations * @param options The options parameters. */ - Blob.prototype.acquireLease = function (options) { - var operationArguments = { + acquireLease(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, acquireLeaseOperationSpec$1); - }; + } /** * [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete * operations * @param leaseId Specifies the current lease ID on the resource. * @param options The options parameters. */ - Blob.prototype.releaseLease = function (leaseId, options) { - var operationArguments = { - leaseId: leaseId, + releaseLease(leaseId, options) { + const operationArguments = { + leaseId, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, releaseLeaseOperationSpec$1); - }; + } /** * [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete * operations * @param leaseId Specifies the current lease ID on the resource. * @param options The options parameters. */ - Blob.prototype.renewLease = function (leaseId, options) { - var operationArguments = { - leaseId: leaseId, + renewLease(leaseId, options) { + const operationArguments = { + leaseId, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, renewLeaseOperationSpec$1); - }; + } /** * [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete * operations @@ -75386,35 +74508,35 @@ var Blob$1 = /** @class */ (function () { * (String) for a list of valid GUID string formats. * @param options The options parameters. */ - Blob.prototype.changeLease = function (leaseId, proposedLeaseId, options) { - var operationArguments = { - leaseId: leaseId, - proposedLeaseId: proposedLeaseId, + changeLease(leaseId, proposedLeaseId, options) { + const operationArguments = { + leaseId, + proposedLeaseId, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, changeLeaseOperationSpec$1); - }; + } /** * [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete * operations * @param options The options parameters. */ - Blob.prototype.breakLease = function (options) { - var operationArguments = { + breakLease(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, breakLeaseOperationSpec$1); - }; + } /** * The Create Snapshot operation creates a read-only snapshot of a blob * @param options The options parameters. */ - Blob.prototype.createSnapshot = function (options) { - var operationArguments = { + createSnapshot(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, createSnapshotOperationSpec); - }; + } /** * The Start Copy From URL operation copies a blob or an internet resource to a new blob. * @param copySource Specifies the name of the source page blob snapshot. This value is a URL of up to @@ -75423,13 +74545,13 @@ var Blob$1 = /** @class */ (function () { * access signature. * @param options The options parameters. */ - Blob.prototype.startCopyFromURL = function (copySource, options) { - var operationArguments = { - copySource: copySource, + startCopyFromURL(copySource, options) { + const operationArguments = { + copySource, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, startCopyFromURLOperationSpec); - }; + } /** * The Copy From URL operation copies a blob or an internet resource to a new blob. It will not return * a response until the copy is complete. @@ -75439,13 +74561,13 @@ var Blob$1 = /** @class */ (function () { * access signature. * @param options The options parameters. */ - Blob.prototype.copyFromURL = function (copySource, options) { - var operationArguments = { - copySource: copySource, + copyFromURL(copySource, options) { + const operationArguments = { + copySource, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, copyFromURLOperationSpec); - }; + } /** * The Abort Copy From URL operation aborts a pending Copy From URL operation, and leaves a destination * blob with zero length and full metadata. @@ -75453,13 +74575,13 @@ var Blob$1 = /** @class */ (function () { * operation. * @param options The options parameters. */ - Blob.prototype.abortCopyFromURL = function (copyId, options) { - var operationArguments = { - copyId: copyId, + abortCopyFromURL(copyId, options) { + const operationArguments = { + copyId, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, abortCopyFromURLOperationSpec); - }; + } /** * The Set Tier operation sets the tier on a blob. The operation is allowed on a page blob in a premium * storage account and on a block blob in a blob storage account (locally redundant storage only). A @@ -75469,59 +74591,58 @@ var Blob$1 = /** @class */ (function () { * @param tier Indicates the tier to be set on the blob. * @param options The options parameters. */ - Blob.prototype.setTier = function (tier, options) { - var operationArguments = { - tier: tier, + setTier(tier, options) { + const operationArguments = { + tier, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, setTierOperationSpec); - }; + } /** * Returns the sku name and account kind * @param options The options parameters. */ - Blob.prototype.getAccountInfo = function (options) { - var operationArguments = { + getAccountInfo(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getAccountInfoOperationSpec$2); - }; + } /** * The Query operation enables users to select/project on blob data by providing simple query * expressions. * @param options The options parameters. */ - Blob.prototype.query = function (options) { - var operationArguments = { + query(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, queryOperationSpec); - }; + } /** * The Get Tags operation enables users to get the tags associated with a blob. * @param options The options parameters. */ - Blob.prototype.getTags = function (options) { - var operationArguments = { + getTags(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getTagsOperationSpec); - }; + } /** * The Set Tags operation enables users to set tags on a blob. * @param options The options parameters. */ - Blob.prototype.setTags = function (options) { - var operationArguments = { + setTags(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, setTagsOperationSpec); - }; - return Blob; -}()); + } +} // Operation Specifications -var xmlSerializer$2 = new coreHttp.Serializer(Mappers, /* isXml */ true); -var downloadOperationSpec = { +const xmlSerializer$2 = new coreHttp.Serializer(Mappers, /* isXml */ true); +const downloadOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "GET", responses: { @@ -75557,20 +74678,20 @@ var downloadOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, range, rangeGetContentMD5, rangeGetContentCRC64, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags ], isXML: true, serializer: xmlSerializer$2 }; -var getPropertiesOperationSpec$2 = { +const getPropertiesOperationSpec$2 = { path: "/{containerName}/{blob}", httpMethod: "HEAD", responses: { @@ -75595,17 +74716,17 @@ var getPropertiesOperationSpec$2 = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags ], isXML: true, serializer: xmlSerializer$2 }; -var deleteOperationSpec$1 = { +const deleteOperationSpec$1 = { path: "/{containerName}/{blob}", httpMethod: "DELETE", responses: { @@ -75639,110 +74760,7 @@ var deleteOperationSpec$1 = { isXML: true, serializer: xmlSerializer$2 }; -var setAccessControlOperationSpec = { - path: "/{filesystem}/{path}", - httpMethod: "PATCH", - responses: { - 200: { - headersMapper: BlobSetAccessControlHeaders - }, - default: { - bodyMapper: DataLakeStorageError, - headersMapper: BlobSetAccessControlExceptionHeaders - } - }, - queryParameters: [timeoutInSeconds, action5], - urlParameters: [url], - headerParameters: [ - version, - requestId, - accept1, - leaseId, - ifModifiedSince, - ifUnmodifiedSince, - posixPermissions, - ifMatch, - ifNoneMatch, - owner, - group, - posixAcl - ], - isXML: true, - serializer: xmlSerializer$2 -}; -var getAccessControlOperationSpec = { - path: "/{filesystem}/{path}", - httpMethod: "HEAD", - responses: { - 200: { - headersMapper: BlobGetAccessControlHeaders - }, - default: { - bodyMapper: DataLakeStorageError, - headersMapper: BlobGetAccessControlExceptionHeaders - } - }, - queryParameters: [ - timeoutInSeconds, - action6, - upn - ], - urlParameters: [url], - headerParameters: [ - version, - requestId, - accept1, - leaseId, - ifModifiedSince, - ifUnmodifiedSince, - ifMatch, - ifNoneMatch - ], - isXML: true, - serializer: xmlSerializer$2 -}; -var renameOperationSpec$1 = { - path: "/{filesystem}/{path}", - httpMethod: "PUT", - responses: { - 201: { - headersMapper: BlobRenameHeaders - }, - default: { - bodyMapper: DataLakeStorageError, - headersMapper: BlobRenameExceptionHeaders - } - }, - queryParameters: [timeoutInSeconds, pathRenameMode], - urlParameters: [url], - headerParameters: [ - version, - requestId, - accept1, - leaseId, - ifModifiedSince, - ifUnmodifiedSince, - sourceLeaseId, - directoryProperties, - posixPermissions, - posixUmask, - cacheControl, - contentType1, - contentEncoding, - contentLanguage, - contentDisposition, - ifMatch, - ifNoneMatch, - renameSource, - sourceIfModifiedSince, - sourceIfUnmodifiedSince, - sourceIfMatch, - sourceIfNoneMatch - ], - isXML: true, - serializer: xmlSerializer$2 -}; -var undeleteOperationSpec = { +const undeleteOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -75764,7 +74782,7 @@ var undeleteOperationSpec = { isXML: true, serializer: xmlSerializer$2 }; -var setExpiryOperationSpec = { +const setExpiryOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -75788,7 +74806,7 @@ var setExpiryOperationSpec = { isXML: true, serializer: xmlSerializer$2 }; -var setHttpHeadersOperationSpec = { +const setHttpHeadersOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -75822,7 +74840,77 @@ var setHttpHeadersOperationSpec = { isXML: true, serializer: xmlSerializer$2 }; -var setMetadataOperationSpec$1 = { +const setImmutabilityPolicyOperationSpec = { + path: "/{containerName}/{blob}", + httpMethod: "PUT", + responses: { + 200: { + headersMapper: BlobSetImmutabilityPolicyHeaders + }, + default: { + bodyMapper: StorageError, + headersMapper: BlobSetImmutabilityPolicyExceptionHeaders + } + }, + queryParameters: [timeoutInSeconds, comp12], + urlParameters: [url], + headerParameters: [ + version, + requestId, + accept1, + ifUnmodifiedSince, + immutabilityPolicyExpiry, + immutabilityPolicyMode + ], + isXML: true, + serializer: xmlSerializer$2 +}; +const deleteImmutabilityPolicyOperationSpec = { + path: "/{containerName}/{blob}", + httpMethod: "DELETE", + responses: { + 200: { + headersMapper: BlobDeleteImmutabilityPolicyHeaders + }, + default: { + bodyMapper: StorageError, + headersMapper: BlobDeleteImmutabilityPolicyExceptionHeaders + } + }, + queryParameters: [timeoutInSeconds, comp12], + urlParameters: [url], + headerParameters: [ + version, + requestId, + accept1 + ], + isXML: true, + serializer: xmlSerializer$2 +}; +const setLegalHoldOperationSpec = { + path: "/{containerName}/{blob}", + httpMethod: "PUT", + responses: { + 200: { + headersMapper: BlobSetLegalHoldHeaders + }, + default: { + bodyMapper: StorageError, + headersMapper: BlobSetLegalHoldExceptionHeaders + } + }, + queryParameters: [timeoutInSeconds, comp13], + urlParameters: [url], + headerParameters: [ + version, + requestId, + accept1, + legalHold + ], + isXML: true, + serializer: xmlSerializer$2 +}; +const setMetadataOperationSpec$1 = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -75844,18 +74932,18 @@ var setMetadataOperationSpec$1 = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags, encryptionScope ], isXML: true, serializer: xmlSerializer$2 }; -var acquireLeaseOperationSpec$1 = { +const acquireLeaseOperationSpec$1 = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -75885,7 +74973,7 @@ var acquireLeaseOperationSpec$1 = { isXML: true, serializer: xmlSerializer$2 }; -var releaseLeaseOperationSpec$1 = { +const releaseLeaseOperationSpec$1 = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -75914,7 +75002,7 @@ var releaseLeaseOperationSpec$1 = { isXML: true, serializer: xmlSerializer$2 }; -var renewLeaseOperationSpec$1 = { +const renewLeaseOperationSpec$1 = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -75943,7 +75031,7 @@ var renewLeaseOperationSpec$1 = { isXML: true, serializer: xmlSerializer$2 }; -var changeLeaseOperationSpec$1 = { +const changeLeaseOperationSpec$1 = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -75973,7 +75061,7 @@ var changeLeaseOperationSpec$1 = { isXML: true, serializer: xmlSerializer$2 }; -var breakLeaseOperationSpec$1 = { +const breakLeaseOperationSpec$1 = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -76002,7 +75090,7 @@ var breakLeaseOperationSpec$1 = { isXML: true, serializer: xmlSerializer$2 }; -var createSnapshotOperationSpec = { +const createSnapshotOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -76014,7 +75102,7 @@ var createSnapshotOperationSpec = { headersMapper: BlobCreateSnapshotExceptionHeaders } }, - queryParameters: [timeoutInSeconds, comp12], + queryParameters: [timeoutInSeconds, comp14], urlParameters: [url], headerParameters: [ version, @@ -76024,18 +75112,18 @@ var createSnapshotOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags, encryptionScope ], isXML: true, serializer: xmlSerializer$2 }; -var startCopyFromURLOperationSpec = { +const startCopyFromURLOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -76059,22 +75147,25 @@ var startCopyFromURLOperationSpec = { ifUnmodifiedSince, ifMatch, ifNoneMatch, + ifTags, + immutabilityPolicyExpiry, + immutabilityPolicyMode, + tier, + rehydratePriority, sourceIfModifiedSince, sourceIfUnmodifiedSince, sourceIfMatch, sourceIfNoneMatch, - ifTags, - tier, - rehydratePriority, sourceIfTags, copySource, blobTagsString, - sealBlob + sealBlob, + legalHold1 ], isXML: true, serializer: xmlSerializer$2 }; -var copyFromURLOperationSpec = { +const copyFromURLOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -76098,21 +75189,25 @@ var copyFromURLOperationSpec = { ifUnmodifiedSince, ifMatch, ifNoneMatch, + ifTags, + immutabilityPolicyExpiry, + immutabilityPolicyMode, + tier, sourceIfModifiedSince, sourceIfUnmodifiedSince, sourceIfMatch, sourceIfNoneMatch, - ifTags, - tier, copySource, blobTagsString, + legalHold1, xMsRequiresSync, - sourceContentMD5 + sourceContentMD5, + copySourceAuthorization ], isXML: true, serializer: xmlSerializer$2 }; -var abortCopyFromURLOperationSpec = { +const abortCopyFromURLOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -76126,7 +75221,7 @@ var abortCopyFromURLOperationSpec = { }, queryParameters: [ timeoutInSeconds, - comp13, + comp15, copyId ], urlParameters: [url], @@ -76140,7 +75235,7 @@ var abortCopyFromURLOperationSpec = { isXML: true, serializer: xmlSerializer$2 }; -var setTierOperationSpec = { +const setTierOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -76159,7 +75254,7 @@ var setTierOperationSpec = { timeoutInSeconds, snapshot, versionId, - comp14 + comp16 ], urlParameters: [url], headerParameters: [ @@ -76174,7 +75269,7 @@ var setTierOperationSpec = { isXML: true, serializer: xmlSerializer$2 }; -var getAccountInfoOperationSpec$2 = { +const getAccountInfoOperationSpec$2 = { path: "/{containerName}/{blob}", httpMethod: "GET", responses: { @@ -76192,7 +75287,7 @@ var getAccountInfoOperationSpec$2 = { isXML: true, serializer: xmlSerializer$2 }; -var queryOperationSpec = { +const queryOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "POST", responses: { @@ -76219,7 +75314,7 @@ var queryOperationSpec = { queryParameters: [ timeoutInSeconds, snapshot, - comp15 + comp17 ], urlParameters: [url], headerParameters: [ @@ -76230,11 +75325,11 @@ var queryOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags ], isXML: true, @@ -76242,7 +75337,7 @@ var queryOperationSpec = { mediaType: "xml", serializer: xmlSerializer$2 }; -var getTagsOperationSpec = { +const getTagsOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "GET", responses: { @@ -76259,7 +75354,7 @@ var getTagsOperationSpec = { timeoutInSeconds, snapshot, versionId, - comp16 + comp18 ], urlParameters: [url], headerParameters: [ @@ -76272,7 +75367,7 @@ var getTagsOperationSpec = { isXML: true, serializer: xmlSerializer$2 }; -var setTagsOperationSpec = { +const setTagsOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -76288,7 +75383,7 @@ var setTagsOperationSpec = { queryParameters: [ timeoutInSeconds, versionId, - comp16 + comp18 ], urlParameters: [url], headerParameters: [ @@ -76315,12 +75410,12 @@ var setTagsOperationSpec = { * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ /** Class representing a PageBlob. */ -var PageBlob = /** @class */ (function () { +class PageBlob { /** * Initialize a new instance of the class PageBlob class. * @param client Reference to the service client */ - function PageBlob(client) { + constructor(client) { this.client = client; } /** @@ -76330,40 +75425,40 @@ var PageBlob = /** @class */ (function () { * page blob size must be aligned to a 512-byte boundary. * @param options The options parameters. */ - PageBlob.prototype.create = function (contentLength, blobContentLength, options) { - var operationArguments = { - contentLength: contentLength, - blobContentLength: blobContentLength, + create(contentLength, blobContentLength, options) { + const operationArguments = { + contentLength, + blobContentLength, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, createOperationSpec$1); - }; + } /** * The Upload Pages operation writes a range of pages to a page blob * @param contentLength The length of the request. * @param body Initial data * @param options The options parameters. */ - PageBlob.prototype.uploadPages = function (contentLength, body, options) { - var operationArguments = { - contentLength: contentLength, - body: body, + uploadPages(contentLength, body, options) { + const operationArguments = { + contentLength, + body, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, uploadPagesOperationSpec); - }; + } /** * The Clear Pages operation clears a set of pages from a page blob * @param contentLength The length of the request. * @param options The options parameters. */ - PageBlob.prototype.clearPages = function (contentLength, options) { - var operationArguments = { - contentLength: contentLength, + clearPages(contentLength, options) { + const operationArguments = { + contentLength, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, clearPagesOperationSpec); - }; + } /** * The Upload Pages operation writes a range of pages to a page blob where the contents are read from a * URL @@ -76375,51 +75470,51 @@ var PageBlob = /** @class */ (function () { * aligned and range-end is required. * @param options The options parameters. */ - PageBlob.prototype.uploadPagesFromURL = function (sourceUrl, sourceRange, contentLength, range, options) { - var operationArguments = { - sourceUrl: sourceUrl, - sourceRange: sourceRange, - contentLength: contentLength, - range: range, + uploadPagesFromURL(sourceUrl, sourceRange, contentLength, range, options) { + const operationArguments = { + sourceUrl, + sourceRange, + contentLength, + range, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, uploadPagesFromURLOperationSpec); - }; + } /** * The Get Page Ranges operation returns the list of valid page ranges for a page blob or snapshot of a * page blob * @param options The options parameters. */ - PageBlob.prototype.getPageRanges = function (options) { - var operationArguments = { + getPageRanges(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getPageRangesOperationSpec); - }; + } /** * The Get Page Ranges Diff operation returns the list of valid page ranges for a page blob that were * changed between target blob and previous snapshot. * @param options The options parameters. */ - PageBlob.prototype.getPageRangesDiff = function (options) { - var operationArguments = { + getPageRangesDiff(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getPageRangesDiffOperationSpec); - }; + } /** * Resize the Blob * @param blobContentLength This header specifies the maximum size for the page blob, up to 1 TB. The * page blob size must be aligned to a 512-byte boundary. * @param options The options parameters. */ - PageBlob.prototype.resize = function (blobContentLength, options) { - var operationArguments = { - blobContentLength: blobContentLength, + resize(blobContentLength, options) { + const operationArguments = { + blobContentLength, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, resizeOperationSpec); - }; + } /** * Update the sequence number of the blob * @param sequenceNumberAction Required if the x-ms-blob-sequence-number header is set for the request. @@ -76427,13 +75522,13 @@ var PageBlob = /** @class */ (function () { * blob's sequence number * @param options The options parameters. */ - PageBlob.prototype.updateSequenceNumber = function (sequenceNumberAction, options) { - var operationArguments = { - sequenceNumberAction: sequenceNumberAction, + updateSequenceNumber(sequenceNumberAction, options) { + const operationArguments = { + sequenceNumberAction, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, updateSequenceNumberOperationSpec); - }; + } /** * The Copy Incremental operation copies a snapshot of the source page blob to a destination page blob. * The snapshot is copied such that only the differential changes between the previously copied @@ -76446,19 +75541,18 @@ var PageBlob = /** @class */ (function () { * access signature. * @param options The options parameters. */ - PageBlob.prototype.copyIncremental = function (copySource, options) { - var operationArguments = { - copySource: copySource, + copyIncremental(copySource, options) { + const operationArguments = { + copySource, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, copyIncrementalOperationSpec); - }; - return PageBlob; -}()); + } +} // Operation Specifications -var xmlSerializer$3 = new coreHttp.Serializer(Mappers, /* isXml */ true); -var serializer = new coreHttp.Serializer(Mappers, /* isXml */ false); -var createOperationSpec$1 = { +const xmlSerializer$3 = new coreHttp.Serializer(Mappers, /* isXml */ true); +const serializer = new coreHttp.Serializer(Mappers, /* isXml */ false); +const createOperationSpec$1 = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -76481,11 +75575,11 @@ var createOperationSpec$1 = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags, blobCacheControl, blobContentType, @@ -76493,9 +75587,12 @@ var createOperationSpec$1 = { blobContentEncoding, blobContentLanguage, blobContentDisposition, + immutabilityPolicyExpiry, + immutabilityPolicyMode, encryptionScope, tier, blobTagsString, + legalHold1, blobType, blobContentLength, blobSequenceNumber @@ -76503,7 +75600,7 @@ var createOperationSpec$1 = { isXML: true, serializer: xmlSerializer$3 }; -var uploadPagesOperationSpec = { +const uploadPagesOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -76516,7 +75613,7 @@ var uploadPagesOperationSpec = { } }, requestBody: body1, - queryParameters: [timeoutInSeconds, comp17], + queryParameters: [timeoutInSeconds, comp19], urlParameters: [url], headerParameters: [ version, @@ -76525,17 +75622,17 @@ var uploadPagesOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, range, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags, encryptionScope, transactionalContentMD5, transactionalContentCrc64, - contentType2, + contentType1, accept2, pageWrite, ifSequenceNumberLessThanOrEqualTo, @@ -76543,9 +75640,9 @@ var uploadPagesOperationSpec = { ifSequenceNumberEqualTo ], mediaType: "binary", - serializer: serializer + serializer }; -var clearPagesOperationSpec = { +const clearPagesOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -76557,7 +75654,7 @@ var clearPagesOperationSpec = { headersMapper: PageBlobClearPagesExceptionHeaders } }, - queryParameters: [timeoutInSeconds, comp17], + queryParameters: [timeoutInSeconds, comp19], urlParameters: [url], headerParameters: [ version, @@ -76567,12 +75664,12 @@ var clearPagesOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, range, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags, encryptionScope, ifSequenceNumberLessThanOrEqualTo, @@ -76583,7 +75680,7 @@ var clearPagesOperationSpec = { isXML: true, serializer: xmlSerializer$3 }; -var uploadPagesFromURLOperationSpec = { +const uploadPagesFromURLOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -76595,7 +75692,7 @@ var uploadPagesFromURLOperationSpec = { headersMapper: PageBlobUploadPagesFromURLExceptionHeaders } }, - queryParameters: [timeoutInSeconds, comp17], + queryParameters: [timeoutInSeconds, comp19], urlParameters: [url], headerParameters: [ version, @@ -76605,18 +75702,19 @@ var uploadPagesFromURLOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, + encryptionKey, + encryptionKeySha256, + encryptionAlgorithm, ifMatch, ifNoneMatch, + ifTags, + encryptionScope, sourceIfModifiedSince, sourceIfUnmodifiedSince, sourceIfMatch, sourceIfNoneMatch, - encryptionKey, - encryptionKeySha256, - encryptionAlgorithm, - ifTags, - encryptionScope, sourceContentMD5, + copySourceAuthorization, pageWrite, ifSequenceNumberLessThanOrEqualTo, ifSequenceNumberLessThan, @@ -76629,7 +75727,7 @@ var uploadPagesFromURLOperationSpec = { isXML: true, serializer: xmlSerializer$3 }; -var getPageRangesOperationSpec = { +const getPageRangesOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "GET", responses: { @@ -76645,7 +75743,7 @@ var getPageRangesOperationSpec = { queryParameters: [ timeoutInSeconds, snapshot, - comp18 + comp20 ], urlParameters: [url], headerParameters: [ @@ -76655,15 +75753,15 @@ var getPageRangesOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, + range, ifMatch, ifNoneMatch, - range, ifTags ], isXML: true, serializer: xmlSerializer$3 }; -var getPageRangesDiffOperationSpec = { +const getPageRangesDiffOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "GET", responses: { @@ -76679,7 +75777,7 @@ var getPageRangesDiffOperationSpec = { queryParameters: [ timeoutInSeconds, snapshot, - comp18, + comp20, prevsnapshot ], urlParameters: [url], @@ -76690,16 +75788,16 @@ var getPageRangesDiffOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, + range, ifMatch, ifNoneMatch, - range, ifTags, prevSnapshotUrl ], isXML: true, serializer: xmlSerializer$3 }; -var resizeOperationSpec = { +const resizeOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -76720,11 +75818,11 @@ var resizeOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags, encryptionScope, blobContentLength @@ -76732,7 +75830,7 @@ var resizeOperationSpec = { isXML: true, serializer: xmlSerializer$3 }; -var updateSequenceNumberOperationSpec = { +const updateSequenceNumberOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -76762,7 +75860,7 @@ var updateSequenceNumberOperationSpec = { isXML: true, serializer: xmlSerializer$3 }; -var copyIncrementalOperationSpec = { +const copyIncrementalOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -76774,7 +75872,7 @@ var copyIncrementalOperationSpec = { headersMapper: PageBlobCopyIncrementalExceptionHeaders } }, - queryParameters: [timeoutInSeconds, comp19], + queryParameters: [timeoutInSeconds, comp21], urlParameters: [url], headerParameters: [ version, @@ -76799,12 +75897,12 @@ var copyIncrementalOperationSpec = { * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ /** Class representing a AppendBlob. */ -var AppendBlob = /** @class */ (function () { +class AppendBlob { /** * Initialize a new instance of the class AppendBlob class. * @param client Reference to the service client */ - function AppendBlob(client) { + constructor(client) { this.client = client; } /** @@ -76812,13 +75910,13 @@ var AppendBlob = /** @class */ (function () { * @param contentLength The length of the request. * @param options The options parameters. */ - AppendBlob.prototype.create = function (contentLength, options) { - var operationArguments = { - contentLength: contentLength, + create(contentLength, options) { + const operationArguments = { + contentLength, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, createOperationSpec$2); - }; + } /** * The Append Block operation commits a new block of data to the end of an existing append blob. The * Append Block operation is permitted only if the blob was created with x-ms-blob-type set to @@ -76827,14 +75925,14 @@ var AppendBlob = /** @class */ (function () { * @param body Initial data * @param options The options parameters. */ - AppendBlob.prototype.appendBlock = function (contentLength, body, options) { - var operationArguments = { - contentLength: contentLength, - body: body, + appendBlock(contentLength, body, options) { + const operationArguments = { + contentLength, + body, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, appendBlockOperationSpec); - }; + } /** * The Append Block operation commits a new block of data to the end of an existing append blob where * the contents are read from a source url. The Append Block operation is permitted only if the blob @@ -76844,31 +75942,30 @@ var AppendBlob = /** @class */ (function () { * @param contentLength The length of the request. * @param options The options parameters. */ - AppendBlob.prototype.appendBlockFromUrl = function (sourceUrl, contentLength, options) { - var operationArguments = { - sourceUrl: sourceUrl, - contentLength: contentLength, + appendBlockFromUrl(sourceUrl, contentLength, options) { + const operationArguments = { + sourceUrl, + contentLength, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, appendBlockFromUrlOperationSpec); - }; + } /** * The Seal operation seals the Append Blob to make it read-only. Seal is supported only on version * 2019-12-12 version or later. * @param options The options parameters. */ - AppendBlob.prototype.seal = function (options) { - var operationArguments = { + seal(options) { + const operationArguments = { options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, sealOperationSpec); - }; - return AppendBlob; -}()); + } +} // Operation Specifications -var xmlSerializer$4 = new coreHttp.Serializer(Mappers, /* isXml */ true); -var serializer$1 = new coreHttp.Serializer(Mappers, /* isXml */ false); -var createOperationSpec$2 = { +const xmlSerializer$4 = new coreHttp.Serializer(Mappers, /* isXml */ true); +const serializer$1 = new coreHttp.Serializer(Mappers, /* isXml */ false); +const createOperationSpec$2 = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -76891,11 +75988,11 @@ var createOperationSpec$2 = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags, blobCacheControl, blobContentType, @@ -76903,14 +76000,17 @@ var createOperationSpec$2 = { blobContentEncoding, blobContentLanguage, blobContentDisposition, + immutabilityPolicyExpiry, + immutabilityPolicyMode, encryptionScope, blobTagsString, + legalHold1, blobType1 ], isXML: true, serializer: xmlSerializer$4 }; -var appendBlockOperationSpec = { +const appendBlockOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -76923,7 +76023,7 @@ var appendBlockOperationSpec = { } }, requestBody: body1, - queryParameters: [timeoutInSeconds, comp20], + queryParameters: [timeoutInSeconds, comp22], urlParameters: [url], headerParameters: [ version, @@ -76932,16 +76032,16 @@ var appendBlockOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags, encryptionScope, transactionalContentMD5, transactionalContentCrc64, - contentType2, + contentType1, accept2, maxSize, appendPosition @@ -76949,7 +76049,7 @@ var appendBlockOperationSpec = { mediaType: "binary", serializer: serializer$1 }; -var appendBlockFromUrlOperationSpec = { +const appendBlockFromUrlOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -76961,7 +76061,7 @@ var appendBlockFromUrlOperationSpec = { headersMapper: AppendBlobAppendBlockFromUrlExceptionHeaders } }, - queryParameters: [timeoutInSeconds, comp20], + queryParameters: [timeoutInSeconds, comp22], urlParameters: [url], headerParameters: [ version, @@ -76971,18 +76071,19 @@ var appendBlockFromUrlOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, + encryptionKey, + encryptionKeySha256, + encryptionAlgorithm, ifMatch, ifNoneMatch, + ifTags, + encryptionScope, sourceIfModifiedSince, sourceIfUnmodifiedSince, sourceIfMatch, sourceIfNoneMatch, - encryptionKey, - encryptionKeySha256, - encryptionAlgorithm, - ifTags, - encryptionScope, sourceContentMD5, + copySourceAuthorization, transactionalContentMD5, sourceUrl, sourceContentCrc64, @@ -76993,7 +76094,7 @@ var appendBlockFromUrlOperationSpec = { isXML: true, serializer: xmlSerializer$4 }; -var sealOperationSpec = { +const sealOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -77005,7 +76106,7 @@ var sealOperationSpec = { headersMapper: AppendBlobSealExceptionHeaders } }, - queryParameters: [timeoutInSeconds, comp21], + queryParameters: [timeoutInSeconds, comp23], urlParameters: [url], headerParameters: [ version, @@ -77030,12 +76131,12 @@ var sealOperationSpec = { * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ /** Class representing a BlockBlob. */ -var BlockBlob = /** @class */ (function () { +class BlockBlob { /** * Initialize a new instance of the class BlockBlob class. * @param client Reference to the service client */ - function BlockBlob(client) { + constructor(client) { this.client = client; } /** @@ -77047,14 +76148,14 @@ var BlockBlob = /** @class */ (function () { * @param body Initial data * @param options The options parameters. */ - BlockBlob.prototype.upload = function (contentLength, body, options) { - var operationArguments = { - contentLength: contentLength, - body: body, + upload(contentLength, body, options) { + const operationArguments = { + contentLength, + body, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, uploadOperationSpec); - }; + } /** * The Put Blob from URL operation creates a new Block Blob where the contents of the blob are read * from a given URL. This API is supported beginning with the 2020-04-08 version. Partial updates are @@ -77068,14 +76169,14 @@ var BlockBlob = /** @class */ (function () { * access signature. * @param options The options parameters. */ - BlockBlob.prototype.putBlobFromUrl = function (contentLength, copySource, options) { - var operationArguments = { - contentLength: contentLength, - copySource: copySource, + putBlobFromUrl(contentLength, copySource, options) { + const operationArguments = { + contentLength, + copySource, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, putBlobFromUrlOperationSpec); - }; + } /** * The Stage Block operation creates a new block to be committed as part of a blob * @param blockId A valid Base64 string value that identifies the block. Prior to encoding, the string @@ -77085,15 +76186,15 @@ var BlockBlob = /** @class */ (function () { * @param body Initial data * @param options The options parameters. */ - BlockBlob.prototype.stageBlock = function (blockId, contentLength, body, options) { - var operationArguments = { - blockId: blockId, - contentLength: contentLength, - body: body, + stageBlock(blockId, contentLength, body, options) { + const operationArguments = { + blockId, + contentLength, + body, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, stageBlockOperationSpec); - }; + } /** * The Stage Block operation creates a new block to be committed as part of a blob where the contents * are read from a URL. @@ -77104,15 +76205,15 @@ var BlockBlob = /** @class */ (function () { * @param sourceUrl Specify a URL to the copy source. * @param options The options parameters. */ - BlockBlob.prototype.stageBlockFromURL = function (blockId, contentLength, sourceUrl, options) { - var operationArguments = { - blockId: blockId, - contentLength: contentLength, - sourceUrl: sourceUrl, + stageBlockFromURL(blockId, contentLength, sourceUrl, options) { + const operationArguments = { + blockId, + contentLength, + sourceUrl, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, stageBlockFromURLOperationSpec); - }; + } /** * The Commit Block List operation writes a blob by specifying the list of block IDs that make up the * blob. In order to be written as part of a blob, a block must have been successfully written to the @@ -77121,16 +76222,16 @@ var BlockBlob = /** @class */ (function () { * do this by specifying whether to commit a block from the committed block list or from the * uncommitted block list, or to commit the most recently uploaded version of the block, whichever list * it may belong to. - * @param blocks + * @param blocks Blob Blocks. * @param options The options parameters. */ - BlockBlob.prototype.commitBlockList = function (blocks, options) { - var operationArguments = { - blocks: blocks, + commitBlockList(blocks, options) { + const operationArguments = { + blocks, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, commitBlockListOperationSpec); - }; + } /** * The Get Block List operation retrieves the list of blocks that have been uploaded as part of a block * blob @@ -77138,19 +76239,18 @@ var BlockBlob = /** @class */ (function () { * blocks, or both lists together. * @param options The options parameters. */ - BlockBlob.prototype.getBlockList = function (listType, options) { - var operationArguments = { - listType: listType, + getBlockList(listType, options) { + const operationArguments = { + listType, options: coreHttp.operationOptionsToRequestOptionsBase(options || {}) }; return this.client.sendOperationRequest(operationArguments, getBlockListOperationSpec); - }; - return BlockBlob; -}()); + } +} // Operation Specifications -var xmlSerializer$5 = new coreHttp.Serializer(Mappers, /* isXml */ true); -var serializer$2 = new coreHttp.Serializer(Mappers, /* isXml */ false); -var uploadOperationSpec = { +const xmlSerializer$5 = new coreHttp.Serializer(Mappers, /* isXml */ true); +const serializer$2 = new coreHttp.Serializer(Mappers, /* isXml */ false); +const uploadOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -77173,11 +76273,11 @@ var uploadOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags, blobCacheControl, blobContentType, @@ -77185,18 +76285,21 @@ var uploadOperationSpec = { blobContentEncoding, blobContentLanguage, blobContentDisposition, + immutabilityPolicyExpiry, + immutabilityPolicyMode, encryptionScope, tier, blobTagsString, + legalHold1, transactionalContentMD5, - contentType2, + contentType1, accept2, blobType2 ], mediaType: "binary", serializer: serializer$2 }; -var putBlobFromUrlOperationSpec = { +const putBlobFromUrlOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -77219,15 +76322,11 @@ var putBlobFromUrlOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, - sourceIfModifiedSince, - sourceIfUnmodifiedSince, - sourceIfMatch, - sourceIfNoneMatch, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags, blobCacheControl, blobContentType, @@ -77237,10 +76336,15 @@ var putBlobFromUrlOperationSpec = { blobContentDisposition, encryptionScope, tier, + sourceIfModifiedSince, + sourceIfUnmodifiedSince, + sourceIfMatch, + sourceIfNoneMatch, sourceIfTags, copySource, blobTagsString, sourceContentMD5, + copySourceAuthorization, transactionalContentMD5, blobType2, copySourceBlobProperties @@ -77248,7 +76352,7 @@ var putBlobFromUrlOperationSpec = { isXML: true, serializer: xmlSerializer$5 }; -var stageBlockOperationSpec = { +const stageBlockOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -77263,7 +76367,7 @@ var stageBlockOperationSpec = { requestBody: body1, queryParameters: [ timeoutInSeconds, - comp22, + comp24, blockId ], urlParameters: [url], @@ -77278,13 +76382,13 @@ var stageBlockOperationSpec = { encryptionScope, transactionalContentMD5, transactionalContentCrc64, - contentType2, + contentType1, accept2 ], mediaType: "binary", serializer: serializer$2 }; -var stageBlockFromURLOperationSpec = { +const stageBlockFromURLOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -77298,7 +76402,7 @@ var stageBlockFromURLOperationSpec = { }, queryParameters: [ timeoutInSeconds, - comp22, + comp24, blockId ], urlParameters: [url], @@ -77308,15 +76412,16 @@ var stageBlockFromURLOperationSpec = { accept1, contentLength, leaseId, - sourceIfModifiedSince, - sourceIfUnmodifiedSince, - sourceIfMatch, - sourceIfNoneMatch, encryptionKey, encryptionKeySha256, encryptionAlgorithm, encryptionScope, + sourceIfModifiedSince, + sourceIfUnmodifiedSince, + sourceIfMatch, + sourceIfNoneMatch, sourceContentMD5, + copySourceAuthorization, sourceUrl, sourceContentCrc64, sourceRange1 @@ -77324,7 +76429,7 @@ var stageBlockFromURLOperationSpec = { isXML: true, serializer: xmlSerializer$5 }; -var commitBlockListOperationSpec = { +const commitBlockListOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "PUT", responses: { @@ -77337,7 +76442,7 @@ var commitBlockListOperationSpec = { } }, requestBody: blocks, - queryParameters: [timeoutInSeconds, comp23], + queryParameters: [timeoutInSeconds, comp25], urlParameters: [url], headerParameters: [ contentType, @@ -77348,11 +76453,11 @@ var commitBlockListOperationSpec = { leaseId, ifModifiedSince, ifUnmodifiedSince, - ifMatch, - ifNoneMatch, encryptionKey, encryptionKeySha256, encryptionAlgorithm, + ifMatch, + ifNoneMatch, ifTags, blobCacheControl, blobContentType, @@ -77360,9 +76465,12 @@ var commitBlockListOperationSpec = { blobContentEncoding, blobContentLanguage, blobContentDisposition, + immutabilityPolicyExpiry, + immutabilityPolicyMode, encryptionScope, tier, blobTagsString, + legalHold1, transactionalContentMD5, transactionalContentCrc64 ], @@ -77371,7 +76479,7 @@ var commitBlockListOperationSpec = { mediaType: "xml", serializer: xmlSerializer$5 }; -var getBlockListOperationSpec = { +const getBlockListOperationSpec = { path: "/{containerName}/{blob}", httpMethod: "GET", responses: { @@ -77387,7 +76495,7 @@ var getBlockListOperationSpec = { queryParameters: [ timeoutInSeconds, snapshot, - comp23, + comp25, listType ], urlParameters: [url], @@ -77406,23 +76514,23 @@ var getBlockListOperationSpec = { /** * The `@azure/logger` configuration for this package. */ -var logger = logger$1.createClientLogger("storage-blob"); +const logger = logger$1.createClientLogger("storage-blob"); // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -var SDK_VERSION = "12.6.0"; -var SERVICE_VERSION = "2020-08-04"; -var BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES = 256 * 1024 * 1024; // 256MB -var BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES = 4000 * 1024 * 1024; // 4000MB -var BLOCK_BLOB_MAX_BLOCKS = 50000; -var DEFAULT_BLOCK_BUFFER_SIZE_BYTES = 8 * 1024 * 1024; // 8MB -var DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES = 4 * 1024 * 1024; // 4MB -var DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS = 5; +const SDK_VERSION = "12.8.0"; +const SERVICE_VERSION = "2020-10-02"; +const BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES = 256 * 1024 * 1024; // 256MB +const BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES = 4000 * 1024 * 1024; // 4000MB +const BLOCK_BLOB_MAX_BLOCKS = 50000; +const DEFAULT_BLOCK_BUFFER_SIZE_BYTES = 8 * 1024 * 1024; // 8MB +const DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES = 4 * 1024 * 1024; // 4MB +const DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS = 5; /** * The OAuth scope to use with Azure Storage. */ -var StorageOAuthScopes = "https://storage.azure.com/.default"; -var URLConstants = { +const StorageOAuthScopes = "https://storage.azure.com/.default"; +const URLConstants = { Parameters: { FORCE_BROWSER_NO_CACHE: "_", SIGNATURE: "sig", @@ -77431,14 +76539,14 @@ var URLConstants = { TIMEOUT: "timeout" } }; -var HTTPURLConnection = { +const HTTPURLConnection = { HTTP_ACCEPTED: 202, HTTP_CONFLICT: 409, HTTP_NOT_FOUND: 404, HTTP_PRECON_FAILED: 412, HTTP_RANGE_NOT_SATISFIABLE: 416 }; -var HeaderConstants = { +const HeaderConstants = { AUTHORIZATION: "Authorization", AUTHORIZATION_SCHEME: "Bearer", CONTENT_ENCODING: "Content-Encoding", @@ -77463,16 +76571,16 @@ var HeaderConstants = { X_MS_ERROR_CODE: "x-ms-error-code", X_MS_VERSION: "x-ms-version" }; -var ETagNone = ""; -var ETagAny = "*"; -var SIZE_1_MB = 1 * 1024 * 1024; -var BATCH_MAX_REQUEST = 256; -var BATCH_MAX_PAYLOAD_IN_BYTES = 4 * SIZE_1_MB; -var HTTP_LINE_ENDING = "\r\n"; -var HTTP_VERSION_1_1 = "HTTP/1.1"; -var EncryptionAlgorithmAES25 = "AES256"; -var DevelopmentConnectionString = "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;"; -var StorageBlobLoggingAllowedHeaderNames = [ +const ETagNone = ""; +const ETagAny = "*"; +const SIZE_1_MB = 1 * 1024 * 1024; +const BATCH_MAX_REQUEST = 256; +const BATCH_MAX_PAYLOAD_IN_BYTES = 4 * SIZE_1_MB; +const HTTP_LINE_ENDING = "\r\n"; +const HTTP_VERSION_1_1 = "HTTP/1.1"; +const EncryptionAlgorithmAES25 = "AES256"; +const DevelopmentConnectionString = `DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;`; +const StorageBlobLoggingAllowedHeaderNames = [ "Access-Control-Allow-Origin", "Cache-Control", "Content-Length", @@ -77568,7 +76676,7 @@ var StorageBlobLoggingAllowedHeaderNames = [ "x-ms-if-tags", "x-ms-source-if-tags" ]; -var StorageBlobLoggingAllowedQueryParameters = [ +const StorageBlobLoggingAllowedQueryParameters = [ "comp", "maxresults", "rscc", @@ -77658,8 +76766,8 @@ var StorageBlobLoggingAllowedQueryParameters = [ * @param url - */ function escapeURLPath(url) { - var urlParsed = coreHttp.URLBuilder.parse(url); - var path = urlParsed.getPath(); + const urlParsed = coreHttp.URLBuilder.parse(url); + let path = urlParsed.getPath(); path = path || "/"; path = escape(path); urlParsed.setPath(path); @@ -77668,12 +76776,11 @@ function escapeURLPath(url) { function getProxyUriFromDevConnString(connectionString) { // Development Connection String // https://docs.microsoft.com/en-us/azure/storage/common/storage-configure-connection-string#connect-to-the-emulator-account-using-the-well-known-account-name-and-key - var proxyUri = ""; + let proxyUri = ""; if (connectionString.search("DevelopmentStorageProxyUri=") !== -1) { // CONNECTION_STRING=UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://myProxyUri - var matchCredentials = connectionString.split(";"); - for (var _i = 0, matchCredentials_1 = matchCredentials; _i < matchCredentials_1.length; _i++) { - var element = matchCredentials_1[_i]; + const matchCredentials = connectionString.split(";"); + for (const element of matchCredentials) { if (element.trim().startsWith("DevelopmentStorageProxyUri=")) { proxyUri = element.trim().match("DevelopmentStorageProxyUri=(.*)")[1]; } @@ -77682,9 +76789,8 @@ function getProxyUriFromDevConnString(connectionString) { return proxyUri; } function getValueInConnString(connectionString, argument) { - var elements = connectionString.split(";"); - for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) { - var element = elements_1[_i]; + const elements = connectionString.split(";"); + for (const element of elements) { if (element.trim().startsWith(argument)) { return element.trim().match(argument + "=(.*)")[1]; } @@ -77698,24 +76804,24 @@ function getValueInConnString(connectionString, argument) { * @returns String key value pairs of the storage account's url and credentials. */ function extractConnectionStringParts(connectionString) { - var proxyUri = ""; + let proxyUri = ""; if (connectionString.startsWith("UseDevelopmentStorage=true")) { // Development connection string proxyUri = getProxyUriFromDevConnString(connectionString); connectionString = DevelopmentConnectionString; } // Matching BlobEndpoint in the Account connection string - var blobEndpoint = getValueInConnString(connectionString, "BlobEndpoint"); + let blobEndpoint = getValueInConnString(connectionString, "BlobEndpoint"); // Slicing off '/' at the end if exists // (The methods that use `extractConnectionStringParts` expect the url to not have `/` at the end) blobEndpoint = blobEndpoint.endsWith("/") ? blobEndpoint.slice(0, -1) : blobEndpoint; if (connectionString.search("DefaultEndpointsProtocol=") !== -1 && connectionString.search("AccountKey=") !== -1) { // Account connection string - var defaultEndpointsProtocol = ""; - var accountName = ""; - var accountKey = Buffer.from("accountKey", "base64"); - var endpointSuffix = ""; + let defaultEndpointsProtocol = ""; + let accountName = ""; + let accountKey = Buffer.from("accountKey", "base64"); + let endpointSuffix = ""; // Get account name and key accountName = getValueInConnString(connectionString, "AccountName"); accountKey = Buffer.from(getValueInConnString(connectionString, "AccountKey"), "base64"); @@ -77723,7 +76829,7 @@ function extractConnectionStringParts(connectionString) { // BlobEndpoint is not present in the Account connection string // Can be obtained from `${defaultEndpointsProtocol}://${accountName}.blob.${endpointSuffix}` defaultEndpointsProtocol = getValueInConnString(connectionString, "DefaultEndpointsProtocol"); - var protocol = defaultEndpointsProtocol.toLowerCase(); + const protocol = defaultEndpointsProtocol.toLowerCase(); if (protocol !== "https" && protocol !== "http") { throw new Error("Invalid DefaultEndpointsProtocol in the provided Connection String. Expecting 'https' or 'http'"); } @@ -77731,7 +76837,7 @@ function extractConnectionStringParts(connectionString) { if (!endpointSuffix) { throw new Error("Invalid EndpointSuffix in the provided Connection String"); } - blobEndpoint = defaultEndpointsProtocol + "://" + accountName + ".blob." + endpointSuffix; + blobEndpoint = `${defaultEndpointsProtocol}://${accountName}.blob.${endpointSuffix}`; } if (!accountName) { throw new Error("Invalid AccountName in the provided Connection String"); @@ -77742,22 +76848,22 @@ function extractConnectionStringParts(connectionString) { return { kind: "AccountConnString", url: blobEndpoint, - accountName: accountName, - accountKey: accountKey, - proxyUri: proxyUri + accountName, + accountKey, + proxyUri }; } else { // SAS connection string - var accountSas = getValueInConnString(connectionString, "SharedAccessSignature"); - var accountName = getAccountNameFromUrl(blobEndpoint); + const accountSas = getValueInConnString(connectionString, "SharedAccessSignature"); + const accountName = getAccountNameFromUrl(blobEndpoint); if (!blobEndpoint) { throw new Error("Invalid BlobEndpoint in the provided SAS Connection String"); } else if (!accountSas) { throw new Error("Invalid SharedAccessSignature in the provided SAS Connection String"); } - return { kind: "SASConnString", url: blobEndpoint, accountName: accountName, accountSas: accountSas }; + return { kind: "SASConnString", url: blobEndpoint, accountName, accountSas }; } } /** @@ -77781,9 +76887,9 @@ function escape(text) { * @returns An updated URL string */ function appendToURLPath(url, name) { - var urlParsed = coreHttp.URLBuilder.parse(url); - var path = urlParsed.getPath(); - path = path ? (path.endsWith("/") ? "" + path + name : path + "/" + name) : name; + const urlParsed = coreHttp.URLBuilder.parse(url); + let path = urlParsed.getPath(); + path = path ? (path.endsWith("/") ? `${path}${name}` : `${path}/${name}`) : name; urlParsed.setPath(path); return urlParsed.toString(); } @@ -77797,7 +76903,7 @@ function appendToURLPath(url, name) { * @returns An updated URL string */ function setURLParameter(url, name, value) { - var urlParsed = coreHttp.URLBuilder.parse(url); + const urlParsed = coreHttp.URLBuilder.parse(url); urlParsed.setQueryParameter(name, value); return urlParsed.toString(); } @@ -77808,7 +76914,7 @@ function setURLParameter(url, name, value) { * @param name - */ function getURLParameter(url, name) { - var urlParsed = coreHttp.URLBuilder.parse(url); + const urlParsed = coreHttp.URLBuilder.parse(url); return urlParsed.getQueryParameterValue(name); } /** @@ -77819,7 +76925,7 @@ function getURLParameter(url, name) { * @returns An updated URL string */ function setURLHost(url, host) { - var urlParsed = coreHttp.URLBuilder.parse(url); + const urlParsed = coreHttp.URLBuilder.parse(url); urlParsed.setHost(host); return urlParsed.toString(); } @@ -77829,7 +76935,7 @@ function setURLHost(url, host) { * @param url - Source URL string */ function getURLPath(url) { - var urlParsed = coreHttp.URLBuilder.parse(url); + const urlParsed = coreHttp.URLBuilder.parse(url); return urlParsed.getPath(); } /** @@ -77838,7 +76944,7 @@ function getURLPath(url) { * @param url - Source URL string */ function getURLScheme(url) { - var urlParsed = coreHttp.URLBuilder.parse(url); + const urlParsed = coreHttp.URLBuilder.parse(url); return urlParsed.getScheme(); } /** @@ -77847,17 +76953,17 @@ function getURLScheme(url) { * @param url - Source URL string */ function getURLPathAndQuery(url) { - var urlParsed = coreHttp.URLBuilder.parse(url); - var pathString = urlParsed.getPath(); + const urlParsed = coreHttp.URLBuilder.parse(url); + const pathString = urlParsed.getPath(); if (!pathString) { throw new RangeError("Invalid url without valid path."); } - var queryString = urlParsed.getQuery() || ""; + let queryString = urlParsed.getQuery() || ""; queryString = queryString.trim(); - if (queryString != "") { - queryString = queryString.startsWith("?") ? queryString : "?" + queryString; // Ensure query string start with '?' + if (queryString !== "") { + queryString = queryString.startsWith("?") ? queryString : `?${queryString}`; // Ensure query string start with '?' } - return "" + pathString + queryString; + return `${pathString}${queryString}`; } /** * Get URL query key value pairs from an URL string. @@ -77865,24 +76971,23 @@ function getURLPathAndQuery(url) { * @param url - */ function getURLQueries(url) { - var queryString = coreHttp.URLBuilder.parse(url).getQuery(); + let queryString = coreHttp.URLBuilder.parse(url).getQuery(); if (!queryString) { return {}; } queryString = queryString.trim(); queryString = queryString.startsWith("?") ? queryString.substr(1) : queryString; - var querySubStrings = queryString.split("&"); - querySubStrings = querySubStrings.filter(function (value) { - var indexOfEqual = value.indexOf("="); - var lastIndexOfEqual = value.lastIndexOf("="); + let querySubStrings = queryString.split("&"); + querySubStrings = querySubStrings.filter((value) => { + const indexOfEqual = value.indexOf("="); + const lastIndexOfEqual = value.lastIndexOf("="); return (indexOfEqual > 0 && indexOfEqual === lastIndexOfEqual && lastIndexOfEqual < value.length - 1); }); - var queries = {}; - for (var _i = 0, querySubStrings_1 = querySubStrings; _i < querySubStrings_1.length; _i++) { - var querySubString = querySubStrings_1[_i]; - var splitResults = querySubString.split("="); - var key = splitResults[0]; - var value = splitResults[1]; + const queries = {}; + for (const querySubString of querySubStrings) { + const splitResults = querySubString.split("="); + const key = splitResults[0]; + const value = splitResults[1]; queries[key] = value; } return queries; @@ -77895,8 +77000,8 @@ function getURLQueries(url) { * @returns An updated URL string. */ function appendToURLQuery(url, queryParts) { - var urlParsed = coreHttp.URLBuilder.parse(url); - var query = urlParsed.getQuery(); + const urlParsed = coreHttp.URLBuilder.parse(url); + let query = urlParsed.getQuery(); if (query) { query += "&" + queryParts; } @@ -77914,10 +77019,9 @@ function appendToURLQuery(url, queryParts) { * If false, YYYY-MM-DDThh:mm:ssZ will be returned. * @returns Date string in ISO8061 format, with or without 7 milliseconds component */ -function truncatedISO8061Date(date, withMilliseconds) { - if (withMilliseconds === void 0) { withMilliseconds = true; } +function truncatedISO8061Date(date, withMilliseconds = true) { // Date.toISOString() will return like "2018-10-29T06:34:36.139Z" - var dateString = date.toISOString(); + const dateString = date.toISOString(); return withMilliseconds ? dateString.substring(0, dateString.length - 1) + "0000" + "Z" : dateString.substring(0, dateString.length - 5) + "Z"; @@ -77937,14 +77041,14 @@ function base64encode(content) { */ function generateBlockID(blockIDPrefix, blockIndex) { // To generate a 64 bytes base64 string, source string should be 48 - var maxSourceStringLength = 48; + const maxSourceStringLength = 48; // A blob can have a maximum of 100,000 uncommitted blocks at any given time - var maxBlockIndexLength = 6; - var maxAllowedBlockIDPrefixLength = maxSourceStringLength - maxBlockIndexLength; + const maxBlockIndexLength = 6; + const maxAllowedBlockIDPrefixLength = maxSourceStringLength - maxBlockIndexLength; if (blockIDPrefix.length > maxAllowedBlockIDPrefixLength) { blockIDPrefix = blockIDPrefix.slice(0, maxAllowedBlockIDPrefixLength); } - var res = blockIDPrefix + + const res = blockIDPrefix + padStart(blockIndex.toString(), maxSourceStringLength - blockIDPrefix.length, "0"); return base64encode(res); } @@ -77955,29 +77059,26 @@ function generateBlockID(blockIDPrefix, blockIndex) { * @param aborter - * @param abortError - */ -function delay(timeInMs, aborter, abortError) { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - return [2 /*return*/, new Promise(function (resolve, reject) { - var timeout; - var abortHandler = function () { - if (timeout !== undefined) { - clearTimeout(timeout); - } - reject(abortError); - }; - var resolveHandler = function () { - if (aborter !== undefined) { - aborter.removeEventListener("abort", abortHandler); - } - resolve(); - }; - timeout = setTimeout(resolveHandler, timeInMs); - if (aborter !== undefined) { - aborter.addEventListener("abort", abortHandler); - } - })]; - }); +async function delay(timeInMs, aborter, abortError) { + return new Promise((resolve, reject) => { + /* eslint-disable-next-line prefer-const */ + let timeout; + const abortHandler = () => { + if (timeout !== undefined) { + clearTimeout(timeout); + } + reject(abortError); + }; + const resolveHandler = () => { + if (aborter !== undefined) { + aborter.removeEventListener("abort", abortHandler); + } + resolve(); + }; + timeout = setTimeout(resolveHandler, timeInMs); + if (aborter !== undefined) { + aborter.addEventListener("abort", abortHandler); + } }); } /** @@ -77987,10 +77088,8 @@ function delay(timeInMs, aborter, abortError) { * @param targetLength - * @param padString - */ -function padStart(currentString, targetLength, padString) { - if (padString === void 0) { padString = " "; } - // TS doesn't know this code needs to run downlevel sometimes. - // @ts-expect-error +function padStart(currentString, targetLength, padString = " ") { + // @ts-expect-error: TS doesn't know this code needs to run downlevel sometimes if (String.prototype.padStart) { return currentString.padStart(targetLength, padString); } @@ -78021,8 +77120,8 @@ function iEqual(str1, str2) { * @returns with the account name */ function getAccountNameFromUrl(url) { - var parsedUrl = coreHttp.URLBuilder.parse(url); - var accountName; + const parsedUrl = coreHttp.URLBuilder.parse(url); + let accountName; try { if (parsedUrl.getHost().split(".")[1] === "blob") { // `${defaultEndpointsProtocol}://${accountName}.blob.${endpointSuffix}`; @@ -78045,10 +77144,10 @@ function getAccountNameFromUrl(url) { } } function isIpEndpointStyle(parsedUrl) { - if (parsedUrl.getHost() == undefined) { + if (parsedUrl.getHost() === undefined) { return false; } - var host = parsedUrl.getHost() + (parsedUrl.getPort() == undefined ? "" : ":" + parsedUrl.getPort()); + const host = parsedUrl.getHost() + (parsedUrl.getPort() === undefined ? "" : ":" + parsedUrl.getPort()); // Case 1: Ipv6, use a broad regex to find out candidates whose host contains two ':'. // Case 2: localhost(:port), use broad regex to match port part. // Case 3: Ipv4, use broad regex which just check if host contains Ipv4. @@ -78064,11 +77163,11 @@ function toBlobTagsString(tags) { if (tags === undefined) { return undefined; } - var tagPairs = []; - for (var key in tags) { - if (tags.hasOwnProperty(key)) { - var value = tags[key]; - tagPairs.push(encodeURIComponent(key) + "=" + encodeURIComponent(value)); + const tagPairs = []; + for (const key in tags) { + if (Object.prototype.hasOwnProperty.call(tags, key)) { + const value = tags[key]; + tagPairs.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`); } } return tagPairs.join("&"); @@ -78082,15 +77181,15 @@ function toBlobTags(tags) { if (tags === undefined) { return undefined; } - var res = { + const res = { blobTagSet: [] }; - for (var key in tags) { - if (tags.hasOwnProperty(key)) { - var value = tags[key]; + for (const key in tags) { + if (Object.prototype.hasOwnProperty.call(tags, key)) { + const value = tags[key]; res.blobTagSet.push({ - key: key, - value: value + key, + value }); } } @@ -78105,9 +77204,8 @@ function toTags(tags) { if (tags === undefined) { return undefined; } - var res = {}; - for (var _i = 0, _a = tags.blobTagSet; _i < _a.length; _i++) { - var blobTag = _a[_i]; + const res = {}; + for (const blobTag of tags.blobTagSet) { res[blobTag.key] = blobTag.value; } return res; @@ -78153,6 +77251,12 @@ function toQuerySerialization(textConfiguration) { } } }; + case "parquet": + return { + format: { + type: "parquet" + } + }; default: throw Error("Invalid BlobQueryTextConfiguration."); } @@ -78166,18 +77270,18 @@ function parseObjectReplicationRecord(objectReplicationRecord) { // the policy id should already be stored in the ObjectReplicationDestinationPolicyId. return undefined; } - var orProperties = []; - var _loop_1 = function (key) { - var ids = key.split("_"); - var policyPrefix = "or-"; + const orProperties = []; + for (const key in objectReplicationRecord) { + const ids = key.split("_"); + const policyPrefix = "or-"; if (ids[0].startsWith(policyPrefix)) { ids[0] = ids[0].substring(policyPrefix.length); } - var rule = { + const rule = { ruleId: ids[1], replicationStatus: objectReplicationRecord[key] }; - var policyIndex = orProperties.findIndex(function (policy) { return policy.policyId === ids[0]; }); + const policyIndex = orProperties.findIndex((policy) => policy.policyId === ids[0]); if (policyIndex > -1) { orProperties[policyIndex].rules.push(rule); } @@ -78187,9 +77291,6 @@ function parseObjectReplicationRecord(objectReplicationRecord) { rules: [rule] }); } - }; - for (var key in objectReplicationRecord) { - _loop_1(key); } return orProperties; } @@ -78203,6 +77304,9 @@ function attachCredential(thing, credential) { thing.credential = credential; return thing; } +function httpAuthorizationToString(httpAuthorization) { + return httpAuthorization ? httpAuthorization.scheme + " " + httpAuthorization.value : undefined; +} // Copyright (c) Microsoft Corporation. /** @@ -78216,51 +77320,44 @@ function attachCredential(thing, credential) { * * 3. Remove content-length header to avoid browsers warning */ -var StorageBrowserPolicy = /** @class */ (function (_super) { - tslib.__extends(StorageBrowserPolicy, _super); +class StorageBrowserPolicy extends coreHttp.BaseRequestPolicy { /** * Creates an instance of StorageBrowserPolicy. * @param nextPolicy - * @param options - */ - function StorageBrowserPolicy(nextPolicy, options) { - return _super.call(this, nextPolicy, options) || this; + // The base class has a protected constructor. Adding a public one to enable constructing of this class. + /* eslint-disable-next-line @typescript-eslint/no-useless-constructor*/ + constructor(nextPolicy, options) { + super(nextPolicy, options); } /** * Sends out request. * * @param request - */ - StorageBrowserPolicy.prototype.sendRequest = function (request) { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - { - return [2 /*return*/, this._nextPolicy.sendRequest(request)]; - } - }); - }); - }; - return StorageBrowserPolicy; -}(coreHttp.BaseRequestPolicy)); + async sendRequest(request) { + { + return this._nextPolicy.sendRequest(request); + } + } +} // Copyright (c) Microsoft Corporation. /** * StorageBrowserPolicyFactory is a factory class helping generating StorageBrowserPolicy objects. */ -var StorageBrowserPolicyFactory = /** @class */ (function () { - function StorageBrowserPolicyFactory() { - } +class StorageBrowserPolicyFactory { /** * Creates a StorageBrowserPolicyFactory object. * * @param nextPolicy - * @param options - */ - StorageBrowserPolicyFactory.prototype.create = function (nextPolicy, options) { + create(nextPolicy, options) { return new StorageBrowserPolicy(nextPolicy, options); - }; - return StorageBrowserPolicyFactory; -}()); + } +} // Copyright (c) Microsoft Corporation. (function (StorageRetryPolicyType) { @@ -78274,7 +77371,7 @@ var StorageBrowserPolicyFactory = /** @class */ (function () { StorageRetryPolicyType[StorageRetryPolicyType["FIXED"] = 1] = "FIXED"; })(exports.StorageRetryPolicyType || (exports.StorageRetryPolicyType = {})); // Default values of StorageRetryOptions -var DEFAULT_RETRY_OPTIONS = { +const DEFAULT_RETRY_OPTIONS = { maxRetryDelayInMs: 120 * 1000, maxTries: 4, retryDelayInMs: 4 * 1000, @@ -78282,12 +77379,11 @@ var DEFAULT_RETRY_OPTIONS = { secondaryHost: "", tryTimeoutInMs: undefined // Use server side default timeout strategy }; -var RETRY_ABORT_ERROR = new abortController.AbortError("The operation was aborted."); +const RETRY_ABORT_ERROR = new abortController.AbortError("The operation was aborted."); /** * Retry policy with exponential retry and linear retry implemented. */ -var StorageRetryPolicy = /** @class */ (function (_super) { - tslib.__extends(StorageRetryPolicy, _super); +class StorageRetryPolicy extends coreHttp.BaseRequestPolicy { /** * Creates an instance of RetryPolicy. * @@ -78295,11 +77391,10 @@ var StorageRetryPolicy = /** @class */ (function (_super) { * @param options - * @param retryOptions - */ - function StorageRetryPolicy(nextPolicy, options, retryOptions) { - if (retryOptions === void 0) { retryOptions = DEFAULT_RETRY_OPTIONS; } - var _this = _super.call(this, nextPolicy, options) || this; + constructor(nextPolicy, options, retryOptions = DEFAULT_RETRY_OPTIONS) { + super(nextPolicy, options); // Initialize retry options - _this.retryOptions = { + this.retryOptions = { retryPolicyType: retryOptions.retryPolicyType ? retryOptions.retryPolicyType : DEFAULT_RETRY_OPTIONS.retryPolicyType, @@ -78321,20 +77416,15 @@ var StorageRetryPolicy = /** @class */ (function (_super) { ? retryOptions.secondaryHost : DEFAULT_RETRY_OPTIONS.secondaryHost }; - return _this; } /** * Sends request. * * @param request - */ - StorageRetryPolicy.prototype.sendRequest = function (request) { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - return [2 /*return*/, this.attemptSendRequest(request, false, 1)]; - }); - }); - }; + async sendRequest(request) { + return this.attemptSendRequest(request, false, 1); + } /** * Decide and perform next retry. Won't mutate request parameter. * @@ -78345,52 +77435,37 @@ var StorageRetryPolicy = /** @class */ (function (_super) { * @param attempt - How many retries has been attempted to performed, starting from 1, which includes * the attempt will be performed by this method call. */ - StorageRetryPolicy.prototype.attemptSendRequest = function (request, secondaryHas404, attempt) { - return tslib.__awaiter(this, void 0, void 0, function () { - var newRequest, isPrimaryRetry, response, err_1; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - newRequest = request.clone(); - isPrimaryRetry = secondaryHas404 || - !this.retryOptions.secondaryHost || - !(request.method === "GET" || request.method === "HEAD" || request.method === "OPTIONS") || - attempt % 2 === 1; - if (!isPrimaryRetry) { - newRequest.url = setURLHost(newRequest.url, this.retryOptions.secondaryHost); - } - // Set the server-side timeout query parameter "timeout=[seconds]" - if (this.retryOptions.tryTimeoutInMs) { - newRequest.url = setURLParameter(newRequest.url, URLConstants.Parameters.TIMEOUT, Math.floor(this.retryOptions.tryTimeoutInMs / 1000).toString()); - } - _a.label = 1; - case 1: - _a.trys.push([1, 3, , 4]); - logger.info("RetryPolicy: =====> Try=" + attempt + " " + (isPrimaryRetry ? "Primary" : "Secondary")); - return [4 /*yield*/, this._nextPolicy.sendRequest(newRequest)]; - case 2: - response = _a.sent(); - if (!this.shouldRetry(isPrimaryRetry, attempt, response)) { - return [2 /*return*/, response]; - } - secondaryHas404 = secondaryHas404 || (!isPrimaryRetry && response.status === 404); - return [3 /*break*/, 4]; - case 3: - err_1 = _a.sent(); - logger.error("RetryPolicy: Caught error, message: " + err_1.message + ", code: " + err_1.code); - if (!this.shouldRetry(isPrimaryRetry, attempt, response, err_1)) { - throw err_1; - } - return [3 /*break*/, 4]; - case 4: return [4 /*yield*/, this.delay(isPrimaryRetry, attempt, request.abortSignal)]; - case 5: - _a.sent(); - return [4 /*yield*/, this.attemptSendRequest(request, secondaryHas404, ++attempt)]; - case 6: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; + async attemptSendRequest(request, secondaryHas404, attempt) { + const newRequest = request.clone(); + const isPrimaryRetry = secondaryHas404 || + !this.retryOptions.secondaryHost || + !(request.method === "GET" || request.method === "HEAD" || request.method === "OPTIONS") || + attempt % 2 === 1; + if (!isPrimaryRetry) { + newRequest.url = setURLHost(newRequest.url, this.retryOptions.secondaryHost); + } + // Set the server-side timeout query parameter "timeout=[seconds]" + if (this.retryOptions.tryTimeoutInMs) { + newRequest.url = setURLParameter(newRequest.url, URLConstants.Parameters.TIMEOUT, Math.floor(this.retryOptions.tryTimeoutInMs / 1000).toString()); + } + let response; + try { + logger.info(`RetryPolicy: =====> Try=${attempt} ${isPrimaryRetry ? "Primary" : "Secondary"}`); + response = await this._nextPolicy.sendRequest(newRequest); + if (!this.shouldRetry(isPrimaryRetry, attempt, response)) { + return response; + } + secondaryHas404 = secondaryHas404 || (!isPrimaryRetry && response.status === 404); + } + catch (err) { + logger.error(`RetryPolicy: Caught error, message: ${err.message}, code: ${err.code}`); + if (!this.shouldRetry(isPrimaryRetry, attempt, response, err)) { + throw err; + } + } + await this.delay(isPrimaryRetry, attempt, request.abortSignal); + return this.attemptSendRequest(request, secondaryHas404, ++attempt); + } /** * Decide whether to retry according to last HTTP response and retry counters. * @@ -78399,15 +77474,15 @@ var StorageRetryPolicy = /** @class */ (function (_super) { * @param response - * @param err - */ - StorageRetryPolicy.prototype.shouldRetry = function (isPrimaryRetry, attempt, response, err) { + shouldRetry(isPrimaryRetry, attempt, response, err) { if (attempt >= this.retryOptions.maxTries) { - logger.info("RetryPolicy: Attempt(s) " + attempt + " >= maxTries " + this.retryOptions - .maxTries + ", no further try."); + logger.info(`RetryPolicy: Attempt(s) ${attempt} >= maxTries ${this.retryOptions + .maxTries}, no further try.`); return false; } // Handle network failures, you may need to customize the list when you implement // your own http client - var retriableErrors = [ + const retriableErrors = [ "ETIMEDOUT", "ESOCKETTIMEDOUT", "ECONNREFUSED", @@ -78419,12 +77494,11 @@ var StorageRetryPolicy = /** @class */ (function (_super) { "REQUEST_SEND_ERROR" // For default xhr based http client provided in ms-rest-js ]; if (err) { - for (var _i = 0, retriableErrors_1 = retriableErrors; _i < retriableErrors_1.length; _i++) { - var retriableError = retriableErrors_1[_i]; + for (const retriableError of retriableErrors) { if (err.name.toUpperCase().includes(retriableError) || err.message.toUpperCase().includes(retriableError) || (err.code && err.code.toString().toUpperCase() === retriableError)) { - logger.info("RetryPolicy: Network error " + retriableError + " found, will retry."); + logger.info(`RetryPolicy: Network error ${retriableError} found, will retry.`); return true; } } @@ -78433,23 +77507,23 @@ var StorageRetryPolicy = /** @class */ (function (_super) { // the resource was not found. This may be due to replication delay. So, in this // case, we'll never try the secondary again for this operation. if (response || err) { - var statusCode = response ? response.status : err ? err.statusCode : 0; + const statusCode = response ? response.status : err ? err.statusCode : 0; if (!isPrimaryRetry && statusCode === 404) { - logger.info("RetryPolicy: Secondary access with 404, will retry."); + logger.info(`RetryPolicy: Secondary access with 404, will retry.`); return true; } // Server internal error or server timeout if (statusCode === 503 || statusCode === 500) { - logger.info("RetryPolicy: Will retry for status code " + statusCode + "."); + logger.info(`RetryPolicy: Will retry for status code ${statusCode}.`); return true; } } - if ((err === null || err === void 0 ? void 0 : err.code) === "PARSE_ERROR" && (err === null || err === void 0 ? void 0 : err.message.startsWith("Error \"Error: Unclosed root tag"))) { + if ((err === null || err === void 0 ? void 0 : err.code) === "PARSE_ERROR" && (err === null || err === void 0 ? void 0 : err.message.startsWith(`Error "Error: Unclosed root tag`))) { logger.info("RetryPolicy: Incomplete XML response likely due to service timeout, will retry."); return true; } return false; - }; + } /** * Delay a calculated time between retries. * @@ -78457,42 +77531,36 @@ var StorageRetryPolicy = /** @class */ (function (_super) { * @param attempt - * @param abortSignal - */ - StorageRetryPolicy.prototype.delay = function (isPrimaryRetry, attempt, abortSignal) { - return tslib.__awaiter(this, void 0, void 0, function () { - var delayTimeInMs; - return tslib.__generator(this, function (_a) { - delayTimeInMs = 0; - if (isPrimaryRetry) { - switch (this.retryOptions.retryPolicyType) { - case exports.StorageRetryPolicyType.EXPONENTIAL: - delayTimeInMs = Math.min((Math.pow(2, attempt - 1) - 1) * this.retryOptions.retryDelayInMs, this.retryOptions.maxRetryDelayInMs); - break; - case exports.StorageRetryPolicyType.FIXED: - delayTimeInMs = this.retryOptions.retryDelayInMs; - break; - } - } - else { - delayTimeInMs = Math.random() * 1000; - } - logger.info("RetryPolicy: Delay for " + delayTimeInMs + "ms"); - return [2 /*return*/, delay(delayTimeInMs, abortSignal, RETRY_ABORT_ERROR)]; - }); - }); - }; - return StorageRetryPolicy; -}(coreHttp.BaseRequestPolicy)); + async delay(isPrimaryRetry, attempt, abortSignal) { + let delayTimeInMs = 0; + if (isPrimaryRetry) { + switch (this.retryOptions.retryPolicyType) { + case exports.StorageRetryPolicyType.EXPONENTIAL: + delayTimeInMs = Math.min((Math.pow(2, attempt - 1) - 1) * this.retryOptions.retryDelayInMs, this.retryOptions.maxRetryDelayInMs); + break; + case exports.StorageRetryPolicyType.FIXED: + delayTimeInMs = this.retryOptions.retryDelayInMs; + break; + } + } + else { + delayTimeInMs = Math.random() * 1000; + } + logger.info(`RetryPolicy: Delay for ${delayTimeInMs}ms`); + return delay(delayTimeInMs, abortSignal, RETRY_ABORT_ERROR); + } +} // Copyright (c) Microsoft Corporation. /** * StorageRetryPolicyFactory is a factory class helping generating {@link StorageRetryPolicy} objects. */ -var StorageRetryPolicyFactory = /** @class */ (function () { +class StorageRetryPolicyFactory { /** * Creates an instance of StorageRetryPolicyFactory. * @param retryOptions - */ - function StorageRetryPolicyFactory(retryOptions) { + constructor(retryOptions) { this.retryOptions = retryOptions; } /** @@ -78501,61 +77569,55 @@ var StorageRetryPolicyFactory = /** @class */ (function () { * @param nextPolicy - * @param options - */ - StorageRetryPolicyFactory.prototype.create = function (nextPolicy, options) { + create(nextPolicy, options) { return new StorageRetryPolicy(nextPolicy, options, this.retryOptions); - }; - return StorageRetryPolicyFactory; -}()); + } +} // Copyright (c) Microsoft Corporation. /** * Credential policy used to sign HTTP(S) requests before sending. This is an * abstract class. */ -var CredentialPolicy = /** @class */ (function (_super) { - tslib.__extends(CredentialPolicy, _super); - function CredentialPolicy() { - return _super !== null && _super.apply(this, arguments) || this; - } +class CredentialPolicy extends coreHttp.BaseRequestPolicy { /** * Sends out request. * * @param request - */ - CredentialPolicy.prototype.sendRequest = function (request) { + sendRequest(request) { return this._nextPolicy.sendRequest(this.signRequest(request)); - }; + } /** * Child classes must implement this method with request signing. This method * will be executed in {@link sendRequest}. * * @param request - */ - CredentialPolicy.prototype.signRequest = function (request) { + signRequest(request) { // Child classes must override this method with request signing. This method // will be executed in sendRequest(). return request; - }; - return CredentialPolicy; -}(coreHttp.BaseRequestPolicy)); + } +} // Copyright (c) Microsoft Corporation. /** * AnonymousCredentialPolicy is used with HTTP(S) requests that read public resources * or for use with Shared Access Signatures (SAS). */ -var AnonymousCredentialPolicy = /** @class */ (function (_super) { - tslib.__extends(AnonymousCredentialPolicy, _super); +class AnonymousCredentialPolicy extends CredentialPolicy { /** * Creates an instance of AnonymousCredentialPolicy. * @param nextPolicy - * @param options - */ - function AnonymousCredentialPolicy(nextPolicy, options) { - return _super.call(this, nextPolicy, options) || this; + // The base class has a protected constructor. Adding a public one to enable constructing of this class. + /* eslint-disable-next-line @typescript-eslint/no-useless-constructor*/ + constructor(nextPolicy, options) { + super(nextPolicy, options); } - return AnonymousCredentialPolicy; -}(CredentialPolicy)); +} // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. @@ -78563,24 +77625,17 @@ var AnonymousCredentialPolicy = /** @class */ (function (_super) { * Credential is an abstract class for Azure Storage HTTP requests signing. This * class will host an credentialPolicyCreator factory which generates CredentialPolicy. */ -var Credential = /** @class */ (function () { - function Credential() { - } +class Credential { /** * Creates a RequestPolicy object. * * @param _nextPolicy - * @param _options - */ - Credential.prototype.create = function ( - // tslint:disable-next-line:variable-name - _nextPolicy, - // tslint:disable-next-line:variable-name - _options) { + create(_nextPolicy, _options) { throw new Error("Method should be implemented in children classes."); - }; - return Credential; -}()); + } +} // Copyright (c) Microsoft Corporation. /** @@ -78589,88 +77644,76 @@ var Credential = /** @class */ (function () { * HTTP(S) requests that read public resources or for use with Shared Access * Signatures (SAS). */ -var AnonymousCredential = /** @class */ (function (_super) { - tslib.__extends(AnonymousCredential, _super); - function AnonymousCredential() { - return _super !== null && _super.apply(this, arguments) || this; - } +class AnonymousCredential extends Credential { /** * Creates an {@link AnonymousCredentialPolicy} object. * * @param nextPolicy - * @param options - */ - AnonymousCredential.prototype.create = function (nextPolicy, options) { + create(nextPolicy, options) { return new AnonymousCredentialPolicy(nextPolicy, options); - }; - return AnonymousCredential; -}(Credential)); + } +} // Copyright (c) Microsoft Corporation. /** * TelemetryPolicy is a policy used to tag user-agent header for every requests. */ -var TelemetryPolicy = /** @class */ (function (_super) { - tslib.__extends(TelemetryPolicy, _super); +class TelemetryPolicy extends coreHttp.BaseRequestPolicy { /** * Creates an instance of TelemetryPolicy. * @param nextPolicy - * @param options - * @param telemetry - */ - function TelemetryPolicy(nextPolicy, options, telemetry) { - var _this = _super.call(this, nextPolicy, options) || this; - _this.telemetry = telemetry; - return _this; + constructor(nextPolicy, options, telemetry) { + super(nextPolicy, options); + this.telemetry = telemetry; } /** * Sends out request. * * @param request - */ - TelemetryPolicy.prototype.sendRequest = function (request) { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - { - if (!request.headers) { - request.headers = new coreHttp.HttpHeaders(); - } - if (!request.headers.get(HeaderConstants.USER_AGENT)) { - request.headers.set(HeaderConstants.USER_AGENT, this.telemetry); - } - } - return [2 /*return*/, this._nextPolicy.sendRequest(request)]; - }); - }); - }; - return TelemetryPolicy; -}(coreHttp.BaseRequestPolicy)); + async sendRequest(request) { + { + if (!request.headers) { + request.headers = new coreHttp.HttpHeaders(); + } + if (!request.headers.get(HeaderConstants.USER_AGENT)) { + request.headers.set(HeaderConstants.USER_AGENT, this.telemetry); + } + } + return this._nextPolicy.sendRequest(request); + } +} // Copyright (c) Microsoft Corporation. /** * TelemetryPolicyFactory is a factory class helping generating {@link TelemetryPolicy} objects. */ -var TelemetryPolicyFactory = /** @class */ (function () { +class TelemetryPolicyFactory { /** * Creates an instance of TelemetryPolicyFactory. * @param telemetry - */ - function TelemetryPolicyFactory(telemetry) { - var userAgentInfo = []; + constructor(telemetry) { + const userAgentInfo = []; { if (telemetry) { - var telemetryString = telemetry.userAgentPrefix || ""; + const telemetryString = telemetry.userAgentPrefix || ""; if (telemetryString.length > 0 && userAgentInfo.indexOf(telemetryString) === -1) { userAgentInfo.push(telemetryString); } } // e.g. azsdk-js-storageblob/10.0.0 - var libInfo = "azsdk-js-storageblob/" + SDK_VERSION; + const libInfo = `azsdk-js-storageblob/${SDK_VERSION}`; if (userAgentInfo.indexOf(libInfo) === -1) { userAgentInfo.push(libInfo); } // e.g. (NODE-VERSION 4.9.1; Windows_NT 10.0.16299) - var runtimeInfo = "(NODE-VERSION " + process.version + "; " + os.type() + " " + os.release() + ")"; + const runtimeInfo = `(NODE-VERSION ${process.version}; ${os.type()} ${os.release()})`; if (userAgentInfo.indexOf(runtimeInfo) === -1) { userAgentInfo.push(runtimeInfo); } @@ -78683,19 +77726,32 @@ var TelemetryPolicyFactory = /** @class */ (function () { * @param nextPolicy - * @param options - */ - TelemetryPolicyFactory.prototype.create = function (nextPolicy, options) { + create(nextPolicy, options) { return new TelemetryPolicy(nextPolicy, options, this.telemetryString); - }; - return TelemetryPolicyFactory; -}()); + } +} // Copyright (c) Microsoft Corporation. -var _defaultHttpClient = new coreHttp.DefaultHttpClient(); +const _defaultHttpClient = new coreHttp.DefaultHttpClient(); function getCachedDefaultHttpClient() { return _defaultHttpClient; } // Copyright (c) Microsoft Corporation. +/** + * A helper to decide if a given argument satisfies the Pipeline contract + * @param pipeline - An argument that may be a Pipeline + * @returns true when the argument satisfies the Pipeline contract + */ +function isPipelineLike(pipeline) { + if (!pipeline || typeof pipeline !== "object") { + return false; + } + const castPipeline = pipeline; + return (Array.isArray(castPipeline.factories) && + typeof castPipeline.options === "object" && + typeof castPipeline.toServiceClientOptions === "function"); +} /** * A Pipeline class containing HTTP request policies. * You can create a default Pipeline by calling {@link newPipeline}. @@ -78704,19 +77760,18 @@ function getCachedDefaultHttpClient() { * Refer to {@link newPipeline} and provided policies before implementing your * customized Pipeline. */ -var Pipeline = /** @class */ (function () { +class Pipeline { /** * Creates an instance of Pipeline. Customize HTTPClient by implementing IHttpClient interface. * * @param factories - * @param options - */ - function Pipeline(factories, options) { - if (options === void 0) { options = {}; } + constructor(factories, options = {}) { this.factories = factories; // when options.httpClient is not specified, passing in a DefaultHttpClient instance to // avoid each client creating its own http client. - this.options = tslib.__assign(tslib.__assign({}, options), { httpClient: options.httpClient || getCachedDefaultHttpClient() }); + this.options = Object.assign(Object.assign({}, options), { httpClient: options.httpClient || getCachedDefaultHttpClient() }); } /** * Transfer Pipeline object to ServiceClientOptions object which is required by @@ -78724,14 +77779,13 @@ var Pipeline = /** @class */ (function () { * * @returns The ServiceClientOptions object from this Pipeline. */ - Pipeline.prototype.toServiceClientOptions = function () { + toServiceClientOptions() { return { httpClient: this.options.httpClient, requestPolicyFactories: this.factories }; - }; - return Pipeline; -}()); + } +} /** * Creates a new Pipeline object with Credential provided. * @@ -78739,16 +77793,15 @@ var Pipeline = /** @class */ (function () { * @param pipelineOptions - Optional. Options. * @returns A new Pipeline object. */ -function newPipeline(credential, pipelineOptions) { - if (pipelineOptions === void 0) { pipelineOptions = {}; } +function newPipeline(credential, pipelineOptions = {}) { if (credential === undefined) { credential = new AnonymousCredential(); } // Order is important. Closer to the API at the top & closer to the network at the bottom. // The credential's policy factory must appear close to the wire so it can sign any // changes made by other factories (like UniqueRequestIDPolicyFactory) - var telemetryPolicy = new TelemetryPolicyFactory(pipelineOptions.userAgentOptions); - var factories = [ + const telemetryPolicy = new TelemetryPolicyFactory(pipelineOptions.userAgentOptions); + const factories = [ coreHttp.tracingPolicy({ userAgent: telemetryPolicy.telemetryString }), coreHttp.keepAlivePolicy(pipelineOptions.keepAliveOptions), telemetryPolicy, @@ -78780,30 +77833,28 @@ function newPipeline(credential, pipelineOptions) { /** * StorageSharedKeyCredentialPolicy is a policy used to sign HTTP request with a shared key. */ -var StorageSharedKeyCredentialPolicy = /** @class */ (function (_super) { - tslib.__extends(StorageSharedKeyCredentialPolicy, _super); +class StorageSharedKeyCredentialPolicy extends CredentialPolicy { /** * Creates an instance of StorageSharedKeyCredentialPolicy. * @param nextPolicy - * @param options - * @param factory - */ - function StorageSharedKeyCredentialPolicy(nextPolicy, options, factory) { - var _this = _super.call(this, nextPolicy, options) || this; - _this.factory = factory; - return _this; + constructor(nextPolicy, options, factory) { + super(nextPolicy, options); + this.factory = factory; } /** * Signs request. * * @param request - */ - StorageSharedKeyCredentialPolicy.prototype.signRequest = function (request) { + signRequest(request) { request.headers.set(HeaderConstants.X_MS_DATE, new Date().toUTCString()); if (request.body && typeof request.body === "string" && request.body.length > 0) { request.headers.set(HeaderConstants.CONTENT_LENGTH, Buffer.byteLength(request.body)); } - var stringToSign = [ + const stringToSign = [ request.method.toUpperCase(), this.getHeaderValueToSign(request, HeaderConstants.CONTENT_LANGUAGE), this.getHeaderValueToSign(request, HeaderConstants.CONTENT_ENCODING), @@ -78820,14 +77871,14 @@ var StorageSharedKeyCredentialPolicy = /** @class */ (function (_super) { "\n" + this.getCanonicalizedHeadersString(request) + this.getCanonicalizedResourceString(request); - var signature = this.factory.computeHMACSHA256(stringToSign); - request.headers.set(HeaderConstants.AUTHORIZATION, "SharedKey " + this.factory.accountName + ":" + signature); + const signature = this.factory.computeHMACSHA256(stringToSign); + request.headers.set(HeaderConstants.AUTHORIZATION, `SharedKey ${this.factory.accountName}:${signature}`); // console.log(`[URL]:${request.url}`); // console.log(`[HEADERS]:${request.headers.toString()}`); // console.log(`[STRING TO SIGN]:${JSON.stringify(stringToSign)}`); // console.log(`[KEY]: ${request.headers.get(HeaderConstants.AUTHORIZATION)}`); return request; - }; + } /** * Retrieve header value according to shared key sign rules. * @see https://docs.microsoft.com/en-us/rest/api/storageservices/authenticate-with-shared-key @@ -78835,8 +77886,8 @@ var StorageSharedKeyCredentialPolicy = /** @class */ (function (_super) { * @param request - * @param headerName - */ - StorageSharedKeyCredentialPolicy.prototype.getHeaderValueToSign = function (request, headerName) { - var value = request.headers.get(headerName); + getHeaderValueToSign(request, headerName) { + const value = request.headers.get(headerName); if (!value) { return ""; } @@ -78847,7 +77898,7 @@ var StorageSharedKeyCredentialPolicy = /** @class */ (function (_super) { return ""; } return value; - }; + } /** * To construct the CanonicalizedHeaders portion of the signature string, follow these steps: * 1. Retrieve all headers for the resource that begin with x-ms-, including the x-ms-date header. @@ -78861,58 +77912,56 @@ var StorageSharedKeyCredentialPolicy = /** @class */ (function (_super) { * * @param request - */ - StorageSharedKeyCredentialPolicy.prototype.getCanonicalizedHeadersString = function (request) { - var headersArray = request.headers.headersArray().filter(function (value) { + getCanonicalizedHeadersString(request) { + let headersArray = request.headers.headersArray().filter((value) => { return value.name.toLowerCase().startsWith(HeaderConstants.PREFIX_FOR_STORAGE); }); - headersArray.sort(function (a, b) { + headersArray.sort((a, b) => { return a.name.toLowerCase().localeCompare(b.name.toLowerCase()); }); // Remove duplicate headers - headersArray = headersArray.filter(function (value, index, array) { + headersArray = headersArray.filter((value, index, array) => { if (index > 0 && value.name.toLowerCase() === array[index - 1].name.toLowerCase()) { return false; } return true; }); - var canonicalizedHeadersStringToSign = ""; - headersArray.forEach(function (header) { - canonicalizedHeadersStringToSign += header.name + let canonicalizedHeadersStringToSign = ""; + headersArray.forEach((header) => { + canonicalizedHeadersStringToSign += `${header.name .toLowerCase() - .trimRight() + ":" + header.value.trimLeft() + "\n"; + .trimRight()}:${header.value.trimLeft()}\n`; }); return canonicalizedHeadersStringToSign; - }; + } /** * Retrieves the webResource canonicalized resource string. * * @param request - */ - StorageSharedKeyCredentialPolicy.prototype.getCanonicalizedResourceString = function (request) { - var path = getURLPath(request.url) || "/"; - var canonicalizedResourceString = ""; - canonicalizedResourceString += "/" + this.factory.accountName + path; - var queries = getURLQueries(request.url); - var lowercaseQueries = {}; + getCanonicalizedResourceString(request) { + const path = getURLPath(request.url) || "/"; + let canonicalizedResourceString = ""; + canonicalizedResourceString += `/${this.factory.accountName}${path}`; + const queries = getURLQueries(request.url); + const lowercaseQueries = {}; if (queries) { - var queryKeys = []; - for (var key in queries) { - if (queries.hasOwnProperty(key)) { - var lowercaseKey = key.toLowerCase(); + const queryKeys = []; + for (const key in queries) { + if (Object.prototype.hasOwnProperty.call(queries, key)) { + const lowercaseKey = key.toLowerCase(); lowercaseQueries[lowercaseKey] = queries[key]; queryKeys.push(lowercaseKey); } } queryKeys.sort(); - for (var _i = 0, queryKeys_1 = queryKeys; _i < queryKeys_1.length; _i++) { - var key = queryKeys_1[_i]; - canonicalizedResourceString += "\n" + key + ":" + decodeURIComponent(lowercaseQueries[key]); + for (const key of queryKeys) { + canonicalizedResourceString += `\n${key}:${decodeURIComponent(lowercaseQueries[key])}`; } } return canonicalizedResourceString; - }; - return StorageSharedKeyCredentialPolicy; -}(CredentialPolicy)); + } +} // Copyright (c) Microsoft Corporation. /** @@ -78920,18 +77969,16 @@ var StorageSharedKeyCredentialPolicy = /** @class */ (function (_super) { * * StorageSharedKeyCredential for account key authorization of Azure Storage service. */ -var StorageSharedKeyCredential = /** @class */ (function (_super) { - tslib.__extends(StorageSharedKeyCredential, _super); +class StorageSharedKeyCredential extends Credential { /** * Creates an instance of StorageSharedKeyCredential. * @param accountName - * @param accountKey - */ - function StorageSharedKeyCredential(accountName, accountKey) { - var _this = _super.call(this) || this; - _this.accountName = accountName; - _this.accountKey = Buffer.from(accountKey, "base64"); - return _this; + constructor(accountName, accountKey) { + super(); + this.accountName = accountName; + this.accountKey = Buffer.from(accountKey, "base64"); } /** * Creates a StorageSharedKeyCredentialPolicy object. @@ -78939,21 +77986,20 @@ var StorageSharedKeyCredential = /** @class */ (function (_super) { * @param nextPolicy - * @param options - */ - StorageSharedKeyCredential.prototype.create = function (nextPolicy, options) { + create(nextPolicy, options) { return new StorageSharedKeyCredentialPolicy(nextPolicy, options, this); - }; + } /** * Generates a hash signature for an HTTP request or for a SAS. * * @param stringToSign - */ - StorageSharedKeyCredential.prototype.computeHMACSHA256 = function (stringToSign) { + computeHMACSHA256(stringToSign) { return crypto.createHmac("sha256", this.accountKey) .update(stringToSign, "utf8") .digest("base64"); - }; - return StorageSharedKeyCredential; -}(Credential)); + } +} /* * Copyright (c) Microsoft Corporation. @@ -78962,18 +78008,16 @@ var StorageSharedKeyCredential = /** @class */ (function (_super) { * Code generated by Microsoft (R) AutoRest Code Generator. * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -var packageName = "azure-storage-blob"; -var packageVersion = "12.6.0-beta.1"; -var StorageClientContext = /** @class */ (function (_super) { - tslib.__extends(StorageClientContext, _super); +const packageName = "azure-storage-blob"; +const packageVersion = "12.8.0"; +class StorageClientContext extends coreHttp.ServiceClient { /** * Initializes a new instance of the StorageClientContext class. - * @param url The URL of the service account, container, or blob that is the targe of the desired + * @param url The URL of the service account, container, or blob that is the target of the desired * operation. * @param options The parameter options */ - function StorageClientContext(url, options) { - var _this = this; + constructor(url, options) { if (url === undefined) { throw new Error("'url' cannot be null"); } @@ -78982,33 +78026,31 @@ var StorageClientContext = /** @class */ (function (_super) { options = {}; } if (!options.userAgent) { - var defaultUserAgent = coreHttp.getDefaultUserAgentValue(); - options.userAgent = packageName + "/" + packageVersion + " " + defaultUserAgent; + const defaultUserAgent = coreHttp.getDefaultUserAgentValue(); + options.userAgent = `${packageName}/${packageVersion} ${defaultUserAgent}`; } - _this = _super.call(this, undefined, options) || this; - _this.requestContentType = "application/json; charset=utf-8"; - _this.baseUri = options.endpoint || "{url}"; + super(undefined, options); + this.requestContentType = "application/json; charset=utf-8"; + this.baseUri = options.endpoint || "{url}"; // Parameter assignments - _this.url = url; + this.url = url; // Assigning values to Constant parameters - _this.version = options.version || "2020-08-04"; - return _this; + this.version = options.version || "2020-10-02"; } - return StorageClientContext; -}(coreHttp.ServiceClient)); +} // Copyright (c) Microsoft Corporation. /** * A StorageClient represents a based URL class for {@link BlobServiceClient}, {@link ContainerClient} * and etc. */ -var StorageClient = /** @class */ (function () { +class StorageClient { /** * Creates an instance of StorageClient. * @param url - url to resource * @param pipeline - request policy pipeline. */ - function StorageClient(url, pipeline) { + constructor(url, pipeline) { // URL should be encoded and only once, protocol layer shouldn't encode URL again this.url = escapeURLPath(url); this.accountName = getAccountNameFromUrl(url); @@ -79016,8 +78058,7 @@ var StorageClient = /** @class */ (function () { this.storageClientContext = new StorageClientContext(this.url, pipeline.toServiceClientOptions()); this.isHttps = iEqual(getURLScheme(this.url) || "", "https"); this.credential = new AnonymousCredential(); - for (var _i = 0, _a = this.pipeline.factories; _i < _a.length; _i++) { - var factory = _a[_i]; + for (const factory of this.pipeline.factories) { if ((coreHttp.isNode && factory instanceof StorageSharedKeyCredential) || factory instanceof AnonymousCredential) { this.credential = factory; @@ -79029,18 +78070,17 @@ var StorageClient = /** @class */ (function () { } } // Override protocol layer's default content-type - var storageClientContext = this.storageClientContext; + const storageClientContext = this.storageClientContext; storageClientContext.requestContentType = undefined; } - return StorageClient; -}()); +} // Copyright (c) Microsoft Corporation. /** * Creates a span using the global tracer. * @internal */ -var createSpan = coreTracing.createSpanFunction({ +const createSpan = coreTracing.createSpanFunction({ packagePrefix: "Azure.Storage.Blob", namespace: "Microsoft.Storage" }); @@ -79054,6 +78094,7 @@ var createSpan = coreTracing.createSpanFunction({ function convertTracingToRequestOptionsBase(options) { var _a, _b; return { + // By passing spanOptions if they exist at runtime, we're backwards compatible with @azure/core-tracing@preview.13 and earlier. spanOptions: (_a = options === null || options === void 0 ? void 0 : options.tracingOptions) === null || _a === void 0 ? void 0 : _a.spanOptions, tracingContext: (_b = options === null || options === void 0 ? void 0 : options.tracingOptions) === null || _b === void 0 ? void 0 : _b.tracingContext }; @@ -79070,8 +78111,8 @@ function convertTracingToRequestOptionsBase(options) { * {@link BlobSASSignatureValues} object. It is possible to construct the permissions string without this class, but * the order of the permissions is particular and this class guarantees correctness. */ -var BlobSASPermissions = /** @class */ (function () { - function BlobSASPermissions() { +class BlobSASPermissions { + constructor() { /** * Specifies Read access granted. */ @@ -79108,6 +78149,10 @@ var BlobSASPermissions = /** @class */ (function () { * Specifies Execute access granted. */ this.execute = false; + /** + * Specifies SetImmutabilityPolicy access granted. + */ + this.setImmutabilityPolicy = false; } /** * Creates a {@link BlobSASPermissions} from the specified permissions string. This method will throw an @@ -79115,10 +78160,9 @@ var BlobSASPermissions = /** @class */ (function () { * * @param permissions - */ - BlobSASPermissions.parse = function (permissions) { - var blobSASPermissions = new BlobSASPermissions(); - for (var _i = 0, permissions_1 = permissions; _i < permissions_1.length; _i++) { - var char = permissions_1[_i]; + static parse(permissions) { + const blobSASPermissions = new BlobSASPermissions(); + for (const char of permissions) { switch (char) { case "r": blobSASPermissions.read = true; @@ -79147,20 +78191,23 @@ var BlobSASPermissions = /** @class */ (function () { case "e": blobSASPermissions.execute = true; break; + case "i": + blobSASPermissions.setImmutabilityPolicy = true; + break; default: - throw new RangeError("Invalid permission: " + char); + throw new RangeError(`Invalid permission: ${char}`); } } return blobSASPermissions; - }; + } /** * Creates a {@link BlobSASPermissions} from a raw object which contains same keys as it * and boolean values for them. * * @param permissionLike - */ - BlobSASPermissions.from = function (permissionLike) { - var blobSASPermissions = new BlobSASPermissions(); + static from(permissionLike) { + const blobSASPermissions = new BlobSASPermissions(); if (permissionLike.read) { blobSASPermissions.read = true; } @@ -79188,16 +78235,19 @@ var BlobSASPermissions = /** @class */ (function () { if (permissionLike.execute) { blobSASPermissions.execute = true; } + if (permissionLike.setImmutabilityPolicy) { + blobSASPermissions.setImmutabilityPolicy = true; + } return blobSASPermissions; - }; + } /** * Converts the given permissions to a string. Using this method will guarantee the permissions are in an * order accepted by the service. * * @returns A string which represents the BlobSASPermissions */ - BlobSASPermissions.prototype.toString = function () { - var permissions = []; + toString() { + const permissions = []; if (this.read) { permissions.push("r"); } @@ -79225,10 +78275,12 @@ var BlobSASPermissions = /** @class */ (function () { if (this.execute) { permissions.push("e"); } + if (this.setImmutabilityPolicy) { + permissions.push("i"); + } return permissions.join(""); - }; - return BlobSASPermissions; -}()); + } +} // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. @@ -79239,8 +78291,8 @@ var BlobSASPermissions = /** @class */ (function () { * {@link BlobSASSignatureValues} object. It is possible to construct the permissions string without this class, but * the order of the permissions is particular and this class guarantees correctness. */ -var ContainerSASPermissions = /** @class */ (function () { - function ContainerSASPermissions() { +class ContainerSASPermissions { + constructor() { /** * Specifies Read access granted. */ @@ -79281,6 +78333,10 @@ var ContainerSASPermissions = /** @class */ (function () { * Specifies Execute access granted. */ this.execute = false; + /** + * Specifies SetImmutabilityPolicy access granted. + */ + this.setImmutabilityPolicy = false; } /** * Creates an {@link ContainerSASPermissions} from the specified permissions string. This method will throw an @@ -79288,10 +78344,9 @@ var ContainerSASPermissions = /** @class */ (function () { * * @param permissions - */ - ContainerSASPermissions.parse = function (permissions) { - var containerSASPermissions = new ContainerSASPermissions(); - for (var _i = 0, permissions_1 = permissions; _i < permissions_1.length; _i++) { - var char = permissions_1[_i]; + static parse(permissions) { + const containerSASPermissions = new ContainerSASPermissions(); + for (const char of permissions) { switch (char) { case "r": containerSASPermissions.read = true; @@ -79323,20 +78378,23 @@ var ContainerSASPermissions = /** @class */ (function () { case "e": containerSASPermissions.execute = true; break; + case "i": + containerSASPermissions.setImmutabilityPolicy = true; + break; default: - throw new RangeError("Invalid permission " + char); + throw new RangeError(`Invalid permission ${char}`); } } return containerSASPermissions; - }; + } /** * Creates a {@link ContainerSASPermissions} from a raw object which contains same keys as it * and boolean values for them. * * @param permissionLike - */ - ContainerSASPermissions.from = function (permissionLike) { - var containerSASPermissions = new ContainerSASPermissions(); + static from(permissionLike) { + const containerSASPermissions = new ContainerSASPermissions(); if (permissionLike.read) { containerSASPermissions.read = true; } @@ -79367,8 +78425,11 @@ var ContainerSASPermissions = /** @class */ (function () { if (permissionLike.execute) { containerSASPermissions.execute = true; } + if (permissionLike.setImmutabilityPolicy) { + containerSASPermissions.setImmutabilityPolicy = true; + } return containerSASPermissions; - }; + } /** * Converts the given permissions to a string. Using this method will guarantee the permissions are in an * order accepted by the service. @@ -79377,8 +78438,8 @@ var ContainerSASPermissions = /** @class */ (function () { * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas * */ - ContainerSASPermissions.prototype.toString = function () { - var permissions = []; + toString() { + const permissions = []; if (this.read) { permissions.push("r"); } @@ -79409,10 +78470,12 @@ var ContainerSASPermissions = /** @class */ (function () { if (this.execute) { permissions.push("e"); } + if (this.setImmutabilityPolicy) { + permissions.push("i"); + } return permissions.join(""); - }; - return ContainerSASPermissions; -}()); + } +} // Copyright (c) Microsoft Corporation. /** @@ -79421,13 +78484,13 @@ var ContainerSASPermissions = /** @class */ (function () { * UserDelegationKeyCredential is only used for generation of user delegation SAS. * @see https://docs.microsoft.com/en-us/rest/api/storageservices/create-user-delegation-sas */ -var UserDelegationKeyCredential = /** @class */ (function () { +class UserDelegationKeyCredential { /** * Creates an instance of UserDelegationKeyCredential. * @param accountName - * @param userDelegationKey - */ - function UserDelegationKeyCredential(accountName, userDelegationKey) { + constructor(accountName, userDelegationKey) { this.accountName = accountName; this.userDelegationKey = userDelegationKey; this.key = Buffer.from(userDelegationKey.value, "base64"); @@ -79437,14 +78500,13 @@ var UserDelegationKeyCredential = /** @class */ (function () { * * @param stringToSign - */ - UserDelegationKeyCredential.prototype.computeHMACSHA256 = function (stringToSign) { + computeHMACSHA256(stringToSign) { // console.log(`stringToSign: ${JSON.stringify(stringToSign)}`); return crypto.createHmac("sha256", this.key) .update(stringToSign, "utf8") .digest("base64"); - }; - return UserDelegationKeyCredential; -}()); + } +} // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. @@ -79456,7 +78518,7 @@ var UserDelegationKeyCredential = /** @class */ (function () { * @param ipRange - */ function ipRangeToString(ipRange) { - return ipRange.end ? ipRange.start + "-" + ipRange.end : ipRange.start; + return ipRange.end ? `${ipRange.start}-${ipRange.end}` : ipRange.start; } // Copyright (c) Microsoft Corporation. @@ -79473,14 +78535,14 @@ function ipRangeToString(ipRange) { /** * Represents the components that make up an Azure Storage SAS' query parameters. This type is not constructed directly * by the user; it is only generated by the {@link AccountSASSignatureValues} and {@link BlobSASSignatureValues} - * types. Once generated, it can be encoded into a {@code String} and appended to a URL directly (though caution should + * types. Once generated, it can be encoded into a {@link String} and appended to a URL directly (though caution should * be taken here in case there are existing query parameters, which might affect the appropriate means of appending * these query parameters). * * NOTE: Instances of this class are immutable. */ -var SASQueryParameters = /** @class */ (function () { - function SASQueryParameters(version, signature, permissionsOrOptions, services, resourceTypes, protocol, startsOn, expiresOn, ipRange, identifier, resource, cacheControl, contentDisposition, contentEncoding, contentLanguage, contentType, userDelegationKey, preauthorizedAgentObjectId, correlationId) { +class SASQueryParameters { + constructor(version, signature, permissionsOrOptions, services, resourceTypes, protocol, startsOn, expiresOn, ipRange, identifier, resource, cacheControl, contentDisposition, contentEncoding, contentLanguage, contentType, userDelegationKey, preauthorizedAgentObjectId, correlationId) { this.version = version; this.signature = signature; if (permissionsOrOptions !== undefined && typeof permissionsOrOptions !== "string") { @@ -79537,30 +78599,26 @@ var SASQueryParameters = /** @class */ (function () { } } } - Object.defineProperty(SASQueryParameters.prototype, "ipRange", { - /** - * Optional. IP range allowed for this SAS. - * - * @readonly - */ - get: function () { - if (this.ipRangeInner) { - return { - end: this.ipRangeInner.end, - start: this.ipRangeInner.start - }; - } - return undefined; - }, - enumerable: false, - configurable: true - }); + /** + * Optional. IP range allowed for this SAS. + * + * @readonly + */ + get ipRange() { + if (this.ipRangeInner) { + return { + end: this.ipRangeInner.end, + start: this.ipRangeInner.start + }; + } + return undefined; + } /** * Encodes all SAS query parameters into a string that can be appended to a URL. * */ - SASQueryParameters.prototype.toString = function () { - var params = [ + toString() { + const params = [ "sv", "ss", "srt", @@ -79586,9 +78644,8 @@ var SASQueryParameters = /** @class */ (function () { "saoid", "scid" ]; - var queries = []; - for (var _i = 0, params_1 = params; _i < params_1.length; _i++) { - var param = params_1[_i]; + const queries = []; + for (const param of params) { switch (param) { case "sv": this.tryAppendQueryParameter(queries, param, this.version); @@ -79665,7 +78722,7 @@ var SASQueryParameters = /** @class */ (function () { } } return queries.join("&"); - }; + } /** * A private helper method used to filter and append query key/value pairs into an array. * @@ -79673,26 +78730,25 @@ var SASQueryParameters = /** @class */ (function () { * @param key - * @param value - */ - SASQueryParameters.prototype.tryAppendQueryParameter = function (queries, key, value) { + tryAppendQueryParameter(queries, key, value) { if (!value) { return; } key = encodeURIComponent(key); value = encodeURIComponent(value); if (key.length > 0 && value.length > 0) { - queries.push(key + "=" + value); + queries.push(`${key}=${value}`); } - }; - return SASQueryParameters; -}()); + } +} // Copyright (c) Microsoft Corporation. function generateBlobSASQueryParameters(blobSASSignatureValues, sharedKeyCredentialOrUserDelegationKey, accountName) { - var version = blobSASSignatureValues.version ? blobSASSignatureValues.version : SERVICE_VERSION; - var sharedKeyCredential = sharedKeyCredentialOrUserDelegationKey instanceof StorageSharedKeyCredential + const version = blobSASSignatureValues.version ? blobSASSignatureValues.version : SERVICE_VERSION; + const sharedKeyCredential = sharedKeyCredentialOrUserDelegationKey instanceof StorageSharedKeyCredential ? sharedKeyCredentialOrUserDelegationKey : undefined; - var userDelegationKeyCredential; + let userDelegationKeyCredential; if (sharedKeyCredential === undefined && accountName !== undefined) { userDelegationKeyCredential = new UserDelegationKeyCredential(accountName, sharedKeyCredentialOrUserDelegationKey); } @@ -79748,12 +78804,12 @@ function generateBlobSASQueryParameters20150405(blobSASSignatureValues, sharedKe !(blobSASSignatureValues.permissions && blobSASSignatureValues.expiresOn)) { throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided."); } - var resource = "c"; + let resource = "c"; if (blobSASSignatureValues.blobName) { resource = "b"; } // Calling parse and toString guarantees the proper ordering and throws on invalid characters. - var verifiedPermissions; + let verifiedPermissions; if (blobSASSignatureValues.permissions) { if (blobSASSignatureValues.blobName) { verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString(); @@ -79763,7 +78819,7 @@ function generateBlobSASQueryParameters20150405(blobSASSignatureValues, sharedKe } } // Signature is generated on the un-url-encoded values. - var stringToSign = [ + const stringToSign = [ verifiedPermissions ? verifiedPermissions : "", blobSASSignatureValues.startsOn ? truncatedISO8061Date(blobSASSignatureValues.startsOn, false) @@ -79782,7 +78838,7 @@ function generateBlobSASQueryParameters20150405(blobSASSignatureValues, sharedKe blobSASSignatureValues.contentLanguage ? blobSASSignatureValues.contentLanguage : "", blobSASSignatureValues.contentType ? blobSASSignatureValues.contentType : "" ].join("\n"); - var signature = sharedKeyCredential.computeHMACSHA256(stringToSign); + const signature = sharedKeyCredential.computeHMACSHA256(stringToSign); return new SASQueryParameters(blobSASSignatureValues.version, signature, verifiedPermissions, undefined, undefined, blobSASSignatureValues.protocol, blobSASSignatureValues.startsOn, blobSASSignatureValues.expiresOn, blobSASSignatureValues.ipRange, blobSASSignatureValues.identifier, resource, blobSASSignatureValues.cacheControl, blobSASSignatureValues.contentDisposition, blobSASSignatureValues.contentEncoding, blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType); } /** @@ -79807,8 +78863,8 @@ function generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKe !(blobSASSignatureValues.permissions && blobSASSignatureValues.expiresOn)) { throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided."); } - var resource = "c"; - var timestamp = blobSASSignatureValues.snapshotTime; + let resource = "c"; + let timestamp = blobSASSignatureValues.snapshotTime; if (blobSASSignatureValues.blobName) { resource = "b"; if (blobSASSignatureValues.snapshotTime) { @@ -79820,7 +78876,7 @@ function generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKe } } // Calling parse and toString guarantees the proper ordering and throws on invalid characters. - var verifiedPermissions; + let verifiedPermissions; if (blobSASSignatureValues.permissions) { if (blobSASSignatureValues.blobName) { verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString(); @@ -79830,7 +78886,7 @@ function generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKe } } // Signature is generated on the un-url-encoded values. - var stringToSign = [ + const stringToSign = [ verifiedPermissions ? verifiedPermissions : "", blobSASSignatureValues.startsOn ? truncatedISO8061Date(blobSASSignatureValues.startsOn, false) @@ -79851,7 +78907,7 @@ function generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKe blobSASSignatureValues.contentLanguage ? blobSASSignatureValues.contentLanguage : "", blobSASSignatureValues.contentType ? blobSASSignatureValues.contentType : "" ].join("\n"); - var signature = sharedKeyCredential.computeHMACSHA256(stringToSign); + const signature = sharedKeyCredential.computeHMACSHA256(stringToSign); return new SASQueryParameters(blobSASSignatureValues.version, signature, verifiedPermissions, undefined, undefined, blobSASSignatureValues.protocol, blobSASSignatureValues.startsOn, blobSASSignatureValues.expiresOn, blobSASSignatureValues.ipRange, blobSASSignatureValues.identifier, resource, blobSASSignatureValues.cacheControl, blobSASSignatureValues.contentDisposition, blobSASSignatureValues.contentEncoding, blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType); } /** @@ -79874,8 +78930,8 @@ function generateBlobSASQueryParametersUDK20181109(blobSASSignatureValues, userD if (!blobSASSignatureValues.permissions || !blobSASSignatureValues.expiresOn) { throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS."); } - var resource = "c"; - var timestamp = blobSASSignatureValues.snapshotTime; + let resource = "c"; + let timestamp = blobSASSignatureValues.snapshotTime; if (blobSASSignatureValues.blobName) { resource = "b"; if (blobSASSignatureValues.snapshotTime) { @@ -79887,7 +78943,7 @@ function generateBlobSASQueryParametersUDK20181109(blobSASSignatureValues, userD } } // Calling parse and toString guarantees the proper ordering and throws on invalid characters. - var verifiedPermissions; + let verifiedPermissions; if (blobSASSignatureValues.permissions) { if (blobSASSignatureValues.blobName) { verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString(); @@ -79897,7 +78953,7 @@ function generateBlobSASQueryParametersUDK20181109(blobSASSignatureValues, userD } } // Signature is generated on the un-url-encoded values. - var stringToSign = [ + const stringToSign = [ verifiedPermissions ? verifiedPermissions : "", blobSASSignatureValues.startsOn ? truncatedISO8061Date(blobSASSignatureValues.startsOn, false) @@ -79927,7 +78983,7 @@ function generateBlobSASQueryParametersUDK20181109(blobSASSignatureValues, userD blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType ].join("\n"); - var signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign); + const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign); return new SASQueryParameters(blobSASSignatureValues.version, signature, verifiedPermissions, undefined, undefined, blobSASSignatureValues.protocol, blobSASSignatureValues.startsOn, blobSASSignatureValues.expiresOn, blobSASSignatureValues.ipRange, blobSASSignatureValues.identifier, resource, blobSASSignatureValues.cacheControl, blobSASSignatureValues.contentDisposition, blobSASSignatureValues.contentEncoding, blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType, userDelegationKeyCredential.userDelegationKey); } /** @@ -79950,8 +79006,8 @@ function generateBlobSASQueryParametersUDK20200210(blobSASSignatureValues, userD if (!blobSASSignatureValues.permissions || !blobSASSignatureValues.expiresOn) { throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS."); } - var resource = "c"; - var timestamp = blobSASSignatureValues.snapshotTime; + let resource = "c"; + let timestamp = blobSASSignatureValues.snapshotTime; if (blobSASSignatureValues.blobName) { resource = "b"; if (blobSASSignatureValues.snapshotTime) { @@ -79963,7 +79019,7 @@ function generateBlobSASQueryParametersUDK20200210(blobSASSignatureValues, userD } } // Calling parse and toString guarantees the proper ordering and throws on invalid characters. - var verifiedPermissions; + let verifiedPermissions; if (blobSASSignatureValues.permissions) { if (blobSASSignatureValues.blobName) { verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString(); @@ -79973,7 +79029,7 @@ function generateBlobSASQueryParametersUDK20200210(blobSASSignatureValues, userD } } // Signature is generated on the un-url-encoded values. - var stringToSign = [ + const stringToSign = [ verifiedPermissions ? verifiedPermissions : "", blobSASSignatureValues.startsOn ? truncatedISO8061Date(blobSASSignatureValues.startsOn, false) @@ -80006,20 +79062,20 @@ function generateBlobSASQueryParametersUDK20200210(blobSASSignatureValues, userD blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType ].join("\n"); - var signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign); + const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign); return new SASQueryParameters(blobSASSignatureValues.version, signature, verifiedPermissions, undefined, undefined, blobSASSignatureValues.protocol, blobSASSignatureValues.startsOn, blobSASSignatureValues.expiresOn, blobSASSignatureValues.ipRange, blobSASSignatureValues.identifier, resource, blobSASSignatureValues.cacheControl, blobSASSignatureValues.contentDisposition, blobSASSignatureValues.contentEncoding, blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType, userDelegationKeyCredential.userDelegationKey, blobSASSignatureValues.preauthorizedAgentObjectId, blobSASSignatureValues.correlationId); } function getCanonicalName(accountName, containerName, blobName) { // Container: "/blob/account/containerName" // Blob: "/blob/account/containerName/blobName" - var elements = ["/blob/" + accountName + "/" + containerName]; + const elements = [`/blob/${accountName}/${containerName}`]; if (blobName) { - elements.push("/" + blobName); + elements.push(`/${blobName}`); } return elements.join(""); } function SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues) { - var version = blobSASSignatureValues.version ? blobSASSignatureValues.version : SERVICE_VERSION; + const version = blobSASSignatureValues.version ? blobSASSignatureValues.version : SERVICE_VERSION; if (blobSASSignatureValues.snapshotTime && version < "2018-11-09") { throw RangeError("'version' must be >= '2018-11-09' when providing 'snapshotTime'."); } @@ -80032,6 +79088,11 @@ function SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues) { if (blobSASSignatureValues.blobName === undefined && blobSASSignatureValues.versionId) { throw RangeError("Must provide 'blobName' when providing 'versionId'."); } + if (blobSASSignatureValues.permissions && + blobSASSignatureValues.permissions.setImmutabilityPolicy && + version < "2020-08-04") { + throw RangeError("'version' must be >= '2020-08-04' when provided 'i' permission."); + } if (blobSASSignatureValues.permissions && blobSASSignatureValues.permissions.deleteVersion && version < "2019-10-10") { @@ -80055,17 +79116,18 @@ function SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues) { return blobSASSignatureValues; } +// Copyright (c) Microsoft Corporation. /** * A client that manages leases for a {@link ContainerClient} or a {@link BlobClient}. */ -var BlobLeaseClient = /** @class */ (function () { +class BlobLeaseClient { /** * Creates an instance of BlobLeaseClient. * @param client - The client to make the lease operation requests. * @param leaseId - Initial proposed lease id. */ - function BlobLeaseClient(client, leaseId) { - var clientContext = new StorageClientContext(client.url, client.pipeline.toServiceClientOptions()); + constructor(client, leaseId) { + const clientContext = new StorageClientContext(client.url, client.pipeline.toServiceClientOptions()); this._url = client.url; if (client.name === undefined) { this._isContainer = true; @@ -80080,30 +79142,22 @@ var BlobLeaseClient = /** @class */ (function () { } this._leaseId = leaseId; } - Object.defineProperty(BlobLeaseClient.prototype, "leaseId", { - /** - * Gets the lease Id. - * - * @readonly - */ - get: function () { - return this._leaseId; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobLeaseClient.prototype, "url", { - /** - * Gets the url. - * - * @readonly - */ - get: function () { - return this._url; - }, - enumerable: false, - configurable: true - }); + /** + * Gets the lease Id. + * + * @readonly + */ + get leaseId() { + return this._leaseId; + } + /** + * Gets the url. + * + * @readonly + */ + get url() { + return this._url; + } /** * Establishes and manages a lock on a container for delete operations, or on a blob * for write and delete operations. @@ -80116,41 +79170,29 @@ var BlobLeaseClient = /** @class */ (function () { * @param options - option to configure lease management operations. * @returns Response data for acquire lease operation. */ - BlobLeaseClient.prototype.acquireLease = function (duration, options) { + async acquireLease(duration, options = {}) { var _a, _b, _c, _d, _e, _f; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _g, span, updatedOptions, e_1; - return tslib.__generator(this, function (_h) { - switch (_h.label) { - case 0: - _g = createSpan("BlobLeaseClient-acquireLease", options), span = _g.span, updatedOptions = _g.updatedOptions; - if (this._isContainer && - ((((_a = options.conditions) === null || _a === void 0 ? void 0 : _a.ifMatch) && ((_b = options.conditions) === null || _b === void 0 ? void 0 : _b.ifMatch) !== ETagNone) || - (((_c = options.conditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch) && ((_d = options.conditions) === null || _d === void 0 ? void 0 : _d.ifNoneMatch) !== ETagNone) || - ((_e = options.conditions) === null || _e === void 0 ? void 0 : _e.tagConditions))) { - throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable."); - } - _h.label = 1; - case 1: - _h.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this._containerOrBlobOperation.acquireLease(tslib.__assign({ abortSignal: options.abortSignal, duration: duration, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_f = options.conditions) === null || _f === void 0 ? void 0 : _f.tagConditions }), proposedLeaseId: this._leaseId }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _h.sent()]; - case 3: - e_1 = _h.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_1.message - }); - throw e_1; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobLeaseClient-acquireLease", options); + if (this._isContainer && + ((((_a = options.conditions) === null || _a === void 0 ? void 0 : _a.ifMatch) && ((_b = options.conditions) === null || _b === void 0 ? void 0 : _b.ifMatch) !== ETagNone) || + (((_c = options.conditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch) && ((_d = options.conditions) === null || _d === void 0 ? void 0 : _d.ifNoneMatch) !== ETagNone) || + ((_e = options.conditions) === null || _e === void 0 ? void 0 : _e.tagConditions))) { + throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable."); + } + try { + return await this._containerOrBlobOperation.acquireLease(Object.assign({ abortSignal: options.abortSignal, duration, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_f = options.conditions) === null || _f === void 0 ? void 0 : _f.tagConditions }), proposedLeaseId: this._leaseId }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * To change the ID of the lease. * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-container @@ -80161,44 +79203,31 @@ var BlobLeaseClient = /** @class */ (function () { * @param options - option to configure lease management operations. * @returns Response data for change lease operation. */ - BlobLeaseClient.prototype.changeLease = function (proposedLeaseId, options) { + async changeLease(proposedLeaseId, options = {}) { var _a, _b, _c, _d, _e, _f; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _g, span, updatedOptions, response, e_2; - return tslib.__generator(this, function (_h) { - switch (_h.label) { - case 0: - _g = createSpan("BlobLeaseClient-changeLease", options), span = _g.span, updatedOptions = _g.updatedOptions; - if (this._isContainer && - ((((_a = options.conditions) === null || _a === void 0 ? void 0 : _a.ifMatch) && ((_b = options.conditions) === null || _b === void 0 ? void 0 : _b.ifMatch) !== ETagNone) || - (((_c = options.conditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch) && ((_d = options.conditions) === null || _d === void 0 ? void 0 : _d.ifNoneMatch) !== ETagNone) || - ((_e = options.conditions) === null || _e === void 0 ? void 0 : _e.tagConditions))) { - throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable."); - } - _h.label = 1; - case 1: - _h.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this._containerOrBlobOperation.changeLease(this._leaseId, proposedLeaseId, tslib.__assign({ abortSignal: options.abortSignal, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_f = options.conditions) === null || _f === void 0 ? void 0 : _f.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - response = _h.sent(); - this._leaseId = proposedLeaseId; - return [2 /*return*/, response]; - case 3: - e_2 = _h.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_2.message - }); - throw e_2; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobLeaseClient-changeLease", options); + if (this._isContainer && + ((((_a = options.conditions) === null || _a === void 0 ? void 0 : _a.ifMatch) && ((_b = options.conditions) === null || _b === void 0 ? void 0 : _b.ifMatch) !== ETagNone) || + (((_c = options.conditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch) && ((_d = options.conditions) === null || _d === void 0 ? void 0 : _d.ifNoneMatch) !== ETagNone) || + ((_e = options.conditions) === null || _e === void 0 ? void 0 : _e.tagConditions))) { + throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable."); + } + try { + const response = await this._containerOrBlobOperation.changeLease(this._leaseId, proposedLeaseId, Object.assign({ abortSignal: options.abortSignal, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_f = options.conditions) === null || _f === void 0 ? void 0 : _f.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions))); + this._leaseId = proposedLeaseId; + return response; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * To free the lease if it is no longer needed so that another client may * immediately acquire a lease against the container or the blob. @@ -80209,41 +79238,29 @@ var BlobLeaseClient = /** @class */ (function () { * @param options - option to configure lease management operations. * @returns Response data for release lease operation. */ - BlobLeaseClient.prototype.releaseLease = function (options) { + async releaseLease(options = {}) { var _a, _b, _c, _d, _e, _f; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _g, span, updatedOptions, e_3; - return tslib.__generator(this, function (_h) { - switch (_h.label) { - case 0: - _g = createSpan("BlobLeaseClient-releaseLease", options), span = _g.span, updatedOptions = _g.updatedOptions; - if (this._isContainer && - ((((_a = options.conditions) === null || _a === void 0 ? void 0 : _a.ifMatch) && ((_b = options.conditions) === null || _b === void 0 ? void 0 : _b.ifMatch) !== ETagNone) || - (((_c = options.conditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch) && ((_d = options.conditions) === null || _d === void 0 ? void 0 : _d.ifNoneMatch) !== ETagNone) || - ((_e = options.conditions) === null || _e === void 0 ? void 0 : _e.tagConditions))) { - throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable."); - } - _h.label = 1; - case 1: - _h.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this._containerOrBlobOperation.releaseLease(this._leaseId, tslib.__assign({ abortSignal: options.abortSignal, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_f = options.conditions) === null || _f === void 0 ? void 0 : _f.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _h.sent()]; - case 3: - e_3 = _h.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_3.message - }); - throw e_3; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobLeaseClient-releaseLease", options); + if (this._isContainer && + ((((_a = options.conditions) === null || _a === void 0 ? void 0 : _a.ifMatch) && ((_b = options.conditions) === null || _b === void 0 ? void 0 : _b.ifMatch) !== ETagNone) || + (((_c = options.conditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch) && ((_d = options.conditions) === null || _d === void 0 ? void 0 : _d.ifNoneMatch) !== ETagNone) || + ((_e = options.conditions) === null || _e === void 0 ? void 0 : _e.tagConditions))) { + throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable."); + } + try { + return await this._containerOrBlobOperation.releaseLease(this._leaseId, Object.assign({ abortSignal: options.abortSignal, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_f = options.conditions) === null || _f === void 0 ? void 0 : _f.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * To renew the lease. * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-container @@ -80253,41 +79270,29 @@ var BlobLeaseClient = /** @class */ (function () { * @param options - Optional option to configure lease management operations. * @returns Response data for renew lease operation. */ - BlobLeaseClient.prototype.renewLease = function (options) { + async renewLease(options = {}) { var _a, _b, _c, _d, _e, _f; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _g, span, updatedOptions, e_4; - return tslib.__generator(this, function (_h) { - switch (_h.label) { - case 0: - _g = createSpan("BlobLeaseClient-renewLease", options), span = _g.span, updatedOptions = _g.updatedOptions; - if (this._isContainer && - ((((_a = options.conditions) === null || _a === void 0 ? void 0 : _a.ifMatch) && ((_b = options.conditions) === null || _b === void 0 ? void 0 : _b.ifMatch) !== ETagNone) || - (((_c = options.conditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch) && ((_d = options.conditions) === null || _d === void 0 ? void 0 : _d.ifNoneMatch) !== ETagNone) || - ((_e = options.conditions) === null || _e === void 0 ? void 0 : _e.tagConditions))) { - throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable."); - } - _h.label = 1; - case 1: - _h.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this._containerOrBlobOperation.renewLease(this._leaseId, tslib.__assign({ abortSignal: options.abortSignal, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_f = options.conditions) === null || _f === void 0 ? void 0 : _f.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _h.sent()]; - case 3: - e_4 = _h.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_4.message - }); - throw e_4; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobLeaseClient-renewLease", options); + if (this._isContainer && + ((((_a = options.conditions) === null || _a === void 0 ? void 0 : _a.ifMatch) && ((_b = options.conditions) === null || _b === void 0 ? void 0 : _b.ifMatch) !== ETagNone) || + (((_c = options.conditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch) && ((_d = options.conditions) === null || _d === void 0 ? void 0 : _d.ifNoneMatch) !== ETagNone) || + ((_e = options.conditions) === null || _e === void 0 ? void 0 : _e.tagConditions))) { + throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable."); + } + try { + return await this._containerOrBlobOperation.renewLease(this._leaseId, Object.assign({ abortSignal: options.abortSignal, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_f = options.conditions) === null || _f === void 0 ? void 0 : _f.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * To end the lease but ensure that another client cannot acquire a new lease * until the current lease period has expired. @@ -80299,44 +79304,31 @@ var BlobLeaseClient = /** @class */ (function () { * @param options - Optional options to configure lease management operations. * @returns Response data for break lease operation. */ - BlobLeaseClient.prototype.breakLease = function (breakPeriod, options) { + async breakLease(breakPeriod, options = {}) { var _a, _b, _c, _d, _e, _f; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _g, span, updatedOptions, operationOptions, e_5; - return tslib.__generator(this, function (_h) { - switch (_h.label) { - case 0: - _g = createSpan("BlobLeaseClient-breakLease", options), span = _g.span, updatedOptions = _g.updatedOptions; - if (this._isContainer && - ((((_a = options.conditions) === null || _a === void 0 ? void 0 : _a.ifMatch) && ((_b = options.conditions) === null || _b === void 0 ? void 0 : _b.ifMatch) !== ETagNone) || - (((_c = options.conditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch) && ((_d = options.conditions) === null || _d === void 0 ? void 0 : _d.ifNoneMatch) !== ETagNone) || - ((_e = options.conditions) === null || _e === void 0 ? void 0 : _e.tagConditions))) { - throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable."); - } - _h.label = 1; - case 1: - _h.trys.push([1, 3, 4, 5]); - operationOptions = tslib.__assign({ abortSignal: options.abortSignal, breakPeriod: breakPeriod, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_f = options.conditions) === null || _f === void 0 ? void 0 : _f.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)); - return [4 /*yield*/, this._containerOrBlobOperation.breakLease(operationOptions)]; - case 2: return [2 /*return*/, _h.sent()]; - case 3: - e_5 = _h.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_5.message - }); - throw e_5; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobLeaseClient-breakLease", options); + if (this._isContainer && + ((((_a = options.conditions) === null || _a === void 0 ? void 0 : _a.ifMatch) && ((_b = options.conditions) === null || _b === void 0 ? void 0 : _b.ifMatch) !== ETagNone) || + (((_c = options.conditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch) && ((_d = options.conditions) === null || _d === void 0 ? void 0 : _d.ifNoneMatch) !== ETagNone) || + ((_e = options.conditions) === null || _e === void 0 ? void 0 : _e.tagConditions))) { + throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable."); + } + try { + const operationOptions = Object.assign({ abortSignal: options.abortSignal, breakPeriod, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_f = options.conditions) === null || _f === void 0 ? void 0 : _f.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)); + return await this._containerOrBlobOperation.breakLease(operationOptions); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; - return BlobLeaseClient; -}()); + throw e; + } + finally { + span.end(); + } + } +} // Copyright (c) Microsoft Corporation. /** @@ -80344,8 +79336,7 @@ var BlobLeaseClient = /** @class */ (function () { * * A Node.js ReadableStream will internally retry when internal ReadableStream unexpected ends. */ -var RetriableReadableStream = /** @class */ (function (_super) { - tslib.__extends(RetriableReadableStream, _super); +class RetriableReadableStream extends stream.Readable { /** * Creates an instance of RetriableReadableStream. * @@ -80356,32 +79347,31 @@ var RetriableReadableStream = /** @class */ (function (_super) { * @param count - How much data in original data source to read * @param options - */ - function RetriableReadableStream(source, getter, offset, count, options) { - if (options === void 0) { options = {}; } - var _this = _super.call(this, { highWaterMark: options.highWaterMark }) || this; - _this.retries = 0; - _this.sourceDataHandler = function (data) { - if (_this.options.doInjectErrorOnce) { - _this.options.doInjectErrorOnce = undefined; - _this.source.pause(); - _this.source.removeAllListeners("data"); - _this.source.emit("end"); + constructor(source, getter, offset, count, options = {}) { + super({ highWaterMark: options.highWaterMark }); + this.retries = 0; + this.sourceDataHandler = (data) => { + if (this.options.doInjectErrorOnce) { + this.options.doInjectErrorOnce = undefined; + this.source.pause(); + this.source.removeAllListeners("data"); + this.source.emit("end"); return; } // console.log( // `Offset: ${this.offset}, Received ${data.length} from internal stream` // ); - _this.offset += data.length; - if (_this.onProgress) { - _this.onProgress({ loadedBytes: _this.offset - _this.start }); + this.offset += data.length; + if (this.onProgress) { + this.onProgress({ loadedBytes: this.offset - this.start }); } - if (!_this.push(data)) { - _this.source.pause(); + if (!this.push(data)) { + this.source.pause(); } }; - _this.sourceErrorOrEndHandler = function (err) { + this.sourceErrorOrEndHandler = (err) => { if (err && err.name === "AbortError") { - _this.destroy(err); + this.destroy(err); return; } // console.log( @@ -80389,69 +79379,66 @@ var RetriableReadableStream = /** @class */ (function (_super) { // this.offset // }, dest end : ${this.end}` // ); - _this.removeSourceEventHandlers(); - if (_this.offset - 1 === _this.end) { - _this.push(null); + this.removeSourceEventHandlers(); + if (this.offset - 1 === this.end) { + this.push(null); } - else if (_this.offset <= _this.end) { + else if (this.offset <= this.end) { // console.log( // `retries: ${this.retries}, max retries: ${this.maxRetries}` // ); - if (_this.retries < _this.maxRetryRequests) { - _this.retries += 1; - _this.getter(_this.offset) - .then(function (newSource) { - _this.source = newSource; - _this.setSourceEventHandlers(); + if (this.retries < this.maxRetryRequests) { + this.retries += 1; + this.getter(this.offset) + .then((newSource) => { + this.source = newSource; + this.setSourceEventHandlers(); + return; }) - .catch(function (error) { - _this.destroy(error); + .catch((error) => { + this.destroy(error); }); } else { - _this.destroy(new Error( - // tslint:disable-next-line:max-line-length - "Data corruption failure: received less data than required and reached maxRetires limitation. Received data offset: " + (_this - .offset - 1) + ", data needed offset: " + _this.end + ", retries: " + _this.retries + ", max retries: " + _this.maxRetryRequests)); + this.destroy(new Error(`Data corruption failure: received less data than required and reached maxRetires limitation. Received data offset: ${this + .offset - 1}, data needed offset: ${this.end}, retries: ${this.retries}, max retries: ${this.maxRetryRequests}`)); } } else { - _this.destroy(new Error("Data corruption failure: Received more data than original request, data needed offset is " + _this.end + ", received offset: " + (_this.offset - 1))); + this.destroy(new Error(`Data corruption failure: Received more data than original request, data needed offset is ${this.end}, received offset: ${this.offset - 1}`)); } }; - _this.getter = getter; - _this.source = source; - _this.start = offset; - _this.offset = offset; - _this.end = offset + count - 1; - _this.maxRetryRequests = + this.getter = getter; + this.source = source; + this.start = offset; + this.offset = offset; + this.end = offset + count - 1; + this.maxRetryRequests = options.maxRetryRequests && options.maxRetryRequests >= 0 ? options.maxRetryRequests : 0; - _this.onProgress = options.onProgress; - _this.options = options; - _this.setSourceEventHandlers(); - return _this; + this.onProgress = options.onProgress; + this.options = options; + this.setSourceEventHandlers(); } - RetriableReadableStream.prototype._read = function () { + _read() { this.source.resume(); - }; - RetriableReadableStream.prototype.setSourceEventHandlers = function () { + } + setSourceEventHandlers() { this.source.on("data", this.sourceDataHandler); this.source.on("end", this.sourceErrorOrEndHandler); this.source.on("error", this.sourceErrorOrEndHandler); - }; - RetriableReadableStream.prototype.removeSourceEventHandlers = function () { + } + removeSourceEventHandlers() { this.source.removeListener("data", this.sourceDataHandler); this.source.removeListener("end", this.sourceErrorOrEndHandler); this.source.removeListener("error", this.sourceErrorOrEndHandler); - }; - RetriableReadableStream.prototype._destroy = function (error, callback) { + } + _destroy(error, callback) { // remove listener from source and release source this.removeSourceEventHandlers(); this.source.destroy(); callback(error === null ? undefined : error); - }; - return RetriableReadableStream; -}(stream.Readable)); + } +} // Copyright (c) Microsoft Corporation. /** @@ -80464,7 +79451,7 @@ var RetriableReadableStream = /** @class */ (function (_super) { * The {@link readableStreamBody} stream will retry underlayer, you can just use it as a normal Node.js * Readable stream. */ -var BlobDownloadResponse = /** @class */ (function () { +class BlobDownloadResponse { /** * Creates an instance of BlobDownloadResponse. * @@ -80474,593 +79461,443 @@ var BlobDownloadResponse = /** @class */ (function () { * @param count - * @param options - */ - function BlobDownloadResponse(originalResponse, getter, offset, count, options) { - if (options === void 0) { options = {}; } + constructor(originalResponse, getter, offset, count, options = {}) { this.originalResponse = originalResponse; this.blobDownloadStream = new RetriableReadableStream(this.originalResponse.readableStreamBody, getter, offset, count, options); } - Object.defineProperty(BlobDownloadResponse.prototype, "acceptRanges", { - /** - * Indicates that the service supports - * requests for partial file content. - * - * @readonly - */ - get: function () { - return this.originalResponse.acceptRanges; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "cacheControl", { - /** - * Returns if it was previously specified - * for the file. - * - * @readonly - */ - get: function () { - return this.originalResponse.cacheControl; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "contentDisposition", { - /** - * Returns the value that was specified - * for the 'x-ms-content-disposition' header and specifies how to process the - * response. - * - * @readonly - */ - get: function () { - return this.originalResponse.contentDisposition; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "contentEncoding", { - /** - * Returns the value that was specified - * for the Content-Encoding request header. - * - * @readonly - */ - get: function () { - return this.originalResponse.contentEncoding; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "contentLanguage", { - /** - * Returns the value that was specified - * for the Content-Language request header. - * - * @readonly - */ - get: function () { - return this.originalResponse.contentLanguage; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "blobSequenceNumber", { - /** - * The current sequence number for a - * page blob. This header is not returned for block blobs or append blobs. - * - * @readonly - */ - get: function () { - return this.originalResponse.blobSequenceNumber; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "blobType", { - /** - * The blob's type. Possible values include: - * 'BlockBlob', 'PageBlob', 'AppendBlob'. - * - * @readonly - */ - get: function () { - return this.originalResponse.blobType; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "contentLength", { - /** - * The number of bytes present in the - * response body. - * - * @readonly - */ - get: function () { - return this.originalResponse.contentLength; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "contentMD5", { - /** - * If the file has an MD5 hash and the - * request is to read the full file, this response header is returned so that - * the client can check for message content integrity. If the request is to - * read a specified range and the 'x-ms-range-get-content-md5' is set to - * true, then the request returns an MD5 hash for the range, as long as the - * range size is less than or equal to 4 MB. If neither of these sets of - * conditions is true, then no value is returned for the 'Content-MD5' - * header. - * - * @readonly - */ - get: function () { - return this.originalResponse.contentMD5; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "contentRange", { - /** - * Indicates the range of bytes returned if - * the client requested a subset of the file by setting the Range request - * header. - * - * @readonly - */ - get: function () { - return this.originalResponse.contentRange; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "contentType", { - /** - * The content type specified for the file. - * The default content type is 'application/octet-stream' - * - * @readonly - */ - get: function () { - return this.originalResponse.contentType; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "copyCompletedOn", { - /** - * Conclusion time of the last attempted - * Copy File operation where this file was the destination file. This value - * can specify the time of a completed, aborted, or failed copy attempt. - * - * @readonly - */ - get: function () { - return this.originalResponse.copyCompletedOn; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "copyId", { - /** - * String identifier for the last attempted Copy - * File operation where this file was the destination file. - * - * @readonly - */ - get: function () { - return this.originalResponse.copyId; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "copyProgress", { - /** - * Contains the number of bytes copied and - * the total bytes in the source in the last attempted Copy File operation - * where this file was the destination file. Can show between 0 and - * Content-Length bytes copied. - * - * @readonly - */ - get: function () { - return this.originalResponse.copyProgress; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "copySource", { - /** - * URL up to 2KB in length that specifies the - * source file used in the last attempted Copy File operation where this file - * was the destination file. - * - * @readonly - */ - get: function () { - return this.originalResponse.copySource; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "copyStatus", { - /** - * State of the copy operation - * identified by 'x-ms-copy-id'. Possible values include: 'pending', - * 'success', 'aborted', 'failed' - * - * @readonly - */ - get: function () { - return this.originalResponse.copyStatus; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "copyStatusDescription", { - /** - * Only appears when - * x-ms-copy-status is failed or pending. Describes cause of fatal or - * non-fatal copy operation failure. - * - * @readonly - */ - get: function () { - return this.originalResponse.copyStatusDescription; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "leaseDuration", { - /** - * When a blob is leased, - * specifies whether the lease is of infinite or fixed duration. Possible - * values include: 'infinite', 'fixed'. - * - * @readonly - */ - get: function () { - return this.originalResponse.leaseDuration; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "leaseState", { - /** - * Lease state of the blob. Possible - * values include: 'available', 'leased', 'expired', 'breaking', 'broken'. - * - * @readonly - */ - get: function () { - return this.originalResponse.leaseState; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "leaseStatus", { - /** - * The current lease status of the - * blob. Possible values include: 'locked', 'unlocked'. - * - * @readonly - */ - get: function () { - return this.originalResponse.leaseStatus; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "date", { - /** - * A UTC date/time value generated by the service that - * indicates the time at which the response was initiated. - * - * @readonly - */ - get: function () { - return this.originalResponse.date; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "blobCommittedBlockCount", { - /** - * The number of committed blocks - * present in the blob. This header is returned only for append blobs. - * - * @readonly - */ - get: function () { - return this.originalResponse.blobCommittedBlockCount; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "etag", { - /** - * The ETag contains a value that you can use to - * perform operations conditionally, in quotes. - * - * @readonly - */ - get: function () { - return this.originalResponse.etag; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "tagCount", { - /** - * The number of tags associated with the blob - * - * @readonly - */ - get: function () { - return this.originalResponse.tagCount; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "errorCode", { - /** - * The error code. - * - * @readonly - */ - get: function () { - return this.originalResponse.errorCode; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "isServerEncrypted", { - /** - * The value of this header is set to - * true if the file data and application metadata are completely encrypted - * using the specified algorithm. Otherwise, the value is set to false (when - * the file is unencrypted, or if only parts of the file/application metadata - * are encrypted). - * - * @readonly - */ - get: function () { - return this.originalResponse.isServerEncrypted; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "blobContentMD5", { - /** - * If the blob has a MD5 hash, and if - * request contains range header (Range or x-ms-range), this response header - * is returned with the value of the whole blob's MD5 value. This value may - * or may not be equal to the value returned in Content-MD5 header, with the - * latter calculated from the requested range. - * - * @readonly - */ - get: function () { - return this.originalResponse.blobContentMD5; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "lastModified", { - /** - * Returns the date and time the file was last - * modified. Any operation that modifies the file or its properties updates - * the last modified time. - * - * @readonly - */ - get: function () { - return this.originalResponse.lastModified; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "lastAccessed", { - /** - * Returns the UTC date and time generated by the service that indicates the time at which the blob was - * last read or written to. - * - * @readonly - */ - get: function () { - return this.originalResponse.lastAccessed; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "metadata", { - /** - * A name-value pair - * to associate with a file storage object. - * - * @readonly - */ - get: function () { - return this.originalResponse.metadata; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "requestId", { - /** - * This header uniquely identifies the request - * that was made and can be used for troubleshooting the request. - * - * @readonly - */ - get: function () { - return this.originalResponse.requestId; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "clientRequestId", { - /** - * If a client request id header is sent in the request, this header will be present in the - * response with the same value. - * - * @readonly - */ - get: function () { - return this.originalResponse.clientRequestId; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "version", { - /** - * Indicates the version of the Blob service used - * to execute the request. - * - * @readonly - */ - get: function () { - return this.originalResponse.version; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "versionId", { - /** - * Indicates the versionId of the downloaded blob version. - * - * @readonly - */ - get: function () { - return this.originalResponse.versionId; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "isCurrentVersion", { - /** - * Indicates whether version of this blob is a current version. - * - * @readonly - */ - get: function () { - return this.originalResponse.isCurrentVersion; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "encryptionKeySha256", { - /** - * The SHA-256 hash of the encryption key used to encrypt the blob. This value is only returned - * when the blob was encrypted with a customer-provided key. - * - * @readonly - */ - get: function () { - return this.originalResponse.encryptionKeySha256; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "contentCrc64", { - /** - * If the request is to read a specified range and the x-ms-range-get-content-crc64 is set to - * true, then the request returns a crc64 for the range, as long as the range size is less than - * or equal to 4 MB. If both x-ms-range-get-content-crc64 & x-ms-range-get-content-md5 is - * specified in the same request, it will fail with 400(Bad Request) - */ - get: function () { - return this.originalResponse.contentCrc64; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "objectReplicationDestinationPolicyId", { - /** - * Object Replication Policy Id of the destination blob. - * - * @readonly - */ - get: function () { - return this.originalResponse.objectReplicationDestinationPolicyId; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "objectReplicationSourceProperties", { - /** - * Parsed Object Replication Policy Id, Rule Id(s) and status of the source blob. - * - * @readonly - */ - get: function () { - return this.originalResponse.objectReplicationSourceProperties; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "isSealed", { - /** - * If this blob has been sealed. - * - * @readonly - */ - get: function () { - return this.originalResponse.isSealed; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "contentAsBlob", { - /** - * The response body as a browser Blob. - * Always undefined in node.js. - * - * @readonly - */ - get: function () { - return this.originalResponse.blobBody; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "readableStreamBody", { - /** - * The response body as a node.js Readable stream. - * Always undefined in the browser. - * - * It will automatically retry when internal read stream unexpected ends. - * - * @readonly - */ - get: function () { - return coreHttp.isNode ? this.blobDownloadStream : undefined; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobDownloadResponse.prototype, "_response", { - /** - * The HTTP response. - */ - get: function () { - return this.originalResponse._response; - }, - enumerable: false, - configurable: true - }); - return BlobDownloadResponse; -}()); + /** + * Indicates that the service supports + * requests for partial file content. + * + * @readonly + */ + get acceptRanges() { + return this.originalResponse.acceptRanges; + } + /** + * Returns if it was previously specified + * for the file. + * + * @readonly + */ + get cacheControl() { + return this.originalResponse.cacheControl; + } + /** + * Returns the value that was specified + * for the 'x-ms-content-disposition' header and specifies how to process the + * response. + * + * @readonly + */ + get contentDisposition() { + return this.originalResponse.contentDisposition; + } + /** + * Returns the value that was specified + * for the Content-Encoding request header. + * + * @readonly + */ + get contentEncoding() { + return this.originalResponse.contentEncoding; + } + /** + * Returns the value that was specified + * for the Content-Language request header. + * + * @readonly + */ + get contentLanguage() { + return this.originalResponse.contentLanguage; + } + /** + * The current sequence number for a + * page blob. This header is not returned for block blobs or append blobs. + * + * @readonly + */ + get blobSequenceNumber() { + return this.originalResponse.blobSequenceNumber; + } + /** + * The blob's type. Possible values include: + * 'BlockBlob', 'PageBlob', 'AppendBlob'. + * + * @readonly + */ + get blobType() { + return this.originalResponse.blobType; + } + /** + * The number of bytes present in the + * response body. + * + * @readonly + */ + get contentLength() { + return this.originalResponse.contentLength; + } + /** + * If the file has an MD5 hash and the + * request is to read the full file, this response header is returned so that + * the client can check for message content integrity. If the request is to + * read a specified range and the 'x-ms-range-get-content-md5' is set to + * true, then the request returns an MD5 hash for the range, as long as the + * range size is less than or equal to 4 MB. If neither of these sets of + * conditions is true, then no value is returned for the 'Content-MD5' + * header. + * + * @readonly + */ + get contentMD5() { + return this.originalResponse.contentMD5; + } + /** + * Indicates the range of bytes returned if + * the client requested a subset of the file by setting the Range request + * header. + * + * @readonly + */ + get contentRange() { + return this.originalResponse.contentRange; + } + /** + * The content type specified for the file. + * The default content type is 'application/octet-stream' + * + * @readonly + */ + get contentType() { + return this.originalResponse.contentType; + } + /** + * Conclusion time of the last attempted + * Copy File operation where this file was the destination file. This value + * can specify the time of a completed, aborted, or failed copy attempt. + * + * @readonly + */ + get copyCompletedOn() { + return this.originalResponse.copyCompletedOn; + } + /** + * String identifier for the last attempted Copy + * File operation where this file was the destination file. + * + * @readonly + */ + get copyId() { + return this.originalResponse.copyId; + } + /** + * Contains the number of bytes copied and + * the total bytes in the source in the last attempted Copy File operation + * where this file was the destination file. Can show between 0 and + * Content-Length bytes copied. + * + * @readonly + */ + get copyProgress() { + return this.originalResponse.copyProgress; + } + /** + * URL up to 2KB in length that specifies the + * source file used in the last attempted Copy File operation where this file + * was the destination file. + * + * @readonly + */ + get copySource() { + return this.originalResponse.copySource; + } + /** + * State of the copy operation + * identified by 'x-ms-copy-id'. Possible values include: 'pending', + * 'success', 'aborted', 'failed' + * + * @readonly + */ + get copyStatus() { + return this.originalResponse.copyStatus; + } + /** + * Only appears when + * x-ms-copy-status is failed or pending. Describes cause of fatal or + * non-fatal copy operation failure. + * + * @readonly + */ + get copyStatusDescription() { + return this.originalResponse.copyStatusDescription; + } + /** + * When a blob is leased, + * specifies whether the lease is of infinite or fixed duration. Possible + * values include: 'infinite', 'fixed'. + * + * @readonly + */ + get leaseDuration() { + return this.originalResponse.leaseDuration; + } + /** + * Lease state of the blob. Possible + * values include: 'available', 'leased', 'expired', 'breaking', 'broken'. + * + * @readonly + */ + get leaseState() { + return this.originalResponse.leaseState; + } + /** + * The current lease status of the + * blob. Possible values include: 'locked', 'unlocked'. + * + * @readonly + */ + get leaseStatus() { + return this.originalResponse.leaseStatus; + } + /** + * A UTC date/time value generated by the service that + * indicates the time at which the response was initiated. + * + * @readonly + */ + get date() { + return this.originalResponse.date; + } + /** + * The number of committed blocks + * present in the blob. This header is returned only for append blobs. + * + * @readonly + */ + get blobCommittedBlockCount() { + return this.originalResponse.blobCommittedBlockCount; + } + /** + * The ETag contains a value that you can use to + * perform operations conditionally, in quotes. + * + * @readonly + */ + get etag() { + return this.originalResponse.etag; + } + /** + * The number of tags associated with the blob + * + * @readonly + */ + get tagCount() { + return this.originalResponse.tagCount; + } + /** + * The error code. + * + * @readonly + */ + get errorCode() { + return this.originalResponse.errorCode; + } + /** + * The value of this header is set to + * true if the file data and application metadata are completely encrypted + * using the specified algorithm. Otherwise, the value is set to false (when + * the file is unencrypted, or if only parts of the file/application metadata + * are encrypted). + * + * @readonly + */ + get isServerEncrypted() { + return this.originalResponse.isServerEncrypted; + } + /** + * If the blob has a MD5 hash, and if + * request contains range header (Range or x-ms-range), this response header + * is returned with the value of the whole blob's MD5 value. This value may + * or may not be equal to the value returned in Content-MD5 header, with the + * latter calculated from the requested range. + * + * @readonly + */ + get blobContentMD5() { + return this.originalResponse.blobContentMD5; + } + /** + * Returns the date and time the file was last + * modified. Any operation that modifies the file or its properties updates + * the last modified time. + * + * @readonly + */ + get lastModified() { + return this.originalResponse.lastModified; + } + /** + * Returns the UTC date and time generated by the service that indicates the time at which the blob was + * last read or written to. + * + * @readonly + */ + get lastAccessed() { + return this.originalResponse.lastAccessed; + } + /** + * A name-value pair + * to associate with a file storage object. + * + * @readonly + */ + get metadata() { + return this.originalResponse.metadata; + } + /** + * This header uniquely identifies the request + * that was made and can be used for troubleshooting the request. + * + * @readonly + */ + get requestId() { + return this.originalResponse.requestId; + } + /** + * If a client request id header is sent in the request, this header will be present in the + * response with the same value. + * + * @readonly + */ + get clientRequestId() { + return this.originalResponse.clientRequestId; + } + /** + * Indicates the version of the Blob service used + * to execute the request. + * + * @readonly + */ + get version() { + return this.originalResponse.version; + } + /** + * Indicates the versionId of the downloaded blob version. + * + * @readonly + */ + get versionId() { + return this.originalResponse.versionId; + } + /** + * Indicates whether version of this blob is a current version. + * + * @readonly + */ + get isCurrentVersion() { + return this.originalResponse.isCurrentVersion; + } + /** + * The SHA-256 hash of the encryption key used to encrypt the blob. This value is only returned + * when the blob was encrypted with a customer-provided key. + * + * @readonly + */ + get encryptionKeySha256() { + return this.originalResponse.encryptionKeySha256; + } + /** + * If the request is to read a specified range and the x-ms-range-get-content-crc64 is set to + * true, then the request returns a crc64 for the range, as long as the range size is less than + * or equal to 4 MB. If both x-ms-range-get-content-crc64 & x-ms-range-get-content-md5 is + * specified in the same request, it will fail with 400(Bad Request) + */ + get contentCrc64() { + return this.originalResponse.contentCrc64; + } + /** + * Object Replication Policy Id of the destination blob. + * + * @readonly + */ + get objectReplicationDestinationPolicyId() { + return this.originalResponse.objectReplicationDestinationPolicyId; + } + /** + * Parsed Object Replication Policy Id, Rule Id(s) and status of the source blob. + * + * @readonly + */ + get objectReplicationSourceProperties() { + return this.originalResponse.objectReplicationSourceProperties; + } + /** + * If this blob has been sealed. + * + * @readonly + */ + get isSealed() { + return this.originalResponse.isSealed; + } + /** + * UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire. + * + * @readonly + */ + get immutabilityPolicyExpiresOn() { + return this.originalResponse.immutabilityPolicyExpiresOn; + } + /** + * Indicates immutability policy mode. + * + * @readonly + */ + get immutabilityPolicyMode() { + return this.originalResponse.immutabilityPolicyMode; + } + /** + * Indicates if a legal hold is present on the blob. + * + * @readonly + */ + get legalHold() { + return this.originalResponse.legalHold; + } + /** + * The response body as a browser Blob. + * Always undefined in node.js. + * + * @readonly + */ + get contentAsBlob() { + return this.originalResponse.blobBody; + } + /** + * The response body as a node.js Readable stream. + * Always undefined in the browser. + * + * It will automatically retry when internal read stream unexpected ends. + * + * @readonly + */ + get readableStreamBody() { + return coreHttp.isNode ? this.blobDownloadStream : undefined; + } + /** + * The HTTP response. + */ + get _response() { + return this.originalResponse._response; + } +} // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -var AVRO_SYNC_MARKER_SIZE = 16; -var AVRO_INIT_BYTES = new Uint8Array([79, 98, 106, 1]); -var AVRO_CODEC_KEY = "avro.codec"; -var AVRO_SCHEMA_KEY = "avro.schema"; +const AVRO_SYNC_MARKER_SIZE = 16; +const AVRO_INIT_BYTES = new Uint8Array([79, 98, 106, 1]); +const AVRO_CODEC_KEY = "avro.codec"; +const AVRO_SCHEMA_KEY = "avro.schema"; // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. @@ -81071,7 +79908,7 @@ function arraysEqual(a, b) { return false; if (a.length != b.length) return false; - for (var i = 0; i < a.length; ++i) { + for (let i = 0; i < a.length; ++i) { if (a[i] !== b[i]) return false; } @@ -81079,9 +79916,8 @@ function arraysEqual(a, b) { } // Copyright (c) Microsoft Corporation. -var AvroParser = /** @class */ (function () { - function AvroParser() { - } +// Licensed under the MIT license. +class AvroParser { /** * Reads a fixed number of bytes from the stream. * @@ -81089,294 +79925,135 @@ var AvroParser = /** @class */ (function () { * @param length - * @param options - */ - AvroParser.readFixedBytes = function (stream, length, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var bytes; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, stream.read(length, { abortSignal: options.abortSignal })]; - case 1: - bytes = _a.sent(); - if (bytes.length != length) { - throw new Error("Hit stream end."); - } - return [2 /*return*/, bytes]; - } - }); - }); - }; + static async readFixedBytes(stream, length, options = {}) { + const bytes = await stream.read(length, { abortSignal: options.abortSignal }); + if (bytes.length != length) { + throw new Error("Hit stream end."); + } + return bytes; + } /** * Reads a single byte from the stream. * * @param stream - * @param options - */ - AvroParser.readByte = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var buf; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, AvroParser.readFixedBytes(stream, 1, options)]; - case 1: - buf = _a.sent(); - return [2 /*return*/, buf[0]]; - } - }); - }); - }; + static async readByte(stream, options = {}) { + const buf = await AvroParser.readFixedBytes(stream, 1, options); + return buf[0]; + } // int and long are stored in variable-length zig-zag coding. // variable-length: https://lucene.apache.org/core/3_5_0/fileformats.html#VInt // zig-zag: https://developers.google.com/protocol-buffers/docs/encoding?csw=1#types - AvroParser.readZigZagLong = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var zigZagEncoded, significanceInBit, byte, haveMoreByte, significanceInFloat, res; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - zigZagEncoded = 0; - significanceInBit = 0; - _a.label = 1; - case 1: return [4 /*yield*/, AvroParser.readByte(stream, options)]; - case 2: - byte = _a.sent(); - haveMoreByte = byte & 0x80; - zigZagEncoded |= (byte & 0x7f) << significanceInBit; - significanceInBit += 7; - _a.label = 3; - case 3: - if (haveMoreByte && significanceInBit < 28) return [3 /*break*/, 1]; - _a.label = 4; - case 4: - if (!haveMoreByte) return [3 /*break*/, 9]; - // Switch to float arithmetic - zigZagEncoded = zigZagEncoded; - significanceInFloat = 268435456; // 2 ** 28. - _a.label = 5; - case 5: return [4 /*yield*/, AvroParser.readByte(stream, options)]; - case 6: - byte = _a.sent(); - zigZagEncoded += (byte & 0x7f) * significanceInFloat; - significanceInFloat *= 128; // 2 ** 7 - _a.label = 7; - case 7: - if (byte & 0x80) return [3 /*break*/, 5]; - _a.label = 8; - case 8: - res = (zigZagEncoded % 2 ? -(zigZagEncoded + 1) : zigZagEncoded) / 2; - if (res < Number.MIN_SAFE_INTEGER || res > Number.MAX_SAFE_INTEGER) { - throw new Error("Integer overflow."); - } - return [2 /*return*/, res]; - case 9: return [2 /*return*/, (zigZagEncoded >> 1) ^ -(zigZagEncoded & 1)]; - } - }); - }); - }; - AvroParser.readLong = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - return [2 /*return*/, AvroParser.readZigZagLong(stream, options)]; - }); - }); - }; - AvroParser.readInt = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - return [2 /*return*/, AvroParser.readZigZagLong(stream, options)]; - }); - }); - }; - AvroParser.readNull = function () { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - return [2 /*return*/, null]; - }); - }); - }; - AvroParser.readBoolean = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var b; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, AvroParser.readByte(stream, options)]; - case 1: - b = _a.sent(); - if (b == 1) { - return [2 /*return*/, true]; - } - else if (b == 0) { - return [2 /*return*/, false]; - } - else { - throw new Error("Byte was not a boolean."); - } - } - }); - }); - }; - AvroParser.readFloat = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var u8arr, view; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, AvroParser.readFixedBytes(stream, 4, options)]; - case 1: - u8arr = _a.sent(); - view = new DataView(u8arr.buffer, u8arr.byteOffset, u8arr.byteLength); - return [2 /*return*/, view.getFloat32(0, true)]; // littleEndian = true - } - }); - }); - }; - AvroParser.readDouble = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var u8arr, view; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, AvroParser.readFixedBytes(stream, 8, options)]; - case 1: - u8arr = _a.sent(); - view = new DataView(u8arr.buffer, u8arr.byteOffset, u8arr.byteLength); - return [2 /*return*/, view.getFloat64(0, true)]; // littleEndian = true - } - }); - }); - }; - AvroParser.readBytes = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var size; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, AvroParser.readLong(stream, options)]; - case 1: - size = _a.sent(); - if (size < 0) { - throw new Error("Bytes size was negative."); - } - return [4 /*yield*/, stream.read(size, { abortSignal: options.abortSignal })]; - case 2: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - AvroParser.readString = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var u8arr, utf8decoder; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, AvroParser.readBytes(stream, options)]; - case 1: - u8arr = _a.sent(); - // polyfill TextDecoder to be backward compatible with older - // nodejs that doesn't expose TextDecoder as a global variable - if (typeof TextDecoder === "undefined" && "function" !== "undefined") { - global.TextDecoder = __webpack_require__(669).TextDecoder; - } - utf8decoder = new TextDecoder(); - return [2 /*return*/, utf8decoder.decode(u8arr)]; - } - }); - }); - }; - AvroParser.readMapPair = function (stream, readItemMethod, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var key, value; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, AvroParser.readString(stream, options)]; - case 1: - key = _a.sent(); - return [4 /*yield*/, readItemMethod(stream, options)]; - case 2: - value = _a.sent(); - return [2 /*return*/, { key: key, value: value }]; - } - }); - }); - }; - AvroParser.readMap = function (stream, readItemMethod, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var readPairMethod, pairs, dict, _i, pairs_1, pair; - var _this = this; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - readPairMethod = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(_this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, AvroParser.readMapPair(stream, readItemMethod, options)]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return [4 /*yield*/, AvroParser.readArray(stream, readPairMethod, options)]; - case 1: - pairs = _a.sent(); - dict = {}; - for (_i = 0, pairs_1 = pairs; _i < pairs_1.length; _i++) { - pair = pairs_1[_i]; - dict[pair.key] = pair.value; - } - return [2 /*return*/, dict]; - } - }); - }); - }; - AvroParser.readArray = function (stream, readItemMethod, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var items, count, item; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - items = []; - return [4 /*yield*/, AvroParser.readLong(stream, options)]; - case 1: - count = _a.sent(); - _a.label = 2; - case 2: - if (!(count != 0)) return [3 /*break*/, 8]; - if (!(count < 0)) return [3 /*break*/, 4]; - // Ignore block sizes - return [4 /*yield*/, AvroParser.readLong(stream, options)]; - case 3: - // Ignore block sizes - _a.sent(); - count = -count; - _a.label = 4; - case 4: - if (!count--) return [3 /*break*/, 6]; - return [4 /*yield*/, readItemMethod(stream, options)]; - case 5: - item = _a.sent(); - items.push(item); - return [3 /*break*/, 4]; - case 6: return [4 /*yield*/, AvroParser.readLong(stream, options)]; - case 7: - count = _a.sent(); - return [3 /*break*/, 2]; - case 8: return [2 /*return*/, items]; - } - }); - }); - }; - return AvroParser; -}()); + static async readZigZagLong(stream, options = {}) { + let zigZagEncoded = 0; + let significanceInBit = 0; + let byte, haveMoreByte, significanceInFloat; + do { + byte = await AvroParser.readByte(stream, options); + haveMoreByte = byte & 0x80; + zigZagEncoded |= (byte & 0x7f) << significanceInBit; + significanceInBit += 7; + } while (haveMoreByte && significanceInBit < 28); // bitwise operation only works for 32-bit integers + if (haveMoreByte) { + // Switch to float arithmetic + zigZagEncoded = zigZagEncoded; + significanceInFloat = 268435456; // 2 ** 28. + do { + byte = await AvroParser.readByte(stream, options); + zigZagEncoded += (byte & 0x7f) * significanceInFloat; + significanceInFloat *= 128; // 2 ** 7 + } while (byte & 0x80); + const res = (zigZagEncoded % 2 ? -(zigZagEncoded + 1) : zigZagEncoded) / 2; + if (res < Number.MIN_SAFE_INTEGER || res > Number.MAX_SAFE_INTEGER) { + throw new Error("Integer overflow."); + } + return res; + } + return (zigZagEncoded >> 1) ^ -(zigZagEncoded & 1); + } + static async readLong(stream, options = {}) { + return AvroParser.readZigZagLong(stream, options); + } + static async readInt(stream, options = {}) { + return AvroParser.readZigZagLong(stream, options); + } + static async readNull() { + return null; + } + static async readBoolean(stream, options = {}) { + const b = await AvroParser.readByte(stream, options); + if (b == 1) { + return true; + } + else if (b == 0) { + return false; + } + else { + throw new Error("Byte was not a boolean."); + } + } + static async readFloat(stream, options = {}) { + const u8arr = await AvroParser.readFixedBytes(stream, 4, options); + const view = new DataView(u8arr.buffer, u8arr.byteOffset, u8arr.byteLength); + return view.getFloat32(0, true); // littleEndian = true + } + static async readDouble(stream, options = {}) { + const u8arr = await AvroParser.readFixedBytes(stream, 8, options); + const view = new DataView(u8arr.buffer, u8arr.byteOffset, u8arr.byteLength); + return view.getFloat64(0, true); // littleEndian = true + } + static async readBytes(stream, options = {}) { + const size = await AvroParser.readLong(stream, options); + if (size < 0) { + throw new Error("Bytes size was negative."); + } + return await stream.read(size, { abortSignal: options.abortSignal }); + } + static async readString(stream, options = {}) { + const u8arr = await AvroParser.readBytes(stream, options); + // polyfill TextDecoder to be backward compatible with older + // nodejs that doesn't expose TextDecoder as a global variable + if (typeof TextDecoder === "undefined" && "function" !== "undefined") { + global.TextDecoder = __webpack_require__(669).TextDecoder; + } + // FUTURE: need TextDecoder polyfill for IE + const utf8decoder = new TextDecoder(); + return utf8decoder.decode(u8arr); + } + static async readMapPair(stream, readItemMethod, options = {}) { + const key = await AvroParser.readString(stream, options); + // FUTURE: this won't work with readFixed (currently not supported) which needs a length as the parameter. + const value = await readItemMethod(stream, options); + return { key, value }; + } + static async readMap(stream, readItemMethod, options = {}) { + const readPairMethod = async (stream, options = {}) => { + return await AvroParser.readMapPair(stream, readItemMethod, options); + }; + const pairs = await AvroParser.readArray(stream, readPairMethod, options); + const dict = {}; + for (const pair of pairs) { + dict[pair.key] = pair.value; + } + return dict; + } + static async readArray(stream, readItemMethod, options = {}) { + const items = []; + for (let count = await AvroParser.readLong(stream, options); count != 0; count = await AvroParser.readLong(stream, options)) { + if (count < 0) { + // Ignore block sizes + await AvroParser.readLong(stream, options); + count = -count; + } + while (count--) { + const item = await readItemMethod(stream, options); + items.push(item); + } + } + return items; + } +} var AvroComplex; (function (AvroComplex) { AvroComplex["RECORD"] = "record"; @@ -81386,13 +80063,11 @@ var AvroComplex; AvroComplex["UNION"] = "union"; AvroComplex["FIXED"] = "fixed"; })(AvroComplex || (AvroComplex = {})); -var AvroType = /** @class */ (function () { - function AvroType() { - } +class AvroType { /** * Determines the AvroType from the Avro Schema. */ - AvroType.fromSchema = function (schema) { + static fromSchema(schema) { if (typeof schema === "string") { return AvroType.fromStringSchema(schema); } @@ -81402,8 +80077,8 @@ var AvroType = /** @class */ (function () { else { return AvroType.fromObjectSchema(schema); } - }; - AvroType.fromStringSchema = function (schema) { + } + static fromStringSchema(schema) { switch (schema) { case AvroPrimitive.NULL: case AvroPrimitive.BOOLEAN: @@ -81415,14 +80090,14 @@ var AvroType = /** @class */ (function () { case AvroPrimitive.STRING: return new AvroPrimitiveType(schema); default: - throw new Error("Unexpected Avro type " + schema); + throw new Error(`Unexpected Avro type ${schema}`); } - }; - AvroType.fromArraySchema = function (schema) { + } + static fromArraySchema(schema) { return new AvroUnionType(schema.map(AvroType.fromSchema)); - }; - AvroType.fromObjectSchema = function (schema) { - var type = schema.type; + } + static fromObjectSchema(schema) { + const type = schema.type; // Primitives can be defined as strings or objects try { return AvroType.fromStringSchema(type); @@ -81431,41 +80106,39 @@ var AvroType = /** @class */ (function () { switch (type) { case AvroComplex.RECORD: if (schema.aliases) { - throw new Error("aliases currently is not supported, schema: " + schema); + throw new Error(`aliases currently is not supported, schema: ${schema}`); } if (!schema.name) { - throw new Error("Required attribute 'name' doesn't exist on schema: " + schema); + throw new Error(`Required attribute 'name' doesn't exist on schema: ${schema}`); } - var fields = {}; + const fields = {}; if (!schema.fields) { - throw new Error("Required attribute 'fields' doesn't exist on schema: " + schema); + throw new Error(`Required attribute 'fields' doesn't exist on schema: ${schema}`); } - for (var _i = 0, _a = schema.fields; _i < _a.length; _i++) { - var field = _a[_i]; + for (const field of schema.fields) { fields[field.name] = AvroType.fromSchema(field.type); } return new AvroRecordType(fields, schema.name); case AvroComplex.ENUM: if (schema.aliases) { - throw new Error("aliases currently is not supported, schema: " + schema); + throw new Error(`aliases currently is not supported, schema: ${schema}`); } if (!schema.symbols) { - throw new Error("Required attribute 'symbols' doesn't exist on schema: " + schema); + throw new Error(`Required attribute 'symbols' doesn't exist on schema: ${schema}`); } return new AvroEnumType(schema.symbols); case AvroComplex.MAP: if (!schema.values) { - throw new Error("Required attribute 'values' doesn't exist on schema: " + schema); + throw new Error(`Required attribute 'values' doesn't exist on schema: ${schema}`); } return new AvroMapType(AvroType.fromSchema(schema.values)); case AvroComplex.ARRAY: // Unused today case AvroComplex.FIXED: // Unused today default: - throw new Error("Unexpected Avro type " + type + " in " + schema); + throw new Error(`Unexpected Avro type ${type} in ${schema}`); } - }; - return AvroType; -}()); + } +} var AvroPrimitive; (function (AvroPrimitive) { AvroPrimitive["NULL"] = "null"; @@ -81477,179 +80150,87 @@ var AvroPrimitive; AvroPrimitive["BYTES"] = "bytes"; AvroPrimitive["STRING"] = "string"; })(AvroPrimitive || (AvroPrimitive = {})); -var AvroPrimitiveType = /** @class */ (function (_super) { - tslib.__extends(AvroPrimitiveType, _super); - function AvroPrimitiveType(primitive) { - var _this = _super.call(this) || this; - _this._primitive = primitive; - return _this; +class AvroPrimitiveType extends AvroType { + constructor(primitive) { + super(); + this._primitive = primitive; } - AvroPrimitiveType.prototype.read = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = this._primitive; - switch (_a) { - case AvroPrimitive.NULL: return [3 /*break*/, 1]; - case AvroPrimitive.BOOLEAN: return [3 /*break*/, 3]; - case AvroPrimitive.INT: return [3 /*break*/, 5]; - case AvroPrimitive.LONG: return [3 /*break*/, 7]; - case AvroPrimitive.FLOAT: return [3 /*break*/, 9]; - case AvroPrimitive.DOUBLE: return [3 /*break*/, 11]; - case AvroPrimitive.BYTES: return [3 /*break*/, 13]; - case AvroPrimitive.STRING: return [3 /*break*/, 15]; - } - return [3 /*break*/, 17]; - case 1: return [4 /*yield*/, AvroParser.readNull()]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: return [4 /*yield*/, AvroParser.readBoolean(stream, options)]; - case 4: return [2 /*return*/, _b.sent()]; - case 5: return [4 /*yield*/, AvroParser.readInt(stream, options)]; - case 6: return [2 /*return*/, _b.sent()]; - case 7: return [4 /*yield*/, AvroParser.readLong(stream, options)]; - case 8: return [2 /*return*/, _b.sent()]; - case 9: return [4 /*yield*/, AvroParser.readFloat(stream, options)]; - case 10: return [2 /*return*/, _b.sent()]; - case 11: return [4 /*yield*/, AvroParser.readDouble(stream, options)]; - case 12: return [2 /*return*/, _b.sent()]; - case 13: return [4 /*yield*/, AvroParser.readBytes(stream, options)]; - case 14: return [2 /*return*/, _b.sent()]; - case 15: return [4 /*yield*/, AvroParser.readString(stream, options)]; - case 16: return [2 /*return*/, _b.sent()]; - case 17: throw new Error("Unknown Avro Primitive"); - } - }); - }); - }; - return AvroPrimitiveType; -}(AvroType)); -var AvroEnumType = /** @class */ (function (_super) { - tslib.__extends(AvroEnumType, _super); - function AvroEnumType(symbols) { - var _this = _super.call(this) || this; - _this._symbols = symbols; - return _this; + async read(stream, options = {}) { + switch (this._primitive) { + case AvroPrimitive.NULL: + return await AvroParser.readNull(); + case AvroPrimitive.BOOLEAN: + return await AvroParser.readBoolean(stream, options); + case AvroPrimitive.INT: + return await AvroParser.readInt(stream, options); + case AvroPrimitive.LONG: + return await AvroParser.readLong(stream, options); + case AvroPrimitive.FLOAT: + return await AvroParser.readFloat(stream, options); + case AvroPrimitive.DOUBLE: + return await AvroParser.readDouble(stream, options); + case AvroPrimitive.BYTES: + return await AvroParser.readBytes(stream, options); + case AvroPrimitive.STRING: + return await AvroParser.readString(stream, options); + default: + throw new Error("Unknown Avro Primitive"); + } } - AvroEnumType.prototype.read = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var value; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, AvroParser.readInt(stream, options)]; - case 1: - value = _a.sent(); - return [2 /*return*/, this._symbols[value]]; - } - }); - }); - }; - return AvroEnumType; -}(AvroType)); -var AvroUnionType = /** @class */ (function (_super) { - tslib.__extends(AvroUnionType, _super); - function AvroUnionType(types) { - var _this = _super.call(this) || this; - _this._types = types; - return _this; +} +class AvroEnumType extends AvroType { + constructor(symbols) { + super(); + this._symbols = symbols; } - AvroUnionType.prototype.read = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var typeIndex; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, AvroParser.readInt(stream, options)]; - case 1: - typeIndex = _a.sent(); - return [4 /*yield*/, this._types[typeIndex].read(stream, options)]; - case 2: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return AvroUnionType; -}(AvroType)); -var AvroMapType = /** @class */ (function (_super) { - tslib.__extends(AvroMapType, _super); - function AvroMapType(itemType) { - var _this = _super.call(this) || this; - _this._itemType = itemType; - return _this; + async read(stream, options = {}) { + const value = await AvroParser.readInt(stream, options); + return this._symbols[value]; } - AvroMapType.prototype.read = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var readItemMethod; - var _this = this; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - readItemMethod = function (s, options) { return tslib.__awaiter(_this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, this._itemType.read(s, options)]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); }; - return [4 /*yield*/, AvroParser.readMap(stream, readItemMethod, options)]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return AvroMapType; -}(AvroType)); -var AvroRecordType = /** @class */ (function (_super) { - tslib.__extends(AvroRecordType, _super); - function AvroRecordType(fields, name) { - var _this = _super.call(this) || this; - _this._fields = fields; - _this._name = name; - return _this; +} +class AvroUnionType extends AvroType { + constructor(types) { + super(); + this._types = types; } - AvroRecordType.prototype.read = function (stream, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var record, _a, _b, _i, key, _c, _d; - return tslib.__generator(this, function (_e) { - switch (_e.label) { - case 0: - record = {}; - record["$schema"] = this._name; - _a = []; - for (_b in this._fields) - _a.push(_b); - _i = 0; - _e.label = 1; - case 1: - if (!(_i < _a.length)) return [3 /*break*/, 4]; - key = _a[_i]; - if (!this._fields.hasOwnProperty(key)) return [3 /*break*/, 3]; - _c = record; - _d = key; - return [4 /*yield*/, this._fields[key].read(stream, options)]; - case 2: - _c[_d] = _e.sent(); - _e.label = 3; - case 3: - _i++; - return [3 /*break*/, 1]; - case 4: return [2 /*return*/, record]; - } - }); - }); - }; - return AvroRecordType; -}(AvroType)); + async read(stream, options = {}) { + const typeIndex = await AvroParser.readInt(stream, options); + return await this._types[typeIndex].read(stream, options); + } +} +class AvroMapType extends AvroType { + constructor(itemType) { + super(); + this._itemType = itemType; + } + async read(stream, options = {}) { + const readItemMethod = async (s, options) => { + return await this._itemType.read(s, options); + }; + return await AvroParser.readMap(stream, readItemMethod, options); + } +} +class AvroRecordType extends AvroType { + constructor(fields, name) { + super(); + this._fields = fields; + this._name = name; + } + async read(stream, options = {}) { + const record = {}; + record["$schema"] = this._name; + for (const key in this._fields) { + if (this._fields.hasOwnProperty(key)) { + record[key] = await this._fields[key].read(stream, options); + } + } + return record; + } +} // Copyright (c) Microsoft Corporation. -var AvroReader = /** @class */ (function () { - function AvroReader(dataStream, headerStream, currentBlockOffset, indexWithinCurrentBlock) { +class AvroReader { + constructor(dataStream, headerStream, currentBlockOffset, indexWithinCurrentBlock) { this._dataStream = dataStream; this._headerStream = headerStream || dataStream; this._initialized = false; @@ -81657,261 +80238,178 @@ var AvroReader = /** @class */ (function () { this._objectIndex = indexWithinCurrentBlock || 0; this._initialBlockOffset = currentBlockOffset || 0; } - Object.defineProperty(AvroReader.prototype, "blockOffset", { - get: function () { - return this._blockOffset; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(AvroReader.prototype, "objectIndex", { - get: function () { - return this._objectIndex; - }, - enumerable: false, - configurable: true - }); - AvroReader.prototype.initialize = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var header, _a, codec, _b, schema, _c, i; - return tslib.__generator(this, function (_d) { - switch (_d.label) { - case 0: return [4 /*yield*/, AvroParser.readFixedBytes(this._headerStream, AVRO_INIT_BYTES.length, { - abortSignal: options.abortSignal - })]; - case 1: - header = _d.sent(); - if (!arraysEqual(header, AVRO_INIT_BYTES)) { - throw new Error("Stream is not an Avro file."); - } - // File metadata is written as if defined by the following map schema: - // { "type": "map", "values": "bytes"} - _a = this; - return [4 /*yield*/, AvroParser.readMap(this._headerStream, AvroParser.readString, { - abortSignal: options.abortSignal - })]; - case 2: - // File metadata is written as if defined by the following map schema: - // { "type": "map", "values": "bytes"} - _a._metadata = _d.sent(); - codec = this._metadata[AVRO_CODEC_KEY]; - if (!(codec == undefined || codec == "null")) { - throw new Error("Codecs are not supported"); - } - // The 16-byte, randomly-generated sync marker for this file. - _b = this; - return [4 /*yield*/, AvroParser.readFixedBytes(this._headerStream, AVRO_SYNC_MARKER_SIZE, { - abortSignal: options.abortSignal - })]; - case 3: - // The 16-byte, randomly-generated sync marker for this file. - _b._syncMarker = _d.sent(); - schema = JSON.parse(this._metadata[AVRO_SCHEMA_KEY]); - this._itemType = AvroType.fromSchema(schema); - if (this._blockOffset == 0) { - this._blockOffset = this._initialBlockOffset + this._dataStream.position; - } - _c = this; - return [4 /*yield*/, AvroParser.readLong(this._dataStream, { - abortSignal: options.abortSignal - })]; - case 4: - _c._itemsRemainingInBlock = _d.sent(); - // skip block length - return [4 /*yield*/, AvroParser.readLong(this._dataStream, { abortSignal: options.abortSignal })]; - case 5: - // skip block length - _d.sent(); - this._initialized = true; - if (!(this._objectIndex && this._objectIndex > 0)) return [3 /*break*/, 9]; - i = 0; - _d.label = 6; - case 6: - if (!(i < this._objectIndex)) return [3 /*break*/, 9]; - return [4 /*yield*/, this._itemType.read(this._dataStream, { abortSignal: options.abortSignal })]; - case 7: - _d.sent(); - this._itemsRemainingInBlock--; - _d.label = 8; - case 8: - i++; - return [3 /*break*/, 6]; - case 9: return [2 /*return*/]; - } - }); + get blockOffset() { + return this._blockOffset; + } + get objectIndex() { + return this._objectIndex; + } + async initialize(options = {}) { + const header = await AvroParser.readFixedBytes(this._headerStream, AVRO_INIT_BYTES.length, { + abortSignal: options.abortSignal }); - }; - AvroReader.prototype.hasNext = function () { + if (!arraysEqual(header, AVRO_INIT_BYTES)) { + throw new Error("Stream is not an Avro file."); + } + // File metadata is written as if defined by the following map schema: + // { "type": "map", "values": "bytes"} + this._metadata = await AvroParser.readMap(this._headerStream, AvroParser.readString, { + abortSignal: options.abortSignal + }); + // Validate codec + const codec = this._metadata[AVRO_CODEC_KEY]; + if (!(codec == undefined || codec == "null")) { + throw new Error("Codecs are not supported"); + } + // The 16-byte, randomly-generated sync marker for this file. + this._syncMarker = await AvroParser.readFixedBytes(this._headerStream, AVRO_SYNC_MARKER_SIZE, { + abortSignal: options.abortSignal + }); + // Parse the schema + const schema = JSON.parse(this._metadata[AVRO_SCHEMA_KEY]); + this._itemType = AvroType.fromSchema(schema); + if (this._blockOffset == 0) { + this._blockOffset = this._initialBlockOffset + this._dataStream.position; + } + this._itemsRemainingInBlock = await AvroParser.readLong(this._dataStream, { + abortSignal: options.abortSignal + }); + // skip block length + await AvroParser.readLong(this._dataStream, { abortSignal: options.abortSignal }); + this._initialized = true; + if (this._objectIndex && this._objectIndex > 0) { + for (let i = 0; i < this._objectIndex; i++) { + await this._itemType.read(this._dataStream, { abortSignal: options.abortSignal }); + this._itemsRemainingInBlock--; + } + } + } + hasNext() { return !this._initialized || this._itemsRemainingInBlock > 0; - }; - AvroReader.prototype.parseObjects = function (options) { - if (options === void 0) { options = {}; } - return tslib.__asyncGenerator(this, arguments, function parseObjects_1() { - var result, marker, _a, err_1; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - if (!!this._initialized) return [3 /*break*/, 2]; - return [4 /*yield*/, tslib.__await(this.initialize(options))]; - case 1: - _b.sent(); - _b.label = 2; - case 2: - if (!this.hasNext()) return [3 /*break*/, 13]; - return [4 /*yield*/, tslib.__await(this._itemType.read(this._dataStream, { - abortSignal: options.abortSignal - }))]; - case 3: - result = _b.sent(); - this._itemsRemainingInBlock--; - this._objectIndex++; - if (!(this._itemsRemainingInBlock == 0)) return [3 /*break*/, 10]; - return [4 /*yield*/, tslib.__await(AvroParser.readFixedBytes(this._dataStream, AVRO_SYNC_MARKER_SIZE, { - abortSignal: options.abortSignal - }))]; - case 4: - marker = _b.sent(); - this._blockOffset = this._initialBlockOffset + this._dataStream.position; - this._objectIndex = 0; - if (!arraysEqual(this._syncMarker, marker)) { - throw new Error("Stream is not a valid Avro file."); - } - _b.label = 5; - case 5: - _b.trys.push([5, 7, , 8]); - _a = this; - return [4 /*yield*/, tslib.__await(AvroParser.readLong(this._dataStream, { - abortSignal: options.abortSignal - }))]; - case 6: - _a._itemsRemainingInBlock = _b.sent(); - return [3 /*break*/, 8]; - case 7: - err_1 = _b.sent(); + } + parseObjects(options = {}) { + return tslib.__asyncGenerator(this, arguments, function* parseObjects_1() { + if (!this._initialized) { + yield tslib.__await(this.initialize(options)); + } + while (this.hasNext()) { + const result = yield tslib.__await(this._itemType.read(this._dataStream, { + abortSignal: options.abortSignal + })); + this._itemsRemainingInBlock--; + this._objectIndex++; + if (this._itemsRemainingInBlock == 0) { + const marker = yield tslib.__await(AvroParser.readFixedBytes(this._dataStream, AVRO_SYNC_MARKER_SIZE, { + abortSignal: options.abortSignal + })); + this._blockOffset = this._initialBlockOffset + this._dataStream.position; + this._objectIndex = 0; + if (!arraysEqual(this._syncMarker, marker)) { + throw new Error("Stream is not a valid Avro file."); + } + try { + this._itemsRemainingInBlock = yield tslib.__await(AvroParser.readLong(this._dataStream, { + abortSignal: options.abortSignal + })); + } + catch (err) { // We hit the end of the stream. this._itemsRemainingInBlock = 0; - return [3 /*break*/, 8]; - case 8: - if (!(this._itemsRemainingInBlock > 0)) return [3 /*break*/, 10]; + } + if (this._itemsRemainingInBlock > 0) { // Ignore block size - return [4 /*yield*/, tslib.__await(AvroParser.readLong(this._dataStream, { abortSignal: options.abortSignal }))]; - case 9: - // Ignore block size - _b.sent(); - _b.label = 10; - case 10: return [4 /*yield*/, tslib.__await(result)]; - case 11: return [4 /*yield*/, _b.sent()]; - case 12: - _b.sent(); - return [3 /*break*/, 2]; - case 13: return [2 /*return*/]; + yield tslib.__await(AvroParser.readLong(this._dataStream, { abortSignal: options.abortSignal })); + } } - }); + yield yield tslib.__await(result); + } }); - }; - return AvroReader; -}()); + } +} // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -var AvroReadable = /** @class */ (function () { - function AvroReadable() { - } - return AvroReadable; -}()); +class AvroReadable { +} // Copyright (c) Microsoft Corporation. -var ABORT_ERROR = new abortController.AbortError("Reading from the avro stream was aborted."); -var AvroReadableFromStream = /** @class */ (function (_super) { - tslib.__extends(AvroReadableFromStream, _super); - function AvroReadableFromStream(readable) { - var _this = _super.call(this) || this; - _this._readable = readable; - _this._position = 0; - return _this; +const ABORT_ERROR = new abortController.AbortError("Reading from the avro stream was aborted."); +class AvroReadableFromStream extends AvroReadable { + constructor(readable) { + super(); + this._readable = readable; + this._position = 0; } - AvroReadableFromStream.prototype.toUint8Array = function (data) { + toUint8Array(data) { if (typeof data === "string") { return Buffer.from(data); } return data; - }; - Object.defineProperty(AvroReadableFromStream.prototype, "position", { - get: function () { - return this._position; - }, - enumerable: false, - configurable: true - }); - AvroReadableFromStream.prototype.read = function (size, options) { + } + get position() { + return this._position; + } + async read(size, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var chunk; - var _this = this; - return tslib.__generator(this, function (_b) { - if ((_a = options.abortSignal) === null || _a === void 0 ? void 0 : _a.aborted) { - throw ABORT_ERROR; - } - if (size < 0) { - throw new Error("size parameter should be positive: " + size); - } - if (size === 0) { - return [2 /*return*/, new Uint8Array()]; - } - if (!this._readable.readable) { - throw new Error("Stream no longer readable."); - } - chunk = this._readable.read(size); - if (chunk) { - this._position += chunk.length; - // chunk.length maybe less than desired size if the stream ends. - return [2 /*return*/, this.toUint8Array(chunk)]; - } - else { - // register callback to wait for enough data to read - return [2 /*return*/, new Promise(function (resolve, reject) { - var cleanUp = function () { - _this._readable.removeListener("readable", readableCallback); - _this._readable.removeListener("error", rejectCallback); - _this._readable.removeListener("end", rejectCallback); - _this._readable.removeListener("close", rejectCallback); - if (options.abortSignal) { - options.abortSignal.removeEventListener("abort", abortHandler); - } - }; - var readableCallback = function () { - var chunk = _this._readable.read(size); - if (chunk) { - _this._position += chunk.length; - cleanUp(); - // chunk.length maybe less than desired size if the stream ends. - resolve(_this.toUint8Array(chunk)); - } - }; - var rejectCallback = function () { - cleanUp(); - reject(); - }; - var abortHandler = function () { - cleanUp(); - reject(ABORT_ERROR); - }; - _this._readable.on("readable", readableCallback); - _this._readable.once("error", rejectCallback); - _this._readable.once("end", rejectCallback); - _this._readable.once("close", rejectCallback); - if (options.abortSignal) { - options.abortSignal.addEventListener("abort", abortHandler); - } - })]; + if ((_a = options.abortSignal) === null || _a === void 0 ? void 0 : _a.aborted) { + throw ABORT_ERROR; + } + if (size < 0) { + throw new Error(`size parameter should be positive: ${size}`); + } + if (size === 0) { + return new Uint8Array(); + } + if (!this._readable.readable) { + throw new Error("Stream no longer readable."); + } + // See if there is already enough data. + const chunk = this._readable.read(size); + if (chunk) { + this._position += chunk.length; + // chunk.length maybe less than desired size if the stream ends. + return this.toUint8Array(chunk); + } + else { + // register callback to wait for enough data to read + return new Promise((resolve, reject) => { + const cleanUp = () => { + this._readable.removeListener("readable", readableCallback); + this._readable.removeListener("error", rejectCallback); + this._readable.removeListener("end", rejectCallback); + this._readable.removeListener("close", rejectCallback); + if (options.abortSignal) { + options.abortSignal.removeEventListener("abort", abortHandler); + } + }; + const readableCallback = () => { + const chunk = this._readable.read(size); + if (chunk) { + this._position += chunk.length; + cleanUp(); + // chunk.length maybe less than desired size if the stream ends. + resolve(this.toUint8Array(chunk)); + } + }; + const rejectCallback = () => { + cleanUp(); + reject(); + }; + const abortHandler = () => { + cleanUp(); + reject(ABORT_ERROR); + }; + this._readable.on("readable", readableCallback); + this._readable.once("error", rejectCallback); + this._readable.once("end", rejectCallback); + this._readable.once("close", rejectCallback); + if (options.abortSignal) { + options.abortSignal.addEventListener("abort", abortHandler); } }); - }); - }; - return AvroReadableFromStream; -}(AvroReadable)); + } + } +} // Copyright (c) Microsoft Corporation. /** @@ -81919,121 +80417,107 @@ var AvroReadableFromStream = /** @class */ (function (_super) { * * A Node.js BlobQuickQueryStream will internally parse avro data stream for blob query. */ -var BlobQuickQueryStream = /** @class */ (function (_super) { - tslib.__extends(BlobQuickQueryStream, _super); +class BlobQuickQueryStream extends stream.Readable { /** * Creates an instance of BlobQuickQueryStream. * * @param source - The current ReadableStream returned from getter * @param options - */ - function BlobQuickQueryStream(source, options) { - if (options === void 0) { options = {}; } - var _this = _super.call(this) || this; - _this.avroPaused = true; - _this.source = source; - _this.onProgress = options.onProgress; - _this.onError = options.onError; - _this.avroReader = new AvroReader(new AvroReadableFromStream(_this.source)); - _this.avroIter = _this.avroReader.parseObjects({ abortSignal: options.abortSignal }); - return _this; + constructor(source, options = {}) { + super(); + this.avroPaused = true; + this.source = source; + this.onProgress = options.onProgress; + this.onError = options.onError; + this.avroReader = new AvroReader(new AvroReadableFromStream(this.source)); + this.avroIter = this.avroReader.parseObjects({ abortSignal: options.abortSignal }); } - BlobQuickQueryStream.prototype._read = function () { - var _this = this; + _read() { if (this.avroPaused) { - this.readInternal().catch(function (err) { - _this.emit("error", err); + this.readInternal().catch((err) => { + this.emit("error", err); }); } - }; - BlobQuickQueryStream.prototype.readInternal = function () { - return tslib.__awaiter(this, void 0, void 0, function () { - var avroNext, obj, schema, data, bytesScanned, totalBytes, fatal, name_1, description, position; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - this.avroPaused = false; - _a.label = 1; - case 1: return [4 /*yield*/, this.avroIter.next()]; - case 2: - avroNext = _a.sent(); - if (avroNext.done) { - return [3 /*break*/, 4]; + } + async readInternal() { + this.avroPaused = false; + let avroNext; + do { + avroNext = await this.avroIter.next(); + if (avroNext.done) { + break; + } + const obj = avroNext.value; + const schema = obj.$schema; + if (typeof schema !== "string") { + throw Error("Missing schema in avro record."); + } + switch (schema) { + case "com.microsoft.azure.storage.queryBlobContents.resultData": + { + const data = obj.data; + if (data instanceof Uint8Array === false) { + throw Error("Invalid data in avro result record."); } - obj = avroNext.value; - schema = obj.$schema; - if (typeof schema !== "string") { - throw Error("Missing schema in avro record."); + if (!this.push(Buffer.from(data))) { + this.avroPaused = true; } - switch (schema) { - case "com.microsoft.azure.storage.queryBlobContents.resultData": - data = obj.data; - if (data instanceof Uint8Array === false) { - throw Error("Invalid data in avro result record."); - } - if (!this.push(Buffer.from(data))) { - this.avroPaused = true; - } - break; - case "com.microsoft.azure.storage.queryBlobContents.progress": - bytesScanned = obj.bytesScanned; - if (typeof bytesScanned !== "number") { - throw Error("Invalid bytesScanned in avro progress record."); - } - if (this.onProgress) { - this.onProgress({ loadedBytes: bytesScanned }); - } - break; - case "com.microsoft.azure.storage.queryBlobContents.end": - if (this.onProgress) { - totalBytes = obj.totalBytes; - if (typeof totalBytes !== "number") { - throw Error("Invalid totalBytes in avro end record."); - } - this.onProgress({ loadedBytes: totalBytes }); - } - this.push(null); - break; - case "com.microsoft.azure.storage.queryBlobContents.error": - if (this.onError) { - fatal = obj.fatal; - if (typeof fatal !== "boolean") { - throw Error("Invalid fatal in avro error record."); - } - name_1 = obj.name; - if (typeof name_1 !== "string") { - throw Error("Invalid name in avro error record."); - } - description = obj.description; - if (typeof description !== "string") { - throw Error("Invalid description in avro error record."); - } - position = obj.position; - if (typeof position !== "number") { - throw Error("Invalid position in avro error record."); - } - this.onError({ - position: position, - name: name_1, - isFatal: fatal, - description: description - }); - } - break; - default: - throw Error("Unknown schema " + schema + " in avro progress record."); + } + break; + case "com.microsoft.azure.storage.queryBlobContents.progress": + { + const bytesScanned = obj.bytesScanned; + if (typeof bytesScanned !== "number") { + throw Error("Invalid bytesScanned in avro progress record."); } - _a.label = 3; - case 3: - if (!avroNext.done && !this.avroPaused) return [3 /*break*/, 1]; - _a.label = 4; - case 4: return [2 /*return*/]; - } - }); - }); - }; - return BlobQuickQueryStream; -}(stream.Readable)); + if (this.onProgress) { + this.onProgress({ loadedBytes: bytesScanned }); + } + } + break; + case "com.microsoft.azure.storage.queryBlobContents.end": + if (this.onProgress) { + const totalBytes = obj.totalBytes; + if (typeof totalBytes !== "number") { + throw Error("Invalid totalBytes in avro end record."); + } + this.onProgress({ loadedBytes: totalBytes }); + } + this.push(null); + break; + case "com.microsoft.azure.storage.queryBlobContents.error": + if (this.onError) { + const fatal = obj.fatal; + if (typeof fatal !== "boolean") { + throw Error("Invalid fatal in avro error record."); + } + const name = obj.name; + if (typeof name !== "string") { + throw Error("Invalid name in avro error record."); + } + const description = obj.description; + if (typeof description !== "string") { + throw Error("Invalid description in avro error record."); + } + const position = obj.position; + if (typeof position !== "number") { + throw Error("Invalid position in avro error record."); + } + this.onError({ + position, + name, + isFatal: fatal, + description + }); + } + break; + default: + throw Error(`Unknown schema ${schema} in avro progress record.`); + } + } while (!avroNext.done && !this.avroPaused); + } +} // Copyright (c) Microsoft Corporation. /** @@ -82042,508 +80526,362 @@ var BlobQuickQueryStream = /** @class */ (function (_super) { * BlobQueryResponse implements BlobDownloadResponseModel interface, and in Node.js runtime it will * parse avor data returned by blob query. */ -var BlobQueryResponse = /** @class */ (function () { +class BlobQueryResponse { /** * Creates an instance of BlobQueryResponse. * * @param originalResponse - * @param options - */ - function BlobQueryResponse(originalResponse, options) { - if (options === void 0) { options = {}; } + constructor(originalResponse, options = {}) { this.originalResponse = originalResponse; this.blobDownloadStream = new BlobQuickQueryStream(this.originalResponse.readableStreamBody, options); } - Object.defineProperty(BlobQueryResponse.prototype, "acceptRanges", { - /** - * Indicates that the service supports - * requests for partial file content. - * - * @readonly - */ - get: function () { - return this.originalResponse.acceptRanges; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "cacheControl", { - /** - * Returns if it was previously specified - * for the file. - * - * @readonly - */ - get: function () { - return this.originalResponse.cacheControl; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "contentDisposition", { - /** - * Returns the value that was specified - * for the 'x-ms-content-disposition' header and specifies how to process the - * response. - * - * @readonly - */ - get: function () { - return this.originalResponse.contentDisposition; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "contentEncoding", { - /** - * Returns the value that was specified - * for the Content-Encoding request header. - * - * @readonly - */ - get: function () { - return this.originalResponse.contentEncoding; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "contentLanguage", { - /** - * Returns the value that was specified - * for the Content-Language request header. - * - * @readonly - */ - get: function () { - return this.originalResponse.contentLanguage; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "blobSequenceNumber", { - /** - * The current sequence number for a - * page blob. This header is not returned for block blobs or append blobs. - * - * @readonly - */ - get: function () { - return this.originalResponse.blobSequenceNumber; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "blobType", { - /** - * The blob's type. Possible values include: - * 'BlockBlob', 'PageBlob', 'AppendBlob'. - * - * @readonly - */ - get: function () { - return this.originalResponse.blobType; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "contentLength", { - /** - * The number of bytes present in the - * response body. - * - * @readonly - */ - get: function () { - return this.originalResponse.contentLength; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "contentMD5", { - /** - * If the file has an MD5 hash and the - * request is to read the full file, this response header is returned so that - * the client can check for message content integrity. If the request is to - * read a specified range and the 'x-ms-range-get-content-md5' is set to - * true, then the request returns an MD5 hash for the range, as long as the - * range size is less than or equal to 4 MB. If neither of these sets of - * conditions is true, then no value is returned for the 'Content-MD5' - * header. - * - * @readonly - */ - get: function () { - return this.originalResponse.contentMD5; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "contentRange", { - /** - * Indicates the range of bytes returned if - * the client requested a subset of the file by setting the Range request - * header. - * - * @readonly - */ - get: function () { - return this.originalResponse.contentRange; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "contentType", { - /** - * The content type specified for the file. - * The default content type is 'application/octet-stream' - * - * @readonly - */ - get: function () { - return this.originalResponse.contentType; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "copyCompletedOn", { - /** - * Conclusion time of the last attempted - * Copy File operation where this file was the destination file. This value - * can specify the time of a completed, aborted, or failed copy attempt. - * - * @readonly - */ - get: function () { - return undefined; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "copyId", { - /** - * String identifier for the last attempted Copy - * File operation where this file was the destination file. - * - * @readonly - */ - get: function () { - return this.originalResponse.copyId; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "copyProgress", { - /** - * Contains the number of bytes copied and - * the total bytes in the source in the last attempted Copy File operation - * where this file was the destination file. Can show between 0 and - * Content-Length bytes copied. - * - * @readonly - */ - get: function () { - return this.originalResponse.copyProgress; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "copySource", { - /** - * URL up to 2KB in length that specifies the - * source file used in the last attempted Copy File operation where this file - * was the destination file. - * - * @readonly - */ - get: function () { - return this.originalResponse.copySource; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "copyStatus", { - /** - * State of the copy operation - * identified by 'x-ms-copy-id'. Possible values include: 'pending', - * 'success', 'aborted', 'failed' - * - * @readonly - */ - get: function () { - return this.originalResponse.copyStatus; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "copyStatusDescription", { - /** - * Only appears when - * x-ms-copy-status is failed or pending. Describes cause of fatal or - * non-fatal copy operation failure. - * - * @readonly - */ - get: function () { - return this.originalResponse.copyStatusDescription; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "leaseDuration", { - /** - * When a blob is leased, - * specifies whether the lease is of infinite or fixed duration. Possible - * values include: 'infinite', 'fixed'. - * - * @readonly - */ - get: function () { - return this.originalResponse.leaseDuration; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "leaseState", { - /** - * Lease state of the blob. Possible - * values include: 'available', 'leased', 'expired', 'breaking', 'broken'. - * - * @readonly - */ - get: function () { - return this.originalResponse.leaseState; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "leaseStatus", { - /** - * The current lease status of the - * blob. Possible values include: 'locked', 'unlocked'. - * - * @readonly - */ - get: function () { - return this.originalResponse.leaseStatus; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "date", { - /** - * A UTC date/time value generated by the service that - * indicates the time at which the response was initiated. - * - * @readonly - */ - get: function () { - return this.originalResponse.date; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "blobCommittedBlockCount", { - /** - * The number of committed blocks - * present in the blob. This header is returned only for append blobs. - * - * @readonly - */ - get: function () { - return this.originalResponse.blobCommittedBlockCount; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "etag", { - /** - * The ETag contains a value that you can use to - * perform operations conditionally, in quotes. - * - * @readonly - */ - get: function () { - return this.originalResponse.etag; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "errorCode", { - /** - * The error code. - * - * @readonly - */ - get: function () { - return this.originalResponse.errorCode; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "isServerEncrypted", { - /** - * The value of this header is set to - * true if the file data and application metadata are completely encrypted - * using the specified algorithm. Otherwise, the value is set to false (when - * the file is unencrypted, or if only parts of the file/application metadata - * are encrypted). - * - * @readonly - */ - get: function () { - return this.originalResponse.isServerEncrypted; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "blobContentMD5", { - /** - * If the blob has a MD5 hash, and if - * request contains range header (Range or x-ms-range), this response header - * is returned with the value of the whole blob's MD5 value. This value may - * or may not be equal to the value returned in Content-MD5 header, with the - * latter calculated from the requested range. - * - * @readonly - */ - get: function () { - return this.originalResponse.blobContentMD5; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "lastModified", { - /** - * Returns the date and time the file was last - * modified. Any operation that modifies the file or its properties updates - * the last modified time. - * - * @readonly - */ - get: function () { - return this.originalResponse.lastModified; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "metadata", { - /** - * A name-value pair - * to associate with a file storage object. - * - * @readonly - */ - get: function () { - return this.originalResponse.metadata; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "requestId", { - /** - * This header uniquely identifies the request - * that was made and can be used for troubleshooting the request. - * - * @readonly - */ - get: function () { - return this.originalResponse.requestId; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "clientRequestId", { - /** - * If a client request id header is sent in the request, this header will be present in the - * response with the same value. - * - * @readonly - */ - get: function () { - return this.originalResponse.clientRequestId; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "version", { - /** - * Indicates the version of the File service used - * to execute the request. - * - * @readonly - */ - get: function () { - return this.originalResponse.version; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "encryptionKeySha256", { - /** - * The SHA-256 hash of the encryption key used to encrypt the blob. This value is only returned - * when the blob was encrypted with a customer-provided key. - * - * @readonly - */ - get: function () { - return this.originalResponse.encryptionKeySha256; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "contentCrc64", { - /** - * If the request is to read a specified range and the x-ms-range-get-content-crc64 is set to - * true, then the request returns a crc64 for the range, as long as the range size is less than - * or equal to 4 MB. If both x-ms-range-get-content-crc64 & x-ms-range-get-content-md5 is - * specified in the same request, it will fail with 400(Bad Request) - */ - get: function () { - return this.originalResponse.contentCrc64; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "blobBody", { - /** - * The response body as a browser Blob. - * Always undefined in node.js. - * - * @readonly - */ - get: function () { - return undefined; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "readableStreamBody", { - /** - * The response body as a node.js Readable stream. - * Always undefined in the browser. - * - * It will parse avor data returned by blob query. - * - * @readonly - */ - get: function () { - return coreHttp.isNode ? this.blobDownloadStream : undefined; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobQueryResponse.prototype, "_response", { - /** - * The HTTP response. - */ - get: function () { - return this.originalResponse._response; - }, - enumerable: false, - configurable: true - }); - return BlobQueryResponse; -}()); + /** + * Indicates that the service supports + * requests for partial file content. + * + * @readonly + */ + get acceptRanges() { + return this.originalResponse.acceptRanges; + } + /** + * Returns if it was previously specified + * for the file. + * + * @readonly + */ + get cacheControl() { + return this.originalResponse.cacheControl; + } + /** + * Returns the value that was specified + * for the 'x-ms-content-disposition' header and specifies how to process the + * response. + * + * @readonly + */ + get contentDisposition() { + return this.originalResponse.contentDisposition; + } + /** + * Returns the value that was specified + * for the Content-Encoding request header. + * + * @readonly + */ + get contentEncoding() { + return this.originalResponse.contentEncoding; + } + /** + * Returns the value that was specified + * for the Content-Language request header. + * + * @readonly + */ + get contentLanguage() { + return this.originalResponse.contentLanguage; + } + /** + * The current sequence number for a + * page blob. This header is not returned for block blobs or append blobs. + * + * @readonly + */ + get blobSequenceNumber() { + return this.originalResponse.blobSequenceNumber; + } + /** + * The blob's type. Possible values include: + * 'BlockBlob', 'PageBlob', 'AppendBlob'. + * + * @readonly + */ + get blobType() { + return this.originalResponse.blobType; + } + /** + * The number of bytes present in the + * response body. + * + * @readonly + */ + get contentLength() { + return this.originalResponse.contentLength; + } + /** + * If the file has an MD5 hash and the + * request is to read the full file, this response header is returned so that + * the client can check for message content integrity. If the request is to + * read a specified range and the 'x-ms-range-get-content-md5' is set to + * true, then the request returns an MD5 hash for the range, as long as the + * range size is less than or equal to 4 MB. If neither of these sets of + * conditions is true, then no value is returned for the 'Content-MD5' + * header. + * + * @readonly + */ + get contentMD5() { + return this.originalResponse.contentMD5; + } + /** + * Indicates the range of bytes returned if + * the client requested a subset of the file by setting the Range request + * header. + * + * @readonly + */ + get contentRange() { + return this.originalResponse.contentRange; + } + /** + * The content type specified for the file. + * The default content type is 'application/octet-stream' + * + * @readonly + */ + get contentType() { + return this.originalResponse.contentType; + } + /** + * Conclusion time of the last attempted + * Copy File operation where this file was the destination file. This value + * can specify the time of a completed, aborted, or failed copy attempt. + * + * @readonly + */ + get copyCompletedOn() { + return undefined; + } + /** + * String identifier for the last attempted Copy + * File operation where this file was the destination file. + * + * @readonly + */ + get copyId() { + return this.originalResponse.copyId; + } + /** + * Contains the number of bytes copied and + * the total bytes in the source in the last attempted Copy File operation + * where this file was the destination file. Can show between 0 and + * Content-Length bytes copied. + * + * @readonly + */ + get copyProgress() { + return this.originalResponse.copyProgress; + } + /** + * URL up to 2KB in length that specifies the + * source file used in the last attempted Copy File operation where this file + * was the destination file. + * + * @readonly + */ + get copySource() { + return this.originalResponse.copySource; + } + /** + * State of the copy operation + * identified by 'x-ms-copy-id'. Possible values include: 'pending', + * 'success', 'aborted', 'failed' + * + * @readonly + */ + get copyStatus() { + return this.originalResponse.copyStatus; + } + /** + * Only appears when + * x-ms-copy-status is failed or pending. Describes cause of fatal or + * non-fatal copy operation failure. + * + * @readonly + */ + get copyStatusDescription() { + return this.originalResponse.copyStatusDescription; + } + /** + * When a blob is leased, + * specifies whether the lease is of infinite or fixed duration. Possible + * values include: 'infinite', 'fixed'. + * + * @readonly + */ + get leaseDuration() { + return this.originalResponse.leaseDuration; + } + /** + * Lease state of the blob. Possible + * values include: 'available', 'leased', 'expired', 'breaking', 'broken'. + * + * @readonly + */ + get leaseState() { + return this.originalResponse.leaseState; + } + /** + * The current lease status of the + * blob. Possible values include: 'locked', 'unlocked'. + * + * @readonly + */ + get leaseStatus() { + return this.originalResponse.leaseStatus; + } + /** + * A UTC date/time value generated by the service that + * indicates the time at which the response was initiated. + * + * @readonly + */ + get date() { + return this.originalResponse.date; + } + /** + * The number of committed blocks + * present in the blob. This header is returned only for append blobs. + * + * @readonly + */ + get blobCommittedBlockCount() { + return this.originalResponse.blobCommittedBlockCount; + } + /** + * The ETag contains a value that you can use to + * perform operations conditionally, in quotes. + * + * @readonly + */ + get etag() { + return this.originalResponse.etag; + } + /** + * The error code. + * + * @readonly + */ + get errorCode() { + return this.originalResponse.errorCode; + } + /** + * The value of this header is set to + * true if the file data and application metadata are completely encrypted + * using the specified algorithm. Otherwise, the value is set to false (when + * the file is unencrypted, or if only parts of the file/application metadata + * are encrypted). + * + * @readonly + */ + get isServerEncrypted() { + return this.originalResponse.isServerEncrypted; + } + /** + * If the blob has a MD5 hash, and if + * request contains range header (Range or x-ms-range), this response header + * is returned with the value of the whole blob's MD5 value. This value may + * or may not be equal to the value returned in Content-MD5 header, with the + * latter calculated from the requested range. + * + * @readonly + */ + get blobContentMD5() { + return this.originalResponse.blobContentMD5; + } + /** + * Returns the date and time the file was last + * modified. Any operation that modifies the file or its properties updates + * the last modified time. + * + * @readonly + */ + get lastModified() { + return this.originalResponse.lastModified; + } + /** + * A name-value pair + * to associate with a file storage object. + * + * @readonly + */ + get metadata() { + return this.originalResponse.metadata; + } + /** + * This header uniquely identifies the request + * that was made and can be used for troubleshooting the request. + * + * @readonly + */ + get requestId() { + return this.originalResponse.requestId; + } + /** + * If a client request id header is sent in the request, this header will be present in the + * response with the same value. + * + * @readonly + */ + get clientRequestId() { + return this.originalResponse.clientRequestId; + } + /** + * Indicates the version of the File service used + * to execute the request. + * + * @readonly + */ + get version() { + return this.originalResponse.version; + } + /** + * The SHA-256 hash of the encryption key used to encrypt the blob. This value is only returned + * when the blob was encrypted with a customer-provided key. + * + * @readonly + */ + get encryptionKeySha256() { + return this.originalResponse.encryptionKeySha256; + } + /** + * If the request is to read a specified range and the x-ms-range-get-content-crc64 is set to + * true, then the request returns a crc64 for the range, as long as the range size is less than + * or equal to 4 MB. If both x-ms-range-get-content-crc64 & x-ms-range-get-content-md5 is + * specified in the same request, it will fail with 400(Bad Request) + */ + get contentCrc64() { + return this.originalResponse.contentCrc64; + } + /** + * The response body as a browser Blob. + * Always undefined in node.js. + * + * @readonly + */ + get blobBody() { + return undefined; + } + /** + * The response body as a node.js Readable stream. + * Always undefined in the browser. + * + * It will parse avor data returned by blob query. + * + * @readonly + */ + get readableStreamBody() { + return coreHttp.isNode ? this.blobDownloadStream : undefined; + } + /** + * The HTTP response. + */ + get _response() { + return this.originalResponse._response; + } +} // Copyright (c) Microsoft Corporation. (function (BlockBlobTier) { @@ -82608,7 +80946,7 @@ var BlobQueryResponse = /** @class */ (function () { PremiumPageBlobTier["P80"] = "P80"; })(exports.PremiumPageBlobTier || (exports.PremiumPageBlobTier = {})); function toAccessTier(tier) { - if (tier == undefined) { + if (tier === undefined) { return undefined; } return tier; // No more check if string is a valid AccessTier, and left this to underlay logic to decide(service). @@ -82623,6 +80961,7 @@ function ensureCpkIfSpecified(cpk, isHttps) { } // Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. /** * Function that converts PageRange and ClearRange to a common Range object. * PageRange and ClearRange have start and end while Range offset and count @@ -82630,18 +80969,18 @@ function ensureCpkIfSpecified(cpk, isHttps) { * @param response - Model PageBlob Range response */ function rangeResponseFromModel(response) { - var pageRange = (response._response.parsedBody.pageRange || []).map(function (x) { return ({ + const pageRange = (response._response.parsedBody.pageRange || []).map((x) => ({ offset: x.start, count: x.end - x.start - }); }); - var clearRange = (response._response.parsedBody.clearRange || []).map(function (x) { return ({ + })); + const clearRange = (response._response.parsedBody.clearRange || []).map((x) => ({ offset: x.start, count: x.end - x.start - }); }); - return tslib.__assign(tslib.__assign({}, response), { pageRange: pageRange, - clearRange: clearRange, _response: tslib.__assign(tslib.__assign({}, response._response), { parsedBody: { - pageRange: pageRange, - clearRange: clearRange + })); + return Object.assign(Object.assign({}, response), { pageRange, + clearRange, _response: Object.assign(Object.assign({}, response._response), { parsedBody: { + pageRange, + clearRange } }) }); } @@ -82652,64 +80991,48 @@ function rangeResponseFromModel(response) { * * @hidden */ -var BlobBeginCopyFromUrlPoller = /** @class */ (function (_super) { - tslib.__extends(BlobBeginCopyFromUrlPoller, _super); - function BlobBeginCopyFromUrlPoller(options) { - var _this = this; - var blobClient = options.blobClient, copySource = options.copySource, _a = options.intervalInMs, intervalInMs = _a === void 0 ? 15000 : _a, onProgress = options.onProgress, resumeFrom = options.resumeFrom, startCopyFromURLOptions = options.startCopyFromURLOptions; - var state; +class BlobBeginCopyFromUrlPoller extends coreLro.Poller { + constructor(options) { + const { blobClient, copySource, intervalInMs = 15000, onProgress, resumeFrom, startCopyFromURLOptions } = options; + let state; if (resumeFrom) { state = JSON.parse(resumeFrom).state; } - var operation = makeBlobBeginCopyFromURLPollOperation(tslib.__assign(tslib.__assign({}, state), { blobClient: blobClient, - copySource: copySource, - startCopyFromURLOptions: startCopyFromURLOptions })); - _this = _super.call(this, operation) || this; + const operation = makeBlobBeginCopyFromURLPollOperation(Object.assign(Object.assign({}, state), { blobClient, + copySource, + startCopyFromURLOptions })); + super(operation); if (typeof onProgress === "function") { - _this.onProgress(onProgress); + this.onProgress(onProgress); } - _this.intervalInMs = intervalInMs; - return _this; + this.intervalInMs = intervalInMs; } - BlobBeginCopyFromUrlPoller.prototype.delay = function () { + delay() { return coreHttp.delay(this.intervalInMs); - }; - return BlobBeginCopyFromUrlPoller; -}(coreLro.Poller)); + } +} /** * Note: Intentionally using function expression over arrow function expression * so that the function can be invoked with a different context. * This affects what `this` refers to. * @hidden */ -var cancel = function cancel(options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var state, copyId; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - state = this.state; - copyId = state.copyId; - if (state.isCompleted) { - return [2 /*return*/, makeBlobBeginCopyFromURLPollOperation(state)]; - } - if (!copyId) { - state.isCancelled = true; - return [2 /*return*/, makeBlobBeginCopyFromURLPollOperation(state)]; - } - // if abortCopyFromURL throws, it will bubble up to user's poller.cancelOperation call - return [4 /*yield*/, state.blobClient.abortCopyFromURL(copyId, { - abortSignal: options.abortSignal - })]; - case 1: - // if abortCopyFromURL throws, it will bubble up to user's poller.cancelOperation call - _a.sent(); - state.isCancelled = true; - return [2 /*return*/, makeBlobBeginCopyFromURLPollOperation(state)]; - } - }); +const cancel = async function cancel(options = {}) { + const state = this.state; + const { copyId } = state; + if (state.isCompleted) { + return makeBlobBeginCopyFromURLPollOperation(state); + } + if (!copyId) { + state.isCancelled = true; + return makeBlobBeginCopyFromURLPollOperation(state); + } + // if abortCopyFromURL throws, it will bubble up to user's poller.cancelOperation call + await state.blobClient.abortCopyFromURL(copyId, { + abortSignal: options.abortSignal }); + state.isCancelled = true; + return makeBlobBeginCopyFromURLPollOperation(state); }; /** * Note: Intentionally using function expression over arrow function expression @@ -82717,64 +81040,48 @@ var cancel = function cancel(options) { * This affects what `this` refers to. * @hidden */ -var update = function update(options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var state, blobClient, copySource, startCopyFromURLOptions, result, result, copyStatus, copyProgress, prevCopyProgress, err_1; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - state = this.state; - blobClient = state.blobClient, copySource = state.copySource, startCopyFromURLOptions = state.startCopyFromURLOptions; - if (!!state.isStarted) return [3 /*break*/, 2]; - state.isStarted = true; - return [4 /*yield*/, blobClient.startCopyFromURL(copySource, startCopyFromURLOptions)]; - case 1: - result = _a.sent(); - // copyId is needed to abort - state.copyId = result.copyId; - if (result.copyStatus === "success") { - state.result = result; - state.isCompleted = true; - } - return [3 /*break*/, 6]; - case 2: - if (!!state.isCompleted) return [3 /*break*/, 6]; - _a.label = 3; - case 3: - _a.trys.push([3, 5, , 6]); - return [4 /*yield*/, state.blobClient.getProperties({ abortSignal: options.abortSignal })]; - case 4: - result = _a.sent(); - copyStatus = result.copyStatus, copyProgress = result.copyProgress; - prevCopyProgress = state.copyProgress; - if (copyProgress) { - state.copyProgress = copyProgress; - } - if (copyStatus === "pending" && - copyProgress !== prevCopyProgress && - typeof options.fireProgress === "function") { - // trigger in setTimeout, or swallow error? - options.fireProgress(state); - } - else if (copyStatus === "success") { - state.result = result; - state.isCompleted = true; - } - else if (copyStatus === "failed") { - state.error = new Error("Blob copy failed with reason: \"" + (result.copyStatusDescription || "unknown") + "\""); - state.isCompleted = true; - } - return [3 /*break*/, 6]; - case 5: - err_1 = _a.sent(); - state.error = err_1; - state.isCompleted = true; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/, makeBlobBeginCopyFromURLPollOperation(state)]; +const update = async function update(options = {}) { + const state = this.state; + const { blobClient, copySource, startCopyFromURLOptions } = state; + if (!state.isStarted) { + state.isStarted = true; + const result = await blobClient.startCopyFromURL(copySource, startCopyFromURLOptions); + // copyId is needed to abort + state.copyId = result.copyId; + if (result.copyStatus === "success") { + state.result = result; + state.isCompleted = true; + } + } + else if (!state.isCompleted) { + try { + const result = await state.blobClient.getProperties({ abortSignal: options.abortSignal }); + const { copyStatus, copyProgress } = result; + const prevCopyProgress = state.copyProgress; + if (copyProgress) { + state.copyProgress = copyProgress; } - }); - }); + if (copyStatus === "pending" && + copyProgress !== prevCopyProgress && + typeof options.fireProgress === "function") { + // trigger in setTimeout, or swallow error? + options.fireProgress(state); + } + else if (copyStatus === "success") { + state.result = result; + state.isCompleted = true; + } + else if (copyStatus === "failed") { + state.error = new Error(`Blob copy failed with reason: "${result.copyStatusDescription || "unknown"}"`); + state.isCompleted = true; + } + } + catch (err) { + state.error = err; + state.isCompleted = true; + } + } + return makeBlobBeginCopyFromURLPollOperation(state); }; /** * Note: Intentionally using function expression over arrow function expression @@ -82782,8 +81089,8 @@ var update = function update(options) { * This affects what `this` refers to. * @hidden */ -var toString = function toString() { - return JSON.stringify({ state: this.state }, function (key, value) { +const toString = function toString() { + return JSON.stringify({ state: this.state }, (key, value) => { // remove blobClient from serialized state since a client can't be hydrated from this info. if (key === "blobClient") { return undefined; @@ -82797,10 +81104,10 @@ var toString = function toString() { */ function makeBlobBeginCopyFromURLPollOperation(state) { return { - state: tslib.__assign({}, state), - cancel: cancel, - toString: toString, - update: update + state: Object.assign({}, state), + cancel, + toString, + update }; } @@ -82815,14 +81122,14 @@ function makeBlobBeginCopyFromURLPollOperation(state) { */ function rangeToString(iRange) { if (iRange.offset < 0) { - throw new RangeError("Range.offset cannot be smaller than 0."); + throw new RangeError(`Range.offset cannot be smaller than 0.`); } if (iRange.count && iRange.count <= 0) { - throw new RangeError("Range.count must be larger than 0. Leave it undefined if you want a range from offset to the end."); + throw new RangeError(`Range.count must be larger than 0. Leave it undefined if you want a range from offset to the end.`); } return iRange.count - ? "bytes=" + iRange.offset + "-" + (iRange.offset + iRange.count - 1) - : "bytes=" + iRange.offset + "-"; + ? `bytes=${iRange.offset}-${iRange.offset + iRange.count - 1}` + : `bytes=${iRange.offset}-`; } // Copyright (c) Microsoft Corporation. @@ -82839,13 +81146,12 @@ var BatchStates; * Will stop execute left operations when one of the executed operation throws an error. * But Batch cannot cancel ongoing operations, you need to cancel them by yourself. */ -var Batch = /** @class */ (function () { +class Batch { /** * Creates an instance of Batch. * @param concurrency - */ - function Batch(concurrency) { - if (concurrency === void 0) { concurrency = 5; } + constructor(concurrency = 5) { /** * Number of active operations under execution. */ @@ -82878,69 +81184,53 @@ var Batch = /** @class */ (function () { * * @param operation - */ - Batch.prototype.addOperation = function (operation) { - var _this = this; - this.operations.push(function () { return tslib.__awaiter(_this, void 0, void 0, function () { - var error_1; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - this.actives++; - return [4 /*yield*/, operation()]; - case 1: - _a.sent(); - this.actives--; - this.completed++; - this.parallelExecute(); - return [3 /*break*/, 3]; - case 2: - error_1 = _a.sent(); - this.emitter.emit("error", error_1); - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); }); - }; + addOperation(operation) { + this.operations.push(async () => { + try { + this.actives++; + await operation(); + this.actives--; + this.completed++; + this.parallelExecute(); + } + catch (error) { + this.emitter.emit("error", error); + } + }); + } /** * Start execute operations in the queue. * */ - Batch.prototype.do = function () { - return tslib.__awaiter(this, void 0, void 0, function () { - var _this = this; - return tslib.__generator(this, function (_a) { - if (this.operations.length === 0) { - return [2 /*return*/, Promise.resolve()]; - } - this.parallelExecute(); - return [2 /*return*/, new Promise(function (resolve, reject) { - _this.emitter.on("finish", resolve); - _this.emitter.on("error", function (error) { - _this.state = BatchStates.Error; - reject(error); - }); - })]; + async do() { + if (this.operations.length === 0) { + return Promise.resolve(); + } + this.parallelExecute(); + return new Promise((resolve, reject) => { + this.emitter.on("finish", resolve); + this.emitter.on("error", (error) => { + this.state = BatchStates.Error; + reject(error); }); }); - }; + } /** * Get next operation to be executed. Return null when reaching ends. * */ - Batch.prototype.nextOperation = function () { + nextOperation() { if (this.offset < this.operations.length) { return this.operations[this.offset++]; } return null; - }; + } /** * Start execute operations. One one the most important difference between * this method with do() is that do() wraps as an sync method. * */ - Batch.prototype.parallelExecute = function () { + parallelExecute() { if (this.state === BatchStates.Error) { return; } @@ -82949,7 +81239,7 @@ var Batch = /** @class */ (function () { return; } while (this.actives < this.concurrency) { - var operation = this.nextOperation(); + const operation = this.nextOperation(); if (operation) { operation(); } @@ -82957,16 +81247,14 @@ var Batch = /** @class */ (function () { return; } } - }; - return Batch; -}()); + } +} // Copyright (c) Microsoft Corporation. /** * This class generates a readable stream from the data in an array of buffers. */ -var BuffersStream = /** @class */ (function (_super) { - tslib.__extends(BuffersStream, _super); +class BuffersStream extends stream.Readable { /** * Creates an instance of BuffersStream that will emit the data * contained in the array of buffers. @@ -82974,46 +81262,44 @@ var BuffersStream = /** @class */ (function (_super) { * @param buffers - Array of buffers containing the data * @param byteLength - The total length of data contained in the buffers */ - function BuffersStream(buffers, byteLength, options) { - var _this = _super.call(this, options) || this; - _this.buffers = buffers; - _this.byteLength = byteLength; - _this.byteOffsetInCurrentBuffer = 0; - _this.bufferIndex = 0; - _this.pushedBytesLength = 0; + constructor(buffers, byteLength, options) { + super(options); + this.buffers = buffers; + this.byteLength = byteLength; + this.byteOffsetInCurrentBuffer = 0; + this.bufferIndex = 0; + this.pushedBytesLength = 0; // check byteLength is no larger than buffers[] total length - var buffersLength = 0; - for (var _i = 0, _a = _this.buffers; _i < _a.length; _i++) { - var buf = _a[_i]; + let buffersLength = 0; + for (const buf of this.buffers) { buffersLength += buf.byteLength; } - if (buffersLength < _this.byteLength) { + if (buffersLength < this.byteLength) { throw new Error("Data size shouldn't be larger than the total length of buffers."); } - return _this; } /** * Internal _read() that will be called when the stream wants to pull more data in. * * @param size - Optional. The size of data to be read */ - BuffersStream.prototype._read = function (size) { + _read(size) { if (this.pushedBytesLength >= this.byteLength) { this.push(null); } if (!size) { size = this.readableHighWaterMark; } - var outBuffers = []; - var i = 0; + const outBuffers = []; + let i = 0; while (i < size && this.pushedBytesLength < this.byteLength) { // The last buffer may be longer than the data it contains. - var remainingDataInAllBuffers = this.byteLength - this.pushedBytesLength; - var remainingCapacityInThisBuffer = this.buffers[this.bufferIndex].byteLength - this.byteOffsetInCurrentBuffer; - var remaining = Math.min(remainingCapacityInThisBuffer, remainingDataInAllBuffers); + const remainingDataInAllBuffers = this.byteLength - this.pushedBytesLength; + const remainingCapacityInThisBuffer = this.buffers[this.bufferIndex].byteLength - this.byteOffsetInCurrentBuffer; + const remaining = Math.min(remainingCapacityInThisBuffer, remainingDataInAllBuffers); if (remaining > size - i) { // chunkSize = size - i - var end = this.byteOffsetInCurrentBuffer + size - i; + const end = this.byteOffsetInCurrentBuffer + size - i; outBuffers.push(this.buffers[this.bufferIndex].slice(this.byteOffsetInCurrentBuffer, end)); this.pushedBytesLength += size - i; this.byteOffsetInCurrentBuffer = end; @@ -83022,7 +81308,7 @@ var BuffersStream = /** @class */ (function (_super) { } else { // chunkSize = remaining - var end = this.byteOffsetInCurrentBuffer + remaining; + const end = this.byteOffsetInCurrentBuffer + remaining; outBuffers.push(this.buffers[this.bufferIndex].slice(this.byteOffsetInCurrentBuffer, end)); if (remaining === remainingCapacityInThisBuffer) { // this.buffers[this.bufferIndex] used up, shift to next one @@ -83042,16 +81328,15 @@ var BuffersStream = /** @class */ (function (_super) { else if (outBuffers.length === 1) { this.push(outBuffers[0]); } - }; - return BuffersStream; -}(stream.Readable)); + } +} // Copyright (c) Microsoft Corporation. /** * maxBufferLength is max size of each buffer in the pooled buffers. */ // Can't use import as Typescript doesn't recognize "buffer". -var maxBufferLength = __webpack_require__(407).constants.MAX_LENGTH; +const maxBufferLength = __webpack_require__(407).constants.MAX_LENGTH; /** * This class provides a buffer container which conceptually has no hard size limit. * It accepts a capacity, an array of input buffers and the total length of input data. @@ -83060,8 +81345,8 @@ var maxBufferLength = __webpack_require__(407).constants.MAX_LENGTH; * Then by calling PooledBuffer.getReadableStream(), you can get a readable stream * assembled from all the data in the internal "buffer". */ -var PooledBuffer = /** @class */ (function () { - function PooledBuffer(capacity, buffers, totalLength) { +class PooledBuffer { + constructor(capacity, buffers, totalLength) { /** * Internal buffers used to keep the data. * Each buffer has a length of the maxBufferLength except last one. @@ -83070,9 +81355,9 @@ var PooledBuffer = /** @class */ (function () { this.capacity = capacity; this._size = 0; // allocate - var bufferNum = Math.ceil(capacity / maxBufferLength); - for (var i = 0; i < bufferNum; i++) { - var len = i === bufferNum - 1 ? capacity % maxBufferLength : maxBufferLength; + const bufferNum = Math.ceil(capacity / maxBufferLength); + for (let i = 0; i < bufferNum; i++) { + let len = i === bufferNum - 1 ? capacity % maxBufferLength : maxBufferLength; if (len === 0) { len = maxBufferLength; } @@ -83082,16 +81367,12 @@ var PooledBuffer = /** @class */ (function () { this.fill(buffers, totalLength); } } - Object.defineProperty(PooledBuffer.prototype, "size", { - /** - * The size of the data contained in the pooled buffers. - */ - get: function () { - return this._size; - }, - enumerable: false, - configurable: true - }); + /** + * The size of the data contained in the pooled buffers. + */ + get size() { + return this._size; + } /** * Fill the internal buffers with data in the input buffers serially * with respect to the total length and the total capacity of the internal buffers. @@ -83101,13 +81382,13 @@ var PooledBuffer = /** @class */ (function () { * @param totalLength - Total length of the data to be filled in. * */ - PooledBuffer.prototype.fill = function (buffers, totalLength) { + fill(buffers, totalLength) { this._size = Math.min(this.capacity, totalLength); - var i = 0, j = 0, targetOffset = 0, sourceOffset = 0, totalCopiedNum = 0; + let i = 0, j = 0, targetOffset = 0, sourceOffset = 0, totalCopiedNum = 0; while (totalCopiedNum < this._size) { - var source = buffers[i]; - var target = this.buffers[j]; - var copiedNum = source.copy(target, targetOffset, sourceOffset); + const source = buffers[i]; + const target = this.buffers[j]; + const copiedNum = source.copy(target, targetOffset, sourceOffset); totalCopiedNum += copiedNum; sourceOffset += copiedNum; targetOffset += copiedNum; @@ -83125,16 +81406,15 @@ var PooledBuffer = /** @class */ (function () { if (buffers.length > 0) { buffers[0] = buffers[0].slice(sourceOffset); } - }; + } /** * Get the readable stream assembled from all the data in the internal buffers. * */ - PooledBuffer.prototype.getReadableStream = function () { + getReadableStream() { return new BuffersStream(this.buffers, this.size); - }; - return PooledBuffer; -}()); + } +} // Copyright (c) Microsoft Corporation. /** @@ -83159,7 +81439,7 @@ var PooledBuffer = /** @class */ (function () { * in this situation, outgoing handlers are blocked. * Outgoing queue shouldn't be empty. */ -var BufferScheduler = /** @class */ (function () { +class BufferScheduler { /** * Creates an instance of BufferScheduler. * @@ -83172,7 +81452,7 @@ var BufferScheduler = /** @class */ (function () { * @param concurrency - Concurrency of executing outgoingHandlers (>0) * @param encoding - [Optional] Encoding of Readable stream when it's a string stream */ - function BufferScheduler(readable, bufferSize, maxBuffers, outgoingHandler, concurrency, encoding) { + constructor(readable, bufferSize, maxBuffers, outgoingHandler, concurrency, encoding) { /** * An internal event emitter. */ @@ -83218,13 +81498,13 @@ var BufferScheduler = /** @class */ (function () { */ this.outgoing = []; if (bufferSize <= 0) { - throw new RangeError("bufferSize must be larger than 0, current is " + bufferSize); + throw new RangeError(`bufferSize must be larger than 0, current is ${bufferSize}`); } if (maxBuffers <= 0) { - throw new RangeError("maxBuffers must be larger than 0, current is " + maxBuffers); + throw new RangeError(`maxBuffers must be larger than 0, current is ${maxBuffers}`); } if (concurrency <= 0) { - throw new RangeError("concurrency must be larger than 0, current is " + concurrency); + throw new RangeError(`concurrency must be larger than 0, current is ${concurrency}`); } this.bufferSize = bufferSize; this.maxBuffers = maxBuffers; @@ -83238,69 +81518,64 @@ var BufferScheduler = /** @class */ (function () { * returns error. * */ - BufferScheduler.prototype.do = function () { - return tslib.__awaiter(this, void 0, void 0, function () { - var _this = this; - return tslib.__generator(this, function (_a) { - return [2 /*return*/, new Promise(function (resolve, reject) { - _this.readable.on("data", function (data) { - data = typeof data === "string" ? Buffer.from(data, _this.encoding) : data; - _this.appendUnresolvedData(data); - if (!_this.resolveData()) { - _this.readable.pause(); - } - }); - _this.readable.on("error", function (err) { - _this.emitter.emit("error", err); - }); - _this.readable.on("end", function () { - _this.isStreamEnd = true; - _this.emitter.emit("checkEnd"); - }); - _this.emitter.on("error", function (err) { - _this.isError = true; - _this.readable.pause(); - reject(err); - }); - _this.emitter.on("checkEnd", function () { - if (_this.outgoing.length > 0) { - _this.triggerOutgoingHandlers(); - return; - } - if (_this.isStreamEnd && _this.executingOutgoingHandlers === 0) { - if (_this.unresolvedLength > 0 && _this.unresolvedLength < _this.bufferSize) { - var buffer_1 = _this.shiftBufferFromUnresolvedDataArray(); - _this.outgoingHandler(function () { return buffer_1.getReadableStream(); }, buffer_1.size, _this.offset) - .then(resolve) - .catch(reject); - } - else if (_this.unresolvedLength >= _this.bufferSize) { - return; - } - else { - resolve(); - } - } - }); - })]; + async do() { + return new Promise((resolve, reject) => { + this.readable.on("data", (data) => { + data = typeof data === "string" ? Buffer.from(data, this.encoding) : data; + this.appendUnresolvedData(data); + if (!this.resolveData()) { + this.readable.pause(); + } + }); + this.readable.on("error", (err) => { + this.emitter.emit("error", err); + }); + this.readable.on("end", () => { + this.isStreamEnd = true; + this.emitter.emit("checkEnd"); + }); + this.emitter.on("error", (err) => { + this.isError = true; + this.readable.pause(); + reject(err); + }); + this.emitter.on("checkEnd", () => { + if (this.outgoing.length > 0) { + this.triggerOutgoingHandlers(); + return; + } + if (this.isStreamEnd && this.executingOutgoingHandlers === 0) { + if (this.unresolvedLength > 0 && this.unresolvedLength < this.bufferSize) { + const buffer = this.shiftBufferFromUnresolvedDataArray(); + this.outgoingHandler(() => buffer.getReadableStream(), buffer.size, this.offset) + .then(resolve) + .catch(reject); + } + else if (this.unresolvedLength >= this.bufferSize) { + return; + } + else { + resolve(); + } + } }); }); - }; + } /** * Insert a new data into unresolved array. * * @param data - */ - BufferScheduler.prototype.appendUnresolvedData = function (data) { + appendUnresolvedData(data) { this.unresolvedDataArray.push(data); this.unresolvedLength += data.length; - }; + } /** * Try to shift a buffer with size in blockSize. The buffer returned may be less * than blockSize when data in unresolvedDataArray is less than bufferSize. * */ - BufferScheduler.prototype.shiftBufferFromUnresolvedDataArray = function (buffer) { + shiftBufferFromUnresolvedDataArray(buffer) { if (!buffer) { buffer = new PooledBuffer(this.bufferSize, this.unresolvedDataArray, this.unresolvedLength); } @@ -83309,7 +81584,7 @@ var BufferScheduler = /** @class */ (function () { } this.unresolvedLength -= buffer.size; return buffer; - }; + } /** * Resolve data in unresolvedDataArray. For every buffer with size in blockSize * shifted, it will try to get (or allocate a buffer) from incoming, and fill it, @@ -83319,9 +81594,9 @@ var BufferScheduler = /** @class */ (function () { * * @returns Return false when buffers in incoming are not enough, else true. */ - BufferScheduler.prototype.resolveData = function () { + resolveData() { while (this.unresolvedLength >= this.bufferSize) { - var buffer = void 0; + let buffer; if (this.incoming.length > 0) { buffer = this.incoming.shift(); this.shiftBufferFromUnresolvedDataArray(buffer); @@ -83340,75 +81615,55 @@ var BufferScheduler = /** @class */ (function () { this.triggerOutgoingHandlers(); } return true; - }; + } /** * Try to trigger a outgoing handler for every buffer in outgoing. Stop when * concurrency reaches. */ - BufferScheduler.prototype.triggerOutgoingHandlers = function () { - return tslib.__awaiter(this, void 0, void 0, function () { - var buffer; - return tslib.__generator(this, function (_a) { - do { - if (this.executingOutgoingHandlers >= this.concurrency) { - return [2 /*return*/]; - } - buffer = this.outgoing.shift(); - if (buffer) { - this.triggerOutgoingHandler(buffer); - } - } while (buffer); - return [2 /*return*/]; - }); - }); - }; + async triggerOutgoingHandlers() { + let buffer; + do { + if (this.executingOutgoingHandlers >= this.concurrency) { + return; + } + buffer = this.outgoing.shift(); + if (buffer) { + this.triggerOutgoingHandler(buffer); + } + } while (buffer); + } /** * Trigger a outgoing handler for a buffer shifted from outgoing. * * @param buffer - */ - BufferScheduler.prototype.triggerOutgoingHandler = function (buffer) { - return tslib.__awaiter(this, void 0, void 0, function () { - var bufferLength, err_1; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - bufferLength = buffer.size; - this.executingOutgoingHandlers++; - this.offset += bufferLength; - _a.label = 1; - case 1: - _a.trys.push([1, 3, , 4]); - return [4 /*yield*/, this.outgoingHandler(function () { return buffer.getReadableStream(); }, bufferLength, this.offset - bufferLength)]; - case 2: - _a.sent(); - return [3 /*break*/, 4]; - case 3: - err_1 = _a.sent(); - this.emitter.emit("error", err_1); - return [2 /*return*/]; - case 4: - this.executingOutgoingHandlers--; - this.reuseBuffer(buffer); - this.emitter.emit("checkEnd"); - return [2 /*return*/]; - } - }); - }); - }; + async triggerOutgoingHandler(buffer) { + const bufferLength = buffer.size; + this.executingOutgoingHandlers++; + this.offset += bufferLength; + try { + await this.outgoingHandler(() => buffer.getReadableStream(), bufferLength, this.offset - bufferLength); + } + catch (err) { + this.emitter.emit("error", err); + return; + } + this.executingOutgoingHandlers--; + this.reuseBuffer(buffer); + this.emitter.emit("checkEnd"); + } /** * Return buffer used by outgoing handler into incoming. * * @param buffer - */ - BufferScheduler.prototype.reuseBuffer = function (buffer) { + reuseBuffer(buffer) { this.incoming.push(buffer); if (!this.isError && this.resolveData() && !this.isStreamEnd) { this.readable.resume(); } - }; - return BufferScheduler; -}()); + } +} // Copyright (c) Microsoft Corporation. /** @@ -83420,39 +81675,34 @@ var BufferScheduler = /** @class */ (function () { * @param end - To which position in the buffer to be filled, exclusive * @param encoding - Encoding of the Readable stream */ -function streamToBuffer(stream, buffer, offset, end, encoding) { - return tslib.__awaiter(this, void 0, void 0, function () { - var pos, count; - return tslib.__generator(this, function (_a) { - pos = 0; - count = end - offset; - return [2 /*return*/, new Promise(function (resolve, reject) { - stream.on("readable", function () { - if (pos >= count) { - resolve(); - return; - } - var chunk = stream.read(); - if (!chunk) { - return; - } - if (typeof chunk === "string") { - chunk = Buffer.from(chunk, encoding); - } - // How much data needed in this chunk - var chunkLength = pos + chunk.length > count ? count - pos : chunk.length; - buffer.fill(chunk.slice(0, chunkLength), offset + pos, offset + pos + chunkLength); - pos += chunkLength; - }); - stream.on("end", function () { - if (pos < count) { - reject(new Error("Stream drains before getting enough data needed. Data read: " + pos + ", data need: " + count)); - } - resolve(); - }); - stream.on("error", reject); - })]; +async function streamToBuffer(stream, buffer, offset, end, encoding) { + let pos = 0; // Position in stream + const count = end - offset; // Total amount of data needed in stream + return new Promise((resolve, reject) => { + stream.on("readable", () => { + if (pos >= count) { + resolve(); + return; + } + let chunk = stream.read(); + if (!chunk) { + return; + } + if (typeof chunk === "string") { + chunk = Buffer.from(chunk, encoding); + } + // How much data needed in this chunk + const chunkLength = pos + chunk.length > count ? count - pos : chunk.length; + buffer.fill(chunk.slice(0, chunkLength), offset + pos, offset + pos + chunkLength); + pos += chunkLength; }); + stream.on("end", () => { + if (pos < count) { + reject(new Error(`Stream drains before getting enough data needed. Data read: ${pos}, data need: ${count}`)); + } + resolve(); + }); + stream.on("error", reject); }); } /** @@ -83464,34 +81714,29 @@ function streamToBuffer(stream, buffer, offset, end, encoding) { * @returns with the count of bytes read. * @throws `RangeError` If buffer size is not big enough. */ -function streamToBuffer2(stream, buffer, encoding) { - return tslib.__awaiter(this, void 0, void 0, function () { - var pos, bufferSize; - return tslib.__generator(this, function (_a) { - pos = 0; - bufferSize = buffer.length; - return [2 /*return*/, new Promise(function (resolve, reject) { - stream.on("readable", function () { - var chunk = stream.read(); - if (!chunk) { - return; - } - if (typeof chunk === "string") { - chunk = Buffer.from(chunk, encoding); - } - if (pos + chunk.length > bufferSize) { - reject(new Error("Stream exceeds buffer size. Buffer size: " + bufferSize)); - return; - } - buffer.fill(chunk, pos, pos + chunk.length); - pos += chunk.length; - }); - stream.on("end", function () { - resolve(pos); - }); - stream.on("error", reject); - })]; +async function streamToBuffer2(stream, buffer, encoding) { + let pos = 0; // Position in stream + const bufferSize = buffer.length; + return new Promise((resolve, reject) => { + stream.on("readable", () => { + let chunk = stream.read(); + if (!chunk) { + return; + } + if (typeof chunk === "string") { + chunk = Buffer.from(chunk, encoding); + } + if (pos + chunk.length > bufferSize) { + reject(new Error(`Stream exceeds buffer size. Buffer size: ${bufferSize}`)); + return; + } + buffer.fill(chunk, pos, pos + chunk.length); + pos += chunk.length; }); + stream.on("end", () => { + resolve(pos); + }); + stream.on("error", reject); }); } /** @@ -83502,21 +81747,17 @@ function streamToBuffer2(stream, buffer, encoding) { * @param rs - The read stream. * @param file - Destination file path. */ -function readStreamToLocalFile(rs, file) { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - return [2 /*return*/, new Promise(function (resolve, reject) { - var ws = fs.createWriteStream(file); - rs.on("error", function (err) { - reject(err); - }); - ws.on("error", function (err) { - reject(err); - }); - ws.on("close", resolve); - rs.pipe(ws); - })]; +async function readStreamToLocalFile(rs, file) { + return new Promise((resolve, reject) => { + const ws = fs.createWriteStream(file); + rs.on("error", (err) => { + reject(err); }); + ws.on("error", (err) => { + reject(err); + }); + ws.on("close", resolve); + rs.pipe(ws); }); } /** @@ -83524,22 +81765,22 @@ function readStreamToLocalFile(rs, file) { * * Promisified version of fs.stat(). */ -var fsStat = util.promisify(fs.stat); -var fsCreateReadStream = fs.createReadStream; +const fsStat = util.promisify(fs.stat); +const fsCreateReadStream = fs.createReadStream; /** * A BlobClient represents a URL to an Azure Storage blob; the blob may be a block blob, * append blob, or page blob. */ -var BlobClient = /** @class */ (function (_super) { - tslib.__extends(BlobClient, _super); - function BlobClient(urlOrConnectionString, credentialOrPipelineOrContainerName, blobNameOrOptions, options) { - var _a; - var _this = this; +class BlobClient extends StorageClient { + constructor(urlOrConnectionString, credentialOrPipelineOrContainerName, blobNameOrOptions, + // Legacy, no fix for eslint error without breaking. Disable it for this interface. + /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/ + options) { options = options || {}; - var pipeline; - var url; - if (credentialOrPipelineOrContainerName instanceof Pipeline) { + let pipeline; + let url; + if (isPipelineLike(credentialOrPipelineOrContainerName)) { // (url: string, pipeline: Pipeline) url = urlOrConnectionString; pipeline = credentialOrPipelineOrContainerName; @@ -83564,12 +81805,12 @@ var BlobClient = /** @class */ (function (_super) { blobNameOrOptions && typeof blobNameOrOptions === "string") { // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions) - var containerName = credentialOrPipelineOrContainerName; - var blobName = blobNameOrOptions; - var extractedCreds = extractConnectionStringParts(urlOrConnectionString); + const containerName = credentialOrPipelineOrContainerName; + const blobName = blobNameOrOptions; + const extractedCreds = extractConnectionStringParts(urlOrConnectionString); if (extractedCreds.kind === "AccountConnString") { { - var sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey); + const sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey); url = appendToURLPath(appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)), encodeURIComponent(blobName)); options.proxyOptions = coreHttp.getDefaultProxySettings(extractedCreds.proxyUri); pipeline = newPipeline(sharedKeyCredential, options); @@ -83589,33 +81830,27 @@ var BlobClient = /** @class */ (function (_super) { else { throw new Error("Expecting non-empty strings for containerName and blobName parameters"); } - _this = _super.call(this, url, pipeline) || this; - (_a = _this.getBlobAndContainerNamesFromUrl(), _this._name = _a.blobName, _this._containerName = _a.containerName); - _this.blobContext = new Blob$1(_this.storageClientContext); - _this._snapshot = getURLParameter(_this.url, URLConstants.Parameters.SNAPSHOT); - _this._versionId = getURLParameter(_this.url, URLConstants.Parameters.VERSIONID); - return _this; + super(url, pipeline); + ({ + blobName: this._name, + containerName: this._containerName + } = this.getBlobAndContainerNamesFromUrl()); + this.blobContext = new Blob$1(this.storageClientContext); + this._snapshot = getURLParameter(this.url, URLConstants.Parameters.SNAPSHOT); + this._versionId = getURLParameter(this.url, URLConstants.Parameters.VERSIONID); + } + /** + * The name of the blob. + */ + get name() { + return this._name; + } + /** + * The name of the storage container the blob is associated with. + */ + get containerName() { + return this._containerName; } - Object.defineProperty(BlobClient.prototype, "name", { - /** - * The name of the blob. - */ - get: function () { - return this._name; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BlobClient.prototype, "containerName", { - /** - * The name of the storage container the blob is associated with. - */ - get: function () { - return this._containerName; - }, - enumerable: false, - configurable: true - }); /** * Creates a new BlobClient object identical to the source but with the specified snapshot timestamp. * Provide "" will remove the snapshot and return a Client to the base blob. @@ -83623,9 +81858,9 @@ var BlobClient = /** @class */ (function (_super) { * @param snapshot - The snapshot timestamp. * @returns A new BlobClient object identical to the source but with the specified snapshot timestamp */ - BlobClient.prototype.withSnapshot = function (snapshot) { + withSnapshot(snapshot) { return new BlobClient(setURLParameter(this.url, URLConstants.Parameters.SNAPSHOT, snapshot.length === 0 ? undefined : snapshot), this.pipeline); - }; + } /** * Creates a new BlobClient object pointing to a version of this blob. * Provide "" will remove the versionId and return a Client to the base blob. @@ -83633,30 +81868,30 @@ var BlobClient = /** @class */ (function (_super) { * @param versionId - The versionId. * @returns A new BlobClient object pointing to the version of this blob. */ - BlobClient.prototype.withVersion = function (versionId) { + withVersion(versionId) { return new BlobClient(setURLParameter(this.url, URLConstants.Parameters.VERSIONID, versionId.length === 0 ? undefined : versionId), this.pipeline); - }; + } /** * Creates a AppendBlobClient object. * */ - BlobClient.prototype.getAppendBlobClient = function () { + getAppendBlobClient() { return new AppendBlobClient(this.url, this.pipeline); - }; + } /** * Creates a BlockBlobClient object. * */ - BlobClient.prototype.getBlockBlobClient = function () { + getBlockBlobClient() { return new BlockBlobClient(this.url, this.pipeline); - }; + } /** * Creates a PageBlobClient object. * */ - BlobClient.prototype.getPageBlobClient = function () { + getPageBlobClient() { return new PageBlobClient(this.url, this.pipeline); - }; + } /** * Reads or downloads a blob from the system, including its metadata and properties. * You can also call Get Blob to read a snapshot. @@ -83716,98 +81951,77 @@ var BlobClient = /** @class */ (function (_super) { * } * ``` */ - BlobClient.prototype.download = function (offset, count, options) { + async download(offset = 0, count, options = {}) { var _a; - if (offset === void 0) { offset = 0; } - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, res_1, wrappedRes, e_1; - var _this = this; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - options.conditions = options.conditions || {}; - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - _b = createSpan("BlobClient-download", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.blobContext.download(tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), requestOptions: { - onDownloadProgress: coreHttp.isNode ? undefined : options.onProgress // for Node.js, progress is reported by RetriableReadableStream - }, range: offset === 0 && !count ? undefined : rangeToString({ offset: offset, count: count }), rangeGetContentMD5: options.rangeGetContentMD5, rangeGetContentCRC64: options.rangeGetContentCrc64, snapshot: options.snapshot, cpkInfo: options.customerProvidedKey }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - res_1 = _c.sent(); - wrappedRes = tslib.__assign(tslib.__assign({}, res_1), { _response: res_1._response, objectReplicationDestinationPolicyId: res_1.objectReplicationPolicyId, objectReplicationSourceProperties: parseObjectReplicationRecord(res_1.objectReplicationRules) }); - // We support retrying when download stream unexpected ends in Node.js runtime - // Following code shouldn't be bundled into browser build, however some - // bundlers may try to bundle following code and "FileReadResponse.ts". - // In this case, "FileDownloadResponse.browser.ts" will be used as a shim of "FileDownloadResponse.ts" - // The config is in package.json "browser" field - if (options.maxRetryRequests === undefined || options.maxRetryRequests < 0) { - // TODO: Default value or make it a required parameter? - options.maxRetryRequests = DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS; - } - if (res_1.contentLength === undefined) { - throw new RangeError("File download response doesn't contain valid content length header"); - } - if (!res_1.etag) { - throw new RangeError("File download response doesn't contain valid etag header"); - } - return [2 /*return*/, new BlobDownloadResponse(wrappedRes, function (start) { return tslib.__awaiter(_this, void 0, void 0, function () { - var updatedOptions; - var _a; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - updatedOptions = { - leaseAccessConditions: options.conditions, - modifiedAccessConditions: { - ifMatch: options.conditions.ifMatch || res_1.etag, - ifModifiedSince: options.conditions.ifModifiedSince, - ifNoneMatch: options.conditions.ifNoneMatch, - ifUnmodifiedSince: options.conditions.ifUnmodifiedSince, - ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions - }, - range: rangeToString({ - count: offset + res_1.contentLength - start, - offset: start - }), - rangeGetContentMD5: options.rangeGetContentMD5, - rangeGetContentCRC64: options.rangeGetContentCrc64, - snapshot: options.snapshot, - cpkInfo: options.customerProvidedKey - }; - return [4 /*yield*/, this.blobContext.download(tslib.__assign({ abortSignal: options.abortSignal }, updatedOptions))]; - case 1: - // Debug purpose only - // console.log( - // `Read from internal stream, range: ${ - // updatedOptions.range - // }, options: ${JSON.stringify(updatedOptions)}` - // ); - return [2 /*return*/, (_b.sent()).readableStreamBody]; - } - }); - }); }, offset, res_1.contentLength, { - maxRetryRequests: options.maxRetryRequests, - onProgress: options.onProgress - })]; - case 3: - e_1 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_1.message - }); - throw e_1; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + options.conditions = options.conditions || {}; + options.conditions = options.conditions || {}; + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + const { span, updatedOptions } = createSpan("BlobClient-download", options); + try { + const res = await this.blobContext.download(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), requestOptions: { + onDownloadProgress: coreHttp.isNode ? undefined : options.onProgress // for Node.js, progress is reported by RetriableReadableStream + }, range: offset === 0 && !count ? undefined : rangeToString({ offset, count }), rangeGetContentMD5: options.rangeGetContentMD5, rangeGetContentCRC64: options.rangeGetContentCrc64, snapshot: options.snapshot, cpkInfo: options.customerProvidedKey }, convertTracingToRequestOptionsBase(updatedOptions))); + const wrappedRes = Object.assign(Object.assign({}, res), { _response: res._response, objectReplicationDestinationPolicyId: res.objectReplicationPolicyId, objectReplicationSourceProperties: parseObjectReplicationRecord(res.objectReplicationRules) }); + // Return browser response immediately + if (false) {} + // We support retrying when download stream unexpected ends in Node.js runtime + // Following code shouldn't be bundled into browser build, however some + // bundlers may try to bundle following code and "FileReadResponse.ts". + // In this case, "FileDownloadResponse.browser.ts" will be used as a shim of "FileDownloadResponse.ts" + // The config is in package.json "browser" field + if (options.maxRetryRequests === undefined || options.maxRetryRequests < 0) { + // TODO: Default value or make it a required parameter? + options.maxRetryRequests = DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS; + } + if (res.contentLength === undefined) { + throw new RangeError(`File download response doesn't contain valid content length header`); + } + if (!res.etag) { + throw new RangeError(`File download response doesn't contain valid etag header`); + } + return new BlobDownloadResponse(wrappedRes, async (start) => { + var _a; + const updatedDownloadOptions = { + leaseAccessConditions: options.conditions, + modifiedAccessConditions: { + ifMatch: options.conditions.ifMatch || res.etag, + ifModifiedSince: options.conditions.ifModifiedSince, + ifNoneMatch: options.conditions.ifNoneMatch, + ifUnmodifiedSince: options.conditions.ifUnmodifiedSince, + ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions + }, + range: rangeToString({ + count: offset + res.contentLength - start, + offset: start + }), + rangeGetContentMD5: options.rangeGetContentMD5, + rangeGetContentCRC64: options.rangeGetContentCrc64, + snapshot: options.snapshot, + cpkInfo: options.customerProvidedKey + }; + // Debug purpose only + // console.log( + // `Read from internal stream, range: ${ + // updatedOptions.range + // }, options: ${JSON.stringify(updatedOptions)}` + // ); + return (await this.blobContext.download(Object.assign({ abortSignal: options.abortSignal }, updatedDownloadOptions))).readableStreamBody; + }, offset, res.contentLength, { + maxRetryRequests: options.maxRetryRequests, + onProgress: options.onProgress }); - }); - }; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message + }); + throw e; + } + finally { + span.end(); + } + } /** * Returns true if the Azure blob resource represented by this client exists; false otherwise. * @@ -83817,49 +82031,36 @@ var BlobClient = /** @class */ (function (_super) { * * @param options - options to Exists operation. */ - BlobClient.prototype.exists = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_2; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobClient-exists", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.getProperties({ - abortSignal: options.abortSignal, - customerProvidedKey: options.customerProvidedKey, - conditions: options.conditions, - tracingOptions: updatedOptions.tracingOptions - })]; - case 2: - _b.sent(); - return [2 /*return*/, true]; - case 3: - e_2 = _b.sent(); - if (e_2.statusCode === 404) { - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: "Expected exception when checking blob existence" - }); - return [2 /*return*/, false]; - } - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_2.message - }); - throw e_2; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async exists(options = {}) { + const { span, updatedOptions } = createSpan("BlobClient-exists", options); + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + await this.getProperties({ + abortSignal: options.abortSignal, + customerProvidedKey: options.customerProvidedKey, + conditions: options.conditions, + tracingOptions: updatedOptions.tracingOptions }); - }); - }; + return true; + } + catch (e) { + if (e.statusCode === 404) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: "Expected exception when checking blob existence" + }); + return false; + } + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message + }); + throw e; + } + finally { + span.end(); + } + } /** * Returns all user-defined metadata, standard HTTP properties, and system properties * for the blob. It does not return the content of the blob. @@ -83872,39 +82073,26 @@ var BlobClient = /** @class */ (function (_super) { * * @param options - Optional options to Get Properties operation. */ - BlobClient.prototype.getProperties = function (options) { + async getProperties(options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, res, e_3; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("BlobClient-getProperties", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - options.conditions = options.conditions || {}; - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.blobContext.getProperties(tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - res = _c.sent(); - return [2 /*return*/, tslib.__assign(tslib.__assign({}, res), { _response: res._response, objectReplicationDestinationPolicyId: res.objectReplicationPolicyId, objectReplicationSourceProperties: parseObjectReplicationRecord(res.objectReplicationRules) })]; - case 3: - e_3 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_3.message - }); - throw e_3; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobClient-getProperties", options); + try { + options.conditions = options.conditions || {}; + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + const res = await this.blobContext.getProperties(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey }, convertTracingToRequestOptionsBase(updatedOptions))); + return Object.assign(Object.assign({}, res), { _response: res._response, objectReplicationDestinationPolicyId: res.objectReplicationPolicyId, objectReplicationSourceProperties: parseObjectReplicationRecord(res.objectReplicationRules) }); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Marks the specified blob or snapshot for deletion. The blob is later deleted * during garbage collection. Note that in order to delete a blob, you must delete @@ -83914,36 +82102,24 @@ var BlobClient = /** @class */ (function (_super) { * * @param options - Optional options to Blob Delete operation. */ - BlobClient.prototype.delete = function (options) { + async delete(options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_4; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("BlobClient-delete", options), span = _b.span, updatedOptions = _b.updatedOptions; - options.conditions = options.conditions || {}; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.blobContext.delete(tslib.__assign({ abortSignal: options.abortSignal, deleteSnapshots: options.deleteSnapshots, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_4 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_4.message - }); - throw e_4; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobClient-delete", options); + options.conditions = options.conditions || {}; + try { + return await this.blobContext.delete(Object.assign({ abortSignal: options.abortSignal, deleteSnapshots: options.deleteSnapshots, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Marks the specified blob or snapshot for deletion if it exists. The blob is later deleted * during garbage collection. Note that in order to delete a blob, you must delete @@ -83953,45 +82129,32 @@ var BlobClient = /** @class */ (function (_super) { * * @param options - Optional options to Blob Delete operation. */ - BlobClient.prototype.deleteIfExists = function (options) { + async deleteIfExists(options = {}) { var _a, _b; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _c, span, updatedOptions, res, e_5; - return tslib.__generator(this, function (_d) { - switch (_d.label) { - case 0: - _c = createSpan("BlobClient-deleteIfExists", options), span = _c.span, updatedOptions = _c.updatedOptions; - _d.label = 1; - case 1: - _d.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.delete(updatedOptions)]; - case 2: - res = _d.sent(); - return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable - })]; - case 3: - e_5 = _d.sent(); - if (((_a = e_5.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "BlobNotFound") { - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: "Expected exception when deleting a blob or snapshot only if it exists." - }); - return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: false }, (_b = e_5.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e_5.response })]; - } - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_5.message - }); - throw e_5; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobClient-deleteIfExists", options); + try { + const res = await this.delete(updatedOptions); + return Object.assign(Object.assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable + }); + } + catch (e) { + if (((_a = e.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "BlobNotFound") { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: "Expected exception when deleting a blob or snapshot only if it exists." + }); + return Object.assign(Object.assign({ succeeded: false }, (_b = e.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e.response }); + } + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Restores the contents and metadata of soft deleted blob and any associated * soft deleted snapshots. Undelete Blob is supported only on version 2017-07-29 @@ -84000,34 +82163,22 @@ var BlobClient = /** @class */ (function (_super) { * * @param options - Optional options to Blob Undelete operation. */ - BlobClient.prototype.undelete = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_6; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobClient-undelete", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.blobContext.undelete(tslib.__assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_6 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_6.message - }); - throw e_6; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async undelete(options = {}) { + const { span, updatedOptions } = createSpan("BlobClient-undelete", options); + try { + return await this.blobContext.undelete(Object.assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Sets system properties on the blob. * @@ -84038,39 +82189,30 @@ var BlobClient = /** @class */ (function (_super) { * @param blobHTTPHeaders - If no value provided, or no value provided for * the specified blob HTTP headers, these blob HTTP * headers without a value will be cleared. + * A common header to set is `blobContentType` + * enabling the browser to provide functionality + * based on file type. * @param options - Optional options to Blob Set HTTP Headers operation. */ - BlobClient.prototype.setHTTPHeaders = function (blobHTTPHeaders, options) { + async setHTTPHeaders(blobHTTPHeaders, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_7; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("BlobClient-setHTTPHeaders", options), span = _b.span, updatedOptions = _b.updatedOptions; - options.conditions = options.conditions || {}; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.blobContext.setHttpHeaders(tslib.__assign({ abortSignal: options.abortSignal, blobHttpHeaders: blobHTTPHeaders, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_7 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_7.message - }); - throw e_7; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobClient-setHTTPHeaders", options); + options.conditions = options.conditions || {}; + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.blobContext.setHttpHeaders(Object.assign({ abortSignal: options.abortSignal, blobHttpHeaders: blobHTTPHeaders, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Sets user-defined metadata for the specified blob as one or more name-value pairs. * @@ -84082,37 +82224,25 @@ var BlobClient = /** @class */ (function (_super) { * If no value provided the existing metadata will be removed. * @param options - Optional options to Set Metadata operation. */ - BlobClient.prototype.setMetadata = function (metadata, options) { + async setMetadata(metadata, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_8; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("BlobClient-setMetadata", options), span = _b.span, updatedOptions = _b.updatedOptions; - options.conditions = options.conditions || {}; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.blobContext.setMetadata(tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, metadata: metadata, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_8 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_8.message - }); - throw e_8; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobClient-setMetadata", options); + options.conditions = options.conditions || {}; + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.blobContext.setMetadata(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, metadata, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Sets tags on the underlying blob. * A blob can have up to 10 tags. Tag keys must be between 1 and 128 characters. Tag values must be between 0 and 256 characters. @@ -84122,118 +82252,81 @@ var BlobClient = /** @class */ (function (_super) { * @param tags - * @param options - */ - BlobClient.prototype.setTags = function (tags, options) { + async setTags(tags, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_9; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("BlobClient-setTags", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.blobContext.setTags(tslib.__assign(tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)), { tags: toBlobTags(tags) }))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_9 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_9.message - }); - throw e_9; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobClient-setTags", options); + try { + return await this.blobContext.setTags(Object.assign(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)), { tags: toBlobTags(tags) })); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Gets the tags associated with the underlying blob. * * @param options - */ - BlobClient.prototype.getTags = function (options) { + async getTags(options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, response, wrappedResponse, e_10; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("BlobClient-getTags", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.blobContext.getTags(tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - response = _c.sent(); - wrappedResponse = tslib.__assign(tslib.__assign({}, response), { _response: response._response, tags: toTags({ blobTagSet: response.blobTagSet }) || {} }); - return [2 /*return*/, wrappedResponse]; - case 3: - e_10 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_10.message - }); - throw e_10; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobClient-getTags", options); + try { + const response = await this.blobContext.getTags(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions))); + const wrappedResponse = Object.assign(Object.assign({}, response), { _response: response._response, tags: toTags({ blobTagSet: response.blobTagSet }) || {} }); + return wrappedResponse; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Get a {@link BlobLeaseClient} that manages leases on the blob. * * @param proposeLeaseId - Initial proposed lease Id. * @returns A new BlobLeaseClient object for managing leases on the blob. */ - BlobClient.prototype.getBlobLeaseClient = function (proposeLeaseId) { + getBlobLeaseClient(proposeLeaseId) { return new BlobLeaseClient(this, proposeLeaseId); - }; + } /** * Creates a read-only snapshot of a blob. * @see https://docs.microsoft.com/en-us/rest/api/storageservices/snapshot-blob * * @param options - Optional options to the Blob Create Snapshot operation. */ - BlobClient.prototype.createSnapshot = function (options) { + async createSnapshot(options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_11; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("BlobClient-createSnapshot", options), span = _b.span, updatedOptions = _b.updatedOptions; - options.conditions = options.conditions || {}; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.blobContext.createSnapshot(tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_11 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_11.message - }); - throw e_11; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobClient-createSnapshot", options); + options.conditions = options.conditions || {}; + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.blobContext.createSnapshot(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Asynchronously copies a blob to a destination within the storage account. * This method returns a long running operation poller that allows you to wait @@ -84306,57 +82399,25 @@ var BlobClient = /** @class */ (function (_super) { * @param copySource - url to the source Azure Blob/File. * @param options - Optional options to the Blob Start Copy From URL operation. */ - BlobClient.prototype.beginCopyFromURL = function (copySource, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var client, poller; - var _this = this; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - client = { - abortCopyFromURL: function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return _this.abortCopyFromURL.apply(_this, args); - }, - getProperties: function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return _this.getProperties.apply(_this, args); - }, - startCopyFromURL: function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return _this.startCopyFromURL.apply(_this, args); - } - }; - poller = new BlobBeginCopyFromUrlPoller({ - blobClient: client, - copySource: copySource, - intervalInMs: options.intervalInMs, - onProgress: options.onProgress, - resumeFrom: options.resumeFrom, - startCopyFromURLOptions: options - }); - // Trigger the startCopyFromURL call by calling poll. - // Any errors from this method should be surfaced to the user. - return [4 /*yield*/, poller.poll()]; - case 1: - // Trigger the startCopyFromURL call by calling poll. - // Any errors from this method should be surfaced to the user. - _a.sent(); - return [2 /*return*/, poller]; - } - }); + async beginCopyFromURL(copySource, options = {}) { + const client = { + abortCopyFromURL: (...args) => this.abortCopyFromURL(...args), + getProperties: (...args) => this.getProperties(...args), + startCopyFromURL: (...args) => this.startCopyFromURL(...args) + }; + const poller = new BlobBeginCopyFromUrlPoller({ + blobClient: client, + copySource, + intervalInMs: options.intervalInMs, + onProgress: options.onProgress, + resumeFrom: options.resumeFrom, + startCopyFromURLOptions: options }); - }; + // Trigger the startCopyFromURL call by calling poll. + // Any errors from this method should be surfaced to the user. + await poller.poll(); + return poller; + } /** * Aborts a pending asynchronous Copy Blob operation, and leaves a destination blob with zero * length and full metadata. Version 2012-02-12 and newer. @@ -84365,34 +82426,22 @@ var BlobClient = /** @class */ (function (_super) { * @param copyId - Id of the Copy From URL operation. * @param options - Optional options to the Blob Abort Copy From URL operation. */ - BlobClient.prototype.abortCopyFromURL = function (copyId, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_12; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobClient-abortCopyFromURL", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.blobContext.abortCopyFromURL(copyId, tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_12 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_12.message - }); - throw e_12; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async abortCopyFromURL(copyId, options = {}) { + const { span, updatedOptions } = createSpan("BlobClient-abortCopyFromURL", options); + try { + return await this.blobContext.abortCopyFromURL(copyId, Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * The synchronous Copy From URL operation copies a blob or an internet resource to a new blob. It will not * return a response until the copy is complete. @@ -84401,42 +82450,30 @@ var BlobClient = /** @class */ (function (_super) { * @param copySource - The source URL to copy from, Shared Access Signature(SAS) maybe needed for authentication * @param options - */ - BlobClient.prototype.syncCopyFromURL = function (copySource, options) { - var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_13; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("BlobClient-syncCopyFromURL", options), span = _b.span, updatedOptions = _b.updatedOptions; - options.conditions = options.conditions || {}; - options.sourceConditions = options.sourceConditions || {}; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.blobContext.copyFromURL(copySource, tslib.__assign({ abortSignal: options.abortSignal, metadata: options.metadata, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), sourceModifiedAccessConditions: { - sourceIfMatch: options.sourceConditions.ifMatch, - sourceIfModifiedSince: options.sourceConditions.ifModifiedSince, - sourceIfNoneMatch: options.sourceConditions.ifNoneMatch, - sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince - }, sourceContentMD5: options.sourceContentMD5, blobTagsString: toBlobTagsString(options.tags) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_13 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_13.message - }); - throw e_13; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async syncCopyFromURL(copySource, options = {}) { + var _a, _b, _c; + const { span, updatedOptions } = createSpan("BlobClient-syncCopyFromURL", options); + options.conditions = options.conditions || {}; + options.sourceConditions = options.sourceConditions || {}; + try { + return await this.blobContext.copyFromURL(copySource, Object.assign({ abortSignal: options.abortSignal, metadata: options.metadata, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), sourceModifiedAccessConditions: { + sourceIfMatch: options.sourceConditions.ifMatch, + sourceIfModifiedSince: options.sourceConditions.ifModifiedSince, + sourceIfNoneMatch: options.sourceConditions.ifNoneMatch, + sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince + }, sourceContentMD5: options.sourceContentMD5, copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization), blobTagsString: toBlobTagsString(options.tags), immutabilityPolicyExpiry: (_b = options.immutabilityPolicy) === null || _b === void 0 ? void 0 : _b.expiriesOn, immutabilityPolicyMode: (_c = options.immutabilityPolicy) === null || _c === void 0 ? void 0 : _c.policyMode, legalHold: options.legalHold }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Sets the tier on a blob. The operation is allowed on a page blob in a premium * storage account and on a block blob in a blob storage account (locally redundant @@ -84448,159 +82485,119 @@ var BlobClient = /** @class */ (function (_super) { * @param tier - The tier to be set on the blob. Valid values are Hot, Cool, or Archive. * @param options - Optional options to the Blob Set Tier operation. */ - BlobClient.prototype.setAccessTier = function (tier, options) { + async setAccessTier(tier, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_14; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("BlobClient-setAccessTier", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.blobContext.setTier(toAccessTier(tier), tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), rehydratePriority: options.rehydratePriority }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_14 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_14.message - }); - throw e_14; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobClient-setAccessTier", options); + try { + return await this.blobContext.setTier(toAccessTier(tier), Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), rehydratePriority: options.rehydratePriority }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; - BlobClient.prototype.downloadToBuffer = function (param1, param2, param3, param4) { - if (param4 === void 0) { param4 = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var buffer, offset, count, options, _a, span, updatedOptions, response, transferProgress_1, batch, _loop_1, off, e_15; - var _this = this; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - offset = 0; - count = 0; - options = param4; - if (param1 instanceof Buffer) { - buffer = param1; - offset = param2 || 0; - count = typeof param3 === "number" ? param3 : 0; - } - else { - offset = typeof param1 === "number" ? param1 : 0; - count = typeof param2 === "number" ? param2 : 0; - options = param3 || {}; - } - _a = createSpan("BlobClient-downloadToBuffer", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 5, 6, 7]); - if (!options.blockSize) { - options.blockSize = 0; - } - if (options.blockSize < 0) { - throw new RangeError("blockSize option must be >= 0"); - } - if (options.blockSize === 0) { - options.blockSize = DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES; - } - if (offset < 0) { - throw new RangeError("offset option must be >= 0"); - } - if (count && count <= 0) { - throw new RangeError("count option must be greater than 0"); - } - if (!options.conditions) { - options.conditions = {}; - } - if (!!count) return [3 /*break*/, 3]; - return [4 /*yield*/, this.getProperties(tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), convertTracingToRequestOptionsBase(updatedOptions)) }))]; - case 2: - response = _b.sent(); - count = response.contentLength - offset; - if (count < 0) { - throw new RangeError("offset " + offset + " shouldn't be larger than blob size " + response.contentLength); - } - _b.label = 3; - case 3: - // Allocate the buffer of size = count if the buffer is not provided - if (!buffer) { - try { - buffer = Buffer.alloc(count); - } - catch (error) { - throw new Error("Unable to allocate the buffer of size: " + count + "(in bytes). Please try passing your own buffer to the \"downloadToBuffer\" method or try using other methods like \"download\" or \"downloadToFile\".\t " + error.message); - } - } - if (buffer.length < count) { - throw new RangeError("The buffer's size should be equal to or larger than the request count of bytes: " + count); - } - transferProgress_1 = 0; - batch = new Batch(options.concurrency); - _loop_1 = function (off) { - batch.addOperation(function () { return tslib.__awaiter(_this, void 0, void 0, function () { - var chunkEnd, response, stream; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - chunkEnd = offset + count; - if (off + options.blockSize < chunkEnd) { - chunkEnd = off + options.blockSize; - } - return [4 /*yield*/, this.download(off, chunkEnd - off, { - abortSignal: options.abortSignal, - conditions: options.conditions, - maxRetryRequests: options.maxRetryRequestsPerBlock, - customerProvidedKey: options.customerProvidedKey, - tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), convertTracingToRequestOptionsBase(updatedOptions)) - })]; - case 1: - response = _a.sent(); - stream = response.readableStreamBody; - return [4 /*yield*/, streamToBuffer(stream, buffer, off - offset, chunkEnd - offset)]; - case 2: - _a.sent(); - // Update progress after block is downloaded, in case of block trying - // Could provide finer grained progress updating inside HTTP requests, - // only if convenience layer download try is enabled - transferProgress_1 += chunkEnd - off; - if (options.onProgress) { - options.onProgress({ loadedBytes: transferProgress_1 }); - } - return [2 /*return*/]; - } - }); - }); }); - }; - for (off = offset; off < offset + count; off = off + options.blockSize) { - _loop_1(off); - } - return [4 /*yield*/, batch.do()]; - case 4: - _b.sent(); - return [2 /*return*/, buffer]; - case 5: - e_15 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_15.message - }); - throw e_15; - case 6: - span.end(); - return [7 /*endfinally*/]; - case 7: return [2 /*return*/]; + throw e; + } + finally { + span.end(); + } + } + async downloadToBuffer(param1, param2, param3, param4 = {}) { + let buffer; + let offset = 0; + let count = 0; + let options = param4; + if (param1 instanceof Buffer) { + buffer = param1; + offset = param2 || 0; + count = typeof param3 === "number" ? param3 : 0; + } + else { + offset = typeof param1 === "number" ? param1 : 0; + count = typeof param2 === "number" ? param2 : 0; + options = param3 || {}; + } + const { span, updatedOptions } = createSpan("BlobClient-downloadToBuffer", options); + try { + if (!options.blockSize) { + options.blockSize = 0; + } + if (options.blockSize < 0) { + throw new RangeError("blockSize option must be >= 0"); + } + if (options.blockSize === 0) { + options.blockSize = DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES; + } + if (offset < 0) { + throw new RangeError("offset option must be >= 0"); + } + if (count && count <= 0) { + throw new RangeError("count option must be greater than 0"); + } + if (!options.conditions) { + options.conditions = {}; + } + // Customer doesn't specify length, get it + if (!count) { + const response = await this.getProperties(Object.assign(Object.assign({}, options), { tracingOptions: Object.assign(Object.assign({}, options.tracingOptions), convertTracingToRequestOptionsBase(updatedOptions)) })); + count = response.contentLength - offset; + if (count < 0) { + throw new RangeError(`offset ${offset} shouldn't be larger than blob size ${response.contentLength}`); } + } + // Allocate the buffer of size = count if the buffer is not provided + if (!buffer) { + try { + buffer = Buffer.alloc(count); + } + catch (error) { + throw new Error(`Unable to allocate the buffer of size: ${count}(in bytes). Please try passing your own buffer to the "downloadToBuffer" method or try using other methods like "download" or "downloadToFile".\t ${error.message}`); + } + } + if (buffer.length < count) { + throw new RangeError(`The buffer's size should be equal to or larger than the request count of bytes: ${count}`); + } + let transferProgress = 0; + const batch = new Batch(options.concurrency); + for (let off = offset; off < offset + count; off = off + options.blockSize) { + batch.addOperation(async () => { + // Exclusive chunk end position + let chunkEnd = offset + count; + if (off + options.blockSize < chunkEnd) { + chunkEnd = off + options.blockSize; + } + const response = await this.download(off, chunkEnd - off, { + abortSignal: options.abortSignal, + conditions: options.conditions, + maxRetryRequests: options.maxRetryRequestsPerBlock, + customerProvidedKey: options.customerProvidedKey, + tracingOptions: Object.assign(Object.assign({}, options.tracingOptions), convertTracingToRequestOptionsBase(updatedOptions)) + }); + const stream = response.readableStreamBody; + await streamToBuffer(stream, buffer, off - offset, chunkEnd - offset); + // Update progress after block is downloaded, in case of block trying + // Could provide finer grained progress updating inside HTTP requests, + // only if convenience layer download try is enabled + transferProgress += chunkEnd - off; + if (options.onProgress) { + options.onProgress({ loadedBytes: transferProgress }); + } + }); + } + await batch.do(); + return buffer; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * ONLY AVAILABLE IN NODE.JS RUNTIME. * @@ -84617,48 +82614,31 @@ var BlobClient = /** @class */ (function (_super) { * content is already read and written into a local file * at the specified path. */ - BlobClient.prototype.downloadToFile = function (filePath, offset, count, options) { - if (offset === void 0) { offset = 0; } - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, response, e_16; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobClient-downloadToFile", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 5, 6, 7]); - return [4 /*yield*/, this.download(offset, count, tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), convertTracingToRequestOptionsBase(updatedOptions)) }))]; - case 2: - response = _b.sent(); - if (!response.readableStreamBody) return [3 /*break*/, 4]; - return [4 /*yield*/, readStreamToLocalFile(response.readableStreamBody, filePath)]; - case 3: - _b.sent(); - _b.label = 4; - case 4: - // The stream is no longer accessible so setting it to undefined. - response.blobDownloadStream = undefined; - return [2 /*return*/, response]; - case 5: - e_16 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_16.message - }); - throw e_16; - case 6: - span.end(); - return [7 /*endfinally*/]; - case 7: return [2 /*return*/]; - } + async downloadToFile(filePath, offset = 0, count, options = {}) { + const { span, updatedOptions } = createSpan("BlobClient-downloadToFile", options); + try { + const response = await this.download(offset, count, Object.assign(Object.assign({}, options), { tracingOptions: Object.assign(Object.assign({}, options.tracingOptions), convertTracingToRequestOptionsBase(updatedOptions)) })); + if (response.readableStreamBody) { + await readStreamToLocalFile(response.readableStreamBody, filePath); + } + // The stream is no longer accessible so setting it to undefined. + response.blobDownloadStream = undefined; + return response; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; - BlobClient.prototype.getBlobAndContainerNamesFromUrl = function () { - var containerName; - var blobName; + throw e; + } + finally { + span.end(); + } + } + getBlobAndContainerNamesFromUrl() { + let containerName; + let blobName; try { // URL may look like the following // "https://myaccount.blob.core.windows.net/mycontainer/blob?sasString"; @@ -84667,11 +82647,11 @@ var BlobClient = /** @class */ (function (_super) { // "https://myaccount.blob.core.windows.net/mycontainer/blob/a.txt"; // IPv4/IPv6 address hosts, Endpoints - `http://127.0.0.1:10000/devstoreaccount1/containername/blob` // http://localhost:10001/devstoreaccount1/containername/blob - var parsedUrl = coreHttp.URLBuilder.parse(this.url); + const parsedUrl = coreHttp.URLBuilder.parse(this.url); if (parsedUrl.getHost().split(".")[1] === "blob") { // "https://myaccount.blob.core.windows.net/containername/blob". // .getPath() -> /containername/blob - var pathComponents = parsedUrl.getPath().match("/([^/]*)(/(.*))?"); + const pathComponents = parsedUrl.getPath().match("/([^/]*)(/(.*))?"); containerName = pathComponents[1]; blobName = pathComponents[3]; } @@ -84679,14 +82659,14 @@ var BlobClient = /** @class */ (function (_super) { // IPv4/IPv6 address hosts... Example - http://192.0.0.10:10001/devstoreaccount1/containername/blob // Single word domain without a [dot] in the endpoint... Example - http://localhost:10001/devstoreaccount1/containername/blob // .getPath() -> /devstoreaccount1/containername/blob - var pathComponents = parsedUrl.getPath().match("/([^/]*)/([^/]*)(/(.*))?"); + const pathComponents = parsedUrl.getPath().match("/([^/]*)/([^/]*)(/(.*))?"); containerName = pathComponents[2]; blobName = pathComponents[4]; } else { // "https://customdomain.com/containername/blob". // .getPath() -> /containername/blob - var pathComponents = parsedUrl.getPath().match("/([^/]*)(/(.*))?"); + const pathComponents = parsedUrl.getPath().match("/([^/]*)(/(.*))?"); containerName = pathComponents[1]; blobName = pathComponents[3]; } @@ -84699,12 +82679,12 @@ var BlobClient = /** @class */ (function (_super) { if (!containerName) { throw new Error("Provided containerName is invalid."); } - return { blobName: blobName, containerName: containerName }; + return { blobName, containerName }; } catch (error) { throw new Error("Unable to extract blobName and containerName with provided information."); } - }; + } /** * Asynchronously copies a blob to a destination within the storage account. * In version 2012-02-12 and later, the source for a Copy Blob operation can be @@ -84718,43 +82698,31 @@ var BlobClient = /** @class */ (function (_super) { * @param copySource - url to the source Azure Blob/File. * @param options - Optional options to the Blob Start Copy From URL operation. */ - BlobClient.prototype.startCopyFromURL = function (copySource, options) { - var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_17; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("BlobClient-startCopyFromURL", options), span = _b.span, updatedOptions = _b.updatedOptions; - options.conditions = options.conditions || {}; - options.sourceConditions = options.sourceConditions || {}; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.blobContext.startCopyFromURL(copySource, tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), sourceModifiedAccessConditions: { - sourceIfMatch: options.sourceConditions.ifMatch, - sourceIfModifiedSince: options.sourceConditions.ifModifiedSince, - sourceIfNoneMatch: options.sourceConditions.ifNoneMatch, - sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince, - sourceIfTags: options.sourceConditions.tagConditions - }, rehydratePriority: options.rehydratePriority, tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags), sealBlob: options.sealBlob }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_17 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_17.message - }); - throw e_17; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async startCopyFromURL(copySource, options = {}) { + var _a, _b, _c; + const { span, updatedOptions } = createSpan("BlobClient-startCopyFromURL", options); + options.conditions = options.conditions || {}; + options.sourceConditions = options.sourceConditions || {}; + try { + return await this.blobContext.startCopyFromURL(copySource, Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), sourceModifiedAccessConditions: { + sourceIfMatch: options.sourceConditions.ifMatch, + sourceIfModifiedSince: options.sourceConditions.ifModifiedSince, + sourceIfNoneMatch: options.sourceConditions.ifNoneMatch, + sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince, + sourceIfTags: options.sourceConditions.tagConditions + }, immutabilityPolicyExpiry: (_b = options.immutabilityPolicy) === null || _b === void 0 ? void 0 : _b.expiriesOn, immutabilityPolicyMode: (_c = options.immutabilityPolicy) === null || _c === void 0 ? void 0 : _c.policyMode, legalHold: options.legalHold, rehydratePriority: options.rehydratePriority, tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags), sealBlob: options.sealBlob }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Only available for BlobClient constructed with a shared key credential. * @@ -84766,31 +82734,93 @@ var BlobClient = /** @class */ (function (_super) { * @param options - Optional parameters. * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token. */ - BlobClient.prototype.generateSasUrl = function (options) { - var _this = this; - return new Promise(function (resolve) { - if (!(_this.credential instanceof StorageSharedKeyCredential)) { + generateSasUrl(options) { + return new Promise((resolve) => { + if (!(this.credential instanceof StorageSharedKeyCredential)) { throw new RangeError("Can only generate the SAS when the client is initialized with a shared key credential"); } - var sas = generateBlobSASQueryParameters(tslib.__assign({ containerName: _this._containerName, blobName: _this._name, snapshotTime: _this._snapshot, versionId: _this._versionId }, options), _this.credential).toString(); - resolve(appendToURLQuery(_this.url, sas)); + const sas = generateBlobSASQueryParameters(Object.assign({ containerName: this._containerName, blobName: this._name, snapshotTime: this._snapshot, versionId: this._versionId }, options), this.credential).toString(); + resolve(appendToURLQuery(this.url, sas)); }); - }; - return BlobClient; -}(StorageClient)); + } + /** + * Delete the immutablility policy on the blob. + * + * @param options - Optional options to delete immutability policy on the blob. + */ + async deleteImmutabilityPolicy(options) { + const { span, updatedOptions } = createSpan("BlobClient-deleteImmutabilityPolicy", options); + try { + return await this.blobContext.deleteImmutabilityPolicy(Object.assign({ abortSignal: options === null || options === void 0 ? void 0 : options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message + }); + throw e; + } + finally { + span.end(); + } + } + /** + * Set immutablility policy on the blob. + * + * @param options - Optional options to set immutability policy on the blob. + */ + async setImmutabilityPolicy(immutabilityPolicy, options) { + const { span, updatedOptions } = createSpan("BlobClient-setImmutabilityPolicy", options); + try { + return await this.blobContext.setImmutabilityPolicy(Object.assign({ abortSignal: options === null || options === void 0 ? void 0 : options.abortSignal, immutabilityPolicyExpiry: immutabilityPolicy.expiriesOn, immutabilityPolicyMode: immutabilityPolicy.policyMode, modifiedAccessConditions: options === null || options === void 0 ? void 0 : options.modifiedAccessCondition }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message + }); + throw e; + } + finally { + span.end(); + } + } + /** + * Set legal hold on the blob. + * + * @param options - Optional options to set legal hold on the blob. + */ + async setLegalHold(legalHoldEnabled, options) { + const { span, updatedOptions } = createSpan("BlobClient-setLegalHold", options); + try { + return await this.blobContext.setLegalHold(legalHoldEnabled, Object.assign({ abortSignal: options === null || options === void 0 ? void 0 : options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message + }); + throw e; + } + finally { + span.end(); + } + } +} /** * AppendBlobClient defines a set of operations applicable to append blobs. */ -var AppendBlobClient = /** @class */ (function (_super) { - tslib.__extends(AppendBlobClient, _super); - function AppendBlobClient(urlOrConnectionString, credentialOrPipelineOrContainerName, blobNameOrOptions, options) { - var _this = this; +class AppendBlobClient extends BlobClient { + constructor(urlOrConnectionString, credentialOrPipelineOrContainerName, blobNameOrOptions, + // Legacy, no fix for eslint error without breaking. Disable it for this interface. + /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/ + options) { // In TypeScript we cannot simply pass all parameters to super() like below so have to duplicate the code instead. // super(s, credentialOrPipelineOrContainerNameOrOptions, blobNameOrOptions, options); - var pipeline; - var url; + let pipeline; + let url; options = options || {}; - if (credentialOrPipelineOrContainerName instanceof Pipeline) { + if (isPipelineLike(credentialOrPipelineOrContainerName)) { // (url: string, pipeline: Pipeline) url = urlOrConnectionString; pipeline = credentialOrPipelineOrContainerName; @@ -84815,12 +82845,12 @@ var AppendBlobClient = /** @class */ (function (_super) { blobNameOrOptions && typeof blobNameOrOptions === "string") { // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions) - var containerName = credentialOrPipelineOrContainerName; - var blobName = blobNameOrOptions; - var extractedCreds = extractConnectionStringParts(urlOrConnectionString); + const containerName = credentialOrPipelineOrContainerName; + const blobName = blobNameOrOptions; + const extractedCreds = extractConnectionStringParts(urlOrConnectionString); if (extractedCreds.kind === "AccountConnString") { { - var sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey); + const sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey); url = appendToURLPath(appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)), encodeURIComponent(blobName)); options.proxyOptions = coreHttp.getDefaultProxySettings(extractedCreds.proxyUri); pipeline = newPipeline(sharedKeyCredential, options); @@ -84840,9 +82870,8 @@ var AppendBlobClient = /** @class */ (function (_super) { else { throw new Error("Expecting non-empty strings for containerName and blobName parameters"); } - _this = _super.call(this, url, pipeline) || this; - _this.appendBlobContext = new AppendBlob(_this.storageClientContext); - return _this; + super(url, pipeline); + this.appendBlobContext = new AppendBlob(this.storageClientContext); } /** * Creates a new AppendBlobClient object identical to the source but with the @@ -84852,9 +82881,9 @@ var AppendBlobClient = /** @class */ (function (_super) { * @param snapshot - The snapshot timestamp. * @returns A new AppendBlobClient object identical to the source but with the specified snapshot timestamp. */ - AppendBlobClient.prototype.withSnapshot = function (snapshot) { + withSnapshot(snapshot) { return new AppendBlobClient(setURLParameter(this.url, URLConstants.Parameters.SNAPSHOT, snapshot.length === 0 ? undefined : snapshot), this.pipeline); - }; + } /** * Creates a 0-length append blob. Call AppendBlock to append data to an append blob. * @see https://docs.microsoft.com/rest/api/storageservices/put-blob @@ -84869,37 +82898,25 @@ var AppendBlobClient = /** @class */ (function (_super) { * await appendBlobClient.create(); * ``` */ - AppendBlobClient.prototype.create = function (options) { - var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_18; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("AppendBlobClient-create", options), span = _b.span, updatedOptions = _b.updatedOptions; - options.conditions = options.conditions || {}; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.appendBlobContext.create(0, tslib.__assign({ abortSignal: options.abortSignal, blobHttpHeaders: options.blobHTTPHeaders, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, blobTagsString: toBlobTagsString(options.tags) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_18 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_18.message - }); - throw e_18; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async create(options = {}) { + var _a, _b, _c; + const { span, updatedOptions } = createSpan("AppendBlobClient-create", options); + options.conditions = options.conditions || {}; + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.appendBlobContext.create(0, Object.assign({ abortSignal: options.abortSignal, blobHttpHeaders: options.blobHTTPHeaders, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, immutabilityPolicyExpiry: (_b = options.immutabilityPolicy) === null || _b === void 0 ? void 0 : _b.expiriesOn, immutabilityPolicyMode: (_c = options.immutabilityPolicy) === null || _c === void 0 ? void 0 : _c.policyMode, legalHold: options.legalHold, blobTagsString: toBlobTagsString(options.tags) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Creates a 0-length append blob. Call AppendBlock to append data to an append blob. * If the blob with the same name already exists, the content of the existing blob will remain unchanged. @@ -84907,81 +82924,56 @@ var AppendBlobClient = /** @class */ (function (_super) { * * @param options - */ - AppendBlobClient.prototype.createIfNotExists = function (options) { + async createIfNotExists(options = {}) { var _a, _b; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _c, span, updatedOptions, conditions, res, e_19; - return tslib.__generator(this, function (_d) { - switch (_d.label) { - case 0: - _c = createSpan("AppendBlobClient-createIfNotExists", options), span = _c.span, updatedOptions = _c.updatedOptions; - conditions = { ifNoneMatch: ETagAny }; - _d.label = 1; - case 1: - _d.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.create(tslib.__assign(tslib.__assign({}, updatedOptions), { conditions: conditions }))]; - case 2: - res = _d.sent(); - return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable - })]; - case 3: - e_19 = _d.sent(); - if (((_a = e_19.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "BlobAlreadyExists") { - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: "Expected exception when creating a blob only if it does not already exist." - }); - return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: false }, (_b = e_19.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e_19.response })]; - } - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_19.message - }); - throw e_19; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("AppendBlobClient-createIfNotExists", options); + const conditions = { ifNoneMatch: ETagAny }; + try { + const res = await this.create(Object.assign(Object.assign({}, updatedOptions), { conditions })); + return Object.assign(Object.assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable + }); + } + catch (e) { + if (((_a = e.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "BlobAlreadyExists") { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: "Expected exception when creating a blob only if it does not already exist." + }); + return Object.assign(Object.assign({ succeeded: false }, (_b = e.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e.response }); + } + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Seals the append blob, making it read only. * * @param options - */ - AppendBlobClient.prototype.seal = function (options) { + async seal(options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_20; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("AppendBlobClient-seal", options), span = _b.span, updatedOptions = _b.updatedOptions; - options.conditions = options.conditions || {}; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.appendBlobContext.seal(tslib.__assign({ abortSignal: options.abortSignal, appendPositionAccessConditions: options.conditions, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_20 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_20.message - }); - throw e_20; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("AppendBlobClient-seal", options); + options.conditions = options.conditions || {}; + try { + return await this.appendBlobContext.seal(Object.assign({ abortSignal: options.abortSignal, appendPositionAccessConditions: options.conditions, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Commits a new block of data to the end of the existing append blob. * @see https://docs.microsoft.com/rest/api/storageservices/append-block @@ -85006,39 +82998,27 @@ var AppendBlobClient = /** @class */ (function (_super) { * await existingAppendBlobClient.appendBlock(content, content.length); * ``` */ - AppendBlobClient.prototype.appendBlock = function (body, contentLength, options) { + async appendBlock(body, contentLength, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_21; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("AppendBlobClient-appendBlock", options), span = _b.span, updatedOptions = _b.updatedOptions; - options.conditions = options.conditions || {}; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.appendBlobContext.appendBlock(contentLength, body, tslib.__assign({ abortSignal: options.abortSignal, appendPositionAccessConditions: options.conditions, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), requestOptions: { - onUploadProgress: options.onProgress - }, transactionalContentMD5: options.transactionalContentMD5, transactionalContentCrc64: options.transactionalContentCrc64, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_21 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_21.message - }); - throw e_21; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("AppendBlobClient-appendBlock", options); + options.conditions = options.conditions || {}; + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.appendBlobContext.appendBlock(contentLength, body, Object.assign({ abortSignal: options.abortSignal, appendPositionAccessConditions: options.conditions, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), requestOptions: { + onUploadProgress: options.onProgress + }, transactionalContentMD5: options.transactionalContentMD5, transactionalContentCrc64: options.transactionalContentCrc64, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * The Append Block operation commits a new block of data to the end of an existing append blob * where the contents are read from a source url. @@ -85053,58 +83033,46 @@ var AppendBlobClient = /** @class */ (function (_super) { * @param count - Number of bytes to be appended as a block * @param options - */ - AppendBlobClient.prototype.appendBlockFromURL = function (sourceURL, sourceOffset, count, options) { + async appendBlockFromURL(sourceURL, sourceOffset, count, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_22; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("AppendBlobClient-appendBlockFromURL", options), span = _b.span, updatedOptions = _b.updatedOptions; - options.conditions = options.conditions || {}; - options.sourceConditions = options.sourceConditions || {}; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.appendBlobContext.appendBlockFromUrl(sourceURL, 0, tslib.__assign({ abortSignal: options.abortSignal, sourceRange: rangeToString({ offset: sourceOffset, count: count }), sourceContentMD5: options.sourceContentMD5, sourceContentCrc64: options.sourceContentCrc64, leaseAccessConditions: options.conditions, appendPositionAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), sourceModifiedAccessConditions: { - sourceIfMatch: options.sourceConditions.ifMatch, - sourceIfModifiedSince: options.sourceConditions.ifModifiedSince, - sourceIfNoneMatch: options.sourceConditions.ifNoneMatch, - sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince - }, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_22 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_22.message - }); - throw e_22; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("AppendBlobClient-appendBlockFromURL", options); + options.conditions = options.conditions || {}; + options.sourceConditions = options.sourceConditions || {}; + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.appendBlobContext.appendBlockFromUrl(sourceURL, 0, Object.assign({ abortSignal: options.abortSignal, sourceRange: rangeToString({ offset: sourceOffset, count }), sourceContentMD5: options.sourceContentMD5, sourceContentCrc64: options.sourceContentCrc64, leaseAccessConditions: options.conditions, appendPositionAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), sourceModifiedAccessConditions: { + sourceIfMatch: options.sourceConditions.ifMatch, + sourceIfModifiedSince: options.sourceConditions.ifModifiedSince, + sourceIfNoneMatch: options.sourceConditions.ifNoneMatch, + sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince + }, copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; - return AppendBlobClient; -}(BlobClient)); + throw e; + } + finally { + span.end(); + } + } +} /** * BlockBlobClient defines a set of operations applicable to block blobs. */ -var BlockBlobClient = /** @class */ (function (_super) { - tslib.__extends(BlockBlobClient, _super); - function BlockBlobClient(urlOrConnectionString, credentialOrPipelineOrContainerName, blobNameOrOptions, options) { - var _this = this; +class BlockBlobClient extends BlobClient { + constructor(urlOrConnectionString, credentialOrPipelineOrContainerName, blobNameOrOptions, + // Legacy, no fix for eslint error without breaking. Disable it for this interface. + /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/ + options) { // In TypeScript we cannot simply pass all parameters to super() like below so have to duplicate the code instead. // super(s, credentialOrPipelineOrContainerNameOrOptions, blobNameOrOptions, options); - var pipeline; - var url; + let pipeline; + let url; options = options || {}; - if (credentialOrPipelineOrContainerName instanceof Pipeline) { + if (isPipelineLike(credentialOrPipelineOrContainerName)) { // (url: string, pipeline: Pipeline) url = urlOrConnectionString; pipeline = credentialOrPipelineOrContainerName; @@ -85129,12 +83097,12 @@ var BlockBlobClient = /** @class */ (function (_super) { blobNameOrOptions && typeof blobNameOrOptions === "string") { // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions) - var containerName = credentialOrPipelineOrContainerName; - var blobName = blobNameOrOptions; - var extractedCreds = extractConnectionStringParts(urlOrConnectionString); + const containerName = credentialOrPipelineOrContainerName; + const blobName = blobNameOrOptions; + const extractedCreds = extractConnectionStringParts(urlOrConnectionString); if (extractedCreds.kind === "AccountConnString") { { - var sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey); + const sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey); url = appendToURLPath(appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)), encodeURIComponent(blobName)); options.proxyOptions = coreHttp.getDefaultProxySettings(extractedCreds.proxyUri); pipeline = newPipeline(sharedKeyCredential, options); @@ -85154,10 +83122,9 @@ var BlockBlobClient = /** @class */ (function (_super) { else { throw new Error("Expecting non-empty strings for containerName and blobName parameters"); } - _this = _super.call(this, url, pipeline) || this; - _this.blockBlobContext = new BlockBlob(_this.storageClientContext); - _this._blobContext = new Blob$1(_this.storageClientContext); - return _this; + super(url, pipeline); + this.blockBlobContext = new BlockBlob(this.storageClientContext); + this._blobContext = new Blob$1(this.storageClientContext); } /** * Creates a new BlockBlobClient object identical to the source but with the @@ -85167,9 +83134,9 @@ var BlockBlobClient = /** @class */ (function (_super) { * @param snapshot - The snapshot timestamp. * @returns A new BlockBlobClient object identical to the source but with the specified snapshot timestamp. */ - BlockBlobClient.prototype.withSnapshot = function (snapshot) { + withSnapshot(snapshot) { return new BlockBlobClient(setURLParameter(this.url, URLConstants.Parameters.SNAPSHOT, snapshot.length === 0 ? undefined : snapshot), this.pipeline); - }; + } /** * ONLY AVAILABLE IN NODE.JS RUNTIME. * @@ -85200,47 +83167,35 @@ var BlockBlobClient = /** @class */ (function (_super) { * @param query - * @param options - */ - BlockBlobClient.prototype.query = function (query, options) { + async query(query, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, response, e_23; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - _b = createSpan("BlockBlobClient-query", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this._blobContext.query(tslib.__assign({ abortSignal: options.abortSignal, queryRequest: { - queryType: "SQL", - expression: query, - inputSerialization: toQuerySerialization(options.inputTextConfiguration), - outputSerialization: toQuerySerialization(options.outputTextConfiguration) - }, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - response = _c.sent(); - return [2 /*return*/, new BlobQueryResponse(response, { - abortSignal: options.abortSignal, - onProgress: options.onProgress, - onError: options.onError - })]; - case 3: - e_23 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_23.message - }); - throw e_23; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + const { span, updatedOptions } = createSpan("BlockBlobClient-query", options); + try { + if (false) {} + const response = await this._blobContext.query(Object.assign({ abortSignal: options.abortSignal, queryRequest: { + queryType: "SQL", + expression: query, + inputSerialization: toQuerySerialization(options.inputTextConfiguration), + outputSerialization: toQuerySerialization(options.outputTextConfiguration) + }, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions))); + return new BlobQueryResponse(response, { + abortSignal: options.abortSignal, + onProgress: options.onProgress, + onError: options.onError }); - }); - }; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message + }); + throw e; + } + finally { + span.end(); + } + } /** * Creates a new block blob, or updates the content of an existing block blob. * Updating an existing block blob overwrites any existing metadata on the blob. @@ -85268,39 +83223,27 @@ var BlockBlobClient = /** @class */ (function (_super) { * const uploadBlobResponse = await blockBlobClient.upload(content, content.length); * ``` */ - BlockBlobClient.prototype.upload = function (body, contentLength, options) { - var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_24; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - _b = createSpan("BlockBlobClient-upload", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.blockBlobContext.upload(contentLength, body, tslib.__assign({ abortSignal: options.abortSignal, blobHttpHeaders: options.blobHTTPHeaders, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), requestOptions: { - onUploadProgress: options.onProgress - }, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_24 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_24.message - }); - throw e_24; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async upload(body, contentLength, options = {}) { + var _a, _b, _c; + options.conditions = options.conditions || {}; + const { span, updatedOptions } = createSpan("BlockBlobClient-upload", options); + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.blockBlobContext.upload(contentLength, body, Object.assign({ abortSignal: options.abortSignal, blobHttpHeaders: options.blobHTTPHeaders, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), requestOptions: { + onUploadProgress: options.onProgress + }, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, immutabilityPolicyExpiry: (_b = options.immutabilityPolicy) === null || _b === void 0 ? void 0 : _b.expiriesOn, immutabilityPolicyMode: (_c = options.immutabilityPolicy) === null || _c === void 0 ? void 0 : _c.policyMode, legalHold: options.legalHold, tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Creates a new Block Blob where the contents of the blob are read from a given URL. * This API is supported beginning with the 2020-04-08 version. Partial updates @@ -85319,43 +83262,31 @@ var BlockBlobClient = /** @class */ (function (_super) { * - https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot= * @param options - Optional parameters. */ - BlockBlobClient.prototype.syncUploadFromURL = function (sourceURL, options) { + async syncUploadFromURL(sourceURL, options = {}) { var _a, _b, _c, _d, _e; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _f, span, updatedOptions, e_25; - return tslib.__generator(this, function (_g) { - switch (_g.label) { - case 0: - options.conditions = options.conditions || {}; - _f = createSpan("BlockBlobClient-syncUploadFromURL", options), span = _f.span, updatedOptions = _f.updatedOptions; - _g.label = 1; - case 1: - _g.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.blockBlobContext.putBlobFromUrl(0, sourceURL, tslib.__assign(tslib.__assign(tslib.__assign({}, options), { blobHttpHeaders: options.blobHTTPHeaders, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: options.conditions.tagConditions }), sourceModifiedAccessConditions: { - sourceIfMatch: (_a = options.sourceConditions) === null || _a === void 0 ? void 0 : _a.ifMatch, - sourceIfModifiedSince: (_b = options.sourceConditions) === null || _b === void 0 ? void 0 : _b.ifModifiedSince, - sourceIfNoneMatch: (_c = options.sourceConditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch, - sourceIfUnmodifiedSince: (_d = options.sourceConditions) === null || _d === void 0 ? void 0 : _d.ifUnmodifiedSince, - sourceIfTags: (_e = options.sourceConditions) === null || _e === void 0 ? void 0 : _e.tagConditions - }, cpkInfo: options.customerProvidedKey, tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags) }), convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _g.sent()]; - case 3: - e_25 = _g.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_25.message - }); - throw e_25; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + options.conditions = options.conditions || {}; + const { span, updatedOptions } = createSpan("BlockBlobClient-syncUploadFromURL", options); + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.blockBlobContext.putBlobFromUrl(0, sourceURL, Object.assign(Object.assign(Object.assign({}, options), { blobHttpHeaders: options.blobHTTPHeaders, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: options.conditions.tagConditions }), sourceModifiedAccessConditions: { + sourceIfMatch: (_a = options.sourceConditions) === null || _a === void 0 ? void 0 : _a.ifMatch, + sourceIfModifiedSince: (_b = options.sourceConditions) === null || _b === void 0 ? void 0 : _b.ifModifiedSince, + sourceIfNoneMatch: (_c = options.sourceConditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch, + sourceIfUnmodifiedSince: (_d = options.sourceConditions) === null || _d === void 0 ? void 0 : _d.ifUnmodifiedSince, + sourceIfTags: (_e = options.sourceConditions) === null || _e === void 0 ? void 0 : _e.tagConditions + }, cpkInfo: options.customerProvidedKey, copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization), tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags) }), convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Uploads the specified block to the block blob's "staging area" to be later * committed by a call to commitBlockList. @@ -85367,37 +83298,25 @@ var BlockBlobClient = /** @class */ (function (_super) { * @param options - Options to the Block Blob Stage Block operation. * @returns Response data for the Block Blob Stage Block operation. */ - BlockBlobClient.prototype.stageBlock = function (blockId, body, contentLength, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_26; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlockBlobClient-stageBlock", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.blockBlobContext.stageBlock(blockId, contentLength, body, tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, requestOptions: { - onUploadProgress: options.onProgress - }, transactionalContentMD5: options.transactionalContentMD5, transactionalContentCrc64: options.transactionalContentCrc64, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_26 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_26.message - }); - throw e_26; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async stageBlock(blockId, body, contentLength, options = {}) { + const { span, updatedOptions } = createSpan("BlockBlobClient-stageBlock", options); + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.blockBlobContext.stageBlock(blockId, contentLength, body, Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, requestOptions: { + onUploadProgress: options.onProgress + }, transactionalContentMD5: options.transactionalContentMD5, transactionalContentCrc64: options.transactionalContentCrc64, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * The Stage Block From URL operation creates a new block to be committed as part * of a blob where the contents are read from a URL. @@ -85419,36 +83338,23 @@ var BlockBlobClient = /** @class */ (function (_super) { * @param options - Options to the Block Blob Stage Block From URL operation. * @returns Response data for the Block Blob Stage Block From URL operation. */ - BlockBlobClient.prototype.stageBlockFromURL = function (blockId, sourceURL, offset, count, options) { - if (offset === void 0) { offset = 0; } - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_27; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlockBlobClient-stageBlockFromURL", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.blockBlobContext.stageBlockFromURL(blockId, 0, sourceURL, tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, sourceContentMD5: options.sourceContentMD5, sourceContentCrc64: options.sourceContentCrc64, sourceRange: offset === 0 && !count ? undefined : rangeToString({ offset: offset, count: count }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_27 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_27.message - }); - throw e_27; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async stageBlockFromURL(blockId, sourceURL, offset = 0, count, options = {}) { + const { span, updatedOptions } = createSpan("BlockBlobClient-stageBlockFromURL", options); + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.blockBlobContext.stageBlockFromURL(blockId, 0, sourceURL, Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, sourceContentMD5: options.sourceContentMD5, sourceContentCrc64: options.sourceContentCrc64, sourceRange: offset === 0 && !count ? undefined : rangeToString({ offset, count }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Writes a blob by specifying the list of block IDs that make up the blob. * In order to be written as part of a blob, a block must have been successfully written @@ -85461,37 +83367,25 @@ var BlockBlobClient = /** @class */ (function (_super) { * @param options - Options to the Block Blob Commit Block List operation. * @returns Response data for the Block Blob Commit Block List operation. */ - BlockBlobClient.prototype.commitBlockList = function (blocks, options) { - var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_28; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - _b = createSpan("BlockBlobClient-commitBlockList", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.blockBlobContext.commitBlockList({ latest: blocks }, tslib.__assign({ abortSignal: options.abortSignal, blobHttpHeaders: options.blobHTTPHeaders, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_28 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_28.message - }); - throw e_28; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async commitBlockList(blocks, options = {}) { + var _a, _b, _c; + options.conditions = options.conditions || {}; + const { span, updatedOptions } = createSpan("BlockBlobClient-commitBlockList", options); + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.blockBlobContext.commitBlockList({ latest: blocks }, Object.assign({ abortSignal: options.abortSignal, blobHttpHeaders: options.blobHTTPHeaders, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, immutabilityPolicyExpiry: (_b = options.immutabilityPolicy) === null || _b === void 0 ? void 0 : _b.expiriesOn, immutabilityPolicyMode: (_c = options.immutabilityPolicy) === null || _c === void 0 ? void 0 : _c.policyMode, legalHold: options.legalHold, tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Returns the list of blocks that have been uploaded as part of a block blob * using the specified block list filter. @@ -85502,43 +83396,30 @@ var BlockBlobClient = /** @class */ (function (_super) { * @param options - Options to the Block Blob Get Block List operation. * @returns Response data for the Block Blob Get Block List operation. */ - BlockBlobClient.prototype.getBlockList = function (listType, options) { + async getBlockList(listType, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, res, e_29; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("BlockBlobClient-getBlockList", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.blockBlobContext.getBlockList(listType, tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - res = _c.sent(); - if (!res.committedBlocks) { - res.committedBlocks = []; - } - if (!res.uncommittedBlocks) { - res.uncommittedBlocks = []; - } - return [2 /*return*/, res]; - case 3: - e_29 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_29.message - }); - throw e_29; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlockBlobClient-getBlockList", options); + try { + const res = await this.blockBlobContext.getBlockList(listType, Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions))); + if (!res.committedBlocks) { + res.committedBlocks = []; + } + if (!res.uncommittedBlocks) { + res.uncommittedBlocks = []; + } + return res; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } // High level functions /** * Uploads a Buffer(Node.js)/Blob(browsers)/ArrayBuffer/ArrayBufferView object to a BlockBlob. @@ -85548,45 +83429,43 @@ var BlockBlobClient = /** @class */ (function (_super) { * Otherwise, this method will call {@link stageBlock} to upload blocks, and finally call {@link commitBlockList} * to commit the block list. * + * A common {@link BlockBlobParallelUploadOptions.blobHTTPHeaders} option to set is + * `blobContentType`, enabling the browser to provide + * functionality based on file type. + * * @param data - Buffer(Node.js), Blob, ArrayBuffer or ArrayBufferView * @param options - */ - BlockBlobClient.prototype.uploadData = function (data, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, buffer_1, browserBlob_1; - return tslib.__generator(this, function (_b) { - _a = createSpan("BlockBlobClient-uploadData", options), span = _a.span, updatedOptions = _a.updatedOptions; - try { - if (true) { - if (data instanceof Buffer) { - buffer_1 = data; - } - else if (data instanceof ArrayBuffer) { - buffer_1 = Buffer.from(data); - } - else { - data = data; - buffer_1 = Buffer.from(data.buffer, data.byteOffset, data.byteLength); - } - return [2 /*return*/, this.uploadSeekableInternal(function (offset, size) { return buffer_1.slice(offset, offset + size); }, buffer_1.byteLength, updatedOptions)]; - } - else {} + async uploadData(data, options = {}) { + const { span, updatedOptions } = createSpan("BlockBlobClient-uploadData", options); + try { + if (true) { + let buffer; + if (data instanceof Buffer) { + buffer = data; } - catch (e) { - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e.message - }); - throw e; + else if (data instanceof ArrayBuffer) { + buffer = Buffer.from(data); } - finally { - span.end(); + else { + data = data; + buffer = Buffer.from(data.buffer, data.byteOffset, data.byteLength); } - return [2 /*return*/]; + return this.uploadSeekableInternal((offset, size) => buffer.slice(offset, offset + size), buffer.byteLength, updatedOptions); + } + else {} + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * ONLY AVAILABLE IN BROWSERS. * @@ -85596,41 +83475,33 @@ var BlockBlobClient = /** @class */ (function (_super) { * Otherwise, this method will call {@link stageBlock} to upload blocks, and finally call * {@link commitBlockList} to commit the block list. * + * A common {@link BlockBlobParallelUploadOptions.blobHTTPHeaders} option to set is + * `blobContentType`, enabling the browser to provide + * functionality based on file type. + * * @deprecated Use {@link uploadData} instead. * * @param browserData - Blob, File, ArrayBuffer or ArrayBufferView * @param options - Options to upload browser data. * @returns Response data for the Blob Upload operation. */ - BlockBlobClient.prototype.uploadBrowserData = function (browserData, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, browserBlob_2, e_30; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlockBlobClient-uploadBrowserData", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - browserBlob_2 = new Blob([browserData]); - return [4 /*yield*/, this.uploadSeekableInternal(function (offset, size) { return browserBlob_2.slice(offset, offset + size); }, browserBlob_2.size, updatedOptions)]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_30 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_30.message - }); - throw e_30; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async uploadBrowserData(browserData, options = {}) { + const { span, updatedOptions } = createSpan("BlockBlobClient-uploadBrowserData", options); + try { + const browserBlob = new Blob([browserData]); + return await this.uploadSeekableInternal((offset, size) => browserBlob.slice(offset, offset + size), browserBlob.size, updatedOptions); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * * Uploads data to block blob. Requires a bodyFactory as the data source, @@ -85646,115 +83517,88 @@ var BlockBlobClient = /** @class */ (function (_super) { * @param options - Options to Upload to Block Blob operation. * @returns Response data for the Blob Upload operation. */ - BlockBlobClient.prototype.uploadSeekableInternal = function (bodyFactory, size, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, numBlocks_1, blockList_1, blockIDPrefix_1, transferProgress_2, batch, _loop_2, i, e_31; - var _this = this; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - if (!options.blockSize) { - options.blockSize = 0; - } - if (options.blockSize < 0 || options.blockSize > BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES) { - throw new RangeError("blockSize option must be >= 0 and <= " + BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES); - } - if (options.maxSingleShotSize !== 0 && !options.maxSingleShotSize) { - options.maxSingleShotSize = BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES; - } - if (options.maxSingleShotSize < 0 || - options.maxSingleShotSize > BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES) { - throw new RangeError("maxSingleShotSize option must be >= 0 and <= " + BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES); - } - if (options.blockSize === 0) { - if (size > BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES * BLOCK_BLOB_MAX_BLOCKS) { - throw new RangeError(size + " is too larger to upload to a block blob."); - } - if (size > options.maxSingleShotSize) { - options.blockSize = Math.ceil(size / BLOCK_BLOB_MAX_BLOCKS); - if (options.blockSize < DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES) { - options.blockSize = DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES; - } - } - } - if (!options.blobHTTPHeaders) { - options.blobHTTPHeaders = {}; - } - if (!options.conditions) { - options.conditions = {}; - } - _a = createSpan("BlockBlobClient-uploadSeekableInternal", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 5, 6, 7]); - if (!(size <= options.maxSingleShotSize)) return [3 /*break*/, 3]; - return [4 /*yield*/, this.upload(bodyFactory(0, size), size, updatedOptions)]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - numBlocks_1 = Math.floor((size - 1) / options.blockSize) + 1; - if (numBlocks_1 > BLOCK_BLOB_MAX_BLOCKS) { - throw new RangeError("The buffer's size is too big or the BlockSize is too small;" + - ("the number of blocks must be <= " + BLOCK_BLOB_MAX_BLOCKS)); - } - blockList_1 = []; - blockIDPrefix_1 = coreHttp.generateUuid(); - transferProgress_2 = 0; - batch = new Batch(options.concurrency); - _loop_2 = function (i) { - batch.addOperation(function () { return tslib.__awaiter(_this, void 0, void 0, function () { - var blockID, start, end, contentLength; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - blockID = generateBlockID(blockIDPrefix_1, i); - start = options.blockSize * i; - end = i === numBlocks_1 - 1 ? size : start + options.blockSize; - contentLength = end - start; - blockList_1.push(blockID); - return [4 /*yield*/, this.stageBlock(blockID, bodyFactory(start, contentLength), contentLength, { - abortSignal: options.abortSignal, - conditions: options.conditions, - encryptionScope: options.encryptionScope, - tracingOptions: updatedOptions.tracingOptions - })]; - case 1: - _a.sent(); - // Update progress after block is successfully uploaded to server, in case of block trying - // TODO: Hook with convenience layer progress event in finer level - transferProgress_2 += contentLength; - if (options.onProgress) { - options.onProgress({ - loadedBytes: transferProgress_2 - }); - } - return [2 /*return*/]; - } - }); - }); }); - }; - for (i = 0; i < numBlocks_1; i++) { - _loop_2(i); - } - return [4 /*yield*/, batch.do()]; - case 4: - _b.sent(); - return [2 /*return*/, this.commitBlockList(blockList_1, updatedOptions)]; - case 5: - e_31 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_31.message - }); - throw e_31; - case 6: - span.end(); - return [7 /*endfinally*/]; - case 7: return [2 /*return*/]; + async uploadSeekableInternal(bodyFactory, size, options = {}) { + if (!options.blockSize) { + options.blockSize = 0; + } + if (options.blockSize < 0 || options.blockSize > BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES) { + throw new RangeError(`blockSize option must be >= 0 and <= ${BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES}`); + } + if (options.maxSingleShotSize !== 0 && !options.maxSingleShotSize) { + options.maxSingleShotSize = BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES; + } + if (options.maxSingleShotSize < 0 || + options.maxSingleShotSize > BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES) { + throw new RangeError(`maxSingleShotSize option must be >= 0 and <= ${BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES}`); + } + if (options.blockSize === 0) { + if (size > BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES * BLOCK_BLOB_MAX_BLOCKS) { + throw new RangeError(`${size} is too larger to upload to a block blob.`); + } + if (size > options.maxSingleShotSize) { + options.blockSize = Math.ceil(size / BLOCK_BLOB_MAX_BLOCKS); + if (options.blockSize < DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES) { + options.blockSize = DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES; } + } + } + if (!options.blobHTTPHeaders) { + options.blobHTTPHeaders = {}; + } + if (!options.conditions) { + options.conditions = {}; + } + const { span, updatedOptions } = createSpan("BlockBlobClient-uploadSeekableInternal", options); + try { + if (size <= options.maxSingleShotSize) { + return await this.upload(bodyFactory(0, size), size, updatedOptions); + } + const numBlocks = Math.floor((size - 1) / options.blockSize) + 1; + if (numBlocks > BLOCK_BLOB_MAX_BLOCKS) { + throw new RangeError(`The buffer's size is too big or the BlockSize is too small;` + + `the number of blocks must be <= ${BLOCK_BLOB_MAX_BLOCKS}`); + } + const blockList = []; + const blockIDPrefix = coreHttp.generateUuid(); + let transferProgress = 0; + const batch = new Batch(options.concurrency); + for (let i = 0; i < numBlocks; i++) { + batch.addOperation(async () => { + const blockID = generateBlockID(blockIDPrefix, i); + const start = options.blockSize * i; + const end = i === numBlocks - 1 ? size : start + options.blockSize; + const contentLength = end - start; + blockList.push(blockID); + await this.stageBlock(blockID, bodyFactory(start, contentLength), contentLength, { + abortSignal: options.abortSignal, + conditions: options.conditions, + encryptionScope: options.encryptionScope, + tracingOptions: updatedOptions.tracingOptions + }); + // Update progress after block is successfully uploaded to server, in case of block trying + // TODO: Hook with convenience layer progress event in finer level + transferProgress += contentLength; + if (options.onProgress) { + options.onProgress({ + loadedBytes: transferProgress + }); + } + }); + } + await batch.do(); + return this.commitBlockList(blockList, updatedOptions); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * ONLY AVAILABLE IN NODE.JS RUNTIME. * @@ -85768,45 +83612,29 @@ var BlockBlobClient = /** @class */ (function (_super) { * @param options - Options to Upload to Block Blob operation. * @returns Response data for the Blob Upload operation. */ - BlockBlobClient.prototype.uploadFile = function (filePath, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, size, e_32; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlockBlobClient-uploadFile", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 4, 5, 6]); - return [4 /*yield*/, fsStat(filePath)]; - case 2: - size = (_b.sent()).size; - return [4 /*yield*/, this.uploadSeekableInternal(function (offset, count) { - return function () { - return fsCreateReadStream(filePath, { - autoClose: true, - end: count ? offset + count - 1 : Infinity, - start: offset - }); - }; - }, size, tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), convertTracingToRequestOptionsBase(updatedOptions)) }))]; - case 3: return [2 /*return*/, _b.sent()]; - case 4: - e_32 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_32.message - }); - throw e_32; - case 5: - span.end(); - return [7 /*endfinally*/]; - case 6: return [2 /*return*/]; - } + async uploadFile(filePath, options = {}) { + const { span, updatedOptions } = createSpan("BlockBlobClient-uploadFile", options); + try { + const size = (await fsStat(filePath)).size; + return await this.uploadSeekableInternal((offset, count) => { + return () => fsCreateReadStream(filePath, { + autoClose: true, + end: count ? offset + count - 1 : Infinity, + start: offset + }); + }, size, Object.assign(Object.assign({}, options), { tracingOptions: Object.assign(Object.assign({}, options.tracingOptions), convertTracingToRequestOptionsBase(updatedOptions)) })); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * ONLY AVAILABLE IN NODE.JS RUNTIME. * @@ -85823,94 +83651,68 @@ var BlockBlobClient = /** @class */ (function (_super) { * @param options - Options to Upload Stream to Block Blob operation. * @returns Response data for the Blob Upload operation. */ - BlockBlobClient.prototype.uploadStream = function (stream, bufferSize, maxConcurrency, options) { - if (bufferSize === void 0) { bufferSize = DEFAULT_BLOCK_BUFFER_SIZE_BYTES; } - if (maxConcurrency === void 0) { maxConcurrency = 5; } - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, blockNum_1, blockIDPrefix_2, transferProgress_3, blockList_2, scheduler, e_33; - var _this = this; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - if (!options.blobHTTPHeaders) { - options.blobHTTPHeaders = {}; - } - if (!options.conditions) { - options.conditions = {}; - } - _a = createSpan("BlockBlobClient-uploadStream", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 4, 5, 6]); - blockNum_1 = 0; - blockIDPrefix_2 = coreHttp.generateUuid(); - transferProgress_3 = 0; - blockList_2 = []; - scheduler = new BufferScheduler(stream, bufferSize, maxConcurrency, function (body, length) { return tslib.__awaiter(_this, void 0, void 0, function () { - var blockID; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - blockID = generateBlockID(blockIDPrefix_2, blockNum_1); - blockList_2.push(blockID); - blockNum_1++; - return [4 /*yield*/, this.stageBlock(blockID, body, length, { - conditions: options.conditions, - encryptionScope: options.encryptionScope, - tracingOptions: updatedOptions.tracingOptions - })]; - case 1: - _a.sent(); - // Update progress after block is successfully uploaded to server, in case of block trying - transferProgress_3 += length; - if (options.onProgress) { - options.onProgress({ loadedBytes: transferProgress_3 }); - } - return [2 /*return*/]; - } - }); - }); }, - // concurrency should set a smaller value than maxConcurrency, which is helpful to - // reduce the possibility when a outgoing handler waits for stream data, in - // this situation, outgoing handlers are blocked. - // Outgoing queue shouldn't be empty. - Math.ceil((maxConcurrency / 4) * 3)); - return [4 /*yield*/, scheduler.do()]; - case 2: - _b.sent(); - return [4 /*yield*/, this.commitBlockList(blockList_2, tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), convertTracingToRequestOptionsBase(updatedOptions)) }))]; - case 3: return [2 /*return*/, _b.sent()]; - case 4: - e_33 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_33.message - }); - throw e_33; - case 5: - span.end(); - return [7 /*endfinally*/]; - case 6: return [2 /*return*/]; + async uploadStream(stream, bufferSize = DEFAULT_BLOCK_BUFFER_SIZE_BYTES, maxConcurrency = 5, options = {}) { + if (!options.blobHTTPHeaders) { + options.blobHTTPHeaders = {}; + } + if (!options.conditions) { + options.conditions = {}; + } + const { span, updatedOptions } = createSpan("BlockBlobClient-uploadStream", options); + try { + let blockNum = 0; + const blockIDPrefix = coreHttp.generateUuid(); + let transferProgress = 0; + const blockList = []; + const scheduler = new BufferScheduler(stream, bufferSize, maxConcurrency, async (body, length) => { + const blockID = generateBlockID(blockIDPrefix, blockNum); + blockList.push(blockID); + blockNum++; + await this.stageBlock(blockID, body, length, { + conditions: options.conditions, + encryptionScope: options.encryptionScope, + tracingOptions: updatedOptions.tracingOptions + }); + // Update progress after block is successfully uploaded to server, in case of block trying + transferProgress += length; + if (options.onProgress) { + options.onProgress({ loadedBytes: transferProgress }); } + }, + // concurrency should set a smaller value than maxConcurrency, which is helpful to + // reduce the possibility when a outgoing handler waits for stream data, in + // this situation, outgoing handlers are blocked. + // Outgoing queue shouldn't be empty. + Math.ceil((maxConcurrency / 4) * 3)); + await scheduler.do(); + return await this.commitBlockList(blockList, Object.assign(Object.assign({}, options), { tracingOptions: Object.assign(Object.assign({}, options.tracingOptions), convertTracingToRequestOptionsBase(updatedOptions)) })); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; - return BlockBlobClient; -}(BlobClient)); + throw e; + } + finally { + span.end(); + } + } +} /** * PageBlobClient defines a set of operations applicable to page blobs. */ -var PageBlobClient = /** @class */ (function (_super) { - tslib.__extends(PageBlobClient, _super); - function PageBlobClient(urlOrConnectionString, credentialOrPipelineOrContainerName, blobNameOrOptions, options) { - var _this = this; +class PageBlobClient extends BlobClient { + constructor(urlOrConnectionString, credentialOrPipelineOrContainerName, blobNameOrOptions, + // Legacy, no fix for eslint error without breaking. Disable it for this interface. + /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/ + options) { // In TypeScript we cannot simply pass all parameters to super() like below so have to duplicate the code instead. // super(s, credentialOrPipelineOrContainerNameOrOptions, blobNameOrOptions, options); - var pipeline; - var url; + let pipeline; + let url; options = options || {}; - if (credentialOrPipelineOrContainerName instanceof Pipeline) { + if (isPipelineLike(credentialOrPipelineOrContainerName)) { // (url: string, pipeline: Pipeline) url = urlOrConnectionString; pipeline = credentialOrPipelineOrContainerName; @@ -85935,12 +83737,12 @@ var PageBlobClient = /** @class */ (function (_super) { blobNameOrOptions && typeof blobNameOrOptions === "string") { // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions) - var containerName = credentialOrPipelineOrContainerName; - var blobName = blobNameOrOptions; - var extractedCreds = extractConnectionStringParts(urlOrConnectionString); + const containerName = credentialOrPipelineOrContainerName; + const blobName = blobNameOrOptions; + const extractedCreds = extractConnectionStringParts(urlOrConnectionString); if (extractedCreds.kind === "AccountConnString") { { - var sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey); + const sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey); url = appendToURLPath(appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)), encodeURIComponent(blobName)); options.proxyOptions = coreHttp.getDefaultProxySettings(extractedCreds.proxyUri); pipeline = newPipeline(sharedKeyCredential, options); @@ -85960,9 +83762,8 @@ var PageBlobClient = /** @class */ (function (_super) { else { throw new Error("Expecting non-empty strings for containerName and blobName parameters"); } - _this = _super.call(this, url, pipeline) || this; - _this.pageBlobContext = new PageBlob(_this.storageClientContext); - return _this; + super(url, pipeline); + this.pageBlobContext = new PageBlob(this.storageClientContext); } /** * Creates a new PageBlobClient object identical to the source but with the @@ -85972,9 +83773,9 @@ var PageBlobClient = /** @class */ (function (_super) { * @param snapshot - The snapshot timestamp. * @returns A new PageBlobClient object identical to the source but with the specified snapshot timestamp. */ - PageBlobClient.prototype.withSnapshot = function (snapshot) { + withSnapshot(snapshot) { return new PageBlobClient(setURLParameter(this.url, URLConstants.Parameters.SNAPSHOT, snapshot.length === 0 ? undefined : snapshot), this.pipeline); - }; + } /** * Creates a page blob of the specified length. Call uploadPages to upload data * data to a page blob. @@ -85984,37 +83785,25 @@ var PageBlobClient = /** @class */ (function (_super) { * @param options - Options to the Page Blob Create operation. * @returns Response data for the Page Blob Create operation. */ - PageBlobClient.prototype.create = function (size, options) { - var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_34; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - _b = createSpan("PageBlobClient-create", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.pageBlobContext.create(0, size, tslib.__assign({ abortSignal: options.abortSignal, blobHttpHeaders: options.blobHTTPHeaders, blobSequenceNumber: options.blobSequenceNumber, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_34 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_34.message - }); - throw e_34; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async create(size, options = {}) { + var _a, _b, _c; + options.conditions = options.conditions || {}; + const { span, updatedOptions } = createSpan("PageBlobClient-create", options); + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.pageBlobContext.create(0, size, Object.assign({ abortSignal: options.abortSignal, blobHttpHeaders: options.blobHTTPHeaders, blobSequenceNumber: options.blobSequenceNumber, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, immutabilityPolicyExpiry: (_b = options.immutabilityPolicy) === null || _b === void 0 ? void 0 : _b.expiriesOn, immutabilityPolicyMode: (_c = options.immutabilityPolicy) === null || _c === void 0 ? void 0 : _c.policyMode, legalHold: options.legalHold, tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Creates a page blob of the specified length. Call uploadPages to upload data * data to a page blob. If the blob with the same name already exists, the content @@ -86024,46 +83813,33 @@ var PageBlobClient = /** @class */ (function (_super) { * @param size - size of the page blob. * @param options - */ - PageBlobClient.prototype.createIfNotExists = function (size, options) { + async createIfNotExists(size, options = {}) { var _a, _b; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _c, span, updatedOptions, conditions, res, e_35; - return tslib.__generator(this, function (_d) { - switch (_d.label) { - case 0: - _c = createSpan("PageBlobClient-createIfNotExists", options), span = _c.span, updatedOptions = _c.updatedOptions; - _d.label = 1; - case 1: - _d.trys.push([1, 3, 4, 5]); - conditions = { ifNoneMatch: ETagAny }; - return [4 /*yield*/, this.create(size, tslib.__assign(tslib.__assign({}, options), { conditions: conditions, tracingOptions: updatedOptions.tracingOptions }))]; - case 2: - res = _d.sent(); - return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable - })]; - case 3: - e_35 = _d.sent(); - if (((_a = e_35.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "BlobAlreadyExists") { - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: "Expected exception when creating a blob only if it does not already exist." - }); - return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: false }, (_b = e_35.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e_35.response })]; - } - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_35.message - }); - throw e_35; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("PageBlobClient-createIfNotExists", options); + try { + const conditions = { ifNoneMatch: ETagAny }; + const res = await this.create(size, Object.assign(Object.assign({}, options), { conditions, tracingOptions: updatedOptions.tracingOptions })); + return Object.assign(Object.assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable + }); + } + catch (e) { + if (((_a = e.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "BlobAlreadyExists") { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: "Expected exception when creating a blob only if it does not already exist." + }); + return Object.assign(Object.assign({ succeeded: false }, (_b = e.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e.response }); + } + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Writes 1 or more pages to the page blob. The start and end offsets must be a multiple of 512. * @see https://docs.microsoft.com/rest/api/storageservices/put-page @@ -86074,39 +83850,27 @@ var PageBlobClient = /** @class */ (function (_super) { * @param options - Options to the Page Blob Upload Pages operation. * @returns Response data for the Page Blob Upload Pages operation. */ - PageBlobClient.prototype.uploadPages = function (body, offset, count, options) { + async uploadPages(body, offset, count, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_36; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - _b = createSpan("PageBlobClient-uploadPages", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.pageBlobContext.uploadPages(count, body, tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), requestOptions: { - onUploadProgress: options.onProgress - }, range: rangeToString({ offset: offset, count: count }), sequenceNumberAccessConditions: options.conditions, transactionalContentMD5: options.transactionalContentMD5, transactionalContentCrc64: options.transactionalContentCrc64, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_36 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_36.message - }); - throw e_36; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + options.conditions = options.conditions || {}; + const { span, updatedOptions } = createSpan("PageBlobClient-uploadPages", options); + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.pageBlobContext.uploadPages(count, body, Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), requestOptions: { + onUploadProgress: options.onProgress + }, range: rangeToString({ offset, count }), sequenceNumberAccessConditions: options.conditions, transactionalContentMD5: options.transactionalContentMD5, transactionalContentCrc64: options.transactionalContentCrc64, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * The Upload Pages operation writes a range of pages to a page blob where the * contents are read from a URL. @@ -86118,43 +83882,31 @@ var PageBlobClient = /** @class */ (function (_super) { * @param count - Number of bytes to be uploaded from source page blob * @param options - */ - PageBlobClient.prototype.uploadPagesFromURL = function (sourceURL, sourceOffset, destOffset, count, options) { + async uploadPagesFromURL(sourceURL, sourceOffset, destOffset, count, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_37; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - options.sourceConditions = options.sourceConditions || {}; - _b = createSpan("PageBlobClient-uploadPagesFromURL", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); - return [4 /*yield*/, this.pageBlobContext.uploadPagesFromURL(sourceURL, rangeToString({ offset: sourceOffset, count: count }), 0, rangeToString({ offset: destOffset, count: count }), tslib.__assign({ abortSignal: options.abortSignal, sourceContentMD5: options.sourceContentMD5, sourceContentCrc64: options.sourceContentCrc64, leaseAccessConditions: options.conditions, sequenceNumberAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), sourceModifiedAccessConditions: { - sourceIfMatch: options.sourceConditions.ifMatch, - sourceIfModifiedSince: options.sourceConditions.ifModifiedSince, - sourceIfNoneMatch: options.sourceConditions.ifNoneMatch, - sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince - }, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_37 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_37.message - }); - throw e_37; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + options.conditions = options.conditions || {}; + options.sourceConditions = options.sourceConditions || {}; + const { span, updatedOptions } = createSpan("PageBlobClient-uploadPagesFromURL", options); + try { + ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); + return await this.pageBlobContext.uploadPagesFromURL(sourceURL, rangeToString({ offset: sourceOffset, count }), 0, rangeToString({ offset: destOffset, count }), Object.assign({ abortSignal: options.abortSignal, sourceContentMD5: options.sourceContentMD5, sourceContentCrc64: options.sourceContentCrc64, leaseAccessConditions: options.conditions, sequenceNumberAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), sourceModifiedAccessConditions: { + sourceIfMatch: options.sourceConditions.ifMatch, + sourceIfModifiedSince: options.sourceConditions.ifModifiedSince, + sourceIfNoneMatch: options.sourceConditions.ifNoneMatch, + sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince + }, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Frees the specified pages from the page blob. * @see https://docs.microsoft.com/rest/api/storageservices/put-page @@ -86164,37 +83916,24 @@ var PageBlobClient = /** @class */ (function (_super) { * @param options - Options to the Page Blob Clear Pages operation. * @returns Response data for the Page Blob Clear Pages operation. */ - PageBlobClient.prototype.clearPages = function (offset, count, options) { + async clearPages(offset = 0, count, options = {}) { var _a; - if (offset === void 0) { offset = 0; } - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_38; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - _b = createSpan("PageBlobClient-clearPages", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.pageBlobContext.clearPages(0, tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), range: rangeToString({ offset: offset, count: count }), sequenceNumberAccessConditions: options.conditions, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_38 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_38.message - }); - throw e_38; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + options.conditions = options.conditions || {}; + const { span, updatedOptions } = createSpan("PageBlobClient-clearPages", options); + try { + return await this.pageBlobContext.clearPages(0, Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), range: rangeToString({ offset, count }), sequenceNumberAccessConditions: options.conditions, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Returns the list of valid page ranges for a page blob or snapshot of a page blob. * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges @@ -86204,39 +83943,26 @@ var PageBlobClient = /** @class */ (function (_super) { * @param options - Options to the Page Blob Get Ranges operation. * @returns Response data for the Page Blob Get Ranges operation. */ - PageBlobClient.prototype.getPageRanges = function (offset, count, options) { + async getPageRanges(offset = 0, count, options = {}) { var _a; - if (offset === void 0) { offset = 0; } - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_39; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - _b = createSpan("PageBlobClient-getPageRanges", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.pageBlobContext - .getPageRanges(tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), range: rangeToString({ offset: offset, count: count }) }, convertTracingToRequestOptionsBase(updatedOptions))) - .then(rangeResponseFromModel)]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_39 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_39.message - }); - throw e_39; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + options.conditions = options.conditions || {}; + const { span, updatedOptions } = createSpan("PageBlobClient-getPageRanges", options); + try { + return await this.pageBlobContext + .getPageRanges(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), range: rangeToString({ offset, count }) }, convertTracingToRequestOptionsBase(updatedOptions))) + .then(rangeResponseFromModel); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Gets the collection of page ranges that differ between a specified snapshot and this page blob. * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges @@ -86247,38 +83973,26 @@ var PageBlobClient = /** @class */ (function (_super) { * @param options - Options to the Page Blob Get Page Ranges Diff operation. * @returns Response data for the Page Blob Get Page Range Diff operation. */ - PageBlobClient.prototype.getPageRangesDiff = function (offset, count, prevSnapshot, options) { + async getPageRangesDiff(offset, count, prevSnapshot, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_40; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - _b = createSpan("PageBlobClient-getPageRangesDiff", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.pageBlobContext - .getPageRangesDiff(tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), prevsnapshot: prevSnapshot, range: rangeToString({ offset: offset, count: count }) }, convertTracingToRequestOptionsBase(updatedOptions))) - .then(rangeResponseFromModel)]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_40 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_40.message - }); - throw e_40; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + options.conditions = options.conditions || {}; + const { span, updatedOptions } = createSpan("PageBlobClient-getPageRangesDiff", options); + try { + return await this.pageBlobContext + .getPageRangesDiff(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), prevsnapshot: prevSnapshot, range: rangeToString({ offset, count }) }, convertTracingToRequestOptionsBase(updatedOptions))) + .then(rangeResponseFromModel); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Gets the collection of page ranges that differ between a specified snapshot and this page blob for managed disks. * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges @@ -86289,38 +84003,26 @@ var PageBlobClient = /** @class */ (function (_super) { * @param options - Options to the Page Blob Get Page Ranges Diff operation. * @returns Response data for the Page Blob Get Page Range Diff operation. */ - PageBlobClient.prototype.getPageRangesDiffForManagedDisks = function (offset, count, prevSnapshotUrl, options) { + async getPageRangesDiffForManagedDisks(offset, count, prevSnapshotUrl, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_41; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - _b = createSpan("PageBlobClient-GetPageRangesDiffForManagedDisks", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.pageBlobContext - .getPageRangesDiff(tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), prevSnapshotUrl: prevSnapshotUrl, range: rangeToString({ offset: offset, count: count }) }, convertTracingToRequestOptionsBase(updatedOptions))) - .then(rangeResponseFromModel)]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_41 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_41.message - }); - throw e_41; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + options.conditions = options.conditions || {}; + const { span, updatedOptions } = createSpan("PageBlobClient-GetPageRangesDiffForManagedDisks", options); + try { + return await this.pageBlobContext + .getPageRangesDiff(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), prevSnapshotUrl, range: rangeToString({ offset, count }) }, convertTracingToRequestOptionsBase(updatedOptions))) + .then(rangeResponseFromModel); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Resizes the page blob to the specified size (which must be a multiple of 512). * @see https://docs.microsoft.com/rest/api/storageservices/set-blob-properties @@ -86329,36 +84031,24 @@ var PageBlobClient = /** @class */ (function (_super) { * @param options - Options to the Page Blob Resize operation. * @returns Response data for the Page Blob Resize operation. */ - PageBlobClient.prototype.resize = function (size, options) { + async resize(size, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_42; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - _b = createSpan("PageBlobClient-resize", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.pageBlobContext.resize(size, tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_42 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_42.message - }); - throw e_42; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + options.conditions = options.conditions || {}; + const { span, updatedOptions } = createSpan("PageBlobClient-resize", options); + try { + return await this.pageBlobContext.resize(size, Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Sets a page blob's sequence number. * @see https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-properties @@ -86368,36 +84058,24 @@ var PageBlobClient = /** @class */ (function (_super) { * @param options - Options to the Page Blob Update Sequence Number operation. * @returns Response data for the Page Blob Update Sequence Number operation. */ - PageBlobClient.prototype.updateSequenceNumber = function (sequenceNumberAction, sequenceNumber, options) { + async updateSequenceNumber(sequenceNumberAction, sequenceNumber, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_43; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - _b = createSpan("PageBlobClient-updateSequenceNumber", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.pageBlobContext.updateSequenceNumber(sequenceNumberAction, tslib.__assign({ abortSignal: options.abortSignal, blobSequenceNumber: sequenceNumber, leaseAccessConditions: options.conditions, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_43 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_43.message - }); - throw e_43; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + options.conditions = options.conditions || {}; + const { span, updatedOptions } = createSpan("PageBlobClient-updateSequenceNumber", options); + try { + return await this.pageBlobContext.updateSequenceNumber(sequenceNumberAction, Object.assign({ abortSignal: options.abortSignal, blobSequenceNumber: sequenceNumber, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Begins an operation to start an incremental copy from one page blob's snapshot to this page blob. * The snapshot is copied such that only the differential changes between the previously @@ -86411,69 +84089,46 @@ var PageBlobClient = /** @class */ (function (_super) { * @param options - Options to the Page Blob Copy Incremental operation. * @returns Response data for the Page Blob Copy Incremental operation. */ - PageBlobClient.prototype.startCopyIncremental = function (copySource, options) { + async startCopyIncremental(copySource, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, e_44; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("PageBlobClient-startCopyIncremental", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.pageBlobContext.copyIncremental(copySource, tslib.__assign({ abortSignal: options.abortSignal, modifiedAccessConditions: tslib.__assign(tslib.__assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_44 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_44.message - }); - throw e_44; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("PageBlobClient-startCopyIncremental", options); + try { + return await this.pageBlobContext.copyIncremental(copySource, Object.assign({ abortSignal: options.abortSignal, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; - return PageBlobClient; -}(BlobClient)); + throw e; + } + finally { + span.end(); + } + } +} // Copyright (c) Microsoft Corporation. -function getBodyAsText(batchResponse) { - return tslib.__awaiter(this, void 0, void 0, function () { - var buffer, responseLength; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - buffer = Buffer.alloc(BATCH_MAX_PAYLOAD_IN_BYTES); - return [4 /*yield*/, streamToBuffer2(batchResponse.readableStreamBody, buffer)]; - case 1: - responseLength = _a.sent(); - // Slice the buffer to trim the empty ending. - buffer = buffer.slice(0, responseLength); - return [2 /*return*/, buffer.toString()]; - } - }); - }); +async function getBodyAsText(batchResponse) { + let buffer = Buffer.alloc(BATCH_MAX_PAYLOAD_IN_BYTES); + const responseLength = await streamToBuffer2(batchResponse.readableStreamBody, buffer); + // Slice the buffer to trim the empty ending. + buffer = buffer.slice(0, responseLength); + return buffer.toString(); } function utf8ByteLength(str) { return Buffer.byteLength(str); } // Copyright (c) Microsoft Corporation. -var HTTP_HEADER_DELIMITER = ": "; -var SPACE_DELIMITER = " "; -var NOT_FOUND = -1; +const HTTP_HEADER_DELIMITER = ": "; +const SPACE_DELIMITER = " "; +const NOT_FOUND = -1; /** * Util class for parsing batch response. */ -var BatchResponseParser = /** @class */ (function () { - function BatchResponseParser(batchResponse, subRequests) { +class BatchResponseParser { + constructor(batchResponse, subRequests) { if (!batchResponse || !batchResponse.contentType) { // In special case(reported), server may return invalid content-type which could not be parsed. throw new RangeError("batchResponse is malformed or doesn't contain valid content-type."); @@ -86485,129 +84140,119 @@ var BatchResponseParser = /** @class */ (function () { this.batchResponse = batchResponse; this.subRequests = subRequests; this.responseBatchBoundary = this.batchResponse.contentType.split("=")[1]; - this.perResponsePrefix = "--" + this.responseBatchBoundary + HTTP_LINE_ENDING; - this.batchResponseEnding = "--" + this.responseBatchBoundary + "--"; + this.perResponsePrefix = `--${this.responseBatchBoundary}${HTTP_LINE_ENDING}`; + this.batchResponseEnding = `--${this.responseBatchBoundary}--`; } // For example of response, please refer to https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch#response - BatchResponseParser.prototype.parseBatchResponse = function () { - return tslib.__awaiter(this, void 0, void 0, function () { - var responseBodyAsText, subResponses, subResponseCount, deserializedSubResponses, subResponsesSucceededCount, subResponsesFailedCount, index, subResponse, deserializedSubResponse, responseLines, subRespHeaderStartFound, subRespHeaderEndFound, subRespFailed, contentId, _i, responseLines_1, responseLine, tokens, tokens; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - // When logic reach here, suppose batch request has already succeeded with 202, so we can further parse - // sub request's response. - if (this.batchResponse._response.status != HTTPURLConnection.HTTP_ACCEPTED) { - throw new Error("Invalid state: batch request failed with status: '" + this.batchResponse._response.status + "'."); - } - return [4 /*yield*/, getBodyAsText(this.batchResponse)]; - case 1: - responseBodyAsText = _a.sent(); - subResponses = responseBodyAsText - .split(this.batchResponseEnding)[0] // string after ending is useless - .split(this.perResponsePrefix) - .slice(1); - subResponseCount = subResponses.length; - // Defensive coding in case of potential error parsing. - // Note: subResponseCount == 1 is special case where sub request is invalid. - // We try to prevent such cases through early validation, e.g. validate sub request count >= 1. - // While in unexpected sub request invalid case, we allow sub response to be parsed and return to user. - if (subResponseCount != this.subRequests.size && subResponseCount != 1) { - throw new Error("Invalid state: sub responses' count is not equal to sub requests' count."); - } - deserializedSubResponses = new Array(subResponseCount); - subResponsesSucceededCount = 0; - subResponsesFailedCount = 0; - // Parse sub subResponses. - for (index = 0; index < subResponseCount; index++) { - subResponse = subResponses[index]; - deserializedSubResponse = {}; - deserializedSubResponse.headers = new coreHttp.HttpHeaders(); - responseLines = subResponse.split("" + HTTP_LINE_ENDING); - subRespHeaderStartFound = false; - subRespHeaderEndFound = false; - subRespFailed = false; - contentId = NOT_FOUND; - for (_i = 0, responseLines_1 = responseLines; _i < responseLines_1.length; _i++) { - responseLine = responseLines_1[_i]; - if (!subRespHeaderStartFound) { - // Convention line to indicate content ID - if (responseLine.startsWith(HeaderConstants.CONTENT_ID)) { - contentId = parseInt(responseLine.split(HTTP_HEADER_DELIMITER)[1]); - } - // Http version line with status code indicates the start of sub request's response. - // Example: HTTP/1.1 202 Accepted - if (responseLine.startsWith(HTTP_VERSION_1_1)) { - subRespHeaderStartFound = true; - tokens = responseLine.split(SPACE_DELIMITER); - deserializedSubResponse.status = parseInt(tokens[1]); - deserializedSubResponse.statusMessage = tokens.slice(2).join(SPACE_DELIMITER); - } - continue; // Skip convention headers not specifically for sub request i.e. Content-Type: application/http and Content-ID: * - } - if (responseLine.trim() === "") { - // Sub response's header start line already found, and the first empty line indicates header end line found. - if (!subRespHeaderEndFound) { - subRespHeaderEndFound = true; - } - continue; // Skip empty line - } - // Note: when code reach here, it indicates subRespHeaderStartFound == true - if (!subRespHeaderEndFound) { - if (responseLine.indexOf(HTTP_HEADER_DELIMITER) === -1) { - // Defensive coding to prevent from missing valuable lines. - throw new Error("Invalid state: find non-empty line '" + responseLine + "' without HTTP header delimiter '" + HTTP_HEADER_DELIMITER + "'."); - } - tokens = responseLine.split(HTTP_HEADER_DELIMITER); - deserializedSubResponse.headers.set(tokens[0], tokens[1]); - if (tokens[0] === HeaderConstants.X_MS_ERROR_CODE) { - deserializedSubResponse.errorCode = tokens[1]; - subRespFailed = true; - } - } - else { - // Assemble body of sub response. - if (!deserializedSubResponse.bodyAsText) { - deserializedSubResponse.bodyAsText = ""; - } - deserializedSubResponse.bodyAsText += responseLine; - } - } // Inner for end - // The response will contain the Content-ID header for each corresponding subrequest response to use for tracking. - // The Content-IDs are set to a valid index in the subrequests we sent. In the status code 202 path, we could expect it - // to be 1-1 mapping from the [0, subRequests.size) to the Content-IDs returned. If not, we simply don't return that - // unexpected subResponse in the parsed reponse and we can always look it up in the raw response for debugging purpose. - if (contentId != NOT_FOUND && - Number.isInteger(contentId) && - contentId >= 0 && - contentId < this.subRequests.size && - deserializedSubResponses[contentId] === undefined) { - deserializedSubResponse._request = this.subRequests.get(contentId); - deserializedSubResponses[contentId] = deserializedSubResponse; - } - else { - logger.error("subResponses[" + index + "] is dropped as the Content-ID is not found or invalid, Content-ID: " + contentId); - } - if (subRespFailed) { - subResponsesFailedCount++; - } - else { - subResponsesSucceededCount++; - } - } - return [2 /*return*/, { - subResponses: deserializedSubResponses, - subResponsesSucceededCount: subResponsesSucceededCount, - subResponsesFailedCount: subResponsesFailedCount - }]; + async parseBatchResponse() { + // When logic reach here, suppose batch request has already succeeded with 202, so we can further parse + // sub request's response. + if (this.batchResponse._response.status !== HTTPURLConnection.HTTP_ACCEPTED) { + throw new Error(`Invalid state: batch request failed with status: '${this.batchResponse._response.status}'.`); + } + const responseBodyAsText = await getBodyAsText(this.batchResponse); + const subResponses = responseBodyAsText + .split(this.batchResponseEnding)[0] // string after ending is useless + .split(this.perResponsePrefix) + .slice(1); // string before first response boundary is useless + const subResponseCount = subResponses.length; + // Defensive coding in case of potential error parsing. + // Note: subResponseCount == 1 is special case where sub request is invalid. + // We try to prevent such cases through early validation, e.g. validate sub request count >= 1. + // While in unexpected sub request invalid case, we allow sub response to be parsed and return to user. + if (subResponseCount !== this.subRequests.size && subResponseCount !== 1) { + throw new Error("Invalid state: sub responses' count is not equal to sub requests' count."); + } + const deserializedSubResponses = new Array(subResponseCount); + let subResponsesSucceededCount = 0; + let subResponsesFailedCount = 0; + // Parse sub subResponses. + for (let index = 0; index < subResponseCount; index++) { + const subResponse = subResponses[index]; + const deserializedSubResponse = {}; + deserializedSubResponse.headers = new coreHttp.HttpHeaders(); + const responseLines = subResponse.split(`${HTTP_LINE_ENDING}`); + let subRespHeaderStartFound = false; + let subRespHeaderEndFound = false; + let subRespFailed = false; + let contentId = NOT_FOUND; + for (const responseLine of responseLines) { + if (!subRespHeaderStartFound) { + // Convention line to indicate content ID + if (responseLine.startsWith(HeaderConstants.CONTENT_ID)) { + contentId = parseInt(responseLine.split(HTTP_HEADER_DELIMITER)[1]); + } + // Http version line with status code indicates the start of sub request's response. + // Example: HTTP/1.1 202 Accepted + if (responseLine.startsWith(HTTP_VERSION_1_1)) { + subRespHeaderStartFound = true; + const tokens = responseLine.split(SPACE_DELIMITER); + deserializedSubResponse.status = parseInt(tokens[1]); + deserializedSubResponse.statusMessage = tokens.slice(2).join(SPACE_DELIMITER); + } + continue; // Skip convention headers not specifically for sub request i.e. Content-Type: application/http and Content-ID: * } - }); - }); - }; - return BatchResponseParser; -}()); + if (responseLine.trim() === "") { + // Sub response's header start line already found, and the first empty line indicates header end line found. + if (!subRespHeaderEndFound) { + subRespHeaderEndFound = true; + } + continue; // Skip empty line + } + // Note: when code reach here, it indicates subRespHeaderStartFound == true + if (!subRespHeaderEndFound) { + if (responseLine.indexOf(HTTP_HEADER_DELIMITER) === -1) { + // Defensive coding to prevent from missing valuable lines. + throw new Error(`Invalid state: find non-empty line '${responseLine}' without HTTP header delimiter '${HTTP_HEADER_DELIMITER}'.`); + } + // Parse headers of sub response. + const tokens = responseLine.split(HTTP_HEADER_DELIMITER); + deserializedSubResponse.headers.set(tokens[0], tokens[1]); + if (tokens[0] === HeaderConstants.X_MS_ERROR_CODE) { + deserializedSubResponse.errorCode = tokens[1]; + subRespFailed = true; + } + } + else { + // Assemble body of sub response. + if (!deserializedSubResponse.bodyAsText) { + deserializedSubResponse.bodyAsText = ""; + } + deserializedSubResponse.bodyAsText += responseLine; + } + } // Inner for end + // The response will contain the Content-ID header for each corresponding subrequest response to use for tracking. + // The Content-IDs are set to a valid index in the subrequests we sent. In the status code 202 path, we could expect it + // to be 1-1 mapping from the [0, subRequests.size) to the Content-IDs returned. If not, we simply don't return that + // unexpected subResponse in the parsed reponse and we can always look it up in the raw response for debugging purpose. + if (contentId !== NOT_FOUND && + Number.isInteger(contentId) && + contentId >= 0 && + contentId < this.subRequests.size && + deserializedSubResponses[contentId] === undefined) { + deserializedSubResponse._request = this.subRequests.get(contentId); + deserializedSubResponses[contentId] = deserializedSubResponse; + } + else { + logger.error(`subResponses[${index}] is dropped as the Content-ID is not found or invalid, Content-ID: ${contentId}`); + } + if (subRespFailed) { + subResponsesFailedCount++; + } + else { + subResponsesSucceededCount++; + } + } + return { + subResponses: deserializedSubResponses, + subResponsesSucceededCount: subResponsesSucceededCount, + subResponsesFailedCount: subResponsesFailedCount + }; + } +} // Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. var MutexLockStatus; (function (MutexLockStatus) { MutexLockStatus[MutexLockStatus["LOCKED"] = 0] = "LOCKED"; @@ -86616,82 +84261,68 @@ var MutexLockStatus; /** * An async mutex lock. */ -var Mutex = /** @class */ (function () { - function Mutex() { - } +class Mutex { /** * Lock for a specific key. If the lock has been acquired by another customer, then * will wait until getting the lock. * * @param key - lock key */ - Mutex.lock = function (key) { - return tslib.__awaiter(this, void 0, void 0, function () { - var _this = this; - return tslib.__generator(this, function (_a) { - return [2 /*return*/, new Promise(function (resolve) { - if (_this.keys[key] === undefined || _this.keys[key] === MutexLockStatus.UNLOCKED) { - _this.keys[key] = MutexLockStatus.LOCKED; - resolve(); - } - else { - _this.onUnlockEvent(key, function () { - _this.keys[key] = MutexLockStatus.LOCKED; - resolve(); - }); - } - })]; - }); + static async lock(key) { + return new Promise((resolve) => { + if (this.keys[key] === undefined || this.keys[key] === MutexLockStatus.UNLOCKED) { + this.keys[key] = MutexLockStatus.LOCKED; + resolve(); + } + else { + this.onUnlockEvent(key, () => { + this.keys[key] = MutexLockStatus.LOCKED; + resolve(); + }); + } }); - }; + } /** * Unlock a key. * * @param key - */ - Mutex.unlock = function (key) { - return tslib.__awaiter(this, void 0, void 0, function () { - var _this = this; - return tslib.__generator(this, function (_a) { - return [2 /*return*/, new Promise(function (resolve) { - if (_this.keys[key] === MutexLockStatus.LOCKED) { - _this.emitUnlockEvent(key); - } - delete _this.keys[key]; - resolve(); - })]; - }); + static async unlock(key) { + return new Promise((resolve) => { + if (this.keys[key] === MutexLockStatus.LOCKED) { + this.emitUnlockEvent(key); + } + delete this.keys[key]; + resolve(); }); - }; - Mutex.onUnlockEvent = function (key, handler) { + } + static onUnlockEvent(key, handler) { if (this.listeners[key] === undefined) { this.listeners[key] = [handler]; } else { this.listeners[key].push(handler); } - }; - Mutex.emitUnlockEvent = function (key) { - var _this = this; + } + static emitUnlockEvent(key) { if (this.listeners[key] !== undefined && this.listeners[key].length > 0) { - var handler_1 = this.listeners[key].shift(); - setImmediate(function () { - handler_1.call(_this); + const handler = this.listeners[key].shift(); + setImmediate(() => { + handler.call(this); }); } - }; - Mutex.keys = {}; - Mutex.listeners = {}; - return Mutex; -}()); + } +} +Mutex.keys = {}; +Mutex.listeners = {}; // Copyright (c) Microsoft Corporation. /** * A BlobBatch represents an aggregated set of operations on blobs. * Currently, only `delete` and `setAccessTier` are supported. */ -var BlobBatch = /** @class */ (function () { - function BlobBatch() { +class BlobBatch { + constructor() { this.batch = "batch"; this.batchRequest = new InnerBatchRequest(); } @@ -86700,203 +84331,151 @@ var BlobBatch = /** @class */ (function () { * The value must be multipart/mixed with a batch boundary. * Example: multipart/mixed; boundary=batch_a81786c8-e301-4e42-a729-a32ca24ae252 */ - BlobBatch.prototype.getMultiPartContentType = function () { + getMultiPartContentType() { return this.batchRequest.getMultipartContentType(); - }; + } /** * Get assembled HTTP request body for sub requests. */ - BlobBatch.prototype.getHttpRequestBody = function () { + getHttpRequestBody() { return this.batchRequest.getHttpRequestBody(); - }; + } /** * Get sub requests that are added into the batch request. */ - BlobBatch.prototype.getSubRequests = function () { + getSubRequests() { return this.batchRequest.getSubRequests(); - }; - BlobBatch.prototype.addSubRequestInternal = function (subRequest, assembleSubRequestFunc) { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, Mutex.lock(this.batch)]; - case 1: - _a.sent(); - _a.label = 2; - case 2: - _a.trys.push([2, , 4, 6]); - this.batchRequest.preAddSubRequest(subRequest); - return [4 /*yield*/, assembleSubRequestFunc()]; - case 3: - _a.sent(); - this.batchRequest.postAddSubRequest(subRequest); - return [3 /*break*/, 6]; - case 4: return [4 /*yield*/, Mutex.unlock(this.batch)]; - case 5: - _a.sent(); - return [7 /*endfinally*/]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - BlobBatch.prototype.setBatchType = function (batchType) { + } + async addSubRequestInternal(subRequest, assembleSubRequestFunc) { + await Mutex.lock(this.batch); + try { + this.batchRequest.preAddSubRequest(subRequest); + await assembleSubRequestFunc(); + this.batchRequest.postAddSubRequest(subRequest); + } + finally { + await Mutex.unlock(this.batch); + } + } + setBatchType(batchType) { if (!this.batchType) { this.batchType = batchType; } if (this.batchType !== batchType) { - throw new RangeError("BlobBatch only supports one operation type per batch and it already is being used for " + this.batchType + " operations."); + throw new RangeError(`BlobBatch only supports one operation type per batch and it already is being used for ${this.batchType} operations.`); } - }; - BlobBatch.prototype.deleteBlob = function (urlOrBlobClient, credentialOrOptions, options) { - return tslib.__awaiter(this, void 0, void 0, function () { - var url, credential, _a, span, updatedOptions, e_1; - var _this = this; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - if (typeof urlOrBlobClient === "string" && - ((coreHttp.isNode && credentialOrOptions instanceof StorageSharedKeyCredential) || - credentialOrOptions instanceof AnonymousCredential || - coreHttp.isTokenCredential(credentialOrOptions))) { - // First overload - url = urlOrBlobClient; - credential = credentialOrOptions; - } - else if (urlOrBlobClient instanceof BlobClient) { - // Second overload - url = urlOrBlobClient.url; - credential = urlOrBlobClient.credential; - options = credentialOrOptions; - } - else { - throw new RangeError("Invalid arguments. Either url and credential, or BlobClient need be provided."); - } - if (!options) { - options = {}; - } - _a = createSpan("BatchDeleteRequest-addSubRequest", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - this.setBatchType("delete"); - return [4 /*yield*/, this.addSubRequestInternal({ - url: url, - credential: credential - }, function () { return tslib.__awaiter(_this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, new BlobClient(url, this.batchRequest.createPipeline(credential)).delete(updatedOptions)]; - case 1: - _a.sent(); - return [2 /*return*/]; - } - }); - }); })]; - case 2: - _b.sent(); - return [3 /*break*/, 5]; - case 3: - e_1 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_1.message - }); - throw e_1; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + } + async deleteBlob(urlOrBlobClient, credentialOrOptions, options) { + let url; + let credential; + if (typeof urlOrBlobClient === "string" && + ((coreHttp.isNode && credentialOrOptions instanceof StorageSharedKeyCredential) || + credentialOrOptions instanceof AnonymousCredential || + coreHttp.isTokenCredential(credentialOrOptions))) { + // First overload + url = urlOrBlobClient; + credential = credentialOrOptions; + } + else if (urlOrBlobClient instanceof BlobClient) { + // Second overload + url = urlOrBlobClient.url; + credential = urlOrBlobClient.credential; + options = credentialOrOptions; + } + else { + throw new RangeError("Invalid arguments. Either url and credential, or BlobClient need be provided."); + } + if (!options) { + options = {}; + } + const { span, updatedOptions } = createSpan("BatchDeleteRequest-addSubRequest", options); + try { + this.setBatchType("delete"); + await this.addSubRequestInternal({ + url: url, + credential: credential + }, async () => { + await new BlobClient(url, this.batchRequest.createPipeline(credential)).delete(updatedOptions); }); - }); - }; - BlobBatch.prototype.setBlobAccessTier = function (urlOrBlobClient, credentialOrTier, tierOrOptions, options) { - return tslib.__awaiter(this, void 0, void 0, function () { - var url, credential, tier, _a, span, updatedOptions, e_2; - var _this = this; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - if (typeof urlOrBlobClient === "string" && - ((coreHttp.isNode && credentialOrTier instanceof StorageSharedKeyCredential) || - credentialOrTier instanceof AnonymousCredential || - coreHttp.isTokenCredential(credentialOrTier))) { - // First overload - url = urlOrBlobClient; - credential = credentialOrTier; - tier = tierOrOptions; - } - else if (urlOrBlobClient instanceof BlobClient) { - // Second overload - url = urlOrBlobClient.url; - credential = urlOrBlobClient.credential; - tier = credentialOrTier; - options = tierOrOptions; - } - else { - throw new RangeError("Invalid arguments. Either url and credential, or BlobClient need be provided."); - } - if (!options) { - options = {}; - } - _a = createSpan("BatchSetTierRequest-addSubRequest", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - this.setBatchType("setAccessTier"); - return [4 /*yield*/, this.addSubRequestInternal({ - url: url, - credential: credential - }, function () { return tslib.__awaiter(_this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, new BlobClient(url, this.batchRequest.createPipeline(credential)).setAccessTier(tier, updatedOptions)]; - case 1: - _a.sent(); - return [2 /*return*/]; - } - }); - }); })]; - case 2: - _b.sent(); - return [3 /*break*/, 5]; - case 3: - e_2 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_2.message - }); - throw e_2; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; - return BlobBatch; -}()); + throw e; + } + finally { + span.end(); + } + } + async setBlobAccessTier(urlOrBlobClient, credentialOrTier, tierOrOptions, options) { + let url; + let credential; + let tier; + if (typeof urlOrBlobClient === "string" && + ((coreHttp.isNode && credentialOrTier instanceof StorageSharedKeyCredential) || + credentialOrTier instanceof AnonymousCredential || + coreHttp.isTokenCredential(credentialOrTier))) { + // First overload + url = urlOrBlobClient; + credential = credentialOrTier; + tier = tierOrOptions; + } + else if (urlOrBlobClient instanceof BlobClient) { + // Second overload + url = urlOrBlobClient.url; + credential = urlOrBlobClient.credential; + tier = credentialOrTier; + options = tierOrOptions; + } + else { + throw new RangeError("Invalid arguments. Either url and credential, or BlobClient need be provided."); + } + if (!options) { + options = {}; + } + const { span, updatedOptions } = createSpan("BatchSetTierRequest-addSubRequest", options); + try { + this.setBatchType("setAccessTier"); + await this.addSubRequestInternal({ + url: url, + credential: credential + }, async () => { + await new BlobClient(url, this.batchRequest.createPipeline(credential)).setAccessTier(tier, updatedOptions); + }); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message + }); + throw e; + } + finally { + span.end(); + } + } +} /** * Inner batch request class which is responsible for assembling and serializing sub requests. * See https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch#request-body for how requests are assembled. */ -var InnerBatchRequest = /** @class */ (function () { - function InnerBatchRequest() { +class InnerBatchRequest { + constructor() { this.operationCount = 0; this.body = ""; - var tempGuid = coreHttp.generateUuid(); + const tempGuid = coreHttp.generateUuid(); // batch_{batchid} - this.boundary = "batch_" + tempGuid; + this.boundary = `batch_${tempGuid}`; // --batch_{batchid} // Content-Type: application/http // Content-Transfer-Encoding: binary - this.subRequestPrefix = "--" + this.boundary + HTTP_LINE_ENDING + HeaderConstants.CONTENT_TYPE + ": application/http" + HTTP_LINE_ENDING + HeaderConstants.CONTENT_TRANSFER_ENCODING + ": binary"; + this.subRequestPrefix = `--${this.boundary}${HTTP_LINE_ENDING}${HeaderConstants.CONTENT_TYPE}: application/http${HTTP_LINE_ENDING}${HeaderConstants.CONTENT_TRANSFER_ENCODING}: binary`; // multipart/mixed; boundary=batch_{batchid} - this.multipartContentType = "multipart/mixed; boundary=" + this.boundary; + this.multipartContentType = `multipart/mixed; boundary=${this.boundary}`; // --batch_{batchid}-- - this.batchRequestEnding = "--" + this.boundary + "--"; + this.batchRequestEnding = `--${this.boundary}--`; this.subRequests = new Map(); } /** @@ -86906,10 +84485,10 @@ var InnerBatchRequest = /** @class */ (function () { * and intercept request from going to wire. * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used. */ - InnerBatchRequest.prototype.createPipeline = function (credential) { - var isAnonymousCreds = credential instanceof AnonymousCredential; - var policyFactoryLength = 3 + (isAnonymousCreds ? 0 : 1); // [deserializationPolicy, BatchHeaderFilterPolicyFactory, (Optional)Credential, BatchRequestAssemblePolicyFactory] - var factories = new Array(policyFactoryLength); + createPipeline(credential) { + const isAnonymousCreds = credential instanceof AnonymousCredential; + const policyFactoryLength = 3 + (isAnonymousCreds ? 0 : 1); // [deserializationPolicy, BatchHeaderFilterPolicyFactory, (Optional)Credential, BatchRequestAssemblePolicyFactory] + const factories = new Array(policyFactoryLength); factories[0] = coreHttp.deserializationPolicy(); // Default deserializationPolicy is provided by protocol layer factories[1] = new BatchHeaderFilterPolicyFactory(); // Use batch header filter policy to exclude unnecessary headers if (!isAnonymousCreds) { @@ -86919,117 +84498,94 @@ var InnerBatchRequest = /** @class */ (function () { } factories[policyFactoryLength - 1] = new BatchRequestAssemblePolicyFactory(this); // Use batch assemble policy to assemble request and intercept request from going to wire return new Pipeline(factories, {}); - }; - InnerBatchRequest.prototype.appendSubRequestToBody = function (request) { + } + appendSubRequestToBody(request) { // Start to assemble sub request this.body += [ this.subRequestPrefix, - HeaderConstants.CONTENT_ID + ": " + this.operationCount, + `${HeaderConstants.CONTENT_ID}: ${this.operationCount}`, "", - request.method.toString() + " " + getURLPathAndQuery(request.url) + " " + HTTP_VERSION_1_1 + HTTP_LINE_ENDING // sub request start line with method + `${request.method.toString()} ${getURLPathAndQuery(request.url)} ${HTTP_VERSION_1_1}${HTTP_LINE_ENDING}` // sub request start line with method ].join(HTTP_LINE_ENDING); - for (var _i = 0, _a = request.headers.headersArray(); _i < _a.length; _i++) { - var header = _a[_i]; - this.body += header.name + ": " + header.value + HTTP_LINE_ENDING; + for (const header of request.headers.headersArray()) { + this.body += `${header.name}: ${header.value}${HTTP_LINE_ENDING}`; } this.body += HTTP_LINE_ENDING; // sub request's headers need be ending with an empty line // No body to assemble for current batch request support // End to assemble sub request - }; - InnerBatchRequest.prototype.preAddSubRequest = function (subRequest) { + } + preAddSubRequest(subRequest) { if (this.operationCount >= BATCH_MAX_REQUEST) { - throw new RangeError("Cannot exceed " + BATCH_MAX_REQUEST + " sub requests in a single batch"); + throw new RangeError(`Cannot exceed ${BATCH_MAX_REQUEST} sub requests in a single batch`); } // Fast fail if url for sub request is invalid - var path = getURLPath(subRequest.url); - if (!path || path == "") { - throw new RangeError("Invalid url for sub request: '" + subRequest.url + "'"); + const path = getURLPath(subRequest.url); + if (!path || path === "") { + throw new RangeError(`Invalid url for sub request: '${subRequest.url}'`); } - }; - InnerBatchRequest.prototype.postAddSubRequest = function (subRequest) { + } + postAddSubRequest(subRequest) { this.subRequests.set(this.operationCount, subRequest); this.operationCount++; - }; + } // Return the http request body with assembling the ending line to the sub request body. - InnerBatchRequest.prototype.getHttpRequestBody = function () { - return "" + this.body + this.batchRequestEnding + HTTP_LINE_ENDING; - }; - InnerBatchRequest.prototype.getMultipartContentType = function () { + getHttpRequestBody() { + return `${this.body}${this.batchRequestEnding}${HTTP_LINE_ENDING}`; + } + getMultipartContentType() { return this.multipartContentType; - }; - InnerBatchRequest.prototype.getSubRequests = function () { + } + getSubRequests() { return this.subRequests; - }; - return InnerBatchRequest; -}()); -var BatchRequestAssemblePolicy = /** @class */ (function (_super) { - tslib.__extends(BatchRequestAssemblePolicy, _super); - function BatchRequestAssemblePolicy(batchRequest, nextPolicy, options) { - var _this = _super.call(this, nextPolicy, options) || this; - _this.dummyResponse = { + } +} +class BatchRequestAssemblePolicy extends coreHttp.BaseRequestPolicy { + constructor(batchRequest, nextPolicy, options) { + super(nextPolicy, options); + this.dummyResponse = { request: new coreHttp.WebResource(), status: 200, headers: new coreHttp.HttpHeaders() }; - _this.batchRequest = batchRequest; - return _this; - } - BatchRequestAssemblePolicy.prototype.sendRequest = function (request) { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, this.batchRequest.appendSubRequestToBody(request)]; - case 1: - _a.sent(); - return [2 /*return*/, this.dummyResponse]; // Intercept request from going to wire - } - }); - }); - }; - return BatchRequestAssemblePolicy; -}(coreHttp.BaseRequestPolicy)); -var BatchRequestAssemblePolicyFactory = /** @class */ (function () { - function BatchRequestAssemblePolicyFactory(batchRequest) { this.batchRequest = batchRequest; } - BatchRequestAssemblePolicyFactory.prototype.create = function (nextPolicy, options) { + async sendRequest(request) { + await this.batchRequest.appendSubRequestToBody(request); + return this.dummyResponse; // Intercept request from going to wire + } +} +class BatchRequestAssemblePolicyFactory { + constructor(batchRequest) { + this.batchRequest = batchRequest; + } + create(nextPolicy, options) { return new BatchRequestAssemblePolicy(this.batchRequest, nextPolicy, options); - }; - return BatchRequestAssemblePolicyFactory; -}()); -var BatchHeaderFilterPolicy = /** @class */ (function (_super) { - tslib.__extends(BatchHeaderFilterPolicy, _super); - function BatchHeaderFilterPolicy(nextPolicy, options) { - return _super.call(this, nextPolicy, options) || this; } - BatchHeaderFilterPolicy.prototype.sendRequest = function (request) { - return tslib.__awaiter(this, void 0, void 0, function () { - var xMsHeaderName, _i, _a, header; - return tslib.__generator(this, function (_b) { - xMsHeaderName = ""; - for (_i = 0, _a = request.headers.headersArray(); _i < _a.length; _i++) { - header = _a[_i]; - if (iEqual(header.name, HeaderConstants.X_MS_VERSION)) { - xMsHeaderName = header.name; - } - } - if (xMsHeaderName !== "") { - request.headers.remove(xMsHeaderName); // The subrequests should not have the x-ms-version header. - } - return [2 /*return*/, this._nextPolicy.sendRequest(request)]; - }); - }); - }; - return BatchHeaderFilterPolicy; -}(coreHttp.BaseRequestPolicy)); -var BatchHeaderFilterPolicyFactory = /** @class */ (function () { - function BatchHeaderFilterPolicyFactory() { +} +class BatchHeaderFilterPolicy extends coreHttp.BaseRequestPolicy { + // The base class has a protected constructor. Adding a public one to enable constructing of this class. + /* eslint-disable-next-line @typescript-eslint/no-useless-constructor*/ + constructor(nextPolicy, options) { + super(nextPolicy, options); } - BatchHeaderFilterPolicyFactory.prototype.create = function (nextPolicy, options) { + async sendRequest(request) { + let xMsHeaderName = ""; + for (const header of request.headers.headersArray()) { + if (iEqual(header.name, HeaderConstants.X_MS_VERSION)) { + xMsHeaderName = header.name; + } + } + if (xMsHeaderName !== "") { + request.headers.remove(xMsHeaderName); // The subrequests should not have the x-ms-version header. + } + return this._nextPolicy.sendRequest(request); + } +} +class BatchHeaderFilterPolicyFactory { + create(nextPolicy, options) { return new BatchHeaderFilterPolicy(nextPolicy, options); - }; - return BatchHeaderFilterPolicyFactory; -}()); + } +} // Copyright (c) Microsoft Corporation. /** @@ -87037,10 +84593,13 @@ var BatchHeaderFilterPolicyFactory = /** @class */ (function () { * * @see https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch */ -var BlobBatchClient = /** @class */ (function () { - function BlobBatchClient(url, credentialOrPipeline, options) { - var pipeline; - if (credentialOrPipeline instanceof Pipeline) { +class BlobBatchClient { + constructor(url, credentialOrPipeline, + // Legacy, no fix for eslint error without breaking. Disable it for this interface. + /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/ + options) { + let pipeline; + if (isPipelineLike(credentialOrPipeline)) { pipeline = credentialOrPipeline; } else if (!credentialOrPipeline) { @@ -87050,8 +84609,8 @@ var BlobBatchClient = /** @class */ (function () { else { pipeline = newPipeline(credentialOrPipeline, options); } - var storageClientContext = new StorageClientContext(url, pipeline.toServiceClientOptions()); - var path = getURLPath(url); + const storageClientContext = new StorageClientContext(url, pipeline.toServiceClientOptions()); + const path = getURLPath(url); if (path && path !== "/") { // Container scoped. this.serviceOrContainerContext = new Container(storageClientContext); @@ -87064,67 +84623,39 @@ var BlobBatchClient = /** @class */ (function () { * Creates a {@link BlobBatch}. * A BlobBatch represents an aggregated set of operations on blobs. */ - BlobBatchClient.prototype.createBatch = function () { + createBatch() { return new BlobBatch(); - }; - BlobBatchClient.prototype.deleteBlobs = function (urlsOrBlobClients, credentialOrOptions, options) { - return tslib.__awaiter(this, void 0, void 0, function () { - var batch, _i, urlsOrBlobClients_1, urlOrBlobClient; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - batch = new BlobBatch(); - _i = 0, urlsOrBlobClients_1 = urlsOrBlobClients; - _a.label = 1; - case 1: - if (!(_i < urlsOrBlobClients_1.length)) return [3 /*break*/, 6]; - urlOrBlobClient = urlsOrBlobClients_1[_i]; - if (!(typeof urlOrBlobClient === "string")) return [3 /*break*/, 3]; - return [4 /*yield*/, batch.deleteBlob(urlOrBlobClient, credentialOrOptions, options)]; - case 2: - _a.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, batch.deleteBlob(urlOrBlobClient, credentialOrOptions)]; - case 4: - _a.sent(); - _a.label = 5; - case 5: - _i++; - return [3 /*break*/, 1]; - case 6: return [2 /*return*/, this.submitBatch(batch)]; - } - }); - }); - }; - BlobBatchClient.prototype.setBlobsAccessTier = function (urlsOrBlobClients, credentialOrTier, tierOrOptions, options) { - return tslib.__awaiter(this, void 0, void 0, function () { - var batch, _i, urlsOrBlobClients_2, urlOrBlobClient; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - batch = new BlobBatch(); - _i = 0, urlsOrBlobClients_2 = urlsOrBlobClients; - _a.label = 1; - case 1: - if (!(_i < urlsOrBlobClients_2.length)) return [3 /*break*/, 6]; - urlOrBlobClient = urlsOrBlobClients_2[_i]; - if (!(typeof urlOrBlobClient === "string")) return [3 /*break*/, 3]; - return [4 /*yield*/, batch.setBlobAccessTier(urlOrBlobClient, credentialOrTier, tierOrOptions, options)]; - case 2: - _a.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, batch.setBlobAccessTier(urlOrBlobClient, credentialOrTier, tierOrOptions)]; - case 4: - _a.sent(); - _a.label = 5; - case 5: - _i++; - return [3 /*break*/, 1]; - case 6: return [2 /*return*/, this.submitBatch(batch)]; - } - }); - }); - }; + } + async deleteBlobs(urlsOrBlobClients, credentialOrOptions, + // Legacy, no fix for eslint error without breaking. Disable it for this interface. + /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/ + options) { + const batch = new BlobBatch(); + for (const urlOrBlobClient of urlsOrBlobClients) { + if (typeof urlOrBlobClient === "string") { + await batch.deleteBlob(urlOrBlobClient, credentialOrOptions, options); + } + else { + await batch.deleteBlob(urlOrBlobClient, credentialOrOptions); + } + } + return this.submitBatch(batch); + } + async setBlobsAccessTier(urlsOrBlobClients, credentialOrTier, tierOrOptions, + // Legacy, no fix for eslint error without breaking. Disable it for this interface. + /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/ + options) { + const batch = new BlobBatch(); + for (const urlOrBlobClient of urlsOrBlobClients) { + if (typeof urlOrBlobClient === "string") { + await batch.setBlobAccessTier(urlOrBlobClient, credentialOrTier, tierOrOptions, options); + } + else { + await batch.setBlobAccessTier(urlOrBlobClient, credentialOrTier, tierOrOptions); + } + } + return this.submitBatch(batch); + } /** * Submit batch request which consists of multiple subrequests. * @@ -87160,69 +84691,56 @@ var BlobBatchClient = /** @class */ (function () { * @param batchRequest - A set of Delete or SetTier operations. * @param options - */ - BlobBatchClient.prototype.submitBatch = function (batchRequest, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, batchRequestBody, rawBatchResponse, batchResponseParser, responseSummary, res, e_1; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - if (!batchRequest || batchRequest.getSubRequests().size == 0) { - throw new RangeError("Batch request should contain one or more sub requests."); - } - _a = createSpan("BlobBatchClient-submitBatch", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 4, 5, 6]); - batchRequestBody = batchRequest.getHttpRequestBody(); - return [4 /*yield*/, this.serviceOrContainerContext.submitBatch(utf8ByteLength(batchRequestBody), batchRequest.getMultiPartContentType(), batchRequestBody, tslib.__assign(tslib.__assign({}, options), convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - rawBatchResponse = _b.sent(); - batchResponseParser = new BatchResponseParser(rawBatchResponse, batchRequest.getSubRequests()); - return [4 /*yield*/, batchResponseParser.parseBatchResponse()]; - case 3: - responseSummary = _b.sent(); - res = { - _response: rawBatchResponse._response, - contentType: rawBatchResponse.contentType, - errorCode: rawBatchResponse.errorCode, - requestId: rawBatchResponse.requestId, - clientRequestId: rawBatchResponse.clientRequestId, - version: rawBatchResponse.version, - subResponses: responseSummary.subResponses, - subResponsesSucceededCount: responseSummary.subResponsesSucceededCount, - subResponsesFailedCount: responseSummary.subResponsesFailedCount - }; - return [2 /*return*/, res]; - case 4: - e_1 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_1.message - }); - throw e_1; - case 5: - span.end(); - return [7 /*endfinally*/]; - case 6: return [2 /*return*/]; - } + async submitBatch(batchRequest, options = {}) { + if (!batchRequest || batchRequest.getSubRequests().size === 0) { + throw new RangeError("Batch request should contain one or more sub requests."); + } + const { span, updatedOptions } = createSpan("BlobBatchClient-submitBatch", options); + try { + const batchRequestBody = batchRequest.getHttpRequestBody(); + // ServiceSubmitBatchResponseModel and ContainerSubmitBatchResponse are compatible for now. + const rawBatchResponse = await this.serviceOrContainerContext.submitBatch(utf8ByteLength(batchRequestBody), batchRequest.getMultiPartContentType(), batchRequestBody, Object.assign(Object.assign({}, options), convertTracingToRequestOptionsBase(updatedOptions))); + // Parse the sub responses result, if logic reaches here(i.e. the batch request succeeded with status code 202). + const batchResponseParser = new BatchResponseParser(rawBatchResponse, batchRequest.getSubRequests()); + const responseSummary = await batchResponseParser.parseBatchResponse(); + const res = { + _response: rawBatchResponse._response, + contentType: rawBatchResponse.contentType, + errorCode: rawBatchResponse.errorCode, + requestId: rawBatchResponse.requestId, + clientRequestId: rawBatchResponse.clientRequestId, + version: rawBatchResponse.version, + subResponses: responseSummary.subResponses, + subResponsesSucceededCount: responseSummary.subResponsesSucceededCount, + subResponsesFailedCount: responseSummary.subResponsesFailedCount + }; + return res; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; - return BlobBatchClient; -}()); + throw e; + } + finally { + span.end(); + } + } +} /** * A ContainerClient represents a URL to the Azure Storage container allowing you to manipulate its blobs. */ -var ContainerClient = /** @class */ (function (_super) { - tslib.__extends(ContainerClient, _super); - function ContainerClient(urlOrConnectionString, credentialOrPipelineOrContainerName, options) { - var _this = this; - var pipeline; - var url; +class ContainerClient extends StorageClient { + constructor(urlOrConnectionString, credentialOrPipelineOrContainerName, + // Legacy, no fix for eslint error without breaking. Disable it for this interface. + /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/ + options) { + let pipeline; + let url; options = options || {}; - if (credentialOrPipelineOrContainerName instanceof Pipeline) { + if (isPipelineLike(credentialOrPipelineOrContainerName)) { // (url: string, pipeline: Pipeline) url = urlOrConnectionString; pipeline = credentialOrPipelineOrContainerName; @@ -87244,11 +84762,11 @@ var ContainerClient = /** @class */ (function (_super) { else if (credentialOrPipelineOrContainerName && typeof credentialOrPipelineOrContainerName === "string") { // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions) - var containerName = credentialOrPipelineOrContainerName; - var extractedCreds = extractConnectionStringParts(urlOrConnectionString); + const containerName = credentialOrPipelineOrContainerName; + const extractedCreds = extractConnectionStringParts(urlOrConnectionString); if (extractedCreds.kind === "AccountConnString") { { - var sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey); + const sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey); url = appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)); options.proxyOptions = coreHttp.getDefaultProxySettings(extractedCreds.proxyUri); pipeline = newPipeline(sharedKeyCredential, options); @@ -87268,21 +84786,16 @@ var ContainerClient = /** @class */ (function (_super) { else { throw new Error("Expecting non-empty strings for containerName parameter"); } - _this = _super.call(this, url, pipeline) || this; - _this._containerName = _this.getContainerNameFromUrl(); - _this.containerContext = new Container(_this.storageClientContext); - return _this; + super(url, pipeline); + this._containerName = this.getContainerNameFromUrl(); + this.containerContext = new Container(this.storageClientContext); + } + /** + * The name of the container. + */ + get containerName() { + return this._containerName; } - Object.defineProperty(ContainerClient.prototype, "containerName", { - /** - * The name of the container. - */ - get: function () { - return this._containerName; - }, - enumerable: false, - configurable: true - }); /** * Creates a new container under the specified account. If the container with * the same name already exists, the operation fails. @@ -87299,37 +84812,24 @@ var ContainerClient = /** @class */ (function (_super) { * console.log("Container was created successfully", createContainerResponse.requestId); * ``` */ - ContainerClient.prototype.create = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_1; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("ContainerClient-create", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.containerContext.create(tslib.__assign(tslib.__assign({}, options), convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - // Spread operator in destructuring assignments, - // this will filter out unwanted properties from the response object into result object - return [2 /*return*/, _b.sent()]; - case 3: - e_1 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_1.message - }); - throw e_1; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async create(options = {}) { + const { span, updatedOptions } = createSpan("ContainerClient-create", options); + try { + // Spread operator in destructuring assignments, + // this will filter out unwanted properties from the response object into result object + return await this.containerContext.create(Object.assign(Object.assign({}, options), convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Creates a new container under the specified account. If the container with * the same name already exists, it is not changed. @@ -87337,45 +84837,32 @@ var ContainerClient = /** @class */ (function (_super) { * * @param options - */ - ContainerClient.prototype.createIfNotExists = function (options) { + async createIfNotExists(options = {}) { var _a, _b; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _c, span, updatedOptions, res, e_2; - return tslib.__generator(this, function (_d) { - switch (_d.label) { - case 0: - _c = createSpan("ContainerClient-createIfNotExists", options), span = _c.span, updatedOptions = _c.updatedOptions; - _d.label = 1; - case 1: - _d.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.create(updatedOptions)]; - case 2: - res = _d.sent(); - return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable - })]; - case 3: - e_2 = _d.sent(); - if (((_a = e_2.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "ContainerAlreadyExists") { - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: "Expected exception when creating a container only if it does not already exist." - }); - return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: false }, (_b = e_2.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e_2.response })]; - } - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_2.message - }); - throw e_2; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("ContainerClient-createIfNotExists", options); + try { + const res = await this.create(updatedOptions); + return Object.assign(Object.assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable + }); + } + catch (e) { + if (((_a = e.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "ContainerAlreadyExists") { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: "Expected exception when creating a container only if it does not already exist." + }); + return Object.assign(Object.assign({ succeeded: false }, (_b = e.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e.response }); + } + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Returns true if the Azure container resource represented by this client exists; false otherwise. * @@ -87385,63 +84872,50 @@ var ContainerClient = /** @class */ (function (_super) { * * @param options - */ - ContainerClient.prototype.exists = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_3; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("ContainerClient-exists", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.getProperties({ - abortSignal: options.abortSignal, - tracingOptions: updatedOptions.tracingOptions - })]; - case 2: - _b.sent(); - return [2 /*return*/, true]; - case 3: - e_3 = _b.sent(); - if (e_3.statusCode === 404) { - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: "Expected exception when checking container existence" - }); - return [2 /*return*/, false]; - } - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_3.message - }); - throw e_3; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async exists(options = {}) { + const { span, updatedOptions } = createSpan("ContainerClient-exists", options); + try { + await this.getProperties({ + abortSignal: options.abortSignal, + tracingOptions: updatedOptions.tracingOptions }); - }); - }; + return true; + } + catch (e) { + if (e.statusCode === 404) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: "Expected exception when checking container existence" + }); + return false; + } + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message + }); + throw e; + } + finally { + span.end(); + } + } /** * Creates a {@link BlobClient} * * @param blobName - A blob name * @returns A new BlobClient object for the given blob name. */ - ContainerClient.prototype.getBlobClient = function (blobName) { + getBlobClient(blobName) { return new BlobClient(appendToURLPath(this.url, encodeURIComponent(blobName)), this.pipeline); - }; + } /** * Creates an {@link AppendBlobClient} * * @param blobName - An append blob name */ - ContainerClient.prototype.getAppendBlobClient = function (blobName) { + getAppendBlobClient(blobName) { return new AppendBlobClient(appendToURLPath(this.url, encodeURIComponent(blobName)), this.pipeline); - }; + } /** * Creates a {@link BlockBlobClient} * @@ -87457,17 +84931,17 @@ var ContainerClient = /** @class */ (function (_super) { * const uploadBlobResponse = await blockBlobClient.upload(content, content.length); * ``` */ - ContainerClient.prototype.getBlockBlobClient = function (blobName) { + getBlockBlobClient(blobName) { return new BlockBlobClient(appendToURLPath(this.url, encodeURIComponent(blobName)), this.pipeline); - }; + } /** * Creates a {@link PageBlobClient} * * @param blobName - A page blob name */ - ContainerClient.prototype.getPageBlobClient = function (blobName) { + getPageBlobClient(blobName) { return new PageBlobClient(appendToURLPath(this.url, encodeURIComponent(blobName)), this.pipeline); - }; + } /** * Returns all user-defined metadata and system properties for the specified * container. The data returned does not include the container's list of blobs. @@ -87480,37 +84954,25 @@ var ContainerClient = /** @class */ (function (_super) { * * @param options - Options to Container Get Properties operation. */ - ContainerClient.prototype.getProperties = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_4; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - if (!options.conditions) { - options.conditions = {}; - } - _a = createSpan("ContainerClient-getProperties", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.containerContext.getProperties(tslib.__assign(tslib.__assign({ abortSignal: options.abortSignal }, options.conditions), convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_4 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_4.message - }); - throw e_4; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async getProperties(options = {}) { + if (!options.conditions) { + options.conditions = {}; + } + const { span, updatedOptions } = createSpan("ContainerClient-getProperties", options); + try { + return await this.containerContext.getProperties(Object.assign(Object.assign({ abortSignal: options.abortSignal }, options.conditions), convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Marks the specified container for deletion. The container and any blobs * contained within it are later deleted during garbage collection. @@ -87518,37 +84980,25 @@ var ContainerClient = /** @class */ (function (_super) { * * @param options - Options to Container Delete operation. */ - ContainerClient.prototype.delete = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_5; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - if (!options.conditions) { - options.conditions = {}; - } - _a = createSpan("ContainerClient-delete", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.containerContext.delete(tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: options.conditions }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_5 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_5.message - }); - throw e_5; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async delete(options = {}) { + if (!options.conditions) { + options.conditions = {}; + } + const { span, updatedOptions } = createSpan("ContainerClient-delete", options); + try { + return await this.containerContext.delete(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: options.conditions }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Marks the specified container for deletion if it exists. The container and any blobs * contained within it are later deleted during garbage collection. @@ -87556,45 +85006,32 @@ var ContainerClient = /** @class */ (function (_super) { * * @param options - Options to Container Delete operation. */ - ContainerClient.prototype.deleteIfExists = function (options) { + async deleteIfExists(options = {}) { var _a, _b; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _c, span, updatedOptions, res, e_6; - return tslib.__generator(this, function (_d) { - switch (_d.label) { - case 0: - _c = createSpan("ContainerClient-deleteIfExists", options), span = _c.span, updatedOptions = _c.updatedOptions; - _d.label = 1; - case 1: - _d.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.delete(updatedOptions)]; - case 2: - res = _d.sent(); - return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable - })]; - case 3: - e_6 = _d.sent(); - if (((_a = e_6.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "ContainerNotFound") { - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: "Expected exception when deleting a container only if it exists." - }); - return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: false }, (_b = e_6.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e_6.response })]; - } - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_6.message - }); - throw e_6; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("ContainerClient-deleteIfExists", options); + try { + const res = await this.delete(updatedOptions); + return Object.assign(Object.assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable + }); + } + catch (e) { + if (((_a = e.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "ContainerNotFound") { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: "Expected exception when deleting a container only if it exists." + }); + return Object.assign(Object.assign({ succeeded: false }, (_b = e.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e.response }); + } + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Sets one or more user-defined name-value pairs for the specified container. * @@ -87607,40 +85044,28 @@ var ContainerClient = /** @class */ (function (_super) { * If no value provided the existing metadata will be removed. * @param options - Options to Container Set Metadata operation. */ - ContainerClient.prototype.setMetadata = function (metadata, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_7; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - if (!options.conditions) { - options.conditions = {}; - } - if (options.conditions.ifUnmodifiedSince) { - throw new RangeError("the IfUnmodifiedSince must have their default values because they are ignored by the blob service"); - } - _a = createSpan("ContainerClient-setMetadata", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.containerContext.setMetadata(tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, metadata: metadata, modifiedAccessConditions: options.conditions }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_7 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_7.message - }); - throw e_7; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async setMetadata(metadata, options = {}) { + if (!options.conditions) { + options.conditions = {}; + } + if (options.conditions.ifUnmodifiedSince) { + throw new RangeError("the IfUnmodifiedSince must have their default values because they are ignored by the blob service"); + } + const { span, updatedOptions } = createSpan("ContainerClient-setMetadata", options); + try { + return await this.containerContext.setMetadata(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, metadata, modifiedAccessConditions: options.conditions }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Gets the permissions for the specified container. The permissions indicate * whether container data may be accessed publicly. @@ -87652,70 +85077,56 @@ var ContainerClient = /** @class */ (function (_super) { * * @param options - Options to Container Get Access Policy operation. */ - ContainerClient.prototype.getAccessPolicy = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, response, res, _i, response_1, identifier, accessPolicy, e_8; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - if (!options.conditions) { - options.conditions = {}; - } - _a = createSpan("ContainerClient-getAccessPolicy", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.containerContext.getAccessPolicy(tslib.__assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - response = _b.sent(); - res = { - _response: response._response, - blobPublicAccess: response.blobPublicAccess, - date: response.date, - etag: response.etag, - errorCode: response.errorCode, - lastModified: response.lastModified, - requestId: response.requestId, - clientRequestId: response.clientRequestId, - signedIdentifiers: [], - version: response.version - }; - for (_i = 0, response_1 = response; _i < response_1.length; _i++) { - identifier = response_1[_i]; - accessPolicy = undefined; - if (identifier.accessPolicy) { - accessPolicy = { - permissions: identifier.accessPolicy.permissions - }; - if (identifier.accessPolicy.expiresOn) { - accessPolicy.expiresOn = new Date(identifier.accessPolicy.expiresOn); - } - if (identifier.accessPolicy.startsOn) { - accessPolicy.startsOn = new Date(identifier.accessPolicy.startsOn); - } - } - res.signedIdentifiers.push({ - accessPolicy: accessPolicy, - id: identifier.id - }); - } - return [2 /*return*/, res]; - case 3: - e_8 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_8.message - }); - throw e_8; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; + async getAccessPolicy(options = {}) { + if (!options.conditions) { + options.conditions = {}; + } + const { span, updatedOptions } = createSpan("ContainerClient-getAccessPolicy", options); + try { + const response = await this.containerContext.getAccessPolicy(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions }, convertTracingToRequestOptionsBase(updatedOptions))); + const res = { + _response: response._response, + blobPublicAccess: response.blobPublicAccess, + date: response.date, + etag: response.etag, + errorCode: response.errorCode, + lastModified: response.lastModified, + requestId: response.requestId, + clientRequestId: response.clientRequestId, + signedIdentifiers: [], + version: response.version + }; + for (const identifier of response) { + let accessPolicy = undefined; + if (identifier.accessPolicy) { + accessPolicy = { + permissions: identifier.accessPolicy.permissions + }; + if (identifier.accessPolicy.expiresOn) { + accessPolicy.expiresOn = new Date(identifier.accessPolicy.expiresOn); + } + if (identifier.accessPolicy.startsOn) { + accessPolicy.startsOn = new Date(identifier.accessPolicy.startsOn); + } } + res.signedIdentifiers.push({ + accessPolicy, + id: identifier.id + }); + } + return res; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Sets the permissions for the specified container. The permissions indicate * whether blobs in a container may be accessed publicly. @@ -87733,60 +85144,47 @@ var ContainerClient = /** @class */ (function (_super) { * @param containerAcl - Array of elements each having a unique Id and details of the access policy. * @param options - Options to Container Set Access Policy operation. */ - ContainerClient.prototype.setAccessPolicy = function (access, containerAcl, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, acl, _i, _b, identifier, e_9; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - options.conditions = options.conditions || {}; - _a = createSpan("ContainerClient-setAccessPolicy", options), span = _a.span, updatedOptions = _a.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - acl = []; - for (_i = 0, _b = containerAcl || []; _i < _b.length; _i++) { - identifier = _b[_i]; - acl.push({ - accessPolicy: { - expiresOn: identifier.accessPolicy.expiresOn - ? truncatedISO8061Date(identifier.accessPolicy.expiresOn) - : "", - permissions: identifier.accessPolicy.permissions, - startsOn: identifier.accessPolicy.startsOn - ? truncatedISO8061Date(identifier.accessPolicy.startsOn) - : "" - }, - id: identifier.id - }); - } - return [4 /*yield*/, this.containerContext.setAccessPolicy(tslib.__assign({ abortSignal: options.abortSignal, access: access, containerAcl: acl, leaseAccessConditions: options.conditions, modifiedAccessConditions: options.conditions }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _c.sent()]; - case 3: - e_9 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_9.message - }); - throw e_9; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async setAccessPolicy(access, containerAcl, options = {}) { + options.conditions = options.conditions || {}; + const { span, updatedOptions } = createSpan("ContainerClient-setAccessPolicy", options); + try { + const acl = []; + for (const identifier of containerAcl || []) { + acl.push({ + accessPolicy: { + expiresOn: identifier.accessPolicy.expiresOn + ? truncatedISO8061Date(identifier.accessPolicy.expiresOn) + : "", + permissions: identifier.accessPolicy.permissions, + startsOn: identifier.accessPolicy.startsOn + ? truncatedISO8061Date(identifier.accessPolicy.startsOn) + : "" + }, + id: identifier.id + }); + } + return await this.containerContext.setAccessPolicy(Object.assign({ abortSignal: options.abortSignal, access, containerAcl: acl, leaseAccessConditions: options.conditions, modifiedAccessConditions: options.conditions }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Get a {@link BlobLeaseClient} that manages leases on the container. * * @param proposeLeaseId - Initial proposed lease Id. * @returns A new BlobLeaseClient object for managing leases on the container. */ - ContainerClient.prototype.getBlobLeaseClient = function (proposeLeaseId) { + getBlobLeaseClient(proposeLeaseId) { return new BlobLeaseClient(this, proposeLeaseId); - }; + } /** * Creates a new block blob, or updates the content of an existing block blob. * @@ -87809,40 +85207,27 @@ var ContainerClient = /** @class */ (function (_super) { * @param options - Options to configure the Block Blob Upload operation. * @returns Block Blob upload response data and the corresponding BlockBlobClient instance. */ - ContainerClient.prototype.uploadBlockBlob = function (blobName, body, contentLength, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, blockBlobClient, response, e_10; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("ContainerClient-uploadBlockBlob", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - blockBlobClient = this.getBlockBlobClient(blobName); - return [4 /*yield*/, blockBlobClient.upload(body, contentLength, updatedOptions)]; - case 2: - response = _b.sent(); - return [2 /*return*/, { - blockBlobClient: blockBlobClient, - response: response - }]; - case 3: - e_10 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_10.message - }); - throw e_10; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async uploadBlockBlob(blobName, body, contentLength, options = {}) { + const { span, updatedOptions } = createSpan("ContainerClient-uploadBlockBlob", options); + try { + const blockBlobClient = this.getBlockBlobClient(blobName); + const response = await blockBlobClient.upload(body, contentLength, updatedOptions); + return { + blockBlobClient, + response + }; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Marks the specified blob or snapshot for deletion. The blob is later deleted * during garbage collection. Note that in order to delete a blob, you must delete @@ -87854,38 +85239,26 @@ var ContainerClient = /** @class */ (function (_super) { * @param options - Options to Blob Delete operation. * @returns Block blob deletion response data. */ - ContainerClient.prototype.deleteBlob = function (blobName, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, blobClient, e_11; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("ContainerClient-deleteBlob", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - blobClient = this.getBlobClient(blobName); - if (options.versionId) { - blobClient = blobClient.withVersion(options.versionId); - } - return [4 /*yield*/, blobClient.delete(updatedOptions)]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_11 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_11.message - }); - throw e_11; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async deleteBlob(blobName, options = {}) { + const { span, updatedOptions } = createSpan("ContainerClient-deleteBlob", options); + try { + let blobClient = this.getBlobClient(blobName); + if (options.versionId) { + blobClient = blobClient.withVersion(options.versionId); + } + return await blobClient.delete(updatedOptions); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * listBlobFlatSegment returns a single segment of blobs starting from the * specified Marker. Use an empty Marker to start enumeration from the beginning. @@ -87896,40 +85269,27 @@ var ContainerClient = /** @class */ (function (_super) { * @param marker - A string value that identifies the portion of the list to be returned with the next list operation. * @param options - Options to Container List Blob Flat Segment operation. */ - ContainerClient.prototype.listBlobFlatSegment = function (marker, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, response, wrappedResponse, e_12; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("ContainerClient-listBlobFlatSegment", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.containerContext.listBlobFlatSegment(tslib.__assign(tslib.__assign({ marker: marker }, options), convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - response = _b.sent(); - wrappedResponse = tslib.__assign(tslib.__assign({}, response), { _response: response._response, segment: tslib.__assign(tslib.__assign({}, response.segment), { blobItems: response.segment.blobItems.map(function (blobItemInteral) { - var blobItem = tslib.__assign(tslib.__assign({}, blobItemInteral), { tags: toTags(blobItemInteral.blobTags), objectReplicationSourceProperties: parseObjectReplicationRecord(blobItemInteral.objectReplicationMetadata) }); - return blobItem; - }) }) }); - return [2 /*return*/, wrappedResponse]; - case 3: - e_12 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_12.message - }); - throw e_12; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async listBlobFlatSegment(marker, options = {}) { + const { span, updatedOptions } = createSpan("ContainerClient-listBlobFlatSegment", options); + try { + const response = await this.containerContext.listBlobFlatSegment(Object.assign(Object.assign({ marker }, options), convertTracingToRequestOptionsBase(updatedOptions))); + const wrappedResponse = Object.assign(Object.assign({}, response), { _response: response._response, segment: Object.assign(Object.assign({}, response.segment), { blobItems: response.segment.blobItems.map((blobItemInteral) => { + const blobItem = Object.assign(Object.assign({}, blobItemInteral), { tags: toTags(blobItemInteral.blobTags), objectReplicationSourceProperties: parseObjectReplicationRecord(blobItemInteral.objectReplicationMetadata) }); + return blobItem; + }) }) }); + return wrappedResponse; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * listBlobHierarchySegment returns a single segment of blobs starting from * the specified Marker. Use an empty Marker to start enumeration from the @@ -87941,40 +85301,27 @@ var ContainerClient = /** @class */ (function (_super) { * @param marker - A string value that identifies the portion of the list to be returned with the next list operation. * @param options - Options to Container List Blob Hierarchy Segment operation. */ - ContainerClient.prototype.listBlobHierarchySegment = function (delimiter, marker, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, response, wrappedResponse, e_13; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("ContainerClient-listBlobHierarchySegment", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.containerContext.listBlobHierarchySegment(delimiter, tslib.__assign(tslib.__assign({ marker: marker }, options), convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - response = _b.sent(); - wrappedResponse = tslib.__assign(tslib.__assign({}, response), { _response: response._response, segment: tslib.__assign(tslib.__assign({}, response.segment), { blobItems: response.segment.blobItems.map(function (blobItemInteral) { - var blobItem = tslib.__assign(tslib.__assign({}, blobItemInteral), { tags: toTags(blobItemInteral.blobTags), objectReplicationSourceProperties: parseObjectReplicationRecord(blobItemInteral.objectReplicationMetadata) }); - return blobItem; - }) }) }); - return [2 /*return*/, wrappedResponse]; - case 3: - e_13 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_13.message - }); - throw e_13; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async listBlobHierarchySegment(delimiter, marker, options = {}) { + const { span, updatedOptions } = createSpan("ContainerClient-listBlobHierarchySegment", options); + try { + const response = await this.containerContext.listBlobHierarchySegment(delimiter, Object.assign(Object.assign({ marker }, options), convertTracingToRequestOptionsBase(updatedOptions))); + const wrappedResponse = Object.assign(Object.assign({}, response), { _response: response._response, segment: Object.assign(Object.assign({}, response.segment), { blobItems: response.segment.blobItems.map((blobItemInteral) => { + const blobItem = Object.assign(Object.assign({}, blobItemInteral), { tags: toTags(blobItemInteral.blobTags), objectReplicationSourceProperties: parseObjectReplicationRecord(blobItemInteral.objectReplicationMetadata) }); + return blobItem; + }) }) }); + return wrappedResponse; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Returns an AsyncIterableIterator for ContainerListBlobFlatSegmentResponse * @@ -87987,81 +85334,42 @@ var ContainerClient = /** @class */ (function (_super) { * items. The marker value is opaque to the client. * @param options - Options to list blobs operation. */ - ContainerClient.prototype.listSegments = function (marker, options) { - if (options === void 0) { options = {}; } - return tslib.__asyncGenerator(this, arguments, function listSegments_1() { - var listBlobsFlatSegmentResponse; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!(!!marker || marker === undefined)) return [3 /*break*/, 7]; - _a.label = 1; - case 1: return [4 /*yield*/, tslib.__await(this.listBlobFlatSegment(marker, options))]; - case 2: - listBlobsFlatSegmentResponse = _a.sent(); - marker = listBlobsFlatSegmentResponse.continuationToken; - return [4 /*yield*/, tslib.__await(listBlobsFlatSegmentResponse)]; - case 3: return [4 /*yield*/, tslib.__await.apply(void 0, [_a.sent()])]; - case 4: return [4 /*yield*/, _a.sent()]; - case 5: - _a.sent(); - _a.label = 6; - case 6: - if (marker) return [3 /*break*/, 1]; - _a.label = 7; - case 7: return [2 /*return*/]; - } - }); + listSegments(marker, options = {}) { + return tslib.__asyncGenerator(this, arguments, function* listSegments_1() { + let listBlobsFlatSegmentResponse; + if (!!marker || marker === undefined) { + do { + listBlobsFlatSegmentResponse = yield tslib.__await(this.listBlobFlatSegment(marker, options)); + marker = listBlobsFlatSegmentResponse.continuationToken; + yield yield tslib.__await(yield tslib.__await(listBlobsFlatSegmentResponse)); + } while (marker); + } }); - }; + } /** * Returns an AsyncIterableIterator of {@link BlobItem} objects * * @param options - Options to list blobs operation. */ - ContainerClient.prototype.listItems = function (options) { - if (options === void 0) { options = {}; } - return tslib.__asyncGenerator(this, arguments, function listItems_1() { - var marker, _a, _b, listBlobsFlatSegmentResponse, e_14_1; - var e_14, _c; - return tslib.__generator(this, function (_d) { - switch (_d.label) { - case 0: - _d.trys.push([0, 7, 8, 13]); - _a = tslib.__asyncValues(this.listSegments(marker, options)); - _d.label = 1; - case 1: return [4 /*yield*/, tslib.__await(_a.next())]; - case 2: - if (!(_b = _d.sent(), !_b.done)) return [3 /*break*/, 6]; - listBlobsFlatSegmentResponse = _b.value; - return [5 /*yield**/, tslib.__values(tslib.__asyncDelegator(tslib.__asyncValues(listBlobsFlatSegmentResponse.segment.blobItems)))]; - case 3: return [4 /*yield*/, tslib.__await.apply(void 0, [_d.sent()])]; - case 4: - _d.sent(); - _d.label = 5; - case 5: return [3 /*break*/, 1]; - case 6: return [3 /*break*/, 13]; - case 7: - e_14_1 = _d.sent(); - e_14 = { error: e_14_1 }; - return [3 /*break*/, 13]; - case 8: - _d.trys.push([8, , 11, 12]); - if (!(_b && !_b.done && (_c = _a.return))) return [3 /*break*/, 10]; - return [4 /*yield*/, tslib.__await(_c.call(_a))]; - case 9: - _d.sent(); - _d.label = 10; - case 10: return [3 /*break*/, 12]; - case 11: - if (e_14) throw e_14.error; - return [7 /*endfinally*/]; - case 12: return [7 /*endfinally*/]; - case 13: return [2 /*return*/]; + listItems(options = {}) { + return tslib.__asyncGenerator(this, arguments, function* listItems_1() { + var e_1, _a; + let marker; + try { + for (var _b = tslib.__asyncValues(this.listSegments(marker, options)), _c; _c = yield tslib.__await(_b.next()), !_c.done;) { + const listBlobsFlatSegmentResponse = _c.value; + yield tslib.__await(yield* tslib.__asyncDelegator(tslib.__asyncValues(listBlobsFlatSegmentResponse.segment.blobItems))); } - }); + } + catch (e_1_1) { e_1 = { error: e_1_1 }; } + finally { + try { + if (_c && !_c.done && (_a = _b.return)) yield tslib.__await(_a.call(_b)); + } + finally { if (e_1) throw e_1.error; } + } }); - }; + } /** * Returns an async iterable iterator to list all the blobs * under the specified account. @@ -88132,11 +85440,8 @@ var ContainerClient = /** @class */ (function (_super) { * @param options - Options to list blobs. * @returns An asyncIterableIterator that supports paging. */ - ContainerClient.prototype.listBlobsFlat = function (options) { - var _a; - var _this = this; - if (options === void 0) { options = {}; } - var include = []; + listBlobsFlat(options = {}) { + const include = []; if (options.includeCopy) { include.push("copy"); } @@ -88158,35 +85463,42 @@ var ContainerClient = /** @class */ (function (_super) { if (options.includeTags) { include.push("tags"); } + if (options.includeDeletedWithVersions) { + include.push("deletedwithversions"); + } + if (options.includeImmutabilityPolicy) { + include.push("immutabilitypolicy"); + } + if (options.includeLegalHold) { + include.push("legalhold"); + } if (options.prefix === "") { options.prefix = undefined; } - var updatedOptions = tslib.__assign(tslib.__assign({}, options), (include.length > 0 ? { include: include } : {})); + const updatedOptions = Object.assign(Object.assign({}, options), (include.length > 0 ? { include: include } : {})); // AsyncIterableIterator to iterate over blobs - var iter = this.listItems(updatedOptions); - return _a = { - /** - * The next method, part of the iteration protocol - */ - next: function () { - return iter.next(); - } + const iter = this.listItems(updatedOptions); + return { + /** + * The next method, part of the iteration protocol + */ + next() { + return iter.next(); }, /** * The connection to the async iterator, part of the iteration protocol */ - _a[Symbol.asyncIterator] = function () { + [Symbol.asyncIterator]() { return this; }, /** * Return an AsyncIterableIterator that works a page at a time */ - _a.byPage = function (settings) { - if (settings === void 0) { settings = {}; } - return _this.listSegments(settings.continuationToken, tslib.__assign({ maxPageSize: settings.maxPageSize }, updatedOptions)); - }, - _a; - }; + byPage: (settings = {}) => { + return this.listSegments(settings.continuationToken, Object.assign({ maxPageSize: settings.maxPageSize }, updatedOptions)); + } + }; + } /** * Returns an AsyncIterableIterator for ContainerListBlobHierarchySegmentResponse * @@ -88200,106 +85512,51 @@ var ContainerClient = /** @class */ (function (_super) { * items. The marker value is opaque to the client. * @param options - Options to list blobs operation. */ - ContainerClient.prototype.listHierarchySegments = function (delimiter, marker, options) { - if (options === void 0) { options = {}; } - return tslib.__asyncGenerator(this, arguments, function listHierarchySegments_1() { - var listBlobsHierarchySegmentResponse; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!(!!marker || marker === undefined)) return [3 /*break*/, 7]; - _a.label = 1; - case 1: return [4 /*yield*/, tslib.__await(this.listBlobHierarchySegment(delimiter, marker, options))]; - case 2: - listBlobsHierarchySegmentResponse = _a.sent(); - marker = listBlobsHierarchySegmentResponse.continuationToken; - return [4 /*yield*/, tslib.__await(listBlobsHierarchySegmentResponse)]; - case 3: return [4 /*yield*/, tslib.__await.apply(void 0, [_a.sent()])]; - case 4: return [4 /*yield*/, _a.sent()]; - case 5: - _a.sent(); - _a.label = 6; - case 6: - if (marker) return [3 /*break*/, 1]; - _a.label = 7; - case 7: return [2 /*return*/]; - } - }); + listHierarchySegments(delimiter, marker, options = {}) { + return tslib.__asyncGenerator(this, arguments, function* listHierarchySegments_1() { + let listBlobsHierarchySegmentResponse; + if (!!marker || marker === undefined) { + do { + listBlobsHierarchySegmentResponse = yield tslib.__await(this.listBlobHierarchySegment(delimiter, marker, options)); + marker = listBlobsHierarchySegmentResponse.continuationToken; + yield yield tslib.__await(yield tslib.__await(listBlobsHierarchySegmentResponse)); + } while (marker); + } }); - }; + } /** * Returns an AsyncIterableIterator for {@link BlobPrefix} and {@link BlobItem} objects. * * @param delimiter - The character or string used to define the virtual hierarchy * @param options - Options to list blobs operation. */ - ContainerClient.prototype.listItemsByHierarchy = function (delimiter, options) { - if (options === void 0) { options = {}; } - return tslib.__asyncGenerator(this, arguments, function listItemsByHierarchy_1() { - var marker, _a, _b, listBlobsHierarchySegmentResponse, segment, _i, _c, prefix, _d, _e, blob, e_15_1; - var e_15, _f; - return tslib.__generator(this, function (_g) { - switch (_g.label) { - case 0: - _g.trys.push([0, 14, 15, 20]); - _a = tslib.__asyncValues(this.listHierarchySegments(delimiter, marker, options)); - _g.label = 1; - case 1: return [4 /*yield*/, tslib.__await(_a.next())]; - case 2: - if (!(_b = _g.sent(), !_b.done)) return [3 /*break*/, 13]; - listBlobsHierarchySegmentResponse = _b.value; - segment = listBlobsHierarchySegmentResponse.segment; - if (!segment.blobPrefixes) return [3 /*break*/, 7]; - _i = 0, _c = segment.blobPrefixes; - _g.label = 3; - case 3: - if (!(_i < _c.length)) return [3 /*break*/, 7]; - prefix = _c[_i]; - return [4 /*yield*/, tslib.__await(tslib.__assign({ kind: "prefix" }, prefix))]; - case 4: return [4 /*yield*/, _g.sent()]; - case 5: - _g.sent(); - _g.label = 6; - case 6: - _i++; - return [3 /*break*/, 3]; - case 7: - _d = 0, _e = segment.blobItems; - _g.label = 8; - case 8: - if (!(_d < _e.length)) return [3 /*break*/, 12]; - blob = _e[_d]; - return [4 /*yield*/, tslib.__await(tslib.__assign({ kind: "blob" }, blob))]; - case 9: return [4 /*yield*/, _g.sent()]; - case 10: - _g.sent(); - _g.label = 11; - case 11: - _d++; - return [3 /*break*/, 8]; - case 12: return [3 /*break*/, 1]; - case 13: return [3 /*break*/, 20]; - case 14: - e_15_1 = _g.sent(); - e_15 = { error: e_15_1 }; - return [3 /*break*/, 20]; - case 15: - _g.trys.push([15, , 18, 19]); - if (!(_b && !_b.done && (_f = _a.return))) return [3 /*break*/, 17]; - return [4 /*yield*/, tslib.__await(_f.call(_a))]; - case 16: - _g.sent(); - _g.label = 17; - case 17: return [3 /*break*/, 19]; - case 18: - if (e_15) throw e_15.error; - return [7 /*endfinally*/]; - case 19: return [7 /*endfinally*/]; - case 20: return [2 /*return*/]; + listItemsByHierarchy(delimiter, options = {}) { + return tslib.__asyncGenerator(this, arguments, function* listItemsByHierarchy_1() { + var e_2, _a; + let marker; + try { + for (var _b = tslib.__asyncValues(this.listHierarchySegments(delimiter, marker, options)), _c; _c = yield tslib.__await(_b.next()), !_c.done;) { + const listBlobsHierarchySegmentResponse = _c.value; + const segment = listBlobsHierarchySegmentResponse.segment; + if (segment.blobPrefixes) { + for (const prefix of segment.blobPrefixes) { + yield yield tslib.__await(Object.assign({ kind: "prefix" }, prefix)); + } + } + for (const blob of segment.blobItems) { + yield yield tslib.__await(Object.assign({ kind: "blob" }, blob)); + } } - }); + } + catch (e_2_1) { e_2 = { error: e_2_1 }; } + finally { + try { + if (_c && !_c.done && (_a = _b.return)) yield tslib.__await(_a.call(_b)); + } + finally { if (e_2) throw e_2.error; } + } }); - }; + } /** * Returns an async iterable iterator to list all the blobs by hierarchy. * under the specified account. @@ -88376,14 +85633,11 @@ var ContainerClient = /** @class */ (function (_super) { * @param delimiter - The character or string used to define the virtual hierarchy * @param options - Options to list blobs operation. */ - ContainerClient.prototype.listBlobsByHierarchy = function (delimiter, options) { - var _a; - var _this = this; - if (options === void 0) { options = {}; } + listBlobsByHierarchy(delimiter, options = {}) { if (delimiter === "") { throw new RangeError("delimiter should contain one or more characters"); } - var include = []; + const include = []; if (options.includeCopy) { include.push("copy"); } @@ -88405,48 +85659,51 @@ var ContainerClient = /** @class */ (function (_super) { if (options.includeTags) { include.push("tags"); } + if (options.includeDeletedWithVersions) { + include.push("deletedwithversions"); + } + if (options.includeImmutabilityPolicy) { + include.push("immutabilitypolicy"); + } + if (options.includeLegalHold) { + include.push("legalhold"); + } if (options.prefix === "") { options.prefix = undefined; } - var updatedOptions = tslib.__assign(tslib.__assign({}, options), (include.length > 0 ? { include: include } : {})); + const updatedOptions = Object.assign(Object.assign({}, options), (include.length > 0 ? { include: include } : {})); // AsyncIterableIterator to iterate over blob prefixes and blobs - var iter = this.listItemsByHierarchy(delimiter, updatedOptions); - return _a = { - /** - * The next method, part of the iteration protocol - */ - next: function () { - return tslib.__awaiter(this, void 0, void 0, function () { - return tslib.__generator(this, function (_a) { - return [2 /*return*/, iter.next()]; - }); - }); - } + const iter = this.listItemsByHierarchy(delimiter, updatedOptions); + return { + /** + * The next method, part of the iteration protocol + */ + async next() { + return iter.next(); }, /** * The connection to the async iterator, part of the iteration protocol */ - _a[Symbol.asyncIterator] = function () { + [Symbol.asyncIterator]() { return this; }, /** * Return an AsyncIterableIterator that works a page at a time */ - _a.byPage = function (settings) { - if (settings === void 0) { settings = {}; } - return _this.listHierarchySegments(delimiter, settings.continuationToken, tslib.__assign({ maxPageSize: settings.maxPageSize }, updatedOptions)); - }, - _a; - }; - ContainerClient.prototype.getContainerNameFromUrl = function () { - var containerName; + byPage: (settings = {}) => { + return this.listHierarchySegments(delimiter, settings.continuationToken, Object.assign({ maxPageSize: settings.maxPageSize }, updatedOptions)); + } + }; + } + getContainerNameFromUrl() { + let containerName; try { // URL may look like the following // "https://myaccount.blob.core.windows.net/mycontainer?sasString"; // "https://myaccount.blob.core.windows.net/mycontainer"; // IPv4/IPv6 address hosts, Endpoints - `http://127.0.0.1:10000/devstoreaccount1/containername` // http://localhost:10001/devstoreaccount1/containername - var parsedUrl = coreHttp.URLBuilder.parse(this.url); + const parsedUrl = coreHttp.URLBuilder.parse(this.url); if (parsedUrl.getHost().split(".")[1] === "blob") { // "https://myaccount.blob.core.windows.net/containername". // "https://customdomain.com/containername". @@ -88474,7 +85731,7 @@ var ContainerClient = /** @class */ (function (_super) { catch (error) { throw new Error("Unable to extract containerName with provided information."); } - }; + } /** * Only available for ContainerClient constructed with a shared key credential. * @@ -88486,16 +85743,15 @@ var ContainerClient = /** @class */ (function (_super) { * @param options - Optional parameters. * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token. */ - ContainerClient.prototype.generateSasUrl = function (options) { - var _this = this; - return new Promise(function (resolve) { - if (!(_this.credential instanceof StorageSharedKeyCredential)) { + generateSasUrl(options) { + return new Promise((resolve) => { + if (!(this.credential instanceof StorageSharedKeyCredential)) { throw new RangeError("Can only generate the SAS when the client is initialized with a shared key credential"); } - var sas = generateBlobSASQueryParameters(tslib.__assign({ containerName: _this._containerName }, options), _this.credential).toString(); - resolve(appendToURLQuery(_this.url, sas)); + const sas = generateBlobSASQueryParameters(Object.assign({ containerName: this._containerName }, options), this.credential).toString(); + resolve(appendToURLQuery(this.url, sas)); }); - }; + } /** * Creates a BlobBatchClient object to conduct batch operations. * @@ -88503,11 +85759,10 @@ var ContainerClient = /** @class */ (function (_super) { * * @returns A new BlobBatchClient object for this container. */ - ContainerClient.prototype.getBlobBatchClient = function () { + getBlobBatchClient() { return new BlobBatchClient(this.url, this.pipeline); - }; - return ContainerClient; -}(StorageClient)); + } +} // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. @@ -88520,8 +85775,8 @@ var ContainerClient = /** @class */ (function (_super) { * {@link AccountSASSignatureValues} object. It is possible to construct the permissions string without this class, but * the order of the permissions is particular and this class guarantees correctness. */ -var AccountSASPermissions = /** @class */ (function () { - function AccountSASPermissions() { +class AccountSASPermissions { + constructor() { /** * Permission to read resources and list queues and tables granted. */ @@ -88566,16 +85821,19 @@ var AccountSASPermissions = /** @class */ (function () { * Permission to filter blobs. */ this.filter = false; + /** + * Permission to set immutability policy. + */ + this.setImmutabilityPolicy = false; } /** * Parse initializes the AccountSASPermissions fields from a string. * * @param permissions - */ - AccountSASPermissions.parse = function (permissions) { - var accountSASPermissions = new AccountSASPermissions(); - for (var _i = 0, permissions_1 = permissions; _i < permissions_1.length; _i++) { - var c = permissions_1[_i]; + static parse(permissions) { + const accountSASPermissions = new AccountSASPermissions(); + for (const c of permissions) { switch (c) { case "r": accountSASPermissions.read = true; @@ -88610,20 +85868,23 @@ var AccountSASPermissions = /** @class */ (function () { case "f": accountSASPermissions.filter = true; break; + case "i": + accountSASPermissions.setImmutabilityPolicy = true; + break; default: - throw new RangeError("Invalid permission character: " + c); + throw new RangeError(`Invalid permission character: ${c}`); } } return accountSASPermissions; - }; + } /** * Creates a {@link AccountSASPermissions} from a raw object which contains same keys as it * and boolean values for them. * * @param permissionLike - */ - AccountSASPermissions.from = function (permissionLike) { - var accountSASPermissions = new AccountSASPermissions(); + static from(permissionLike) { + const accountSASPermissions = new AccountSASPermissions(); if (permissionLike.read) { accountSASPermissions.read = true; } @@ -88657,8 +85918,11 @@ var AccountSASPermissions = /** @class */ (function () { if (permissionLike.process) { accountSASPermissions.process = true; } + if (permissionLike.setImmutabilityPolicy) { + accountSASPermissions.setImmutabilityPolicy = true; + } return accountSASPermissions; - }; + } /** * Produces the SAS permissions string for an Azure Storage account. * Call this method to set AccountSASSignatureValues Permissions field. @@ -88669,11 +85933,11 @@ var AccountSASPermissions = /** @class */ (function () { * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas * */ - AccountSASPermissions.prototype.toString = function () { + toString() { // The order of the characters should be as specified here to ensure correctness: // https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas // Use a string array instead of string concatenating += operator for performance - var permissions = []; + const permissions = []; if (this.read) { permissions.push("r"); } @@ -88707,10 +85971,12 @@ var AccountSASPermissions = /** @class */ (function () { if (this.process) { permissions.push("p"); } + if (this.setImmutabilityPolicy) { + permissions.push("i"); + } return permissions.join(""); - }; - return AccountSASPermissions; -}()); + } +} // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. @@ -88723,8 +85989,8 @@ var AccountSASPermissions = /** @class */ (function () { * {@link AccountSASSignatureValues} object. It is possible to construct the resources string without this class, but * the order of the resources is particular and this class guarantees correctness. */ -var AccountSASResourceTypes = /** @class */ (function () { - function AccountSASResourceTypes() { +class AccountSASResourceTypes { + constructor() { /** * Permission to access service level APIs granted. */ @@ -88744,10 +86010,9 @@ var AccountSASResourceTypes = /** @class */ (function () { * * @param resourceTypes - */ - AccountSASResourceTypes.parse = function (resourceTypes) { - var accountSASResourceTypes = new AccountSASResourceTypes(); - for (var _i = 0, resourceTypes_1 = resourceTypes; _i < resourceTypes_1.length; _i++) { - var c = resourceTypes_1[_i]; + static parse(resourceTypes) { + const accountSASResourceTypes = new AccountSASResourceTypes(); + for (const c of resourceTypes) { switch (c) { case "s": accountSASResourceTypes.service = true; @@ -88759,19 +86024,19 @@ var AccountSASResourceTypes = /** @class */ (function () { accountSASResourceTypes.object = true; break; default: - throw new RangeError("Invalid resource type: " + c); + throw new RangeError(`Invalid resource type: ${c}`); } } return accountSASResourceTypes; - }; + } /** * Converts the given resource types to a string. * * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas * */ - AccountSASResourceTypes.prototype.toString = function () { - var resourceTypes = []; + toString() { + const resourceTypes = []; if (this.service) { resourceTypes.push("s"); } @@ -88782,9 +86047,8 @@ var AccountSASResourceTypes = /** @class */ (function () { resourceTypes.push("o"); } return resourceTypes.join(""); - }; - return AccountSASResourceTypes; -}()); + } +} // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. @@ -88797,8 +86061,8 @@ var AccountSASResourceTypes = /** @class */ (function () { * {@link AccountSASSignatureValues} object. It is possible to construct the services string without this class, but * the order of the services is particular and this class guarantees correctness. */ -var AccountSASServices = /** @class */ (function () { - function AccountSASServices() { +class AccountSASServices { + constructor() { /** * Permission to access blob resources granted. */ @@ -88822,10 +86086,9 @@ var AccountSASServices = /** @class */ (function () { * * @param services - */ - AccountSASServices.parse = function (services) { - var accountSASServices = new AccountSASServices(); - for (var _i = 0, services_1 = services; _i < services_1.length; _i++) { - var c = services_1[_i]; + static parse(services) { + const accountSASServices = new AccountSASServices(); + for (const c of services) { switch (c) { case "b": accountSASServices.blob = true; @@ -88840,17 +86103,17 @@ var AccountSASServices = /** @class */ (function () { accountSASServices.table = true; break; default: - throw new RangeError("Invalid service character: " + c); + throw new RangeError(`Invalid service character: ${c}`); } } return accountSASServices; - }; + } /** * Converts the given services to a string. * */ - AccountSASServices.prototype.toString = function () { - var services = []; + toString() { + const services = []; if (this.blob) { services.push("b"); } @@ -88864,9 +86127,8 @@ var AccountSASServices = /** @class */ (function () { services.push("f"); } return services.join(""); - }; - return AccountSASServices; -}()); + } +} // Copyright (c) Microsoft Corporation. /** @@ -88881,9 +86143,14 @@ var AccountSASServices = /** @class */ (function () { * @param sharedKeyCredential - */ function generateAccountSASQueryParameters(accountSASSignatureValues, sharedKeyCredential) { - var version = accountSASSignatureValues.version + const version = accountSASSignatureValues.version ? accountSASSignatureValues.version : SERVICE_VERSION; + if (accountSASSignatureValues.permissions && + accountSASSignatureValues.permissions.setImmutabilityPolicy && + version < "2020-08-04") { + throw RangeError("'version' must be >= '2020-08-04' when provided 'i' permission."); + } if (accountSASSignatureValues.permissions && accountSASSignatureValues.permissions.deleteVersion && version < "2019-10-10") { @@ -88899,10 +86166,10 @@ function generateAccountSASQueryParameters(accountSASSignatureValues, sharedKeyC version < "2019-12-12") { throw RangeError("'version' must be >= '2019-12-12' when provided 'f' permission."); } - var parsedPermissions = AccountSASPermissions.parse(accountSASSignatureValues.permissions.toString()); - var parsedServices = AccountSASServices.parse(accountSASSignatureValues.services).toString(); - var parsedResourceTypes = AccountSASResourceTypes.parse(accountSASSignatureValues.resourceTypes).toString(); - var stringToSign = [ + const parsedPermissions = AccountSASPermissions.parse(accountSASSignatureValues.permissions.toString()); + const parsedServices = AccountSASServices.parse(accountSASSignatureValues.services).toString(); + const parsedResourceTypes = AccountSASResourceTypes.parse(accountSASSignatureValues.resourceTypes).toString(); + const stringToSign = [ sharedKeyCredential.accountName, parsedPermissions, parsedServices, @@ -88916,7 +86183,7 @@ function generateAccountSASQueryParameters(accountSASSignatureValues, sharedKeyC version, "" // Account SAS requires an additional newline character ].join("\n"); - var signature = sharedKeyCredential.computeHMACSHA256(stringToSign); + const signature = sharedKeyCredential.computeHMACSHA256(stringToSign); return new SASQueryParameters(version, signature, parsedPermissions.toString(), parsedServices, parsedResourceTypes, accountSASSignatureValues.protocol, accountSASSignatureValues.startsOn, accountSASSignatureValues.expiresOn, accountSASSignatureValues.ipRange); } @@ -88924,12 +86191,13 @@ function generateAccountSASQueryParameters(accountSASSignatureValues, sharedKeyC * A BlobServiceClient represents a Client to the Azure Storage Blob service allowing you * to manipulate blob containers. */ -var BlobServiceClient = /** @class */ (function (_super) { - tslib.__extends(BlobServiceClient, _super); - function BlobServiceClient(url, credentialOrPipeline, options) { - var _this = this; - var pipeline; - if (credentialOrPipeline instanceof Pipeline) { +class BlobServiceClient extends StorageClient { + constructor(url, credentialOrPipeline, + // Legacy, no fix for eslint error without breaking. Disable it for this interface. + /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/ + options) { + let pipeline; + if (isPipelineLike(credentialOrPipeline)) { pipeline = credentialOrPipeline; } else if ((coreHttp.isNode && credentialOrPipeline instanceof StorageSharedKeyCredential) || @@ -88941,9 +86209,8 @@ var BlobServiceClient = /** @class */ (function (_super) { // The second parameter is undefined. Use anonymous credential pipeline = newPipeline(new AnonymousCredential(), options); } - _this = _super.call(this, url, pipeline) || this; - _this.serviceContext = new Service(_this.storageClientContext); - return _this; + super(url, pipeline); + this.serviceContext = new Service(this.storageClientContext); } /** * @@ -88957,25 +86224,28 @@ var BlobServiceClient = /** @class */ (function (_super) { * `BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString` * @param options - Optional. Options to configure the HTTP pipeline. */ - BlobServiceClient.fromConnectionString = function (connectionString, options) { + static fromConnectionString(connectionString, + // Legacy, no fix for eslint error without breaking. Disable it for this interface. + /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/ + options) { options = options || {}; - var extractedCreds = extractConnectionStringParts(connectionString); + const extractedCreds = extractConnectionStringParts(connectionString); if (extractedCreds.kind === "AccountConnString") { { - var sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey); + const sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey); options.proxyOptions = coreHttp.getDefaultProxySettings(extractedCreds.proxyUri); - var pipeline = newPipeline(sharedKeyCredential, options); + const pipeline = newPipeline(sharedKeyCredential, options); return new BlobServiceClient(extractedCreds.url, pipeline); } } else if (extractedCreds.kind === "SASConnString") { - var pipeline = newPipeline(new AnonymousCredential(), options); + const pipeline = newPipeline(new AnonymousCredential(), options); return new BlobServiceClient(extractedCreds.url + "?" + extractedCreds.accountSas, pipeline); } else { throw new Error("Connection string must be either an Account connection string or a SAS connection string"); } - }; + } /** * Creates a {@link ContainerClient} object * @@ -88988,9 +86258,9 @@ var BlobServiceClient = /** @class */ (function (_super) { * const containerClient = blobServiceClient.getContainerClient(""); * ``` */ - BlobServiceClient.prototype.getContainerClient = function (containerName) { + getContainerClient(containerName) { return new ContainerClient(appendToURLPath(this.url, encodeURIComponent(containerName)), this.pipeline); - }; + } /** * Create a Blob container. * @@ -88998,40 +86268,27 @@ var BlobServiceClient = /** @class */ (function (_super) { * @param options - Options to configure Container Create operation. * @returns Container creation response and the corresponding container client. */ - BlobServiceClient.prototype.createContainer = function (containerName, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, containerClient, containerCreateResponse, e_1; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobServiceClient-createContainer", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - containerClient = this.getContainerClient(containerName); - return [4 /*yield*/, containerClient.create(updatedOptions)]; - case 2: - containerCreateResponse = _b.sent(); - return [2 /*return*/, { - containerClient: containerClient, - containerCreateResponse: containerCreateResponse - }]; - case 3: - e_1 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_1.message - }); - throw e_1; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async createContainer(containerName, options = {}) { + const { span, updatedOptions } = createSpan("BlobServiceClient-createContainer", options); + try { + const containerClient = this.getContainerClient(containerName); + const containerCreateResponse = await containerClient.create(updatedOptions); + return { + containerClient, + containerCreateResponse + }; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Deletes a Blob container. * @@ -89039,35 +86296,23 @@ var BlobServiceClient = /** @class */ (function (_super) { * @param options - Options to configure Container Delete operation. * @returns Container deletion response. */ - BlobServiceClient.prototype.deleteContainer = function (containerName, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, containerClient, e_2; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobServiceClient-deleteContainer", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - containerClient = this.getContainerClient(containerName); - return [4 /*yield*/, containerClient.delete(updatedOptions)]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_2 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_2.message - }); - throw e_2; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async deleteContainer(containerName, options = {}) { + const { span, updatedOptions } = createSpan("BlobServiceClient-deleteContainer", options); + try { + const containerClient = this.getContainerClient(containerName); + return await containerClient.delete(updatedOptions); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Restore a previously deleted Blob container. * This API is only functional if Container Soft Delete is enabled for the storage account associated with the container. @@ -89077,39 +86322,27 @@ var BlobServiceClient = /** @class */ (function (_super) { * @param options - Options to configure Container Restore operation. * @returns Container deletion response. */ - BlobServiceClient.prototype.undeleteContainer = function (deletedContainerName, deletedContainerVersion, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, containerClient, containerContext, containerUndeleteResponse, e_3; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobServiceClient-undeleteContainer", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - containerClient = this.getContainerClient(options.destinationContainerName || deletedContainerName); - containerContext = new Container(containerClient["storageClientContext"]); - return [4 /*yield*/, containerContext.restore(tslib.__assign({ deletedContainerName: deletedContainerName, - deletedContainerVersion: deletedContainerVersion }, updatedOptions))]; - case 2: - containerUndeleteResponse = _b.sent(); - return [2 /*return*/, { containerClient: containerClient, containerUndeleteResponse: containerUndeleteResponse }]; - case 3: - e_3 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_3.message - }); - throw e_3; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async undeleteContainer(deletedContainerName, deletedContainerVersion, options = {}) { + const { span, updatedOptions } = createSpan("BlobServiceClient-undeleteContainer", options); + try { + const containerClient = this.getContainerClient(options.destinationContainerName || deletedContainerName); + // Hack to access a protected member. + const containerContext = new Container(containerClient["storageClientContext"]); + const containerUndeleteResponse = await containerContext.restore(Object.assign({ deletedContainerName, + deletedContainerVersion }, updatedOptions)); + return { containerClient, containerUndeleteResponse }; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Rename an existing Blob Container. * @@ -89117,40 +86350,29 @@ var BlobServiceClient = /** @class */ (function (_super) { * @param destinationContainerName - The new name of the container. * @param options - Options to configure Container Rename operation. */ + /* eslint-disable-next-line @typescript-eslint/ban-ts-comment */ // @ts-ignore Need to hide this interface for now. Make it public and turn on the live tests for it when the service is ready. - BlobServiceClient.prototype.renameContainer = function (sourceContainerName, destinationContainerName, options) { + async renameContainer(sourceContainerName, destinationContainerName, options = {}) { var _a; - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _b, span, updatedOptions, containerClient, containerContext, containerRenameResponse, e_4; - return tslib.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = createSpan("BlobServiceClient-renameContainer", options), span = _b.span, updatedOptions = _b.updatedOptions; - _c.label = 1; - case 1: - _c.trys.push([1, 3, 4, 5]); - containerClient = this.getContainerClient(destinationContainerName); - containerContext = new Container(containerClient["storageClientContext"]); - return [4 /*yield*/, containerContext.rename(sourceContainerName, tslib.__assign(tslib.__assign({}, updatedOptions), { sourceLeaseId: (_a = options.sourceCondition) === null || _a === void 0 ? void 0 : _a.leaseId }))]; - case 2: - containerRenameResponse = _c.sent(); - return [2 /*return*/, { containerClient: containerClient, containerRenameResponse: containerRenameResponse }]; - case 3: - e_4 = _c.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_4.message - }); - throw e_4; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + const { span, updatedOptions } = createSpan("BlobServiceClient-renameContainer", options); + try { + const containerClient = this.getContainerClient(destinationContainerName); + // Hack to access a protected member. + const containerContext = new Container(containerClient["storageClientContext"]); + const containerRenameResponse = await containerContext.rename(sourceContainerName, Object.assign(Object.assign({}, updatedOptions), { sourceLeaseId: (_a = options.sourceCondition) === null || _a === void 0 ? void 0 : _a.leaseId })); + return { containerClient, containerRenameResponse }; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Gets the properties of a storage account’s Blob service, including properties * for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. @@ -89159,34 +86381,22 @@ var BlobServiceClient = /** @class */ (function (_super) { * @param options - Options to the Service Get Properties operation. * @returns Response data for the Service Get Properties operation. */ - BlobServiceClient.prototype.getProperties = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_5; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobServiceClient-getProperties", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.serviceContext.getProperties(tslib.__assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_5 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_5.message - }); - throw e_5; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async getProperties(options = {}) { + const { span, updatedOptions } = createSpan("BlobServiceClient-getProperties", options); + try { + return await this.serviceContext.getProperties(Object.assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Sets properties for a storage account’s Blob service endpoint, including properties * for Storage Analytics, CORS (Cross-Origin Resource Sharing) rules and soft delete settings. @@ -89196,34 +86406,22 @@ var BlobServiceClient = /** @class */ (function (_super) { * @param options - Options to the Service Set Properties operation. * @returns Response data for the Service Set Properties operation. */ - BlobServiceClient.prototype.setProperties = function (properties, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_6; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobServiceClient-setProperties", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.serviceContext.setProperties(properties, tslib.__assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_6 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_6.message - }); - throw e_6; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async setProperties(properties, options = {}) { + const { span, updatedOptions } = createSpan("BlobServiceClient-setProperties", options); + try { + return await this.serviceContext.setProperties(properties, Object.assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Retrieves statistics related to replication for the Blob service. It is only * available on the secondary location endpoint when read-access geo-redundant @@ -89233,34 +86431,22 @@ var BlobServiceClient = /** @class */ (function (_super) { * @param options - Options to the Service Get Statistics operation. * @returns Response data for the Service Get Statistics operation. */ - BlobServiceClient.prototype.getStatistics = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_7; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobServiceClient-getStatistics", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.serviceContext.getStatistics(tslib.__assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_7 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_7.message - }); - throw e_7; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async getStatistics(options = {}) { + const { span, updatedOptions } = createSpan("BlobServiceClient-getStatistics", options); + try { + return await this.serviceContext.getStatistics(Object.assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * The Get Account Information operation returns the sku name and account kind * for the specified account. @@ -89271,34 +86457,22 @@ var BlobServiceClient = /** @class */ (function (_super) { * @param options - Options to the Service Get Account Info operation. * @returns Response data for the Service Get Account Info operation. */ - BlobServiceClient.prototype.getAccountInfo = function (options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_8; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobServiceClient-getAccountInfo", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.serviceContext.getAccountInfo(tslib.__assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_8 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_8.message - }); - throw e_8; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async getAccountInfo(options = {}) { + const { span, updatedOptions } = createSpan("BlobServiceClient-getAccountInfo", options); + try { + return await this.serviceContext.getAccountInfo(Object.assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Returns a list of the containers under the specified account. * @see https://docs.microsoft.com/en-us/rest/api/storageservices/list-containers2 @@ -89313,34 +86487,22 @@ var BlobServiceClient = /** @class */ (function (_super) { * @param options - Options to the Service List Container Segment operation. * @returns Response data for the Service List Container Segment operation. */ - BlobServiceClient.prototype.listContainersSegment = function (marker, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, e_9; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobServiceClient-listContainersSegment", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.serviceContext.listContainersSegment(tslib.__assign(tslib.__assign(tslib.__assign({ abortSignal: options.abortSignal, marker: marker }, options), { include: typeof options.include === "string" ? [options.include] : options.include }), convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: return [2 /*return*/, _b.sent()]; - case 3: - e_9 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_9.message - }); - throw e_9; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async listContainersSegment(marker, options = {}) { + const { span, updatedOptions } = createSpan("BlobServiceClient-listContainersSegment", options); + try { + return await this.serviceContext.listContainersSegment(Object.assign(Object.assign(Object.assign({ abortSignal: options.abortSignal, marker }, options), { include: typeof options.include === "string" ? [options.include] : options.include }), convertTracingToRequestOptionsBase(updatedOptions))); + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * The Filter Blobs operation enables callers to list blobs across all containers whose tags * match a given search expression. Filter blobs searches across all containers within a @@ -89359,44 +86521,31 @@ var BlobServiceClient = /** @class */ (function (_super) { * items. The marker value is opaque to the client. * @param options - Options to find blobs by tags. */ - BlobServiceClient.prototype.findBlobsByTagsSegment = function (tagFilterSqlExpression, marker, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, response, wrappedResponse, e_10; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobServiceClient-findBlobsByTagsSegment", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.serviceContext.filterBlobs(tslib.__assign({ abortSignal: options.abortSignal, where: tagFilterSqlExpression, marker: marker, maxPageSize: options.maxPageSize }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - response = _b.sent(); - wrappedResponse = tslib.__assign(tslib.__assign({}, response), { _response: response._response, blobs: response.blobs.map(function (blob) { - var _a; - var tagValue = ""; - if (((_a = blob.tags) === null || _a === void 0 ? void 0 : _a.blobTagSet.length) === 1) { - tagValue = blob.tags.blobTagSet[0].value; - } - return tslib.__assign(tslib.__assign({}, blob), { tags: toTags(blob.tags), tagValue: tagValue }); - }) }); - return [2 /*return*/, wrappedResponse]; - case 3: - e_10 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_10.message - }); - throw e_10; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async findBlobsByTagsSegment(tagFilterSqlExpression, marker, options = {}) { + const { span, updatedOptions } = createSpan("BlobServiceClient-findBlobsByTagsSegment", options); + try { + const response = await this.serviceContext.filterBlobs(Object.assign({ abortSignal: options.abortSignal, where: tagFilterSqlExpression, marker, maxPageSize: options.maxPageSize }, convertTracingToRequestOptionsBase(updatedOptions))); + const wrappedResponse = Object.assign(Object.assign({}, response), { _response: response._response, blobs: response.blobs.map((blob) => { + var _a; + let tagValue = ""; + if (((_a = blob.tags) === null || _a === void 0 ? void 0 : _a.blobTagSet.length) === 1) { + tagValue = blob.tags.blobTagSet[0].value; + } + return Object.assign(Object.assign({}, blob), { tags: toTags(blob.tags), tagValue }); + }) }); + return wrappedResponse; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Returns an AsyncIterableIterator for ServiceFindBlobsByTagsSegmentResponse. * @@ -89413,33 +86562,19 @@ var BlobServiceClient = /** @class */ (function (_super) { * items. The marker value is opaque to the client. * @param options - Options to find blobs by tags. */ - BlobServiceClient.prototype.findBlobsByTagsSegments = function (tagFilterSqlExpression, marker, options) { - if (options === void 0) { options = {}; } - return tslib.__asyncGenerator(this, arguments, function findBlobsByTagsSegments_1() { - var response; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!(!!marker || marker === undefined)) return [3 /*break*/, 6]; - _a.label = 1; - case 1: return [4 /*yield*/, tslib.__await(this.findBlobsByTagsSegment(tagFilterSqlExpression, marker, options))]; - case 2: - response = _a.sent(); - response.blobs = response.blobs || []; - marker = response.continuationToken; - return [4 /*yield*/, tslib.__await(response)]; - case 3: return [4 /*yield*/, _a.sent()]; - case 4: - _a.sent(); - _a.label = 5; - case 5: - if (marker) return [3 /*break*/, 1]; - _a.label = 6; - case 6: return [2 /*return*/]; - } - }); + findBlobsByTagsSegments(tagFilterSqlExpression, marker, options = {}) { + return tslib.__asyncGenerator(this, arguments, function* findBlobsByTagsSegments_1() { + let response; + if (!!marker || marker === undefined) { + do { + response = yield tslib.__await(this.findBlobsByTagsSegment(tagFilterSqlExpression, marker, options)); + response.blobs = response.blobs || []; + marker = response.continuationToken; + yield yield tslib.__await(response); + } while (marker); + } }); - }; + } /** * Returns an AsyncIterableIterator for blobs. * @@ -89449,49 +86584,25 @@ var BlobServiceClient = /** @class */ (function (_super) { * however, only a subset of the OData filter syntax is supported in the Blob service. * @param options - Options to findBlobsByTagsItems. */ - BlobServiceClient.prototype.findBlobsByTagsItems = function (tagFilterSqlExpression, options) { - if (options === void 0) { options = {}; } - return tslib.__asyncGenerator(this, arguments, function findBlobsByTagsItems_1() { - var marker, _a, _b, segment, e_11_1; - var e_11, _c; - return tslib.__generator(this, function (_d) { - switch (_d.label) { - case 0: - _d.trys.push([0, 7, 8, 13]); - _a = tslib.__asyncValues(this.findBlobsByTagsSegments(tagFilterSqlExpression, marker, options)); - _d.label = 1; - case 1: return [4 /*yield*/, tslib.__await(_a.next())]; - case 2: - if (!(_b = _d.sent(), !_b.done)) return [3 /*break*/, 6]; - segment = _b.value; - return [5 /*yield**/, tslib.__values(tslib.__asyncDelegator(tslib.__asyncValues(segment.blobs)))]; - case 3: return [4 /*yield*/, tslib.__await.apply(void 0, [_d.sent()])]; - case 4: - _d.sent(); - _d.label = 5; - case 5: return [3 /*break*/, 1]; - case 6: return [3 /*break*/, 13]; - case 7: - e_11_1 = _d.sent(); - e_11 = { error: e_11_1 }; - return [3 /*break*/, 13]; - case 8: - _d.trys.push([8, , 11, 12]); - if (!(_b && !_b.done && (_c = _a.return))) return [3 /*break*/, 10]; - return [4 /*yield*/, tslib.__await(_c.call(_a))]; - case 9: - _d.sent(); - _d.label = 10; - case 10: return [3 /*break*/, 12]; - case 11: - if (e_11) throw e_11.error; - return [7 /*endfinally*/]; - case 12: return [7 /*endfinally*/]; - case 13: return [2 /*return*/]; + findBlobsByTagsItems(tagFilterSqlExpression, options = {}) { + return tslib.__asyncGenerator(this, arguments, function* findBlobsByTagsItems_1() { + var e_1, _a; + let marker; + try { + for (var _b = tslib.__asyncValues(this.findBlobsByTagsSegments(tagFilterSqlExpression, marker, options)), _c; _c = yield tslib.__await(_b.next()), !_c.done;) { + const segment = _c.value; + yield tslib.__await(yield* tslib.__asyncDelegator(tslib.__asyncValues(segment.blobs))); } - }); + } + catch (e_1_1) { e_1 = { error: e_1_1 }; } + finally { + try { + if (_c && !_c.done && (_a = _b.return)) yield tslib.__await(_a.call(_b)); + } + finally { if (e_1) throw e_1.error; } + } }); - }; + } /** * Returns an async iterable iterator to find all blobs with specified tag * under the specified account. @@ -89571,36 +86682,31 @@ var BlobServiceClient = /** @class */ (function (_super) { * however, only a subset of the OData filter syntax is supported in the Blob service. * @param options - Options to find blobs by tags. */ - BlobServiceClient.prototype.findBlobsByTags = function (tagFilterSqlExpression, options) { - var _a; - var _this = this; - if (options === void 0) { options = {}; } + findBlobsByTags(tagFilterSqlExpression, options = {}) { // AsyncIterableIterator to iterate over blobs - var listSegmentOptions = tslib.__assign({}, options); - var iter = this.findBlobsByTagsItems(tagFilterSqlExpression, listSegmentOptions); - return _a = { - /** - * The next method, part of the iteration protocol - */ - next: function () { - return iter.next(); - } + const listSegmentOptions = Object.assign({}, options); + const iter = this.findBlobsByTagsItems(tagFilterSqlExpression, listSegmentOptions); + return { + /** + * The next method, part of the iteration protocol + */ + next() { + return iter.next(); }, /** * The connection to the async iterator, part of the iteration protocol */ - _a[Symbol.asyncIterator] = function () { + [Symbol.asyncIterator]() { return this; }, /** * Return an AsyncIterableIterator that works a page at a time */ - _a.byPage = function (settings) { - if (settings === void 0) { settings = {}; } - return _this.findBlobsByTagsSegments(tagFilterSqlExpression, settings.continuationToken, tslib.__assign({ maxPageSize: settings.maxPageSize }, listSegmentOptions)); - }, - _a; - }; + byPage: (settings = {}) => { + return this.findBlobsByTagsSegments(tagFilterSqlExpression, settings.continuationToken, Object.assign({ maxPageSize: settings.maxPageSize }, listSegmentOptions)); + } + }; + } /** * Returns an AsyncIterableIterator for ServiceListContainersSegmentResponses * @@ -89613,83 +86719,44 @@ var BlobServiceClient = /** @class */ (function (_super) { * items. The marker value is opaque to the client. * @param options - Options to list containers operation. */ - BlobServiceClient.prototype.listSegments = function (marker, options) { - if (options === void 0) { options = {}; } - return tslib.__asyncGenerator(this, arguments, function listSegments_1() { - var listContainersSegmentResponse; - return tslib.__generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!(!!marker || marker === undefined)) return [3 /*break*/, 7]; - _a.label = 1; - case 1: return [4 /*yield*/, tslib.__await(this.listContainersSegment(marker, options))]; - case 2: - listContainersSegmentResponse = _a.sent(); - listContainersSegmentResponse.containerItems = - listContainersSegmentResponse.containerItems || []; - marker = listContainersSegmentResponse.continuationToken; - return [4 /*yield*/, tslib.__await(listContainersSegmentResponse)]; - case 3: return [4 /*yield*/, tslib.__await.apply(void 0, [_a.sent()])]; - case 4: return [4 /*yield*/, _a.sent()]; - case 5: - _a.sent(); - _a.label = 6; - case 6: - if (marker) return [3 /*break*/, 1]; - _a.label = 7; - case 7: return [2 /*return*/]; - } - }); + listSegments(marker, options = {}) { + return tslib.__asyncGenerator(this, arguments, function* listSegments_1() { + let listContainersSegmentResponse; + if (!!marker || marker === undefined) { + do { + listContainersSegmentResponse = yield tslib.__await(this.listContainersSegment(marker, options)); + listContainersSegmentResponse.containerItems = + listContainersSegmentResponse.containerItems || []; + marker = listContainersSegmentResponse.continuationToken; + yield yield tslib.__await(yield tslib.__await(listContainersSegmentResponse)); + } while (marker); + } }); - }; + } /** * Returns an AsyncIterableIterator for Container Items * * @param options - Options to list containers operation. */ - BlobServiceClient.prototype.listItems = function (options) { - if (options === void 0) { options = {}; } - return tslib.__asyncGenerator(this, arguments, function listItems_1() { - var marker, _a, _b, segment, e_12_1; - var e_12, _c; - return tslib.__generator(this, function (_d) { - switch (_d.label) { - case 0: - _d.trys.push([0, 7, 8, 13]); - _a = tslib.__asyncValues(this.listSegments(marker, options)); - _d.label = 1; - case 1: return [4 /*yield*/, tslib.__await(_a.next())]; - case 2: - if (!(_b = _d.sent(), !_b.done)) return [3 /*break*/, 6]; - segment = _b.value; - return [5 /*yield**/, tslib.__values(tslib.__asyncDelegator(tslib.__asyncValues(segment.containerItems)))]; - case 3: return [4 /*yield*/, tslib.__await.apply(void 0, [_d.sent()])]; - case 4: - _d.sent(); - _d.label = 5; - case 5: return [3 /*break*/, 1]; - case 6: return [3 /*break*/, 13]; - case 7: - e_12_1 = _d.sent(); - e_12 = { error: e_12_1 }; - return [3 /*break*/, 13]; - case 8: - _d.trys.push([8, , 11, 12]); - if (!(_b && !_b.done && (_c = _a.return))) return [3 /*break*/, 10]; - return [4 /*yield*/, tslib.__await(_c.call(_a))]; - case 9: - _d.sent(); - _d.label = 10; - case 10: return [3 /*break*/, 12]; - case 11: - if (e_12) throw e_12.error; - return [7 /*endfinally*/]; - case 12: return [7 /*endfinally*/]; - case 13: return [2 /*return*/]; + listItems(options = {}) { + return tslib.__asyncGenerator(this, arguments, function* listItems_1() { + var e_2, _a; + let marker; + try { + for (var _b = tslib.__asyncValues(this.listSegments(marker, options)), _c; _c = yield tslib.__await(_b.next()), !_c.done;) { + const segment = _c.value; + yield tslib.__await(yield* tslib.__asyncDelegator(tslib.__asyncValues(segment.containerItems))); } - }); + } + catch (e_2_1) { e_2 = { error: e_2_1 }; } + finally { + try { + if (_c && !_c.done && (_a = _b.return)) yield tslib.__await(_a.call(_b)); + } + finally { if (e_2) throw e_2.error; } + } }); - }; + } /** * Returns an async iterable iterator to list all the containers * under the specified account. @@ -89764,14 +86831,11 @@ var BlobServiceClient = /** @class */ (function (_super) { * @param options - Options to list containers. * @returns An asyncIterableIterator that supports paging. */ - BlobServiceClient.prototype.listContainers = function (options) { - var _a; - var _this = this; - if (options === void 0) { options = {}; } + listContainers(options = {}) { if (options.prefix === "") { options.prefix = undefined; } - var include = []; + const include = []; if (options.includeDeleted) { include.push("deleted"); } @@ -89779,31 +86843,29 @@ var BlobServiceClient = /** @class */ (function (_super) { include.push("metadata"); } // AsyncIterableIterator to iterate over containers - var listSegmentOptions = tslib.__assign(tslib.__assign({}, options), (include.length > 0 ? { include: include } : {})); - var iter = this.listItems(listSegmentOptions); - return _a = { - /** - * The next method, part of the iteration protocol - */ - next: function () { - return iter.next(); - } + const listSegmentOptions = Object.assign(Object.assign({}, options), (include.length > 0 ? { include } : {})); + const iter = this.listItems(listSegmentOptions); + return { + /** + * The next method, part of the iteration protocol + */ + next() { + return iter.next(); }, /** * The connection to the async iterator, part of the iteration protocol */ - _a[Symbol.asyncIterator] = function () { + [Symbol.asyncIterator]() { return this; }, /** * Return an AsyncIterableIterator that works a page at a time */ - _a.byPage = function (settings) { - if (settings === void 0) { settings = {}; } - return _this.listSegments(settings.continuationToken, tslib.__assign({ maxPageSize: settings.maxPageSize }, listSegmentOptions)); - }, - _a; - }; + byPage: (settings = {}) => { + return this.listSegments(settings.continuationToken, Object.assign({ maxPageSize: settings.maxPageSize }, listSegmentOptions)); + } + }; + } /** * ONLY AVAILABLE WHEN USING BEARER TOKEN AUTHENTICATION (TokenCredential). * @@ -89815,49 +86877,36 @@ var BlobServiceClient = /** @class */ (function (_super) { * @param startsOn - The start time for the user delegation SAS. Must be within 7 days of the current time * @param expiresOn - The end time for the user delegation SAS. Must be within 7 days of the current time */ - BlobServiceClient.prototype.getUserDelegationKey = function (startsOn, expiresOn, options) { - if (options === void 0) { options = {}; } - return tslib.__awaiter(this, void 0, void 0, function () { - var _a, span, updatedOptions, response, userDelegationKey, res, e_13; - return tslib.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = createSpan("BlobServiceClient-getUserDelegationKey", options), span = _a.span, updatedOptions = _a.updatedOptions; - _b.label = 1; - case 1: - _b.trys.push([1, 3, 4, 5]); - return [4 /*yield*/, this.serviceContext.getUserDelegationKey({ - startsOn: truncatedISO8061Date(startsOn, false), - expiresOn: truncatedISO8061Date(expiresOn, false) - }, tslib.__assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)))]; - case 2: - response = _b.sent(); - userDelegationKey = { - signedObjectId: response.signedObjectId, - signedTenantId: response.signedTenantId, - signedStartsOn: new Date(response.signedStartsOn), - signedExpiresOn: new Date(response.signedExpiresOn), - signedService: response.signedService, - signedVersion: response.signedVersion, - value: response.value - }; - res = tslib.__assign({ _response: response._response, requestId: response.requestId, clientRequestId: response.clientRequestId, version: response.version, date: response.date, errorCode: response.errorCode }, userDelegationKey); - return [2 /*return*/, res]; - case 3: - e_13 = _b.sent(); - span.setStatus({ - code: coreTracing.SpanStatusCode.ERROR, - message: e_13.message - }); - throw e_13; - case 4: - span.end(); - return [7 /*endfinally*/]; - case 5: return [2 /*return*/]; - } + async getUserDelegationKey(startsOn, expiresOn, options = {}) { + const { span, updatedOptions } = createSpan("BlobServiceClient-getUserDelegationKey", options); + try { + const response = await this.serviceContext.getUserDelegationKey({ + startsOn: truncatedISO8061Date(startsOn, false), + expiresOn: truncatedISO8061Date(expiresOn, false) + }, Object.assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions))); + const userDelegationKey = { + signedObjectId: response.signedObjectId, + signedTenantId: response.signedTenantId, + signedStartsOn: new Date(response.signedStartsOn), + signedExpiresOn: new Date(response.signedExpiresOn), + signedService: response.signedService, + signedVersion: response.signedVersion, + value: response.value + }; + const res = Object.assign({ _response: response._response, requestId: response.requestId, clientRequestId: response.clientRequestId, version: response.version, date: response.date, errorCode: response.errorCode }, userDelegationKey); + return res; + } + catch (e) { + span.setStatus({ + code: coreTracing.SpanStatusCode.ERROR, + message: e.message }); - }); - }; + throw e; + } + finally { + span.end(); + } + } /** * Creates a BlobBatchClient object to conduct batch operations. * @@ -89865,9 +86914,9 @@ var BlobServiceClient = /** @class */ (function (_super) { * * @returns A new BlobBatchClient object for this service. */ - BlobServiceClient.prototype.getBlobBatchClient = function () { + getBlobBatchClient() { return new BlobBatchClient(this.url, this.pipeline); - }; + } /** * Only available for BlobServiceClient constructed with a shared key credential. * @@ -89882,24 +86931,20 @@ var BlobServiceClient = /** @class */ (function (_super) { * @param options - Optional parameters. * @returns An account SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token. */ - BlobServiceClient.prototype.generateAccountSasUrl = function (expiresOn, permissions, resourceTypes, options) { - if (permissions === void 0) { permissions = AccountSASPermissions.parse("r"); } - if (resourceTypes === void 0) { resourceTypes = "sco"; } - if (options === void 0) { options = {}; } + generateAccountSasUrl(expiresOn, permissions = AccountSASPermissions.parse("r"), resourceTypes = "sco", options = {}) { if (!(this.credential instanceof StorageSharedKeyCredential)) { throw RangeError("Can only generate the account SAS when the client is initialized with a shared key credential"); } if (expiresOn === undefined) { - var now = new Date(); + const now = new Date(); expiresOn = new Date(now.getTime() + 3600 * 1000); } - var sas = generateAccountSASQueryParameters(tslib.__assign({ permissions: permissions, - expiresOn: expiresOn, - resourceTypes: resourceTypes, services: AccountSASServices.parse("b").toString() }, options), this.credential).toString(); + const sas = generateAccountSASQueryParameters(Object.assign({ permissions, + expiresOn, + resourceTypes, services: AccountSASServices.parse("b").toString() }, options), this.credential).toString(); return appendToURLQuery(this.url, sas); - }; - return BlobServiceClient; -}(StorageClient)); + } +} Object.defineProperty(exports, 'BaseRequestPolicy', { enumerable: true, @@ -89966,6 +87011,7 @@ exports.StorageSharedKeyCredential = StorageSharedKeyCredential; exports.StorageSharedKeyCredentialPolicy = StorageSharedKeyCredentialPolicy; exports.generateAccountSASQueryParameters = generateAccountSASQueryParameters; exports.generateBlobSASQueryParameters = generateBlobSASQueryParameters; +exports.isPipelineLike = isPipelineLike; exports.logger = logger; exports.newPipeline = newPipeline; //# sourceMappingURL=index.js.map @@ -91022,171 +88068,171 @@ module.exports = parse /***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ZuluDistribution = void 0; -const core = __importStar(__webpack_require__(470)); -const tc = __importStar(__webpack_require__(139)); -const path_1 = __importDefault(__webpack_require__(622)); -const fs_1 = __importDefault(__webpack_require__(747)); -const semver_1 = __importDefault(__webpack_require__(876)); -const base_installer_1 = __webpack_require__(83); -const util_1 = __webpack_require__(322); -class ZuluDistribution extends base_installer_1.JavaBase { - constructor(installerOptions) { - super('Zulu', installerOptions); - } - findPackageForDownload(version) { - return __awaiter(this, void 0, void 0, function* () { - const availableVersionsRaw = yield this.getAvailableVersions(); - const availableVersions = availableVersionsRaw.map(item => { - return { - version: this.convertVersionToSemver(item.jdk_version), - url: item.url, - zuluVersion: this.convertVersionToSemver(item.zulu_version) - }; - }); - const satisfiedVersions = availableVersions - .filter(item => util_1.isVersionSatisfies(version, item.version)) - .sort((a, b) => { - // Azul provides two versions: jdk_version and azul_version - // we should sort by both fields by descending - return (-semver_1.default.compareBuild(a.version, b.version) || - -semver_1.default.compareBuild(a.zuluVersion, b.zuluVersion)); - }) - .map(item => { - return { - version: item.version, - url: item.url - }; - }); - const resolvedFullVersion = satisfiedVersions.length > 0 ? satisfiedVersions[0] : null; - if (!resolvedFullVersion) { - const availableOptions = availableVersions.map(item => item.version).join(', '); - const availableOptionsMessage = availableOptions - ? `\nAvailable versions: ${availableOptions}` - : ''; - throw new Error(`Could not find satisfied version for semver ${version}. ${availableOptionsMessage}`); - } - return resolvedFullVersion; - }); - } - downloadTool(javaRelease) { - return __awaiter(this, void 0, void 0, function* () { - let extractedJavaPath; - core.info(`Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...`); - const javaArchivePath = yield tc.downloadTool(javaRelease.url); - core.info(`Extracting Java archive...`); - let extension = util_1.getDownloadArchiveExtension(); - extractedJavaPath = yield util_1.extractJdkFile(javaArchivePath, extension); - const archiveName = fs_1.default.readdirSync(extractedJavaPath)[0]; - const archivePath = path_1.default.join(extractedJavaPath, archiveName); - const javaPath = yield tc.cacheDir(archivePath, this.toolcacheFolderName, this.getToolcacheVersionName(javaRelease.version), this.architecture); - return { version: javaRelease.version, path: javaPath }; - }); - } - getAvailableVersions() { - var _a, _b; - return __awaiter(this, void 0, void 0, function* () { - const { arch, hw_bitness, abi } = this.getArchitectureOptions(); - const [bundleType, features] = this.packageType.split('+'); - const platform = this.getPlatformOption(); - const extension = util_1.getDownloadArchiveExtension(); - const javafx = (_a = features === null || features === void 0 ? void 0 : features.includes('fx')) !== null && _a !== void 0 ? _a : false; - const releaseStatus = this.stable ? 'ga' : 'ea'; - console.time('azul-retrieve-available-versions'); - const requestArguments = [ - `os=${platform}`, - `ext=${extension}`, - `bundle_type=${bundleType}`, - `javafx=${javafx}`, - `arch=${arch}`, - `hw_bitness=${hw_bitness}`, - `release_status=${releaseStatus}`, - abi ? `abi=${abi}` : null, - features ? `features=${features}` : null - ] - .filter(Boolean) - .join('&'); - const availableVersionsUrl = `https://api.azul.com/zulu/download/community/v1.0/bundles/?${requestArguments}`; - if (core.isDebug()) { - core.debug(`Gathering available versions from '${availableVersionsUrl}'`); - } - const availableVersions = (_b = (yield this.http.getJson(availableVersionsUrl)).result) !== null && _b !== void 0 ? _b : []; - if (core.isDebug()) { - core.startGroup('Print information about available versions'); - console.timeEnd('azul-retrieve-available-versions'); - console.log(`Available versions: [${availableVersions.length}]`); - console.log(availableVersions.map(item => item.jdk_version.join('.')).join(', ')); - core.endGroup(); - } - return availableVersions; - }); - } - getArchitectureOptions() { - if (this.architecture == 'x64') { - return { arch: 'x86', hw_bitness: '64', abi: '' }; - } - else if (this.architecture == 'x86') { - return { arch: 'x86', hw_bitness: '32', abi: '' }; - } - else { - return { arch: this.architecture, hw_bitness: '', abi: '' }; - } - } - getPlatformOption() { - // Azul has own platform names so need to map them - switch (process.platform) { - case 'darwin': - return 'macos'; - case 'win32': - return 'windows'; - default: - return process.platform; - } - } - // Azul API returns jdk_version as array of digits like [11, 0, 2, 1] - convertVersionToSemver(version_array) { - const mainVersion = version_array.slice(0, 3).join('.'); - if (version_array.length > 3) { - // intentionally ignore more than 4 numbers because it is invalid semver - return `${mainVersion}+${version_array[3]}`; - } - return mainVersion; - } -} -exports.ZuluDistribution = ZuluDistribution; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ZuluDistribution = void 0; +const core = __importStar(__webpack_require__(470)); +const tc = __importStar(__webpack_require__(139)); +const path_1 = __importDefault(__webpack_require__(622)); +const fs_1 = __importDefault(__webpack_require__(747)); +const semver_1 = __importDefault(__webpack_require__(876)); +const base_installer_1 = __webpack_require__(83); +const util_1 = __webpack_require__(322); +class ZuluDistribution extends base_installer_1.JavaBase { + constructor(installerOptions) { + super('Zulu', installerOptions); + } + findPackageForDownload(version) { + return __awaiter(this, void 0, void 0, function* () { + const availableVersionsRaw = yield this.getAvailableVersions(); + const availableVersions = availableVersionsRaw.map(item => { + return { + version: this.convertVersionToSemver(item.jdk_version), + url: item.url, + zuluVersion: this.convertVersionToSemver(item.zulu_version) + }; + }); + const satisfiedVersions = availableVersions + .filter(item => util_1.isVersionSatisfies(version, item.version)) + .sort((a, b) => { + // Azul provides two versions: jdk_version and azul_version + // we should sort by both fields by descending + return (-semver_1.default.compareBuild(a.version, b.version) || + -semver_1.default.compareBuild(a.zuluVersion, b.zuluVersion)); + }) + .map(item => { + return { + version: item.version, + url: item.url + }; + }); + const resolvedFullVersion = satisfiedVersions.length > 0 ? satisfiedVersions[0] : null; + if (!resolvedFullVersion) { + const availableOptions = availableVersions.map(item => item.version).join(', '); + const availableOptionsMessage = availableOptions + ? `\nAvailable versions: ${availableOptions}` + : ''; + throw new Error(`Could not find satisfied version for semver ${version}. ${availableOptionsMessage}`); + } + return resolvedFullVersion; + }); + } + downloadTool(javaRelease) { + return __awaiter(this, void 0, void 0, function* () { + let extractedJavaPath; + core.info(`Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...`); + const javaArchivePath = yield tc.downloadTool(javaRelease.url); + core.info(`Extracting Java archive...`); + let extension = util_1.getDownloadArchiveExtension(); + extractedJavaPath = yield util_1.extractJdkFile(javaArchivePath, extension); + const archiveName = fs_1.default.readdirSync(extractedJavaPath)[0]; + const archivePath = path_1.default.join(extractedJavaPath, archiveName); + const javaPath = yield tc.cacheDir(archivePath, this.toolcacheFolderName, this.getToolcacheVersionName(javaRelease.version), this.architecture); + return { version: javaRelease.version, path: javaPath }; + }); + } + getAvailableVersions() { + var _a, _b; + return __awaiter(this, void 0, void 0, function* () { + const { arch, hw_bitness, abi } = this.getArchitectureOptions(); + const [bundleType, features] = this.packageType.split('+'); + const platform = this.getPlatformOption(); + const extension = util_1.getDownloadArchiveExtension(); + const javafx = (_a = features === null || features === void 0 ? void 0 : features.includes('fx')) !== null && _a !== void 0 ? _a : false; + const releaseStatus = this.stable ? 'ga' : 'ea'; + console.time('azul-retrieve-available-versions'); + const requestArguments = [ + `os=${platform}`, + `ext=${extension}`, + `bundle_type=${bundleType}`, + `javafx=${javafx}`, + `arch=${arch}`, + `hw_bitness=${hw_bitness}`, + `release_status=${releaseStatus}`, + abi ? `abi=${abi}` : null, + features ? `features=${features}` : null + ] + .filter(Boolean) + .join('&'); + const availableVersionsUrl = `https://api.azul.com/zulu/download/community/v1.0/bundles/?${requestArguments}`; + if (core.isDebug()) { + core.debug(`Gathering available versions from '${availableVersionsUrl}'`); + } + const availableVersions = (_b = (yield this.http.getJson(availableVersionsUrl)).result) !== null && _b !== void 0 ? _b : []; + if (core.isDebug()) { + core.startGroup('Print information about available versions'); + console.timeEnd('azul-retrieve-available-versions'); + console.log(`Available versions: [${availableVersions.length}]`); + console.log(availableVersions.map(item => item.jdk_version.join('.')).join(', ')); + core.endGroup(); + } + return availableVersions; + }); + } + getArchitectureOptions() { + if (this.architecture == 'x64') { + return { arch: 'x86', hw_bitness: '64', abi: '' }; + } + else if (this.architecture == 'x86') { + return { arch: 'x86', hw_bitness: '32', abi: '' }; + } + else { + return { arch: this.architecture, hw_bitness: '', abi: '' }; + } + } + getPlatformOption() { + // Azul has own platform names so need to map them + switch (process.platform) { + case 'darwin': + return 'macos'; + case 'win32': + return 'windows'; + default: + return process.platform; + } + } + // Azul API returns jdk_version as array of digits like [11, 0, 2, 1] + convertVersionToSemver(version_array) { + const mainVersion = version_array.slice(0, 3).join('.'); + if (version_array.length > 3) { + // intentionally ignore more than 4 numbers because it is invalid semver + return `${mainVersion}+${version_array[3]}`; + } + return mainVersion; + } +} +exports.ZuluDistribution = ZuluDistribution; /***/ }), @@ -91198,9 +88244,8 @@ module.exports = require("url"); /***/ }), /* 836 */, /* 837 */, -/* 838 */, -/* 839 */ -/***/ (function(__unusedmodule, exports) { +/* 838 */ +/***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; @@ -91220,9 +88265,45 @@ module.exports = require("url"); * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=TimedEvent.js.map +exports.deleteBaggage = exports.setBaggage = exports.getBaggage = void 0; +var context_1 = __webpack_require__(132); +/** + * Baggage key + */ +var BAGGAGE_KEY = context_1.createContextKey('OpenTelemetry Baggage Key'); +/** + * Retrieve the current baggage from the given context + * + * @param {Context} Context that manage all context values + * @returns {Baggage} Extracted baggage from the context + */ +function getBaggage(context) { + return context.getValue(BAGGAGE_KEY) || undefined; +} +exports.getBaggage = getBaggage; +/** + * Store a baggage in the given context + * + * @param {Context} Context that manage all context values + * @param {Baggage} baggage that will be set in the actual context + */ +function setBaggage(context, baggage) { + return context.setValue(BAGGAGE_KEY, baggage); +} +exports.setBaggage = setBaggage; +/** + * Delete the baggage stored in the given context + * + * @param {Context} Context that manage all context values + */ +function deleteBaggage(context) { + return context.deleteValue(BAGGAGE_KEY); +} +exports.deleteBaggage = deleteBaggage; +//# sourceMappingURL=context-helpers.js.map /***/ }), +/* 839 */, /* 840 */, /* 841 */ /***/ (function(module, __unusedexports, __webpack_require__) { @@ -91523,30 +88604,7 @@ exports.hashFiles = hashFiles; /***/ }), /* 850 */, -/* 851 */ -/***/ (function(__unusedmodule, exports) { - -"use strict"; - -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=link_context.js.map - -/***/ }), +/* 851 */, /* 852 */ /***/ (function(module, __unusedexports, __webpack_require__) { @@ -92045,7 +89103,64 @@ WebIDLAlgorithm_1.idl_defineConst(AttrImpl.prototype, "specified", true); /* 869 */, /* 870 */, /* 871 */, -/* 872 */, +/* 872 */ +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.baggageEntryMetadataFromString = exports.createBaggage = void 0; +var diag_1 = __webpack_require__(118); +var baggage_impl_1 = __webpack_require__(666); +var symbol_1 = __webpack_require__(561); +var diag = diag_1.DiagAPI.instance(); +/** + * Create a new Baggage with optional entries + * + * @param entries An array of baggage entries the new baggage should contain + */ +function createBaggage(entries) { + if (entries === void 0) { entries = {}; } + return new baggage_impl_1.BaggageImpl(new Map(Object.entries(entries))); +} +exports.createBaggage = createBaggage; +/** + * Create a serializable BaggageEntryMetadata object from a string. + * + * @param str string metadata. Format is currently not defined by the spec and has no special meaning. + * + */ +function baggageEntryMetadataFromString(str) { + if (typeof str !== 'string') { + diag.error("Cannot create baggage metadata from unknown type: " + typeof str); + str = ''; + } + return { + __TYPE__: symbol_1.baggageEntryMetadataSymbol, + toString: function () { + return str; + }, + }; +} +exports.baggageEntryMetadataFromString = baggageEntryMetadataFromString; +//# sourceMappingURL=utils.js.map + +/***/ }), /* 873 */ /***/ (function(__unusedmodule, exports, __webpack_require__) { @@ -92917,7 +90032,7 @@ module.exports = compare /***/ }), /* 875 */ -/***/ (function(__unusedmodule, exports, __webpack_require__) { +/***/ (function(__unusedmodule, exports) { "use strict"; @@ -92937,56 +90052,30 @@ module.exports = compare * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); -exports.TraceAPI = void 0; -var ProxyTracerProvider_1 = __webpack_require__(394); -var spancontext_utils_1 = __webpack_require__(453); -var global_utils_1 = __webpack_require__(525); -var API_NAME = 'trace'; -/** - * Singleton object which represents the entry point to the OpenTelemetry Tracing API - */ -var TraceAPI = /** @class */ (function () { - /** Empty private constructor prevents end users from constructing a new instance of the API */ - function TraceAPI() { - this._proxyTracerProvider = new ProxyTracerProvider_1.ProxyTracerProvider(); - this.isSpanContextValid = spancontext_utils_1.isSpanContextValid; - } - /** Get the singleton instance of the Trace API */ - TraceAPI.getInstance = function () { - if (!this._instance) { - this._instance = new TraceAPI(); +exports.defaultTextMapSetter = exports.defaultTextMapGetter = void 0; +exports.defaultTextMapGetter = { + get: function (carrier, key) { + if (carrier == null) { + return undefined; } - return this._instance; - }; - /** - * Set the current global tracer. Returns the initialized global tracer provider - */ - TraceAPI.prototype.setGlobalTracerProvider = function (provider) { - this._proxyTracerProvider.setDelegate(provider); - global_utils_1.registerGlobal(API_NAME, this._proxyTracerProvider); - return this._proxyTracerProvider; - }; - /** - * Returns the global tracer provider. - */ - TraceAPI.prototype.getTracerProvider = function () { - return global_utils_1.getGlobal(API_NAME) || this._proxyTracerProvider; - }; - /** - * Returns a tracer from the global tracer provider. - */ - TraceAPI.prototype.getTracer = function (name, version) { - return this.getTracerProvider().getTracer(name, version); - }; - /** Remove the global tracer provider */ - TraceAPI.prototype.disable = function () { - global_utils_1.unregisterGlobal(API_NAME); - this._proxyTracerProvider = new ProxyTracerProvider_1.ProxyTracerProvider(); - }; - return TraceAPI; -}()); -exports.TraceAPI = TraceAPI; -//# sourceMappingURL=trace.js.map + return carrier[key]; + }, + keys: function (carrier) { + if (carrier == null) { + return []; + } + return Object.keys(carrier); + }, +}; +exports.defaultTextMapSetter = { + set: function (carrier, key, value) { + if (carrier == null) { + return; + } + carrier[key] = value; + }, +}; +//# sourceMappingURL=TextMapPropagator.js.map /***/ }), /* 876 */ @@ -93095,7 +90184,30 @@ module.exports = (versions, range, options) => { /***/ }), /* 878 */, /* 879 */, -/* 880 */, +/* 880 */ +/***/ (function(__unusedmodule, exports) { + +"use strict"; + +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=types.js.map + +/***/ }), /* 881 */ /***/ (function(module, __unusedexports, __webpack_require__) { @@ -94789,74 +91901,74 @@ function coerce (version, options) { /***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.deleteKey = exports.importKey = exports.PRIVATE_KEY_FILE = void 0; -const fs = __importStar(__webpack_require__(747)); -const path = __importStar(__webpack_require__(622)); -const io = __importStar(__webpack_require__(1)); -const exec = __importStar(__webpack_require__(986)); -const util = __importStar(__webpack_require__(322)); -exports.PRIVATE_KEY_FILE = path.join(util.getTempDir(), 'private-key.asc'); -const PRIVATE_KEY_FINGERPRINT_REGEX = /\w{40}/; -function importKey(privateKey) { - return __awaiter(this, void 0, void 0, function* () { - fs.writeFileSync(exports.PRIVATE_KEY_FILE, privateKey, { - encoding: 'utf-8', - flag: 'w' - }); - let output = ''; - const options = { - silent: true, - listeners: { - stdout: (data) => { - output += data.toString(); - } - } - }; - yield exec.exec('gpg', ['--batch', '--import-options', 'import-show', '--import', exports.PRIVATE_KEY_FILE], options); - yield io.rmRF(exports.PRIVATE_KEY_FILE); - const match = output.match(PRIVATE_KEY_FINGERPRINT_REGEX); - return match && match[0]; - }); -} -exports.importKey = importKey; -function deleteKey(keyFingerprint) { - return __awaiter(this, void 0, void 0, function* () { - yield exec.exec('gpg', ['--batch', '--yes', '--delete-secret-and-public-key', keyFingerprint], { - silent: true - }); - }); -} -exports.deleteKey = deleteKey; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.deleteKey = exports.importKey = exports.PRIVATE_KEY_FILE = void 0; +const fs = __importStar(__webpack_require__(747)); +const path = __importStar(__webpack_require__(622)); +const io = __importStar(__webpack_require__(1)); +const exec = __importStar(__webpack_require__(986)); +const util = __importStar(__webpack_require__(322)); +exports.PRIVATE_KEY_FILE = path.join(util.getTempDir(), 'private-key.asc'); +const PRIVATE_KEY_FINGERPRINT_REGEX = /\w{40}/; +function importKey(privateKey) { + return __awaiter(this, void 0, void 0, function* () { + fs.writeFileSync(exports.PRIVATE_KEY_FILE, privateKey, { + encoding: 'utf-8', + flag: 'w' + }); + let output = ''; + const options = { + silent: true, + listeners: { + stdout: (data) => { + output += data.toString(); + } + } + }; + yield exec.exec('gpg', ['--batch', '--import-options', 'import-show', '--import', exports.PRIVATE_KEY_FILE], options); + yield io.rmRF(exports.PRIVATE_KEY_FILE); + const match = output.match(PRIVATE_KEY_FINGERPRINT_REGEX); + return match && match[0]; + }); +} +exports.importKey = importKey; +function deleteKey(keyFingerprint) { + return __awaiter(this, void 0, void 0, function* () { + yield exec.exec('gpg', ['--batch', '--yes', '--delete-secret-and-public-key', keyFingerprint], { + silent: true + }); + }); +} +exports.deleteKey = deleteKey; /***/ }), @@ -95586,7 +92698,91 @@ __exportStar(__webpack_require__(360), exports); /***/ }), /* 894 */, -/* 895 */, +/* 895 */ +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TraceAPI = void 0; +var global_utils_1 = __webpack_require__(525); +var ProxyTracerProvider_1 = __webpack_require__(394); +var spancontext_utils_1 = __webpack_require__(453); +var context_utils_1 = __webpack_require__(969); +var diag_1 = __webpack_require__(118); +var API_NAME = 'trace'; +/** + * Singleton object which represents the entry point to the OpenTelemetry Tracing API + */ +var TraceAPI = /** @class */ (function () { + /** Empty private constructor prevents end users from constructing a new instance of the API */ + function TraceAPI() { + this._proxyTracerProvider = new ProxyTracerProvider_1.ProxyTracerProvider(); + this.wrapSpanContext = spancontext_utils_1.wrapSpanContext; + this.isSpanContextValid = spancontext_utils_1.isSpanContextValid; + this.deleteSpan = context_utils_1.deleteSpan; + this.getSpan = context_utils_1.getSpan; + this.getSpanContext = context_utils_1.getSpanContext; + this.setSpan = context_utils_1.setSpan; + this.setSpanContext = context_utils_1.setSpanContext; + } + /** Get the singleton instance of the Trace API */ + TraceAPI.getInstance = function () { + if (!this._instance) { + this._instance = new TraceAPI(); + } + return this._instance; + }; + /** + * Set the current global tracer. + * + * @returns true if the tracer provider was successfully registered, else false + */ + TraceAPI.prototype.setGlobalTracerProvider = function (provider) { + var success = global_utils_1.registerGlobal(API_NAME, this._proxyTracerProvider, diag_1.DiagAPI.instance()); + if (success) { + this._proxyTracerProvider.setDelegate(provider); + } + return success; + }; + /** + * Returns the global tracer provider. + */ + TraceAPI.prototype.getTracerProvider = function () { + return global_utils_1.getGlobal(API_NAME) || this._proxyTracerProvider; + }; + /** + * Returns a tracer from the global tracer provider. + */ + TraceAPI.prototype.getTracer = function (name, version) { + return this.getTracerProvider().getTracer(name, version); + }; + /** Remove the global tracer provider */ + TraceAPI.prototype.disable = function () { + global_utils_1.unregisterGlobal(API_NAME, diag_1.DiagAPI.instance()); + this._proxyTracerProvider = new ProxyTracerProvider_1.ProxyTracerProvider(); + }; + return TraceAPI; +}()); +exports.TraceAPI = TraceAPI; +//# sourceMappingURL=trace.js.map + +/***/ }), /* 896 */ /***/ (function(module) { @@ -96030,7 +93226,7 @@ var __createBinding; ar[i] = from[i]; } } - return to.concat(ar || from); + return to.concat(ar || Array.prototype.slice.call(from)); }; __await = function (v) { @@ -100104,32 +97300,1312 @@ WebIDLAlgorithm_1.idl_defineConst(NodeImpl.prototype, "DOCUMENT_POSITION_IMPLEME //# sourceMappingURL=NodeImpl.js.map /***/ }), -/* 936 */, -/* 937 */, -/* 938 */ -/***/ (function(__unusedmodule, exports) { +/* 936 */ +/***/ (function(module, __unusedexports, __webpack_require__) { "use strict"; + +const punycode = __webpack_require__(213); +const tr46 = __webpack_require__(361); + +const specialSchemes = { + ftp: 21, + file: null, + gopher: 70, + http: 80, + https: 443, + ws: 80, + wss: 443 +}; + +const failure = Symbol("failure"); + +function countSymbols(str) { + return punycode.ucs2.decode(str).length; +} + +function at(input, idx) { + const c = input[idx]; + return isNaN(c) ? undefined : String.fromCodePoint(c); +} + +function isASCIIDigit(c) { + return c >= 0x30 && c <= 0x39; +} + +function isASCIIAlpha(c) { + return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A); +} + +function isASCIIAlphanumeric(c) { + return isASCIIAlpha(c) || isASCIIDigit(c); +} + +function isASCIIHex(c) { + return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66); +} + +function isSingleDot(buffer) { + return buffer === "." || buffer.toLowerCase() === "%2e"; +} + +function isDoubleDot(buffer) { + buffer = buffer.toLowerCase(); + return buffer === ".." || buffer === "%2e." || buffer === ".%2e" || buffer === "%2e%2e"; +} + +function isWindowsDriveLetterCodePoints(cp1, cp2) { + return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124); +} + +function isWindowsDriveLetterString(string) { + return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === ":" || string[1] === "|"); +} + +function isNormalizedWindowsDriveLetterString(string) { + return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === ":"; +} + +function containsForbiddenHostCodePoint(string) { + return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/) !== -1; +} + +function containsForbiddenHostCodePointExcludingPercent(string) { + return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/) !== -1; +} + +function isSpecialScheme(scheme) { + return specialSchemes[scheme] !== undefined; +} + +function isSpecial(url) { + return isSpecialScheme(url.scheme); +} + +function defaultPort(scheme) { + return specialSchemes[scheme]; +} + +function percentEncode(c) { + let hex = c.toString(16).toUpperCase(); + if (hex.length === 1) { + hex = "0" + hex; + } + + return "%" + hex; +} + +function utf8PercentEncode(c) { + const buf = new Buffer(c); + + let str = ""; + + for (let i = 0; i < buf.length; ++i) { + str += percentEncode(buf[i]); + } + + return str; +} + +function utf8PercentDecode(str) { + const input = new Buffer(str); + const output = []; + for (let i = 0; i < input.length; ++i) { + if (input[i] !== 37) { + output.push(input[i]); + } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) { + output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16)); + i += 2; + } else { + output.push(input[i]); + } + } + return new Buffer(output).toString(); +} + +function isC0ControlPercentEncode(c) { + return c <= 0x1F || c > 0x7E; +} + +const extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]); +function isPathPercentEncode(c) { + return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c); +} + +const extraUserinfoPercentEncodeSet = + new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]); +function isUserinfoPercentEncode(c) { + return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c); +} + +function percentEncodeChar(c, encodeSetPredicate) { + const cStr = String.fromCodePoint(c); + + if (encodeSetPredicate(c)) { + return utf8PercentEncode(cStr); + } + + return cStr; +} + +function parseIPv4Number(input) { + let R = 10; + + if (input.length >= 2 && input.charAt(0) === "0" && input.charAt(1).toLowerCase() === "x") { + input = input.substring(2); + R = 16; + } else if (input.length >= 2 && input.charAt(0) === "0") { + input = input.substring(1); + R = 8; + } + + if (input === "") { + return 0; + } + + const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/); + if (regex.test(input)) { + return failure; + } + + return parseInt(input, R); +} + +function parseIPv4(input) { + const parts = input.split("."); + if (parts[parts.length - 1] === "") { + if (parts.length > 1) { + parts.pop(); + } + } + + if (parts.length > 4) { + return input; + } + + const numbers = []; + for (const part of parts) { + if (part === "") { + return input; + } + const n = parseIPv4Number(part); + if (n === failure) { + return input; + } + + numbers.push(n); + } + + for (let i = 0; i < numbers.length - 1; ++i) { + if (numbers[i] > 255) { + return failure; + } + } + if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) { + return failure; + } + + let ipv4 = numbers.pop(); + let counter = 0; + + for (const n of numbers) { + ipv4 += n * Math.pow(256, 3 - counter); + ++counter; + } + + return ipv4; +} + +function serializeIPv4(address) { + let output = ""; + let n = address; + + for (let i = 1; i <= 4; ++i) { + output = String(n % 256) + output; + if (i !== 4) { + output = "." + output; + } + n = Math.floor(n / 256); + } + + return output; +} + +function parseIPv6(input) { + const address = [0, 0, 0, 0, 0, 0, 0, 0]; + let pieceIndex = 0; + let compress = null; + let pointer = 0; + + input = punycode.ucs2.decode(input); + + if (input[pointer] === 58) { + if (input[pointer + 1] !== 58) { + return failure; + } + + pointer += 2; + ++pieceIndex; + compress = pieceIndex; + } + + while (pointer < input.length) { + if (pieceIndex === 8) { + return failure; + } + + if (input[pointer] === 58) { + if (compress !== null) { + return failure; + } + ++pointer; + ++pieceIndex; + compress = pieceIndex; + continue; + } + + let value = 0; + let length = 0; + + while (length < 4 && isASCIIHex(input[pointer])) { + value = value * 0x10 + parseInt(at(input, pointer), 16); + ++pointer; + ++length; + } + + if (input[pointer] === 46) { + if (length === 0) { + return failure; + } + + pointer -= length; + + if (pieceIndex > 6) { + return failure; + } + + let numbersSeen = 0; + + while (input[pointer] !== undefined) { + let ipv4Piece = null; + + if (numbersSeen > 0) { + if (input[pointer] === 46 && numbersSeen < 4) { + ++pointer; + } else { + return failure; + } + } + + if (!isASCIIDigit(input[pointer])) { + return failure; + } + + while (isASCIIDigit(input[pointer])) { + const number = parseInt(at(input, pointer)); + if (ipv4Piece === null) { + ipv4Piece = number; + } else if (ipv4Piece === 0) { + return failure; + } else { + ipv4Piece = ipv4Piece * 10 + number; + } + if (ipv4Piece > 255) { + return failure; + } + ++pointer; + } + + address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece; + + ++numbersSeen; + + if (numbersSeen === 2 || numbersSeen === 4) { + ++pieceIndex; + } + } + + if (numbersSeen !== 4) { + return failure; + } + + break; + } else if (input[pointer] === 58) { + ++pointer; + if (input[pointer] === undefined) { + return failure; + } + } else if (input[pointer] !== undefined) { + return failure; + } + + address[pieceIndex] = value; + ++pieceIndex; + } + + if (compress !== null) { + let swaps = pieceIndex - compress; + pieceIndex = 7; + while (pieceIndex !== 0 && swaps > 0) { + const temp = address[compress + swaps - 1]; + address[compress + swaps - 1] = address[pieceIndex]; + address[pieceIndex] = temp; + --pieceIndex; + --swaps; + } + } else if (compress === null && pieceIndex !== 8) { + return failure; + } + + return address; +} + +function serializeIPv6(address) { + let output = ""; + const seqResult = findLongestZeroSequence(address); + const compress = seqResult.idx; + let ignore0 = false; + + for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) { + if (ignore0 && address[pieceIndex] === 0) { + continue; + } else if (ignore0) { + ignore0 = false; + } + + if (compress === pieceIndex) { + const separator = pieceIndex === 0 ? "::" : ":"; + output += separator; + ignore0 = true; + continue; + } + + output += address[pieceIndex].toString(16); + + if (pieceIndex !== 7) { + output += ":"; + } + } + + return output; +} + +function parseHost(input, isSpecialArg) { + if (input[0] === "[") { + if (input[input.length - 1] !== "]") { + return failure; + } + + return parseIPv6(input.substring(1, input.length - 1)); + } + + if (!isSpecialArg) { + return parseOpaqueHost(input); + } + + const domain = utf8PercentDecode(input); + const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false); + if (asciiDomain === null) { + return failure; + } + + if (containsForbiddenHostCodePoint(asciiDomain)) { + return failure; + } + + const ipv4Host = parseIPv4(asciiDomain); + if (typeof ipv4Host === "number" || ipv4Host === failure) { + return ipv4Host; + } + + return asciiDomain; +} + +function parseOpaqueHost(input) { + if (containsForbiddenHostCodePointExcludingPercent(input)) { + return failure; + } + + let output = ""; + const decoded = punycode.ucs2.decode(input); + for (let i = 0; i < decoded.length; ++i) { + output += percentEncodeChar(decoded[i], isC0ControlPercentEncode); + } + return output; +} + +function findLongestZeroSequence(arr) { + let maxIdx = null; + let maxLen = 1; // only find elements > 1 + let currStart = null; + let currLen = 0; + + for (let i = 0; i < arr.length; ++i) { + if (arr[i] !== 0) { + if (currLen > maxLen) { + maxIdx = currStart; + maxLen = currLen; + } + + currStart = null; + currLen = 0; + } else { + if (currStart === null) { + currStart = i; + } + ++currLen; + } + } + + // if trailing zeros + if (currLen > maxLen) { + maxIdx = currStart; + maxLen = currLen; + } + + return { + idx: maxIdx, + len: maxLen + }; +} + +function serializeHost(host) { + if (typeof host === "number") { + return serializeIPv4(host); + } + + // IPv6 serializer + if (host instanceof Array) { + return "[" + serializeIPv6(host) + "]"; + } + + return host; +} + +function trimControlChars(url) { + return url.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g, ""); +} + +function trimTabAndNewline(url) { + return url.replace(/\u0009|\u000A|\u000D/g, ""); +} + +function shortenPath(url) { + const path = url.path; + if (path.length === 0) { + return; + } + if (url.scheme === "file" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) { + return; + } + + path.pop(); +} + +function includesCredentials(url) { + return url.username !== "" || url.password !== ""; +} + +function cannotHaveAUsernamePasswordPort(url) { + return url.host === null || url.host === "" || url.cannotBeABaseURL || url.scheme === "file"; +} + +function isNormalizedWindowsDriveLetter(string) { + return /^[A-Za-z]:$/.test(string); +} + +function URLStateMachine(input, base, encodingOverride, url, stateOverride) { + this.pointer = 0; + this.input = input; + this.base = base || null; + this.encodingOverride = encodingOverride || "utf-8"; + this.stateOverride = stateOverride; + this.url = url; + this.failure = false; + this.parseError = false; + + if (!this.url) { + this.url = { + scheme: "", + username: "", + password: "", + host: null, + port: null, + path: [], + query: null, + fragment: null, + + cannotBeABaseURL: false + }; + + const res = trimControlChars(this.input); + if (res !== this.input) { + this.parseError = true; + } + this.input = res; + } + + const res = trimTabAndNewline(this.input); + if (res !== this.input) { + this.parseError = true; + } + this.input = res; + + this.state = stateOverride || "scheme start"; + + this.buffer = ""; + this.atFlag = false; + this.arrFlag = false; + this.passwordTokenSeenFlag = false; + + this.input = punycode.ucs2.decode(this.input); + + for (; this.pointer <= this.input.length; ++this.pointer) { + const c = this.input[this.pointer]; + const cStr = isNaN(c) ? undefined : String.fromCodePoint(c); + + // exec state machine + const ret = this["parse " + this.state](c, cStr); + if (!ret) { + break; // terminate algorithm + } else if (ret === failure) { + this.failure = true; + break; + } + } +} + +URLStateMachine.prototype["parse scheme start"] = function parseSchemeStart(c, cStr) { + if (isASCIIAlpha(c)) { + this.buffer += cStr.toLowerCase(); + this.state = "scheme"; + } else if (!this.stateOverride) { + this.state = "no scheme"; + --this.pointer; + } else { + this.parseError = true; + return failure; + } + + return true; +}; + +URLStateMachine.prototype["parse scheme"] = function parseScheme(c, cStr) { + if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) { + this.buffer += cStr.toLowerCase(); + } else if (c === 58) { + if (this.stateOverride) { + if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) { + return false; + } + + if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) { + return false; + } + + if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === "file") { + return false; + } + + if (this.url.scheme === "file" && (this.url.host === "" || this.url.host === null)) { + return false; + } + } + this.url.scheme = this.buffer; + this.buffer = ""; + if (this.stateOverride) { + return false; + } + if (this.url.scheme === "file") { + if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) { + this.parseError = true; + } + this.state = "file"; + } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) { + this.state = "special relative or authority"; + } else if (isSpecial(this.url)) { + this.state = "special authority slashes"; + } else if (this.input[this.pointer + 1] === 47) { + this.state = "path or authority"; + ++this.pointer; + } else { + this.url.cannotBeABaseURL = true; + this.url.path.push(""); + this.state = "cannot-be-a-base-URL path"; + } + } else if (!this.stateOverride) { + this.buffer = ""; + this.state = "no scheme"; + this.pointer = -1; + } else { + this.parseError = true; + return failure; + } + + return true; +}; + +URLStateMachine.prototype["parse no scheme"] = function parseNoScheme(c) { + if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) { + return failure; + } else if (this.base.cannotBeABaseURL && c === 35) { + this.url.scheme = this.base.scheme; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + this.url.fragment = ""; + this.url.cannotBeABaseURL = true; + this.state = "fragment"; + } else if (this.base.scheme === "file") { + this.state = "file"; + --this.pointer; + } else { + this.state = "relative"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse special relative or authority"] = function parseSpecialRelativeOrAuthority(c) { + if (c === 47 && this.input[this.pointer + 1] === 47) { + this.state = "special authority ignore slashes"; + ++this.pointer; + } else { + this.parseError = true; + this.state = "relative"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse path or authority"] = function parsePathOrAuthority(c) { + if (c === 47) { + this.state = "authority"; + } else { + this.state = "path"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse relative"] = function parseRelative(c) { + this.url.scheme = this.base.scheme; + if (isNaN(c)) { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + } else if (c === 47) { + this.state = "relative slash"; + } else if (c === 63) { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(); + this.url.query = ""; + this.state = "query"; + } else if (c === 35) { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + this.url.fragment = ""; + this.state = "fragment"; + } else if (isSpecial(this.url) && c === 92) { + this.parseError = true; + this.state = "relative slash"; + } else { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(0, this.base.path.length - 1); + + this.state = "path"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse relative slash"] = function parseRelativeSlash(c) { + if (isSpecial(this.url) && (c === 47 || c === 92)) { + if (c === 92) { + this.parseError = true; + } + this.state = "special authority ignore slashes"; + } else if (c === 47) { + this.state = "authority"; + } else { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.state = "path"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse special authority slashes"] = function parseSpecialAuthoritySlashes(c) { + if (c === 47 && this.input[this.pointer + 1] === 47) { + this.state = "special authority ignore slashes"; + ++this.pointer; + } else { + this.parseError = true; + this.state = "special authority ignore slashes"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse special authority ignore slashes"] = function parseSpecialAuthorityIgnoreSlashes(c) { + if (c !== 47 && c !== 92) { + this.state = "authority"; + --this.pointer; + } else { + this.parseError = true; + } + + return true; +}; + +URLStateMachine.prototype["parse authority"] = function parseAuthority(c, cStr) { + if (c === 64) { + this.parseError = true; + if (this.atFlag) { + this.buffer = "%40" + this.buffer; + } + this.atFlag = true; + + // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars + const len = countSymbols(this.buffer); + for (let pointer = 0; pointer < len; ++pointer) { + const codePoint = this.buffer.codePointAt(pointer); + + if (codePoint === 58 && !this.passwordTokenSeenFlag) { + this.passwordTokenSeenFlag = true; + continue; + } + const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode); + if (this.passwordTokenSeenFlag) { + this.url.password += encodedCodePoints; + } else { + this.url.username += encodedCodePoints; + } + } + this.buffer = ""; + } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || + (isSpecial(this.url) && c === 92)) { + if (this.atFlag && this.buffer === "") { + this.parseError = true; + return failure; + } + this.pointer -= countSymbols(this.buffer) + 1; + this.buffer = ""; + this.state = "host"; + } else { + this.buffer += cStr; + } + + return true; +}; + +URLStateMachine.prototype["parse hostname"] = +URLStateMachine.prototype["parse host"] = function parseHostName(c, cStr) { + if (this.stateOverride && this.url.scheme === "file") { + --this.pointer; + this.state = "file host"; + } else if (c === 58 && !this.arrFlag) { + if (this.buffer === "") { + this.parseError = true; + return failure; + } + + const host = parseHost(this.buffer, isSpecial(this.url)); + if (host === failure) { + return failure; + } + + this.url.host = host; + this.buffer = ""; + this.state = "port"; + if (this.stateOverride === "hostname") { + return false; + } + } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || + (isSpecial(this.url) && c === 92)) { + --this.pointer; + if (isSpecial(this.url) && this.buffer === "") { + this.parseError = true; + return failure; + } else if (this.stateOverride && this.buffer === "" && + (includesCredentials(this.url) || this.url.port !== null)) { + this.parseError = true; + return false; + } + + const host = parseHost(this.buffer, isSpecial(this.url)); + if (host === failure) { + return failure; + } + + this.url.host = host; + this.buffer = ""; + this.state = "path start"; + if (this.stateOverride) { + return false; + } + } else { + if (c === 91) { + this.arrFlag = true; + } else if (c === 93) { + this.arrFlag = false; + } + this.buffer += cStr; + } + + return true; +}; + +URLStateMachine.prototype["parse port"] = function parsePort(c, cStr) { + if (isASCIIDigit(c)) { + this.buffer += cStr; + } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || + (isSpecial(this.url) && c === 92) || + this.stateOverride) { + if (this.buffer !== "") { + const port = parseInt(this.buffer); + if (port > Math.pow(2, 16) - 1) { + this.parseError = true; + return failure; + } + this.url.port = port === defaultPort(this.url.scheme) ? null : port; + this.buffer = ""; + } + if (this.stateOverride) { + return false; + } + this.state = "path start"; + --this.pointer; + } else { + this.parseError = true; + return failure; + } + + return true; +}; + +const fileOtherwiseCodePoints = new Set([47, 92, 63, 35]); + +URLStateMachine.prototype["parse file"] = function parseFile(c) { + this.url.scheme = "file"; + + if (c === 47 || c === 92) { + if (c === 92) { + this.parseError = true; + } + this.state = "file slash"; + } else if (this.base !== null && this.base.scheme === "file") { + if (isNaN(c)) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + } else if (c === 63) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + this.url.query = ""; + this.state = "query"; + } else if (c === 35) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + this.url.fragment = ""; + this.state = "fragment"; + } else { + if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points + !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) || + (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points + !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + shortenPath(this.url); + } else { + this.parseError = true; + } + + this.state = "path"; + --this.pointer; + } + } else { + this.state = "path"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse file slash"] = function parseFileSlash(c) { + if (c === 47 || c === 92) { + if (c === 92) { + this.parseError = true; + } + this.state = "file host"; + } else { + if (this.base !== null && this.base.scheme === "file") { + if (isNormalizedWindowsDriveLetterString(this.base.path[0])) { + this.url.path.push(this.base.path[0]); + } else { + this.url.host = this.base.host; + } + } + this.state = "path"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse file host"] = function parseFileHost(c, cStr) { + if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) { + --this.pointer; + if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) { + this.parseError = true; + this.state = "path"; + } else if (this.buffer === "") { + this.url.host = ""; + if (this.stateOverride) { + return false; + } + this.state = "path start"; + } else { + let host = parseHost(this.buffer, isSpecial(this.url)); + if (host === failure) { + return failure; + } + if (host === "localhost") { + host = ""; + } + this.url.host = host; + + if (this.stateOverride) { + return false; + } + + this.buffer = ""; + this.state = "path start"; + } + } else { + this.buffer += cStr; + } + + return true; +}; + +URLStateMachine.prototype["parse path start"] = function parsePathStart(c) { + if (isSpecial(this.url)) { + if (c === 92) { + this.parseError = true; + } + this.state = "path"; + + if (c !== 47 && c !== 92) { + --this.pointer; + } + } else if (!this.stateOverride && c === 63) { + this.url.query = ""; + this.state = "query"; + } else if (!this.stateOverride && c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } else if (c !== undefined) { + this.state = "path"; + if (c !== 47) { + --this.pointer; + } + } + + return true; +}; + +URLStateMachine.prototype["parse path"] = function parsePath(c) { + if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) || + (!this.stateOverride && (c === 63 || c === 35))) { + if (isSpecial(this.url) && c === 92) { + this.parseError = true; + } + + if (isDoubleDot(this.buffer)) { + shortenPath(this.url); + if (c !== 47 && !(isSpecial(this.url) && c === 92)) { + this.url.path.push(""); + } + } else if (isSingleDot(this.buffer) && c !== 47 && + !(isSpecial(this.url) && c === 92)) { + this.url.path.push(""); + } else if (!isSingleDot(this.buffer)) { + if (this.url.scheme === "file" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) { + if (this.url.host !== "" && this.url.host !== null) { + this.parseError = true; + this.url.host = ""; + } + this.buffer = this.buffer[0] + ":"; + } + this.url.path.push(this.buffer); + } + this.buffer = ""; + if (this.url.scheme === "file" && (c === undefined || c === 63 || c === 35)) { + while (this.url.path.length > 1 && this.url.path[0] === "") { + this.parseError = true; + this.url.path.shift(); + } + } + if (c === 63) { + this.url.query = ""; + this.state = "query"; + } + if (c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } + } else { + // TODO: If c is not a URL code point and not "%", parse error. + + if (c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + + this.buffer += percentEncodeChar(c, isPathPercentEncode); + } + + return true; +}; + +URLStateMachine.prototype["parse cannot-be-a-base-URL path"] = function parseCannotBeABaseURLPath(c) { + if (c === 63) { + this.url.query = ""; + this.state = "query"; + } else if (c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } else { + // TODO: Add: not a URL code point + if (!isNaN(c) && c !== 37) { + this.parseError = true; + } + + if (c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + + if (!isNaN(c)) { + this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode); + } + } + + return true; +}; + +URLStateMachine.prototype["parse query"] = function parseQuery(c, cStr) { + if (isNaN(c) || (!this.stateOverride && c === 35)) { + if (!isSpecial(this.url) || this.url.scheme === "ws" || this.url.scheme === "wss") { + this.encodingOverride = "utf-8"; + } + + const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead + for (let i = 0; i < buffer.length; ++i) { + if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 || + buffer[i] === 0x3C || buffer[i] === 0x3E) { + this.url.query += percentEncode(buffer[i]); + } else { + this.url.query += String.fromCodePoint(buffer[i]); + } + } + + this.buffer = ""; + if (c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } + } else { + // TODO: If c is not a URL code point and not "%", parse error. + if (c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + + this.buffer += cStr; + } + + return true; +}; + +URLStateMachine.prototype["parse fragment"] = function parseFragment(c) { + if (isNaN(c)) { // do nothing + } else if (c === 0x0) { + this.parseError = true; + } else { + // TODO: If c is not a URL code point and not "%", parse error. + if (c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + + this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode); + } + + return true; +}; + +function serializeURL(url, excludeFragment) { + let output = url.scheme + ":"; + if (url.host !== null) { + output += "//"; + + if (url.username !== "" || url.password !== "") { + output += url.username; + if (url.password !== "") { + output += ":" + url.password; + } + output += "@"; + } + + output += serializeHost(url.host); + + if (url.port !== null) { + output += ":" + url.port; + } + } else if (url.host === null && url.scheme === "file") { + output += "//"; + } + + if (url.cannotBeABaseURL) { + output += url.path[0]; + } else { + for (const string of url.path) { + output += "/" + string; + } + } + + if (url.query !== null) { + output += "?" + url.query; + } + + if (!excludeFragment && url.fragment !== null) { + output += "#" + url.fragment; + } + + return output; +} + +function serializeOrigin(tuple) { + let result = tuple.scheme + "://"; + result += serializeHost(tuple.host); + + if (tuple.port !== null) { + result += ":" + tuple.port; + } + + return result; +} + +module.exports.serializeURL = serializeURL; + +module.exports.serializeURLOrigin = function (url) { + // https://url.spec.whatwg.org/#concept-url-origin + switch (url.scheme) { + case "blob": + try { + return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0])); + } catch (e) { + // serializing an opaque origin returns "null" + return "null"; + } + case "ftp": + case "gopher": + case "http": + case "https": + case "ws": + case "wss": + return serializeOrigin({ + scheme: url.scheme, + host: url.host, + port: url.port + }); + case "file": + // spec says "exercise to the reader", chrome says "file://" + return "file://"; + default: + // serializing an opaque origin returns "null" + return "null"; + } +}; + +module.exports.basicURLParse = function (input, options) { + if (options === undefined) { + options = {}; + } + + const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride); + if (usm.failure) { + return "failure"; + } + + return usm.url; +}; + +module.exports.setTheUsername = function (url, username) { + url.username = ""; + const decoded = punycode.ucs2.decode(username); + for (let i = 0; i < decoded.length; ++i) { + url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode); + } +}; + +module.exports.setThePassword = function (url, password) { + url.password = ""; + const decoded = punycode.ucs2.decode(password); + for (let i = 0; i < decoded.length; ++i) { + url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode); + } +}; + +module.exports.serializeHost = serializeHost; + +module.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort; + +module.exports.serializeInteger = function (integer) { + return String(integer); +}; + +module.exports.parseURL = function (input, options) { + if (options === undefined) { + options = {}; + } + + // We don't handle blobs, so this just delegates: + return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride }); +}; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=Baggage.js.map /***/ }), +/* 937 */, +/* 938 */, /* 939 */ /***/ (function(module, __unusedexports, __webpack_require__) { @@ -100837,7 +99313,86 @@ var EmptySetIterator = /** @class */ (function () { //# sourceMappingURL=EmptySet.js.map /***/ }), -/* 969 */, +/* 969 */ +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getSpanContext = exports.setSpanContext = exports.deleteSpan = exports.setSpan = exports.getSpan = void 0; +var context_1 = __webpack_require__(132); +var NonRecordingSpan_1 = __webpack_require__(437); +/** + * span key + */ +var SPAN_KEY = context_1.createContextKey('OpenTelemetry Context Key SPAN'); +/** + * Return the span if one exists + * + * @param context context to get span from + */ +function getSpan(context) { + return context.getValue(SPAN_KEY) || undefined; +} +exports.getSpan = getSpan; +/** + * Set the span on a context + * + * @param context context to use as parent + * @param span span to set active + */ +function setSpan(context, span) { + return context.setValue(SPAN_KEY, span); +} +exports.setSpan = setSpan; +/** + * Remove current span stored in the context + * + * @param context context to delete span from + */ +function deleteSpan(context) { + return context.deleteValue(SPAN_KEY); +} +exports.deleteSpan = deleteSpan; +/** + * Wrap span context in a NoopSpan and set as span in a new + * context + * + * @param context context to set active span on + * @param spanContext span context to be wrapped + */ +function setSpanContext(context, spanContext) { + return setSpan(context, new NonRecordingSpan_1.NonRecordingSpan(spanContext)); +} +exports.setSpanContext = setSpanContext; +/** + * Get the span context of the span if it exists. + * + * @param context context to get values from + */ +function getSpanContext(context) { + var _a; + return (_a = getSpan(context)) === null || _a === void 0 ? void 0 : _a.spanContext(); +} +exports.getSpanContext = getSpanContext; +//# sourceMappingURL=context-utils.js.map + +/***/ }), /* 970 */ /***/ (function(__unusedmodule, exports) { @@ -101972,7 +100527,7 @@ exports.exec = exec; Object.defineProperty(exports, "__esModule", { value: true }); exports.isCompatible = exports._makeCompatibilityCheck = void 0; var version_1 = __webpack_require__(133); -var re = /^(\d+)\.(\d+)\.(\d+)(?:-(.*))?$/; +var re = /^(\d+)\.(\d+)\.(\d+)(-(.+))?$/; /** * Create a function to test an API version to see if it is compatible with the provided ownVersion. * @@ -102001,7 +100556,14 @@ function _makeCompatibilityCheck(ownVersion) { major: +myVersionMatch[1], minor: +myVersionMatch[2], patch: +myVersionMatch[3], + prerelease: myVersionMatch[4], }; + // if ownVersion has a prerelease tag, versions must match exactly + if (ownVersionParsed.prerelease != null) { + return function isExactmatch(globalVersion) { + return globalVersion === ownVersion; + }; + } function _reject(v) { rejectedVersions.add(v); return false; @@ -102027,7 +100589,12 @@ function _makeCompatibilityCheck(ownVersion) { major: +globalVersionMatch[1], minor: +globalVersionMatch[2], patch: +globalVersionMatch[3], + prerelease: globalVersionMatch[4], }; + // if globalVersion has a prerelease tag, versions must match exactly + if (globalVersionParsed.prerelease != null) { + return _reject(globalVersion); + } // major versions must match if (ownVersionParsed.major !== globalVersionParsed.major) { return _reject(globalVersion); diff --git a/package-lock.json b/package-lock.json index 3f54e91..1bd2807 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,9 +5,9 @@ "requires": true, "dependencies": { "@actions/cache": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-1.0.7.tgz", - "integrity": "sha512-MY69kxuubqUFq84pFlu8m6Poxl5sR/xyhpC4JEvno7Yg9ASYdGizEmKgt0m8ovewpYKf15UAOcSC0hzS+DuosA==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-1.0.8.tgz", + "integrity": "sha512-GWNNB67w93HGJRQXlsV56YqrdAuDoP3esK/mo5mzU8WoDCVjtQgJGsTdkYUX7brswtT7xnI30bWNo1WLKQ8FZQ==", "requires": { "@actions/core": "^1.2.6", "@actions/exec": "^1.0.1", @@ -100,9 +100,9 @@ }, "dependencies": { "tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" } } }, @@ -121,25 +121,25 @@ }, "dependencies": { "tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" } } }, "@azure/core-http": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@azure/core-http/-/core-http-1.2.6.tgz", - "integrity": "sha512-odtH7UMKtekc5YQ86xg9GlVHNXR6pq2JgJ5FBo7/jbOjNGdBqcrIVrZx2bevXVJz/uUTSx6vUf62gzTXTfqYSQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@azure/core-http/-/core-http-2.2.2.tgz", + "integrity": "sha512-V1DdoO9V/sFimKpdWoNBgsE+QUjQgpXYnxrTdUp5RyhsTJjvEVn/HKmTQXIHuLUUo6IyIWj+B+Dg4VaXse9dIA==", "requires": { "@azure/abort-controller": "^1.0.0", "@azure/core-asynciterator-polyfill": "^1.0.0", "@azure/core-auth": "^1.3.0", - "@azure/core-tracing": "1.0.0-preview.11", + "@azure/core-tracing": "1.0.0-preview.13", "@azure/logger": "^1.0.0", "@types/node-fetch": "^2.5.0", - "@types/tunnel": "^0.0.1", - "form-data": "^3.0.0", + "@types/tunnel": "^0.0.3", + "form-data": "^4.0.0", "node-fetch": "^2.6.0", "process": "^0.11.10", "tough-cookie": "^4.0.0", @@ -150,9 +150,9 @@ }, "dependencies": { "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -170,9 +170,9 @@ } }, "tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "uuid": { "version": "8.3.2", @@ -182,68 +182,74 @@ } }, "@azure/core-lro": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@azure/core-lro/-/core-lro-1.0.5.tgz", - "integrity": "sha512-0EFCFZxARrIoLWMIRt4vuqconRVIO2Iin7nFBfJiYCCbKp5eEmxutNk8uqudPmG0XFl5YqlVh68/al/vbE5OOg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.2.1.tgz", + "integrity": "sha512-HE6PBl+mlKa0eBsLwusHqAqjLc5n9ByxeDo3Hz4kF3B1hqHvRkBr4oMgoT6tX7Hc3q97KfDctDUon7EhvoeHPA==", "requires": { "@azure/abort-controller": "^1.0.0", - "@azure/core-http": "^1.2.0", - "@azure/core-tracing": "1.0.0-preview.11", - "events": "^3.0.0", - "tslib": "^2.0.0" + "@azure/core-tracing": "1.0.0-preview.13", + "@azure/logger": "^1.0.0", + "tslib": "^2.2.0" }, "dependencies": { "tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" } } }, "@azure/core-paging": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.1.3.tgz", - "integrity": "sha512-his7Ah40ThEYORSpIAwuh6B8wkGwO/zG7gqVtmSE4WAJ46e36zUDXTKReUCLBDc6HmjjApQQxxcRFy5FruG79A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.2.0.tgz", + "integrity": "sha512-ZX1bCjm/MjKPCN6kQD/9GJErYSoKA8YWp6YWoo5EIzcTWlSBLXu3gNaBTUl8usGl+UShiKo7b4Gdy1NSTIlpZg==", "requires": { - "@azure/core-asynciterator-polyfill": "^1.0.0" - } - }, - "@azure/core-tracing": { - "version": "1.0.0-preview.11", - "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.11.tgz", - "integrity": "sha512-frF0pJc9HTmKncVokhBxCqipjbql02DThQ1ZJ9wLi7SDMLdPAFyDI5xZNzX5guLz+/DtPkY+SGK2li9FIXqshQ==", - "requires": { - "@opencensus/web-types": "0.0.7", - "@opentelemetry/api": "1.0.0-rc.0", - "tslib": "^2.0.0" + "@azure/core-asynciterator-polyfill": "^1.0.0", + "tslib": "^2.2.0" }, "dependencies": { "tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "@azure/core-tracing": { + "version": "1.0.0-preview.13", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.13.tgz", + "integrity": "sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==", + "requires": { + "@opentelemetry/api": "^1.0.1", + "tslib": "^2.2.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" } } }, "@azure/logger": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.0.2.tgz", - "integrity": "sha512-YZNjNV0vL3nN2nedmcjQBcpCTo3oqceXmgiQtEm6fLpucjRZyQKAQruhCmCpRlB1iykqKJJ/Y8CDmT5rIE6IJw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.0.3.tgz", + "integrity": "sha512-aK4s3Xxjrx3daZr3VylxejK3vG5ExXck5WOHDJ8in/k9AqlfIyFMMT1uG7u8mNjX+QRILTIn0/Xgschfh/dQ9g==", "requires": { - "tslib": "^2.0.0" + "tslib": "^2.2.0" }, "dependencies": { "tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" } } }, "@azure/ms-rest-js": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@azure/ms-rest-js/-/ms-rest-js-2.5.2.tgz", - "integrity": "sha512-9nCuuoYwHZEZw1t0MVtENH+c1k2R4maYAlBBDSZhZu6bEucyfYUUigNXXKjt2cFBt4sO+sTzi0uI0f/fiPFr+Q==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@azure/ms-rest-js/-/ms-rest-js-2.6.0.tgz", + "integrity": "sha512-4C5FCtvEzWudblB+h92/TYYPiq7tuElX8icVYToxOdggnYqeec4Se14mjse5miInKtZahiFHdl8lZA/jziEc5g==", "requires": { "@azure/core-auth": "^1.1.4", "abort-controller": "^3.0.0", @@ -252,7 +258,7 @@ "tough-cookie": "^3.0.1", "tslib": "^1.10.0", "tunnel": "0.0.6", - "uuid": "^3.3.2", + "uuid": "^8.3.2", "xml2js": "^0.4.19" }, "dependencies": { @@ -265,28 +271,33 @@ "combined-stream": "^1.0.6", "mime-types": "^2.1.12" } + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" } } }, "@azure/storage-blob": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.6.0.tgz", - "integrity": "sha512-cAzsae+5ZdhugQfIT7o5SlVyF2Sc+HygZdPO41ZYdXklfGUyEt+5K4PyM5HQDc0MTVt6x7+waXcaAXT2eF9E6A==", + "version": "12.8.0", + "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.8.0.tgz", + "integrity": "sha512-c8+Wz19xauW0bGkTCoqZH4dYfbtBniPiGiRQOn1ca6G5jsjr4azwaTk9gwjVY8r3vY2Taf95eivLzipfIfiS4A==", "requires": { "@azure/abort-controller": "^1.0.0", - "@azure/core-http": "^1.2.0", - "@azure/core-lro": "^1.0.2", + "@azure/core-http": "^2.0.0", + "@azure/core-lro": "^2.2.0", "@azure/core-paging": "^1.1.1", - "@azure/core-tracing": "1.0.0-preview.11", + "@azure/core-tracing": "1.0.0-preview.13", "@azure/logger": "^1.0.0", "events": "^3.0.0", - "tslib": "^2.0.0" + "tslib": "^2.2.0" }, "dependencies": { "tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" } } }, @@ -1371,15 +1382,10 @@ "resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-8.3.8.tgz", "integrity": "sha512-T8TbSnGsxo6TDBJx/Sgv/BlVJL3tshxZP7Aq5R1mSnM5OcHY2dQaxLMu2+E8u3gN0MLOzdjurqN4ZRVuzQycOQ==" }, - "@opencensus/web-types": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/@opencensus/web-types/-/web-types-0.0.7.tgz", - "integrity": "sha512-xB+w7ZDAu3YBzqH44rCmG9/RlrOmFuDPt/bpf17eJr8eZSrLt7nc7LnWdxM9Mmoj/YKMHpxRg28txu3TcpiL+g==" - }, "@opentelemetry/api": { - "version": "1.0.0-rc.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.0-rc.0.tgz", - "integrity": "sha512-iXKByCMfrlO5S6Oh97BuM56tM2cIBB0XsL/vWF/AtJrJEKx4MC/Xdu0xDsGXMGcNWpqF7ujMsjjnp0+UHBwnDQ==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.3.tgz", + "integrity": "sha512-puWxACExDe9nxbBB3lOymQFrLYml2dVOrd7USiVRnSbgXE+KwBu+HxFvxrzfqsiSda9IWsXJG1ef7C1O2/GmKQ==" }, "@sinonjs/commons": { "version": "1.8.3", @@ -1495,24 +1501,12 @@ "integrity": "sha512-xRCgeE0Q4pT5UZ189TJ3SpYuX/QGl6QIAOAIeDSbAVAd2gX1NxSZup4jNVK7cxIeP8KDSbJgcckun495isP1jQ==" }, "@types/node-fetch": { - "version": "2.5.11", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.11.tgz", - "integrity": "sha512-2upCKaqVZETDRb8A2VTaRymqFBEgH8u6yr96b/u3+1uQEPDRo3mJLEiPk7vdXBHRtjwkjqzFYMJXrt0Z9QsYjQ==", + "version": "2.5.12", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz", + "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", "requires": { "@types/node": "*", "form-data": "^3.0.0" - }, - "dependencies": { - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } } }, "@types/prettier": { @@ -1534,9 +1528,9 @@ "dev": true }, "@types/tunnel": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.1.tgz", - "integrity": "sha512-AOqu6bQu5MSWwYvehMXLukFHnupHrpZ8nvgae5Ggie9UwzDR1CCwoXgSSWNZJuyOlCdfdsWMA5F2LlmvyoTv8A==", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.3.tgz", + "integrity": "sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==", "requires": { "@types/node": "*" } @@ -2228,7 +2222,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -4427,9 +4420,33 @@ "dev": true }, "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", + "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", + "requires": { + "whatwg-url": "^5.0.0" + }, + "dependencies": { + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } + } }, "node-int64": { "version": "0.4.0", diff --git a/package.json b/package.json index 0ce300b..72ca00b 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "author": "GitHub", "license": "MIT", "dependencies": { - "@actions/cache": "^1.0.7", + "@actions/cache": "^1.0.8", "@actions/core": "^1.2.6", "@actions/exec": "^1.0.4", "@actions/glob": "^0.2.0",