Merge pull request #483 from actions/aiqiaoy/windows-cache-path

Use @actions/cache 1.0.5
This commit is contained in:
Aiqiao Yan 2020-12-15 15:56:11 -05:00 committed by GitHub
commit 7b630ee04f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 2241 additions and 1331 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

1767
dist/restore/index.js vendored
View File

@ -1074,7 +1074,9 @@ function resolvePaths(patterns) {
try { try {
for (var _c = __asyncValues(globber.globGenerator()), _d; _d = yield _c.next(), !_d.done;) { for (var _c = __asyncValues(globber.globGenerator()), _d; _d = yield _c.next(), !_d.done;) {
const file = _d.value; const file = _d.value;
const relativeFile = path.relative(workspace, file); const relativeFile = path
.relative(workspace, file)
.replace(new RegExp(`\\${path.sep}`, 'g'), '/');
core.debug(`Matched: ${relativeFile}`); core.debug(`Matched: ${relativeFile}`);
// Paths are made relative so the tar entries are all relative to the root of the workspace. // Paths are made relative so the tar entries are all relative to the root of the workspace.
paths.push(`${relativeFile}`); paths.push(`${relativeFile}`);
@ -8540,12 +8542,19 @@ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _ar
function reject(value) { resume("throw", 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]); } function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
}; };
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const core = __webpack_require__(470); const core = __importStar(__webpack_require__(470));
const fs = __webpack_require__(747); const fs = __importStar(__webpack_require__(747));
const globOptionsHelper = __webpack_require__(601); const globOptionsHelper = __importStar(__webpack_require__(601));
const path = __webpack_require__(622); const path = __importStar(__webpack_require__(622));
const patternHelper = __webpack_require__(597); const patternHelper = __importStar(__webpack_require__(597));
const internal_match_kind_1 = __webpack_require__(327); const internal_match_kind_1 = __webpack_require__(327);
const internal_pattern_1 = __webpack_require__(923); const internal_pattern_1 = __webpack_require__(923);
const internal_search_state_1 = __webpack_require__(728); const internal_search_state_1 = __webpack_require__(728);
@ -9796,6 +9805,13 @@ var StorageError = {
type: { type: {
name: "String" name: "String"
} }
},
code: {
xmlName: "Code",
serializedName: "Code",
type: {
name: "String"
}
} }
} }
} }
@ -10156,6 +10172,13 @@ var BlobPropertiesInternal = {
type: { type: {
name: "String" name: "String"
} }
},
lastAccessedOn: {
xmlName: "LastAccessTime",
serializedName: "LastAccessTime",
type: {
name: "DateTimeRfc1123"
}
} }
} }
} }
@ -10861,6 +10884,70 @@ var JsonTextConfiguration = {
} }
} }
}; };
var ArrowField = {
xmlName: "Field",
serializedName: "ArrowField",
type: {
name: "Composite",
className: "ArrowField",
modelProperties: {
type: {
xmlName: "Type",
required: true,
serializedName: "Type",
type: {
name: "String"
}
},
name: {
xmlName: "Name",
serializedName: "Name",
type: {
name: "String"
}
},
precision: {
xmlName: "Precision",
serializedName: "Precision",
type: {
name: "Number"
}
},
scale: {
xmlName: "Scale",
serializedName: "Scale",
type: {
name: "Number"
}
}
}
}
};
var ArrowConfiguration = {
serializedName: "ArrowConfiguration",
type: {
name: "Composite",
className: "ArrowConfiguration",
modelProperties: {
schema: {
xmlIsWrapped: true,
xmlName: "Schema",
xmlElementName: "Field",
required: true,
serializedName: "Schema",
type: {
name: "Sequence",
element: {
type: {
name: "Composite",
className: "ArrowField"
}
}
}
}
}
}
};
var ListContainersSegmentResponse = { var ListContainersSegmentResponse = {
xmlName: "EnumerationResults", xmlName: "EnumerationResults",
serializedName: "ListContainersSegmentResponse", serializedName: "ListContainersSegmentResponse",
@ -11301,7 +11388,8 @@ var QueryFormat = {
name: "Enum", name: "Enum",
allowedValues: [ allowedValues: [
"delimited", "delimited",
"json" "json",
"arrow"
] ]
} }
}, },
@ -11320,6 +11408,14 @@ var QueryFormat = {
name: "Composite", name: "Composite",
className: "JsonTextConfiguration" className: "JsonTextConfiguration"
} }
},
arrowConfiguration: {
xmlName: "ArrowConfiguration",
serializedName: "ArrowConfiguration",
type: {
name: "Composite",
className: "ArrowConfiguration"
}
} }
} }
} }
@ -12973,6 +13069,12 @@ var BlobDownloadHeaders = {
name: "Boolean" name: "Boolean"
} }
}, },
lastAccessed: {
serializedName: "x-ms-last-access-time",
type: {
name: "DateTimeRfc1123"
}
},
contentCrc64: { contentCrc64: {
serializedName: "x-ms-content-crc64", serializedName: "x-ms-content-crc64",
type: { type: {
@ -13302,6 +13404,12 @@ var BlobGetPropertiesHeaders = {
name: "String" name: "String"
} }
}, },
lastAccessed: {
serializedName: "x-ms-last-access-time",
type: {
name: "DateTimeRfc1123"
}
},
errorCode: { errorCode: {
serializedName: "x-ms-error-code", serializedName: "x-ms-error-code",
type: { type: {
@ -17688,7 +17796,7 @@ var version = {
required: true, required: true,
isConstant: true, isConstant: true,
serializedName: "x-ms-version", serializedName: "x-ms-version",
defaultValue: '2019-12-12', defaultValue: '2020-02-10',
type: { type: {
name: "String" name: "String"
} }
@ -18680,6 +18788,8 @@ var getAccountInfoOperationSpec$1 = {
var Mappers$2 = /*#__PURE__*/Object.freeze({ var Mappers$2 = /*#__PURE__*/Object.freeze({
__proto__: null, __proto__: null,
ArrowConfiguration: ArrowConfiguration,
ArrowField: ArrowField,
BlobAbortCopyFromURLHeaders: BlobAbortCopyFromURLHeaders, BlobAbortCopyFromURLHeaders: BlobAbortCopyFromURLHeaders,
BlobAcquireLeaseHeaders: BlobAcquireLeaseHeaders, BlobAcquireLeaseHeaders: BlobAcquireLeaseHeaders,
BlobBreakLeaseHeaders: BlobBreakLeaseHeaders, BlobBreakLeaseHeaders: BlobBreakLeaseHeaders,
@ -20769,8 +20879,8 @@ var logger = logger$1.createClientLogger("storage-blob");
// Copyright (c) Microsoft Corporation. All rights reserved. // Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. // Licensed under the MIT License.
var SDK_VERSION = "12.2.1"; var SDK_VERSION = "12.3.0";
var SERVICE_VERSION = "2019-12-12"; var SERVICE_VERSION = "2020-02-10";
var BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES = 256 * 1024 * 1024; // 256MB 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_STAGE_BLOCK_BYTES = 4000 * 1024 * 1024; // 4000MB
var BLOCK_BLOB_MAX_BLOCKS = 50000; var BLOCK_BLOB_MAX_BLOCKS = 50000;
@ -21477,7 +21587,7 @@ function toTags(tags) {
* Convert BlobQueryTextConfiguration to QuerySerialization type. * Convert BlobQueryTextConfiguration to QuerySerialization type.
* *
* @export * @export
* @param {(BlobQueryJsonTextConfiguration | BlobQueryCsvTextConfiguration)} [textConfiguration] * @param {(BlobQueryJsonTextConfiguration | BlobQueryCsvTextConfiguration | BlobQueryArrowConfiguration)} [textConfiguration]
* @returns {(QuerySerialization | undefined)} * @returns {(QuerySerialization | undefined)}
*/ */
function toQuerySerialization(textConfiguration) { function toQuerySerialization(textConfiguration) {
@ -21507,6 +21617,15 @@ function toQuerySerialization(textConfiguration) {
} }
} }
}; };
case "arrow":
return {
format: {
type: "arrow",
arrowConfiguration: {
schema: textConfiguration.schema
}
}
};
default: default:
throw Error("Invalid BlobQueryTextConfiguration."); throw Error("Invalid BlobQueryTextConfiguration.");
} }
@ -22794,6 +22913,21 @@ var BlobDownloadResponse = /** @class */ (function () {
enumerable: false, enumerable: false,
configurable: true 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
* @type {(Date | undefined)}
* @memberof BlobDownloadResponse
*/
get: function () {
return this.originalResponse.lastAccessed;
},
enumerable: false,
configurable: true
});
Object.defineProperty(BlobDownloadResponse.prototype, "metadata", { Object.defineProperty(BlobDownloadResponse.prototype, "metadata", {
/** /**
* A name-value pair * A name-value pair
@ -24798,7 +24932,7 @@ var StorageSharedKeyCredential = /** @class */ (function (_super) {
* regenerated. * regenerated.
*/ */
var packageName = "azure-storage-blob"; var packageName = "azure-storage-blob";
var packageVersion = "12.2.1"; var packageVersion = "12.3.0";
var StorageClientContext = /** @class */ (function (_super) { var StorageClientContext = /** @class */ (function (_super) {
tslib.__extends(StorageClientContext, _super); tslib.__extends(StorageClientContext, _super);
/** /**
@ -24820,7 +24954,7 @@ var StorageClientContext = /** @class */ (function (_super) {
options.userAgent = packageName + "/" + packageVersion + " " + defaultUserAgent; options.userAgent = packageName + "/" + packageVersion + " " + defaultUserAgent;
} }
_this = _super.call(this, undefined, options) || this; _this = _super.call(this, undefined, options) || this;
_this.version = "2019-12-12"; _this.version = "2020-02-10";
_this.baseUri = "{url}"; _this.baseUri = "{url}";
_this.requestContentType = "application/json; charset=utf-8"; _this.requestContentType = "application/json; charset=utf-8";
_this.url = url; _this.url = url;
@ -28164,6 +28298,56 @@ var BlockBlobClient = /** @class */ (function (_super) {
}); });
}; };
// High level functions // High level functions
/**
* Uploads a Buffer(Node.js)/Blob(browsers)/ArrayBuffer/ArrayBufferView object to a BlockBlob.
*
* When data length is no more than the specifiled {@link BlockBlobParallelUploadOptions.maxSingleShotSize} (default is
* {@link BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES}), this method will use 1 {@link upload} call to finish the upload.
* Otherwise, this method will call {@link stageBlock} to upload blocks, and finally call {@link commitBlockList}
* to commit the block list.
*
* @export
* @param {Buffer | Blob | ArrayBuffer | ArrayBufferView} data Buffer(Node.js), Blob, ArrayBuffer or ArrayBufferView
* @param {BlockBlobParallelUploadOptions} [options]
* @returns {Promise<BlobUploadCommonResponse>}
* @memberof BlockBlobClient
*/
BlockBlobClient.prototype.uploadData = function (data, options) {
if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, buffer_1, browserBlob_1;
return tslib.__generator(this, function (_b) {
_a = createSpan("BlockBlobClient-uploadData", options.tracingOptions), span = _a.span, spanOptions = _a.spanOptions;
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, tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions }) }))];
}
else {}
}
catch (e) {
span.setStatus({
code: api.CanonicalCode.UNKNOWN,
message: e.message
});
throw e;
}
finally {
span.end();
}
return [2 /*return*/];
});
});
};
/** /**
* ONLY AVAILABLE IN BROWSERS. * ONLY AVAILABLE IN BROWSERS.
* *
@ -28173,6 +28357,8 @@ var BlockBlobClient = /** @class */ (function (_super) {
* Otherwise, this method will call {@link stageBlock} to upload blocks, and finally call * Otherwise, this method will call {@link stageBlock} to upload blocks, and finally call
* {@link commitBlockList} to commit the block list. * {@link commitBlockList} to commit the block list.
* *
* @deprecated Use {@link uploadData} instead.
*
* @export * @export
* @param {Blob | ArrayBuffer | ArrayBufferView} browserData Blob, File, ArrayBuffer or ArrayBufferView * @param {Blob | ArrayBuffer | ArrayBufferView} browserData Blob, File, ArrayBuffer or ArrayBufferView
* @param {BlockBlobParallelUploadOptions} [options] Options to upload browser data. * @param {BlockBlobParallelUploadOptions} [options] Options to upload browser data.
@ -28182,7 +28368,7 @@ var BlockBlobClient = /** @class */ (function (_super) {
BlockBlobClient.prototype.uploadBrowserData = function (browserData, options) { BlockBlobClient.prototype.uploadBrowserData = function (browserData, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, browserBlob_1, e_29; var _a, span, spanOptions, browserBlob_2, e_29;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -28190,10 +28376,8 @@ var BlockBlobClient = /** @class */ (function (_super) {
_b.label = 1; _b.label = 1;
case 1: case 1:
_b.trys.push([1, 3, 4, 5]); _b.trys.push([1, 3, 4, 5]);
browserBlob_1 = new Blob([browserData]); browserBlob_2 = new Blob([browserData]);
return [4 /*yield*/, this.uploadSeekableBlob(function (offset, size) { return [4 /*yield*/, this.uploadSeekableInternal(function (offset, size) { return browserBlob_2.slice(offset, offset + size); }, browserBlob_2.size, tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions }) }))];
return browserBlob_1.slice(offset, offset + size);
}, browserBlob_1.size, tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions }) }))];
case 2: return [2 /*return*/, _b.sent()]; case 2: return [2 /*return*/, _b.sent()];
case 3: case 3:
e_29 = _b.sent(); e_29 = _b.sent();
@ -28211,22 +28395,22 @@ var BlockBlobClient = /** @class */ (function (_super) {
}); });
}; };
/** /**
* ONLY AVAILABLE IN BROWSERS.
* *
* Uploads a browser {@link Blob} object to block blob. Requires a blobFactory as the data source, * Uploads data to block blob. Requires a bodyFactory as the data source,
* which need to return a {@link Blob} object with the offset and size provided. * which need to return a {@link HttpRequestBody} object with the offset and size provided.
* *
* When buffer length <= 256MB, this method will use 1 upload call to finish the upload. * When data length is no more than the specifiled {@link BlockBlobParallelUploadOptions.maxSingleShotSize} (default is
* Otherwise, this method will call stageBlock to upload blocks, and finally call commitBlockList * {@link BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES}), this method will use 1 {@link upload} call to finish the upload.
* Otherwise, this method will call {@link stageBlock} to upload blocks, and finally call {@link commitBlockList}
* to commit the block list. * to commit the block list.
* *
* @param {(offset: number, size: number) => Blob} blobFactory * @param {(offset: number, size: number) => HttpRequestBody} bodyFactory
* @param {number} size size of the data to upload. * @param {number} size size of the data to upload.
* @param {BlockBlobParallelUploadOptions} [options] Options to Upload to Block Blob operation. * @param {BlockBlobParallelUploadOptions} [options] Options to Upload to Block Blob operation.
* @returns {Promise<BlobUploadCommonResponse>} Response data for the Blob Upload operation. * @returns {Promise<BlobUploadCommonResponse>} Response data for the Blob Upload operation.
* @memberof BlockBlobClient * @memberof BlockBlobClient
*/ */
BlockBlobClient.prototype.uploadSeekableBlob = function (blobFactory, size, options) { BlockBlobClient.prototype.uploadSeekableInternal = function (bodyFactory, size, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, numBlocks_1, blockList_1, blockIDPrefix_1, transferProgress_2, batch, _loop_2, i, e_30; var _a, span, spanOptions, numBlocks_1, blockList_1, blockIDPrefix_1, transferProgress_2, batch, _loop_2, i, e_30;
@ -28264,12 +28448,12 @@ var BlockBlobClient = /** @class */ (function (_super) {
if (!options.conditions) { if (!options.conditions) {
options.conditions = {}; options.conditions = {};
} }
_a = createSpan("BlockBlobClient-UploadSeekableBlob", options.tracingOptions), span = _a.span, spanOptions = _a.spanOptions; _a = createSpan("BlockBlobClient-uploadSeekableInternal", options.tracingOptions), span = _a.span, spanOptions = _a.spanOptions;
_b.label = 1; _b.label = 1;
case 1: case 1:
_b.trys.push([1, 5, 6, 7]); _b.trys.push([1, 5, 6, 7]);
if (!(size <= options.maxSingleShotSize)) return [3 /*break*/, 3]; if (!(size <= options.maxSingleShotSize)) return [3 /*break*/, 3];
return [4 /*yield*/, this.upload(blobFactory(0, size), size, tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions }) }))]; return [4 /*yield*/, this.upload(bodyFactory(0, size), size, tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions }) }))];
case 2: return [2 /*return*/, _b.sent()]; case 2: return [2 /*return*/, _b.sent()];
case 3: case 3:
numBlocks_1 = Math.floor((size - 1) / options.blockSize) + 1; numBlocks_1 = Math.floor((size - 1) / options.blockSize) + 1;
@ -28292,7 +28476,7 @@ var BlockBlobClient = /** @class */ (function (_super) {
end = i === numBlocks_1 - 1 ? size : start + options.blockSize; end = i === numBlocks_1 - 1 ? size : start + options.blockSize;
contentLength = end - start; contentLength = end - start;
blockList_1.push(blockID); blockList_1.push(blockID);
return [4 /*yield*/, this.stageBlock(blockID, blobFactory(start, contentLength), contentLength, { return [4 /*yield*/, this.stageBlock(blockID, bodyFactory(start, contentLength), contentLength, {
abortSignal: options.abortSignal, abortSignal: options.abortSignal,
conditions: options.conditions, conditions: options.conditions,
encryptionScope: options.encryptionScope, encryptionScope: options.encryptionScope,
@ -28363,12 +28547,14 @@ var BlockBlobClient = /** @class */ (function (_super) {
return [4 /*yield*/, fsStat(filePath)]; return [4 /*yield*/, fsStat(filePath)];
case 2: case 2:
size = (_b.sent()).size; size = (_b.sent()).size;
return [4 /*yield*/, this.uploadResetableStream(function (offset, count) { return [4 /*yield*/, this.uploadSeekableInternal(function (offset, count) {
return fsCreateReadStream(filePath, { return function () {
autoClose: true, return fsCreateReadStream(filePath, {
end: count ? offset + count - 1 : Infinity, autoClose: true,
start: offset end: count ? offset + count - 1 : Infinity,
}); start: offset
});
};
}, size, tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions }) }))]; }, size, tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions }) }))];
case 3: return [2 /*return*/, _b.sent()]; case 3: return [2 /*return*/, _b.sent()];
case 4: case 4:
@ -28476,132 +28662,6 @@ var BlockBlobClient = /** @class */ (function (_super) {
}); });
}); });
}; };
/**
* ONLY AVAILABLE IN NODE.JS RUNTIME.
*
* Accepts a Node.js Readable stream factory, and uploads in blocks to a block blob.
* The Readable stream factory must returns a Node.js Readable stream starting from the offset defined. The offset
* is the offset in the block blob to be uploaded.
*
* When buffer length <= 256MB, this method will use 1 upload call to finish the upload.
* Otherwise, this method will call {@link stageBlock} to upload blocks, and finally call {@link commitBlockList}
* to commit the block list.
*
* @export
* @param {(offset: number) => NodeJS.ReadableStream} streamFactory Returns a Node.js Readable stream starting
* from the offset defined
* @param {number} size Size of the block blob
* @param {BlockBlobParallelUploadOptions} [options] Options to Upload to Block Blob operation.
* @returns {(Promise<BlobUploadCommonResponse>)} Response data for the Blob Upload operation.
* @memberof BlockBlobClient
*/
BlockBlobClient.prototype.uploadResetableStream = function (streamFactory, size, options) {
if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, numBlocks_2, blockList_3, blockIDPrefix_3, transferProgress_4, batch, _loop_3, i, e_33;
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_BLOCKS * BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES) {
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-uploadResetableStream", options.tracingOptions), span = _a.span, spanOptions = _a.spanOptions;
_b.label = 1;
case 1:
_b.trys.push([1, 6, 7, 8]);
if (!(size <= options.maxSingleShotSize)) return [3 /*break*/, 3];
return [4 /*yield*/, this.upload(function () { return streamFactory(0); }, size, tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions }) }))];
case 2: return [2 /*return*/, _b.sent()];
case 3:
numBlocks_2 = Math.floor((size - 1) / options.blockSize) + 1;
if (numBlocks_2 > 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_3 = [];
blockIDPrefix_3 = coreHttp.generateUuid();
transferProgress_4 = 0;
batch = new Batch(options.concurrency);
_loop_3 = 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_3, i);
start = options.blockSize * i;
end = i === numBlocks_2 - 1 ? size : start + options.blockSize;
contentLength = end - start;
blockList_3.push(blockID);
return [4 /*yield*/, this.stageBlock(blockID, function () { return streamFactory(start, contentLength); }, contentLength, {
abortSignal: options.abortSignal,
conditions: options.conditions,
encryptionScope: options.encryptionScope,
tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions })
})];
case 1:
_a.sent();
// Update progress after block is successfully uploaded to server, in case of block trying
transferProgress_4 += contentLength;
if (options.onProgress) {
options.onProgress({ loadedBytes: transferProgress_4 });
}
return [2 /*return*/];
}
});
}); });
};
for (i = 0; i < numBlocks_2; i++) {
_loop_3(i);
}
return [4 /*yield*/, batch.do()];
case 4:
_b.sent();
return [4 /*yield*/, this.commitBlockList(blockList_3, tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions }) }))];
case 5: return [2 /*return*/, _b.sent()];
case 6:
e_33 = _b.sent();
span.setStatus({
code: api.CanonicalCode.UNKNOWN,
message: e_33.message
});
throw e_33;
case 7:
span.end();
return [7 /*endfinally*/];
case 8: return [2 /*return*/];
}
});
});
};
return BlockBlobClient; return BlockBlobClient;
}(BlobClient)); }(BlobClient));
/** /**
@ -28700,7 +28760,7 @@ var PageBlobClient = /** @class */ (function (_super) {
var _a; var _a;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _b, span, spanOptions, e_34; var _b, span, spanOptions, e_33;
return tslib.__generator(this, function (_c) { return tslib.__generator(this, function (_c) {
switch (_c.label) { switch (_c.label) {
case 0: case 0:
@ -28725,12 +28785,12 @@ var PageBlobClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _c.sent()]; case 2: return [2 /*return*/, _c.sent()];
case 3: case 3:
e_34 = _c.sent(); e_33 = _c.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_34.message message: e_33.message
}); });
throw e_34; throw e_33;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -28754,7 +28814,7 @@ var PageBlobClient = /** @class */ (function (_super) {
var _a, _b; var _a, _b;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _c, span, spanOptions, conditions, res, e_35; var _c, span, spanOptions, conditions, res, e_34;
return tslib.__generator(this, function (_d) { return tslib.__generator(this, function (_d) {
switch (_d.label) { switch (_d.label) {
case 0: case 0:
@ -28769,19 +28829,19 @@ var PageBlobClient = /** @class */ (function (_super) {
return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable
})]; })];
case 3: case 3:
e_35 = _d.sent(); e_34 = _d.sent();
if (((_a = e_35.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "BlobAlreadyExists") { if (((_a = e_34.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "BlobAlreadyExists") {
span.setStatus({ span.setStatus({
code: api.CanonicalCode.ALREADY_EXISTS, code: api.CanonicalCode.ALREADY_EXISTS,
message: "Expected exception when creating a blob only if it does not already exist." 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 })]; return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: false }, (_b = e_34.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e_34.response })];
} }
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_35.message message: e_34.message
}); });
throw e_35; throw e_34;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -28805,7 +28865,7 @@ var PageBlobClient = /** @class */ (function (_super) {
var _a; var _a;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _b, span, spanOptions, e_36; var _b, span, spanOptions, e_35;
return tslib.__generator(this, function (_c) { return tslib.__generator(this, function (_c) {
switch (_c.label) { switch (_c.label) {
case 0: case 0:
@ -28830,12 +28890,12 @@ var PageBlobClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _c.sent()]; case 2: return [2 /*return*/, _c.sent()];
case 3: case 3:
e_36 = _c.sent(); e_35 = _c.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_36.message message: e_35.message
}); });
throw e_36; throw e_35;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -28861,7 +28921,7 @@ var PageBlobClient = /** @class */ (function (_super) {
var _a; var _a;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _b, span, spanOptions, e_37; var _b, span, spanOptions, e_36;
return tslib.__generator(this, function (_c) { return tslib.__generator(this, function (_c) {
switch (_c.label) { switch (_c.label) {
case 0: case 0:
@ -28891,12 +28951,12 @@ var PageBlobClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _c.sent()]; case 2: return [2 /*return*/, _c.sent()];
case 3: case 3:
e_37 = _c.sent(); e_36 = _c.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_37.message message: e_36.message
}); });
throw e_37; throw e_36;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -28920,7 +28980,7 @@ var PageBlobClient = /** @class */ (function (_super) {
if (offset === void 0) { offset = 0; } if (offset === void 0) { offset = 0; }
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _b, span, spanOptions, e_38; var _b, span, spanOptions, e_37;
return tslib.__generator(this, function (_c) { return tslib.__generator(this, function (_c) {
switch (_c.label) { switch (_c.label) {
case 0: case 0:
@ -28941,12 +29001,12 @@ var PageBlobClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _c.sent()]; case 2: return [2 /*return*/, _c.sent()];
case 3: case 3:
e_38 = _c.sent(); e_37 = _c.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_38.message message: e_37.message
}); });
throw e_38; throw e_37;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -28970,7 +29030,7 @@ var PageBlobClient = /** @class */ (function (_super) {
if (offset === void 0) { offset = 0; } if (offset === void 0) { offset = 0; }
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _b, span, spanOptions, e_39; var _b, span, spanOptions, e_38;
return tslib.__generator(this, function (_c) { return tslib.__generator(this, function (_c) {
switch (_c.label) { switch (_c.label) {
case 0: case 0:
@ -28990,12 +29050,12 @@ var PageBlobClient = /** @class */ (function (_super) {
.then(rangeResponseFromModel)]; .then(rangeResponseFromModel)];
case 2: return [2 /*return*/, _c.sent()]; case 2: return [2 /*return*/, _c.sent()];
case 3: case 3:
e_39 = _c.sent(); e_38 = _c.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_39.message message: e_38.message
}); });
throw e_39; throw e_38;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29019,7 +29079,7 @@ var PageBlobClient = /** @class */ (function (_super) {
var _a; var _a;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _b, span, spanOptions, e_40; var _b, span, spanOptions, e_39;
return tslib.__generator(this, function (_c) { return tslib.__generator(this, function (_c) {
switch (_c.label) { switch (_c.label) {
case 0: case 0:
@ -29040,12 +29100,12 @@ var PageBlobClient = /** @class */ (function (_super) {
.then(rangeResponseFromModel)]; .then(rangeResponseFromModel)];
case 2: return [2 /*return*/, _c.sent()]; case 2: return [2 /*return*/, _c.sent()];
case 3: case 3:
e_40 = _c.sent(); e_39 = _c.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_40.message message: e_39.message
}); });
throw e_40; throw e_39;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29069,7 +29129,7 @@ var PageBlobClient = /** @class */ (function (_super) {
var _a; var _a;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _b, span, spanOptions, e_41; var _b, span, spanOptions, e_40;
return tslib.__generator(this, function (_c) { return tslib.__generator(this, function (_c) {
switch (_c.label) { switch (_c.label) {
case 0: case 0:
@ -29090,12 +29150,12 @@ var PageBlobClient = /** @class */ (function (_super) {
.then(rangeResponseFromModel)]; .then(rangeResponseFromModel)];
case 2: return [2 /*return*/, _c.sent()]; case 2: return [2 /*return*/, _c.sent()];
case 3: case 3:
e_41 = _c.sent(); e_40 = _c.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_41.message message: e_40.message
}); });
throw e_41; throw e_40;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29117,7 +29177,7 @@ var PageBlobClient = /** @class */ (function (_super) {
var _a; var _a;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _b, span, spanOptions, e_42; var _b, span, spanOptions, e_41;
return tslib.__generator(this, function (_c) { return tslib.__generator(this, function (_c) {
switch (_c.label) { switch (_c.label) {
case 0: case 0:
@ -29135,12 +29195,12 @@ var PageBlobClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _c.sent()]; case 2: return [2 /*return*/, _c.sent()];
case 3: case 3:
e_42 = _c.sent(); e_41 = _c.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_42.message message: e_41.message
}); });
throw e_42; throw e_41;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29163,7 +29223,7 @@ var PageBlobClient = /** @class */ (function (_super) {
var _a; var _a;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _b, span, spanOptions, e_43; var _b, span, spanOptions, e_42;
return tslib.__generator(this, function (_c) { return tslib.__generator(this, function (_c) {
switch (_c.label) { switch (_c.label) {
case 0: case 0:
@ -29181,12 +29241,12 @@ var PageBlobClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _c.sent()]; case 2: return [2 /*return*/, _c.sent()];
case 3: case 3:
e_43 = _c.sent(); e_42 = _c.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_43.message message: e_42.message
}); });
throw e_43; throw e_42;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29213,7 +29273,7 @@ var PageBlobClient = /** @class */ (function (_super) {
var _a; var _a;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _b, span, spanOptions, e_44; var _b, span, spanOptions, e_43;
return tslib.__generator(this, function (_c) { return tslib.__generator(this, function (_c) {
switch (_c.label) { switch (_c.label) {
case 0: case 0:
@ -29228,12 +29288,12 @@ var PageBlobClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _c.sent()]; case 2: return [2 /*return*/, _c.sent()];
case 3: case 3:
e_44 = _c.sent(); e_43 = _c.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_44.message message: e_43.message
}); });
throw e_44; throw e_43;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29318,7 +29378,7 @@ var BlobLeaseClient = /** @class */ (function () {
var _a, _b, _c, _d, _e, _f; var _a, _b, _c, _d, _e, _f;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _g, span, spanOptions, e_45; var _g, span, spanOptions, e_44;
return tslib.__generator(this, function (_h) { return tslib.__generator(this, function (_h) {
switch (_h.label) { switch (_h.label) {
case 0: case 0:
@ -29340,12 +29400,12 @@ var BlobLeaseClient = /** @class */ (function () {
})]; })];
case 2: return [2 /*return*/, _h.sent()]; case 2: return [2 /*return*/, _h.sent()];
case 3: case 3:
e_45 = _h.sent(); e_44 = _h.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_45.message message: e_44.message
}); });
throw e_45; throw e_44;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29369,7 +29429,7 @@ var BlobLeaseClient = /** @class */ (function () {
var _a, _b, _c, _d, _e, _f; var _a, _b, _c, _d, _e, _f;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _g, span, spanOptions, response, e_46; var _g, span, spanOptions, response, e_45;
return tslib.__generator(this, function (_h) { return tslib.__generator(this, function (_h) {
switch (_h.label) { switch (_h.label) {
case 0: case 0:
@ -29392,12 +29452,12 @@ var BlobLeaseClient = /** @class */ (function () {
this._leaseId = proposedLeaseId; this._leaseId = proposedLeaseId;
return [2 /*return*/, response]; return [2 /*return*/, response];
case 3: case 3:
e_46 = _h.sent(); e_45 = _h.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_46.message message: e_45.message
}); });
throw e_46; throw e_45;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29421,7 +29481,7 @@ var BlobLeaseClient = /** @class */ (function () {
var _a, _b, _c, _d, _e, _f; var _a, _b, _c, _d, _e, _f;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _g, span, spanOptions, e_47; var _g, span, spanOptions, e_46;
return tslib.__generator(this, function (_h) { return tslib.__generator(this, function (_h) {
switch (_h.label) { switch (_h.label) {
case 0: case 0:
@ -29441,12 +29501,12 @@ var BlobLeaseClient = /** @class */ (function () {
})]; })];
case 2: return [2 /*return*/, _h.sent()]; case 2: return [2 /*return*/, _h.sent()];
case 3: case 3:
e_47 = _h.sent(); e_46 = _h.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_47.message message: e_46.message
}); });
throw e_47; throw e_46;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29469,7 +29529,7 @@ var BlobLeaseClient = /** @class */ (function () {
var _a, _b, _c, _d, _e, _f; var _a, _b, _c, _d, _e, _f;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _g, span, spanOptions, e_48; var _g, span, spanOptions, e_47;
return tslib.__generator(this, function (_h) { return tslib.__generator(this, function (_h) {
switch (_h.label) { switch (_h.label) {
case 0: case 0:
@ -29489,12 +29549,12 @@ var BlobLeaseClient = /** @class */ (function () {
})]; })];
case 2: return [2 /*return*/, _h.sent()]; case 2: return [2 /*return*/, _h.sent()];
case 3: case 3:
e_48 = _h.sent(); e_47 = _h.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_48.message message: e_47.message
}); });
throw e_48; throw e_47;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29520,7 +29580,7 @@ var BlobLeaseClient = /** @class */ (function () {
var _a, _b, _c, _d, _e, _f; var _a, _b, _c, _d, _e, _f;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _g, span, spanOptions, operationOptions, e_49; var _g, span, spanOptions, operationOptions, e_48;
return tslib.__generator(this, function (_h) { return tslib.__generator(this, function (_h) {
switch (_h.label) { switch (_h.label) {
case 0: case 0:
@ -29542,12 +29602,12 @@ var BlobLeaseClient = /** @class */ (function () {
return [4 /*yield*/, this._containerOrBlobOperation.breakLease(operationOptions)]; return [4 /*yield*/, this._containerOrBlobOperation.breakLease(operationOptions)];
case 2: return [2 /*return*/, _h.sent()]; case 2: return [2 /*return*/, _h.sent()];
case 3: case 3:
e_49 = _h.sent(); e_48 = _h.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_49.message message: e_48.message
}); });
throw e_49; throw e_48;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29652,7 +29712,7 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.create = function (options) { ContainerClient.prototype.create = function (options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, e_50; var _a, span, spanOptions, e_49;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -29666,12 +29726,12 @@ var ContainerClient = /** @class */ (function (_super) {
// this will filter out unwanted properties from the response object into result object // this will filter out unwanted properties from the response object into result object
return [2 /*return*/, _b.sent()]; return [2 /*return*/, _b.sent()];
case 3: case 3:
e_50 = _b.sent(); e_49 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_50.message message: e_49.message
}); });
throw e_50; throw e_49;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29693,7 +29753,7 @@ var ContainerClient = /** @class */ (function (_super) {
var _a, _b; var _a, _b;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _c, span, spanOptions, res, e_51; var _c, span, spanOptions, res, e_50;
return tslib.__generator(this, function (_d) { return tslib.__generator(this, function (_d) {
switch (_d.label) { switch (_d.label) {
case 0: case 0:
@ -29707,19 +29767,19 @@ var ContainerClient = /** @class */ (function (_super) {
return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable
})]; })];
case 3: case 3:
e_51 = _d.sent(); e_50 = _d.sent();
if (((_a = e_51.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "ContainerAlreadyExists") { if (((_a = e_50.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "ContainerAlreadyExists") {
span.setStatus({ span.setStatus({
code: api.CanonicalCode.ALREADY_EXISTS, code: api.CanonicalCode.ALREADY_EXISTS,
message: "Expected exception when creating a container only if it does not already exist." 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_51.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e_51.response })]; return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: false }, (_b = e_50.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e_50.response })];
} }
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_51.message message: e_50.message
}); });
throw e_51; throw e_50;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29742,7 +29802,7 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.exists = function (options) { ContainerClient.prototype.exists = function (options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, e_52; var _a, span, spanOptions, e_51;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -29758,8 +29818,8 @@ var ContainerClient = /** @class */ (function (_super) {
_b.sent(); _b.sent();
return [2 /*return*/, true]; return [2 /*return*/, true];
case 3: case 3:
e_52 = _b.sent(); e_51 = _b.sent();
if (e_52.statusCode === 404) { if (e_51.statusCode === 404) {
span.setStatus({ span.setStatus({
code: api.CanonicalCode.NOT_FOUND, code: api.CanonicalCode.NOT_FOUND,
message: "Expected exception when checking container existence" message: "Expected exception when checking container existence"
@ -29768,9 +29828,9 @@ var ContainerClient = /** @class */ (function (_super) {
} }
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_52.message message: e_51.message
}); });
throw e_52; throw e_51;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29845,7 +29905,7 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.getProperties = function (options) { ContainerClient.prototype.getProperties = function (options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, e_53; var _a, span, spanOptions, e_52;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -29859,12 +29919,12 @@ var ContainerClient = /** @class */ (function (_super) {
return [4 /*yield*/, this.containerContext.getProperties(tslib.__assign(tslib.__assign({ abortSignal: options.abortSignal }, options.conditions), { spanOptions: spanOptions }))]; return [4 /*yield*/, this.containerContext.getProperties(tslib.__assign(tslib.__assign({ abortSignal: options.abortSignal }, options.conditions), { spanOptions: spanOptions }))];
case 2: return [2 /*return*/, _b.sent()]; case 2: return [2 /*return*/, _b.sent()];
case 3: case 3:
e_53 = _b.sent(); e_52 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_53.message message: e_52.message
}); });
throw e_53; throw e_52;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29885,7 +29945,7 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.delete = function (options) { ContainerClient.prototype.delete = function (options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, e_54; var _a, span, spanOptions, e_53;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -29904,12 +29964,12 @@ var ContainerClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _b.sent()]; case 2: return [2 /*return*/, _b.sent()];
case 3: case 3:
e_54 = _b.sent(); e_53 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_54.message message: e_53.message
}); });
throw e_54; throw e_53;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29931,7 +29991,7 @@ var ContainerClient = /** @class */ (function (_super) {
var _a, _b; var _a, _b;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _c, span, spanOptions, res, e_55; var _c, span, spanOptions, res, e_54;
return tslib.__generator(this, function (_d) { return tslib.__generator(this, function (_d) {
switch (_d.label) { switch (_d.label) {
case 0: case 0:
@ -29945,19 +30005,19 @@ var ContainerClient = /** @class */ (function (_super) {
return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable
})]; })];
case 3: case 3:
e_55 = _d.sent(); e_54 = _d.sent();
if (((_a = e_55.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "ContainerNotFound") { if (((_a = e_54.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "ContainerNotFound") {
span.setStatus({ span.setStatus({
code: api.CanonicalCode.NOT_FOUND, code: api.CanonicalCode.NOT_FOUND,
message: "Expected exception when deleting a container only if it exists." message: "Expected exception when deleting a container only if it exists."
}); });
return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: false }, (_b = e_55.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e_55.response })]; return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: false }, (_b = e_54.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e_54.response })];
} }
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_55.message message: e_54.message
}); });
throw e_55; throw e_54;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29983,7 +30043,7 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.setMetadata = function (metadata, options) { ContainerClient.prototype.setMetadata = function (metadata, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, e_56; var _a, span, spanOptions, e_55;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -30006,12 +30066,12 @@ var ContainerClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _b.sent()]; case 2: return [2 /*return*/, _b.sent()];
case 3: case 3:
e_56 = _b.sent(); e_55 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_56.message message: e_55.message
}); });
throw e_56; throw e_55;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -30036,7 +30096,7 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.getAccessPolicy = function (options) { ContainerClient.prototype.getAccessPolicy = function (options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, response, res, _i, response_1, identifier, accessPolicy, e_57; var _a, span, spanOptions, response, res, _i, response_1, identifier, accessPolicy, e_56;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -30087,12 +30147,12 @@ var ContainerClient = /** @class */ (function (_super) {
} }
return [2 /*return*/, res]; return [2 /*return*/, res];
case 3: case 3:
e_57 = _b.sent(); e_56 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_57.message message: e_56.message
}); });
throw e_57; throw e_56;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -30123,7 +30183,7 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.setAccessPolicy = function (access, containerAcl, options) { ContainerClient.prototype.setAccessPolicy = function (access, containerAcl, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, acl, _i, _b, identifier, e_58; var _a, span, spanOptions, acl, _i, _b, identifier, e_57;
return tslib.__generator(this, function (_c) { return tslib.__generator(this, function (_c) {
switch (_c.label) { switch (_c.label) {
case 0: case 0:
@ -30158,12 +30218,12 @@ var ContainerClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _c.sent()]; case 2: return [2 /*return*/, _c.sent()];
case 3: case 3:
e_58 = _c.sent(); e_57 = _c.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_58.message message: e_57.message
}); });
throw e_58; throw e_57;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -30208,7 +30268,7 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.uploadBlockBlob = function (blobName, body, contentLength, options) { ContainerClient.prototype.uploadBlockBlob = function (blobName, body, contentLength, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, blockBlobClient, response, e_59; var _a, span, spanOptions, blockBlobClient, response, e_58;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -30225,12 +30285,12 @@ var ContainerClient = /** @class */ (function (_super) {
response: response response: response
}]; }];
case 3: case 3:
e_59 = _b.sent(); e_58 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_59.message message: e_58.message
}); });
throw e_59; throw e_58;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -30254,7 +30314,7 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.deleteBlob = function (blobName, options) { ContainerClient.prototype.deleteBlob = function (blobName, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, blobClient, e_60; var _a, span, spanOptions, blobClient, e_59;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -30269,12 +30329,12 @@ var ContainerClient = /** @class */ (function (_super) {
return [4 /*yield*/, blobClient.delete(tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions }) }))]; return [4 /*yield*/, blobClient.delete(tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions }) }))];
case 2: return [2 /*return*/, _b.sent()]; case 2: return [2 /*return*/, _b.sent()];
case 3: case 3:
e_60 = _b.sent(); e_59 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_60.message message: e_59.message
}); });
throw e_60; throw e_59;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -30298,7 +30358,7 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.listBlobFlatSegment = function (marker, options) { ContainerClient.prototype.listBlobFlatSegment = function (marker, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, response, wrappedResponse, e_61; var _a, span, spanOptions, response, wrappedResponse, e_60;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -30315,12 +30375,12 @@ var ContainerClient = /** @class */ (function (_super) {
}) }) }); }) }) });
return [2 /*return*/, wrappedResponse]; return [2 /*return*/, wrappedResponse];
case 3: case 3:
e_61 = _b.sent(); e_60 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_61.message message: e_60.message
}); });
throw e_61; throw e_60;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -30345,7 +30405,7 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.listBlobHierarchySegment = function (delimiter, marker, options) { ContainerClient.prototype.listBlobHierarchySegment = function (delimiter, marker, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, response, wrappedResponse, e_62; var _a, span, spanOptions, response, wrappedResponse, e_61;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -30362,12 +30422,12 @@ var ContainerClient = /** @class */ (function (_super) {
}) }) }); }) }) });
return [2 /*return*/, wrappedResponse]; return [2 /*return*/, wrappedResponse];
case 3: case 3:
e_62 = _b.sent(); e_61 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_62.message message: e_61.message
}); });
throw e_62; throw e_61;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -30429,8 +30489,8 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.listItems = function (options) { ContainerClient.prototype.listItems = function (options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__asyncGenerator(this, arguments, function listItems_1() { return tslib.__asyncGenerator(this, arguments, function listItems_1() {
var marker, _a, _b, listBlobsFlatSegmentResponse, e_63_1; var marker, _a, _b, listBlobsFlatSegmentResponse, e_62_1;
var e_63, _c; var e_62, _c;
return tslib.__generator(this, function (_d) { return tslib.__generator(this, function (_d) {
switch (_d.label) { switch (_d.label) {
case 0: case 0:
@ -30449,8 +30509,8 @@ var ContainerClient = /** @class */ (function (_super) {
case 5: return [3 /*break*/, 1]; case 5: return [3 /*break*/, 1];
case 6: return [3 /*break*/, 13]; case 6: return [3 /*break*/, 13];
case 7: case 7:
e_63_1 = _d.sent(); e_62_1 = _d.sent();
e_63 = { error: e_63_1 }; e_62 = { error: e_62_1 };
return [3 /*break*/, 13]; return [3 /*break*/, 13];
case 8: case 8:
_d.trys.push([8, , 11, 12]); _d.trys.push([8, , 11, 12]);
@ -30461,7 +30521,7 @@ var ContainerClient = /** @class */ (function (_super) {
_d.label = 10; _d.label = 10;
case 10: return [3 /*break*/, 12]; case 10: return [3 /*break*/, 12];
case 11: case 11:
if (e_63) throw e_63.error; if (e_62) throw e_62.error;
return [7 /*endfinally*/]; return [7 /*endfinally*/];
case 12: return [7 /*endfinally*/]; case 12: return [7 /*endfinally*/];
case 13: return [2 /*return*/]; case 13: return [2 /*return*/];
@ -30650,8 +30710,8 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.listItemsByHierarchy = function (delimiter, options) { ContainerClient.prototype.listItemsByHierarchy = function (delimiter, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__asyncGenerator(this, arguments, function listItemsByHierarchy_1() { return tslib.__asyncGenerator(this, arguments, function listItemsByHierarchy_1() {
var marker, _a, _b, listBlobsHierarchySegmentResponse, segment, _i, _c, prefix, _d, _e, blob, e_64_1; var marker, _a, _b, listBlobsHierarchySegmentResponse, segment, _i, _c, prefix, _d, _e, blob, e_63_1;
var e_64, _f; var e_63, _f;
return tslib.__generator(this, function (_g) { return tslib.__generator(this, function (_g) {
switch (_g.label) { switch (_g.label) {
case 0: case 0:
@ -30694,8 +30754,8 @@ var ContainerClient = /** @class */ (function (_super) {
case 12: return [3 /*break*/, 1]; case 12: return [3 /*break*/, 1];
case 13: return [3 /*break*/, 20]; case 13: return [3 /*break*/, 20];
case 14: case 14:
e_64_1 = _g.sent(); e_63_1 = _g.sent();
e_64 = { error: e_64_1 }; e_63 = { error: e_63_1 };
return [3 /*break*/, 20]; return [3 /*break*/, 20];
case 15: case 15:
_g.trys.push([15, , 18, 19]); _g.trys.push([15, , 18, 19]);
@ -30706,7 +30766,7 @@ var ContainerClient = /** @class */ (function (_super) {
_g.label = 17; _g.label = 17;
case 17: return [3 /*break*/, 19]; case 17: return [3 /*break*/, 19];
case 18: case 18:
if (e_64) throw e_64.error; if (e_63) throw e_63.error;
return [7 /*endfinally*/]; return [7 /*endfinally*/];
case 19: return [7 /*endfinally*/]; case 19: return [7 /*endfinally*/];
case 20: return [2 /*return*/]; case 20: return [2 /*return*/];
@ -31813,6 +31873,48 @@ var BlobServiceClient = /** @class */ (function (_super) {
}); });
}); });
}; };
/**
* 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.
*
* @param {string} deletedContainerName Name of the previously deleted container.
* @param {string} deletedContainerVersion Version of the previously deleted container, used to uniquely identify the deleted container.
* @returns {Promise<ContainerUndeleteResponse>} Container deletion response.
* @memberof BlobServiceClient
*/
BlobServiceClient.prototype.undeleteContainer = function (deletedContainerName, deletedContainerVersion, options) {
if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, containerClient, containerContext, containerUndeleteResponse, e_3;
return tslib.__generator(this, function (_b) {
switch (_b.label) {
case 0:
_a = createSpan("BlobServiceClient-undeleteContainer", options.tracingOptions), span = _a.span, spanOptions = _a.spanOptions;
_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(tslib.__assign({ deletedContainerName: deletedContainerName,
deletedContainerVersion: deletedContainerVersion }, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions }) }))];
case 2:
containerUndeleteResponse = _b.sent();
return [2 /*return*/, { containerClient: containerClient, containerUndeleteResponse: containerUndeleteResponse }];
case 3:
e_3 = _b.sent();
span.setStatus({
code: api.CanonicalCode.UNKNOWN,
message: e_3.message
});
throw e_3;
case 4:
span.end();
return [7 /*endfinally*/];
case 5: return [2 /*return*/];
}
});
});
};
/** /**
* Gets the properties of a storage accounts Blob service, including properties * Gets the properties of a storage accounts Blob service, including properties
* for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. * for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.
@ -31825,7 +31927,7 @@ var BlobServiceClient = /** @class */ (function (_super) {
BlobServiceClient.prototype.getProperties = function (options) { BlobServiceClient.prototype.getProperties = function (options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, e_3; var _a, span, spanOptions, e_4;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -31839,12 +31941,12 @@ var BlobServiceClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _b.sent()]; case 2: return [2 /*return*/, _b.sent()];
case 3: case 3:
e_3 = _b.sent(); e_4 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_3.message message: e_4.message
}); });
throw e_3; throw e_4;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -31866,7 +31968,7 @@ var BlobServiceClient = /** @class */ (function (_super) {
BlobServiceClient.prototype.setProperties = function (properties, options) { BlobServiceClient.prototype.setProperties = function (properties, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, e_4; var _a, span, spanOptions, e_5;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -31880,12 +31982,12 @@ var BlobServiceClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _b.sent()]; case 2: return [2 /*return*/, _b.sent()];
case 3: case 3:
e_4 = _b.sent(); e_5 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_4.message message: e_5.message
}); });
throw e_4; throw e_5;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -31907,7 +32009,7 @@ var BlobServiceClient = /** @class */ (function (_super) {
BlobServiceClient.prototype.getStatistics = function (options) { BlobServiceClient.prototype.getStatistics = function (options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, e_5; var _a, span, spanOptions, e_6;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -31921,12 +32023,12 @@ var BlobServiceClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _b.sent()]; case 2: return [2 /*return*/, _b.sent()];
case 3: case 3:
e_5 = _b.sent(); e_6 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_5.message message: e_6.message
}); });
throw e_5; throw e_6;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -31949,7 +32051,7 @@ var BlobServiceClient = /** @class */ (function (_super) {
BlobServiceClient.prototype.getAccountInfo = function (options) { BlobServiceClient.prototype.getAccountInfo = function (options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, e_6; var _a, span, spanOptions, e_7;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -31963,12 +32065,12 @@ var BlobServiceClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _b.sent()]; case 2: return [2 /*return*/, _b.sent()];
case 3: case 3:
e_6 = _b.sent(); e_7 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_6.message message: e_7.message
}); });
throw e_6; throw e_7;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -31983,9 +32085,9 @@ var BlobServiceClient = /** @class */ (function (_super) {
* *
* @param {string} [marker] A string value that identifies the portion of * @param {string} [marker] A string value that identifies the portion of
* the list of containers to be returned with the next listing operation. The * the list of containers to be returned with the next listing operation. The
* operation returns the NextMarker value within the response body if the * operation returns the continuationToken value within the response body if the
* listing operation did not return all containers remaining to be listed * listing operation did not return all containers remaining to be listed
* with the current page. The NextMarker value can be used as the value for * with the current page. The continuationToken value can be used as the value for
* the marker parameter in a subsequent call to request the next page of list * the marker parameter in a subsequent call to request the next page of list
* items. The marker value is opaque to the client. * items. The marker value is opaque to the client.
* @param {ServiceListContainersSegmentOptions} [options] Options to the Service List Container Segment operation. * @param {ServiceListContainersSegmentOptions} [options] Options to the Service List Container Segment operation.
@ -31995,7 +32097,7 @@ var BlobServiceClient = /** @class */ (function (_super) {
BlobServiceClient.prototype.listContainersSegment = function (marker, options) { BlobServiceClient.prototype.listContainersSegment = function (marker, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, e_7; var _a, span, spanOptions, e_8;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -32006,12 +32108,12 @@ var BlobServiceClient = /** @class */ (function (_super) {
return [4 /*yield*/, this.serviceContext.listContainersSegment(tslib.__assign(tslib.__assign({ abortSignal: options.abortSignal, marker: marker }, options), { include: typeof options.include === "string" ? [options.include] : options.include, spanOptions: spanOptions }))]; return [4 /*yield*/, this.serviceContext.listContainersSegment(tslib.__assign(tslib.__assign({ abortSignal: options.abortSignal, marker: marker }, options), { include: typeof options.include === "string" ? [options.include] : options.include, spanOptions: spanOptions }))];
case 2: return [2 /*return*/, _b.sent()]; case 2: return [2 /*return*/, _b.sent()];
case 3: case 3:
e_7 = _b.sent(); e_8 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_7.message message: e_8.message
}); });
throw e_7; throw e_8;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -32032,9 +32134,9 @@ var BlobServiceClient = /** @class */ (function (_super) {
* however, only a subset of the OData filter syntax is supported in the Blob service. * however, only a subset of the OData filter syntax is supported in the Blob service.
* @param {string} [marker] A string value that identifies the portion of * @param {string} [marker] A string value that identifies the portion of
* the list of blobs to be returned with the next listing operation. The * the list of blobs to be returned with the next listing operation. The
* operation returns the NextMarker value within the response body if the * operation returns the continuationToken value within the response body if the
* listing operation did not return all blobs remaining to be listed * listing operation did not return all blobs remaining to be listed
* with the current page. The NextMarker value can be used as the value for * with the current page. The continuationToken value can be used as the value for
* the marker parameter in a subsequent call to request the next page of list * the marker parameter in a subsequent call to request the next page of list
* items. The marker value is opaque to the client. * items. The marker value is opaque to the client.
* @param {ServiceFindBlobsByTagsSegmentOptions} [options={}] Options to find blobs by tags. * @param {ServiceFindBlobsByTagsSegmentOptions} [options={}] Options to find blobs by tags.
@ -32044,7 +32146,7 @@ var BlobServiceClient = /** @class */ (function (_super) {
BlobServiceClient.prototype.findBlobsByTagsSegment = function (tagFilterSqlExpression, marker, options) { BlobServiceClient.prototype.findBlobsByTagsSegment = function (tagFilterSqlExpression, marker, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, e_8; var _a, span, spanOptions, e_9;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -32061,12 +32163,12 @@ var BlobServiceClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _b.sent()]; case 2: return [2 /*return*/, _b.sent()];
case 3: case 3:
e_8 = _b.sent(); e_9 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_8.message message: e_9.message
}); });
throw e_8; throw e_9;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -32085,9 +32187,9 @@ var BlobServiceClient = /** @class */ (function (_super) {
* however, only a subset of the OData filter syntax is supported in the Blob service. * however, only a subset of the OData filter syntax is supported in the Blob service.
* @param {string} [marker] A string value that identifies the portion of * @param {string} [marker] A string value that identifies the portion of
* the list of blobs to be returned with the next listing operation. The * the list of blobs to be returned with the next listing operation. The
* operation returns the NextMarker value within the response body if the * operation returns the continuationToken value within the response body if the
* listing operation did not return all blobs remaining to be listed * listing operation did not return all blobs remaining to be listed
* with the current page. The NextMarker value can be used as the value for * with the current page. The continuationToken value can be used as the value for
* the marker parameter in a subsequent call to request the next page of list * the marker parameter in a subsequent call to request the next page of list
* items. The marker value is opaque to the client. * items. The marker value is opaque to the client.
* @param {ServiceFindBlobsByTagsSegmentOptions} [options={}] Options to find blobs by tags. * @param {ServiceFindBlobsByTagsSegmentOptions} [options={}] Options to find blobs by tags.
@ -32136,8 +32238,8 @@ var BlobServiceClient = /** @class */ (function (_super) {
BlobServiceClient.prototype.findBlobsByTagsItems = function (tagFilterSqlExpression, options) { BlobServiceClient.prototype.findBlobsByTagsItems = function (tagFilterSqlExpression, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__asyncGenerator(this, arguments, function findBlobsByTagsItems_1() { return tslib.__asyncGenerator(this, arguments, function findBlobsByTagsItems_1() {
var marker, _a, _b, segment, e_9_1; var marker, _a, _b, segment, e_10_1;
var e_9, _c; var e_10, _c;
return tslib.__generator(this, function (_d) { return tslib.__generator(this, function (_d) {
switch (_d.label) { switch (_d.label) {
case 0: case 0:
@ -32156,8 +32258,8 @@ var BlobServiceClient = /** @class */ (function (_super) {
case 5: return [3 /*break*/, 1]; case 5: return [3 /*break*/, 1];
case 6: return [3 /*break*/, 13]; case 6: return [3 /*break*/, 13];
case 7: case 7:
e_9_1 = _d.sent(); e_10_1 = _d.sent();
e_9 = { error: e_9_1 }; e_10 = { error: e_10_1 };
return [3 /*break*/, 13]; return [3 /*break*/, 13];
case 8: case 8:
_d.trys.push([8, , 11, 12]); _d.trys.push([8, , 11, 12]);
@ -32168,7 +32270,7 @@ var BlobServiceClient = /** @class */ (function (_super) {
_d.label = 10; _d.label = 10;
case 10: return [3 /*break*/, 12]; case 10: return [3 /*break*/, 12];
case 11: case 11:
if (e_9) throw e_9.error; if (e_10) throw e_10.error;
return [7 /*endfinally*/]; return [7 /*endfinally*/];
case 12: return [7 /*endfinally*/]; case 12: return [7 /*endfinally*/];
case 13: return [2 /*return*/]; case 13: return [2 /*return*/];
@ -32293,9 +32395,9 @@ var BlobServiceClient = /** @class */ (function (_super) {
* @private * @private
* @param {string} [marker] A string value that identifies the portion of * @param {string} [marker] A string value that identifies the portion of
* the list of containers to be returned with the next listing operation. The * the list of containers to be returned with the next listing operation. The
* operation returns the NextMarker value within the response body if the * operation returns the continuationToken value within the response body if the
* listing operation did not return all containers remaining to be listed * listing operation did not return all containers remaining to be listed
* with the current page. The NextMarker value can be used as the value for * with the current page. The continuationToken value can be used as the value for
* the marker parameter in a subsequent call to request the next page of list * the marker parameter in a subsequent call to request the next page of list
* items. The marker value is opaque to the client. * items. The marker value is opaque to the client.
* @param {ServiceListContainersSegmentOptions} [options] Options to list containers operation. * @param {ServiceListContainersSegmentOptions} [options] Options to list containers operation.
@ -32342,8 +32444,8 @@ var BlobServiceClient = /** @class */ (function (_super) {
BlobServiceClient.prototype.listItems = function (options) { BlobServiceClient.prototype.listItems = function (options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__asyncGenerator(this, arguments, function listItems_1() { return tslib.__asyncGenerator(this, arguments, function listItems_1() {
var marker, _a, _b, segment, e_10_1; var marker, _a, _b, segment, e_11_1;
var e_10, _c; var e_11, _c;
return tslib.__generator(this, function (_d) { return tslib.__generator(this, function (_d) {
switch (_d.label) { switch (_d.label) {
case 0: case 0:
@ -32362,8 +32464,8 @@ var BlobServiceClient = /** @class */ (function (_super) {
case 5: return [3 /*break*/, 1]; case 5: return [3 /*break*/, 1];
case 6: return [3 /*break*/, 13]; case 6: return [3 /*break*/, 13];
case 7: case 7:
e_10_1 = _d.sent(); e_11_1 = _d.sent();
e_10 = { error: e_10_1 }; e_11 = { error: e_11_1 };
return [3 /*break*/, 13]; return [3 /*break*/, 13];
case 8: case 8:
_d.trys.push([8, , 11, 12]); _d.trys.push([8, , 11, 12]);
@ -32374,7 +32476,7 @@ var BlobServiceClient = /** @class */ (function (_super) {
_d.label = 10; _d.label = 10;
case 10: return [3 /*break*/, 12]; case 10: return [3 /*break*/, 12];
case 11: case 11:
if (e_10) throw e_10.error; if (e_11) throw e_11.error;
return [7 /*endfinally*/]; return [7 /*endfinally*/];
case 12: return [7 /*endfinally*/]; case 12: return [7 /*endfinally*/];
case 13: return [2 /*return*/]; case 13: return [2 /*return*/];
@ -32464,8 +32566,15 @@ var BlobServiceClient = /** @class */ (function (_super) {
if (options.prefix === "") { if (options.prefix === "") {
options.prefix = undefined; options.prefix = undefined;
} }
var include = [];
if (options.includeDeleted) {
include.push("deleted");
}
if (options.includeMetadata) {
include.push("metadata");
}
// AsyncIterableIterator to iterate over containers // AsyncIterableIterator to iterate over containers
var listSegmentOptions = tslib.__assign(tslib.__assign({}, options), (options.includeMetadata ? { include: "metadata" } : {})); var listSegmentOptions = tslib.__assign(tslib.__assign({}, options), (include.length > 0 ? { include: include } : {}));
var iter = this.listItems(listSegmentOptions); var iter = this.listItems(listSegmentOptions);
return _a = { return _a = {
/** /**
@ -32506,7 +32615,7 @@ var BlobServiceClient = /** @class */ (function (_super) {
BlobServiceClient.prototype.getUserDelegationKey = function (startsOn, expiresOn, options) { BlobServiceClient.prototype.getUserDelegationKey = function (startsOn, expiresOn, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, response, userDelegationKey, res, e_11; var _a, span, spanOptions, response, userDelegationKey, res, e_12;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -32535,12 +32644,12 @@ var BlobServiceClient = /** @class */ (function (_super) {
res = tslib.__assign({ _response: response._response, requestId: response.requestId, clientRequestId: response.clientRequestId, version: response.version, date: response.date, errorCode: response.errorCode }, userDelegationKey); 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]; return [2 /*return*/, res];
case 3: case 3:
e_11 = _b.sent(); e_12 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_11.message message: e_12.message
}); });
throw e_11; throw e_12;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -32996,52 +33105,61 @@ function ipRangeToString(ipRange) {
* @class SASQueryParameters * @class SASQueryParameters
*/ */
var SASQueryParameters = /** @class */ (function () { 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) {
* Creates an instance of SASQueryParameters.
*
* @param {string} version Representing the storage version
* @param {string} signature Representing the signature for the SAS token
* @param {string} [permissions] Representing the storage permissions
* @param {string} [services] Representing the storage services being accessed (only for Account SAS)
* @param {string} [resourceTypes] Representing the storage resource types being accessed (only for Account SAS)
* @param {SASProtocol} [protocol] Representing the allowed HTTP protocol(s)
* @param {Date} [startsOn] Representing the start time for this SAS token
* @param {Date} [expiresOn] Representing the expiry time for this SAS token
* @param {SasIPRange} [ipRange] Representing the range of valid IP addresses for this SAS token
* @param {string} [identifier] Representing the signed identifier (only for Service SAS)
* @param {string} [resource] Representing the storage container or blob (only for Service SAS)
* @param {string} [cacheControl] Representing the cache-control header (only for Blob/File Service SAS)
* @param {string} [contentDisposition] Representing the content-disposition header (only for Blob/File Service SAS)
* @param {string} [contentEncoding] Representing the content-encoding header (only for Blob/File Service SAS)
* @param {string} [contentLanguage] Representing the content-language header (only for Blob/File Service SAS)
* @param {string} [contentType] Representing the content-type header (only for Blob/File Service SAS)
* @param {userDelegationKey} [userDelegationKey] Representing the user delegation key properties
* @memberof SASQueryParameters
*/
function SASQueryParameters(version, signature, permissions, services, resourceTypes, protocol, startsOn, expiresOn, ipRange, identifier, resource, cacheControl, contentDisposition, contentEncoding, contentLanguage, contentType, userDelegationKey) {
this.version = version; this.version = version;
this.services = services;
this.resourceTypes = resourceTypes;
this.expiresOn = expiresOn;
this.permissions = permissions;
this.protocol = protocol;
this.startsOn = startsOn;
this.ipRangeInner = ipRange;
this.identifier = identifier;
this.resource = resource;
this.signature = signature; this.signature = signature;
this.cacheControl = cacheControl; if (permissionsOrOptions !== undefined && typeof permissionsOrOptions !== "string") {
this.contentDisposition = contentDisposition; // SASQueryParametersOptions
this.contentEncoding = contentEncoding; this.permissions = permissionsOrOptions.permissions;
this.contentLanguage = contentLanguage; this.services = permissionsOrOptions.services;
this.contentType = contentType; this.resourceTypes = permissionsOrOptions.resourceTypes;
if (userDelegationKey) { this.protocol = permissionsOrOptions.protocol;
this.signedOid = userDelegationKey.signedObjectId; this.startsOn = permissionsOrOptions.startsOn;
this.signedTenantId = userDelegationKey.signedTenantId; this.expiresOn = permissionsOrOptions.expiresOn;
this.signedStartsOn = userDelegationKey.signedStartsOn; this.ipRangeInner = permissionsOrOptions.ipRange;
this.signedExpiresOn = userDelegationKey.signedExpiresOn; this.identifier = permissionsOrOptions.identifier;
this.signedService = userDelegationKey.signedService; this.resource = permissionsOrOptions.resource;
this.signedVersion = userDelegationKey.signedVersion; this.cacheControl = permissionsOrOptions.cacheControl;
this.contentDisposition = permissionsOrOptions.contentDisposition;
this.contentEncoding = permissionsOrOptions.contentEncoding;
this.contentLanguage = permissionsOrOptions.contentLanguage;
this.contentType = permissionsOrOptions.contentType;
if (permissionsOrOptions.userDelegationKey) {
this.signedOid = permissionsOrOptions.userDelegationKey.signedObjectId;
this.signedTenantId = permissionsOrOptions.userDelegationKey.signedTenantId;
this.signedStartsOn = permissionsOrOptions.userDelegationKey.signedStartsOn;
this.signedExpiresOn = permissionsOrOptions.userDelegationKey.signedExpiresOn;
this.signedService = permissionsOrOptions.userDelegationKey.signedService;
this.signedVersion = permissionsOrOptions.userDelegationKey.signedVersion;
this.preauthorizedAgentObjectId = permissionsOrOptions.preauthorizedAgentObjectId;
this.correlationId = permissionsOrOptions.correlationId;
}
}
else {
this.services = services;
this.resourceTypes = resourceTypes;
this.expiresOn = expiresOn;
this.permissions = permissionsOrOptions;
this.protocol = protocol;
this.startsOn = startsOn;
this.ipRangeInner = ipRange;
this.identifier = identifier;
this.resource = resource;
this.cacheControl = cacheControl;
this.contentDisposition = contentDisposition;
this.contentEncoding = contentEncoding;
this.contentLanguage = contentLanguage;
this.contentType = contentType;
if (userDelegationKey) {
this.signedOid = userDelegationKey.signedObjectId;
this.signedTenantId = userDelegationKey.signedTenantId;
this.signedStartsOn = userDelegationKey.signedStartsOn;
this.signedExpiresOn = userDelegationKey.signedExpiresOn;
this.signedService = userDelegationKey.signedService;
this.signedVersion = userDelegationKey.signedVersion;
this.preauthorizedAgentObjectId = preauthorizedAgentObjectId;
this.correlationId = correlationId;
}
} }
} }
Object.defineProperty(SASQueryParameters.prototype, "ipRange", { Object.defineProperty(SASQueryParameters.prototype, "ipRange", {
@ -33093,7 +33211,9 @@ var SASQueryParameters = /** @class */ (function () {
"rscd", "rscd",
"rsce", "rsce",
"rscl", "rscl",
"rsct" "rsct",
"saoid",
"scid"
]; ];
var queries = []; var queries = [];
for (var _i = 0, params_1 = params; _i < params_1.length; _i++) { for (var _i = 0, params_1 = params; _i < params_1.length; _i++) {
@ -33165,6 +33285,12 @@ var SASQueryParameters = /** @class */ (function () {
case "rsct": case "rsct":
this.tryAppendQueryParameter(queries, param, this.contentType); this.tryAppendQueryParameter(queries, param, this.contentType);
break; break;
case "saoid":
this.tryAppendQueryParameter(queries, param, this.preauthorizedAgentObjectId);
break;
case "scid":
this.tryAppendQueryParameter(queries, param, this.correlationId);
break;
} }
} }
return queries.join("&"); return queries.join("&");
@ -33311,6 +33437,20 @@ var BlobSASPermissions = /** @class */ (function () {
* @memberof BlobSASPermissions * @memberof BlobSASPermissions
*/ */
this.tag = false; this.tag = false;
/**
* Specifies Move access granted.
*
* @type {boolean}
* @memberof BlobSASPermissions
*/
this.move = false;
/**
* Specifies Execute access granted.
*
* @type {boolean}
* @memberof BlobSASPermissions
*/
this.execute = false;
} }
/** /**
* Creates a {@link BlobSASPermissions} from the specified permissions string. This method will throw an * Creates a {@link BlobSASPermissions} from the specified permissions string. This method will throw an
@ -33347,6 +33487,12 @@ var BlobSASPermissions = /** @class */ (function () {
case "t": case "t":
blobSASPermissions.tag = true; blobSASPermissions.tag = true;
break; break;
case "m":
blobSASPermissions.move = true;
break;
case "e":
blobSASPermissions.execute = true;
break;
default: default:
throw new RangeError("Invalid permission: " + char); throw new RangeError("Invalid permission: " + char);
} }
@ -33383,6 +33529,12 @@ var BlobSASPermissions = /** @class */ (function () {
if (this.tag) { if (this.tag) {
permissions.push("t"); permissions.push("t");
} }
if (this.move) {
permissions.push("m");
}
if (this.execute) {
permissions.push("e");
}
return permissions.join(""); return permissions.join("");
}; };
return BlobSASPermissions; return BlobSASPermissions;
@ -33458,6 +33610,20 @@ var ContainerSASPermissions = /** @class */ (function () {
* @memberof ContainerSASPermissions * @memberof ContainerSASPermissions
*/ */
this.tag = false; this.tag = false;
/**
* Specifies Move access granted.
*
* @type {boolean}
* @memberof ContainerSASPermissions
*/
this.move = false;
/**
* Specifies Execute access granted.
*
* @type {boolean}
* @memberof ContainerSASPermissions
*/
this.execute = false;
} }
/** /**
* Creates an {@link ContainerSASPermissions} from the specified permissions string. This method will throw an * Creates an {@link ContainerSASPermissions} from the specified permissions string. This method will throw an
@ -33497,6 +33663,12 @@ var ContainerSASPermissions = /** @class */ (function () {
case "x": case "x":
containerSASPermissions.deleteVersion = true; containerSASPermissions.deleteVersion = true;
break; break;
case "m":
containerSASPermissions.move = true;
break;
case "e":
containerSASPermissions.execute = true;
break;
default: default:
throw new RangeError("Invalid permission " + char); throw new RangeError("Invalid permission " + char);
} }
@ -33539,6 +33711,12 @@ var ContainerSASPermissions = /** @class */ (function () {
if (this.tag) { if (this.tag) {
permissions.push("t"); permissions.push("t");
} }
if (this.move) {
permissions.push("m");
}
if (this.execute) {
permissions.push("e");
}
return permissions.join(""); return permissions.join("");
}; };
return ContainerSASPermissions; return ContainerSASPermissions;
@ -33602,7 +33780,13 @@ function generateBlobSASQueryParameters(blobSASSignatureValues, sharedKeyCredent
return generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKeyCredential); return generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKeyCredential);
} }
else { else {
return generateBlobSASQueryParametersUDK20181109(blobSASSignatureValues, userDelegationKeyCredential); // Version 2020-02-10 delegation SAS signature construction includes preauthorizedAgentObjectId, agentObjectId, correlationId.
if (version >= "2020-02-10") {
return generateBlobSASQueryParametersUDK20200210(blobSASSignatureValues, userDelegationKeyCredential);
}
else {
return generateBlobSASQueryParametersUDK20181109(blobSASSignatureValues, userDelegationKeyCredential);
}
} }
} }
if (version >= "2015-04-05") { if (version >= "2015-04-05") {
@ -33633,34 +33817,18 @@ function generateBlobSASQueryParameters(blobSASSignatureValues, sharedKeyCredent
* @returns {SASQueryParameters} * @returns {SASQueryParameters}
*/ */
function generateBlobSASQueryParameters20150405(blobSASSignatureValues, sharedKeyCredential) { function generateBlobSASQueryParameters20150405(blobSASSignatureValues, sharedKeyCredential) {
blobSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues);
if (!blobSASSignatureValues.identifier && if (!blobSASSignatureValues.identifier &&
!blobSASSignatureValues.permissions && !blobSASSignatureValues.permissions &&
!blobSASSignatureValues.expiresOn) { !blobSASSignatureValues.expiresOn) {
throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided."); throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided.");
} }
var version = blobSASSignatureValues.version ? blobSASSignatureValues.version : SERVICE_VERSION;
var resource = "c"; var resource = "c";
var verifiedPermissions;
if (blobSASSignatureValues.snapshotTime) {
throw RangeError("'version' must be >= '2018-11-09' when provided 'snapshotTime'.");
}
if (blobSASSignatureValues.versionId) {
throw RangeError("'version' must be >= '2019-10-10' when provided 'versionId'.");
}
if (blobSASSignatureValues.permissions &&
blobSASSignatureValues.permissions.deleteVersion &&
version < "2019-10-10") {
throw RangeError("'version' must be >= '2019-10-10' when provided 'x' permission.");
}
if (blobSASSignatureValues.permissions &&
blobSASSignatureValues.permissions.tag &&
version < "2019-12-12") {
throw RangeError("'version' must be >= '2019-12-12' when provided 't' permission.");
}
if (blobSASSignatureValues.blobName) { if (blobSASSignatureValues.blobName) {
resource = "b"; resource = "b";
} }
// Calling parse and toString guarantees the proper ordering and throws on invalid characters. // Calling parse and toString guarantees the proper ordering and throws on invalid characters.
var verifiedPermissions;
if (blobSASSignatureValues.permissions) { if (blobSASSignatureValues.permissions) {
if (blobSASSignatureValues.blobName) { if (blobSASSignatureValues.blobName) {
verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString(); verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString();
@ -33682,7 +33850,7 @@ function generateBlobSASQueryParameters20150405(blobSASSignatureValues, sharedKe
blobSASSignatureValues.identifier, blobSASSignatureValues.identifier,
blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : "", blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : "",
blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : "", blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : "",
version, blobSASSignatureValues.version,
blobSASSignatureValues.cacheControl ? blobSASSignatureValues.cacheControl : "", blobSASSignatureValues.cacheControl ? blobSASSignatureValues.cacheControl : "",
blobSASSignatureValues.contentDisposition ? blobSASSignatureValues.contentDisposition : "", blobSASSignatureValues.contentDisposition ? blobSASSignatureValues.contentDisposition : "",
blobSASSignatureValues.contentEncoding ? blobSASSignatureValues.contentEncoding : "", blobSASSignatureValues.contentEncoding ? blobSASSignatureValues.contentEncoding : "",
@ -33690,7 +33858,7 @@ function generateBlobSASQueryParameters20150405(blobSASSignatureValues, sharedKe
blobSASSignatureValues.contentType ? blobSASSignatureValues.contentType : "" blobSASSignatureValues.contentType ? blobSASSignatureValues.contentType : ""
].join("\n"); ].join("\n");
var signature = sharedKeyCredential.computeHMACSHA256(stringToSign); var signature = sharedKeyCredential.computeHMACSHA256(stringToSign);
return new SASQueryParameters(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); 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);
} }
/** /**
* ONLY AVAILABLE IN NODE.JS RUNTIME. * ONLY AVAILABLE IN NODE.JS RUNTIME.
@ -33710,33 +33878,13 @@ function generateBlobSASQueryParameters20150405(blobSASSignatureValues, sharedKe
* @returns {SASQueryParameters} * @returns {SASQueryParameters}
*/ */
function generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKeyCredential) { function generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKeyCredential) {
blobSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues);
if (!blobSASSignatureValues.identifier && if (!blobSASSignatureValues.identifier &&
!blobSASSignatureValues.permissions && !blobSASSignatureValues.permissions &&
!blobSASSignatureValues.expiresOn) { !blobSASSignatureValues.expiresOn) {
throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided."); throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided.");
} }
var version = blobSASSignatureValues.version ? blobSASSignatureValues.version : SERVICE_VERSION;
var resource = "c"; var resource = "c";
var verifiedPermissions;
if (blobSASSignatureValues.versionId && version < "2019-10-10") {
throw RangeError("'version' must be >= '2019-10-10' when provided 'versionId'.");
}
if (blobSASSignatureValues.permissions &&
blobSASSignatureValues.permissions.deleteVersion &&
version < "2019-10-10") {
throw RangeError("'version' must be >= '2019-10-10' when provided 'x' permission.");
}
if (blobSASSignatureValues.permissions &&
blobSASSignatureValues.permissions.tag &&
version < "2019-12-12") {
throw RangeError("'version' must be >= '2019-12-12' when provided 't' permission.");
}
if (blobSASSignatureValues.blobName === undefined && blobSASSignatureValues.snapshotTime) {
throw RangeError("Must provide 'blobName' when provided 'snapshotTime'.");
}
if (blobSASSignatureValues.blobName === undefined && blobSASSignatureValues.versionId) {
throw RangeError("Must provide 'blobName' when provided 'versionId'.");
}
var timestamp = blobSASSignatureValues.snapshotTime; var timestamp = blobSASSignatureValues.snapshotTime;
if (blobSASSignatureValues.blobName) { if (blobSASSignatureValues.blobName) {
resource = "b"; resource = "b";
@ -33749,6 +33897,7 @@ function generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKe
} }
} }
// Calling parse and toString guarantees the proper ordering and throws on invalid characters. // Calling parse and toString guarantees the proper ordering and throws on invalid characters.
var verifiedPermissions;
if (blobSASSignatureValues.permissions) { if (blobSASSignatureValues.permissions) {
if (blobSASSignatureValues.blobName) { if (blobSASSignatureValues.blobName) {
verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString(); verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString();
@ -33770,7 +33919,7 @@ function generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKe
blobSASSignatureValues.identifier, blobSASSignatureValues.identifier,
blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : "", blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : "",
blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : "", blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : "",
version, blobSASSignatureValues.version,
resource, resource,
timestamp, timestamp,
blobSASSignatureValues.cacheControl ? blobSASSignatureValues.cacheControl : "", blobSASSignatureValues.cacheControl ? blobSASSignatureValues.cacheControl : "",
@ -33780,7 +33929,7 @@ function generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKe
blobSASSignatureValues.contentType ? blobSASSignatureValues.contentType : "" blobSASSignatureValues.contentType ? blobSASSignatureValues.contentType : ""
].join("\n"); ].join("\n");
var signature = sharedKeyCredential.computeHMACSHA256(stringToSign); var signature = sharedKeyCredential.computeHMACSHA256(stringToSign);
return new SASQueryParameters(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); 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);
} }
/** /**
* ONLY AVAILABLE IN NODE.JS RUNTIME. * ONLY AVAILABLE IN NODE.JS RUNTIME.
@ -33789,7 +33938,7 @@ function generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKe
* Creates an instance of SASQueryParameters. * Creates an instance of SASQueryParameters.
* *
* Only accepts required settings needed to create a SAS. For optional settings please * Only accepts required settings needed to create a SAS. For optional settings please
* set corresponding properties directly, such as permissions, startsOn and identifier. * set corresponding properties directly, such as permissions, startsOn.
* *
* WARNING: identifier will be ignored, permissions and expiresOn are required. * WARNING: identifier will be ignored, permissions and expiresOn are required.
* *
@ -33798,31 +33947,12 @@ function generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKe
* @returns {SASQueryParameters} * @returns {SASQueryParameters}
*/ */
function generateBlobSASQueryParametersUDK20181109(blobSASSignatureValues, userDelegationKeyCredential) { function generateBlobSASQueryParametersUDK20181109(blobSASSignatureValues, userDelegationKeyCredential) {
blobSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues);
// Stored access policies are not supported for a user delegation SAS.
if (!blobSASSignatureValues.permissions || !blobSASSignatureValues.expiresOn) { if (!blobSASSignatureValues.permissions || !blobSASSignatureValues.expiresOn) {
throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS."); throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS.");
} }
var version = blobSASSignatureValues.version ? blobSASSignatureValues.version : SERVICE_VERSION;
if (blobSASSignatureValues.versionId && version < "2019-10-10") {
throw RangeError("'version' must be >= '2019-10-10' when provided 'versionId'.");
}
if (blobSASSignatureValues.permissions &&
blobSASSignatureValues.permissions.deleteVersion &&
version < "2019-10-10") {
throw RangeError("'version' must be >= '2019-10-10' when provided 'x' permission.");
}
if (blobSASSignatureValues.permissions &&
blobSASSignatureValues.permissions.tag &&
version < "2019-12-12") {
throw RangeError("'version' must be >= '2019-12-12' when provided 't' permission.");
}
var resource = "c"; var resource = "c";
var verifiedPermissions;
if (blobSASSignatureValues.blobName === undefined && blobSASSignatureValues.snapshotTime) {
throw RangeError("Must provide 'blobName' when provided 'snapshotTime'.");
}
if (blobSASSignatureValues.blobName === undefined && blobSASSignatureValues.versionId) {
throw RangeError("Must provide 'blobName' when provided 'versionId'.");
}
var timestamp = blobSASSignatureValues.snapshotTime; var timestamp = blobSASSignatureValues.snapshotTime;
if (blobSASSignatureValues.blobName) { if (blobSASSignatureValues.blobName) {
resource = "b"; resource = "b";
@ -33835,6 +33965,7 @@ function generateBlobSASQueryParametersUDK20181109(blobSASSignatureValues, userD
} }
} }
// Calling parse and toString guarantees the proper ordering and throws on invalid characters. // Calling parse and toString guarantees the proper ordering and throws on invalid characters.
var verifiedPermissions;
if (blobSASSignatureValues.permissions) { if (blobSASSignatureValues.permissions) {
if (blobSASSignatureValues.blobName) { if (blobSASSignatureValues.blobName) {
verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString(); verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString();
@ -33865,7 +33996,7 @@ function generateBlobSASQueryParametersUDK20181109(blobSASSignatureValues, userD
userDelegationKeyCredential.userDelegationKey.signedVersion, userDelegationKeyCredential.userDelegationKey.signedVersion,
blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : "", blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : "",
blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : "", blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : "",
version, blobSASSignatureValues.version,
resource, resource,
timestamp, timestamp,
blobSASSignatureValues.cacheControl, blobSASSignatureValues.cacheControl,
@ -33875,7 +34006,87 @@ function generateBlobSASQueryParametersUDK20181109(blobSASSignatureValues, userD
blobSASSignatureValues.contentType blobSASSignatureValues.contentType
].join("\n"); ].join("\n");
var signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign); var signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign);
return new SASQueryParameters(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); 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);
}
/**
* ONLY AVAILABLE IN NODE.JS RUNTIME.
* IMPLEMENTATION FOR API VERSION FROM 2020-02-10.
*
* Creates an instance of SASQueryParameters.
*
* Only accepts required settings needed to create a SAS. For optional settings please
* set corresponding properties directly, such as permissions, startsOn.
*
* WARNING: identifier will be ignored, permissions and expiresOn are required.
*
* @param {BlobSASSignatureValues} blobSASSignatureValues
* @param {UserDelegationKeyCredential} userDelegationKeyCredential
* @returns {SASQueryParameters}
*/
function generateBlobSASQueryParametersUDK20200210(blobSASSignatureValues, userDelegationKeyCredential) {
blobSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues);
// Stored access policies are not supported for a user delegation SAS.
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;
if (blobSASSignatureValues.blobName) {
resource = "b";
if (blobSASSignatureValues.snapshotTime) {
resource = "bs";
}
else if (blobSASSignatureValues.versionId) {
resource = "bv";
timestamp = blobSASSignatureValues.versionId;
}
}
// Calling parse and toString guarantees the proper ordering and throws on invalid characters.
var verifiedPermissions;
if (blobSASSignatureValues.permissions) {
if (blobSASSignatureValues.blobName) {
verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString();
}
else {
verifiedPermissions = ContainerSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString();
}
}
// Signature is generated on the un-url-encoded values.
var stringToSign = [
verifiedPermissions ? verifiedPermissions : "",
blobSASSignatureValues.startsOn
? truncatedISO8061Date(blobSASSignatureValues.startsOn, false)
: "",
blobSASSignatureValues.expiresOn
? truncatedISO8061Date(blobSASSignatureValues.expiresOn, false)
: "",
getCanonicalName(userDelegationKeyCredential.accountName, blobSASSignatureValues.containerName, blobSASSignatureValues.blobName),
userDelegationKeyCredential.userDelegationKey.signedObjectId,
userDelegationKeyCredential.userDelegationKey.signedTenantId,
userDelegationKeyCredential.userDelegationKey.signedStartsOn
? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedStartsOn, false)
: "",
userDelegationKeyCredential.userDelegationKey.signedExpiresOn
? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedExpiresOn, false)
: "",
userDelegationKeyCredential.userDelegationKey.signedService,
userDelegationKeyCredential.userDelegationKey.signedVersion,
blobSASSignatureValues.preauthorizedAgentObjectId,
undefined,
blobSASSignatureValues.correlationId,
blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : "",
blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : "",
blobSASSignatureValues.version,
resource,
timestamp,
blobSASSignatureValues.cacheControl,
blobSASSignatureValues.contentDisposition,
blobSASSignatureValues.contentEncoding,
blobSASSignatureValues.contentLanguage,
blobSASSignatureValues.contentType
].join("\n");
var 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) { function getCanonicalName(accountName, containerName, blobName) {
// Container: "/blob/account/containerName" // Container: "/blob/account/containerName"
@ -33886,6 +34097,42 @@ function getCanonicalName(accountName, containerName, blobName) {
} }
return elements.join(""); return elements.join("");
} }
function SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues) {
var 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'.");
}
if (blobSASSignatureValues.blobName === undefined && blobSASSignatureValues.snapshotTime) {
throw RangeError("Must provide 'blobName' when providing 'snapshotTime'.");
}
if (blobSASSignatureValues.versionId && version < "2019-10-10") {
throw RangeError("'version' must be >= '2019-10-10' when providing 'versionId'.");
}
if (blobSASSignatureValues.blobName === undefined && blobSASSignatureValues.versionId) {
throw RangeError("Must provide 'blobName' when providing 'versionId'.");
}
if (blobSASSignatureValues.permissions &&
blobSASSignatureValues.permissions.deleteVersion &&
version < "2019-10-10") {
throw RangeError("'version' must be >= '2019-10-10' when providing 'x' permission.");
}
if (blobSASSignatureValues.permissions &&
blobSASSignatureValues.permissions.tag &&
version < "2019-12-12") {
throw RangeError("'version' must be >= '2019-12-12' when providing 't' permission.");
}
if (version < "2020-02-10" &&
blobSASSignatureValues.permissions &&
(blobSASSignatureValues.permissions.move || blobSASSignatureValues.permissions.execute)) {
throw RangeError("'version' must be >= '2020-02-10' when providing the 'm' or 'e' permission.");
}
if (version < "2020-02-10" &&
(blobSASSignatureValues.preauthorizedAgentObjectId || blobSASSignatureValues.correlationId)) {
throw RangeError("'version' must be >= '2020-02-10' when providing 'preauthorizedAgentObjectId' or 'correlationId'.");
}
blobSASSignatureValues.version = version;
return blobSASSignatureValues;
}
Object.defineProperty(exports, 'BaseRequestPolicy', { Object.defineProperty(exports, 'BaseRequestPolicy', {
enumerable: true, enumerable: true,
@ -33972,10 +34219,20 @@ exports.newPipeline = newPipeline;
"use strict"; "use strict";
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const assert = __webpack_require__(357); const path = __importStar(__webpack_require__(622));
const path = __webpack_require__(622); const pathHelper = __importStar(__webpack_require__(972));
const pathHelper = __webpack_require__(972); const assert_1 = __importDefault(__webpack_require__(357));
const IS_WINDOWS = process.platform === 'win32'; const IS_WINDOWS = process.platform === 'win32';
/** /**
* Helper class for parsing paths into segments * Helper class for parsing paths into segments
@ -33989,7 +34246,7 @@ class Path {
this.segments = []; this.segments = [];
// String // String
if (typeof itemPath === 'string') { if (typeof itemPath === 'string') {
assert(itemPath, `Parameter 'itemPath' must not be empty`); assert_1.default(itemPath, `Parameter 'itemPath' must not be empty`);
// Normalize slashes and trim unnecessary trailing slash // Normalize slashes and trim unnecessary trailing slash
itemPath = pathHelper.safeTrimTrailingSeparator(itemPath); itemPath = pathHelper.safeTrimTrailingSeparator(itemPath);
// Not rooted // Not rooted
@ -34016,24 +34273,24 @@ class Path {
// Array // Array
else { else {
// Must not be empty // Must not be empty
assert(itemPath.length > 0, `Parameter 'itemPath' must not be an empty array`); assert_1.default(itemPath.length > 0, `Parameter 'itemPath' must not be an empty array`);
// Each segment // Each segment
for (let i = 0; i < itemPath.length; i++) { for (let i = 0; i < itemPath.length; i++) {
let segment = itemPath[i]; let segment = itemPath[i];
// Must not be empty // Must not be empty
assert(segment, `Parameter 'itemPath' must not contain any empty segments`); assert_1.default(segment, `Parameter 'itemPath' must not contain any empty segments`);
// Normalize slashes // Normalize slashes
segment = pathHelper.normalizeSeparators(itemPath[i]); segment = pathHelper.normalizeSeparators(itemPath[i]);
// Root segment // Root segment
if (i === 0 && pathHelper.hasRoot(segment)) { if (i === 0 && pathHelper.hasRoot(segment)) {
segment = pathHelper.safeTrimTrailingSeparator(segment); segment = pathHelper.safeTrimTrailingSeparator(segment);
assert(segment === pathHelper.dirname(segment), `Parameter 'itemPath' root segment contains information for multiple segments`); assert_1.default(segment === pathHelper.dirname(segment), `Parameter 'itemPath' root segment contains information for multiple segments`);
this.segments.push(segment); this.segments.push(segment);
} }
// All other segments // All other segments
else { else {
// Must not contain slash // Must not contain slash
assert(!segment.includes(path.sep), `Parameter 'itemPath' contains unexpected path separators`); assert_1.default(!segment.includes(path.sep), `Parameter 'itemPath' contains unexpected path separators`);
this.segments.push(segment); this.segments.push(segment);
} }
} }
@ -41207,8 +41464,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
"use strict"; "use strict";
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const pathHelper = __webpack_require__(972); const pathHelper = __importStar(__webpack_require__(972));
const internal_match_kind_1 = __webpack_require__(327); const internal_match_kind_1 = __webpack_require__(327);
const IS_WINDOWS = process.platform === 'win32'; const IS_WINDOWS = process.platform === 'win32';
/** /**
@ -41290,8 +41554,15 @@ exports.partialMatch = partialMatch;
"use strict"; "use strict";
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const core = __webpack_require__(470); const core = __importStar(__webpack_require__(470));
/** /**
* Returns a copy with defaults filled in. * Returns a copy with defaults filled in.
*/ */
@ -49623,17 +49894,27 @@ __exportStar(__webpack_require__(764), exports);
"use strict"; "use strict";
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const assert = __webpack_require__(357); const os = __importStar(__webpack_require__(87));
const os = __webpack_require__(87); const path = __importStar(__webpack_require__(622));
const path = __webpack_require__(622); const pathHelper = __importStar(__webpack_require__(972));
const pathHelper = __webpack_require__(972); const assert_1 = __importDefault(__webpack_require__(357));
const minimatch_1 = __webpack_require__(93); const minimatch_1 = __webpack_require__(93);
const internal_match_kind_1 = __webpack_require__(327); const internal_match_kind_1 = __webpack_require__(327);
const internal_path_1 = __webpack_require__(383); const internal_path_1 = __webpack_require__(383);
const IS_WINDOWS = process.platform === 'win32'; const IS_WINDOWS = process.platform === 'win32';
class Pattern { class Pattern {
constructor(patternOrNegate, segments) { constructor(patternOrNegate, segments, homedir) {
/** /**
* Indicates whether matches should be excluded from the result set * Indicates whether matches should be excluded from the result set
*/ */
@ -49647,9 +49928,9 @@ class Pattern {
else { else {
// Convert to pattern // Convert to pattern
segments = segments || []; segments = segments || [];
assert(segments.length, `Parameter 'segments' must not empty`); assert_1.default(segments.length, `Parameter 'segments' must not empty`);
const root = Pattern.getLiteral(segments[0]); const root = Pattern.getLiteral(segments[0]);
assert(root && pathHelper.hasAbsoluteRoot(root), `Parameter 'segments' first element must be a root path`); assert_1.default(root && pathHelper.hasAbsoluteRoot(root), `Parameter 'segments' first element must be a root path`);
pattern = new internal_path_1.Path(segments).toString().trim(); pattern = new internal_path_1.Path(segments).toString().trim();
if (patternOrNegate) { if (patternOrNegate) {
pattern = `!${pattern}`; pattern = `!${pattern}`;
@ -49661,7 +49942,7 @@ class Pattern {
pattern = pattern.substr(1).trim(); pattern = pattern.substr(1).trim();
} }
// Normalize slashes and ensures absolute root // Normalize slashes and ensures absolute root
pattern = Pattern.fixupPattern(pattern); pattern = Pattern.fixupPattern(pattern, homedir);
// Segments // Segments
this.segments = new internal_path_1.Path(pattern).segments; this.segments = new internal_path_1.Path(pattern).segments;
// Trailing slash indicates the pattern should only match directories, not regular files // Trailing slash indicates the pattern should only match directories, not regular files
@ -49698,11 +49979,11 @@ class Pattern {
// Normalize slashes // Normalize slashes
itemPath = pathHelper.normalizeSeparators(itemPath); itemPath = pathHelper.normalizeSeparators(itemPath);
// Append a trailing slash. Otherwise Minimatch will not match the directory immediately // Append a trailing slash. Otherwise Minimatch will not match the directory immediately
// preceeding the globstar. For example, given the pattern `/foo/**`, Minimatch returns // preceding the globstar. For example, given the pattern `/foo/**`, Minimatch returns
// false for `/foo` but returns true for `/foo/`. Append a trailing slash to handle that quirk. // false for `/foo` but returns true for `/foo/`. Append a trailing slash to handle that quirk.
if (!itemPath.endsWith(path.sep)) { if (!itemPath.endsWith(path.sep)) {
// Note, this is safe because the constructor ensures the pattern has an absolute root. // Note, this is safe because the constructor ensures the pattern has an absolute root.
// For example, formats like C: and C:foo on Windows are resolved to an aboslute root. // For example, formats like C: and C:foo on Windows are resolved to an absolute root.
itemPath = `${itemPath}${path.sep}`; itemPath = `${itemPath}${path.sep}`;
} }
} }
@ -49740,15 +50021,15 @@ class Pattern {
/** /**
* Normalizes slashes and ensures absolute root * Normalizes slashes and ensures absolute root
*/ */
static fixupPattern(pattern) { static fixupPattern(pattern, homedir) {
// Empty // Empty
assert(pattern, 'pattern cannot be empty'); assert_1.default(pattern, 'pattern cannot be empty');
// Must not contain `.` segment, unless first segment // Must not contain `.` segment, unless first segment
// Must not contain `..` segment // Must not contain `..` segment
const literalSegments = new internal_path_1.Path(pattern).segments.map(x => Pattern.getLiteral(x)); const literalSegments = new internal_path_1.Path(pattern).segments.map(x => Pattern.getLiteral(x));
assert(literalSegments.every((x, i) => (x !== '.' || i === 0) && x !== '..'), `Invalid pattern '${pattern}'. Relative pathing '.' and '..' is not allowed.`); assert_1.default(literalSegments.every((x, i) => (x !== '.' || i === 0) && x !== '..'), `Invalid pattern '${pattern}'. Relative pathing '.' and '..' is not allowed.`);
// Must not contain globs in root, e.g. Windows UNC path \\foo\b*r // Must not contain globs in root, e.g. Windows UNC path \\foo\b*r
assert(!pathHelper.hasRoot(pattern) || literalSegments[0], `Invalid pattern '${pattern}'. Root segment must not contain globs.`); assert_1.default(!pathHelper.hasRoot(pattern) || literalSegments[0], `Invalid pattern '${pattern}'. Root segment must not contain globs.`);
// Normalize slashes // Normalize slashes
pattern = pathHelper.normalizeSeparators(pattern); pattern = pathHelper.normalizeSeparators(pattern);
// Replace leading `.` segment // Replace leading `.` segment
@ -49757,9 +50038,9 @@ class Pattern {
} }
// Replace leading `~` segment // Replace leading `~` segment
else if (pattern === '~' || pattern.startsWith(`~${path.sep}`)) { else if (pattern === '~' || pattern.startsWith(`~${path.sep}`)) {
const homedir = os.homedir(); homedir = homedir || os.homedir();
assert(homedir, 'Unable to determine HOME directory'); assert_1.default(homedir, 'Unable to determine HOME directory');
assert(pathHelper.hasAbsoluteRoot(homedir), `Expected HOME directory to be a rooted path. Actual '${homedir}'`); assert_1.default(pathHelper.hasAbsoluteRoot(homedir), `Expected HOME directory to be a rooted path. Actual '${homedir}'`);
pattern = Pattern.globEscape(homedir) + pattern.substr(1); pattern = Pattern.globEscape(homedir) + pattern.substr(1);
} }
// Replace relative drive root, e.g. pattern is C: or C:foo // Replace relative drive root, e.g. pattern is C: or C:foo
@ -50548,9 +50829,19 @@ exports.checkBypass = checkBypass;
"use strict"; "use strict";
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const assert = __webpack_require__(357); const path = __importStar(__webpack_require__(622));
const path = __webpack_require__(622); const assert_1 = __importDefault(__webpack_require__(357));
const IS_WINDOWS = process.platform === 'win32'; const IS_WINDOWS = process.platform === 'win32';
/** /**
* Similar to path.dirname except normalizes the path separators and slightly better handling for Windows UNC paths. * Similar to path.dirname except normalizes the path separators and slightly better handling for Windows UNC paths.
@ -50590,8 +50881,8 @@ exports.dirname = dirname;
* or `C:` are expanded based on the current working directory. * or `C:` are expanded based on the current working directory.
*/ */
function ensureAbsoluteRoot(root, itemPath) { function ensureAbsoluteRoot(root, itemPath) {
assert(root, `ensureAbsoluteRoot parameter 'root' must not be empty`); assert_1.default(root, `ensureAbsoluteRoot parameter 'root' must not be empty`);
assert(itemPath, `ensureAbsoluteRoot parameter 'itemPath' must not be empty`); assert_1.default(itemPath, `ensureAbsoluteRoot parameter 'itemPath' must not be empty`);
// Already rooted // Already rooted
if (hasAbsoluteRoot(itemPath)) { if (hasAbsoluteRoot(itemPath)) {
return itemPath; return itemPath;
@ -50601,7 +50892,7 @@ function ensureAbsoluteRoot(root, itemPath) {
// Check for itemPath like C: or C:foo // Check for itemPath like C: or C:foo
if (itemPath.match(/^[A-Z]:[^\\/]|^[A-Z]:$/i)) { if (itemPath.match(/^[A-Z]:[^\\/]|^[A-Z]:$/i)) {
let cwd = process.cwd(); let cwd = process.cwd();
assert(cwd.match(/^[A-Z]:\\/i), `Expected current directory to start with an absolute drive root. Actual '${cwd}'`); assert_1.default(cwd.match(/^[A-Z]:\\/i), `Expected current directory to start with an absolute drive root. Actual '${cwd}'`);
// Drive letter matches cwd? Expand to cwd // Drive letter matches cwd? Expand to cwd
if (itemPath[0].toUpperCase() === cwd[0].toUpperCase()) { if (itemPath[0].toUpperCase() === cwd[0].toUpperCase()) {
// Drive only, e.g. C: // Drive only, e.g. C:
@ -50626,11 +50917,11 @@ function ensureAbsoluteRoot(root, itemPath) {
// Check for itemPath like \ or \foo // Check for itemPath like \ or \foo
else if (normalizeSeparators(itemPath).match(/^\\$|^\\[^\\]/)) { else if (normalizeSeparators(itemPath).match(/^\\$|^\\[^\\]/)) {
const cwd = process.cwd(); const cwd = process.cwd();
assert(cwd.match(/^[A-Z]:\\/i), `Expected current directory to start with an absolute drive root. Actual '${cwd}'`); assert_1.default(cwd.match(/^[A-Z]:\\/i), `Expected current directory to start with an absolute drive root. Actual '${cwd}'`);
return `${cwd[0]}:\\${itemPath.substr(1)}`; return `${cwd[0]}:\\${itemPath.substr(1)}`;
} }
} }
assert(hasAbsoluteRoot(root), `ensureAbsoluteRoot parameter 'root' must have an absolute root`); assert_1.default(hasAbsoluteRoot(root), `ensureAbsoluteRoot parameter 'root' must have an absolute root`);
// Otherwise ensure root ends with a separator // Otherwise ensure root ends with a separator
if (root.endsWith('/') || (IS_WINDOWS && root.endsWith('\\'))) { if (root.endsWith('/') || (IS_WINDOWS && root.endsWith('\\'))) {
// Intentionally empty // Intentionally empty
@ -50647,7 +50938,7 @@ exports.ensureAbsoluteRoot = ensureAbsoluteRoot;
* `\\hello\share` and `C:\hello` (and using alternate separator). * `\\hello\share` and `C:\hello` (and using alternate separator).
*/ */
function hasAbsoluteRoot(itemPath) { function hasAbsoluteRoot(itemPath) {
assert(itemPath, `hasAbsoluteRoot parameter 'itemPath' must not be empty`); assert_1.default(itemPath, `hasAbsoluteRoot parameter 'itemPath' must not be empty`);
// Normalize separators // Normalize separators
itemPath = normalizeSeparators(itemPath); itemPath = normalizeSeparators(itemPath);
// Windows // Windows
@ -50664,7 +50955,7 @@ exports.hasAbsoluteRoot = hasAbsoluteRoot;
* `\`, `\hello`, `\\hello\share`, `C:`, and `C:\hello` (and using alternate separator). * `\`, `\hello`, `\\hello\share`, `C:`, and `C:\hello` (and using alternate separator).
*/ */
function hasRoot(itemPath) { function hasRoot(itemPath) {
assert(itemPath, `isRooted parameter 'itemPath' must not be empty`); assert_1.default(itemPath, `isRooted parameter 'itemPath' must not be empty`);
// Normalize separators // Normalize separators
itemPath = normalizeSeparators(itemPath); itemPath = normalizeSeparators(itemPath);
// Windows // Windows
@ -50945,6 +51236,7 @@ var node_fetch = _interopDefault(__webpack_require__(454));
var abortController = __webpack_require__(106); var abortController = __webpack_require__(106);
var FormData = _interopDefault(__webpack_require__(790)); var FormData = _interopDefault(__webpack_require__(790));
var util = __webpack_require__(669); var util = __webpack_require__(669);
var url = __webpack_require__(835);
var stream = __webpack_require__(794); var stream = __webpack_require__(794);
var tunnel = __webpack_require__(413); var tunnel = __webpack_require__(413);
var coreAuth = __webpack_require__(229); var coreAuth = __webpack_require__(229);
@ -51128,7 +51420,7 @@ var Constants = {
* @const * @const
* @type {string} * @type {string}
*/ */
coreHttpVersion: "1.1.9", coreHttpVersion: "1.2.1",
/** /**
* Specifies HTTP. * Specifies HTTP.
* *
@ -51222,6 +51514,17 @@ var Constants = {
} }
}; };
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
/**
* Default key used to access the XML attributes.
*/
var XML_ATTRKEY = "$";
/**
* Default key used to access the XML value content.
*/
var XML_CHARKEY = "_";
// Copyright (c) Microsoft Corporation. // 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; 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;
/** /**
@ -51369,7 +51672,9 @@ function prepareXMLRootList(obj, elementName, xmlNamespaceKey, xmlNamespace) {
if (!xmlNamespaceKey || !xmlNamespace) { if (!xmlNamespaceKey || !xmlNamespace) {
return _a = {}, _a[elementName] = obj, _a; return _a = {}, _a[elementName] = obj, _a;
} }
return _b = {}, _b[elementName] = obj, _b.$ = (_c = {}, _c[xmlNamespaceKey] = xmlNamespace, _c), _b; var result = (_b = {}, _b[elementName] = obj, _b);
result[XML_ATTRKEY] = (_c = {}, _c[xmlNamespaceKey] = xmlNamespace, _c);
return result;
} }
/** /**
* Applies the properties on the prototype of sourceCtors to the prototype of targetCtor * Applies the properties on the prototype of sourceCtors to the prototype of targetCtor
@ -51482,9 +51787,18 @@ var Serializer = /** @class */ (function () {
* *
* @param {string} objectName Name of the serialized object * @param {string} objectName Name of the serialized object
* *
* @param {options} options additional options to deserialization
*
* @returns {object|string|Array|number|boolean|Date|stream} A valid serialized Javascript object * @returns {object|string|Array|number|boolean|Date|stream} A valid serialized Javascript object
*/ */
Serializer.prototype.serialize = function (mapper, object, objectName) { Serializer.prototype.serialize = function (mapper, object, objectName, options) {
var _a, _b, _c;
if (options === void 0) { options = {}; }
var 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 payload = {};
var mapperType = mapper.type.name; var mapperType = mapper.type.name;
if (!objectName) { if (!objectName) {
@ -51541,13 +51855,13 @@ var Serializer = /** @class */ (function () {
payload = serializeBase64UrlType(objectName, object); payload = serializeBase64UrlType(objectName, object);
} }
else if (mapperType.match(/^Sequence$/i) !== null) { else if (mapperType.match(/^Sequence$/i) !== null) {
payload = serializeSequenceType(this, mapper, object, objectName, Boolean(this.isXML)); payload = serializeSequenceType(this, mapper, object, objectName, Boolean(this.isXML), updatedOptions);
} }
else if (mapperType.match(/^Dictionary$/i) !== null) { else if (mapperType.match(/^Dictionary$/i) !== null) {
payload = serializeDictionaryType(this, mapper, object, objectName, Boolean(this.isXML)); payload = serializeDictionaryType(this, mapper, object, objectName, Boolean(this.isXML), updatedOptions);
} }
else if (mapperType.match(/^Composite$/i) !== null) { else if (mapperType.match(/^Composite$/i) !== null) {
payload = serializeCompositeType(this, mapper, object, objectName, Boolean(this.isXML)); payload = serializeCompositeType(this, mapper, object, objectName, Boolean(this.isXML), updatedOptions);
} }
} }
return payload; return payload;
@ -51561,9 +51875,18 @@ var Serializer = /** @class */ (function () {
* *
* @param {string} objectName Name of the deserialized object * @param {string} objectName Name of the deserialized object
* *
* @param options Controls behavior of XML parser and builder.
*
* @returns {object|string|Array|number|boolean|Date|stream} A valid deserialized Javascript object * @returns {object|string|Array|number|boolean|Date|stream} A valid deserialized Javascript object
*/ */
Serializer.prototype.deserialize = function (mapper, responseBody, objectName) { Serializer.prototype.deserialize = function (mapper, responseBody, objectName, options) {
var _a, _b, _c;
if (options === void 0) { options = {}; }
var 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
};
if (responseBody == undefined) { if (responseBody == undefined) {
if (this.isXML && mapper.type.name === "Sequence" && !mapper.xmlIsWrapped) { if (this.isXML && mapper.type.name === "Sequence" && !mapper.xmlIsWrapped) {
// Edge case for empty XML non-wrapped lists. xml2js can't distinguish // Edge case for empty XML non-wrapped lists. xml2js can't distinguish
@ -51583,17 +51906,18 @@ var Serializer = /** @class */ (function () {
objectName = mapper.serializedName; objectName = mapper.serializedName;
} }
if (mapperType.match(/^Composite$/i) !== null) { if (mapperType.match(/^Composite$/i) !== null) {
payload = deserializeCompositeType(this, mapper, responseBody, objectName); payload = deserializeCompositeType(this, mapper, responseBody, objectName, updatedOptions);
} }
else { else {
if (this.isXML) { if (this.isXML) {
var xmlCharKey = updatedOptions.xmlCharKey;
/** /**
* If the mapper specifies this as a non-composite type value but the responseBody contains * If the mapper specifies this as a non-composite type value but the responseBody contains
* both header ("$") and body ("_") properties, then just reduce the responseBody value to * both header ("$" i.e., XML_ATTRKEY) and body ("#" i.e., XML_CHARKEY) properties,
* the body ("_") property. * then just reduce the responseBody value to the body ("#" i.e., XML_CHARKEY) property.
*/ */
if (responseBody["$"] != undefined && responseBody["_"] != undefined) { if (responseBody[XML_ATTRKEY] != undefined && responseBody[xmlCharKey] != undefined) {
responseBody = responseBody["_"]; responseBody = responseBody[xmlCharKey];
} }
} }
if (mapperType.match(/^Number$/i) !== null) { if (mapperType.match(/^Number$/i) !== null) {
@ -51629,10 +51953,10 @@ var Serializer = /** @class */ (function () {
payload = base64UrlToByteArray(responseBody); payload = base64UrlToByteArray(responseBody);
} }
else if (mapperType.match(/^Sequence$/i) !== null) { else if (mapperType.match(/^Sequence$/i) !== null) {
payload = deserializeSequenceType(this, mapper, responseBody, objectName); payload = deserializeSequenceType(this, mapper, responseBody, objectName, updatedOptions);
} }
else if (mapperType.match(/^Dictionary$/i) !== null) { else if (mapperType.match(/^Dictionary$/i) !== null) {
payload = deserializeDictionaryType(this, mapper, responseBody, objectName); payload = deserializeDictionaryType(this, mapper, responseBody, objectName, updatedOptions);
} }
} }
if (mapper.isConstant) { if (mapper.isConstant) {
@ -51737,7 +52061,7 @@ function serializeBasicTypes(typeName, objectName, value) {
objectType !== "function" && objectType !== "function" &&
!(value instanceof ArrayBuffer) && !(value instanceof ArrayBuffer) &&
!ArrayBuffer.isView(value) && !ArrayBuffer.isView(value) &&
!(typeof Blob === "function" && value instanceof Blob)) { !((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.");
} }
} }
@ -51821,7 +52145,7 @@ function serializeDateTypes(typeName, value, objectName) {
} }
return value; return value;
} }
function serializeSequenceType(serializer, mapper, object, objectName, isXml) { function serializeSequenceType(serializer, mapper, object, objectName, isXml, options) {
var _a, _b; var _a, _b;
if (!Array.isArray(object)) { if (!Array.isArray(object)) {
throw new Error(objectName + " must be of type Array."); throw new Error(objectName + " must be of type Array.");
@ -51833,16 +52157,19 @@ function serializeSequenceType(serializer, mapper, object, objectName, isXml) {
} }
var tempArray = []; var tempArray = [];
for (var i = 0; i < object.length; i++) { for (var i = 0; i < object.length; i++) {
var serializedValue = serializer.serialize(elementType, object[i], objectName); var serializedValue = serializer.serialize(elementType, object[i], objectName, options);
if (isXml && elementType.xmlNamespace) { if (isXml && elementType.xmlNamespace) {
var xmlnsKey = elementType.xmlNamespacePrefix var xmlnsKey = elementType.xmlNamespacePrefix
? "xmlns:" + elementType.xmlNamespacePrefix ? "xmlns:" + elementType.xmlNamespacePrefix
: "xmlns"; : "xmlns";
if (elementType.type.name === "Composite") { if (elementType.type.name === "Composite") {
tempArray[i] = tslib.__assign(tslib.__assign({}, serializedValue), { $: (_a = {}, _a[xmlnsKey] = elementType.xmlNamespace, _a) }); tempArray[i] = tslib.__assign({}, serializedValue);
tempArray[i][XML_ATTRKEY] = (_a = {}, _a[xmlnsKey] = elementType.xmlNamespace, _a);
} }
else { else {
tempArray[i] = { _: serializedValue, $: (_b = {}, _b[xmlnsKey] = elementType.xmlNamespace, _b) }; tempArray[i] = {};
tempArray[i][options.xmlCharKey] = serializedValue;
tempArray[i][XML_ATTRKEY] = (_b = {}, _b[xmlnsKey] = elementType.xmlNamespace, _b);
} }
} }
else { else {
@ -51851,7 +52178,7 @@ function serializeSequenceType(serializer, mapper, object, objectName, isXml) {
} }
return tempArray; return tempArray;
} }
function serializeDictionaryType(serializer, mapper, object, objectName, isXml) { function serializeDictionaryType(serializer, mapper, object, objectName, isXml, options) {
var _a; var _a;
if (typeof object !== "object") { if (typeof object !== "object") {
throw new Error(objectName + " must be of type object."); throw new Error(objectName + " must be of type object.");
@ -51864,14 +52191,16 @@ function serializeDictionaryType(serializer, mapper, object, objectName, isXml)
var tempDictionary = {}; var tempDictionary = {};
for (var _i = 0, _b = Object.keys(object); _i < _b.length; _i++) { for (var _i = 0, _b = Object.keys(object); _i < _b.length; _i++) {
var key = _b[_i]; var key = _b[_i];
var serializedValue = serializer.serialize(valueType, object[key], objectName); var serializedValue = serializer.serialize(valueType, object[key], objectName, options);
// If the element needs an XML namespace we need to add it within the $ property // If the element needs an XML namespace we need to add it within the $ property
tempDictionary[key] = getXmlObjectValue(valueType, serializedValue, isXml); tempDictionary[key] = getXmlObjectValue(valueType, serializedValue, isXml, options);
} }
// Add the namespace to the root element if needed // Add the namespace to the root element if needed
if (isXml && mapper.xmlNamespace) { if (isXml && mapper.xmlNamespace) {
var xmlnsKey = mapper.xmlNamespacePrefix ? "xmlns:" + mapper.xmlNamespacePrefix : "xmlns"; var xmlnsKey = mapper.xmlNamespacePrefix ? "xmlns:" + mapper.xmlNamespacePrefix : "xmlns";
return tslib.__assign(tslib.__assign({}, tempDictionary), { $: (_a = {}, _a[xmlnsKey] = mapper.xmlNamespace, _a) }); var result = tempDictionary;
result[XML_ATTRKEY] = (_a = {}, _a[xmlnsKey] = mapper.xmlNamespace, _a);
return result;
} }
return tempDictionary; return tempDictionary;
} }
@ -51922,7 +52251,7 @@ function resolveModelProperties(serializer, mapper, objectName) {
} }
return modelProps; return modelProps;
} }
function serializeCompositeType(serializer, mapper, object, objectName, isXml) { function serializeCompositeType(serializer, mapper, object, objectName, isXml, options) {
var _a, _b; var _a, _b;
if (getPolymorphicDiscriminatorRecursively(serializer, mapper)) { if (getPolymorphicDiscriminatorRecursively(serializer, mapper)) {
mapper = getPolymorphicMapper(serializer, mapper, object, "clientName"); mapper = getPolymorphicMapper(serializer, mapper, object, "clientName");
@ -51964,7 +52293,7 @@ function serializeCompositeType(serializer, mapper, object, objectName, isXml) {
var xmlnsKey = mapper.xmlNamespacePrefix var xmlnsKey = mapper.xmlNamespacePrefix
? "xmlns:" + mapper.xmlNamespacePrefix ? "xmlns:" + mapper.xmlNamespacePrefix
: "xmlns"; : "xmlns";
parentObject.$ = tslib.__assign(tslib.__assign({}, parentObject.$), (_a = {}, _a[xmlnsKey] = mapper.xmlNamespace, _a)); parentObject[XML_ATTRKEY] = tslib.__assign(tslib.__assign({}, parentObject[XML_ATTRKEY]), (_a = {}, _a[xmlnsKey] = mapper.xmlNamespace, _a));
} }
var propertyObjectName = propertyMapper.serializedName !== "" var propertyObjectName = propertyMapper.serializedName !== ""
? objectName + "." + propertyMapper.serializedName ? objectName + "." + propertyMapper.serializedName
@ -51976,15 +52305,15 @@ function serializeCompositeType(serializer, mapper, object, objectName, isXml) {
toSerialize == undefined) { toSerialize == undefined) {
toSerialize = mapper.serializedName; toSerialize = mapper.serializedName;
} }
var serializedValue = serializer.serialize(propertyMapper, toSerialize, propertyObjectName); var serializedValue = serializer.serialize(propertyMapper, toSerialize, propertyObjectName, options);
if (serializedValue !== undefined && propName != undefined) { if (serializedValue !== undefined && propName != undefined) {
var value = getXmlObjectValue(propertyMapper, serializedValue, isXml); var value = getXmlObjectValue(propertyMapper, serializedValue, isXml, options);
if (isXml && propertyMapper.xmlIsAttribute) { if (isXml && propertyMapper.xmlIsAttribute) {
// $ is the key attributes are kept under in xml2js. // XML_ATTRKEY, i.e., $ is the key attributes are kept under in xml2js.
// This keeps things simple while preventing name collision // This keeps things simple while preventing name collision
// with names in user documents. // with names in user documents.
parentObject.$ = parentObject.$ || {}; parentObject[XML_ATTRKEY] = parentObject[XML_ATTRKEY] || {};
parentObject.$[propName] = serializedValue; parentObject[XML_ATTRKEY][propName] = serializedValue;
} }
else if (isXml && propertyMapper.xmlIsWrapped) { else if (isXml && propertyMapper.xmlIsWrapped) {
parentObject[propName] = (_b = {}, _b[propertyMapper.xmlElementName] = value, _b); parentObject[propName] = (_b = {}, _b[propertyMapper.xmlElementName] = value, _b);
@ -52001,7 +52330,7 @@ function serializeCompositeType(serializer, mapper, object, objectName, isXml) {
var _loop_1 = function (clientPropName) { var _loop_1 = function (clientPropName) {
var isAdditionalProperty = propNames.every(function (pn) { return pn !== clientPropName; }); var isAdditionalProperty = propNames.every(function (pn) { return pn !== clientPropName; });
if (isAdditionalProperty) { if (isAdditionalProperty) {
payload[clientPropName] = serializer.serialize(additionalPropertiesMapper, object[clientPropName], objectName + '["' + clientPropName + '"]'); payload[clientPropName] = serializer.serialize(additionalPropertiesMapper, object[clientPropName], objectName + '["' + clientPropName + '"]', options);
} }
}; };
for (var clientPropName in object) { for (var clientPropName in object) {
@ -52012,7 +52341,7 @@ function serializeCompositeType(serializer, mapper, object, objectName, isXml) {
} }
return object; return object;
} }
function getXmlObjectValue(propertyMapper, serializedValue, isXml) { function getXmlObjectValue(propertyMapper, serializedValue, isXml, options) {
var _a; var _a;
if (!isXml || !propertyMapper.xmlNamespace) { if (!isXml || !propertyMapper.xmlNamespace) {
return serializedValue; return serializedValue;
@ -52022,14 +52351,24 @@ function getXmlObjectValue(propertyMapper, serializedValue, isXml) {
: "xmlns"; : "xmlns";
var xmlNamespace = (_a = {}, _a[xmlnsKey] = propertyMapper.xmlNamespace, _a); var xmlNamespace = (_a = {}, _a[xmlnsKey] = propertyMapper.xmlNamespace, _a);
if (["Composite"].includes(propertyMapper.type.name)) { if (["Composite"].includes(propertyMapper.type.name)) {
return tslib.__assign({ $: xmlNamespace }, serializedValue); if (serializedValue[XML_ATTRKEY]) {
return serializedValue;
}
else {
var result_1 = tslib.__assign({}, serializedValue);
result_1[XML_ATTRKEY] = xmlNamespace;
return result_1;
}
} }
return { _: serializedValue, $: xmlNamespace }; var result = {};
result[options.xmlCharKey] = serializedValue;
result[XML_ATTRKEY] = xmlNamespace;
return result;
} }
function isSpecialXmlProperty(propertyName) { function isSpecialXmlProperty(propertyName, options) {
return ["$", "_"].includes(propertyName); return [XML_ATTRKEY, options.xmlCharKey].includes(propertyName);
} }
function deserializeCompositeType(serializer, mapper, responseBody, objectName) { function deserializeCompositeType(serializer, mapper, responseBody, objectName, options) {
var _a; var _a;
if (getPolymorphicDiscriminatorRecursively(serializer, mapper)) { if (getPolymorphicDiscriminatorRecursively(serializer, mapper)) {
mapper = getPolymorphicMapper(serializer, mapper, responseBody, "serializedName"); mapper = getPolymorphicMapper(serializer, mapper, responseBody, "serializedName");
@ -52053,15 +52392,15 @@ function deserializeCompositeType(serializer, mapper, responseBody, objectName)
for (var _c = 0, _d = Object.keys(responseBody); _c < _d.length; _c++) { for (var _c = 0, _d = Object.keys(responseBody); _c < _d.length; _c++) {
var headerKey = _d[_c]; var headerKey = _d[_c];
if (headerKey.startsWith(headerCollectionPrefix)) { if (headerKey.startsWith(headerCollectionPrefix)) {
dictionary[headerKey.substring(headerCollectionPrefix.length)] = serializer.deserialize(propertyMapper.type.value, responseBody[headerKey], propertyObjectName); dictionary[headerKey.substring(headerCollectionPrefix.length)] = serializer.deserialize(propertyMapper.type.value, responseBody[headerKey], propertyObjectName, options);
} }
handledPropertyNames.push(headerKey); handledPropertyNames.push(headerKey);
} }
instance[key] = dictionary; instance[key] = dictionary;
} }
else if (serializer.isXML) { else if (serializer.isXML) {
if (propertyMapper.xmlIsAttribute && responseBody.$) { if (propertyMapper.xmlIsAttribute && responseBody[XML_ATTRKEY]) {
instance[key] = serializer.deserialize(propertyMapper, responseBody.$[xmlName], propertyObjectName); instance[key] = serializer.deserialize(propertyMapper, responseBody[XML_ATTRKEY][xmlName], propertyObjectName, options);
} }
else { else {
var propertyName = xmlElementName || xmlName || serializedName; var propertyName = xmlElementName || xmlName || serializedName;
@ -52082,11 +52421,11 @@ function deserializeCompositeType(serializer, mapper, responseBody, objectName)
*/ */
var wrapped = responseBody[xmlName]; var wrapped = responseBody[xmlName];
var elementList = (_a = wrapped === null || wrapped === void 0 ? void 0 : wrapped[xmlElementName]) !== null && _a !== void 0 ? _a : []; var elementList = (_a = wrapped === null || wrapped === void 0 ? void 0 : wrapped[xmlElementName]) !== null && _a !== void 0 ? _a : [];
instance[key] = serializer.deserialize(propertyMapper, elementList, propertyObjectName); instance[key] = serializer.deserialize(propertyMapper, elementList, propertyObjectName, options);
} }
else { else {
var property = responseBody[propertyName]; var property = responseBody[propertyName];
instance[key] = serializer.deserialize(propertyMapper, property, propertyObjectName); instance[key] = serializer.deserialize(propertyMapper, property, propertyObjectName, options);
} }
} }
} }
@ -52121,10 +52460,10 @@ function deserializeCompositeType(serializer, mapper, responseBody, objectName)
// paging // paging
if (Array.isArray(responseBody[key]) && modelProps[key].serializedName === "") { if (Array.isArray(responseBody[key]) && modelProps[key].serializedName === "") {
propertyInstance = responseBody[key]; propertyInstance = responseBody[key];
instance = serializer.deserialize(propertyMapper, propertyInstance, propertyObjectName); instance = serializer.deserialize(propertyMapper, propertyInstance, propertyObjectName, options);
} }
else if (propertyInstance !== undefined || propertyMapper.defaultValue !== undefined) { else if (propertyInstance !== undefined || propertyMapper.defaultValue !== undefined) {
serializedValue = serializer.deserialize(propertyMapper, propertyInstance, propertyObjectName); serializedValue = serializer.deserialize(propertyMapper, propertyInstance, propertyObjectName, options);
instance[key] = serializedValue; instance[key] = serializedValue;
} }
} }
@ -52142,7 +52481,7 @@ function deserializeCompositeType(serializer, mapper, responseBody, objectName)
}; };
for (var responsePropName in responseBody) { for (var responsePropName in responseBody) {
if (isAdditionalProperty(responsePropName)) { if (isAdditionalProperty(responsePropName)) {
instance[responsePropName] = serializer.deserialize(additionalPropertiesMapper, responseBody[responsePropName], objectName + '["' + responsePropName + '"]'); instance[responsePropName] = serializer.deserialize(additionalPropertiesMapper, responseBody[responsePropName], objectName + '["' + responsePropName + '"]', options);
} }
} }
} }
@ -52151,14 +52490,14 @@ function deserializeCompositeType(serializer, mapper, responseBody, objectName)
var key = _g[_f]; var key = _g[_f];
if (instance[key] === undefined && if (instance[key] === undefined &&
!handledPropertyNames.includes(key) && !handledPropertyNames.includes(key) &&
!isSpecialXmlProperty(key)) { !isSpecialXmlProperty(key, options)) {
instance[key] = responseBody[key]; instance[key] = responseBody[key];
} }
} }
} }
return instance; return instance;
} }
function deserializeDictionaryType(serializer, mapper, responseBody, objectName) { function deserializeDictionaryType(serializer, mapper, responseBody, objectName, options) {
var value = mapper.type.value; var value = mapper.type.value;
if (!value || typeof value !== "object") { if (!value || typeof value !== "object") {
throw new Error("\"value\" metadata for a Dictionary must be defined in the " + throw new Error("\"value\" metadata for a Dictionary must be defined in the " +
@ -52168,13 +52507,13 @@ function deserializeDictionaryType(serializer, mapper, responseBody, objectName)
var tempDictionary = {}; var tempDictionary = {};
for (var _i = 0, _a = Object.keys(responseBody); _i < _a.length; _i++) { for (var _i = 0, _a = Object.keys(responseBody); _i < _a.length; _i++) {
var key = _a[_i]; var key = _a[_i];
tempDictionary[key] = serializer.deserialize(value, responseBody[key], objectName); tempDictionary[key] = serializer.deserialize(value, responseBody[key], objectName, options);
} }
return tempDictionary; return tempDictionary;
} }
return responseBody; return responseBody;
} }
function deserializeSequenceType(serializer, mapper, responseBody, objectName) { function deserializeSequenceType(serializer, mapper, responseBody, objectName, options) {
var element = mapper.type.element; var element = mapper.type.element;
if (!element || typeof element !== "object") { if (!element || typeof element !== "object") {
throw new Error("element\" metadata for an Array must be defined in the " + throw new Error("element\" metadata for an Array must be defined in the " +
@ -52187,7 +52526,7 @@ function deserializeSequenceType(serializer, mapper, responseBody, objectName) {
} }
var tempArray = []; var tempArray = [];
for (var i = 0; i < responseBody.length; i++) { for (var i = 0; i < responseBody.length; i++) {
tempArray[i] = serializer.deserialize(element, responseBody[i], objectName + "[" + i + "]"); tempArray[i] = serializer.deserialize(element, responseBody[i], objectName + "[" + i + "]", options);
} }
return tempArray; return tempArray;
} }
@ -52488,7 +52827,7 @@ var WebResource = /** @class */ (function () {
if (!this.headers.get("Content-Type")) { if (!this.headers.get("Content-Type")) {
this.headers.set("Content-Type", "application/json; charset=utf-8"); this.headers.set("Content-Type", "application/json; charset=utf-8");
} }
// set the request body. request.js automatically sets the Content-Length request header, so we need not set it explicilty // set the request body. request.js automatically sets the Content-Length request header, so we need not set it explicitly
this.body = options.body; this.body = options.body;
if (options.body !== undefined && options.body !== null) { if (options.body !== undefined && options.body !== null) {
// body as a stream special case. set the body as-is and check for some special request headers specific to sending a stream. // body as a stream special case. set the body as-is and check for some special request headers specific to sending a stream.
@ -53347,8 +53686,9 @@ var FetchHttpClient = /** @class */ (function () {
if (typeof value === "function") { if (typeof value === "function") {
value = value(); value = value();
} }
// eslint-disable-next-line no-prototype-builtins if (value &&
if (value && value.hasOwnProperty("value") && value.hasOwnProperty("options")) { Object.prototype.hasOwnProperty.call(value, "value") &&
Object.prototype.hasOwnProperty.call(value, "options")) {
requestForm_1.append(key, value.value, value.options); requestForm_1.append(key, value.value, value.options);
} }
else { else {
@ -53399,7 +53739,7 @@ var FetchHttpClient = /** @class */ (function () {
return [4 /*yield*/, this.prepareRequest(httpRequest)]; return [4 /*yield*/, this.prepareRequest(httpRequest)];
case 1: case 1:
platformSpecificRequestInit = _d.sent(); platformSpecificRequestInit = _d.sent();
requestInit = tslib.__assign({ body: body, headers: httpRequest.headers.rawHeaders(), method: httpRequest.method, signal: abortController$1.signal }, platformSpecificRequestInit); requestInit = tslib.__assign({ body: body, headers: httpRequest.headers.rawHeaders(), method: httpRequest.method, signal: abortController$1.signal, redirect: "manual" }, platformSpecificRequestInit);
_d.label = 2; _d.label = 2;
case 2: case 2:
_d.trys.push([2, 8, 9, 10]); _d.trys.push([2, 8, 9, 10]);
@ -53879,13 +54219,12 @@ var xml2jsDefaultOptionsV2 = {
trim: false, trim: false,
normalize: false, normalize: false,
normalizeTags: false, normalizeTags: false,
attrkey: "$", attrkey: XML_ATTRKEY,
charkey: "_",
explicitArray: true, explicitArray: true,
ignoreAttrs: false, ignoreAttrs: false,
mergeAttrs: false, mergeAttrs: false,
explicitRoot: true, explicitRoot: true,
validator: null, validator: undefined,
xmlns: false, xmlns: false,
explicitChildren: false, explicitChildren: false,
preserveChildrenOrder: false, preserveChildrenOrder: false,
@ -53894,17 +54233,17 @@ var xml2jsDefaultOptionsV2 = {
includeWhiteChars: false, includeWhiteChars: false,
async: false, async: false,
strict: true, strict: true,
attrNameProcessors: null, attrNameProcessors: undefined,
attrValueProcessors: null, attrValueProcessors: undefined,
tagNameProcessors: null, tagNameProcessors: undefined,
valueProcessors: null, valueProcessors: undefined,
rootName: "root", rootName: "root",
xmldec: { xmldec: {
version: "1.0", version: "1.0",
encoding: "UTF-8", encoding: "UTF-8",
standalone: true standalone: true
}, },
doctype: null, doctype: undefined,
renderOpts: { renderOpts: {
pretty: true, pretty: true,
indent: " ", indent: " ",
@ -53931,7 +54270,10 @@ xml2jsBuilderSettings.renderOpts = {
* `rootName` indicates the name of the root element in the resulting XML * `rootName` indicates the name of the root element in the resulting XML
*/ */
function stringifyXML(obj, opts) { function stringifyXML(obj, opts) {
xml2jsBuilderSettings.rootName = (opts || {}).rootName; 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); var builder = new xml2js.Builder(xml2jsBuilderSettings);
return builder.buildObject(obj); return builder.buildObject(obj);
} }
@ -53942,7 +54284,10 @@ function stringifyXML(obj, opts) {
* `includeRoot` indicates whether the root element is to be included or not in the output * `includeRoot` indicates whether the root element is to be included or not in the output
*/ */
function parseXML(str, opts) { function parseXML(str, opts) {
xml2jsParserSettings.explicitRoot = !!(opts && opts.includeRoot); 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); var xmlParser = new xml2js.Parser(xml2jsParserSettings);
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
if (!str) { if (!str) {
@ -53966,10 +54311,10 @@ function parseXML(str, opts) {
* Create a new serialization RequestPolicyCreator that will serialized HTTP request bodies as they * Create a new serialization RequestPolicyCreator that will serialized HTTP request bodies as they
* pass through the HTTP pipeline. * pass through the HTTP pipeline.
*/ */
function deserializationPolicy(deserializationContentTypes) { function deserializationPolicy(deserializationContentTypes, parsingOptions) {
return { return {
create: function (nextPolicy, options) { create: function (nextPolicy, options) {
return new DeserializationPolicy(nextPolicy, deserializationContentTypes, options); return new DeserializationPolicy(nextPolicy, options, deserializationContentTypes, parsingOptions);
} }
}; };
} }
@ -53987,22 +54332,25 @@ var DefaultDeserializationOptions = {
*/ */
var DeserializationPolicy = /** @class */ (function (_super) { var DeserializationPolicy = /** @class */ (function (_super) {
tslib.__extends(DeserializationPolicy, _super); tslib.__extends(DeserializationPolicy, _super);
function DeserializationPolicy(nextPolicy, deserializationContentTypes, options) { function DeserializationPolicy(nextPolicy, requestPolicyOptions, deserializationContentTypes, parsingOptions) {
var _this = _super.call(this, nextPolicy, options) || this; if (parsingOptions === void 0) { parsingOptions = {}; }
var _a;
var _this = _super.call(this, nextPolicy, requestPolicyOptions) || this;
_this.jsonContentTypes = _this.jsonContentTypes =
(deserializationContentTypes && deserializationContentTypes.json) || defaultJsonContentTypes; (deserializationContentTypes && deserializationContentTypes.json) || defaultJsonContentTypes;
_this.xmlContentTypes = _this.xmlContentTypes =
(deserializationContentTypes && deserializationContentTypes.xml) || defaultXmlContentTypes; (deserializationContentTypes && deserializationContentTypes.xml) || defaultXmlContentTypes;
_this.xmlCharKey = (_a = parsingOptions.xmlCharKey) !== null && _a !== void 0 ? _a : XML_CHARKEY;
return _this; return _this;
} }
DeserializationPolicy.prototype.sendRequest = function (request) { DeserializationPolicy.prototype.sendRequest = function (request) {
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _this = this; var _this = this;
return tslib.__generator(this, function (_a) { return tslib.__generator(this, function (_a) {
return [2 /*return*/, this._nextPolicy return [2 /*return*/, this._nextPolicy.sendRequest(request).then(function (response) {
.sendRequest(request) return deserializeResponseBody(_this.jsonContentTypes, _this.xmlContentTypes, response, {
.then(function (response) { xmlCharKey: _this.xmlCharKey
return deserializeResponseBody(_this.jsonContentTypes, _this.xmlContentTypes, response); });
})]; })];
}); });
}); });
@ -54038,8 +54386,15 @@ function shouldDeserializeResponse(parsedResponse) {
} }
return result; return result;
} }
function deserializeResponseBody(jsonContentTypes, xmlContentTypes, response) { function deserializeResponseBody(jsonContentTypes, xmlContentTypes, response, options) {
return parse(jsonContentTypes, xmlContentTypes, response).then(function (parsedResponse) { var _a, _b, _c;
if (options === void 0) { options = {}; }
var 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) {
if (!shouldDeserializeResponse(parsedResponse)) { if (!shouldDeserializeResponse(parsedResponse)) {
return parsedResponse; return parsedResponse;
} }
@ -54048,54 +54403,13 @@ function deserializeResponseBody(jsonContentTypes, xmlContentTypes, response) {
return parsedResponse; return parsedResponse;
} }
var responseSpec = getOperationResponse(parsedResponse); var responseSpec = getOperationResponse(parsedResponse);
var expectedStatusCodes = Object.keys(operationSpec.responses); var _a = handleErrorResponse(parsedResponse, operationSpec, responseSpec), error = _a.error, shouldReturnResponse = _a.shouldReturnResponse;
var hasNoExpectedStatusCodes = expectedStatusCodes.length === 0 || if (error) {
(expectedStatusCodes.length === 1 && expectedStatusCodes[0] === "default");
var isExpectedStatusCode = hasNoExpectedStatusCodes
? 200 <= parsedResponse.status && parsedResponse.status < 300
: !!responseSpec;
// There is no operation response spec for current status code.
// So, treat it as an error case and use the default response spec to deserialize the response.
if (!isExpectedStatusCode) {
var defaultResponseSpec = operationSpec.responses.default;
if (!defaultResponseSpec) {
return parsedResponse;
}
var defaultBodyMapper = defaultResponseSpec.bodyMapper;
var defaultHeadersMapper = defaultResponseSpec.headersMapper;
var initialErrorMessage = isStreamOperation(operationSpec)
? "Unexpected status code: " + parsedResponse.status
: parsedResponse.bodyAsText;
var error = new RestError(initialErrorMessage, undefined, parsedResponse.status, parsedResponse.request, parsedResponse);
try {
// If error response has a body, try to extract error code & message from it
// Then try to deserialize it using default body mapper
if (parsedResponse.parsedBody) {
var parsedBody = parsedResponse.parsedBody;
var internalError = parsedBody.error || parsedBody;
error.code = internalError.code;
if (internalError.message) {
error.message = internalError.message;
}
if (defaultBodyMapper) {
var valueToDeserialize = parsedBody;
if (operationSpec.isXML && defaultBodyMapper.type.name === MapperType.Sequence) {
valueToDeserialize =
typeof parsedBody === "object" ? parsedBody[defaultBodyMapper.xmlElementName] : [];
}
error.response.parsedBody = operationSpec.serializer.deserialize(defaultBodyMapper, valueToDeserialize, "error.response.parsedBody");
}
}
// If error response has headers, try to deserialize it using default header mapper
if (parsedResponse.headers && defaultHeadersMapper) {
error.response.parsedHeaders = operationSpec.serializer.deserialize(defaultHeadersMapper, parsedResponse.headers.rawHeaders(), "operationRes.parsedHeaders");
}
}
catch (defaultError) {
error.message = "Error \"" + defaultError.message + "\" occurred in deserializing the responseBody - \"" + parsedResponse.bodyAsText + "\" for the default response.";
}
throw error; throw error;
} }
else if (shouldReturnResponse) {
return parsedResponse;
}
// An operation response spec does exist for current status code, so // An operation response spec does exist for current status code, so
// use it to deserialize the response. // use it to deserialize the response.
if (responseSpec) { if (responseSpec) {
@ -54108,7 +54422,7 @@ function deserializeResponseBody(jsonContentTypes, xmlContentTypes, response) {
: []; : [];
} }
try { try {
parsedResponse.parsedBody = operationSpec.serializer.deserialize(responseSpec.bodyMapper, valueToDeserialize, "operationRes.parsedBody"); parsedResponse.parsedBody = operationSpec.serializer.deserialize(responseSpec.bodyMapper, valueToDeserialize, "operationRes.parsedBody", options);
} }
catch (error) { catch (error) {
var restError = new RestError("Error " + error + " occurred in deserializing the responseBody - " + parsedResponse.bodyAsText, undefined, parsedResponse.status, parsedResponse.request, parsedResponse); var restError = new RestError("Error " + error + " occurred in deserializing the responseBody - " + parsedResponse.bodyAsText, undefined, parsedResponse.status, parsedResponse.request, parsedResponse);
@ -54120,13 +54434,78 @@ function deserializeResponseBody(jsonContentTypes, xmlContentTypes, response) {
parsedResponse.parsedBody = response.status >= 200 && response.status < 300; parsedResponse.parsedBody = response.status >= 200 && response.status < 300;
} }
if (responseSpec.headersMapper) { if (responseSpec.headersMapper) {
parsedResponse.parsedHeaders = operationSpec.serializer.deserialize(responseSpec.headersMapper, parsedResponse.headers.rawHeaders(), "operationRes.parsedHeaders"); parsedResponse.parsedHeaders = operationSpec.serializer.deserialize(responseSpec.headersMapper, parsedResponse.headers.rawHeaders(), "operationRes.parsedHeaders", options);
} }
} }
return parsedResponse; return parsedResponse;
}); });
} }
function parse(jsonContentTypes, xmlContentTypes, operationResponse) { function isOperationSpecEmpty(operationSpec) {
var expectedStatusCodes = Object.keys(operationSpec.responses);
return (expectedStatusCodes.length === 0 ||
(expectedStatusCodes.length === 1 && expectedStatusCodes[0] === "default"));
}
function handleErrorResponse(parsedResponse, operationSpec, responseSpec) {
var isSuccessByStatus = 200 <= parsedResponse.status && parsedResponse.status < 300;
var isExpectedStatusCode = isOperationSpecEmpty(operationSpec)
? isSuccessByStatus
: !!responseSpec;
if (isExpectedStatusCode) {
if (responseSpec) {
if (!responseSpec.isError) {
return { error: null, shouldReturnResponse: false };
}
}
else {
return { error: null, shouldReturnResponse: false };
}
}
var errorResponseSpec = responseSpec !== null && responseSpec !== void 0 ? responseSpec : operationSpec.responses.default;
var initialErrorMessage = isStreamOperation(operationSpec)
? "Unexpected status code: " + parsedResponse.status
: parsedResponse.bodyAsText;
var 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;
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;
if (defaultBodyMapper) {
var 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;
error.code = internalError.code;
if (internalError.message) {
error.message = internalError.message;
}
if (defaultBodyMapper) {
error.response.parsedBody = parsedError;
}
}
// If error response has headers, try to deserialize it using default header mapper
if (parsedResponse.headers && defaultHeadersMapper) {
error.response.parsedHeaders = operationSpec.serializer.deserialize(defaultHeadersMapper, parsedResponse.headers.rawHeaders(), "operationRes.parsedHeaders");
}
}
catch (defaultError) {
error.message = "Error \"" + defaultError.message + "\" occurred in deserializing the responseBody - \"" + parsedResponse.bodyAsText + "\" for the default response.";
}
return { error: error, shouldReturnResponse: false };
}
function parse(jsonContentTypes, xmlContentTypes, operationResponse, opts) {
var errorHandler = function (err) { var errorHandler = function (err) {
var msg = "Error \"" + err + "\" occurred while parsing the response body - " + operationResponse.bodyAsText + "."; var msg = "Error \"" + err + "\" occurred while parsing the response body - " + operationResponse.bodyAsText + ".";
var errCode = err.code || RestError.PARSE_ERROR; var errCode = err.code || RestError.PARSE_ERROR;
@ -54147,7 +54526,7 @@ function parse(jsonContentTypes, xmlContentTypes, operationResponse) {
}).catch(errorHandler); }).catch(errorHandler);
} }
else if (contentComponents.some(function (component) { return xmlContentTypes.indexOf(component) !== -1; })) { else if (contentComponents.some(function (component) { return xmlContentTypes.indexOf(component) !== -1; })) {
return parseXML(text_1) return parseXML(text_1, opts)
.then(function (body) { .then(function (body) {
operationResponse.parsedBody = body; operationResponse.parsedBody = body;
return operationResponse; return operationResponse;
@ -54417,6 +54796,10 @@ var UserAgentPolicy = /** @class */ (function (_super) {
}(BaseRequestPolicy)); }(BaseRequestPolicy));
// Copyright (c) Microsoft Corporation. // Copyright (c) Microsoft Corporation.
/**
* Methods that are allowed to follow redirects 301 and 302
*/
var allowedRedirect = ["GET", "HEAD"];
var DefaultRedirectOptions = { var DefaultRedirectOptions = {
handleRedirects: true, handleRedirects: true,
maxRetries: 20 maxRetries: 20
@ -54449,7 +54832,11 @@ function handleRedirect(policy, response, currentRetries) {
var request = response.request, status = response.status; var request = response.request, status = response.status;
var locationHeader = response.headers.get("location"); var locationHeader = response.headers.get("location");
if (locationHeader && if (locationHeader &&
(status === 300 || status === 307 || (status === 303 && request.method === "POST")) && (status === 300 ||
(status === 301 && allowedRedirect.includes(request.method)) ||
(status === 302 && allowedRedirect.includes(request.method)) ||
(status === 303 && request.method === "POST") ||
status === 307) &&
(!policy.maxRetries || currentRetries < policy.maxRetries)) { (!policy.maxRetries || currentRetries < policy.maxRetries)) {
var builder = URLBuilder.parse(request.url); var builder = URLBuilder.parse(request.url);
builder.setPath(locationHeader); builder.setPath(locationHeader);
@ -54458,6 +54845,7 @@ function handleRedirect(policy, response, currentRetries) {
// redirected GET request if the redirect url is present in the location header // redirected GET request if the redirect url is present in the location header
if (status === 303) { if (status === 303) {
request.method = "GET"; request.method = "GET";
delete request.body;
} }
return policy._nextPolicy return policy._nextPolicy
.sendRequest(request) .sendRequest(request)
@ -54719,6 +55107,12 @@ var AccessTokenRefresher = /** @class */ (function () {
}()); }());
// Copyright (c) Microsoft Corporation. // Copyright (c) Microsoft Corporation.
/**
* The automated token refresh will only start to happen at the
* expiration date minus the value of timeBetweenRefreshAttemptsInMs,
* which is by default 30 seconds.
*/
var timeBetweenRefreshAttemptsInMs = 30000;
/** /**
* Creates a new BearerTokenAuthenticationPolicy factory. * Creates a new BearerTokenAuthenticationPolicy factory.
* *
@ -54734,12 +55128,6 @@ function bearerTokenAuthenticationPolicy(credential, scopes) {
} }
}; };
} }
/**
* The automated token refresh will only start to happen at the
* expiration date minus the value of timeBetweenRefreshAttemptsInMs,
* which is by default 30 seconds.
*/
var timeBetweenRefreshAttemptsInMs = 30000;
/** /**
* *
* Provides a RequestPolicy that can request a token from a TokenCredential * Provides a RequestPolicy that can request a token from a TokenCredential
@ -55399,10 +55787,15 @@ var ServiceClient = /** @class */ (function () {
var bearerTokenPolicyFactory = undefined; var bearerTokenPolicyFactory = undefined;
// eslint-disable-next-line @typescript-eslint/no-this-alias // eslint-disable-next-line @typescript-eslint/no-this-alias
var serviceClient = _this; var serviceClient = _this;
var serviceClientOptions = options;
return { return {
create: function (nextPolicy, options) { create: function (nextPolicy, options) {
var 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");
}
if (bearerTokenPolicyFactory === undefined || bearerTokenPolicyFactory === null) { if (bearerTokenPolicyFactory === undefined || bearerTokenPolicyFactory === null) {
bearerTokenPolicyFactory = bearerTokenAuthenticationPolicy(credentials, (serviceClient.baseUri || "") + "/.default"); bearerTokenPolicyFactory = bearerTokenAuthenticationPolicy(credentials, credentialScopes);
} }
return bearerTokenPolicyFactory.create(nextPolicy, options); return bearerTokenPolicyFactory.create(nextPolicy, options);
} }
@ -55466,19 +55859,21 @@ var ServiceClient = /** @class */ (function () {
* @param {ServiceCallback} callback The callback to call when the response is received. * @param {ServiceCallback} callback The callback to call when the response is received.
*/ */
ServiceClient.prototype.sendOperationRequest = function (operationArguments, operationSpec, callback) { ServiceClient.prototype.sendOperationRequest = function (operationArguments, operationSpec, callback) {
var _a;
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var httpRequest, result, baseUri, requestUrl, _i, _a, urlParameter, urlParameterValue, _b, _c, queryParameter, queryParameterValue, index, item, index, contentType, _d, _e, headerParameter, headerValue, headerCollectionPrefix, _f, _g, key, options, customHeaderName, rawResponse, sendRequestError, error_1, error_2, cb; 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 (_h) { return tslib.__generator(this, function (_j) {
switch (_h.label) { switch (_j.label) {
case 0: case 0:
if (typeof operationArguments.options === "function") { if (typeof operationArguments.options === "function") {
callback = operationArguments.options; callback = operationArguments.options;
operationArguments.options = undefined; operationArguments.options = undefined;
} }
serializerOptions = (_a = operationArguments.options) === null || _a === void 0 ? void 0 : _a.serializerOptions;
httpRequest = new WebResource(); httpRequest = new WebResource();
_h.label = 1; _j.label = 1;
case 1: case 1:
_h.trys.push([1, 6, , 7]); _j.trys.push([1, 6, , 7]);
baseUri = operationSpec.baseUrl || this.baseUri; baseUri = operationSpec.baseUrl || this.baseUri;
if (!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."); 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.");
@ -55490,10 +55885,10 @@ var ServiceClient = /** @class */ (function () {
requestUrl.appendPath(operationSpec.path); requestUrl.appendPath(operationSpec.path);
} }
if (operationSpec.urlParameters && operationSpec.urlParameters.length > 0) { if (operationSpec.urlParameters && operationSpec.urlParameters.length > 0) {
for (_i = 0, _a = operationSpec.urlParameters; _i < _a.length; _i++) { for (_i = 0, _b = operationSpec.urlParameters; _i < _b.length; _i++) {
urlParameter = _a[_i]; urlParameter = _b[_i];
urlParameterValue = getOperationArgumentValueFromParameter(this, operationArguments, urlParameter, operationSpec.serializer); urlParameterValue = getOperationArgumentValueFromParameter(this, operationArguments, urlParameter, operationSpec.serializer);
urlParameterValue = operationSpec.serializer.serialize(urlParameter.mapper, urlParameterValue, getPathStringFromParameter(urlParameter)); urlParameterValue = operationSpec.serializer.serialize(urlParameter.mapper, urlParameterValue, getPathStringFromParameter(urlParameter), serializerOptions);
if (!urlParameter.skipEncoding) { if (!urlParameter.skipEncoding) {
urlParameterValue = encodeURIComponent(urlParameterValue); urlParameterValue = encodeURIComponent(urlParameterValue);
} }
@ -55501,16 +55896,17 @@ var ServiceClient = /** @class */ (function () {
} }
} }
if (operationSpec.queryParameters && operationSpec.queryParameters.length > 0) { if (operationSpec.queryParameters && operationSpec.queryParameters.length > 0) {
for (_b = 0, _c = operationSpec.queryParameters; _b < _c.length; _b++) { for (_c = 0, _d = operationSpec.queryParameters; _c < _d.length; _c++) {
queryParameter = _c[_b]; queryParameter = _d[_c];
queryParameterValue = getOperationArgumentValueFromParameter(this, operationArguments, queryParameter, operationSpec.serializer); queryParameterValue = getOperationArgumentValueFromParameter(this, operationArguments, queryParameter, operationSpec.serializer);
if (queryParameterValue !== undefined && queryParameterValue !== null) { if (queryParameterValue !== undefined && queryParameterValue !== null) {
queryParameterValue = operationSpec.serializer.serialize(queryParameter.mapper, queryParameterValue, getPathStringFromParameter(queryParameter)); queryParameterValue = operationSpec.serializer.serialize(queryParameter.mapper, queryParameterValue, getPathStringFromParameter(queryParameter), serializerOptions);
if (queryParameter.collectionFormat !== undefined && if (queryParameter.collectionFormat !== undefined &&
queryParameter.collectionFormat !== null) { queryParameter.collectionFormat !== null) {
if (queryParameter.collectionFormat === exports.QueryCollectionFormat.Multi) { if (queryParameter.collectionFormat === exports.QueryCollectionFormat.Multi) {
if (queryParameterValue.length === 0) { if (queryParameterValue.length === 0) {
queryParameterValue = ""; // The collection is empty, no need to try serializing the current queryParam
continue;
} }
else { else {
for (index in queryParameterValue) { for (index in queryParameterValue) {
@ -55555,16 +55951,16 @@ var ServiceClient = /** @class */ (function () {
httpRequest.headers.set("Content-Type", contentType); httpRequest.headers.set("Content-Type", contentType);
} }
if (operationSpec.headerParameters) { if (operationSpec.headerParameters) {
for (_d = 0, _e = operationSpec.headerParameters; _d < _e.length; _d++) { for (_e = 0, _f = operationSpec.headerParameters; _e < _f.length; _e++) {
headerParameter = _e[_d]; headerParameter = _f[_e];
headerValue = getOperationArgumentValueFromParameter(this, operationArguments, headerParameter, operationSpec.serializer); headerValue = getOperationArgumentValueFromParameter(this, operationArguments, headerParameter, operationSpec.serializer);
if (headerValue !== undefined && headerValue !== null) { if (headerValue !== undefined && headerValue !== null) {
headerValue = operationSpec.serializer.serialize(headerParameter.mapper, headerValue, getPathStringFromParameter(headerParameter)); headerValue = operationSpec.serializer.serialize(headerParameter.mapper, headerValue, getPathStringFromParameter(headerParameter), serializerOptions);
headerCollectionPrefix = headerParameter.mapper headerCollectionPrefix = headerParameter.mapper
.headerCollectionPrefix; .headerCollectionPrefix;
if (headerCollectionPrefix) { if (headerCollectionPrefix) {
for (_f = 0, _g = Object.keys(headerValue); _f < _g.length; _f++) { for (_g = 0, _h = Object.keys(headerValue); _g < _h.length; _g++) {
key = _g[_f]; key = _h[_g];
httpRequest.headers.set(headerCollectionPrefix + key, headerValue[key]); httpRequest.headers.set(headerCollectionPrefix + key, headerValue[key]);
} }
} }
@ -55608,15 +56004,15 @@ var ServiceClient = /** @class */ (function () {
} }
rawResponse = void 0; rawResponse = void 0;
sendRequestError = void 0; sendRequestError = void 0;
_h.label = 2; _j.label = 2;
case 2: case 2:
_h.trys.push([2, 4, , 5]); _j.trys.push([2, 4, , 5]);
return [4 /*yield*/, this.sendRequest(httpRequest)]; return [4 /*yield*/, this.sendRequest(httpRequest)];
case 3: case 3:
rawResponse = _h.sent(); rawResponse = _j.sent();
return [3 /*break*/, 5]; return [3 /*break*/, 5];
case 4: case 4:
error_1 = _h.sent(); error_1 = _j.sent();
sendRequestError = error_1; sendRequestError = error_1;
return [3 /*break*/, 5]; return [3 /*break*/, 5];
case 5: case 5:
@ -55632,7 +56028,7 @@ var ServiceClient = /** @class */ (function () {
} }
return [3 /*break*/, 7]; return [3 /*break*/, 7];
case 6: case 6:
error_2 = _h.sent(); error_2 = _j.sent();
result = Promise.reject(error_2); result = Promise.reject(error_2);
return [3 /*break*/, 7]; return [3 /*break*/, 7];
case 7: case 7:
@ -55651,7 +56047,14 @@ var ServiceClient = /** @class */ (function () {
return ServiceClient; return ServiceClient;
}()); }());
function serializeRequestBody(serviceClient, httpRequest, operationArguments, operationSpec) { function serializeRequestBody(serviceClient, httpRequest, operationArguments, operationSpec) {
var _a; 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 = {
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;
if (operationSpec.requestBody && operationSpec.requestBody.mapper) { if (operationSpec.requestBody && operationSpec.requestBody.mapper) {
httpRequest.body = getOperationArgumentValueFromParameter(serviceClient, operationArguments, operationSpec.requestBody, operationSpec.serializer); httpRequest.body = getOperationArgumentValueFromParameter(serviceClient, operationArguments, operationSpec.requestBody, operationSpec.serializer);
var bodyMapper = operationSpec.requestBody.mapper; var bodyMapper = operationSpec.requestBody.mapper;
@ -55660,22 +56063,26 @@ function serializeRequestBody(serviceClient, httpRequest, operationArguments, op
try { try {
if ((httpRequest.body !== undefined && httpRequest.body !== null) || required) { if ((httpRequest.body !== undefined && httpRequest.body !== null) || required) {
var requestBodyParameterPathString = getPathStringFromParameter(operationSpec.requestBody); var requestBodyParameterPathString = getPathStringFromParameter(operationSpec.requestBody);
httpRequest.body = operationSpec.serializer.serialize(bodyMapper, httpRequest.body, requestBodyParameterPathString); httpRequest.body = operationSpec.serializer.serialize(bodyMapper, httpRequest.body, requestBodyParameterPathString, updatedOptions);
var isStream = typeName === MapperType.Stream; var isStream = typeName === MapperType.Stream;
if (operationSpec.isXML) { if (operationSpec.isXML) {
var xmlnsKey = xmlNamespacePrefix ? "xmlns:" + xmlNamespacePrefix : "xmlns"; var xmlnsKey = xmlNamespacePrefix ? "xmlns:" + xmlNamespacePrefix : "xmlns";
var value = getXmlValueWithNamespace(xmlNamespace, xmlnsKey, typeName, httpRequest.body); var value = getXmlValueWithNamespace(xmlNamespace, xmlnsKey, typeName, httpRequest.body, updatedOptions);
if (typeName === MapperType.Sequence) { if (typeName === MapperType.Sequence) {
httpRequest.body = stringifyXML(prepareXMLRootList(value, xmlElementName || xmlName || serializedName, xmlnsKey, xmlNamespace), { rootName: xmlName || serializedName }); httpRequest.body = stringifyXML(prepareXMLRootList(value, xmlElementName || xmlName || serializedName, xmlnsKey, xmlNamespace), {
rootName: xmlName || serializedName,
xmlCharKey: xmlCharKey
});
} }
else if (!isStream) { else if (!isStream) {
httpRequest.body = stringifyXML(value, { httpRequest.body = stringifyXML(value, {
rootName: xmlName || serializedName rootName: xmlName || serializedName,
xmlCharKey: xmlCharKey
}); });
} }
} }
else if (typeName === MapperType.String && else if (typeName === MapperType.String &&
(((_a = operationSpec.contentType) === null || _a === void 0 ? void 0 : _a.match("text/plain")) || operationSpec.mediaType === "text")) { (((_f = operationSpec.contentType) === null || _f === void 0 ? void 0 : _f.match("text/plain")) || operationSpec.mediaType === "text")) {
// the String serializer has validated that request body is a string // the String serializer has validated that request body is a string
// so just send the string. // so just send the string.
return; return;
@ -55691,12 +56098,12 @@ function serializeRequestBody(serviceClient, httpRequest, operationArguments, op
} }
else if (operationSpec.formDataParameters && operationSpec.formDataParameters.length > 0) { else if (operationSpec.formDataParameters && operationSpec.formDataParameters.length > 0) {
httpRequest.formData = {}; httpRequest.formData = {};
for (var _i = 0, _b = operationSpec.formDataParameters; _i < _b.length; _i++) { for (var _i = 0, _g = operationSpec.formDataParameters; _i < _g.length; _i++) {
var formDataParameter = _b[_i]; var formDataParameter = _g[_i];
var formDataParameterValue = getOperationArgumentValueFromParameter(serviceClient, operationArguments, formDataParameter, operationSpec.serializer); var formDataParameterValue = getOperationArgumentValueFromParameter(serviceClient, operationArguments, formDataParameter, operationSpec.serializer);
if (formDataParameterValue !== undefined && formDataParameterValue !== null) { if (formDataParameterValue !== undefined && formDataParameterValue !== null) {
var formDataParameterPropertyName = formDataParameter.mapper.serializedName || getPathStringFromParameter(formDataParameter); var formDataParameterPropertyName = formDataParameter.mapper.serializedName || getPathStringFromParameter(formDataParameter);
httpRequest.formData[formDataParameterPropertyName] = operationSpec.serializer.serialize(formDataParameter.mapper, formDataParameterValue, getPathStringFromParameter(formDataParameter)); httpRequest.formData[formDataParameterPropertyName] = operationSpec.serializer.serialize(formDataParameter.mapper, formDataParameterValue, getPathStringFromParameter(formDataParameter), updatedOptions);
} }
} }
} }
@ -55704,12 +56111,15 @@ function serializeRequestBody(serviceClient, httpRequest, operationArguments, op
/** /**
* Adds an xml namespace to the xml serialized object if needed, otherwise it just returns the value itself * Adds an xml namespace to the xml serialized object if needed, otherwise it just returns the value itself
*/ */
function getXmlValueWithNamespace(xmlNamespace, xmlnsKey, typeName, serializedValue) { function getXmlValueWithNamespace(xmlNamespace, xmlnsKey, typeName, serializedValue, options) {
var _a; var _a;
// Composite and Sequence schemas already got their root namespace set during serialization // Composite and Sequence schemas already got their root namespace set during serialization
// We just need to add xmlns to the other schema types // We just need to add xmlns to the other schema types
if (xmlNamespace && !["Composite", "Sequence", "Dictionary"].includes(typeName)) { if (xmlNamespace && !["Composite", "Sequence", "Dictionary"].includes(typeName)) {
return { _: serializedValue, $: (_a = {}, _a[xmlnsKey] = xmlNamespace, _a) }; var result = {};
result[options.xmlCharKey] = serializedValue;
result[XML_ATTRKEY] = (_a = {}, _a[xmlnsKey] = xmlNamespace, _a);
return result;
} }
return serializedValue; return serializedValue;
} }
@ -55798,10 +56208,12 @@ function getOperationArgumentValueFromParameter(serviceClient, operationArgument
return getOperationArgumentValueFromParameterPath(serviceClient, operationArguments, parameter.parameterPath, parameter.mapper, serializer); return getOperationArgumentValueFromParameterPath(serviceClient, operationArguments, parameter.parameterPath, parameter.mapper, serializer);
} }
function getOperationArgumentValueFromParameterPath(serviceClient, operationArguments, parameterPath, parameterMapper, serializer) { function getOperationArgumentValueFromParameterPath(serviceClient, operationArguments, parameterPath, parameterMapper, serializer) {
var _a;
var value; var value;
if (typeof parameterPath === "string") { if (typeof parameterPath === "string") {
parameterPath = [parameterPath]; parameterPath = [parameterPath];
} }
var serializerOptions = (_a = operationArguments.options) === null || _a === void 0 ? void 0 : _a.serializerOptions;
if (Array.isArray(parameterPath)) { if (Array.isArray(parameterPath)) {
if (parameterPath.length > 0) { if (parameterPath.length > 0) {
if (parameterMapper.isConstant) { if (parameterMapper.isConstant) {
@ -55822,7 +56234,7 @@ function getOperationArgumentValueFromParameterPath(serviceClient, operationArgu
} }
// Serialize just for validation purposes. // Serialize just for validation purposes.
var parameterPathString = getPathStringFromParameterPath(parameterPath, parameterMapper); var parameterPathString = getPathStringFromParameterPath(parameterPath, parameterMapper);
serializer.serialize(parameterMapper, value, parameterPathString); serializer.serialize(parameterMapper, value, parameterPathString, serializerOptions);
} }
} }
else { else {
@ -55835,7 +56247,7 @@ function getOperationArgumentValueFromParameterPath(serviceClient, operationArgu
var propertyValue = getOperationArgumentValueFromParameterPath(serviceClient, operationArguments, propertyPath, propertyMapper, serializer); var propertyValue = getOperationArgumentValueFromParameterPath(serviceClient, operationArguments, propertyPath, propertyMapper, serializer);
// Serialize just for validation purposes. // Serialize just for validation purposes.
var propertyPathString = getPathStringFromParameterPath(propertyPath, propertyMapper); var propertyPathString = getPathStringFromParameterPath(propertyPath, propertyMapper);
serializer.serialize(propertyMapper, propertyValue, propertyPathString); serializer.serialize(propertyMapper, propertyValue, propertyPathString, serializerOptions);
if (propertyValue !== undefined && propertyValue !== null) { if (propertyValue !== undefined && propertyValue !== null) {
if (!value) { if (!value) {
value = {}; value = {};
@ -55909,6 +56321,46 @@ function flattenResponse(_response, responseSpec) {
} }
return addOperationResponse(tslib.__assign(tslib.__assign({}, parsedHeaders), _response.parsedBody)); return addOperationResponse(tslib.__assign(tslib.__assign({}, parsedHeaders), _response.parsedBody));
} }
function getCredentialScopes(options, baseUri) {
if (options === null || options === void 0 ? void 0 : options.credentialScopes) {
var scopes = options.credentialScopes;
return Array.isArray(scopes)
? scopes.map(function (scope) { return new url.URL(scope).toString(); })
: new url.URL(scopes).toString();
}
if (baseUri) {
return baseUri + "/.default";
}
return undefined;
}
// Copyright (c) Microsoft Corporation.
/**
* Creates a function called createSpan to create spans using the global tracer.
* @ignore
* @param spanConfig The name of the operation being performed.
* @param tracingOptions The options for the underlying http request.
*/
function createSpanFunction(_a) {
var packagePrefix = _a.packagePrefix, namespace = _a.namespace;
return function (operationName, operationOptions) {
var tracer = coreTracing.getTracer();
var tracingOptions = operationOptions.tracingOptions || {};
var spanOptions = tslib.__assign(tslib.__assign({}, tracingOptions.spanOptions), { kind: api.SpanKind.INTERNAL });
var span = tracer.startSpan(packagePrefix + "." + operationName, spanOptions);
span.setAttribute("az.namespace", namespace);
var newSpanOptions = tracingOptions.spanOptions || {};
if (span.isRecording()) {
newSpanOptions = tslib.__assign(tslib.__assign({}, tracingOptions.spanOptions), { parent: span.context(), attributes: tslib.__assign(tslib.__assign({}, spanOptions.attributes), { "az.namespace": namespace }) });
}
var newTracingOptions = tslib.__assign(tslib.__assign({}, tracingOptions), { spanOptions: newSpanOptions });
var newOperationOptions = tslib.__assign(tslib.__assign({}, operationOptions), { tracingOptions: newTracingOptions });
return {
span: span,
updatedOptions: newOperationOptions
};
};
}
// Copyright (c) Microsoft Corporation. // Copyright (c) Microsoft Corporation.
var HeaderConstants = Constants.HeaderConstants; var HeaderConstants = Constants.HeaderConstants;
@ -56053,9 +56505,12 @@ exports.TopicCredentials = TopicCredentials;
exports.URLBuilder = URLBuilder; exports.URLBuilder = URLBuilder;
exports.URLQuery = URLQuery; exports.URLQuery = URLQuery;
exports.WebResource = WebResource; exports.WebResource = WebResource;
exports.XML_ATTRKEY = XML_ATTRKEY;
exports.XML_CHARKEY = XML_CHARKEY;
exports.applyMixins = applyMixins; exports.applyMixins = applyMixins;
exports.bearerTokenAuthenticationPolicy = bearerTokenAuthenticationPolicy; exports.bearerTokenAuthenticationPolicy = bearerTokenAuthenticationPolicy;
exports.createPipelineFromOptions = createPipelineFromOptions; exports.createPipelineFromOptions = createPipelineFromOptions;
exports.createSpanFunction = createSpanFunction;
exports.delay = delay; exports.delay = delay;
exports.deserializationPolicy = deserializationPolicy; exports.deserializationPolicy = deserializationPolicy;
exports.deserializeResponseBody = deserializeResponseBody; exports.deserializeResponseBody = deserializeResponseBody;

1767
dist/save/index.js vendored
View File

@ -1074,7 +1074,9 @@ function resolvePaths(patterns) {
try { try {
for (var _c = __asyncValues(globber.globGenerator()), _d; _d = yield _c.next(), !_d.done;) { for (var _c = __asyncValues(globber.globGenerator()), _d; _d = yield _c.next(), !_d.done;) {
const file = _d.value; const file = _d.value;
const relativeFile = path.relative(workspace, file); const relativeFile = path
.relative(workspace, file)
.replace(new RegExp(`\\${path.sep}`, 'g'), '/');
core.debug(`Matched: ${relativeFile}`); core.debug(`Matched: ${relativeFile}`);
// Paths are made relative so the tar entries are all relative to the root of the workspace. // Paths are made relative so the tar entries are all relative to the root of the workspace.
paths.push(`${relativeFile}`); paths.push(`${relativeFile}`);
@ -8540,12 +8542,19 @@ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _ar
function reject(value) { resume("throw", 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]); } function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
}; };
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const core = __webpack_require__(470); const core = __importStar(__webpack_require__(470));
const fs = __webpack_require__(747); const fs = __importStar(__webpack_require__(747));
const globOptionsHelper = __webpack_require__(601); const globOptionsHelper = __importStar(__webpack_require__(601));
const path = __webpack_require__(622); const path = __importStar(__webpack_require__(622));
const patternHelper = __webpack_require__(597); const patternHelper = __importStar(__webpack_require__(597));
const internal_match_kind_1 = __webpack_require__(327); const internal_match_kind_1 = __webpack_require__(327);
const internal_pattern_1 = __webpack_require__(923); const internal_pattern_1 = __webpack_require__(923);
const internal_search_state_1 = __webpack_require__(728); const internal_search_state_1 = __webpack_require__(728);
@ -9796,6 +9805,13 @@ var StorageError = {
type: { type: {
name: "String" name: "String"
} }
},
code: {
xmlName: "Code",
serializedName: "Code",
type: {
name: "String"
}
} }
} }
} }
@ -10156,6 +10172,13 @@ var BlobPropertiesInternal = {
type: { type: {
name: "String" name: "String"
} }
},
lastAccessedOn: {
xmlName: "LastAccessTime",
serializedName: "LastAccessTime",
type: {
name: "DateTimeRfc1123"
}
} }
} }
} }
@ -10861,6 +10884,70 @@ var JsonTextConfiguration = {
} }
} }
}; };
var ArrowField = {
xmlName: "Field",
serializedName: "ArrowField",
type: {
name: "Composite",
className: "ArrowField",
modelProperties: {
type: {
xmlName: "Type",
required: true,
serializedName: "Type",
type: {
name: "String"
}
},
name: {
xmlName: "Name",
serializedName: "Name",
type: {
name: "String"
}
},
precision: {
xmlName: "Precision",
serializedName: "Precision",
type: {
name: "Number"
}
},
scale: {
xmlName: "Scale",
serializedName: "Scale",
type: {
name: "Number"
}
}
}
}
};
var ArrowConfiguration = {
serializedName: "ArrowConfiguration",
type: {
name: "Composite",
className: "ArrowConfiguration",
modelProperties: {
schema: {
xmlIsWrapped: true,
xmlName: "Schema",
xmlElementName: "Field",
required: true,
serializedName: "Schema",
type: {
name: "Sequence",
element: {
type: {
name: "Composite",
className: "ArrowField"
}
}
}
}
}
}
};
var ListContainersSegmentResponse = { var ListContainersSegmentResponse = {
xmlName: "EnumerationResults", xmlName: "EnumerationResults",
serializedName: "ListContainersSegmentResponse", serializedName: "ListContainersSegmentResponse",
@ -11301,7 +11388,8 @@ var QueryFormat = {
name: "Enum", name: "Enum",
allowedValues: [ allowedValues: [
"delimited", "delimited",
"json" "json",
"arrow"
] ]
} }
}, },
@ -11320,6 +11408,14 @@ var QueryFormat = {
name: "Composite", name: "Composite",
className: "JsonTextConfiguration" className: "JsonTextConfiguration"
} }
},
arrowConfiguration: {
xmlName: "ArrowConfiguration",
serializedName: "ArrowConfiguration",
type: {
name: "Composite",
className: "ArrowConfiguration"
}
} }
} }
} }
@ -12973,6 +13069,12 @@ var BlobDownloadHeaders = {
name: "Boolean" name: "Boolean"
} }
}, },
lastAccessed: {
serializedName: "x-ms-last-access-time",
type: {
name: "DateTimeRfc1123"
}
},
contentCrc64: { contentCrc64: {
serializedName: "x-ms-content-crc64", serializedName: "x-ms-content-crc64",
type: { type: {
@ -13302,6 +13404,12 @@ var BlobGetPropertiesHeaders = {
name: "String" name: "String"
} }
}, },
lastAccessed: {
serializedName: "x-ms-last-access-time",
type: {
name: "DateTimeRfc1123"
}
},
errorCode: { errorCode: {
serializedName: "x-ms-error-code", serializedName: "x-ms-error-code",
type: { type: {
@ -17688,7 +17796,7 @@ var version = {
required: true, required: true,
isConstant: true, isConstant: true,
serializedName: "x-ms-version", serializedName: "x-ms-version",
defaultValue: '2019-12-12', defaultValue: '2020-02-10',
type: { type: {
name: "String" name: "String"
} }
@ -18680,6 +18788,8 @@ var getAccountInfoOperationSpec$1 = {
var Mappers$2 = /*#__PURE__*/Object.freeze({ var Mappers$2 = /*#__PURE__*/Object.freeze({
__proto__: null, __proto__: null,
ArrowConfiguration: ArrowConfiguration,
ArrowField: ArrowField,
BlobAbortCopyFromURLHeaders: BlobAbortCopyFromURLHeaders, BlobAbortCopyFromURLHeaders: BlobAbortCopyFromURLHeaders,
BlobAcquireLeaseHeaders: BlobAcquireLeaseHeaders, BlobAcquireLeaseHeaders: BlobAcquireLeaseHeaders,
BlobBreakLeaseHeaders: BlobBreakLeaseHeaders, BlobBreakLeaseHeaders: BlobBreakLeaseHeaders,
@ -20769,8 +20879,8 @@ var logger = logger$1.createClientLogger("storage-blob");
// Copyright (c) Microsoft Corporation. All rights reserved. // Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. // Licensed under the MIT License.
var SDK_VERSION = "12.2.1"; var SDK_VERSION = "12.3.0";
var SERVICE_VERSION = "2019-12-12"; var SERVICE_VERSION = "2020-02-10";
var BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES = 256 * 1024 * 1024; // 256MB 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_STAGE_BLOCK_BYTES = 4000 * 1024 * 1024; // 4000MB
var BLOCK_BLOB_MAX_BLOCKS = 50000; var BLOCK_BLOB_MAX_BLOCKS = 50000;
@ -21477,7 +21587,7 @@ function toTags(tags) {
* Convert BlobQueryTextConfiguration to QuerySerialization type. * Convert BlobQueryTextConfiguration to QuerySerialization type.
* *
* @export * @export
* @param {(BlobQueryJsonTextConfiguration | BlobQueryCsvTextConfiguration)} [textConfiguration] * @param {(BlobQueryJsonTextConfiguration | BlobQueryCsvTextConfiguration | BlobQueryArrowConfiguration)} [textConfiguration]
* @returns {(QuerySerialization | undefined)} * @returns {(QuerySerialization | undefined)}
*/ */
function toQuerySerialization(textConfiguration) { function toQuerySerialization(textConfiguration) {
@ -21507,6 +21617,15 @@ function toQuerySerialization(textConfiguration) {
} }
} }
}; };
case "arrow":
return {
format: {
type: "arrow",
arrowConfiguration: {
schema: textConfiguration.schema
}
}
};
default: default:
throw Error("Invalid BlobQueryTextConfiguration."); throw Error("Invalid BlobQueryTextConfiguration.");
} }
@ -22794,6 +22913,21 @@ var BlobDownloadResponse = /** @class */ (function () {
enumerable: false, enumerable: false,
configurable: true 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
* @type {(Date | undefined)}
* @memberof BlobDownloadResponse
*/
get: function () {
return this.originalResponse.lastAccessed;
},
enumerable: false,
configurable: true
});
Object.defineProperty(BlobDownloadResponse.prototype, "metadata", { Object.defineProperty(BlobDownloadResponse.prototype, "metadata", {
/** /**
* A name-value pair * A name-value pair
@ -24798,7 +24932,7 @@ var StorageSharedKeyCredential = /** @class */ (function (_super) {
* regenerated. * regenerated.
*/ */
var packageName = "azure-storage-blob"; var packageName = "azure-storage-blob";
var packageVersion = "12.2.1"; var packageVersion = "12.3.0";
var StorageClientContext = /** @class */ (function (_super) { var StorageClientContext = /** @class */ (function (_super) {
tslib.__extends(StorageClientContext, _super); tslib.__extends(StorageClientContext, _super);
/** /**
@ -24820,7 +24954,7 @@ var StorageClientContext = /** @class */ (function (_super) {
options.userAgent = packageName + "/" + packageVersion + " " + defaultUserAgent; options.userAgent = packageName + "/" + packageVersion + " " + defaultUserAgent;
} }
_this = _super.call(this, undefined, options) || this; _this = _super.call(this, undefined, options) || this;
_this.version = "2019-12-12"; _this.version = "2020-02-10";
_this.baseUri = "{url}"; _this.baseUri = "{url}";
_this.requestContentType = "application/json; charset=utf-8"; _this.requestContentType = "application/json; charset=utf-8";
_this.url = url; _this.url = url;
@ -28164,6 +28298,56 @@ var BlockBlobClient = /** @class */ (function (_super) {
}); });
}; };
// High level functions // High level functions
/**
* Uploads a Buffer(Node.js)/Blob(browsers)/ArrayBuffer/ArrayBufferView object to a BlockBlob.
*
* When data length is no more than the specifiled {@link BlockBlobParallelUploadOptions.maxSingleShotSize} (default is
* {@link BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES}), this method will use 1 {@link upload} call to finish the upload.
* Otherwise, this method will call {@link stageBlock} to upload blocks, and finally call {@link commitBlockList}
* to commit the block list.
*
* @export
* @param {Buffer | Blob | ArrayBuffer | ArrayBufferView} data Buffer(Node.js), Blob, ArrayBuffer or ArrayBufferView
* @param {BlockBlobParallelUploadOptions} [options]
* @returns {Promise<BlobUploadCommonResponse>}
* @memberof BlockBlobClient
*/
BlockBlobClient.prototype.uploadData = function (data, options) {
if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, buffer_1, browserBlob_1;
return tslib.__generator(this, function (_b) {
_a = createSpan("BlockBlobClient-uploadData", options.tracingOptions), span = _a.span, spanOptions = _a.spanOptions;
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, tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions }) }))];
}
else {}
}
catch (e) {
span.setStatus({
code: api.CanonicalCode.UNKNOWN,
message: e.message
});
throw e;
}
finally {
span.end();
}
return [2 /*return*/];
});
});
};
/** /**
* ONLY AVAILABLE IN BROWSERS. * ONLY AVAILABLE IN BROWSERS.
* *
@ -28173,6 +28357,8 @@ var BlockBlobClient = /** @class */ (function (_super) {
* Otherwise, this method will call {@link stageBlock} to upload blocks, and finally call * Otherwise, this method will call {@link stageBlock} to upload blocks, and finally call
* {@link commitBlockList} to commit the block list. * {@link commitBlockList} to commit the block list.
* *
* @deprecated Use {@link uploadData} instead.
*
* @export * @export
* @param {Blob | ArrayBuffer | ArrayBufferView} browserData Blob, File, ArrayBuffer or ArrayBufferView * @param {Blob | ArrayBuffer | ArrayBufferView} browserData Blob, File, ArrayBuffer or ArrayBufferView
* @param {BlockBlobParallelUploadOptions} [options] Options to upload browser data. * @param {BlockBlobParallelUploadOptions} [options] Options to upload browser data.
@ -28182,7 +28368,7 @@ var BlockBlobClient = /** @class */ (function (_super) {
BlockBlobClient.prototype.uploadBrowserData = function (browserData, options) { BlockBlobClient.prototype.uploadBrowserData = function (browserData, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, browserBlob_1, e_29; var _a, span, spanOptions, browserBlob_2, e_29;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -28190,10 +28376,8 @@ var BlockBlobClient = /** @class */ (function (_super) {
_b.label = 1; _b.label = 1;
case 1: case 1:
_b.trys.push([1, 3, 4, 5]); _b.trys.push([1, 3, 4, 5]);
browserBlob_1 = new Blob([browserData]); browserBlob_2 = new Blob([browserData]);
return [4 /*yield*/, this.uploadSeekableBlob(function (offset, size) { return [4 /*yield*/, this.uploadSeekableInternal(function (offset, size) { return browserBlob_2.slice(offset, offset + size); }, browserBlob_2.size, tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions }) }))];
return browserBlob_1.slice(offset, offset + size);
}, browserBlob_1.size, tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions }) }))];
case 2: return [2 /*return*/, _b.sent()]; case 2: return [2 /*return*/, _b.sent()];
case 3: case 3:
e_29 = _b.sent(); e_29 = _b.sent();
@ -28211,22 +28395,22 @@ var BlockBlobClient = /** @class */ (function (_super) {
}); });
}; };
/** /**
* ONLY AVAILABLE IN BROWSERS.
* *
* Uploads a browser {@link Blob} object to block blob. Requires a blobFactory as the data source, * Uploads data to block blob. Requires a bodyFactory as the data source,
* which need to return a {@link Blob} object with the offset and size provided. * which need to return a {@link HttpRequestBody} object with the offset and size provided.
* *
* When buffer length <= 256MB, this method will use 1 upload call to finish the upload. * When data length is no more than the specifiled {@link BlockBlobParallelUploadOptions.maxSingleShotSize} (default is
* Otherwise, this method will call stageBlock to upload blocks, and finally call commitBlockList * {@link BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES}), this method will use 1 {@link upload} call to finish the upload.
* Otherwise, this method will call {@link stageBlock} to upload blocks, and finally call {@link commitBlockList}
* to commit the block list. * to commit the block list.
* *
* @param {(offset: number, size: number) => Blob} blobFactory * @param {(offset: number, size: number) => HttpRequestBody} bodyFactory
* @param {number} size size of the data to upload. * @param {number} size size of the data to upload.
* @param {BlockBlobParallelUploadOptions} [options] Options to Upload to Block Blob operation. * @param {BlockBlobParallelUploadOptions} [options] Options to Upload to Block Blob operation.
* @returns {Promise<BlobUploadCommonResponse>} Response data for the Blob Upload operation. * @returns {Promise<BlobUploadCommonResponse>} Response data for the Blob Upload operation.
* @memberof BlockBlobClient * @memberof BlockBlobClient
*/ */
BlockBlobClient.prototype.uploadSeekableBlob = function (blobFactory, size, options) { BlockBlobClient.prototype.uploadSeekableInternal = function (bodyFactory, size, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, numBlocks_1, blockList_1, blockIDPrefix_1, transferProgress_2, batch, _loop_2, i, e_30; var _a, span, spanOptions, numBlocks_1, blockList_1, blockIDPrefix_1, transferProgress_2, batch, _loop_2, i, e_30;
@ -28264,12 +28448,12 @@ var BlockBlobClient = /** @class */ (function (_super) {
if (!options.conditions) { if (!options.conditions) {
options.conditions = {}; options.conditions = {};
} }
_a = createSpan("BlockBlobClient-UploadSeekableBlob", options.tracingOptions), span = _a.span, spanOptions = _a.spanOptions; _a = createSpan("BlockBlobClient-uploadSeekableInternal", options.tracingOptions), span = _a.span, spanOptions = _a.spanOptions;
_b.label = 1; _b.label = 1;
case 1: case 1:
_b.trys.push([1, 5, 6, 7]); _b.trys.push([1, 5, 6, 7]);
if (!(size <= options.maxSingleShotSize)) return [3 /*break*/, 3]; if (!(size <= options.maxSingleShotSize)) return [3 /*break*/, 3];
return [4 /*yield*/, this.upload(blobFactory(0, size), size, tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions }) }))]; return [4 /*yield*/, this.upload(bodyFactory(0, size), size, tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions }) }))];
case 2: return [2 /*return*/, _b.sent()]; case 2: return [2 /*return*/, _b.sent()];
case 3: case 3:
numBlocks_1 = Math.floor((size - 1) / options.blockSize) + 1; numBlocks_1 = Math.floor((size - 1) / options.blockSize) + 1;
@ -28292,7 +28476,7 @@ var BlockBlobClient = /** @class */ (function (_super) {
end = i === numBlocks_1 - 1 ? size : start + options.blockSize; end = i === numBlocks_1 - 1 ? size : start + options.blockSize;
contentLength = end - start; contentLength = end - start;
blockList_1.push(blockID); blockList_1.push(blockID);
return [4 /*yield*/, this.stageBlock(blockID, blobFactory(start, contentLength), contentLength, { return [4 /*yield*/, this.stageBlock(blockID, bodyFactory(start, contentLength), contentLength, {
abortSignal: options.abortSignal, abortSignal: options.abortSignal,
conditions: options.conditions, conditions: options.conditions,
encryptionScope: options.encryptionScope, encryptionScope: options.encryptionScope,
@ -28363,12 +28547,14 @@ var BlockBlobClient = /** @class */ (function (_super) {
return [4 /*yield*/, fsStat(filePath)]; return [4 /*yield*/, fsStat(filePath)];
case 2: case 2:
size = (_b.sent()).size; size = (_b.sent()).size;
return [4 /*yield*/, this.uploadResetableStream(function (offset, count) { return [4 /*yield*/, this.uploadSeekableInternal(function (offset, count) {
return fsCreateReadStream(filePath, { return function () {
autoClose: true, return fsCreateReadStream(filePath, {
end: count ? offset + count - 1 : Infinity, autoClose: true,
start: offset end: count ? offset + count - 1 : Infinity,
}); start: offset
});
};
}, size, tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions }) }))]; }, size, tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions }) }))];
case 3: return [2 /*return*/, _b.sent()]; case 3: return [2 /*return*/, _b.sent()];
case 4: case 4:
@ -28476,132 +28662,6 @@ var BlockBlobClient = /** @class */ (function (_super) {
}); });
}); });
}; };
/**
* ONLY AVAILABLE IN NODE.JS RUNTIME.
*
* Accepts a Node.js Readable stream factory, and uploads in blocks to a block blob.
* The Readable stream factory must returns a Node.js Readable stream starting from the offset defined. The offset
* is the offset in the block blob to be uploaded.
*
* When buffer length <= 256MB, this method will use 1 upload call to finish the upload.
* Otherwise, this method will call {@link stageBlock} to upload blocks, and finally call {@link commitBlockList}
* to commit the block list.
*
* @export
* @param {(offset: number) => NodeJS.ReadableStream} streamFactory Returns a Node.js Readable stream starting
* from the offset defined
* @param {number} size Size of the block blob
* @param {BlockBlobParallelUploadOptions} [options] Options to Upload to Block Blob operation.
* @returns {(Promise<BlobUploadCommonResponse>)} Response data for the Blob Upload operation.
* @memberof BlockBlobClient
*/
BlockBlobClient.prototype.uploadResetableStream = function (streamFactory, size, options) {
if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, numBlocks_2, blockList_3, blockIDPrefix_3, transferProgress_4, batch, _loop_3, i, e_33;
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_BLOCKS * BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES) {
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-uploadResetableStream", options.tracingOptions), span = _a.span, spanOptions = _a.spanOptions;
_b.label = 1;
case 1:
_b.trys.push([1, 6, 7, 8]);
if (!(size <= options.maxSingleShotSize)) return [3 /*break*/, 3];
return [4 /*yield*/, this.upload(function () { return streamFactory(0); }, size, tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions }) }))];
case 2: return [2 /*return*/, _b.sent()];
case 3:
numBlocks_2 = Math.floor((size - 1) / options.blockSize) + 1;
if (numBlocks_2 > 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_3 = [];
blockIDPrefix_3 = coreHttp.generateUuid();
transferProgress_4 = 0;
batch = new Batch(options.concurrency);
_loop_3 = 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_3, i);
start = options.blockSize * i;
end = i === numBlocks_2 - 1 ? size : start + options.blockSize;
contentLength = end - start;
blockList_3.push(blockID);
return [4 /*yield*/, this.stageBlock(blockID, function () { return streamFactory(start, contentLength); }, contentLength, {
abortSignal: options.abortSignal,
conditions: options.conditions,
encryptionScope: options.encryptionScope,
tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions })
})];
case 1:
_a.sent();
// Update progress after block is successfully uploaded to server, in case of block trying
transferProgress_4 += contentLength;
if (options.onProgress) {
options.onProgress({ loadedBytes: transferProgress_4 });
}
return [2 /*return*/];
}
});
}); });
};
for (i = 0; i < numBlocks_2; i++) {
_loop_3(i);
}
return [4 /*yield*/, batch.do()];
case 4:
_b.sent();
return [4 /*yield*/, this.commitBlockList(blockList_3, tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions }) }))];
case 5: return [2 /*return*/, _b.sent()];
case 6:
e_33 = _b.sent();
span.setStatus({
code: api.CanonicalCode.UNKNOWN,
message: e_33.message
});
throw e_33;
case 7:
span.end();
return [7 /*endfinally*/];
case 8: return [2 /*return*/];
}
});
});
};
return BlockBlobClient; return BlockBlobClient;
}(BlobClient)); }(BlobClient));
/** /**
@ -28700,7 +28760,7 @@ var PageBlobClient = /** @class */ (function (_super) {
var _a; var _a;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _b, span, spanOptions, e_34; var _b, span, spanOptions, e_33;
return tslib.__generator(this, function (_c) { return tslib.__generator(this, function (_c) {
switch (_c.label) { switch (_c.label) {
case 0: case 0:
@ -28725,12 +28785,12 @@ var PageBlobClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _c.sent()]; case 2: return [2 /*return*/, _c.sent()];
case 3: case 3:
e_34 = _c.sent(); e_33 = _c.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_34.message message: e_33.message
}); });
throw e_34; throw e_33;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -28754,7 +28814,7 @@ var PageBlobClient = /** @class */ (function (_super) {
var _a, _b; var _a, _b;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _c, span, spanOptions, conditions, res, e_35; var _c, span, spanOptions, conditions, res, e_34;
return tslib.__generator(this, function (_d) { return tslib.__generator(this, function (_d) {
switch (_d.label) { switch (_d.label) {
case 0: case 0:
@ -28769,19 +28829,19 @@ var PageBlobClient = /** @class */ (function (_super) {
return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable
})]; })];
case 3: case 3:
e_35 = _d.sent(); e_34 = _d.sent();
if (((_a = e_35.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "BlobAlreadyExists") { if (((_a = e_34.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "BlobAlreadyExists") {
span.setStatus({ span.setStatus({
code: api.CanonicalCode.ALREADY_EXISTS, code: api.CanonicalCode.ALREADY_EXISTS,
message: "Expected exception when creating a blob only if it does not already exist." 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 })]; return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: false }, (_b = e_34.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e_34.response })];
} }
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_35.message message: e_34.message
}); });
throw e_35; throw e_34;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -28805,7 +28865,7 @@ var PageBlobClient = /** @class */ (function (_super) {
var _a; var _a;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _b, span, spanOptions, e_36; var _b, span, spanOptions, e_35;
return tslib.__generator(this, function (_c) { return tslib.__generator(this, function (_c) {
switch (_c.label) { switch (_c.label) {
case 0: case 0:
@ -28830,12 +28890,12 @@ var PageBlobClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _c.sent()]; case 2: return [2 /*return*/, _c.sent()];
case 3: case 3:
e_36 = _c.sent(); e_35 = _c.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_36.message message: e_35.message
}); });
throw e_36; throw e_35;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -28861,7 +28921,7 @@ var PageBlobClient = /** @class */ (function (_super) {
var _a; var _a;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _b, span, spanOptions, e_37; var _b, span, spanOptions, e_36;
return tslib.__generator(this, function (_c) { return tslib.__generator(this, function (_c) {
switch (_c.label) { switch (_c.label) {
case 0: case 0:
@ -28891,12 +28951,12 @@ var PageBlobClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _c.sent()]; case 2: return [2 /*return*/, _c.sent()];
case 3: case 3:
e_37 = _c.sent(); e_36 = _c.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_37.message message: e_36.message
}); });
throw e_37; throw e_36;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -28920,7 +28980,7 @@ var PageBlobClient = /** @class */ (function (_super) {
if (offset === void 0) { offset = 0; } if (offset === void 0) { offset = 0; }
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _b, span, spanOptions, e_38; var _b, span, spanOptions, e_37;
return tslib.__generator(this, function (_c) { return tslib.__generator(this, function (_c) {
switch (_c.label) { switch (_c.label) {
case 0: case 0:
@ -28941,12 +29001,12 @@ var PageBlobClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _c.sent()]; case 2: return [2 /*return*/, _c.sent()];
case 3: case 3:
e_38 = _c.sent(); e_37 = _c.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_38.message message: e_37.message
}); });
throw e_38; throw e_37;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -28970,7 +29030,7 @@ var PageBlobClient = /** @class */ (function (_super) {
if (offset === void 0) { offset = 0; } if (offset === void 0) { offset = 0; }
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _b, span, spanOptions, e_39; var _b, span, spanOptions, e_38;
return tslib.__generator(this, function (_c) { return tslib.__generator(this, function (_c) {
switch (_c.label) { switch (_c.label) {
case 0: case 0:
@ -28990,12 +29050,12 @@ var PageBlobClient = /** @class */ (function (_super) {
.then(rangeResponseFromModel)]; .then(rangeResponseFromModel)];
case 2: return [2 /*return*/, _c.sent()]; case 2: return [2 /*return*/, _c.sent()];
case 3: case 3:
e_39 = _c.sent(); e_38 = _c.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_39.message message: e_38.message
}); });
throw e_39; throw e_38;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29019,7 +29079,7 @@ var PageBlobClient = /** @class */ (function (_super) {
var _a; var _a;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _b, span, spanOptions, e_40; var _b, span, spanOptions, e_39;
return tslib.__generator(this, function (_c) { return tslib.__generator(this, function (_c) {
switch (_c.label) { switch (_c.label) {
case 0: case 0:
@ -29040,12 +29100,12 @@ var PageBlobClient = /** @class */ (function (_super) {
.then(rangeResponseFromModel)]; .then(rangeResponseFromModel)];
case 2: return [2 /*return*/, _c.sent()]; case 2: return [2 /*return*/, _c.sent()];
case 3: case 3:
e_40 = _c.sent(); e_39 = _c.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_40.message message: e_39.message
}); });
throw e_40; throw e_39;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29069,7 +29129,7 @@ var PageBlobClient = /** @class */ (function (_super) {
var _a; var _a;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _b, span, spanOptions, e_41; var _b, span, spanOptions, e_40;
return tslib.__generator(this, function (_c) { return tslib.__generator(this, function (_c) {
switch (_c.label) { switch (_c.label) {
case 0: case 0:
@ -29090,12 +29150,12 @@ var PageBlobClient = /** @class */ (function (_super) {
.then(rangeResponseFromModel)]; .then(rangeResponseFromModel)];
case 2: return [2 /*return*/, _c.sent()]; case 2: return [2 /*return*/, _c.sent()];
case 3: case 3:
e_41 = _c.sent(); e_40 = _c.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_41.message message: e_40.message
}); });
throw e_41; throw e_40;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29117,7 +29177,7 @@ var PageBlobClient = /** @class */ (function (_super) {
var _a; var _a;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _b, span, spanOptions, e_42; var _b, span, spanOptions, e_41;
return tslib.__generator(this, function (_c) { return tslib.__generator(this, function (_c) {
switch (_c.label) { switch (_c.label) {
case 0: case 0:
@ -29135,12 +29195,12 @@ var PageBlobClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _c.sent()]; case 2: return [2 /*return*/, _c.sent()];
case 3: case 3:
e_42 = _c.sent(); e_41 = _c.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_42.message message: e_41.message
}); });
throw e_42; throw e_41;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29163,7 +29223,7 @@ var PageBlobClient = /** @class */ (function (_super) {
var _a; var _a;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _b, span, spanOptions, e_43; var _b, span, spanOptions, e_42;
return tslib.__generator(this, function (_c) { return tslib.__generator(this, function (_c) {
switch (_c.label) { switch (_c.label) {
case 0: case 0:
@ -29181,12 +29241,12 @@ var PageBlobClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _c.sent()]; case 2: return [2 /*return*/, _c.sent()];
case 3: case 3:
e_43 = _c.sent(); e_42 = _c.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_43.message message: e_42.message
}); });
throw e_43; throw e_42;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29213,7 +29273,7 @@ var PageBlobClient = /** @class */ (function (_super) {
var _a; var _a;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _b, span, spanOptions, e_44; var _b, span, spanOptions, e_43;
return tslib.__generator(this, function (_c) { return tslib.__generator(this, function (_c) {
switch (_c.label) { switch (_c.label) {
case 0: case 0:
@ -29228,12 +29288,12 @@ var PageBlobClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _c.sent()]; case 2: return [2 /*return*/, _c.sent()];
case 3: case 3:
e_44 = _c.sent(); e_43 = _c.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_44.message message: e_43.message
}); });
throw e_44; throw e_43;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29318,7 +29378,7 @@ var BlobLeaseClient = /** @class */ (function () {
var _a, _b, _c, _d, _e, _f; var _a, _b, _c, _d, _e, _f;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _g, span, spanOptions, e_45; var _g, span, spanOptions, e_44;
return tslib.__generator(this, function (_h) { return tslib.__generator(this, function (_h) {
switch (_h.label) { switch (_h.label) {
case 0: case 0:
@ -29340,12 +29400,12 @@ var BlobLeaseClient = /** @class */ (function () {
})]; })];
case 2: return [2 /*return*/, _h.sent()]; case 2: return [2 /*return*/, _h.sent()];
case 3: case 3:
e_45 = _h.sent(); e_44 = _h.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_45.message message: e_44.message
}); });
throw e_45; throw e_44;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29369,7 +29429,7 @@ var BlobLeaseClient = /** @class */ (function () {
var _a, _b, _c, _d, _e, _f; var _a, _b, _c, _d, _e, _f;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _g, span, spanOptions, response, e_46; var _g, span, spanOptions, response, e_45;
return tslib.__generator(this, function (_h) { return tslib.__generator(this, function (_h) {
switch (_h.label) { switch (_h.label) {
case 0: case 0:
@ -29392,12 +29452,12 @@ var BlobLeaseClient = /** @class */ (function () {
this._leaseId = proposedLeaseId; this._leaseId = proposedLeaseId;
return [2 /*return*/, response]; return [2 /*return*/, response];
case 3: case 3:
e_46 = _h.sent(); e_45 = _h.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_46.message message: e_45.message
}); });
throw e_46; throw e_45;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29421,7 +29481,7 @@ var BlobLeaseClient = /** @class */ (function () {
var _a, _b, _c, _d, _e, _f; var _a, _b, _c, _d, _e, _f;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _g, span, spanOptions, e_47; var _g, span, spanOptions, e_46;
return tslib.__generator(this, function (_h) { return tslib.__generator(this, function (_h) {
switch (_h.label) { switch (_h.label) {
case 0: case 0:
@ -29441,12 +29501,12 @@ var BlobLeaseClient = /** @class */ (function () {
})]; })];
case 2: return [2 /*return*/, _h.sent()]; case 2: return [2 /*return*/, _h.sent()];
case 3: case 3:
e_47 = _h.sent(); e_46 = _h.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_47.message message: e_46.message
}); });
throw e_47; throw e_46;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29469,7 +29529,7 @@ var BlobLeaseClient = /** @class */ (function () {
var _a, _b, _c, _d, _e, _f; var _a, _b, _c, _d, _e, _f;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _g, span, spanOptions, e_48; var _g, span, spanOptions, e_47;
return tslib.__generator(this, function (_h) { return tslib.__generator(this, function (_h) {
switch (_h.label) { switch (_h.label) {
case 0: case 0:
@ -29489,12 +29549,12 @@ var BlobLeaseClient = /** @class */ (function () {
})]; })];
case 2: return [2 /*return*/, _h.sent()]; case 2: return [2 /*return*/, _h.sent()];
case 3: case 3:
e_48 = _h.sent(); e_47 = _h.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_48.message message: e_47.message
}); });
throw e_48; throw e_47;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29520,7 +29580,7 @@ var BlobLeaseClient = /** @class */ (function () {
var _a, _b, _c, _d, _e, _f; var _a, _b, _c, _d, _e, _f;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _g, span, spanOptions, operationOptions, e_49; var _g, span, spanOptions, operationOptions, e_48;
return tslib.__generator(this, function (_h) { return tslib.__generator(this, function (_h) {
switch (_h.label) { switch (_h.label) {
case 0: case 0:
@ -29542,12 +29602,12 @@ var BlobLeaseClient = /** @class */ (function () {
return [4 /*yield*/, this._containerOrBlobOperation.breakLease(operationOptions)]; return [4 /*yield*/, this._containerOrBlobOperation.breakLease(operationOptions)];
case 2: return [2 /*return*/, _h.sent()]; case 2: return [2 /*return*/, _h.sent()];
case 3: case 3:
e_49 = _h.sent(); e_48 = _h.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_49.message message: e_48.message
}); });
throw e_49; throw e_48;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29652,7 +29712,7 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.create = function (options) { ContainerClient.prototype.create = function (options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, e_50; var _a, span, spanOptions, e_49;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -29666,12 +29726,12 @@ var ContainerClient = /** @class */ (function (_super) {
// this will filter out unwanted properties from the response object into result object // this will filter out unwanted properties from the response object into result object
return [2 /*return*/, _b.sent()]; return [2 /*return*/, _b.sent()];
case 3: case 3:
e_50 = _b.sent(); e_49 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_50.message message: e_49.message
}); });
throw e_50; throw e_49;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29693,7 +29753,7 @@ var ContainerClient = /** @class */ (function (_super) {
var _a, _b; var _a, _b;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _c, span, spanOptions, res, e_51; var _c, span, spanOptions, res, e_50;
return tslib.__generator(this, function (_d) { return tslib.__generator(this, function (_d) {
switch (_d.label) { switch (_d.label) {
case 0: case 0:
@ -29707,19 +29767,19 @@ var ContainerClient = /** @class */ (function (_super) {
return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable
})]; })];
case 3: case 3:
e_51 = _d.sent(); e_50 = _d.sent();
if (((_a = e_51.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "ContainerAlreadyExists") { if (((_a = e_50.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "ContainerAlreadyExists") {
span.setStatus({ span.setStatus({
code: api.CanonicalCode.ALREADY_EXISTS, code: api.CanonicalCode.ALREADY_EXISTS,
message: "Expected exception when creating a container only if it does not already exist." 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_51.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e_51.response })]; return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: false }, (_b = e_50.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e_50.response })];
} }
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_51.message message: e_50.message
}); });
throw e_51; throw e_50;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29742,7 +29802,7 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.exists = function (options) { ContainerClient.prototype.exists = function (options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, e_52; var _a, span, spanOptions, e_51;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -29758,8 +29818,8 @@ var ContainerClient = /** @class */ (function (_super) {
_b.sent(); _b.sent();
return [2 /*return*/, true]; return [2 /*return*/, true];
case 3: case 3:
e_52 = _b.sent(); e_51 = _b.sent();
if (e_52.statusCode === 404) { if (e_51.statusCode === 404) {
span.setStatus({ span.setStatus({
code: api.CanonicalCode.NOT_FOUND, code: api.CanonicalCode.NOT_FOUND,
message: "Expected exception when checking container existence" message: "Expected exception when checking container existence"
@ -29768,9 +29828,9 @@ var ContainerClient = /** @class */ (function (_super) {
} }
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_52.message message: e_51.message
}); });
throw e_52; throw e_51;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29845,7 +29905,7 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.getProperties = function (options) { ContainerClient.prototype.getProperties = function (options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, e_53; var _a, span, spanOptions, e_52;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -29859,12 +29919,12 @@ var ContainerClient = /** @class */ (function (_super) {
return [4 /*yield*/, this.containerContext.getProperties(tslib.__assign(tslib.__assign({ abortSignal: options.abortSignal }, options.conditions), { spanOptions: spanOptions }))]; return [4 /*yield*/, this.containerContext.getProperties(tslib.__assign(tslib.__assign({ abortSignal: options.abortSignal }, options.conditions), { spanOptions: spanOptions }))];
case 2: return [2 /*return*/, _b.sent()]; case 2: return [2 /*return*/, _b.sent()];
case 3: case 3:
e_53 = _b.sent(); e_52 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_53.message message: e_52.message
}); });
throw e_53; throw e_52;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29885,7 +29945,7 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.delete = function (options) { ContainerClient.prototype.delete = function (options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, e_54; var _a, span, spanOptions, e_53;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -29904,12 +29964,12 @@ var ContainerClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _b.sent()]; case 2: return [2 /*return*/, _b.sent()];
case 3: case 3:
e_54 = _b.sent(); e_53 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_54.message message: e_53.message
}); });
throw e_54; throw e_53;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29931,7 +29991,7 @@ var ContainerClient = /** @class */ (function (_super) {
var _a, _b; var _a, _b;
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _c, span, spanOptions, res, e_55; var _c, span, spanOptions, res, e_54;
return tslib.__generator(this, function (_d) { return tslib.__generator(this, function (_d) {
switch (_d.label) { switch (_d.label) {
case 0: case 0:
@ -29945,19 +30005,19 @@ var ContainerClient = /** @class */ (function (_super) {
return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: true }, res), { _response: res._response // _response is made non-enumerable
})]; })];
case 3: case 3:
e_55 = _d.sent(); e_54 = _d.sent();
if (((_a = e_55.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "ContainerNotFound") { if (((_a = e_54.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "ContainerNotFound") {
span.setStatus({ span.setStatus({
code: api.CanonicalCode.NOT_FOUND, code: api.CanonicalCode.NOT_FOUND,
message: "Expected exception when deleting a container only if it exists." message: "Expected exception when deleting a container only if it exists."
}); });
return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: false }, (_b = e_55.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e_55.response })]; return [2 /*return*/, tslib.__assign(tslib.__assign({ succeeded: false }, (_b = e_54.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e_54.response })];
} }
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_55.message message: e_54.message
}); });
throw e_55; throw e_54;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -29983,7 +30043,7 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.setMetadata = function (metadata, options) { ContainerClient.prototype.setMetadata = function (metadata, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, e_56; var _a, span, spanOptions, e_55;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -30006,12 +30066,12 @@ var ContainerClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _b.sent()]; case 2: return [2 /*return*/, _b.sent()];
case 3: case 3:
e_56 = _b.sent(); e_55 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_56.message message: e_55.message
}); });
throw e_56; throw e_55;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -30036,7 +30096,7 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.getAccessPolicy = function (options) { ContainerClient.prototype.getAccessPolicy = function (options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, response, res, _i, response_1, identifier, accessPolicy, e_57; var _a, span, spanOptions, response, res, _i, response_1, identifier, accessPolicy, e_56;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -30087,12 +30147,12 @@ var ContainerClient = /** @class */ (function (_super) {
} }
return [2 /*return*/, res]; return [2 /*return*/, res];
case 3: case 3:
e_57 = _b.sent(); e_56 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_57.message message: e_56.message
}); });
throw e_57; throw e_56;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -30123,7 +30183,7 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.setAccessPolicy = function (access, containerAcl, options) { ContainerClient.prototype.setAccessPolicy = function (access, containerAcl, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, acl, _i, _b, identifier, e_58; var _a, span, spanOptions, acl, _i, _b, identifier, e_57;
return tslib.__generator(this, function (_c) { return tslib.__generator(this, function (_c) {
switch (_c.label) { switch (_c.label) {
case 0: case 0:
@ -30158,12 +30218,12 @@ var ContainerClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _c.sent()]; case 2: return [2 /*return*/, _c.sent()];
case 3: case 3:
e_58 = _c.sent(); e_57 = _c.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_58.message message: e_57.message
}); });
throw e_58; throw e_57;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -30208,7 +30268,7 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.uploadBlockBlob = function (blobName, body, contentLength, options) { ContainerClient.prototype.uploadBlockBlob = function (blobName, body, contentLength, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, blockBlobClient, response, e_59; var _a, span, spanOptions, blockBlobClient, response, e_58;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -30225,12 +30285,12 @@ var ContainerClient = /** @class */ (function (_super) {
response: response response: response
}]; }];
case 3: case 3:
e_59 = _b.sent(); e_58 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_59.message message: e_58.message
}); });
throw e_59; throw e_58;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -30254,7 +30314,7 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.deleteBlob = function (blobName, options) { ContainerClient.prototype.deleteBlob = function (blobName, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, blobClient, e_60; var _a, span, spanOptions, blobClient, e_59;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -30269,12 +30329,12 @@ var ContainerClient = /** @class */ (function (_super) {
return [4 /*yield*/, blobClient.delete(tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions }) }))]; return [4 /*yield*/, blobClient.delete(tslib.__assign(tslib.__assign({}, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions }) }))];
case 2: return [2 /*return*/, _b.sent()]; case 2: return [2 /*return*/, _b.sent()];
case 3: case 3:
e_60 = _b.sent(); e_59 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_60.message message: e_59.message
}); });
throw e_60; throw e_59;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -30298,7 +30358,7 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.listBlobFlatSegment = function (marker, options) { ContainerClient.prototype.listBlobFlatSegment = function (marker, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, response, wrappedResponse, e_61; var _a, span, spanOptions, response, wrappedResponse, e_60;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -30315,12 +30375,12 @@ var ContainerClient = /** @class */ (function (_super) {
}) }) }); }) }) });
return [2 /*return*/, wrappedResponse]; return [2 /*return*/, wrappedResponse];
case 3: case 3:
e_61 = _b.sent(); e_60 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_61.message message: e_60.message
}); });
throw e_61; throw e_60;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -30345,7 +30405,7 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.listBlobHierarchySegment = function (delimiter, marker, options) { ContainerClient.prototype.listBlobHierarchySegment = function (delimiter, marker, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, response, wrappedResponse, e_62; var _a, span, spanOptions, response, wrappedResponse, e_61;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -30362,12 +30422,12 @@ var ContainerClient = /** @class */ (function (_super) {
}) }) }); }) }) });
return [2 /*return*/, wrappedResponse]; return [2 /*return*/, wrappedResponse];
case 3: case 3:
e_62 = _b.sent(); e_61 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_62.message message: e_61.message
}); });
throw e_62; throw e_61;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -30429,8 +30489,8 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.listItems = function (options) { ContainerClient.prototype.listItems = function (options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__asyncGenerator(this, arguments, function listItems_1() { return tslib.__asyncGenerator(this, arguments, function listItems_1() {
var marker, _a, _b, listBlobsFlatSegmentResponse, e_63_1; var marker, _a, _b, listBlobsFlatSegmentResponse, e_62_1;
var e_63, _c; var e_62, _c;
return tslib.__generator(this, function (_d) { return tslib.__generator(this, function (_d) {
switch (_d.label) { switch (_d.label) {
case 0: case 0:
@ -30449,8 +30509,8 @@ var ContainerClient = /** @class */ (function (_super) {
case 5: return [3 /*break*/, 1]; case 5: return [3 /*break*/, 1];
case 6: return [3 /*break*/, 13]; case 6: return [3 /*break*/, 13];
case 7: case 7:
e_63_1 = _d.sent(); e_62_1 = _d.sent();
e_63 = { error: e_63_1 }; e_62 = { error: e_62_1 };
return [3 /*break*/, 13]; return [3 /*break*/, 13];
case 8: case 8:
_d.trys.push([8, , 11, 12]); _d.trys.push([8, , 11, 12]);
@ -30461,7 +30521,7 @@ var ContainerClient = /** @class */ (function (_super) {
_d.label = 10; _d.label = 10;
case 10: return [3 /*break*/, 12]; case 10: return [3 /*break*/, 12];
case 11: case 11:
if (e_63) throw e_63.error; if (e_62) throw e_62.error;
return [7 /*endfinally*/]; return [7 /*endfinally*/];
case 12: return [7 /*endfinally*/]; case 12: return [7 /*endfinally*/];
case 13: return [2 /*return*/]; case 13: return [2 /*return*/];
@ -30650,8 +30710,8 @@ var ContainerClient = /** @class */ (function (_super) {
ContainerClient.prototype.listItemsByHierarchy = function (delimiter, options) { ContainerClient.prototype.listItemsByHierarchy = function (delimiter, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__asyncGenerator(this, arguments, function listItemsByHierarchy_1() { return tslib.__asyncGenerator(this, arguments, function listItemsByHierarchy_1() {
var marker, _a, _b, listBlobsHierarchySegmentResponse, segment, _i, _c, prefix, _d, _e, blob, e_64_1; var marker, _a, _b, listBlobsHierarchySegmentResponse, segment, _i, _c, prefix, _d, _e, blob, e_63_1;
var e_64, _f; var e_63, _f;
return tslib.__generator(this, function (_g) { return tslib.__generator(this, function (_g) {
switch (_g.label) { switch (_g.label) {
case 0: case 0:
@ -30694,8 +30754,8 @@ var ContainerClient = /** @class */ (function (_super) {
case 12: return [3 /*break*/, 1]; case 12: return [3 /*break*/, 1];
case 13: return [3 /*break*/, 20]; case 13: return [3 /*break*/, 20];
case 14: case 14:
e_64_1 = _g.sent(); e_63_1 = _g.sent();
e_64 = { error: e_64_1 }; e_63 = { error: e_63_1 };
return [3 /*break*/, 20]; return [3 /*break*/, 20];
case 15: case 15:
_g.trys.push([15, , 18, 19]); _g.trys.push([15, , 18, 19]);
@ -30706,7 +30766,7 @@ var ContainerClient = /** @class */ (function (_super) {
_g.label = 17; _g.label = 17;
case 17: return [3 /*break*/, 19]; case 17: return [3 /*break*/, 19];
case 18: case 18:
if (e_64) throw e_64.error; if (e_63) throw e_63.error;
return [7 /*endfinally*/]; return [7 /*endfinally*/];
case 19: return [7 /*endfinally*/]; case 19: return [7 /*endfinally*/];
case 20: return [2 /*return*/]; case 20: return [2 /*return*/];
@ -31813,6 +31873,48 @@ var BlobServiceClient = /** @class */ (function (_super) {
}); });
}); });
}; };
/**
* 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.
*
* @param {string} deletedContainerName Name of the previously deleted container.
* @param {string} deletedContainerVersion Version of the previously deleted container, used to uniquely identify the deleted container.
* @returns {Promise<ContainerUndeleteResponse>} Container deletion response.
* @memberof BlobServiceClient
*/
BlobServiceClient.prototype.undeleteContainer = function (deletedContainerName, deletedContainerVersion, options) {
if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, containerClient, containerContext, containerUndeleteResponse, e_3;
return tslib.__generator(this, function (_b) {
switch (_b.label) {
case 0:
_a = createSpan("BlobServiceClient-undeleteContainer", options.tracingOptions), span = _a.span, spanOptions = _a.spanOptions;
_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(tslib.__assign({ deletedContainerName: deletedContainerName,
deletedContainerVersion: deletedContainerVersion }, options), { tracingOptions: tslib.__assign(tslib.__assign({}, options.tracingOptions), { spanOptions: spanOptions }) }))];
case 2:
containerUndeleteResponse = _b.sent();
return [2 /*return*/, { containerClient: containerClient, containerUndeleteResponse: containerUndeleteResponse }];
case 3:
e_3 = _b.sent();
span.setStatus({
code: api.CanonicalCode.UNKNOWN,
message: e_3.message
});
throw e_3;
case 4:
span.end();
return [7 /*endfinally*/];
case 5: return [2 /*return*/];
}
});
});
};
/** /**
* Gets the properties of a storage accounts Blob service, including properties * Gets the properties of a storage accounts Blob service, including properties
* for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. * for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.
@ -31825,7 +31927,7 @@ var BlobServiceClient = /** @class */ (function (_super) {
BlobServiceClient.prototype.getProperties = function (options) { BlobServiceClient.prototype.getProperties = function (options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, e_3; var _a, span, spanOptions, e_4;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -31839,12 +31941,12 @@ var BlobServiceClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _b.sent()]; case 2: return [2 /*return*/, _b.sent()];
case 3: case 3:
e_3 = _b.sent(); e_4 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_3.message message: e_4.message
}); });
throw e_3; throw e_4;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -31866,7 +31968,7 @@ var BlobServiceClient = /** @class */ (function (_super) {
BlobServiceClient.prototype.setProperties = function (properties, options) { BlobServiceClient.prototype.setProperties = function (properties, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, e_4; var _a, span, spanOptions, e_5;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -31880,12 +31982,12 @@ var BlobServiceClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _b.sent()]; case 2: return [2 /*return*/, _b.sent()];
case 3: case 3:
e_4 = _b.sent(); e_5 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_4.message message: e_5.message
}); });
throw e_4; throw e_5;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -31907,7 +32009,7 @@ var BlobServiceClient = /** @class */ (function (_super) {
BlobServiceClient.prototype.getStatistics = function (options) { BlobServiceClient.prototype.getStatistics = function (options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, e_5; var _a, span, spanOptions, e_6;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -31921,12 +32023,12 @@ var BlobServiceClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _b.sent()]; case 2: return [2 /*return*/, _b.sent()];
case 3: case 3:
e_5 = _b.sent(); e_6 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_5.message message: e_6.message
}); });
throw e_5; throw e_6;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -31949,7 +32051,7 @@ var BlobServiceClient = /** @class */ (function (_super) {
BlobServiceClient.prototype.getAccountInfo = function (options) { BlobServiceClient.prototype.getAccountInfo = function (options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, e_6; var _a, span, spanOptions, e_7;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -31963,12 +32065,12 @@ var BlobServiceClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _b.sent()]; case 2: return [2 /*return*/, _b.sent()];
case 3: case 3:
e_6 = _b.sent(); e_7 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_6.message message: e_7.message
}); });
throw e_6; throw e_7;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -31983,9 +32085,9 @@ var BlobServiceClient = /** @class */ (function (_super) {
* *
* @param {string} [marker] A string value that identifies the portion of * @param {string} [marker] A string value that identifies the portion of
* the list of containers to be returned with the next listing operation. The * the list of containers to be returned with the next listing operation. The
* operation returns the NextMarker value within the response body if the * operation returns the continuationToken value within the response body if the
* listing operation did not return all containers remaining to be listed * listing operation did not return all containers remaining to be listed
* with the current page. The NextMarker value can be used as the value for * with the current page. The continuationToken value can be used as the value for
* the marker parameter in a subsequent call to request the next page of list * the marker parameter in a subsequent call to request the next page of list
* items. The marker value is opaque to the client. * items. The marker value is opaque to the client.
* @param {ServiceListContainersSegmentOptions} [options] Options to the Service List Container Segment operation. * @param {ServiceListContainersSegmentOptions} [options] Options to the Service List Container Segment operation.
@ -31995,7 +32097,7 @@ var BlobServiceClient = /** @class */ (function (_super) {
BlobServiceClient.prototype.listContainersSegment = function (marker, options) { BlobServiceClient.prototype.listContainersSegment = function (marker, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, e_7; var _a, span, spanOptions, e_8;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -32006,12 +32108,12 @@ var BlobServiceClient = /** @class */ (function (_super) {
return [4 /*yield*/, this.serviceContext.listContainersSegment(tslib.__assign(tslib.__assign({ abortSignal: options.abortSignal, marker: marker }, options), { include: typeof options.include === "string" ? [options.include] : options.include, spanOptions: spanOptions }))]; return [4 /*yield*/, this.serviceContext.listContainersSegment(tslib.__assign(tslib.__assign({ abortSignal: options.abortSignal, marker: marker }, options), { include: typeof options.include === "string" ? [options.include] : options.include, spanOptions: spanOptions }))];
case 2: return [2 /*return*/, _b.sent()]; case 2: return [2 /*return*/, _b.sent()];
case 3: case 3:
e_7 = _b.sent(); e_8 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_7.message message: e_8.message
}); });
throw e_7; throw e_8;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -32032,9 +32134,9 @@ var BlobServiceClient = /** @class */ (function (_super) {
* however, only a subset of the OData filter syntax is supported in the Blob service. * however, only a subset of the OData filter syntax is supported in the Blob service.
* @param {string} [marker] A string value that identifies the portion of * @param {string} [marker] A string value that identifies the portion of
* the list of blobs to be returned with the next listing operation. The * the list of blobs to be returned with the next listing operation. The
* operation returns the NextMarker value within the response body if the * operation returns the continuationToken value within the response body if the
* listing operation did not return all blobs remaining to be listed * listing operation did not return all blobs remaining to be listed
* with the current page. The NextMarker value can be used as the value for * with the current page. The continuationToken value can be used as the value for
* the marker parameter in a subsequent call to request the next page of list * the marker parameter in a subsequent call to request the next page of list
* items. The marker value is opaque to the client. * items. The marker value is opaque to the client.
* @param {ServiceFindBlobsByTagsSegmentOptions} [options={}] Options to find blobs by tags. * @param {ServiceFindBlobsByTagsSegmentOptions} [options={}] Options to find blobs by tags.
@ -32044,7 +32146,7 @@ var BlobServiceClient = /** @class */ (function (_super) {
BlobServiceClient.prototype.findBlobsByTagsSegment = function (tagFilterSqlExpression, marker, options) { BlobServiceClient.prototype.findBlobsByTagsSegment = function (tagFilterSqlExpression, marker, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, e_8; var _a, span, spanOptions, e_9;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -32061,12 +32163,12 @@ var BlobServiceClient = /** @class */ (function (_super) {
})]; })];
case 2: return [2 /*return*/, _b.sent()]; case 2: return [2 /*return*/, _b.sent()];
case 3: case 3:
e_8 = _b.sent(); e_9 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_8.message message: e_9.message
}); });
throw e_8; throw e_9;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -32085,9 +32187,9 @@ var BlobServiceClient = /** @class */ (function (_super) {
* however, only a subset of the OData filter syntax is supported in the Blob service. * however, only a subset of the OData filter syntax is supported in the Blob service.
* @param {string} [marker] A string value that identifies the portion of * @param {string} [marker] A string value that identifies the portion of
* the list of blobs to be returned with the next listing operation. The * the list of blobs to be returned with the next listing operation. The
* operation returns the NextMarker value within the response body if the * operation returns the continuationToken value within the response body if the
* listing operation did not return all blobs remaining to be listed * listing operation did not return all blobs remaining to be listed
* with the current page. The NextMarker value can be used as the value for * with the current page. The continuationToken value can be used as the value for
* the marker parameter in a subsequent call to request the next page of list * the marker parameter in a subsequent call to request the next page of list
* items. The marker value is opaque to the client. * items. The marker value is opaque to the client.
* @param {ServiceFindBlobsByTagsSegmentOptions} [options={}] Options to find blobs by tags. * @param {ServiceFindBlobsByTagsSegmentOptions} [options={}] Options to find blobs by tags.
@ -32136,8 +32238,8 @@ var BlobServiceClient = /** @class */ (function (_super) {
BlobServiceClient.prototype.findBlobsByTagsItems = function (tagFilterSqlExpression, options) { BlobServiceClient.prototype.findBlobsByTagsItems = function (tagFilterSqlExpression, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__asyncGenerator(this, arguments, function findBlobsByTagsItems_1() { return tslib.__asyncGenerator(this, arguments, function findBlobsByTagsItems_1() {
var marker, _a, _b, segment, e_9_1; var marker, _a, _b, segment, e_10_1;
var e_9, _c; var e_10, _c;
return tslib.__generator(this, function (_d) { return tslib.__generator(this, function (_d) {
switch (_d.label) { switch (_d.label) {
case 0: case 0:
@ -32156,8 +32258,8 @@ var BlobServiceClient = /** @class */ (function (_super) {
case 5: return [3 /*break*/, 1]; case 5: return [3 /*break*/, 1];
case 6: return [3 /*break*/, 13]; case 6: return [3 /*break*/, 13];
case 7: case 7:
e_9_1 = _d.sent(); e_10_1 = _d.sent();
e_9 = { error: e_9_1 }; e_10 = { error: e_10_1 };
return [3 /*break*/, 13]; return [3 /*break*/, 13];
case 8: case 8:
_d.trys.push([8, , 11, 12]); _d.trys.push([8, , 11, 12]);
@ -32168,7 +32270,7 @@ var BlobServiceClient = /** @class */ (function (_super) {
_d.label = 10; _d.label = 10;
case 10: return [3 /*break*/, 12]; case 10: return [3 /*break*/, 12];
case 11: case 11:
if (e_9) throw e_9.error; if (e_10) throw e_10.error;
return [7 /*endfinally*/]; return [7 /*endfinally*/];
case 12: return [7 /*endfinally*/]; case 12: return [7 /*endfinally*/];
case 13: return [2 /*return*/]; case 13: return [2 /*return*/];
@ -32293,9 +32395,9 @@ var BlobServiceClient = /** @class */ (function (_super) {
* @private * @private
* @param {string} [marker] A string value that identifies the portion of * @param {string} [marker] A string value that identifies the portion of
* the list of containers to be returned with the next listing operation. The * the list of containers to be returned with the next listing operation. The
* operation returns the NextMarker value within the response body if the * operation returns the continuationToken value within the response body if the
* listing operation did not return all containers remaining to be listed * listing operation did not return all containers remaining to be listed
* with the current page. The NextMarker value can be used as the value for * with the current page. The continuationToken value can be used as the value for
* the marker parameter in a subsequent call to request the next page of list * the marker parameter in a subsequent call to request the next page of list
* items. The marker value is opaque to the client. * items. The marker value is opaque to the client.
* @param {ServiceListContainersSegmentOptions} [options] Options to list containers operation. * @param {ServiceListContainersSegmentOptions} [options] Options to list containers operation.
@ -32342,8 +32444,8 @@ var BlobServiceClient = /** @class */ (function (_super) {
BlobServiceClient.prototype.listItems = function (options) { BlobServiceClient.prototype.listItems = function (options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__asyncGenerator(this, arguments, function listItems_1() { return tslib.__asyncGenerator(this, arguments, function listItems_1() {
var marker, _a, _b, segment, e_10_1; var marker, _a, _b, segment, e_11_1;
var e_10, _c; var e_11, _c;
return tslib.__generator(this, function (_d) { return tslib.__generator(this, function (_d) {
switch (_d.label) { switch (_d.label) {
case 0: case 0:
@ -32362,8 +32464,8 @@ var BlobServiceClient = /** @class */ (function (_super) {
case 5: return [3 /*break*/, 1]; case 5: return [3 /*break*/, 1];
case 6: return [3 /*break*/, 13]; case 6: return [3 /*break*/, 13];
case 7: case 7:
e_10_1 = _d.sent(); e_11_1 = _d.sent();
e_10 = { error: e_10_1 }; e_11 = { error: e_11_1 };
return [3 /*break*/, 13]; return [3 /*break*/, 13];
case 8: case 8:
_d.trys.push([8, , 11, 12]); _d.trys.push([8, , 11, 12]);
@ -32374,7 +32476,7 @@ var BlobServiceClient = /** @class */ (function (_super) {
_d.label = 10; _d.label = 10;
case 10: return [3 /*break*/, 12]; case 10: return [3 /*break*/, 12];
case 11: case 11:
if (e_10) throw e_10.error; if (e_11) throw e_11.error;
return [7 /*endfinally*/]; return [7 /*endfinally*/];
case 12: return [7 /*endfinally*/]; case 12: return [7 /*endfinally*/];
case 13: return [2 /*return*/]; case 13: return [2 /*return*/];
@ -32464,8 +32566,15 @@ var BlobServiceClient = /** @class */ (function (_super) {
if (options.prefix === "") { if (options.prefix === "") {
options.prefix = undefined; options.prefix = undefined;
} }
var include = [];
if (options.includeDeleted) {
include.push("deleted");
}
if (options.includeMetadata) {
include.push("metadata");
}
// AsyncIterableIterator to iterate over containers // AsyncIterableIterator to iterate over containers
var listSegmentOptions = tslib.__assign(tslib.__assign({}, options), (options.includeMetadata ? { include: "metadata" } : {})); var listSegmentOptions = tslib.__assign(tslib.__assign({}, options), (include.length > 0 ? { include: include } : {}));
var iter = this.listItems(listSegmentOptions); var iter = this.listItems(listSegmentOptions);
return _a = { return _a = {
/** /**
@ -32506,7 +32615,7 @@ var BlobServiceClient = /** @class */ (function (_super) {
BlobServiceClient.prototype.getUserDelegationKey = function (startsOn, expiresOn, options) { BlobServiceClient.prototype.getUserDelegationKey = function (startsOn, expiresOn, options) {
if (options === void 0) { options = {}; } if (options === void 0) { options = {}; }
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _a, span, spanOptions, response, userDelegationKey, res, e_11; var _a, span, spanOptions, response, userDelegationKey, res, e_12;
return tslib.__generator(this, function (_b) { return tslib.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
@ -32535,12 +32644,12 @@ var BlobServiceClient = /** @class */ (function (_super) {
res = tslib.__assign({ _response: response._response, requestId: response.requestId, clientRequestId: response.clientRequestId, version: response.version, date: response.date, errorCode: response.errorCode }, userDelegationKey); 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]; return [2 /*return*/, res];
case 3: case 3:
e_11 = _b.sent(); e_12 = _b.sent();
span.setStatus({ span.setStatus({
code: api.CanonicalCode.UNKNOWN, code: api.CanonicalCode.UNKNOWN,
message: e_11.message message: e_12.message
}); });
throw e_11; throw e_12;
case 4: case 4:
span.end(); span.end();
return [7 /*endfinally*/]; return [7 /*endfinally*/];
@ -32996,52 +33105,61 @@ function ipRangeToString(ipRange) {
* @class SASQueryParameters * @class SASQueryParameters
*/ */
var SASQueryParameters = /** @class */ (function () { 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) {
* Creates an instance of SASQueryParameters.
*
* @param {string} version Representing the storage version
* @param {string} signature Representing the signature for the SAS token
* @param {string} [permissions] Representing the storage permissions
* @param {string} [services] Representing the storage services being accessed (only for Account SAS)
* @param {string} [resourceTypes] Representing the storage resource types being accessed (only for Account SAS)
* @param {SASProtocol} [protocol] Representing the allowed HTTP protocol(s)
* @param {Date} [startsOn] Representing the start time for this SAS token
* @param {Date} [expiresOn] Representing the expiry time for this SAS token
* @param {SasIPRange} [ipRange] Representing the range of valid IP addresses for this SAS token
* @param {string} [identifier] Representing the signed identifier (only for Service SAS)
* @param {string} [resource] Representing the storage container or blob (only for Service SAS)
* @param {string} [cacheControl] Representing the cache-control header (only for Blob/File Service SAS)
* @param {string} [contentDisposition] Representing the content-disposition header (only for Blob/File Service SAS)
* @param {string} [contentEncoding] Representing the content-encoding header (only for Blob/File Service SAS)
* @param {string} [contentLanguage] Representing the content-language header (only for Blob/File Service SAS)
* @param {string} [contentType] Representing the content-type header (only for Blob/File Service SAS)
* @param {userDelegationKey} [userDelegationKey] Representing the user delegation key properties
* @memberof SASQueryParameters
*/
function SASQueryParameters(version, signature, permissions, services, resourceTypes, protocol, startsOn, expiresOn, ipRange, identifier, resource, cacheControl, contentDisposition, contentEncoding, contentLanguage, contentType, userDelegationKey) {
this.version = version; this.version = version;
this.services = services;
this.resourceTypes = resourceTypes;
this.expiresOn = expiresOn;
this.permissions = permissions;
this.protocol = protocol;
this.startsOn = startsOn;
this.ipRangeInner = ipRange;
this.identifier = identifier;
this.resource = resource;
this.signature = signature; this.signature = signature;
this.cacheControl = cacheControl; if (permissionsOrOptions !== undefined && typeof permissionsOrOptions !== "string") {
this.contentDisposition = contentDisposition; // SASQueryParametersOptions
this.contentEncoding = contentEncoding; this.permissions = permissionsOrOptions.permissions;
this.contentLanguage = contentLanguage; this.services = permissionsOrOptions.services;
this.contentType = contentType; this.resourceTypes = permissionsOrOptions.resourceTypes;
if (userDelegationKey) { this.protocol = permissionsOrOptions.protocol;
this.signedOid = userDelegationKey.signedObjectId; this.startsOn = permissionsOrOptions.startsOn;
this.signedTenantId = userDelegationKey.signedTenantId; this.expiresOn = permissionsOrOptions.expiresOn;
this.signedStartsOn = userDelegationKey.signedStartsOn; this.ipRangeInner = permissionsOrOptions.ipRange;
this.signedExpiresOn = userDelegationKey.signedExpiresOn; this.identifier = permissionsOrOptions.identifier;
this.signedService = userDelegationKey.signedService; this.resource = permissionsOrOptions.resource;
this.signedVersion = userDelegationKey.signedVersion; this.cacheControl = permissionsOrOptions.cacheControl;
this.contentDisposition = permissionsOrOptions.contentDisposition;
this.contentEncoding = permissionsOrOptions.contentEncoding;
this.contentLanguage = permissionsOrOptions.contentLanguage;
this.contentType = permissionsOrOptions.contentType;
if (permissionsOrOptions.userDelegationKey) {
this.signedOid = permissionsOrOptions.userDelegationKey.signedObjectId;
this.signedTenantId = permissionsOrOptions.userDelegationKey.signedTenantId;
this.signedStartsOn = permissionsOrOptions.userDelegationKey.signedStartsOn;
this.signedExpiresOn = permissionsOrOptions.userDelegationKey.signedExpiresOn;
this.signedService = permissionsOrOptions.userDelegationKey.signedService;
this.signedVersion = permissionsOrOptions.userDelegationKey.signedVersion;
this.preauthorizedAgentObjectId = permissionsOrOptions.preauthorizedAgentObjectId;
this.correlationId = permissionsOrOptions.correlationId;
}
}
else {
this.services = services;
this.resourceTypes = resourceTypes;
this.expiresOn = expiresOn;
this.permissions = permissionsOrOptions;
this.protocol = protocol;
this.startsOn = startsOn;
this.ipRangeInner = ipRange;
this.identifier = identifier;
this.resource = resource;
this.cacheControl = cacheControl;
this.contentDisposition = contentDisposition;
this.contentEncoding = contentEncoding;
this.contentLanguage = contentLanguage;
this.contentType = contentType;
if (userDelegationKey) {
this.signedOid = userDelegationKey.signedObjectId;
this.signedTenantId = userDelegationKey.signedTenantId;
this.signedStartsOn = userDelegationKey.signedStartsOn;
this.signedExpiresOn = userDelegationKey.signedExpiresOn;
this.signedService = userDelegationKey.signedService;
this.signedVersion = userDelegationKey.signedVersion;
this.preauthorizedAgentObjectId = preauthorizedAgentObjectId;
this.correlationId = correlationId;
}
} }
} }
Object.defineProperty(SASQueryParameters.prototype, "ipRange", { Object.defineProperty(SASQueryParameters.prototype, "ipRange", {
@ -33093,7 +33211,9 @@ var SASQueryParameters = /** @class */ (function () {
"rscd", "rscd",
"rsce", "rsce",
"rscl", "rscl",
"rsct" "rsct",
"saoid",
"scid"
]; ];
var queries = []; var queries = [];
for (var _i = 0, params_1 = params; _i < params_1.length; _i++) { for (var _i = 0, params_1 = params; _i < params_1.length; _i++) {
@ -33165,6 +33285,12 @@ var SASQueryParameters = /** @class */ (function () {
case "rsct": case "rsct":
this.tryAppendQueryParameter(queries, param, this.contentType); this.tryAppendQueryParameter(queries, param, this.contentType);
break; break;
case "saoid":
this.tryAppendQueryParameter(queries, param, this.preauthorizedAgentObjectId);
break;
case "scid":
this.tryAppendQueryParameter(queries, param, this.correlationId);
break;
} }
} }
return queries.join("&"); return queries.join("&");
@ -33311,6 +33437,20 @@ var BlobSASPermissions = /** @class */ (function () {
* @memberof BlobSASPermissions * @memberof BlobSASPermissions
*/ */
this.tag = false; this.tag = false;
/**
* Specifies Move access granted.
*
* @type {boolean}
* @memberof BlobSASPermissions
*/
this.move = false;
/**
* Specifies Execute access granted.
*
* @type {boolean}
* @memberof BlobSASPermissions
*/
this.execute = false;
} }
/** /**
* Creates a {@link BlobSASPermissions} from the specified permissions string. This method will throw an * Creates a {@link BlobSASPermissions} from the specified permissions string. This method will throw an
@ -33347,6 +33487,12 @@ var BlobSASPermissions = /** @class */ (function () {
case "t": case "t":
blobSASPermissions.tag = true; blobSASPermissions.tag = true;
break; break;
case "m":
blobSASPermissions.move = true;
break;
case "e":
blobSASPermissions.execute = true;
break;
default: default:
throw new RangeError("Invalid permission: " + char); throw new RangeError("Invalid permission: " + char);
} }
@ -33383,6 +33529,12 @@ var BlobSASPermissions = /** @class */ (function () {
if (this.tag) { if (this.tag) {
permissions.push("t"); permissions.push("t");
} }
if (this.move) {
permissions.push("m");
}
if (this.execute) {
permissions.push("e");
}
return permissions.join(""); return permissions.join("");
}; };
return BlobSASPermissions; return BlobSASPermissions;
@ -33458,6 +33610,20 @@ var ContainerSASPermissions = /** @class */ (function () {
* @memberof ContainerSASPermissions * @memberof ContainerSASPermissions
*/ */
this.tag = false; this.tag = false;
/**
* Specifies Move access granted.
*
* @type {boolean}
* @memberof ContainerSASPermissions
*/
this.move = false;
/**
* Specifies Execute access granted.
*
* @type {boolean}
* @memberof ContainerSASPermissions
*/
this.execute = false;
} }
/** /**
* Creates an {@link ContainerSASPermissions} from the specified permissions string. This method will throw an * Creates an {@link ContainerSASPermissions} from the specified permissions string. This method will throw an
@ -33497,6 +33663,12 @@ var ContainerSASPermissions = /** @class */ (function () {
case "x": case "x":
containerSASPermissions.deleteVersion = true; containerSASPermissions.deleteVersion = true;
break; break;
case "m":
containerSASPermissions.move = true;
break;
case "e":
containerSASPermissions.execute = true;
break;
default: default:
throw new RangeError("Invalid permission " + char); throw new RangeError("Invalid permission " + char);
} }
@ -33539,6 +33711,12 @@ var ContainerSASPermissions = /** @class */ (function () {
if (this.tag) { if (this.tag) {
permissions.push("t"); permissions.push("t");
} }
if (this.move) {
permissions.push("m");
}
if (this.execute) {
permissions.push("e");
}
return permissions.join(""); return permissions.join("");
}; };
return ContainerSASPermissions; return ContainerSASPermissions;
@ -33602,7 +33780,13 @@ function generateBlobSASQueryParameters(blobSASSignatureValues, sharedKeyCredent
return generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKeyCredential); return generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKeyCredential);
} }
else { else {
return generateBlobSASQueryParametersUDK20181109(blobSASSignatureValues, userDelegationKeyCredential); // Version 2020-02-10 delegation SAS signature construction includes preauthorizedAgentObjectId, agentObjectId, correlationId.
if (version >= "2020-02-10") {
return generateBlobSASQueryParametersUDK20200210(blobSASSignatureValues, userDelegationKeyCredential);
}
else {
return generateBlobSASQueryParametersUDK20181109(blobSASSignatureValues, userDelegationKeyCredential);
}
} }
} }
if (version >= "2015-04-05") { if (version >= "2015-04-05") {
@ -33633,34 +33817,18 @@ function generateBlobSASQueryParameters(blobSASSignatureValues, sharedKeyCredent
* @returns {SASQueryParameters} * @returns {SASQueryParameters}
*/ */
function generateBlobSASQueryParameters20150405(blobSASSignatureValues, sharedKeyCredential) { function generateBlobSASQueryParameters20150405(blobSASSignatureValues, sharedKeyCredential) {
blobSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues);
if (!blobSASSignatureValues.identifier && if (!blobSASSignatureValues.identifier &&
!blobSASSignatureValues.permissions && !blobSASSignatureValues.permissions &&
!blobSASSignatureValues.expiresOn) { !blobSASSignatureValues.expiresOn) {
throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided."); throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided.");
} }
var version = blobSASSignatureValues.version ? blobSASSignatureValues.version : SERVICE_VERSION;
var resource = "c"; var resource = "c";
var verifiedPermissions;
if (blobSASSignatureValues.snapshotTime) {
throw RangeError("'version' must be >= '2018-11-09' when provided 'snapshotTime'.");
}
if (blobSASSignatureValues.versionId) {
throw RangeError("'version' must be >= '2019-10-10' when provided 'versionId'.");
}
if (blobSASSignatureValues.permissions &&
blobSASSignatureValues.permissions.deleteVersion &&
version < "2019-10-10") {
throw RangeError("'version' must be >= '2019-10-10' when provided 'x' permission.");
}
if (blobSASSignatureValues.permissions &&
blobSASSignatureValues.permissions.tag &&
version < "2019-12-12") {
throw RangeError("'version' must be >= '2019-12-12' when provided 't' permission.");
}
if (blobSASSignatureValues.blobName) { if (blobSASSignatureValues.blobName) {
resource = "b"; resource = "b";
} }
// Calling parse and toString guarantees the proper ordering and throws on invalid characters. // Calling parse and toString guarantees the proper ordering and throws on invalid characters.
var verifiedPermissions;
if (blobSASSignatureValues.permissions) { if (blobSASSignatureValues.permissions) {
if (blobSASSignatureValues.blobName) { if (blobSASSignatureValues.blobName) {
verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString(); verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString();
@ -33682,7 +33850,7 @@ function generateBlobSASQueryParameters20150405(blobSASSignatureValues, sharedKe
blobSASSignatureValues.identifier, blobSASSignatureValues.identifier,
blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : "", blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : "",
blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : "", blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : "",
version, blobSASSignatureValues.version,
blobSASSignatureValues.cacheControl ? blobSASSignatureValues.cacheControl : "", blobSASSignatureValues.cacheControl ? blobSASSignatureValues.cacheControl : "",
blobSASSignatureValues.contentDisposition ? blobSASSignatureValues.contentDisposition : "", blobSASSignatureValues.contentDisposition ? blobSASSignatureValues.contentDisposition : "",
blobSASSignatureValues.contentEncoding ? blobSASSignatureValues.contentEncoding : "", blobSASSignatureValues.contentEncoding ? blobSASSignatureValues.contentEncoding : "",
@ -33690,7 +33858,7 @@ function generateBlobSASQueryParameters20150405(blobSASSignatureValues, sharedKe
blobSASSignatureValues.contentType ? blobSASSignatureValues.contentType : "" blobSASSignatureValues.contentType ? blobSASSignatureValues.contentType : ""
].join("\n"); ].join("\n");
var signature = sharedKeyCredential.computeHMACSHA256(stringToSign); var signature = sharedKeyCredential.computeHMACSHA256(stringToSign);
return new SASQueryParameters(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); 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);
} }
/** /**
* ONLY AVAILABLE IN NODE.JS RUNTIME. * ONLY AVAILABLE IN NODE.JS RUNTIME.
@ -33710,33 +33878,13 @@ function generateBlobSASQueryParameters20150405(blobSASSignatureValues, sharedKe
* @returns {SASQueryParameters} * @returns {SASQueryParameters}
*/ */
function generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKeyCredential) { function generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKeyCredential) {
blobSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues);
if (!blobSASSignatureValues.identifier && if (!blobSASSignatureValues.identifier &&
!blobSASSignatureValues.permissions && !blobSASSignatureValues.permissions &&
!blobSASSignatureValues.expiresOn) { !blobSASSignatureValues.expiresOn) {
throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided."); throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided.");
} }
var version = blobSASSignatureValues.version ? blobSASSignatureValues.version : SERVICE_VERSION;
var resource = "c"; var resource = "c";
var verifiedPermissions;
if (blobSASSignatureValues.versionId && version < "2019-10-10") {
throw RangeError("'version' must be >= '2019-10-10' when provided 'versionId'.");
}
if (blobSASSignatureValues.permissions &&
blobSASSignatureValues.permissions.deleteVersion &&
version < "2019-10-10") {
throw RangeError("'version' must be >= '2019-10-10' when provided 'x' permission.");
}
if (blobSASSignatureValues.permissions &&
blobSASSignatureValues.permissions.tag &&
version < "2019-12-12") {
throw RangeError("'version' must be >= '2019-12-12' when provided 't' permission.");
}
if (blobSASSignatureValues.blobName === undefined && blobSASSignatureValues.snapshotTime) {
throw RangeError("Must provide 'blobName' when provided 'snapshotTime'.");
}
if (blobSASSignatureValues.blobName === undefined && blobSASSignatureValues.versionId) {
throw RangeError("Must provide 'blobName' when provided 'versionId'.");
}
var timestamp = blobSASSignatureValues.snapshotTime; var timestamp = blobSASSignatureValues.snapshotTime;
if (blobSASSignatureValues.blobName) { if (blobSASSignatureValues.blobName) {
resource = "b"; resource = "b";
@ -33749,6 +33897,7 @@ function generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKe
} }
} }
// Calling parse and toString guarantees the proper ordering and throws on invalid characters. // Calling parse and toString guarantees the proper ordering and throws on invalid characters.
var verifiedPermissions;
if (blobSASSignatureValues.permissions) { if (blobSASSignatureValues.permissions) {
if (blobSASSignatureValues.blobName) { if (blobSASSignatureValues.blobName) {
verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString(); verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString();
@ -33770,7 +33919,7 @@ function generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKe
blobSASSignatureValues.identifier, blobSASSignatureValues.identifier,
blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : "", blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : "",
blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : "", blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : "",
version, blobSASSignatureValues.version,
resource, resource,
timestamp, timestamp,
blobSASSignatureValues.cacheControl ? blobSASSignatureValues.cacheControl : "", blobSASSignatureValues.cacheControl ? blobSASSignatureValues.cacheControl : "",
@ -33780,7 +33929,7 @@ function generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKe
blobSASSignatureValues.contentType ? blobSASSignatureValues.contentType : "" blobSASSignatureValues.contentType ? blobSASSignatureValues.contentType : ""
].join("\n"); ].join("\n");
var signature = sharedKeyCredential.computeHMACSHA256(stringToSign); var signature = sharedKeyCredential.computeHMACSHA256(stringToSign);
return new SASQueryParameters(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); 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);
} }
/** /**
* ONLY AVAILABLE IN NODE.JS RUNTIME. * ONLY AVAILABLE IN NODE.JS RUNTIME.
@ -33789,7 +33938,7 @@ function generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKe
* Creates an instance of SASQueryParameters. * Creates an instance of SASQueryParameters.
* *
* Only accepts required settings needed to create a SAS. For optional settings please * Only accepts required settings needed to create a SAS. For optional settings please
* set corresponding properties directly, such as permissions, startsOn and identifier. * set corresponding properties directly, such as permissions, startsOn.
* *
* WARNING: identifier will be ignored, permissions and expiresOn are required. * WARNING: identifier will be ignored, permissions and expiresOn are required.
* *
@ -33798,31 +33947,12 @@ function generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKe
* @returns {SASQueryParameters} * @returns {SASQueryParameters}
*/ */
function generateBlobSASQueryParametersUDK20181109(blobSASSignatureValues, userDelegationKeyCredential) { function generateBlobSASQueryParametersUDK20181109(blobSASSignatureValues, userDelegationKeyCredential) {
blobSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues);
// Stored access policies are not supported for a user delegation SAS.
if (!blobSASSignatureValues.permissions || !blobSASSignatureValues.expiresOn) { if (!blobSASSignatureValues.permissions || !blobSASSignatureValues.expiresOn) {
throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS."); throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS.");
} }
var version = blobSASSignatureValues.version ? blobSASSignatureValues.version : SERVICE_VERSION;
if (blobSASSignatureValues.versionId && version < "2019-10-10") {
throw RangeError("'version' must be >= '2019-10-10' when provided 'versionId'.");
}
if (blobSASSignatureValues.permissions &&
blobSASSignatureValues.permissions.deleteVersion &&
version < "2019-10-10") {
throw RangeError("'version' must be >= '2019-10-10' when provided 'x' permission.");
}
if (blobSASSignatureValues.permissions &&
blobSASSignatureValues.permissions.tag &&
version < "2019-12-12") {
throw RangeError("'version' must be >= '2019-12-12' when provided 't' permission.");
}
var resource = "c"; var resource = "c";
var verifiedPermissions;
if (blobSASSignatureValues.blobName === undefined && blobSASSignatureValues.snapshotTime) {
throw RangeError("Must provide 'blobName' when provided 'snapshotTime'.");
}
if (blobSASSignatureValues.blobName === undefined && blobSASSignatureValues.versionId) {
throw RangeError("Must provide 'blobName' when provided 'versionId'.");
}
var timestamp = blobSASSignatureValues.snapshotTime; var timestamp = blobSASSignatureValues.snapshotTime;
if (blobSASSignatureValues.blobName) { if (blobSASSignatureValues.blobName) {
resource = "b"; resource = "b";
@ -33835,6 +33965,7 @@ function generateBlobSASQueryParametersUDK20181109(blobSASSignatureValues, userD
} }
} }
// Calling parse and toString guarantees the proper ordering and throws on invalid characters. // Calling parse and toString guarantees the proper ordering and throws on invalid characters.
var verifiedPermissions;
if (blobSASSignatureValues.permissions) { if (blobSASSignatureValues.permissions) {
if (blobSASSignatureValues.blobName) { if (blobSASSignatureValues.blobName) {
verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString(); verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString();
@ -33865,7 +33996,7 @@ function generateBlobSASQueryParametersUDK20181109(blobSASSignatureValues, userD
userDelegationKeyCredential.userDelegationKey.signedVersion, userDelegationKeyCredential.userDelegationKey.signedVersion,
blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : "", blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : "",
blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : "", blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : "",
version, blobSASSignatureValues.version,
resource, resource,
timestamp, timestamp,
blobSASSignatureValues.cacheControl, blobSASSignatureValues.cacheControl,
@ -33875,7 +34006,87 @@ function generateBlobSASQueryParametersUDK20181109(blobSASSignatureValues, userD
blobSASSignatureValues.contentType blobSASSignatureValues.contentType
].join("\n"); ].join("\n");
var signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign); var signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign);
return new SASQueryParameters(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); 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);
}
/**
* ONLY AVAILABLE IN NODE.JS RUNTIME.
* IMPLEMENTATION FOR API VERSION FROM 2020-02-10.
*
* Creates an instance of SASQueryParameters.
*
* Only accepts required settings needed to create a SAS. For optional settings please
* set corresponding properties directly, such as permissions, startsOn.
*
* WARNING: identifier will be ignored, permissions and expiresOn are required.
*
* @param {BlobSASSignatureValues} blobSASSignatureValues
* @param {UserDelegationKeyCredential} userDelegationKeyCredential
* @returns {SASQueryParameters}
*/
function generateBlobSASQueryParametersUDK20200210(blobSASSignatureValues, userDelegationKeyCredential) {
blobSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues);
// Stored access policies are not supported for a user delegation SAS.
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;
if (blobSASSignatureValues.blobName) {
resource = "b";
if (blobSASSignatureValues.snapshotTime) {
resource = "bs";
}
else if (blobSASSignatureValues.versionId) {
resource = "bv";
timestamp = blobSASSignatureValues.versionId;
}
}
// Calling parse and toString guarantees the proper ordering and throws on invalid characters.
var verifiedPermissions;
if (blobSASSignatureValues.permissions) {
if (blobSASSignatureValues.blobName) {
verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString();
}
else {
verifiedPermissions = ContainerSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString();
}
}
// Signature is generated on the un-url-encoded values.
var stringToSign = [
verifiedPermissions ? verifiedPermissions : "",
blobSASSignatureValues.startsOn
? truncatedISO8061Date(blobSASSignatureValues.startsOn, false)
: "",
blobSASSignatureValues.expiresOn
? truncatedISO8061Date(blobSASSignatureValues.expiresOn, false)
: "",
getCanonicalName(userDelegationKeyCredential.accountName, blobSASSignatureValues.containerName, blobSASSignatureValues.blobName),
userDelegationKeyCredential.userDelegationKey.signedObjectId,
userDelegationKeyCredential.userDelegationKey.signedTenantId,
userDelegationKeyCredential.userDelegationKey.signedStartsOn
? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedStartsOn, false)
: "",
userDelegationKeyCredential.userDelegationKey.signedExpiresOn
? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedExpiresOn, false)
: "",
userDelegationKeyCredential.userDelegationKey.signedService,
userDelegationKeyCredential.userDelegationKey.signedVersion,
blobSASSignatureValues.preauthorizedAgentObjectId,
undefined,
blobSASSignatureValues.correlationId,
blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : "",
blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : "",
blobSASSignatureValues.version,
resource,
timestamp,
blobSASSignatureValues.cacheControl,
blobSASSignatureValues.contentDisposition,
blobSASSignatureValues.contentEncoding,
blobSASSignatureValues.contentLanguage,
blobSASSignatureValues.contentType
].join("\n");
var 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) { function getCanonicalName(accountName, containerName, blobName) {
// Container: "/blob/account/containerName" // Container: "/blob/account/containerName"
@ -33886,6 +34097,42 @@ function getCanonicalName(accountName, containerName, blobName) {
} }
return elements.join(""); return elements.join("");
} }
function SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues) {
var 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'.");
}
if (blobSASSignatureValues.blobName === undefined && blobSASSignatureValues.snapshotTime) {
throw RangeError("Must provide 'blobName' when providing 'snapshotTime'.");
}
if (blobSASSignatureValues.versionId && version < "2019-10-10") {
throw RangeError("'version' must be >= '2019-10-10' when providing 'versionId'.");
}
if (blobSASSignatureValues.blobName === undefined && blobSASSignatureValues.versionId) {
throw RangeError("Must provide 'blobName' when providing 'versionId'.");
}
if (blobSASSignatureValues.permissions &&
blobSASSignatureValues.permissions.deleteVersion &&
version < "2019-10-10") {
throw RangeError("'version' must be >= '2019-10-10' when providing 'x' permission.");
}
if (blobSASSignatureValues.permissions &&
blobSASSignatureValues.permissions.tag &&
version < "2019-12-12") {
throw RangeError("'version' must be >= '2019-12-12' when providing 't' permission.");
}
if (version < "2020-02-10" &&
blobSASSignatureValues.permissions &&
(blobSASSignatureValues.permissions.move || blobSASSignatureValues.permissions.execute)) {
throw RangeError("'version' must be >= '2020-02-10' when providing the 'm' or 'e' permission.");
}
if (version < "2020-02-10" &&
(blobSASSignatureValues.preauthorizedAgentObjectId || blobSASSignatureValues.correlationId)) {
throw RangeError("'version' must be >= '2020-02-10' when providing 'preauthorizedAgentObjectId' or 'correlationId'.");
}
blobSASSignatureValues.version = version;
return blobSASSignatureValues;
}
Object.defineProperty(exports, 'BaseRequestPolicy', { Object.defineProperty(exports, 'BaseRequestPolicy', {
enumerable: true, enumerable: true,
@ -33972,10 +34219,20 @@ exports.newPipeline = newPipeline;
"use strict"; "use strict";
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const assert = __webpack_require__(357); const path = __importStar(__webpack_require__(622));
const path = __webpack_require__(622); const pathHelper = __importStar(__webpack_require__(972));
const pathHelper = __webpack_require__(972); const assert_1 = __importDefault(__webpack_require__(357));
const IS_WINDOWS = process.platform === 'win32'; const IS_WINDOWS = process.platform === 'win32';
/** /**
* Helper class for parsing paths into segments * Helper class for parsing paths into segments
@ -33989,7 +34246,7 @@ class Path {
this.segments = []; this.segments = [];
// String // String
if (typeof itemPath === 'string') { if (typeof itemPath === 'string') {
assert(itemPath, `Parameter 'itemPath' must not be empty`); assert_1.default(itemPath, `Parameter 'itemPath' must not be empty`);
// Normalize slashes and trim unnecessary trailing slash // Normalize slashes and trim unnecessary trailing slash
itemPath = pathHelper.safeTrimTrailingSeparator(itemPath); itemPath = pathHelper.safeTrimTrailingSeparator(itemPath);
// Not rooted // Not rooted
@ -34016,24 +34273,24 @@ class Path {
// Array // Array
else { else {
// Must not be empty // Must not be empty
assert(itemPath.length > 0, `Parameter 'itemPath' must not be an empty array`); assert_1.default(itemPath.length > 0, `Parameter 'itemPath' must not be an empty array`);
// Each segment // Each segment
for (let i = 0; i < itemPath.length; i++) { for (let i = 0; i < itemPath.length; i++) {
let segment = itemPath[i]; let segment = itemPath[i];
// Must not be empty // Must not be empty
assert(segment, `Parameter 'itemPath' must not contain any empty segments`); assert_1.default(segment, `Parameter 'itemPath' must not contain any empty segments`);
// Normalize slashes // Normalize slashes
segment = pathHelper.normalizeSeparators(itemPath[i]); segment = pathHelper.normalizeSeparators(itemPath[i]);
// Root segment // Root segment
if (i === 0 && pathHelper.hasRoot(segment)) { if (i === 0 && pathHelper.hasRoot(segment)) {
segment = pathHelper.safeTrimTrailingSeparator(segment); segment = pathHelper.safeTrimTrailingSeparator(segment);
assert(segment === pathHelper.dirname(segment), `Parameter 'itemPath' root segment contains information for multiple segments`); assert_1.default(segment === pathHelper.dirname(segment), `Parameter 'itemPath' root segment contains information for multiple segments`);
this.segments.push(segment); this.segments.push(segment);
} }
// All other segments // All other segments
else { else {
// Must not contain slash // Must not contain slash
assert(!segment.includes(path.sep), `Parameter 'itemPath' contains unexpected path separators`); assert_1.default(!segment.includes(path.sep), `Parameter 'itemPath' contains unexpected path separators`);
this.segments.push(segment); this.segments.push(segment);
} }
} }
@ -41207,8 +41464,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
"use strict"; "use strict";
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const pathHelper = __webpack_require__(972); const pathHelper = __importStar(__webpack_require__(972));
const internal_match_kind_1 = __webpack_require__(327); const internal_match_kind_1 = __webpack_require__(327);
const IS_WINDOWS = process.platform === 'win32'; const IS_WINDOWS = process.platform === 'win32';
/** /**
@ -41290,8 +41554,15 @@ exports.partialMatch = partialMatch;
"use strict"; "use strict";
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const core = __webpack_require__(470); const core = __importStar(__webpack_require__(470));
/** /**
* Returns a copy with defaults filled in. * Returns a copy with defaults filled in.
*/ */
@ -49621,17 +49892,27 @@ __exportStar(__webpack_require__(764), exports);
"use strict"; "use strict";
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const assert = __webpack_require__(357); const os = __importStar(__webpack_require__(87));
const os = __webpack_require__(87); const path = __importStar(__webpack_require__(622));
const path = __webpack_require__(622); const pathHelper = __importStar(__webpack_require__(972));
const pathHelper = __webpack_require__(972); const assert_1 = __importDefault(__webpack_require__(357));
const minimatch_1 = __webpack_require__(93); const minimatch_1 = __webpack_require__(93);
const internal_match_kind_1 = __webpack_require__(327); const internal_match_kind_1 = __webpack_require__(327);
const internal_path_1 = __webpack_require__(383); const internal_path_1 = __webpack_require__(383);
const IS_WINDOWS = process.platform === 'win32'; const IS_WINDOWS = process.platform === 'win32';
class Pattern { class Pattern {
constructor(patternOrNegate, segments) { constructor(patternOrNegate, segments, homedir) {
/** /**
* Indicates whether matches should be excluded from the result set * Indicates whether matches should be excluded from the result set
*/ */
@ -49645,9 +49926,9 @@ class Pattern {
else { else {
// Convert to pattern // Convert to pattern
segments = segments || []; segments = segments || [];
assert(segments.length, `Parameter 'segments' must not empty`); assert_1.default(segments.length, `Parameter 'segments' must not empty`);
const root = Pattern.getLiteral(segments[0]); const root = Pattern.getLiteral(segments[0]);
assert(root && pathHelper.hasAbsoluteRoot(root), `Parameter 'segments' first element must be a root path`); assert_1.default(root && pathHelper.hasAbsoluteRoot(root), `Parameter 'segments' first element must be a root path`);
pattern = new internal_path_1.Path(segments).toString().trim(); pattern = new internal_path_1.Path(segments).toString().trim();
if (patternOrNegate) { if (patternOrNegate) {
pattern = `!${pattern}`; pattern = `!${pattern}`;
@ -49659,7 +49940,7 @@ class Pattern {
pattern = pattern.substr(1).trim(); pattern = pattern.substr(1).trim();
} }
// Normalize slashes and ensures absolute root // Normalize slashes and ensures absolute root
pattern = Pattern.fixupPattern(pattern); pattern = Pattern.fixupPattern(pattern, homedir);
// Segments // Segments
this.segments = new internal_path_1.Path(pattern).segments; this.segments = new internal_path_1.Path(pattern).segments;
// Trailing slash indicates the pattern should only match directories, not regular files // Trailing slash indicates the pattern should only match directories, not regular files
@ -49696,11 +49977,11 @@ class Pattern {
// Normalize slashes // Normalize slashes
itemPath = pathHelper.normalizeSeparators(itemPath); itemPath = pathHelper.normalizeSeparators(itemPath);
// Append a trailing slash. Otherwise Minimatch will not match the directory immediately // Append a trailing slash. Otherwise Minimatch will not match the directory immediately
// preceeding the globstar. For example, given the pattern `/foo/**`, Minimatch returns // preceding the globstar. For example, given the pattern `/foo/**`, Minimatch returns
// false for `/foo` but returns true for `/foo/`. Append a trailing slash to handle that quirk. // false for `/foo` but returns true for `/foo/`. Append a trailing slash to handle that quirk.
if (!itemPath.endsWith(path.sep)) { if (!itemPath.endsWith(path.sep)) {
// Note, this is safe because the constructor ensures the pattern has an absolute root. // Note, this is safe because the constructor ensures the pattern has an absolute root.
// For example, formats like C: and C:foo on Windows are resolved to an aboslute root. // For example, formats like C: and C:foo on Windows are resolved to an absolute root.
itemPath = `${itemPath}${path.sep}`; itemPath = `${itemPath}${path.sep}`;
} }
} }
@ -49738,15 +50019,15 @@ class Pattern {
/** /**
* Normalizes slashes and ensures absolute root * Normalizes slashes and ensures absolute root
*/ */
static fixupPattern(pattern) { static fixupPattern(pattern, homedir) {
// Empty // Empty
assert(pattern, 'pattern cannot be empty'); assert_1.default(pattern, 'pattern cannot be empty');
// Must not contain `.` segment, unless first segment // Must not contain `.` segment, unless first segment
// Must not contain `..` segment // Must not contain `..` segment
const literalSegments = new internal_path_1.Path(pattern).segments.map(x => Pattern.getLiteral(x)); const literalSegments = new internal_path_1.Path(pattern).segments.map(x => Pattern.getLiteral(x));
assert(literalSegments.every((x, i) => (x !== '.' || i === 0) && x !== '..'), `Invalid pattern '${pattern}'. Relative pathing '.' and '..' is not allowed.`); assert_1.default(literalSegments.every((x, i) => (x !== '.' || i === 0) && x !== '..'), `Invalid pattern '${pattern}'. Relative pathing '.' and '..' is not allowed.`);
// Must not contain globs in root, e.g. Windows UNC path \\foo\b*r // Must not contain globs in root, e.g. Windows UNC path \\foo\b*r
assert(!pathHelper.hasRoot(pattern) || literalSegments[0], `Invalid pattern '${pattern}'. Root segment must not contain globs.`); assert_1.default(!pathHelper.hasRoot(pattern) || literalSegments[0], `Invalid pattern '${pattern}'. Root segment must not contain globs.`);
// Normalize slashes // Normalize slashes
pattern = pathHelper.normalizeSeparators(pattern); pattern = pathHelper.normalizeSeparators(pattern);
// Replace leading `.` segment // Replace leading `.` segment
@ -49755,9 +50036,9 @@ class Pattern {
} }
// Replace leading `~` segment // Replace leading `~` segment
else if (pattern === '~' || pattern.startsWith(`~${path.sep}`)) { else if (pattern === '~' || pattern.startsWith(`~${path.sep}`)) {
const homedir = os.homedir(); homedir = homedir || os.homedir();
assert(homedir, 'Unable to determine HOME directory'); assert_1.default(homedir, 'Unable to determine HOME directory');
assert(pathHelper.hasAbsoluteRoot(homedir), `Expected HOME directory to be a rooted path. Actual '${homedir}'`); assert_1.default(pathHelper.hasAbsoluteRoot(homedir), `Expected HOME directory to be a rooted path. Actual '${homedir}'`);
pattern = Pattern.globEscape(homedir) + pattern.substr(1); pattern = Pattern.globEscape(homedir) + pattern.substr(1);
} }
// Replace relative drive root, e.g. pattern is C: or C:foo // Replace relative drive root, e.g. pattern is C: or C:foo
@ -50546,9 +50827,19 @@ exports.checkBypass = checkBypass;
"use strict"; "use strict";
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const assert = __webpack_require__(357); const path = __importStar(__webpack_require__(622));
const path = __webpack_require__(622); const assert_1 = __importDefault(__webpack_require__(357));
const IS_WINDOWS = process.platform === 'win32'; const IS_WINDOWS = process.platform === 'win32';
/** /**
* Similar to path.dirname except normalizes the path separators and slightly better handling for Windows UNC paths. * Similar to path.dirname except normalizes the path separators and slightly better handling for Windows UNC paths.
@ -50588,8 +50879,8 @@ exports.dirname = dirname;
* or `C:` are expanded based on the current working directory. * or `C:` are expanded based on the current working directory.
*/ */
function ensureAbsoluteRoot(root, itemPath) { function ensureAbsoluteRoot(root, itemPath) {
assert(root, `ensureAbsoluteRoot parameter 'root' must not be empty`); assert_1.default(root, `ensureAbsoluteRoot parameter 'root' must not be empty`);
assert(itemPath, `ensureAbsoluteRoot parameter 'itemPath' must not be empty`); assert_1.default(itemPath, `ensureAbsoluteRoot parameter 'itemPath' must not be empty`);
// Already rooted // Already rooted
if (hasAbsoluteRoot(itemPath)) { if (hasAbsoluteRoot(itemPath)) {
return itemPath; return itemPath;
@ -50599,7 +50890,7 @@ function ensureAbsoluteRoot(root, itemPath) {
// Check for itemPath like C: or C:foo // Check for itemPath like C: or C:foo
if (itemPath.match(/^[A-Z]:[^\\/]|^[A-Z]:$/i)) { if (itemPath.match(/^[A-Z]:[^\\/]|^[A-Z]:$/i)) {
let cwd = process.cwd(); let cwd = process.cwd();
assert(cwd.match(/^[A-Z]:\\/i), `Expected current directory to start with an absolute drive root. Actual '${cwd}'`); assert_1.default(cwd.match(/^[A-Z]:\\/i), `Expected current directory to start with an absolute drive root. Actual '${cwd}'`);
// Drive letter matches cwd? Expand to cwd // Drive letter matches cwd? Expand to cwd
if (itemPath[0].toUpperCase() === cwd[0].toUpperCase()) { if (itemPath[0].toUpperCase() === cwd[0].toUpperCase()) {
// Drive only, e.g. C: // Drive only, e.g. C:
@ -50624,11 +50915,11 @@ function ensureAbsoluteRoot(root, itemPath) {
// Check for itemPath like \ or \foo // Check for itemPath like \ or \foo
else if (normalizeSeparators(itemPath).match(/^\\$|^\\[^\\]/)) { else if (normalizeSeparators(itemPath).match(/^\\$|^\\[^\\]/)) {
const cwd = process.cwd(); const cwd = process.cwd();
assert(cwd.match(/^[A-Z]:\\/i), `Expected current directory to start with an absolute drive root. Actual '${cwd}'`); assert_1.default(cwd.match(/^[A-Z]:\\/i), `Expected current directory to start with an absolute drive root. Actual '${cwd}'`);
return `${cwd[0]}:\\${itemPath.substr(1)}`; return `${cwd[0]}:\\${itemPath.substr(1)}`;
} }
} }
assert(hasAbsoluteRoot(root), `ensureAbsoluteRoot parameter 'root' must have an absolute root`); assert_1.default(hasAbsoluteRoot(root), `ensureAbsoluteRoot parameter 'root' must have an absolute root`);
// Otherwise ensure root ends with a separator // Otherwise ensure root ends with a separator
if (root.endsWith('/') || (IS_WINDOWS && root.endsWith('\\'))) { if (root.endsWith('/') || (IS_WINDOWS && root.endsWith('\\'))) {
// Intentionally empty // Intentionally empty
@ -50645,7 +50936,7 @@ exports.ensureAbsoluteRoot = ensureAbsoluteRoot;
* `\\hello\share` and `C:\hello` (and using alternate separator). * `\\hello\share` and `C:\hello` (and using alternate separator).
*/ */
function hasAbsoluteRoot(itemPath) { function hasAbsoluteRoot(itemPath) {
assert(itemPath, `hasAbsoluteRoot parameter 'itemPath' must not be empty`); assert_1.default(itemPath, `hasAbsoluteRoot parameter 'itemPath' must not be empty`);
// Normalize separators // Normalize separators
itemPath = normalizeSeparators(itemPath); itemPath = normalizeSeparators(itemPath);
// Windows // Windows
@ -50662,7 +50953,7 @@ exports.hasAbsoluteRoot = hasAbsoluteRoot;
* `\`, `\hello`, `\\hello\share`, `C:`, and `C:\hello` (and using alternate separator). * `\`, `\hello`, `\\hello\share`, `C:`, and `C:\hello` (and using alternate separator).
*/ */
function hasRoot(itemPath) { function hasRoot(itemPath) {
assert(itemPath, `isRooted parameter 'itemPath' must not be empty`); assert_1.default(itemPath, `isRooted parameter 'itemPath' must not be empty`);
// Normalize separators // Normalize separators
itemPath = normalizeSeparators(itemPath); itemPath = normalizeSeparators(itemPath);
// Windows // Windows
@ -50943,6 +51234,7 @@ var node_fetch = _interopDefault(__webpack_require__(454));
var abortController = __webpack_require__(106); var abortController = __webpack_require__(106);
var FormData = _interopDefault(__webpack_require__(790)); var FormData = _interopDefault(__webpack_require__(790));
var util = __webpack_require__(669); var util = __webpack_require__(669);
var url = __webpack_require__(835);
var stream = __webpack_require__(794); var stream = __webpack_require__(794);
var tunnel = __webpack_require__(413); var tunnel = __webpack_require__(413);
var coreAuth = __webpack_require__(229); var coreAuth = __webpack_require__(229);
@ -51126,7 +51418,7 @@ var Constants = {
* @const * @const
* @type {string} * @type {string}
*/ */
coreHttpVersion: "1.1.9", coreHttpVersion: "1.2.1",
/** /**
* Specifies HTTP. * Specifies HTTP.
* *
@ -51220,6 +51512,17 @@ var Constants = {
} }
}; };
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
/**
* Default key used to access the XML attributes.
*/
var XML_ATTRKEY = "$";
/**
* Default key used to access the XML value content.
*/
var XML_CHARKEY = "_";
// Copyright (c) Microsoft Corporation. // 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; 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;
/** /**
@ -51367,7 +51670,9 @@ function prepareXMLRootList(obj, elementName, xmlNamespaceKey, xmlNamespace) {
if (!xmlNamespaceKey || !xmlNamespace) { if (!xmlNamespaceKey || !xmlNamespace) {
return _a = {}, _a[elementName] = obj, _a; return _a = {}, _a[elementName] = obj, _a;
} }
return _b = {}, _b[elementName] = obj, _b.$ = (_c = {}, _c[xmlNamespaceKey] = xmlNamespace, _c), _b; var result = (_b = {}, _b[elementName] = obj, _b);
result[XML_ATTRKEY] = (_c = {}, _c[xmlNamespaceKey] = xmlNamespace, _c);
return result;
} }
/** /**
* Applies the properties on the prototype of sourceCtors to the prototype of targetCtor * Applies the properties on the prototype of sourceCtors to the prototype of targetCtor
@ -51480,9 +51785,18 @@ var Serializer = /** @class */ (function () {
* *
* @param {string} objectName Name of the serialized object * @param {string} objectName Name of the serialized object
* *
* @param {options} options additional options to deserialization
*
* @returns {object|string|Array|number|boolean|Date|stream} A valid serialized Javascript object * @returns {object|string|Array|number|boolean|Date|stream} A valid serialized Javascript object
*/ */
Serializer.prototype.serialize = function (mapper, object, objectName) { Serializer.prototype.serialize = function (mapper, object, objectName, options) {
var _a, _b, _c;
if (options === void 0) { options = {}; }
var 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 payload = {};
var mapperType = mapper.type.name; var mapperType = mapper.type.name;
if (!objectName) { if (!objectName) {
@ -51539,13 +51853,13 @@ var Serializer = /** @class */ (function () {
payload = serializeBase64UrlType(objectName, object); payload = serializeBase64UrlType(objectName, object);
} }
else if (mapperType.match(/^Sequence$/i) !== null) { else if (mapperType.match(/^Sequence$/i) !== null) {
payload = serializeSequenceType(this, mapper, object, objectName, Boolean(this.isXML)); payload = serializeSequenceType(this, mapper, object, objectName, Boolean(this.isXML), updatedOptions);
} }
else if (mapperType.match(/^Dictionary$/i) !== null) { else if (mapperType.match(/^Dictionary$/i) !== null) {
payload = serializeDictionaryType(this, mapper, object, objectName, Boolean(this.isXML)); payload = serializeDictionaryType(this, mapper, object, objectName, Boolean(this.isXML), updatedOptions);
} }
else if (mapperType.match(/^Composite$/i) !== null) { else if (mapperType.match(/^Composite$/i) !== null) {
payload = serializeCompositeType(this, mapper, object, objectName, Boolean(this.isXML)); payload = serializeCompositeType(this, mapper, object, objectName, Boolean(this.isXML), updatedOptions);
} }
} }
return payload; return payload;
@ -51559,9 +51873,18 @@ var Serializer = /** @class */ (function () {
* *
* @param {string} objectName Name of the deserialized object * @param {string} objectName Name of the deserialized object
* *
* @param options Controls behavior of XML parser and builder.
*
* @returns {object|string|Array|number|boolean|Date|stream} A valid deserialized Javascript object * @returns {object|string|Array|number|boolean|Date|stream} A valid deserialized Javascript object
*/ */
Serializer.prototype.deserialize = function (mapper, responseBody, objectName) { Serializer.prototype.deserialize = function (mapper, responseBody, objectName, options) {
var _a, _b, _c;
if (options === void 0) { options = {}; }
var 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
};
if (responseBody == undefined) { if (responseBody == undefined) {
if (this.isXML && mapper.type.name === "Sequence" && !mapper.xmlIsWrapped) { if (this.isXML && mapper.type.name === "Sequence" && !mapper.xmlIsWrapped) {
// Edge case for empty XML non-wrapped lists. xml2js can't distinguish // Edge case for empty XML non-wrapped lists. xml2js can't distinguish
@ -51581,17 +51904,18 @@ var Serializer = /** @class */ (function () {
objectName = mapper.serializedName; objectName = mapper.serializedName;
} }
if (mapperType.match(/^Composite$/i) !== null) { if (mapperType.match(/^Composite$/i) !== null) {
payload = deserializeCompositeType(this, mapper, responseBody, objectName); payload = deserializeCompositeType(this, mapper, responseBody, objectName, updatedOptions);
} }
else { else {
if (this.isXML) { if (this.isXML) {
var xmlCharKey = updatedOptions.xmlCharKey;
/** /**
* If the mapper specifies this as a non-composite type value but the responseBody contains * If the mapper specifies this as a non-composite type value but the responseBody contains
* both header ("$") and body ("_") properties, then just reduce the responseBody value to * both header ("$" i.e., XML_ATTRKEY) and body ("#" i.e., XML_CHARKEY) properties,
* the body ("_") property. * then just reduce the responseBody value to the body ("#" i.e., XML_CHARKEY) property.
*/ */
if (responseBody["$"] != undefined && responseBody["_"] != undefined) { if (responseBody[XML_ATTRKEY] != undefined && responseBody[xmlCharKey] != undefined) {
responseBody = responseBody["_"]; responseBody = responseBody[xmlCharKey];
} }
} }
if (mapperType.match(/^Number$/i) !== null) { if (mapperType.match(/^Number$/i) !== null) {
@ -51627,10 +51951,10 @@ var Serializer = /** @class */ (function () {
payload = base64UrlToByteArray(responseBody); payload = base64UrlToByteArray(responseBody);
} }
else if (mapperType.match(/^Sequence$/i) !== null) { else if (mapperType.match(/^Sequence$/i) !== null) {
payload = deserializeSequenceType(this, mapper, responseBody, objectName); payload = deserializeSequenceType(this, mapper, responseBody, objectName, updatedOptions);
} }
else if (mapperType.match(/^Dictionary$/i) !== null) { else if (mapperType.match(/^Dictionary$/i) !== null) {
payload = deserializeDictionaryType(this, mapper, responseBody, objectName); payload = deserializeDictionaryType(this, mapper, responseBody, objectName, updatedOptions);
} }
} }
if (mapper.isConstant) { if (mapper.isConstant) {
@ -51735,7 +52059,7 @@ function serializeBasicTypes(typeName, objectName, value) {
objectType !== "function" && objectType !== "function" &&
!(value instanceof ArrayBuffer) && !(value instanceof ArrayBuffer) &&
!ArrayBuffer.isView(value) && !ArrayBuffer.isView(value) &&
!(typeof Blob === "function" && value instanceof Blob)) { !((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.");
} }
} }
@ -51819,7 +52143,7 @@ function serializeDateTypes(typeName, value, objectName) {
} }
return value; return value;
} }
function serializeSequenceType(serializer, mapper, object, objectName, isXml) { function serializeSequenceType(serializer, mapper, object, objectName, isXml, options) {
var _a, _b; var _a, _b;
if (!Array.isArray(object)) { if (!Array.isArray(object)) {
throw new Error(objectName + " must be of type Array."); throw new Error(objectName + " must be of type Array.");
@ -51831,16 +52155,19 @@ function serializeSequenceType(serializer, mapper, object, objectName, isXml) {
} }
var tempArray = []; var tempArray = [];
for (var i = 0; i < object.length; i++) { for (var i = 0; i < object.length; i++) {
var serializedValue = serializer.serialize(elementType, object[i], objectName); var serializedValue = serializer.serialize(elementType, object[i], objectName, options);
if (isXml && elementType.xmlNamespace) { if (isXml && elementType.xmlNamespace) {
var xmlnsKey = elementType.xmlNamespacePrefix var xmlnsKey = elementType.xmlNamespacePrefix
? "xmlns:" + elementType.xmlNamespacePrefix ? "xmlns:" + elementType.xmlNamespacePrefix
: "xmlns"; : "xmlns";
if (elementType.type.name === "Composite") { if (elementType.type.name === "Composite") {
tempArray[i] = tslib.__assign(tslib.__assign({}, serializedValue), { $: (_a = {}, _a[xmlnsKey] = elementType.xmlNamespace, _a) }); tempArray[i] = tslib.__assign({}, serializedValue);
tempArray[i][XML_ATTRKEY] = (_a = {}, _a[xmlnsKey] = elementType.xmlNamespace, _a);
} }
else { else {
tempArray[i] = { _: serializedValue, $: (_b = {}, _b[xmlnsKey] = elementType.xmlNamespace, _b) }; tempArray[i] = {};
tempArray[i][options.xmlCharKey] = serializedValue;
tempArray[i][XML_ATTRKEY] = (_b = {}, _b[xmlnsKey] = elementType.xmlNamespace, _b);
} }
} }
else { else {
@ -51849,7 +52176,7 @@ function serializeSequenceType(serializer, mapper, object, objectName, isXml) {
} }
return tempArray; return tempArray;
} }
function serializeDictionaryType(serializer, mapper, object, objectName, isXml) { function serializeDictionaryType(serializer, mapper, object, objectName, isXml, options) {
var _a; var _a;
if (typeof object !== "object") { if (typeof object !== "object") {
throw new Error(objectName + " must be of type object."); throw new Error(objectName + " must be of type object.");
@ -51862,14 +52189,16 @@ function serializeDictionaryType(serializer, mapper, object, objectName, isXml)
var tempDictionary = {}; var tempDictionary = {};
for (var _i = 0, _b = Object.keys(object); _i < _b.length; _i++) { for (var _i = 0, _b = Object.keys(object); _i < _b.length; _i++) {
var key = _b[_i]; var key = _b[_i];
var serializedValue = serializer.serialize(valueType, object[key], objectName); var serializedValue = serializer.serialize(valueType, object[key], objectName, options);
// If the element needs an XML namespace we need to add it within the $ property // If the element needs an XML namespace we need to add it within the $ property
tempDictionary[key] = getXmlObjectValue(valueType, serializedValue, isXml); tempDictionary[key] = getXmlObjectValue(valueType, serializedValue, isXml, options);
} }
// Add the namespace to the root element if needed // Add the namespace to the root element if needed
if (isXml && mapper.xmlNamespace) { if (isXml && mapper.xmlNamespace) {
var xmlnsKey = mapper.xmlNamespacePrefix ? "xmlns:" + mapper.xmlNamespacePrefix : "xmlns"; var xmlnsKey = mapper.xmlNamespacePrefix ? "xmlns:" + mapper.xmlNamespacePrefix : "xmlns";
return tslib.__assign(tslib.__assign({}, tempDictionary), { $: (_a = {}, _a[xmlnsKey] = mapper.xmlNamespace, _a) }); var result = tempDictionary;
result[XML_ATTRKEY] = (_a = {}, _a[xmlnsKey] = mapper.xmlNamespace, _a);
return result;
} }
return tempDictionary; return tempDictionary;
} }
@ -51920,7 +52249,7 @@ function resolveModelProperties(serializer, mapper, objectName) {
} }
return modelProps; return modelProps;
} }
function serializeCompositeType(serializer, mapper, object, objectName, isXml) { function serializeCompositeType(serializer, mapper, object, objectName, isXml, options) {
var _a, _b; var _a, _b;
if (getPolymorphicDiscriminatorRecursively(serializer, mapper)) { if (getPolymorphicDiscriminatorRecursively(serializer, mapper)) {
mapper = getPolymorphicMapper(serializer, mapper, object, "clientName"); mapper = getPolymorphicMapper(serializer, mapper, object, "clientName");
@ -51962,7 +52291,7 @@ function serializeCompositeType(serializer, mapper, object, objectName, isXml) {
var xmlnsKey = mapper.xmlNamespacePrefix var xmlnsKey = mapper.xmlNamespacePrefix
? "xmlns:" + mapper.xmlNamespacePrefix ? "xmlns:" + mapper.xmlNamespacePrefix
: "xmlns"; : "xmlns";
parentObject.$ = tslib.__assign(tslib.__assign({}, parentObject.$), (_a = {}, _a[xmlnsKey] = mapper.xmlNamespace, _a)); parentObject[XML_ATTRKEY] = tslib.__assign(tslib.__assign({}, parentObject[XML_ATTRKEY]), (_a = {}, _a[xmlnsKey] = mapper.xmlNamespace, _a));
} }
var propertyObjectName = propertyMapper.serializedName !== "" var propertyObjectName = propertyMapper.serializedName !== ""
? objectName + "." + propertyMapper.serializedName ? objectName + "." + propertyMapper.serializedName
@ -51974,15 +52303,15 @@ function serializeCompositeType(serializer, mapper, object, objectName, isXml) {
toSerialize == undefined) { toSerialize == undefined) {
toSerialize = mapper.serializedName; toSerialize = mapper.serializedName;
} }
var serializedValue = serializer.serialize(propertyMapper, toSerialize, propertyObjectName); var serializedValue = serializer.serialize(propertyMapper, toSerialize, propertyObjectName, options);
if (serializedValue !== undefined && propName != undefined) { if (serializedValue !== undefined && propName != undefined) {
var value = getXmlObjectValue(propertyMapper, serializedValue, isXml); var value = getXmlObjectValue(propertyMapper, serializedValue, isXml, options);
if (isXml && propertyMapper.xmlIsAttribute) { if (isXml && propertyMapper.xmlIsAttribute) {
// $ is the key attributes are kept under in xml2js. // XML_ATTRKEY, i.e., $ is the key attributes are kept under in xml2js.
// This keeps things simple while preventing name collision // This keeps things simple while preventing name collision
// with names in user documents. // with names in user documents.
parentObject.$ = parentObject.$ || {}; parentObject[XML_ATTRKEY] = parentObject[XML_ATTRKEY] || {};
parentObject.$[propName] = serializedValue; parentObject[XML_ATTRKEY][propName] = serializedValue;
} }
else if (isXml && propertyMapper.xmlIsWrapped) { else if (isXml && propertyMapper.xmlIsWrapped) {
parentObject[propName] = (_b = {}, _b[propertyMapper.xmlElementName] = value, _b); parentObject[propName] = (_b = {}, _b[propertyMapper.xmlElementName] = value, _b);
@ -51999,7 +52328,7 @@ function serializeCompositeType(serializer, mapper, object, objectName, isXml) {
var _loop_1 = function (clientPropName) { var _loop_1 = function (clientPropName) {
var isAdditionalProperty = propNames.every(function (pn) { return pn !== clientPropName; }); var isAdditionalProperty = propNames.every(function (pn) { return pn !== clientPropName; });
if (isAdditionalProperty) { if (isAdditionalProperty) {
payload[clientPropName] = serializer.serialize(additionalPropertiesMapper, object[clientPropName], objectName + '["' + clientPropName + '"]'); payload[clientPropName] = serializer.serialize(additionalPropertiesMapper, object[clientPropName], objectName + '["' + clientPropName + '"]', options);
} }
}; };
for (var clientPropName in object) { for (var clientPropName in object) {
@ -52010,7 +52339,7 @@ function serializeCompositeType(serializer, mapper, object, objectName, isXml) {
} }
return object; return object;
} }
function getXmlObjectValue(propertyMapper, serializedValue, isXml) { function getXmlObjectValue(propertyMapper, serializedValue, isXml, options) {
var _a; var _a;
if (!isXml || !propertyMapper.xmlNamespace) { if (!isXml || !propertyMapper.xmlNamespace) {
return serializedValue; return serializedValue;
@ -52020,14 +52349,24 @@ function getXmlObjectValue(propertyMapper, serializedValue, isXml) {
: "xmlns"; : "xmlns";
var xmlNamespace = (_a = {}, _a[xmlnsKey] = propertyMapper.xmlNamespace, _a); var xmlNamespace = (_a = {}, _a[xmlnsKey] = propertyMapper.xmlNamespace, _a);
if (["Composite"].includes(propertyMapper.type.name)) { if (["Composite"].includes(propertyMapper.type.name)) {
return tslib.__assign({ $: xmlNamespace }, serializedValue); if (serializedValue[XML_ATTRKEY]) {
return serializedValue;
}
else {
var result_1 = tslib.__assign({}, serializedValue);
result_1[XML_ATTRKEY] = xmlNamespace;
return result_1;
}
} }
return { _: serializedValue, $: xmlNamespace }; var result = {};
result[options.xmlCharKey] = serializedValue;
result[XML_ATTRKEY] = xmlNamespace;
return result;
} }
function isSpecialXmlProperty(propertyName) { function isSpecialXmlProperty(propertyName, options) {
return ["$", "_"].includes(propertyName); return [XML_ATTRKEY, options.xmlCharKey].includes(propertyName);
} }
function deserializeCompositeType(serializer, mapper, responseBody, objectName) { function deserializeCompositeType(serializer, mapper, responseBody, objectName, options) {
var _a; var _a;
if (getPolymorphicDiscriminatorRecursively(serializer, mapper)) { if (getPolymorphicDiscriminatorRecursively(serializer, mapper)) {
mapper = getPolymorphicMapper(serializer, mapper, responseBody, "serializedName"); mapper = getPolymorphicMapper(serializer, mapper, responseBody, "serializedName");
@ -52051,15 +52390,15 @@ function deserializeCompositeType(serializer, mapper, responseBody, objectName)
for (var _c = 0, _d = Object.keys(responseBody); _c < _d.length; _c++) { for (var _c = 0, _d = Object.keys(responseBody); _c < _d.length; _c++) {
var headerKey = _d[_c]; var headerKey = _d[_c];
if (headerKey.startsWith(headerCollectionPrefix)) { if (headerKey.startsWith(headerCollectionPrefix)) {
dictionary[headerKey.substring(headerCollectionPrefix.length)] = serializer.deserialize(propertyMapper.type.value, responseBody[headerKey], propertyObjectName); dictionary[headerKey.substring(headerCollectionPrefix.length)] = serializer.deserialize(propertyMapper.type.value, responseBody[headerKey], propertyObjectName, options);
} }
handledPropertyNames.push(headerKey); handledPropertyNames.push(headerKey);
} }
instance[key] = dictionary; instance[key] = dictionary;
} }
else if (serializer.isXML) { else if (serializer.isXML) {
if (propertyMapper.xmlIsAttribute && responseBody.$) { if (propertyMapper.xmlIsAttribute && responseBody[XML_ATTRKEY]) {
instance[key] = serializer.deserialize(propertyMapper, responseBody.$[xmlName], propertyObjectName); instance[key] = serializer.deserialize(propertyMapper, responseBody[XML_ATTRKEY][xmlName], propertyObjectName, options);
} }
else { else {
var propertyName = xmlElementName || xmlName || serializedName; var propertyName = xmlElementName || xmlName || serializedName;
@ -52080,11 +52419,11 @@ function deserializeCompositeType(serializer, mapper, responseBody, objectName)
*/ */
var wrapped = responseBody[xmlName]; var wrapped = responseBody[xmlName];
var elementList = (_a = wrapped === null || wrapped === void 0 ? void 0 : wrapped[xmlElementName]) !== null && _a !== void 0 ? _a : []; var elementList = (_a = wrapped === null || wrapped === void 0 ? void 0 : wrapped[xmlElementName]) !== null && _a !== void 0 ? _a : [];
instance[key] = serializer.deserialize(propertyMapper, elementList, propertyObjectName); instance[key] = serializer.deserialize(propertyMapper, elementList, propertyObjectName, options);
} }
else { else {
var property = responseBody[propertyName]; var property = responseBody[propertyName];
instance[key] = serializer.deserialize(propertyMapper, property, propertyObjectName); instance[key] = serializer.deserialize(propertyMapper, property, propertyObjectName, options);
} }
} }
} }
@ -52119,10 +52458,10 @@ function deserializeCompositeType(serializer, mapper, responseBody, objectName)
// paging // paging
if (Array.isArray(responseBody[key]) && modelProps[key].serializedName === "") { if (Array.isArray(responseBody[key]) && modelProps[key].serializedName === "") {
propertyInstance = responseBody[key]; propertyInstance = responseBody[key];
instance = serializer.deserialize(propertyMapper, propertyInstance, propertyObjectName); instance = serializer.deserialize(propertyMapper, propertyInstance, propertyObjectName, options);
} }
else if (propertyInstance !== undefined || propertyMapper.defaultValue !== undefined) { else if (propertyInstance !== undefined || propertyMapper.defaultValue !== undefined) {
serializedValue = serializer.deserialize(propertyMapper, propertyInstance, propertyObjectName); serializedValue = serializer.deserialize(propertyMapper, propertyInstance, propertyObjectName, options);
instance[key] = serializedValue; instance[key] = serializedValue;
} }
} }
@ -52140,7 +52479,7 @@ function deserializeCompositeType(serializer, mapper, responseBody, objectName)
}; };
for (var responsePropName in responseBody) { for (var responsePropName in responseBody) {
if (isAdditionalProperty(responsePropName)) { if (isAdditionalProperty(responsePropName)) {
instance[responsePropName] = serializer.deserialize(additionalPropertiesMapper, responseBody[responsePropName], objectName + '["' + responsePropName + '"]'); instance[responsePropName] = serializer.deserialize(additionalPropertiesMapper, responseBody[responsePropName], objectName + '["' + responsePropName + '"]', options);
} }
} }
} }
@ -52149,14 +52488,14 @@ function deserializeCompositeType(serializer, mapper, responseBody, objectName)
var key = _g[_f]; var key = _g[_f];
if (instance[key] === undefined && if (instance[key] === undefined &&
!handledPropertyNames.includes(key) && !handledPropertyNames.includes(key) &&
!isSpecialXmlProperty(key)) { !isSpecialXmlProperty(key, options)) {
instance[key] = responseBody[key]; instance[key] = responseBody[key];
} }
} }
} }
return instance; return instance;
} }
function deserializeDictionaryType(serializer, mapper, responseBody, objectName) { function deserializeDictionaryType(serializer, mapper, responseBody, objectName, options) {
var value = mapper.type.value; var value = mapper.type.value;
if (!value || typeof value !== "object") { if (!value || typeof value !== "object") {
throw new Error("\"value\" metadata for a Dictionary must be defined in the " + throw new Error("\"value\" metadata for a Dictionary must be defined in the " +
@ -52166,13 +52505,13 @@ function deserializeDictionaryType(serializer, mapper, responseBody, objectName)
var tempDictionary = {}; var tempDictionary = {};
for (var _i = 0, _a = Object.keys(responseBody); _i < _a.length; _i++) { for (var _i = 0, _a = Object.keys(responseBody); _i < _a.length; _i++) {
var key = _a[_i]; var key = _a[_i];
tempDictionary[key] = serializer.deserialize(value, responseBody[key], objectName); tempDictionary[key] = serializer.deserialize(value, responseBody[key], objectName, options);
} }
return tempDictionary; return tempDictionary;
} }
return responseBody; return responseBody;
} }
function deserializeSequenceType(serializer, mapper, responseBody, objectName) { function deserializeSequenceType(serializer, mapper, responseBody, objectName, options) {
var element = mapper.type.element; var element = mapper.type.element;
if (!element || typeof element !== "object") { if (!element || typeof element !== "object") {
throw new Error("element\" metadata for an Array must be defined in the " + throw new Error("element\" metadata for an Array must be defined in the " +
@ -52185,7 +52524,7 @@ function deserializeSequenceType(serializer, mapper, responseBody, objectName) {
} }
var tempArray = []; var tempArray = [];
for (var i = 0; i < responseBody.length; i++) { for (var i = 0; i < responseBody.length; i++) {
tempArray[i] = serializer.deserialize(element, responseBody[i], objectName + "[" + i + "]"); tempArray[i] = serializer.deserialize(element, responseBody[i], objectName + "[" + i + "]", options);
} }
return tempArray; return tempArray;
} }
@ -52486,7 +52825,7 @@ var WebResource = /** @class */ (function () {
if (!this.headers.get("Content-Type")) { if (!this.headers.get("Content-Type")) {
this.headers.set("Content-Type", "application/json; charset=utf-8"); this.headers.set("Content-Type", "application/json; charset=utf-8");
} }
// set the request body. request.js automatically sets the Content-Length request header, so we need not set it explicilty // set the request body. request.js automatically sets the Content-Length request header, so we need not set it explicitly
this.body = options.body; this.body = options.body;
if (options.body !== undefined && options.body !== null) { if (options.body !== undefined && options.body !== null) {
// body as a stream special case. set the body as-is and check for some special request headers specific to sending a stream. // body as a stream special case. set the body as-is and check for some special request headers specific to sending a stream.
@ -53345,8 +53684,9 @@ var FetchHttpClient = /** @class */ (function () {
if (typeof value === "function") { if (typeof value === "function") {
value = value(); value = value();
} }
// eslint-disable-next-line no-prototype-builtins if (value &&
if (value && value.hasOwnProperty("value") && value.hasOwnProperty("options")) { Object.prototype.hasOwnProperty.call(value, "value") &&
Object.prototype.hasOwnProperty.call(value, "options")) {
requestForm_1.append(key, value.value, value.options); requestForm_1.append(key, value.value, value.options);
} }
else { else {
@ -53397,7 +53737,7 @@ var FetchHttpClient = /** @class */ (function () {
return [4 /*yield*/, this.prepareRequest(httpRequest)]; return [4 /*yield*/, this.prepareRequest(httpRequest)];
case 1: case 1:
platformSpecificRequestInit = _d.sent(); platformSpecificRequestInit = _d.sent();
requestInit = tslib.__assign({ body: body, headers: httpRequest.headers.rawHeaders(), method: httpRequest.method, signal: abortController$1.signal }, platformSpecificRequestInit); requestInit = tslib.__assign({ body: body, headers: httpRequest.headers.rawHeaders(), method: httpRequest.method, signal: abortController$1.signal, redirect: "manual" }, platformSpecificRequestInit);
_d.label = 2; _d.label = 2;
case 2: case 2:
_d.trys.push([2, 8, 9, 10]); _d.trys.push([2, 8, 9, 10]);
@ -53877,13 +54217,12 @@ var xml2jsDefaultOptionsV2 = {
trim: false, trim: false,
normalize: false, normalize: false,
normalizeTags: false, normalizeTags: false,
attrkey: "$", attrkey: XML_ATTRKEY,
charkey: "_",
explicitArray: true, explicitArray: true,
ignoreAttrs: false, ignoreAttrs: false,
mergeAttrs: false, mergeAttrs: false,
explicitRoot: true, explicitRoot: true,
validator: null, validator: undefined,
xmlns: false, xmlns: false,
explicitChildren: false, explicitChildren: false,
preserveChildrenOrder: false, preserveChildrenOrder: false,
@ -53892,17 +54231,17 @@ var xml2jsDefaultOptionsV2 = {
includeWhiteChars: false, includeWhiteChars: false,
async: false, async: false,
strict: true, strict: true,
attrNameProcessors: null, attrNameProcessors: undefined,
attrValueProcessors: null, attrValueProcessors: undefined,
tagNameProcessors: null, tagNameProcessors: undefined,
valueProcessors: null, valueProcessors: undefined,
rootName: "root", rootName: "root",
xmldec: { xmldec: {
version: "1.0", version: "1.0",
encoding: "UTF-8", encoding: "UTF-8",
standalone: true standalone: true
}, },
doctype: null, doctype: undefined,
renderOpts: { renderOpts: {
pretty: true, pretty: true,
indent: " ", indent: " ",
@ -53929,7 +54268,10 @@ xml2jsBuilderSettings.renderOpts = {
* `rootName` indicates the name of the root element in the resulting XML * `rootName` indicates the name of the root element in the resulting XML
*/ */
function stringifyXML(obj, opts) { function stringifyXML(obj, opts) {
xml2jsBuilderSettings.rootName = (opts || {}).rootName; 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); var builder = new xml2js.Builder(xml2jsBuilderSettings);
return builder.buildObject(obj); return builder.buildObject(obj);
} }
@ -53940,7 +54282,10 @@ function stringifyXML(obj, opts) {
* `includeRoot` indicates whether the root element is to be included or not in the output * `includeRoot` indicates whether the root element is to be included or not in the output
*/ */
function parseXML(str, opts) { function parseXML(str, opts) {
xml2jsParserSettings.explicitRoot = !!(opts && opts.includeRoot); 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); var xmlParser = new xml2js.Parser(xml2jsParserSettings);
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
if (!str) { if (!str) {
@ -53964,10 +54309,10 @@ function parseXML(str, opts) {
* Create a new serialization RequestPolicyCreator that will serialized HTTP request bodies as they * Create a new serialization RequestPolicyCreator that will serialized HTTP request bodies as they
* pass through the HTTP pipeline. * pass through the HTTP pipeline.
*/ */
function deserializationPolicy(deserializationContentTypes) { function deserializationPolicy(deserializationContentTypes, parsingOptions) {
return { return {
create: function (nextPolicy, options) { create: function (nextPolicy, options) {
return new DeserializationPolicy(nextPolicy, deserializationContentTypes, options); return new DeserializationPolicy(nextPolicy, options, deserializationContentTypes, parsingOptions);
} }
}; };
} }
@ -53985,22 +54330,25 @@ var DefaultDeserializationOptions = {
*/ */
var DeserializationPolicy = /** @class */ (function (_super) { var DeserializationPolicy = /** @class */ (function (_super) {
tslib.__extends(DeserializationPolicy, _super); tslib.__extends(DeserializationPolicy, _super);
function DeserializationPolicy(nextPolicy, deserializationContentTypes, options) { function DeserializationPolicy(nextPolicy, requestPolicyOptions, deserializationContentTypes, parsingOptions) {
var _this = _super.call(this, nextPolicy, options) || this; if (parsingOptions === void 0) { parsingOptions = {}; }
var _a;
var _this = _super.call(this, nextPolicy, requestPolicyOptions) || this;
_this.jsonContentTypes = _this.jsonContentTypes =
(deserializationContentTypes && deserializationContentTypes.json) || defaultJsonContentTypes; (deserializationContentTypes && deserializationContentTypes.json) || defaultJsonContentTypes;
_this.xmlContentTypes = _this.xmlContentTypes =
(deserializationContentTypes && deserializationContentTypes.xml) || defaultXmlContentTypes; (deserializationContentTypes && deserializationContentTypes.xml) || defaultXmlContentTypes;
_this.xmlCharKey = (_a = parsingOptions.xmlCharKey) !== null && _a !== void 0 ? _a : XML_CHARKEY;
return _this; return _this;
} }
DeserializationPolicy.prototype.sendRequest = function (request) { DeserializationPolicy.prototype.sendRequest = function (request) {
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var _this = this; var _this = this;
return tslib.__generator(this, function (_a) { return tslib.__generator(this, function (_a) {
return [2 /*return*/, this._nextPolicy return [2 /*return*/, this._nextPolicy.sendRequest(request).then(function (response) {
.sendRequest(request) return deserializeResponseBody(_this.jsonContentTypes, _this.xmlContentTypes, response, {
.then(function (response) { xmlCharKey: _this.xmlCharKey
return deserializeResponseBody(_this.jsonContentTypes, _this.xmlContentTypes, response); });
})]; })];
}); });
}); });
@ -54036,8 +54384,15 @@ function shouldDeserializeResponse(parsedResponse) {
} }
return result; return result;
} }
function deserializeResponseBody(jsonContentTypes, xmlContentTypes, response) { function deserializeResponseBody(jsonContentTypes, xmlContentTypes, response, options) {
return parse(jsonContentTypes, xmlContentTypes, response).then(function (parsedResponse) { var _a, _b, _c;
if (options === void 0) { options = {}; }
var 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) {
if (!shouldDeserializeResponse(parsedResponse)) { if (!shouldDeserializeResponse(parsedResponse)) {
return parsedResponse; return parsedResponse;
} }
@ -54046,54 +54401,13 @@ function deserializeResponseBody(jsonContentTypes, xmlContentTypes, response) {
return parsedResponse; return parsedResponse;
} }
var responseSpec = getOperationResponse(parsedResponse); var responseSpec = getOperationResponse(parsedResponse);
var expectedStatusCodes = Object.keys(operationSpec.responses); var _a = handleErrorResponse(parsedResponse, operationSpec, responseSpec), error = _a.error, shouldReturnResponse = _a.shouldReturnResponse;
var hasNoExpectedStatusCodes = expectedStatusCodes.length === 0 || if (error) {
(expectedStatusCodes.length === 1 && expectedStatusCodes[0] === "default");
var isExpectedStatusCode = hasNoExpectedStatusCodes
? 200 <= parsedResponse.status && parsedResponse.status < 300
: !!responseSpec;
// There is no operation response spec for current status code.
// So, treat it as an error case and use the default response spec to deserialize the response.
if (!isExpectedStatusCode) {
var defaultResponseSpec = operationSpec.responses.default;
if (!defaultResponseSpec) {
return parsedResponse;
}
var defaultBodyMapper = defaultResponseSpec.bodyMapper;
var defaultHeadersMapper = defaultResponseSpec.headersMapper;
var initialErrorMessage = isStreamOperation(operationSpec)
? "Unexpected status code: " + parsedResponse.status
: parsedResponse.bodyAsText;
var error = new RestError(initialErrorMessage, undefined, parsedResponse.status, parsedResponse.request, parsedResponse);
try {
// If error response has a body, try to extract error code & message from it
// Then try to deserialize it using default body mapper
if (parsedResponse.parsedBody) {
var parsedBody = parsedResponse.parsedBody;
var internalError = parsedBody.error || parsedBody;
error.code = internalError.code;
if (internalError.message) {
error.message = internalError.message;
}
if (defaultBodyMapper) {
var valueToDeserialize = parsedBody;
if (operationSpec.isXML && defaultBodyMapper.type.name === MapperType.Sequence) {
valueToDeserialize =
typeof parsedBody === "object" ? parsedBody[defaultBodyMapper.xmlElementName] : [];
}
error.response.parsedBody = operationSpec.serializer.deserialize(defaultBodyMapper, valueToDeserialize, "error.response.parsedBody");
}
}
// If error response has headers, try to deserialize it using default header mapper
if (parsedResponse.headers && defaultHeadersMapper) {
error.response.parsedHeaders = operationSpec.serializer.deserialize(defaultHeadersMapper, parsedResponse.headers.rawHeaders(), "operationRes.parsedHeaders");
}
}
catch (defaultError) {
error.message = "Error \"" + defaultError.message + "\" occurred in deserializing the responseBody - \"" + parsedResponse.bodyAsText + "\" for the default response.";
}
throw error; throw error;
} }
else if (shouldReturnResponse) {
return parsedResponse;
}
// An operation response spec does exist for current status code, so // An operation response spec does exist for current status code, so
// use it to deserialize the response. // use it to deserialize the response.
if (responseSpec) { if (responseSpec) {
@ -54106,7 +54420,7 @@ function deserializeResponseBody(jsonContentTypes, xmlContentTypes, response) {
: []; : [];
} }
try { try {
parsedResponse.parsedBody = operationSpec.serializer.deserialize(responseSpec.bodyMapper, valueToDeserialize, "operationRes.parsedBody"); parsedResponse.parsedBody = operationSpec.serializer.deserialize(responseSpec.bodyMapper, valueToDeserialize, "operationRes.parsedBody", options);
} }
catch (error) { catch (error) {
var restError = new RestError("Error " + error + " occurred in deserializing the responseBody - " + parsedResponse.bodyAsText, undefined, parsedResponse.status, parsedResponse.request, parsedResponse); var restError = new RestError("Error " + error + " occurred in deserializing the responseBody - " + parsedResponse.bodyAsText, undefined, parsedResponse.status, parsedResponse.request, parsedResponse);
@ -54118,13 +54432,78 @@ function deserializeResponseBody(jsonContentTypes, xmlContentTypes, response) {
parsedResponse.parsedBody = response.status >= 200 && response.status < 300; parsedResponse.parsedBody = response.status >= 200 && response.status < 300;
} }
if (responseSpec.headersMapper) { if (responseSpec.headersMapper) {
parsedResponse.parsedHeaders = operationSpec.serializer.deserialize(responseSpec.headersMapper, parsedResponse.headers.rawHeaders(), "operationRes.parsedHeaders"); parsedResponse.parsedHeaders = operationSpec.serializer.deserialize(responseSpec.headersMapper, parsedResponse.headers.rawHeaders(), "operationRes.parsedHeaders", options);
} }
} }
return parsedResponse; return parsedResponse;
}); });
} }
function parse(jsonContentTypes, xmlContentTypes, operationResponse) { function isOperationSpecEmpty(operationSpec) {
var expectedStatusCodes = Object.keys(operationSpec.responses);
return (expectedStatusCodes.length === 0 ||
(expectedStatusCodes.length === 1 && expectedStatusCodes[0] === "default"));
}
function handleErrorResponse(parsedResponse, operationSpec, responseSpec) {
var isSuccessByStatus = 200 <= parsedResponse.status && parsedResponse.status < 300;
var isExpectedStatusCode = isOperationSpecEmpty(operationSpec)
? isSuccessByStatus
: !!responseSpec;
if (isExpectedStatusCode) {
if (responseSpec) {
if (!responseSpec.isError) {
return { error: null, shouldReturnResponse: false };
}
}
else {
return { error: null, shouldReturnResponse: false };
}
}
var errorResponseSpec = responseSpec !== null && responseSpec !== void 0 ? responseSpec : operationSpec.responses.default;
var initialErrorMessage = isStreamOperation(operationSpec)
? "Unexpected status code: " + parsedResponse.status
: parsedResponse.bodyAsText;
var 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;
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;
if (defaultBodyMapper) {
var 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;
error.code = internalError.code;
if (internalError.message) {
error.message = internalError.message;
}
if (defaultBodyMapper) {
error.response.parsedBody = parsedError;
}
}
// If error response has headers, try to deserialize it using default header mapper
if (parsedResponse.headers && defaultHeadersMapper) {
error.response.parsedHeaders = operationSpec.serializer.deserialize(defaultHeadersMapper, parsedResponse.headers.rawHeaders(), "operationRes.parsedHeaders");
}
}
catch (defaultError) {
error.message = "Error \"" + defaultError.message + "\" occurred in deserializing the responseBody - \"" + parsedResponse.bodyAsText + "\" for the default response.";
}
return { error: error, shouldReturnResponse: false };
}
function parse(jsonContentTypes, xmlContentTypes, operationResponse, opts) {
var errorHandler = function (err) { var errorHandler = function (err) {
var msg = "Error \"" + err + "\" occurred while parsing the response body - " + operationResponse.bodyAsText + "."; var msg = "Error \"" + err + "\" occurred while parsing the response body - " + operationResponse.bodyAsText + ".";
var errCode = err.code || RestError.PARSE_ERROR; var errCode = err.code || RestError.PARSE_ERROR;
@ -54145,7 +54524,7 @@ function parse(jsonContentTypes, xmlContentTypes, operationResponse) {
}).catch(errorHandler); }).catch(errorHandler);
} }
else if (contentComponents.some(function (component) { return xmlContentTypes.indexOf(component) !== -1; })) { else if (contentComponents.some(function (component) { return xmlContentTypes.indexOf(component) !== -1; })) {
return parseXML(text_1) return parseXML(text_1, opts)
.then(function (body) { .then(function (body) {
operationResponse.parsedBody = body; operationResponse.parsedBody = body;
return operationResponse; return operationResponse;
@ -54415,6 +54794,10 @@ var UserAgentPolicy = /** @class */ (function (_super) {
}(BaseRequestPolicy)); }(BaseRequestPolicy));
// Copyright (c) Microsoft Corporation. // Copyright (c) Microsoft Corporation.
/**
* Methods that are allowed to follow redirects 301 and 302
*/
var allowedRedirect = ["GET", "HEAD"];
var DefaultRedirectOptions = { var DefaultRedirectOptions = {
handleRedirects: true, handleRedirects: true,
maxRetries: 20 maxRetries: 20
@ -54447,7 +54830,11 @@ function handleRedirect(policy, response, currentRetries) {
var request = response.request, status = response.status; var request = response.request, status = response.status;
var locationHeader = response.headers.get("location"); var locationHeader = response.headers.get("location");
if (locationHeader && if (locationHeader &&
(status === 300 || status === 307 || (status === 303 && request.method === "POST")) && (status === 300 ||
(status === 301 && allowedRedirect.includes(request.method)) ||
(status === 302 && allowedRedirect.includes(request.method)) ||
(status === 303 && request.method === "POST") ||
status === 307) &&
(!policy.maxRetries || currentRetries < policy.maxRetries)) { (!policy.maxRetries || currentRetries < policy.maxRetries)) {
var builder = URLBuilder.parse(request.url); var builder = URLBuilder.parse(request.url);
builder.setPath(locationHeader); builder.setPath(locationHeader);
@ -54456,6 +54843,7 @@ function handleRedirect(policy, response, currentRetries) {
// redirected GET request if the redirect url is present in the location header // redirected GET request if the redirect url is present in the location header
if (status === 303) { if (status === 303) {
request.method = "GET"; request.method = "GET";
delete request.body;
} }
return policy._nextPolicy return policy._nextPolicy
.sendRequest(request) .sendRequest(request)
@ -54717,6 +55105,12 @@ var AccessTokenRefresher = /** @class */ (function () {
}()); }());
// Copyright (c) Microsoft Corporation. // Copyright (c) Microsoft Corporation.
/**
* The automated token refresh will only start to happen at the
* expiration date minus the value of timeBetweenRefreshAttemptsInMs,
* which is by default 30 seconds.
*/
var timeBetweenRefreshAttemptsInMs = 30000;
/** /**
* Creates a new BearerTokenAuthenticationPolicy factory. * Creates a new BearerTokenAuthenticationPolicy factory.
* *
@ -54732,12 +55126,6 @@ function bearerTokenAuthenticationPolicy(credential, scopes) {
} }
}; };
} }
/**
* The automated token refresh will only start to happen at the
* expiration date minus the value of timeBetweenRefreshAttemptsInMs,
* which is by default 30 seconds.
*/
var timeBetweenRefreshAttemptsInMs = 30000;
/** /**
* *
* Provides a RequestPolicy that can request a token from a TokenCredential * Provides a RequestPolicy that can request a token from a TokenCredential
@ -55397,10 +55785,15 @@ var ServiceClient = /** @class */ (function () {
var bearerTokenPolicyFactory = undefined; var bearerTokenPolicyFactory = undefined;
// eslint-disable-next-line @typescript-eslint/no-this-alias // eslint-disable-next-line @typescript-eslint/no-this-alias
var serviceClient = _this; var serviceClient = _this;
var serviceClientOptions = options;
return { return {
create: function (nextPolicy, options) { create: function (nextPolicy, options) {
var 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");
}
if (bearerTokenPolicyFactory === undefined || bearerTokenPolicyFactory === null) { if (bearerTokenPolicyFactory === undefined || bearerTokenPolicyFactory === null) {
bearerTokenPolicyFactory = bearerTokenAuthenticationPolicy(credentials, (serviceClient.baseUri || "") + "/.default"); bearerTokenPolicyFactory = bearerTokenAuthenticationPolicy(credentials, credentialScopes);
} }
return bearerTokenPolicyFactory.create(nextPolicy, options); return bearerTokenPolicyFactory.create(nextPolicy, options);
} }
@ -55464,19 +55857,21 @@ var ServiceClient = /** @class */ (function () {
* @param {ServiceCallback} callback The callback to call when the response is received. * @param {ServiceCallback} callback The callback to call when the response is received.
*/ */
ServiceClient.prototype.sendOperationRequest = function (operationArguments, operationSpec, callback) { ServiceClient.prototype.sendOperationRequest = function (operationArguments, operationSpec, callback) {
var _a;
return tslib.__awaiter(this, void 0, void 0, function () { return tslib.__awaiter(this, void 0, void 0, function () {
var httpRequest, result, baseUri, requestUrl, _i, _a, urlParameter, urlParameterValue, _b, _c, queryParameter, queryParameterValue, index, item, index, contentType, _d, _e, headerParameter, headerValue, headerCollectionPrefix, _f, _g, key, options, customHeaderName, rawResponse, sendRequestError, error_1, error_2, cb; 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 (_h) { return tslib.__generator(this, function (_j) {
switch (_h.label) { switch (_j.label) {
case 0: case 0:
if (typeof operationArguments.options === "function") { if (typeof operationArguments.options === "function") {
callback = operationArguments.options; callback = operationArguments.options;
operationArguments.options = undefined; operationArguments.options = undefined;
} }
serializerOptions = (_a = operationArguments.options) === null || _a === void 0 ? void 0 : _a.serializerOptions;
httpRequest = new WebResource(); httpRequest = new WebResource();
_h.label = 1; _j.label = 1;
case 1: case 1:
_h.trys.push([1, 6, , 7]); _j.trys.push([1, 6, , 7]);
baseUri = operationSpec.baseUrl || this.baseUri; baseUri = operationSpec.baseUrl || this.baseUri;
if (!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."); 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.");
@ -55488,10 +55883,10 @@ var ServiceClient = /** @class */ (function () {
requestUrl.appendPath(operationSpec.path); requestUrl.appendPath(operationSpec.path);
} }
if (operationSpec.urlParameters && operationSpec.urlParameters.length > 0) { if (operationSpec.urlParameters && operationSpec.urlParameters.length > 0) {
for (_i = 0, _a = operationSpec.urlParameters; _i < _a.length; _i++) { for (_i = 0, _b = operationSpec.urlParameters; _i < _b.length; _i++) {
urlParameter = _a[_i]; urlParameter = _b[_i];
urlParameterValue = getOperationArgumentValueFromParameter(this, operationArguments, urlParameter, operationSpec.serializer); urlParameterValue = getOperationArgumentValueFromParameter(this, operationArguments, urlParameter, operationSpec.serializer);
urlParameterValue = operationSpec.serializer.serialize(urlParameter.mapper, urlParameterValue, getPathStringFromParameter(urlParameter)); urlParameterValue = operationSpec.serializer.serialize(urlParameter.mapper, urlParameterValue, getPathStringFromParameter(urlParameter), serializerOptions);
if (!urlParameter.skipEncoding) { if (!urlParameter.skipEncoding) {
urlParameterValue = encodeURIComponent(urlParameterValue); urlParameterValue = encodeURIComponent(urlParameterValue);
} }
@ -55499,16 +55894,17 @@ var ServiceClient = /** @class */ (function () {
} }
} }
if (operationSpec.queryParameters && operationSpec.queryParameters.length > 0) { if (operationSpec.queryParameters && operationSpec.queryParameters.length > 0) {
for (_b = 0, _c = operationSpec.queryParameters; _b < _c.length; _b++) { for (_c = 0, _d = operationSpec.queryParameters; _c < _d.length; _c++) {
queryParameter = _c[_b]; queryParameter = _d[_c];
queryParameterValue = getOperationArgumentValueFromParameter(this, operationArguments, queryParameter, operationSpec.serializer); queryParameterValue = getOperationArgumentValueFromParameter(this, operationArguments, queryParameter, operationSpec.serializer);
if (queryParameterValue !== undefined && queryParameterValue !== null) { if (queryParameterValue !== undefined && queryParameterValue !== null) {
queryParameterValue = operationSpec.serializer.serialize(queryParameter.mapper, queryParameterValue, getPathStringFromParameter(queryParameter)); queryParameterValue = operationSpec.serializer.serialize(queryParameter.mapper, queryParameterValue, getPathStringFromParameter(queryParameter), serializerOptions);
if (queryParameter.collectionFormat !== undefined && if (queryParameter.collectionFormat !== undefined &&
queryParameter.collectionFormat !== null) { queryParameter.collectionFormat !== null) {
if (queryParameter.collectionFormat === exports.QueryCollectionFormat.Multi) { if (queryParameter.collectionFormat === exports.QueryCollectionFormat.Multi) {
if (queryParameterValue.length === 0) { if (queryParameterValue.length === 0) {
queryParameterValue = ""; // The collection is empty, no need to try serializing the current queryParam
continue;
} }
else { else {
for (index in queryParameterValue) { for (index in queryParameterValue) {
@ -55553,16 +55949,16 @@ var ServiceClient = /** @class */ (function () {
httpRequest.headers.set("Content-Type", contentType); httpRequest.headers.set("Content-Type", contentType);
} }
if (operationSpec.headerParameters) { if (operationSpec.headerParameters) {
for (_d = 0, _e = operationSpec.headerParameters; _d < _e.length; _d++) { for (_e = 0, _f = operationSpec.headerParameters; _e < _f.length; _e++) {
headerParameter = _e[_d]; headerParameter = _f[_e];
headerValue = getOperationArgumentValueFromParameter(this, operationArguments, headerParameter, operationSpec.serializer); headerValue = getOperationArgumentValueFromParameter(this, operationArguments, headerParameter, operationSpec.serializer);
if (headerValue !== undefined && headerValue !== null) { if (headerValue !== undefined && headerValue !== null) {
headerValue = operationSpec.serializer.serialize(headerParameter.mapper, headerValue, getPathStringFromParameter(headerParameter)); headerValue = operationSpec.serializer.serialize(headerParameter.mapper, headerValue, getPathStringFromParameter(headerParameter), serializerOptions);
headerCollectionPrefix = headerParameter.mapper headerCollectionPrefix = headerParameter.mapper
.headerCollectionPrefix; .headerCollectionPrefix;
if (headerCollectionPrefix) { if (headerCollectionPrefix) {
for (_f = 0, _g = Object.keys(headerValue); _f < _g.length; _f++) { for (_g = 0, _h = Object.keys(headerValue); _g < _h.length; _g++) {
key = _g[_f]; key = _h[_g];
httpRequest.headers.set(headerCollectionPrefix + key, headerValue[key]); httpRequest.headers.set(headerCollectionPrefix + key, headerValue[key]);
} }
} }
@ -55606,15 +56002,15 @@ var ServiceClient = /** @class */ (function () {
} }
rawResponse = void 0; rawResponse = void 0;
sendRequestError = void 0; sendRequestError = void 0;
_h.label = 2; _j.label = 2;
case 2: case 2:
_h.trys.push([2, 4, , 5]); _j.trys.push([2, 4, , 5]);
return [4 /*yield*/, this.sendRequest(httpRequest)]; return [4 /*yield*/, this.sendRequest(httpRequest)];
case 3: case 3:
rawResponse = _h.sent(); rawResponse = _j.sent();
return [3 /*break*/, 5]; return [3 /*break*/, 5];
case 4: case 4:
error_1 = _h.sent(); error_1 = _j.sent();
sendRequestError = error_1; sendRequestError = error_1;
return [3 /*break*/, 5]; return [3 /*break*/, 5];
case 5: case 5:
@ -55630,7 +56026,7 @@ var ServiceClient = /** @class */ (function () {
} }
return [3 /*break*/, 7]; return [3 /*break*/, 7];
case 6: case 6:
error_2 = _h.sent(); error_2 = _j.sent();
result = Promise.reject(error_2); result = Promise.reject(error_2);
return [3 /*break*/, 7]; return [3 /*break*/, 7];
case 7: case 7:
@ -55649,7 +56045,14 @@ var ServiceClient = /** @class */ (function () {
return ServiceClient; return ServiceClient;
}()); }());
function serializeRequestBody(serviceClient, httpRequest, operationArguments, operationSpec) { function serializeRequestBody(serviceClient, httpRequest, operationArguments, operationSpec) {
var _a; 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 = {
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;
if (operationSpec.requestBody && operationSpec.requestBody.mapper) { if (operationSpec.requestBody && operationSpec.requestBody.mapper) {
httpRequest.body = getOperationArgumentValueFromParameter(serviceClient, operationArguments, operationSpec.requestBody, operationSpec.serializer); httpRequest.body = getOperationArgumentValueFromParameter(serviceClient, operationArguments, operationSpec.requestBody, operationSpec.serializer);
var bodyMapper = operationSpec.requestBody.mapper; var bodyMapper = operationSpec.requestBody.mapper;
@ -55658,22 +56061,26 @@ function serializeRequestBody(serviceClient, httpRequest, operationArguments, op
try { try {
if ((httpRequest.body !== undefined && httpRequest.body !== null) || required) { if ((httpRequest.body !== undefined && httpRequest.body !== null) || required) {
var requestBodyParameterPathString = getPathStringFromParameter(operationSpec.requestBody); var requestBodyParameterPathString = getPathStringFromParameter(operationSpec.requestBody);
httpRequest.body = operationSpec.serializer.serialize(bodyMapper, httpRequest.body, requestBodyParameterPathString); httpRequest.body = operationSpec.serializer.serialize(bodyMapper, httpRequest.body, requestBodyParameterPathString, updatedOptions);
var isStream = typeName === MapperType.Stream; var isStream = typeName === MapperType.Stream;
if (operationSpec.isXML) { if (operationSpec.isXML) {
var xmlnsKey = xmlNamespacePrefix ? "xmlns:" + xmlNamespacePrefix : "xmlns"; var xmlnsKey = xmlNamespacePrefix ? "xmlns:" + xmlNamespacePrefix : "xmlns";
var value = getXmlValueWithNamespace(xmlNamespace, xmlnsKey, typeName, httpRequest.body); var value = getXmlValueWithNamespace(xmlNamespace, xmlnsKey, typeName, httpRequest.body, updatedOptions);
if (typeName === MapperType.Sequence) { if (typeName === MapperType.Sequence) {
httpRequest.body = stringifyXML(prepareXMLRootList(value, xmlElementName || xmlName || serializedName, xmlnsKey, xmlNamespace), { rootName: xmlName || serializedName }); httpRequest.body = stringifyXML(prepareXMLRootList(value, xmlElementName || xmlName || serializedName, xmlnsKey, xmlNamespace), {
rootName: xmlName || serializedName,
xmlCharKey: xmlCharKey
});
} }
else if (!isStream) { else if (!isStream) {
httpRequest.body = stringifyXML(value, { httpRequest.body = stringifyXML(value, {
rootName: xmlName || serializedName rootName: xmlName || serializedName,
xmlCharKey: xmlCharKey
}); });
} }
} }
else if (typeName === MapperType.String && else if (typeName === MapperType.String &&
(((_a = operationSpec.contentType) === null || _a === void 0 ? void 0 : _a.match("text/plain")) || operationSpec.mediaType === "text")) { (((_f = operationSpec.contentType) === null || _f === void 0 ? void 0 : _f.match("text/plain")) || operationSpec.mediaType === "text")) {
// the String serializer has validated that request body is a string // the String serializer has validated that request body is a string
// so just send the string. // so just send the string.
return; return;
@ -55689,12 +56096,12 @@ function serializeRequestBody(serviceClient, httpRequest, operationArguments, op
} }
else if (operationSpec.formDataParameters && operationSpec.formDataParameters.length > 0) { else if (operationSpec.formDataParameters && operationSpec.formDataParameters.length > 0) {
httpRequest.formData = {}; httpRequest.formData = {};
for (var _i = 0, _b = operationSpec.formDataParameters; _i < _b.length; _i++) { for (var _i = 0, _g = operationSpec.formDataParameters; _i < _g.length; _i++) {
var formDataParameter = _b[_i]; var formDataParameter = _g[_i];
var formDataParameterValue = getOperationArgumentValueFromParameter(serviceClient, operationArguments, formDataParameter, operationSpec.serializer); var formDataParameterValue = getOperationArgumentValueFromParameter(serviceClient, operationArguments, formDataParameter, operationSpec.serializer);
if (formDataParameterValue !== undefined && formDataParameterValue !== null) { if (formDataParameterValue !== undefined && formDataParameterValue !== null) {
var formDataParameterPropertyName = formDataParameter.mapper.serializedName || getPathStringFromParameter(formDataParameter); var formDataParameterPropertyName = formDataParameter.mapper.serializedName || getPathStringFromParameter(formDataParameter);
httpRequest.formData[formDataParameterPropertyName] = operationSpec.serializer.serialize(formDataParameter.mapper, formDataParameterValue, getPathStringFromParameter(formDataParameter)); httpRequest.formData[formDataParameterPropertyName] = operationSpec.serializer.serialize(formDataParameter.mapper, formDataParameterValue, getPathStringFromParameter(formDataParameter), updatedOptions);
} }
} }
} }
@ -55702,12 +56109,15 @@ function serializeRequestBody(serviceClient, httpRequest, operationArguments, op
/** /**
* Adds an xml namespace to the xml serialized object if needed, otherwise it just returns the value itself * Adds an xml namespace to the xml serialized object if needed, otherwise it just returns the value itself
*/ */
function getXmlValueWithNamespace(xmlNamespace, xmlnsKey, typeName, serializedValue) { function getXmlValueWithNamespace(xmlNamespace, xmlnsKey, typeName, serializedValue, options) {
var _a; var _a;
// Composite and Sequence schemas already got their root namespace set during serialization // Composite and Sequence schemas already got their root namespace set during serialization
// We just need to add xmlns to the other schema types // We just need to add xmlns to the other schema types
if (xmlNamespace && !["Composite", "Sequence", "Dictionary"].includes(typeName)) { if (xmlNamespace && !["Composite", "Sequence", "Dictionary"].includes(typeName)) {
return { _: serializedValue, $: (_a = {}, _a[xmlnsKey] = xmlNamespace, _a) }; var result = {};
result[options.xmlCharKey] = serializedValue;
result[XML_ATTRKEY] = (_a = {}, _a[xmlnsKey] = xmlNamespace, _a);
return result;
} }
return serializedValue; return serializedValue;
} }
@ -55796,10 +56206,12 @@ function getOperationArgumentValueFromParameter(serviceClient, operationArgument
return getOperationArgumentValueFromParameterPath(serviceClient, operationArguments, parameter.parameterPath, parameter.mapper, serializer); return getOperationArgumentValueFromParameterPath(serviceClient, operationArguments, parameter.parameterPath, parameter.mapper, serializer);
} }
function getOperationArgumentValueFromParameterPath(serviceClient, operationArguments, parameterPath, parameterMapper, serializer) { function getOperationArgumentValueFromParameterPath(serviceClient, operationArguments, parameterPath, parameterMapper, serializer) {
var _a;
var value; var value;
if (typeof parameterPath === "string") { if (typeof parameterPath === "string") {
parameterPath = [parameterPath]; parameterPath = [parameterPath];
} }
var serializerOptions = (_a = operationArguments.options) === null || _a === void 0 ? void 0 : _a.serializerOptions;
if (Array.isArray(parameterPath)) { if (Array.isArray(parameterPath)) {
if (parameterPath.length > 0) { if (parameterPath.length > 0) {
if (parameterMapper.isConstant) { if (parameterMapper.isConstant) {
@ -55820,7 +56232,7 @@ function getOperationArgumentValueFromParameterPath(serviceClient, operationArgu
} }
// Serialize just for validation purposes. // Serialize just for validation purposes.
var parameterPathString = getPathStringFromParameterPath(parameterPath, parameterMapper); var parameterPathString = getPathStringFromParameterPath(parameterPath, parameterMapper);
serializer.serialize(parameterMapper, value, parameterPathString); serializer.serialize(parameterMapper, value, parameterPathString, serializerOptions);
} }
} }
else { else {
@ -55833,7 +56245,7 @@ function getOperationArgumentValueFromParameterPath(serviceClient, operationArgu
var propertyValue = getOperationArgumentValueFromParameterPath(serviceClient, operationArguments, propertyPath, propertyMapper, serializer); var propertyValue = getOperationArgumentValueFromParameterPath(serviceClient, operationArguments, propertyPath, propertyMapper, serializer);
// Serialize just for validation purposes. // Serialize just for validation purposes.
var propertyPathString = getPathStringFromParameterPath(propertyPath, propertyMapper); var propertyPathString = getPathStringFromParameterPath(propertyPath, propertyMapper);
serializer.serialize(propertyMapper, propertyValue, propertyPathString); serializer.serialize(propertyMapper, propertyValue, propertyPathString, serializerOptions);
if (propertyValue !== undefined && propertyValue !== null) { if (propertyValue !== undefined && propertyValue !== null) {
if (!value) { if (!value) {
value = {}; value = {};
@ -55907,6 +56319,46 @@ function flattenResponse(_response, responseSpec) {
} }
return addOperationResponse(tslib.__assign(tslib.__assign({}, parsedHeaders), _response.parsedBody)); return addOperationResponse(tslib.__assign(tslib.__assign({}, parsedHeaders), _response.parsedBody));
} }
function getCredentialScopes(options, baseUri) {
if (options === null || options === void 0 ? void 0 : options.credentialScopes) {
var scopes = options.credentialScopes;
return Array.isArray(scopes)
? scopes.map(function (scope) { return new url.URL(scope).toString(); })
: new url.URL(scopes).toString();
}
if (baseUri) {
return baseUri + "/.default";
}
return undefined;
}
// Copyright (c) Microsoft Corporation.
/**
* Creates a function called createSpan to create spans using the global tracer.
* @ignore
* @param spanConfig The name of the operation being performed.
* @param tracingOptions The options for the underlying http request.
*/
function createSpanFunction(_a) {
var packagePrefix = _a.packagePrefix, namespace = _a.namespace;
return function (operationName, operationOptions) {
var tracer = coreTracing.getTracer();
var tracingOptions = operationOptions.tracingOptions || {};
var spanOptions = tslib.__assign(tslib.__assign({}, tracingOptions.spanOptions), { kind: api.SpanKind.INTERNAL });
var span = tracer.startSpan(packagePrefix + "." + operationName, spanOptions);
span.setAttribute("az.namespace", namespace);
var newSpanOptions = tracingOptions.spanOptions || {};
if (span.isRecording()) {
newSpanOptions = tslib.__assign(tslib.__assign({}, tracingOptions.spanOptions), { parent: span.context(), attributes: tslib.__assign(tslib.__assign({}, spanOptions.attributes), { "az.namespace": namespace }) });
}
var newTracingOptions = tslib.__assign(tslib.__assign({}, tracingOptions), { spanOptions: newSpanOptions });
var newOperationOptions = tslib.__assign(tslib.__assign({}, operationOptions), { tracingOptions: newTracingOptions });
return {
span: span,
updatedOptions: newOperationOptions
};
};
}
// Copyright (c) Microsoft Corporation. // Copyright (c) Microsoft Corporation.
var HeaderConstants = Constants.HeaderConstants; var HeaderConstants = Constants.HeaderConstants;
@ -56051,9 +56503,12 @@ exports.TopicCredentials = TopicCredentials;
exports.URLBuilder = URLBuilder; exports.URLBuilder = URLBuilder;
exports.URLQuery = URLQuery; exports.URLQuery = URLQuery;
exports.WebResource = WebResource; exports.WebResource = WebResource;
exports.XML_ATTRKEY = XML_ATTRKEY;
exports.XML_CHARKEY = XML_CHARKEY;
exports.applyMixins = applyMixins; exports.applyMixins = applyMixins;
exports.bearerTokenAuthenticationPolicy = bearerTokenAuthenticationPolicy; exports.bearerTokenAuthenticationPolicy = bearerTokenAuthenticationPolicy;
exports.createPipelineFromOptions = createPipelineFromOptions; exports.createPipelineFromOptions = createPipelineFromOptions;
exports.createSpanFunction = createSpanFunction;
exports.delay = delay; exports.delay = delay;
exports.deserializationPolicy = deserializationPolicy; exports.deserializationPolicy = deserializationPolicy;
exports.deserializeResponseBody = deserializeResponseBody; exports.deserializeResponseBody = deserializeResponseBody;

36
package-lock.json generated
View File

@ -5,9 +5,9 @@
"requires": true, "requires": true,
"dependencies": { "dependencies": {
"@actions/cache": { "@actions/cache": {
"version": "1.0.4", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/@actions/cache/-/cache-1.0.4.tgz", "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-1.0.5.tgz",
"integrity": "sha512-1grYfbu8P6JDDHc40eOI5tQDRcAxMwq5HBWhaCqEg9o/ixDRZfwPHlQvQAop2ZzFCjF2ns0ENQOIBAH8GNn+zA==", "integrity": "sha512-TcvJOduwsPP27KLmIa5cqXsQYFK2GzILcEpnhvYmhGwi1aYx9XwhKmp6Im8X6DJMBxbvupKPsOntG6f6sSkIPA==",
"requires": { "requires": {
"@actions/core": "^1.2.6", "@actions/core": "^1.2.6",
"@actions/exec": "^1.0.1", "@actions/exec": "^1.0.1",
@ -34,11 +34,11 @@
} }
}, },
"@actions/glob": { "@actions/glob": {
"version": "0.1.0", "version": "0.1.1",
"resolved": "https://registry.npmjs.org/@actions/glob/-/glob-0.1.0.tgz", "resolved": "https://registry.npmjs.org/@actions/glob/-/glob-0.1.1.tgz",
"integrity": "sha512-lx8SzyQ2FE9+UUvjqY1f28QbTJv+w8qP7kHHbfQRhphrlcx0Mdmm1tZdGJzfxv1jxREa/sLW4Oy8CbGQKCJySA==", "integrity": "sha512-ikM4GVZOgSGDNTjv0ECJ8AOqmDqQwtO4K1M4P465C9iikRq34+FwCjUVSwzgOYDP85qtddyWpzBw5lTub/9Xmg==",
"requires": { "requires": {
"@actions/core": "^1.2.0", "@actions/core": "^1.2.6",
"minimatch": "^3.0.4" "minimatch": "^3.0.4"
} }
}, },
@ -112,9 +112,9 @@
} }
}, },
"@azure/core-http": { "@azure/core-http": {
"version": "1.1.9", "version": "1.2.1",
"resolved": "https://registry.npmjs.org/@azure/core-http/-/core-http-1.1.9.tgz", "resolved": "https://registry.npmjs.org/@azure/core-http/-/core-http-1.2.1.tgz",
"integrity": "sha512-wM0HMRNQaE2NtTHb+9FXF7uxUqaAHFTMVu6OzlEll6gUGybcDqM7+9Oklp33BhEfq+ZumpCoqxq3njNbMHuf/w==", "integrity": "sha512-vPHIQXjLVs4iin2BUaj7/sqIAfGq3MW1TLEc3yYKFNpi/sBQn2KI0g+Ow0EQYvAkkHhTHGArA7JKhcjsnJMGLw==",
"requires": { "requires": {
"@azure/abort-controller": "^1.0.0", "@azure/abort-controller": "^1.0.0",
"@azure/core-auth": "^1.1.3", "@azure/core-auth": "^1.1.3",
@ -129,7 +129,7 @@
"tough-cookie": "^4.0.0", "tough-cookie": "^4.0.0",
"tslib": "^2.0.0", "tslib": "^2.0.0",
"tunnel": "^0.0.6", "tunnel": "^0.0.6",
"uuid": "^8.1.0", "uuid": "^8.3.0",
"xml2js": "^0.4.19" "xml2js": "^0.4.19"
}, },
"dependencies": { "dependencies": {
@ -159,9 +159,9 @@
"integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ=="
}, },
"uuid": { "uuid": {
"version": "8.3.1", "version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==" "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
} }
} }
}, },
@ -249,12 +249,12 @@
} }
}, },
"@azure/storage-blob": { "@azure/storage-blob": {
"version": "12.2.1", "version": "12.3.0",
"resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.2.1.tgz", "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.3.0.tgz",
"integrity": "sha512-erqCSmDL8b/AHZi94nq+nCE+2whQmvBDkAv4N9uic0MRac/gRyZqnsqkfrun/gr2rZo+qVtnMenwkkE3roXn8Q==", "integrity": "sha512-nCySzNfm782pEW3sg9GHj1zE4gBeVVMeEBdWb4MefifrCwQQOoz5cXZTNFiUJAJqAO+/72r2UjZcUwHk/QmzkA==",
"requires": { "requires": {
"@azure/abort-controller": "^1.0.0", "@azure/abort-controller": "^1.0.0",
"@azure/core-http": "^1.1.6", "@azure/core-http": "^1.2.0",
"@azure/core-lro": "^1.0.2", "@azure/core-lro": "^1.0.2",
"@azure/core-paging": "^1.1.1", "@azure/core-paging": "^1.1.1",
"@azure/core-tracing": "1.0.0-preview.9", "@azure/core-tracing": "1.0.0-preview.9",

View File

@ -23,7 +23,7 @@
"author": "GitHub", "author": "GitHub",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@actions/cache": "^1.0.4", "@actions/cache": "^1.0.5",
"@actions/core": "^1.2.6", "@actions/core": "^1.2.6",
"@actions/exec": "^1.0.1", "@actions/exec": "^1.0.1",
"@actions/io": "^1.0.1" "@actions/io": "^1.0.1"