diff --git a/__tests__/distributors/adopt-installer.test.ts b/__tests__/distributors/adopt-installer.test.ts
index 8a112243f..f03a4eb62 100644
--- a/__tests__/distributors/adopt-installer.test.ts
+++ b/__tests__/distributors/adopt-installer.test.ts
@@ -1,5 +1,4 @@
import {HttpClient} from '@actions/http-client';
-import {IAdoptAvailableVersions} from '../../src/distributions/adopt/models';
import {
AdoptDistribution,
AdoptImplementation
@@ -8,18 +7,33 @@ import {JavaInstallerOptions} from '../../src/distributions/base-models';
import os from 'os';
+import temurinManifestData from '../data/temurin.json';
import manifestData from '../data/adopt.json';
+import {
+ TemurinDistribution,
+ TemurinImplementation
+} from '../../src/distributions/temurin/installer';
describe('getAvailableVersions', () => {
let spyHttpClient: jest.SpyInstance;
beforeEach(() => {
spyHttpClient = jest.spyOn(HttpClient.prototype, 'getJson');
- spyHttpClient.mockReturnValue({
- statusCode: 200,
- headers: {},
- result: []
- });
+ spyHttpClient
+ .mockImplementation((requestUrl, additionalHeaders) => {
+ if (requestUrl.startsWith('https://api.adoptium.net/')) {
+ return {
+ statusCode: 200,
+ headers: {},
+ result: []
+ } as any;
+ }
+ })
+ .mockReturnValue({
+ statusCode: 200,
+ headers: {},
+ result: []
+ });
});
afterEach(() => {
@@ -132,6 +146,15 @@ describe('getAvailableVersions', () => {
it('load available versions', async () => {
spyHttpClient = jest.spyOn(HttpClient.prototype, 'getJson');
spyHttpClient
+ .mockImplementation((requestUrl, additionalHeaders) => {
+ if (requestUrl.startsWith('https://api.adoptium.net/')) {
+ return {
+ statusCode: 200,
+ headers: {},
+ result: []
+ } as any;
+ }
+ })
.mockReturnValueOnce({
statusCode: 200,
headers: {},
@@ -233,6 +256,17 @@ describe('findPackageForDownload', () => {
['15.0.1+9', '15.0.1+9'],
['15.0.1+9.1', '15.0.1+9.1']
])('version is resolved correctly %s -> %s', async (input, expected) => {
+ const temurinDistribution = new TemurinDistribution(
+ {
+ version: '11',
+ architecture: 'x64',
+ packageType: 'jdk',
+ checkLatest: false
+ },
+ TemurinImplementation.Hotspot
+ );
+ temurinDistribution['getAvailableVersions'] = async () => [] as any;
+
const distribution = new AdoptDistribution(
{
version: '11',
@@ -240,14 +274,108 @@ describe('findPackageForDownload', () => {
packageType: 'jdk',
checkLatest: false
},
- AdoptImplementation.Hotspot
+ AdoptImplementation.Hotspot,
+ temurinDistribution
);
distribution['getAvailableVersions'] = async () => manifestData as any;
+
const resolvedVersion = await distribution['findPackageForDownload'](input);
expect(resolvedVersion.version).toBe(expected);
});
+ describe('delegates to Temurin', () => {
+ it.each([
+ ['8', '8.0.302+8'],
+ ['16', '16.0.2+7'],
+ ['16.0', '16.0.2+7'],
+ ['16.0.2', '16.0.2+7'],
+ ['8.x', '8.0.302+8'],
+ ['x', '16.0.2+7']
+ ])('version is resolved correctly %s -> %s', async (input, expected) => {
+ const temurinDistribution = new TemurinDistribution(
+ {
+ version: '11',
+ architecture: 'x64',
+ packageType: 'jdk',
+ checkLatest: false
+ },
+ TemurinImplementation.Hotspot
+ );
+ temurinDistribution['getAvailableVersions'] = async () =>
+ temurinManifestData as any;
+
+ const distribution = new AdoptDistribution(
+ {
+ version: '11',
+ architecture: 'x64',
+ packageType: 'jdk',
+ checkLatest: false
+ },
+ AdoptImplementation.Hotspot,
+ temurinDistribution
+ );
+
+ distribution['findPackageForDownload'] = async () => {
+ throw new Error(`Could not find satisfied version`);
+ };
+
+ const resolvedVersion = await temurinDistribution[
+ 'findPackageForDownload'
+ ](input);
+ expect(resolvedVersion.version).toBe(expected);
+ });
+ });
+
+ describe('Falls back if Temurin fails', () => {
+ it.each([['9', '9.0.7+10']])(
+ 'version is resolved correctly %s -> %s',
+ async (input, expected) => {
+ const temurinDistribution = new TemurinDistribution(
+ {
+ version: '11',
+ architecture: 'x64',
+ packageType: 'jdk',
+ checkLatest: false
+ },
+ TemurinImplementation.Hotspot
+ );
+
+ const distribution = new AdoptDistribution(
+ {
+ version: '11',
+ architecture: 'x64',
+ packageType: 'jdk',
+ checkLatest: false
+ },
+ AdoptImplementation.Hotspot,
+ temurinDistribution
+ );
+
+ temurinDistribution['findPackageForDownload'] = async () =>
+ new Promise(function () {
+ throw new Error('Could not find satisfied version for SemVer');
+ });
+ distribution['getAvailableVersions'] = async () => manifestData as any;
+
+ const resolvedVersion = await distribution['findPackageForDownload'](
+ input
+ );
+ expect(resolvedVersion.version).toBe(expected);
+ }
+ );
+ });
+
it('version is found but binaries list is empty', async () => {
+ const temurinDistribution = new TemurinDistribution(
+ {
+ version: '11',
+ architecture: 'x64',
+ packageType: 'jdk',
+ checkLatest: false
+ },
+ TemurinImplementation.Hotspot
+ );
+ temurinDistribution['getAvailableVersions'] = async () => [] as any;
const distribution = new AdoptDistribution(
{
version: '11',
@@ -255,13 +383,24 @@ describe('findPackageForDownload', () => {
packageType: 'jdk',
checkLatest: false
},
- AdoptImplementation.Hotspot
+ AdoptImplementation.Hotspot,
+ temurinDistribution
);
distribution['getAvailableVersions'] = async () => manifestData as any;
await expect(
distribution['findPackageForDownload']('9.0.8')
).rejects.toThrow(/Could not find satisfied version for SemVer */);
});
+ const temurinDistribution = new TemurinDistribution(
+ {
+ version: '11',
+ architecture: 'x64',
+ packageType: 'jdk',
+ checkLatest: false
+ },
+ TemurinImplementation.Hotspot
+ );
+ temurinDistribution['getAvailableVersions'] = async () => [] as any;
it('version is not found', async () => {
const distribution = new AdoptDistribution(
@@ -271,7 +410,8 @@ describe('findPackageForDownload', () => {
packageType: 'jdk',
checkLatest: false
},
- AdoptImplementation.Hotspot
+ AdoptImplementation.Hotspot,
+ temurinDistribution
);
distribution['getAvailableVersions'] = async () => manifestData as any;
await expect(distribution['findPackageForDownload']('7.x')).rejects.toThrow(
@@ -280,6 +420,23 @@ describe('findPackageForDownload', () => {
});
it('version list is empty', async () => {
+ const spyHttpClient = jest.spyOn(HttpClient.prototype, 'getJson');
+
+ spyHttpClient.mockImplementation((requestUrl, additionalHeaders) => {
+ if (requestUrl.startsWith('https://api.adoptium.net/')) {
+ return {
+ statusCode: 200,
+ headers: {},
+ result: []
+ } as any;
+ }
+ return {
+ statusCode: 200,
+ headers: {},
+ result: manifestData as any
+ } as any;
+ });
+
const distribution = new AdoptDistribution(
{
version: '11',
diff --git a/dist/cleanup/index.js b/dist/cleanup/index.js
index f302d0281..51bf578e4 100644
--- a/dist/cleanup/index.js
+++ b/dist/cleanup/index.js
@@ -6,29 +6,6 @@
"use strict";
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- var desc = Object.getOwnPropertyDescriptor(m, k);
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
- desc = { enumerable: true, get: function() { return m[k]; } };
- }
- Object.defineProperty(o, k2, desc);
-}) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
-}));
-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
-}) : function(o, v) {
- o["default"] = v;
-});
-var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
-};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
@@ -38,8 +15,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
+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 }));
-exports.saveCache = exports.restoreCache = exports.isFeatureAvailable = exports.ReserveCacheError = exports.ValidationError = void 0;
const core = __importStar(__nccwpck_require__(2186));
const path = __importStar(__nccwpck_require__(1017));
const utils = __importStar(__nccwpck_require__(1518));
@@ -91,10 +74,9 @@ exports.isFeatureAvailable = isFeatureAvailable;
* @param primaryKey an explicit key for restoring the cache
* @param restoreKeys an optional ordered list of keys to use for restoring the cache if no cache hit occurred for key
* @param downloadOptions cache download options
- * @param enableCrossOsArchive an optional boolean enabled to restore on windows any cache created on any platform
* @returns string returns the key for the cache hit, otherwise returns undefined
*/
-function restoreCache(paths, primaryKey, restoreKeys, options, enableCrossOsArchive = false) {
+function restoreCache(paths, primaryKey, restoreKeys, options) {
return __awaiter(this, void 0, void 0, function* () {
checkPaths(paths);
restoreKeys = restoreKeys || [];
@@ -112,27 +94,22 @@ function restoreCache(paths, primaryKey, restoreKeys, options, enableCrossOsArch
try {
// path are needed to compute version
const cacheEntry = yield cacheHttpClient.getCacheEntry(keys, paths, {
- compressionMethod,
- enableCrossOsArchive
+ compressionMethod
});
if (!(cacheEntry === null || cacheEntry === void 0 ? void 0 : cacheEntry.archiveLocation)) {
// Cache not found
return undefined;
}
- if (options === null || options === void 0 ? void 0 : options.lookupOnly) {
- core.info('Lookup only - skipping download');
- return cacheEntry.cacheKey;
- }
archivePath = path.join(yield utils.createTempDirectory(), utils.getCacheFileName(compressionMethod));
core.debug(`Archive Path: ${archivePath}`);
// Download the cache from the cache entry
yield cacheHttpClient.downloadCache(cacheEntry.archiveLocation, archivePath, options);
if (core.isDebug()) {
- yield (0, tar_1.listTar)(archivePath, compressionMethod);
+ yield tar_1.listTar(archivePath, compressionMethod);
}
const archiveFileSize = utils.getArchiveFileSizeInBytes(archivePath);
core.info(`Cache Size: ~${Math.round(archiveFileSize / (1024 * 1024))} MB (${archiveFileSize} B)`);
- yield (0, tar_1.extractTar)(archivePath, compressionMethod);
+ yield tar_1.extractTar(archivePath, compressionMethod);
core.info('Cache restored successfully');
return cacheEntry.cacheKey;
}
@@ -164,11 +141,10 @@ exports.restoreCache = restoreCache;
*
* @param paths a list of file paths to be cached
* @param key an explicit key for restoring the cache
- * @param enableCrossOsArchive an optional boolean enabled to save cache on windows which could be restored on any platform
* @param options cache upload options
* @returns number returns cacheId if the cache was saved successfully and throws an error if save fails
*/
-function saveCache(paths, key, options, enableCrossOsArchive = false) {
+function saveCache(paths, key, options) {
var _a, _b, _c, _d, _e;
return __awaiter(this, void 0, void 0, function* () {
checkPaths(paths);
@@ -185,9 +161,9 @@ function saveCache(paths, key, options, enableCrossOsArchive = false) {
const archivePath = path.join(archiveFolder, utils.getCacheFileName(compressionMethod));
core.debug(`Archive Path: ${archivePath}`);
try {
- yield (0, tar_1.createTar)(archiveFolder, cachePaths, compressionMethod);
+ yield tar_1.createTar(archiveFolder, cachePaths, compressionMethod);
if (core.isDebug()) {
- yield (0, tar_1.listTar)(archivePath, compressionMethod);
+ yield tar_1.listTar(archivePath, compressionMethod);
}
const fileSizeLimit = 10 * 1024 * 1024 * 1024; // 10GB per repo limit
const archiveFileSize = utils.getArchiveFileSizeInBytes(archivePath);
@@ -199,7 +175,6 @@ function saveCache(paths, key, options, enableCrossOsArchive = false) {
core.debug('Reserving Cache');
const reserveCacheResponse = yield cacheHttpClient.reserveCache(key, paths, {
compressionMethod,
- enableCrossOsArchive,
cacheSize: archiveFileSize
});
if ((_a = reserveCacheResponse === null || reserveCacheResponse === void 0 ? void 0 : reserveCacheResponse.result) === null || _a === void 0 ? void 0 : _a.cacheId) {
@@ -248,29 +223,6 @@ exports.saveCache = saveCache;
"use strict";
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- var desc = Object.getOwnPropertyDescriptor(m, k);
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
- desc = { enumerable: true, get: function() { return m[k]; } };
- }
- Object.defineProperty(o, k2, desc);
-}) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
-}));
-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
-}) : function(o, v) {
- o["default"] = v;
-});
-var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
-};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
@@ -280,8 +232,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
+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 }));
-exports.saveCache = exports.reserveCache = exports.downloadCache = exports.getCacheEntry = exports.getCacheVersion = void 0;
const core = __importStar(__nccwpck_require__(2186));
const http_client_1 = __nccwpck_require__(1825);
const auth_1 = __nccwpck_require__(2001);
@@ -289,6 +247,7 @@ const crypto = __importStar(__nccwpck_require__(6113));
const fs = __importStar(__nccwpck_require__(7147));
const url_1 = __nccwpck_require__(7310);
const utils = __importStar(__nccwpck_require__(1518));
+const constants_1 = __nccwpck_require__(8840);
const downloadUtils_1 = __nccwpck_require__(5500);
const options_1 = __nccwpck_require__(6215);
const requestUtils_1 = __nccwpck_require__(3981);
@@ -318,43 +277,33 @@ function createHttpClient() {
const bearerCredentialHandler = new auth_1.BearerCredentialHandler(token);
return new http_client_1.HttpClient('actions/cache', [bearerCredentialHandler], getRequestOptions());
}
-function getCacheVersion(paths, compressionMethod, enableCrossOsArchive = false) {
- const components = paths;
- // Add compression method to cache version to restore
- // compressed cache as per compression method
- if (compressionMethod) {
- components.push(compressionMethod);
- }
- // Only check for windows platforms if enableCrossOsArchive is false
- if (process.platform === 'win32' && !enableCrossOsArchive) {
- components.push('windows-only');
- }
+function getCacheVersion(paths, compressionMethod) {
+ const components = paths.concat(!compressionMethod || compressionMethod === constants_1.CompressionMethod.Gzip
+ ? []
+ : [compressionMethod]);
// Add salt to cache version to support breaking changes in cache entry
components.push(versionSalt);
- return crypto.createHash('sha256').update(components.join('|')).digest('hex');
+ return crypto
+ .createHash('sha256')
+ .update(components.join('|'))
+ .digest('hex');
}
exports.getCacheVersion = getCacheVersion;
function getCacheEntry(keys, paths, options) {
return __awaiter(this, void 0, void 0, function* () {
const httpClient = createHttpClient();
- const version = getCacheVersion(paths, options === null || options === void 0 ? void 0 : options.compressionMethod, options === null || options === void 0 ? void 0 : options.enableCrossOsArchive);
+ const version = getCacheVersion(paths, options === null || options === void 0 ? void 0 : options.compressionMethod);
const resource = `cache?keys=${encodeURIComponent(keys.join(','))}&version=${version}`;
- const response = yield (0, requestUtils_1.retryTypedResponse)('getCacheEntry', () => __awaiter(this, void 0, void 0, function* () { return httpClient.getJson(getCacheApiUrl(resource)); }));
- // Cache not found
+ const response = yield requestUtils_1.retryTypedResponse('getCacheEntry', () => __awaiter(this, void 0, void 0, function* () { return httpClient.getJson(getCacheApiUrl(resource)); }));
if (response.statusCode === 204) {
- // List cache for primary key only if cache miss occurs
- if (core.isDebug()) {
- yield printCachesListForDiagnostics(keys[0], httpClient, version);
- }
return null;
}
- if (!(0, requestUtils_1.isSuccessStatusCode)(response.statusCode)) {
+ if (!requestUtils_1.isSuccessStatusCode(response.statusCode)) {
throw new Error(`Cache service responded with ${response.statusCode}`);
}
const cacheResult = response.result;
const cacheDownloadUrl = cacheResult === null || cacheResult === void 0 ? void 0 : cacheResult.archiveLocation;
if (!cacheDownloadUrl) {
- // Cache achiveLocation not found. This should never happen, and hence bail out.
throw new Error('Cache not found.');
}
core.setSecret(cacheDownloadUrl);
@@ -364,42 +313,18 @@ function getCacheEntry(keys, paths, options) {
});
}
exports.getCacheEntry = getCacheEntry;
-function printCachesListForDiagnostics(key, httpClient, version) {
- return __awaiter(this, void 0, void 0, function* () {
- const resource = `caches?key=${encodeURIComponent(key)}`;
- const response = yield (0, requestUtils_1.retryTypedResponse)('listCache', () => __awaiter(this, void 0, void 0, function* () { return httpClient.getJson(getCacheApiUrl(resource)); }));
- if (response.statusCode === 200) {
- const cacheListResult = response.result;
- const totalCount = cacheListResult === null || cacheListResult === void 0 ? void 0 : cacheListResult.totalCount;
- if (totalCount && totalCount > 0) {
- core.debug(`No matching cache found for cache key '${key}', version '${version} and scope ${process.env['GITHUB_REF']}. There exist one or more cache(s) with similar key but they have different version or scope. See more info on cache matching here: https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#matching-a-cache-key \nOther caches with similar key:`);
- for (const cacheEntry of (cacheListResult === null || cacheListResult === void 0 ? void 0 : cacheListResult.artifactCaches) || []) {
- core.debug(`Cache Key: ${cacheEntry === null || cacheEntry === void 0 ? void 0 : cacheEntry.cacheKey}, Cache Version: ${cacheEntry === null || cacheEntry === void 0 ? void 0 : cacheEntry.cacheVersion}, Cache Scope: ${cacheEntry === null || cacheEntry === void 0 ? void 0 : cacheEntry.scope}, Cache Created: ${cacheEntry === null || cacheEntry === void 0 ? void 0 : cacheEntry.creationTime}`);
- }
- }
- }
- });
-}
function downloadCache(archiveLocation, archivePath, options) {
return __awaiter(this, void 0, void 0, function* () {
const archiveUrl = new url_1.URL(archiveLocation);
- const downloadOptions = (0, options_1.getDownloadOptions)(options);
- if (archiveUrl.hostname.endsWith('.blob.core.windows.net')) {
- if (downloadOptions.useAzureSdk) {
- // Use Azure storage SDK to download caches hosted on Azure to improve speed and reliability.
- yield (0, downloadUtils_1.downloadCacheStorageSDK)(archiveLocation, archivePath, downloadOptions);
- }
- else if (downloadOptions.concurrentBlobDownloads) {
- // Use concurrent implementation with HttpClient to work around blob SDK issue
- yield (0, downloadUtils_1.downloadCacheHttpClientConcurrent)(archiveLocation, archivePath, downloadOptions);
- }
- else {
- // Otherwise, download using the Actions http-client.
- yield (0, downloadUtils_1.downloadCacheHttpClient)(archiveLocation, archivePath);
- }
+ const downloadOptions = options_1.getDownloadOptions(options);
+ if (downloadOptions.useAzureSdk &&
+ archiveUrl.hostname.endsWith('.blob.core.windows.net')) {
+ // Use Azure storage SDK to download caches hosted on Azure to improve speed and reliability.
+ yield downloadUtils_1.downloadCacheStorageSDK(archiveLocation, archivePath, downloadOptions);
}
else {
- yield (0, downloadUtils_1.downloadCacheHttpClient)(archiveLocation, archivePath);
+ // Otherwise, download using the Actions http-client.
+ yield downloadUtils_1.downloadCacheHttpClient(archiveLocation, archivePath);
}
});
}
@@ -408,13 +333,13 @@ exports.downloadCache = downloadCache;
function reserveCache(key, paths, options) {
return __awaiter(this, void 0, void 0, function* () {
const httpClient = createHttpClient();
- const version = getCacheVersion(paths, options === null || options === void 0 ? void 0 : options.compressionMethod, options === null || options === void 0 ? void 0 : options.enableCrossOsArchive);
+ const version = getCacheVersion(paths, options === null || options === void 0 ? void 0 : options.compressionMethod);
const reserveCacheRequest = {
key,
version,
cacheSize: options === null || options === void 0 ? void 0 : options.cacheSize
};
- const response = yield (0, requestUtils_1.retryTypedResponse)('reserveCache', () => __awaiter(this, void 0, void 0, function* () {
+ const response = yield requestUtils_1.retryTypedResponse('reserveCache', () => __awaiter(this, void 0, void 0, function* () {
return httpClient.postJson(getCacheApiUrl('caches'), reserveCacheRequest);
}));
return response;
@@ -431,15 +356,17 @@ function getContentRange(start, end) {
}
function uploadChunk(httpClient, resourceUrl, openStream, start, end) {
return __awaiter(this, void 0, void 0, function* () {
- core.debug(`Uploading chunk of size ${end - start + 1} bytes at offset ${start} with content range: ${getContentRange(start, end)}`);
+ core.debug(`Uploading chunk of size ${end -
+ start +
+ 1} bytes at offset ${start} with content range: ${getContentRange(start, end)}`);
const additionalHeaders = {
'Content-Type': 'application/octet-stream',
'Content-Range': getContentRange(start, end)
};
- const uploadChunkResponse = yield (0, requestUtils_1.retryHttpClientResponse)(`uploadChunk (start: ${start}, end: ${end})`, () => __awaiter(this, void 0, void 0, function* () {
+ const uploadChunkResponse = yield requestUtils_1.retryHttpClientResponse(`uploadChunk (start: ${start}, end: ${end})`, () => __awaiter(this, void 0, void 0, function* () {
return httpClient.sendStream('PATCH', resourceUrl, openStream(), additionalHeaders);
}));
- if (!(0, requestUtils_1.isSuccessStatusCode)(uploadChunkResponse.message.statusCode)) {
+ if (!requestUtils_1.isSuccessStatusCode(uploadChunkResponse.message.statusCode)) {
throw new Error(`Cache service responded with ${uploadChunkResponse.message.statusCode} during upload chunk.`);
}
});
@@ -450,7 +377,7 @@ function uploadFile(httpClient, cacheId, archivePath, options) {
const fileSize = utils.getArchiveFileSizeInBytes(archivePath);
const resourceUrl = getCacheApiUrl(`caches/${cacheId.toString()}`);
const fd = fs.openSync(archivePath, 'r');
- const uploadOptions = (0, options_1.getUploadOptions)(options);
+ const uploadOptions = options_1.getUploadOptions(options);
const concurrency = utils.assertDefined('uploadConcurrency', uploadOptions.uploadConcurrency);
const maxChunkSize = utils.assertDefined('uploadChunkSize', uploadOptions.uploadChunkSize);
const parallelUploads = [...new Array(concurrency).keys()];
@@ -485,7 +412,7 @@ function uploadFile(httpClient, cacheId, archivePath, options) {
function commitCache(httpClient, cacheId, filesize) {
return __awaiter(this, void 0, void 0, function* () {
const commitCacheRequest = { size: filesize };
- return yield (0, requestUtils_1.retryTypedResponse)('commitCache', () => __awaiter(this, void 0, void 0, function* () {
+ return yield requestUtils_1.retryTypedResponse('commitCache', () => __awaiter(this, void 0, void 0, function* () {
return httpClient.postJson(getCacheApiUrl(`caches/${cacheId.toString()}`), commitCacheRequest);
}));
});
@@ -500,7 +427,7 @@ function saveCache(cacheId, archivePath, options) {
const cacheSize = utils.getArchiveFileSizeInBytes(archivePath);
core.info(`Cache Size: ~${Math.round(cacheSize / (1024 * 1024))} MB (${cacheSize} B)`);
const commitCacheResponse = yield commitCache(httpClient, cacheId, cacheSize);
- if (!(0, requestUtils_1.isSuccessStatusCode)(commitCacheResponse.statusCode)) {
+ if (!requestUtils_1.isSuccessStatusCode(commitCacheResponse.statusCode)) {
throw new Error(`Cache service responded with ${commitCacheResponse.statusCode} during commit cache.`);
}
core.info('Cache saved successfully');
@@ -516,29 +443,6 @@ exports.saveCache = saveCache;
"use strict";
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- var desc = Object.getOwnPropertyDescriptor(m, k);
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
- desc = { enumerable: true, get: function() { return m[k]; } };
- }
- Object.defineProperty(o, k2, desc);
-}) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
-}));
-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
-}) : function(o, v) {
- o["default"] = v;
-});
-var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
-};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
@@ -555,8 +459,14 @@ var __asyncValues = (this && this.__asyncValues) || function (o) {
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
};
+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 }));
-exports.isGhes = exports.assertDefined = exports.getGnuTarPathOnWindows = exports.getCacheFileName = exports.getCompressionMethod = exports.unlinkFile = exports.resolvePaths = exports.getArchiveFileSizeInBytes = exports.createTempDirectory = void 0;
const core = __importStar(__nccwpck_require__(2186));
const exec = __importStar(__nccwpck_require__(1514));
const glob = __importStar(__nccwpck_require__(1597));
@@ -588,7 +498,7 @@ function createTempDirectory() {
}
tempDirectory = path.join(baseLocation, 'actions', 'temp');
}
- const dest = path.join(tempDirectory, (0, uuid_1.v4)());
+ const dest = path.join(tempDirectory, uuid_1.v4());
yield io.mkdirP(dest);
return dest;
});
@@ -599,42 +509,35 @@ function getArchiveFileSizeInBytes(filePath) {
}
exports.getArchiveFileSizeInBytes = getArchiveFileSizeInBytes;
function resolvePaths(patterns) {
- var _a, e_1, _b, _c;
- var _d;
+ var e_1, _a;
+ var _b;
return __awaiter(this, void 0, void 0, function* () {
const paths = [];
- const workspace = (_d = process.env['GITHUB_WORKSPACE']) !== null && _d !== void 0 ? _d : process.cwd();
+ const workspace = (_b = process.env['GITHUB_WORKSPACE']) !== null && _b !== void 0 ? _b : process.cwd();
const globber = yield glob.create(patterns.join('\n'), {
implicitDescendants: false
});
try {
- for (var _e = true, _f = __asyncValues(globber.globGenerator()), _g; _g = yield _f.next(), _a = _g.done, !_a;) {
- _c = _g.value;
- _e = false;
- try {
- const file = _c;
- const relativeFile = path
- .relative(workspace, file)
- .replace(new RegExp(`\\${path.sep}`, 'g'), '/');
- core.debug(`Matched: ${relativeFile}`);
- // Paths are made relative so the tar entries are all relative to the root of the workspace.
- if (relativeFile === '') {
- // path.relative returns empty string if workspace and file are equal
- paths.push('.');
- }
- else {
- paths.push(`${relativeFile}`);
- }
+ for (var _c = __asyncValues(globber.globGenerator()), _d; _d = yield _c.next(), !_d.done;) {
+ const file = _d.value;
+ const relativeFile = path
+ .relative(workspace, file)
+ .replace(new RegExp(`\\${path.sep}`, 'g'), '/');
+ core.debug(`Matched: ${relativeFile}`);
+ // Paths are made relative so the tar entries are all relative to the root of the workspace.
+ if (relativeFile === '') {
+ // path.relative returns empty string if workspace and file are equal
+ paths.push('.');
}
- finally {
- _e = true;
+ else {
+ paths.push(`${relativeFile}`);
}
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
- if (!_e && !_a && (_b = _f.return)) yield _b.call(_f);
+ if (_d && !_d.done && (_a = _c.return)) yield _a.call(_c);
}
finally { if (e_1) throw e_1.error; }
}
@@ -648,13 +551,12 @@ function unlinkFile(filePath) {
});
}
exports.unlinkFile = unlinkFile;
-function getVersion(app, additionalArgs = []) {
+function getVersion(app) {
return __awaiter(this, void 0, void 0, function* () {
+ core.debug(`Checking ${app} --version`);
let versionOutput = '';
- additionalArgs.push('--version');
- core.debug(`Checking ${app} ${additionalArgs.join(' ')}`);
try {
- yield exec.exec(`${app}`, additionalArgs, {
+ yield exec.exec(`${app} --version`, [], {
ignoreReturnCode: true,
silent: true,
listeners: {
@@ -674,15 +576,24 @@ function getVersion(app, additionalArgs = []) {
// Use zstandard if possible to maximize cache performance
function getCompressionMethod() {
return __awaiter(this, void 0, void 0, function* () {
- const versionOutput = yield getVersion('zstd', ['--quiet']);
+ if (process.platform === 'win32' && !(yield isGnuTarInstalled())) {
+ // Disable zstd due to bug https://github.com/actions/cache/issues/301
+ return constants_1.CompressionMethod.Gzip;
+ }
+ const versionOutput = yield getVersion('zstd');
const version = semver.clean(versionOutput);
- core.debug(`zstd version: ${version}`);
- if (versionOutput === '') {
+ if (!versionOutput.toLowerCase().includes('zstd command line interface')) {
+ // zstd is not installed
return constants_1.CompressionMethod.Gzip;
}
- else {
+ else if (!version || semver.lt(version, 'v1.3.2')) {
+ // zstd is installed but using a version earlier than v1.3.2
+ // v1.3.2 is required to use the `--long` options in zstd
return constants_1.CompressionMethod.ZstdWithoutLong;
}
+ else {
+ return constants_1.CompressionMethod.Zstd;
+ }
});
}
exports.getCompressionMethod = getCompressionMethod;
@@ -692,16 +603,13 @@ function getCacheFileName(compressionMethod) {
: constants_1.CacheFilename.Zstd;
}
exports.getCacheFileName = getCacheFileName;
-function getGnuTarPathOnWindows() {
+function isGnuTarInstalled() {
return __awaiter(this, void 0, void 0, function* () {
- if (fs.existsSync(constants_1.GnuTarPathOnWindows)) {
- return constants_1.GnuTarPathOnWindows;
- }
const versionOutput = yield getVersion('tar');
- return versionOutput.toLowerCase().includes('gnu tar') ? io.which('tar') : '';
+ return versionOutput.toLowerCase().includes('gnu tar');
});
}
-exports.getGnuTarPathOnWindows = getGnuTarPathOnWindows;
+exports.isGnuTarInstalled = isGnuTarInstalled;
function assertDefined(name, value) {
if (value === undefined) {
throw Error(`Expected ${name} but value was undefiend`);
@@ -724,7 +632,6 @@ exports.isGhes = isGhes;
"use strict";
Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.ManifestFilename = exports.TarFilename = exports.SystemTarPathOnWindows = exports.GnuTarPathOnWindows = exports.SocketTimeout = exports.DefaultRetryDelay = exports.DefaultRetryAttempts = exports.ArchiveToolType = exports.CompressionMethod = exports.CacheFilename = void 0;
var CacheFilename;
(function (CacheFilename) {
CacheFilename["Gzip"] = "cache.tgz";
@@ -738,11 +645,6 @@ var CompressionMethod;
CompressionMethod["ZstdWithoutLong"] = "zstd-without-long";
CompressionMethod["Zstd"] = "zstd";
})(CompressionMethod = exports.CompressionMethod || (exports.CompressionMethod = {}));
-var ArchiveToolType;
-(function (ArchiveToolType) {
- ArchiveToolType["GNU"] = "gnu";
- ArchiveToolType["BSD"] = "bsd";
-})(ArchiveToolType = exports.ArchiveToolType || (exports.ArchiveToolType = {}));
// The default number of retry attempts.
exports.DefaultRetryAttempts = 2;
// The default delay in milliseconds between retry attempts.
@@ -751,12 +653,6 @@ exports.DefaultRetryDelay = 5000;
// over the socket during this period, the socket is destroyed and the download
// is aborted.
exports.SocketTimeout = 5000;
-// The default path of GNUtar on hosted Windows runners
-exports.GnuTarPathOnWindows = `${process.env['PROGRAMFILES']}\\Git\\usr\\bin\\tar.exe`;
-// The default path of BSDtar on hosted Windows runners
-exports.SystemTarPathOnWindows = `${process.env['SYSTEMDRIVE']}\\Windows\\System32\\tar.exe`;
-exports.TarFilename = 'cache.tar';
-exports.ManifestFilename = 'manifest.txt';
//# sourceMappingURL=constants.js.map
/***/ }),
@@ -766,29 +662,6 @@ exports.ManifestFilename = 'manifest.txt';
"use strict";
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- var desc = Object.getOwnPropertyDescriptor(m, k);
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
- desc = { enumerable: true, get: function() { return m[k]; } };
- }
- Object.defineProperty(o, k2, desc);
-}) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
-}));
-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
-}) : function(o, v) {
- o["default"] = v;
-});
-var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
-};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
@@ -798,8 +671,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
+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 }));
-exports.downloadCacheStorageSDK = exports.downloadCacheHttpClientConcurrent = exports.downloadCacheHttpClient = exports.DownloadProgress = void 0;
const core = __importStar(__nccwpck_require__(2186));
const http_client_1 = __nccwpck_require__(1825);
const storage_blob_1 = __nccwpck_require__(4100);
@@ -934,7 +813,7 @@ function downloadCacheHttpClient(archiveLocation, archivePath) {
return __awaiter(this, void 0, void 0, function* () {
const writeStream = fs.createWriteStream(archivePath);
const httpClient = new http_client_1.HttpClient('actions/cache');
- const downloadResponse = yield (0, requestUtils_1.retryHttpClientResponse)('downloadCache', () => __awaiter(this, void 0, void 0, function* () { return httpClient.get(archiveLocation); }));
+ const downloadResponse = yield requestUtils_1.retryHttpClientResponse('downloadCache', () => __awaiter(this, void 0, void 0, function* () { return httpClient.get(archiveLocation); }));
// Abort download if no traffic received over the socket.
downloadResponse.message.socket.setTimeout(constants_1.SocketTimeout, () => {
downloadResponse.message.destroy();
@@ -956,115 +835,6 @@ function downloadCacheHttpClient(archiveLocation, archivePath) {
});
}
exports.downloadCacheHttpClient = downloadCacheHttpClient;
-/**
- * Download the cache using the Actions toolkit http-client concurrently
- *
- * @param archiveLocation the URL for the cache
- * @param archivePath the local path where the cache is saved
- */
-function downloadCacheHttpClientConcurrent(archiveLocation, archivePath, options) {
- var _a;
- return __awaiter(this, void 0, void 0, function* () {
- const archiveDescriptor = yield fs.promises.open(archivePath, 'w');
- const httpClient = new http_client_1.HttpClient('actions/cache', undefined, {
- socketTimeout: options.timeoutInMs,
- keepAlive: true
- });
- try {
- const res = yield (0, requestUtils_1.retryHttpClientResponse)('downloadCacheMetadata', () => __awaiter(this, void 0, void 0, function* () { return yield httpClient.request('HEAD', archiveLocation, null, {}); }));
- const lengthHeader = res.message.headers['content-length'];
- if (lengthHeader === undefined || lengthHeader === null) {
- throw new Error('Content-Length not found on blob response');
- }
- const length = parseInt(lengthHeader);
- if (Number.isNaN(length)) {
- throw new Error(`Could not interpret Content-Length: ${length}`);
- }
- const downloads = [];
- const blockSize = 4 * 1024 * 1024;
- for (let offset = 0; offset < length; offset += blockSize) {
- const count = Math.min(blockSize, length - offset);
- downloads.push({
- offset,
- promiseGetter: () => __awaiter(this, void 0, void 0, function* () {
- return yield downloadSegmentRetry(httpClient, archiveLocation, offset, count);
- })
- });
- }
- // reverse to use .pop instead of .shift
- downloads.reverse();
- let actives = 0;
- let bytesDownloaded = 0;
- const progress = new DownloadProgress(length);
- progress.startDisplayTimer();
- const progressFn = progress.onProgress();
- const activeDownloads = [];
- let nextDownload;
- const waitAndWrite = () => __awaiter(this, void 0, void 0, function* () {
- const segment = yield Promise.race(Object.values(activeDownloads));
- yield archiveDescriptor.write(segment.buffer, 0, segment.count, segment.offset);
- actives--;
- delete activeDownloads[segment.offset];
- bytesDownloaded += segment.count;
- progressFn({ loadedBytes: bytesDownloaded });
- });
- while ((nextDownload = downloads.pop())) {
- activeDownloads[nextDownload.offset] = nextDownload.promiseGetter();
- actives++;
- if (actives >= ((_a = options.downloadConcurrency) !== null && _a !== void 0 ? _a : 10)) {
- yield waitAndWrite();
- }
- }
- while (actives > 0) {
- yield waitAndWrite();
- }
- }
- finally {
- httpClient.dispose();
- yield archiveDescriptor.close();
- }
- });
-}
-exports.downloadCacheHttpClientConcurrent = downloadCacheHttpClientConcurrent;
-function downloadSegmentRetry(httpClient, archiveLocation, offset, count) {
- return __awaiter(this, void 0, void 0, function* () {
- const retries = 5;
- let failures = 0;
- while (true) {
- try {
- const timeout = 30000;
- const result = yield promiseWithTimeout(timeout, downloadSegment(httpClient, archiveLocation, offset, count));
- if (typeof result === 'string') {
- throw new Error('downloadSegmentRetry failed due to timeout');
- }
- return result;
- }
- catch (err) {
- if (failures >= retries) {
- throw err;
- }
- failures++;
- }
- }
- });
-}
-function downloadSegment(httpClient, archiveLocation, offset, count) {
- return __awaiter(this, void 0, void 0, function* () {
- const partRes = yield (0, requestUtils_1.retryHttpClientResponse)('downloadCachePart', () => __awaiter(this, void 0, void 0, function* () {
- return yield httpClient.get(archiveLocation, {
- Range: `bytes=${offset}-${offset + count - 1}`
- });
- }));
- if (!partRes.readBodyBuffer) {
- throw new Error('Expected HttpClientResponse to implement readBodyBuffer');
- }
- return {
- offset,
- count,
- buffer: yield partRes.readBodyBuffer()
- };
- });
-}
/**
* Download the cache using the Azure Storage SDK. Only call this method if the
* URL points to an Azure Storage endpoint.
@@ -1098,8 +868,7 @@ function downloadCacheStorageSDK(archiveLocation, archivePath, options) {
// If the file exceeds the buffer maximum length (~1 GB on 32-bit systems and ~2 GB
// on 64-bit systems), split the download into multiple segments
// ~2 GB = 2147483647, beyond this, we start getting out of range error. So, capping it accordingly.
- // Updated segment size to 128MB = 134217728 bytes, to complete a segment faster and fail fast
- const maxSegmentSize = Math.min(134217728, buffer.constants.MAX_LENGTH);
+ const maxSegmentSize = Math.min(2147483647, buffer.constants.MAX_LENGTH);
const downloadProgress = new DownloadProgress(contentLength);
const fd = fs.openSync(archivePath, 'w');
try {
@@ -1151,29 +920,6 @@ const promiseWithTimeout = (timeoutMs, promise) => __awaiter(void 0, void 0, voi
"use strict";
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- var desc = Object.getOwnPropertyDescriptor(m, k);
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
- desc = { enumerable: true, get: function() { return m[k]; } };
- }
- Object.defineProperty(o, k2, desc);
-}) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
-}));
-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
-}) : function(o, v) {
- o["default"] = v;
-});
-var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
-};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
@@ -1183,8 +929,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
+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 }));
-exports.retryHttpClientResponse = exports.retryTypedResponse = exports.retry = exports.isRetryableStatusCode = exports.isServerErrorStatusCode = exports.isSuccessStatusCode = void 0;
const core = __importStar(__nccwpck_require__(2186));
const http_client_1 = __nccwpck_require__(1825);
const constants_1 = __nccwpck_require__(8840);
@@ -1295,29 +1047,6 @@ exports.retryHttpClientResponse = retryHttpClientResponse;
"use strict";
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- var desc = Object.getOwnPropertyDescriptor(m, k);
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
- desc = { enumerable: true, get: function() { return m[k]; } };
- }
- Object.defineProperty(o, k2, desc);
-}) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
-}));
-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
-}) : function(o, v) {
- o["default"] = v;
-});
-var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
-};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
@@ -1327,8 +1056,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
+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 }));
-exports.createTar = exports.extractTar = exports.listTar = void 0;
const exec_1 = __nccwpck_require__(1514);
const io = __importStar(__nccwpck_require__(7436));
const fs_1 = __nccwpck_require__(7147);
@@ -1336,19 +1071,21 @@ const path = __importStar(__nccwpck_require__(1017));
const utils = __importStar(__nccwpck_require__(1518));
const constants_1 = __nccwpck_require__(8840);
const IS_WINDOWS = process.platform === 'win32';
-// Returns tar path and type: BSD or GNU
-function getTarPath() {
+function getTarPath(args, compressionMethod) {
return __awaiter(this, void 0, void 0, function* () {
switch (process.platform) {
case 'win32': {
- const gnuTar = yield utils.getGnuTarPathOnWindows();
- const systemTar = constants_1.SystemTarPathOnWindows;
- if (gnuTar) {
- // Use GNUtar as default on windows
- return { path: gnuTar, type: constants_1.ArchiveToolType.GNU };
+ const systemTar = `${process.env['windir']}\\System32\\tar.exe`;
+ if (compressionMethod !== constants_1.CompressionMethod.Gzip) {
+ // We only use zstandard compression on windows when gnu tar is installed due to
+ // a bug with compressing large files with bsdtar + zstd
+ args.push('--force-local');
}
- else if ((0, fs_1.existsSync)(systemTar)) {
- return { path: systemTar, type: constants_1.ArchiveToolType.BSD };
+ else if (fs_1.existsSync(systemTar)) {
+ return systemTar;
+ }
+ else if (yield utils.isGnuTarInstalled()) {
+ args.push('--force-local');
}
break;
}
@@ -1356,92 +1093,25 @@ function getTarPath() {
const gnuTar = yield io.which('gtar', false);
if (gnuTar) {
// fix permission denied errors when extracting BSD tar archive with GNU tar - https://github.com/actions/cache/issues/527
- return { path: gnuTar, type: constants_1.ArchiveToolType.GNU };
- }
- else {
- return {
- path: yield io.which('tar', true),
- type: constants_1.ArchiveToolType.BSD
- };
+ args.push('--delay-directory-restore');
+ return gnuTar;
}
+ break;
}
default:
break;
}
- // Default assumption is GNU tar is present in path
- return {
- path: yield io.which('tar', true),
- type: constants_1.ArchiveToolType.GNU
- };
- });
-}
-// Return arguments for tar as per tarPath, compressionMethod, method type and os
-function getTarArgs(tarPath, compressionMethod, type, archivePath = '') {
- return __awaiter(this, void 0, void 0, function* () {
- const args = [`"${tarPath.path}"`];
- const cacheFileName = utils.getCacheFileName(compressionMethod);
- const tarFile = 'cache.tar';
- const workingDirectory = getWorkingDirectory();
- // Speficic args for BSD tar on windows for workaround
- const BSD_TAR_ZSTD = tarPath.type === constants_1.ArchiveToolType.BSD &&
- compressionMethod !== constants_1.CompressionMethod.Gzip &&
- IS_WINDOWS;
- // Method specific args
- switch (type) {
- case 'create':
- args.push('--posix', '-cf', BSD_TAR_ZSTD
- ? tarFile
- : cacheFileName.replace(new RegExp(`\\${path.sep}`, 'g'), '/'), '--exclude', BSD_TAR_ZSTD
- ? tarFile
- : cacheFileName.replace(new RegExp(`\\${path.sep}`, 'g'), '/'), '-P', '-C', workingDirectory.replace(new RegExp(`\\${path.sep}`, 'g'), '/'), '--files-from', constants_1.ManifestFilename);
- break;
- case 'extract':
- args.push('-xf', BSD_TAR_ZSTD
- ? tarFile
- : archivePath.replace(new RegExp(`\\${path.sep}`, 'g'), '/'), '-P', '-C', workingDirectory.replace(new RegExp(`\\${path.sep}`, 'g'), '/'));
- break;
- case 'list':
- args.push('-tf', BSD_TAR_ZSTD
- ? tarFile
- : archivePath.replace(new RegExp(`\\${path.sep}`, 'g'), '/'), '-P');
- break;
- }
- // Platform specific args
- if (tarPath.type === constants_1.ArchiveToolType.GNU) {
- switch (process.platform) {
- case 'win32':
- args.push('--force-local');
- break;
- case 'darwin':
- args.push('--delay-directory-restore');
- break;
- }
- }
- return args;
+ return yield io.which('tar', true);
});
}
-// Returns commands to run tar and compression program
-function getCommands(compressionMethod, type, archivePath = '') {
+function execTar(args, compressionMethod, cwd) {
return __awaiter(this, void 0, void 0, function* () {
- let args;
- const tarPath = yield getTarPath();
- const tarArgs = yield getTarArgs(tarPath, compressionMethod, type, archivePath);
- const compressionArgs = type !== 'create'
- ? yield getDecompressionProgram(tarPath, compressionMethod, archivePath)
- : yield getCompressionProgram(tarPath, compressionMethod);
- const BSD_TAR_ZSTD = tarPath.type === constants_1.ArchiveToolType.BSD &&
- compressionMethod !== constants_1.CompressionMethod.Gzip &&
- IS_WINDOWS;
- if (BSD_TAR_ZSTD && type !== 'create') {
- args = [[...compressionArgs].join(' '), [...tarArgs].join(' ')];
- }
- else {
- args = [[...tarArgs].join(' '), [...compressionArgs].join(' ')];
+ try {
+ yield exec_1.exec(`"${yield getTarPath(args, compressionMethod)}"`, args, { cwd });
}
- if (BSD_TAR_ZSTD) {
- return args;
+ catch (error) {
+ throw new Error(`Tar failed with error: ${error === null || error === void 0 ? void 0 : error.message}`);
}
- return [args.join(' ')];
});
}
function getWorkingDirectory() {
@@ -1449,119 +1119,91 @@ function getWorkingDirectory() {
return (_a = process.env['GITHUB_WORKSPACE']) !== null && _a !== void 0 ? _a : process.cwd();
}
// Common function for extractTar and listTar to get the compression method
-function getDecompressionProgram(tarPath, compressionMethod, archivePath) {
- return __awaiter(this, void 0, void 0, function* () {
- // -d: Decompress.
- // unzstd is equivalent to 'zstd -d'
- // --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
- // Using 30 here because we also support 32-bit self-hosted runners.
- const BSD_TAR_ZSTD = tarPath.type === constants_1.ArchiveToolType.BSD &&
- compressionMethod !== constants_1.CompressionMethod.Gzip &&
- IS_WINDOWS;
- switch (compressionMethod) {
- case constants_1.CompressionMethod.Zstd:
- return BSD_TAR_ZSTD
- ? [
- 'zstd -d --long=30 --force -o',
- constants_1.TarFilename,
- archivePath.replace(new RegExp(`\\${path.sep}`, 'g'), '/')
- ]
- : [
- '--use-compress-program',
- IS_WINDOWS ? '"zstd -d --long=30"' : 'unzstd --long=30'
- ];
- case constants_1.CompressionMethod.ZstdWithoutLong:
- return BSD_TAR_ZSTD
- ? [
- 'zstd -d --force -o',
- constants_1.TarFilename,
- archivePath.replace(new RegExp(`\\${path.sep}`, 'g'), '/')
- ]
- : ['--use-compress-program', IS_WINDOWS ? '"zstd -d"' : 'unzstd'];
- default:
- return ['-z'];
- }
- });
-}
-// Used for creating the archive
-// -T#: Compress using # working thread. If # is 0, attempt to detect and use the number of physical CPU cores.
-// zstdmt is equivalent to 'zstd -T0'
-// --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
-// Using 30 here because we also support 32-bit self-hosted runners.
-// Long range mode is added to zstd in v1.3.2 release, so we will not use --long in older version of zstd.
-function getCompressionProgram(tarPath, compressionMethod) {
- return __awaiter(this, void 0, void 0, function* () {
- const cacheFileName = utils.getCacheFileName(compressionMethod);
- const BSD_TAR_ZSTD = tarPath.type === constants_1.ArchiveToolType.BSD &&
- compressionMethod !== constants_1.CompressionMethod.Gzip &&
- IS_WINDOWS;
- switch (compressionMethod) {
- case constants_1.CompressionMethod.Zstd:
- return BSD_TAR_ZSTD
- ? [
- 'zstd -T0 --long=30 --force -o',
- cacheFileName.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
- constants_1.TarFilename
- ]
- : [
- '--use-compress-program',
- IS_WINDOWS ? '"zstd -T0 --long=30"' : 'zstdmt --long=30'
- ];
- case constants_1.CompressionMethod.ZstdWithoutLong:
- return BSD_TAR_ZSTD
- ? [
- 'zstd -T0 --force -o',
- cacheFileName.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
- constants_1.TarFilename
- ]
- : ['--use-compress-program', IS_WINDOWS ? '"zstd -T0"' : 'zstdmt'];
- default:
- return ['-z'];
- }
- });
-}
-// Executes all commands as separate processes
-function execCommands(commands, cwd) {
- return __awaiter(this, void 0, void 0, function* () {
- for (const command of commands) {
- try {
- yield (0, exec_1.exec)(command, undefined, {
- cwd,
- env: Object.assign(Object.assign({}, process.env), { MSYS: 'winsymlinks:nativestrict' })
- });
- }
- catch (error) {
- throw new Error(`${command.split(' ')[0]} failed with error: ${error === null || error === void 0 ? void 0 : error.message}`);
- }
- }
- });
+function getCompressionProgram(compressionMethod) {
+ // -d: Decompress.
+ // unzstd is equivalent to 'zstd -d'
+ // --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
+ // Using 30 here because we also support 32-bit self-hosted runners.
+ switch (compressionMethod) {
+ case constants_1.CompressionMethod.Zstd:
+ return [
+ '--use-compress-program',
+ IS_WINDOWS ? 'zstd -d --long=30' : 'unzstd --long=30'
+ ];
+ case constants_1.CompressionMethod.ZstdWithoutLong:
+ return ['--use-compress-program', IS_WINDOWS ? 'zstd -d' : 'unzstd'];
+ default:
+ return ['-z'];
+ }
}
-// List the contents of a tar
function listTar(archivePath, compressionMethod) {
return __awaiter(this, void 0, void 0, function* () {
- const commands = yield getCommands(compressionMethod, 'list', archivePath);
- yield execCommands(commands);
+ const args = [
+ ...getCompressionProgram(compressionMethod),
+ '-tf',
+ archivePath.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
+ '-P'
+ ];
+ yield execTar(args, compressionMethod);
});
}
exports.listTar = listTar;
-// Extract a tar
function extractTar(archivePath, compressionMethod) {
return __awaiter(this, void 0, void 0, function* () {
// Create directory to extract tar into
const workingDirectory = getWorkingDirectory();
yield io.mkdirP(workingDirectory);
- const commands = yield getCommands(compressionMethod, 'extract', archivePath);
- yield execCommands(commands);
+ const args = [
+ ...getCompressionProgram(compressionMethod),
+ '-xf',
+ archivePath.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
+ '-P',
+ '-C',
+ workingDirectory.replace(new RegExp(`\\${path.sep}`, 'g'), '/')
+ ];
+ yield execTar(args, compressionMethod);
});
}
exports.extractTar = extractTar;
-// Create a tar
function createTar(archiveFolder, sourceDirectories, compressionMethod) {
return __awaiter(this, void 0, void 0, function* () {
// Write source directories to manifest.txt to avoid command length limits
- (0, fs_1.writeFileSync)(path.join(archiveFolder, constants_1.ManifestFilename), sourceDirectories.join('\n'));
- const commands = yield getCommands(compressionMethod, 'create');
- yield execCommands(commands, archiveFolder);
+ const manifestFilename = 'manifest.txt';
+ const cacheFileName = utils.getCacheFileName(compressionMethod);
+ fs_1.writeFileSync(path.join(archiveFolder, manifestFilename), sourceDirectories.join('\n'));
+ const workingDirectory = getWorkingDirectory();
+ // -T#: Compress using # working thread. If # is 0, attempt to detect and use the number of physical CPU cores.
+ // zstdmt is equivalent to 'zstd -T0'
+ // --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
+ // Using 30 here because we also support 32-bit self-hosted runners.
+ // Long range mode is added to zstd in v1.3.2 release, so we will not use --long in older version of zstd.
+ function getCompressionProgram() {
+ switch (compressionMethod) {
+ case constants_1.CompressionMethod.Zstd:
+ return [
+ '--use-compress-program',
+ IS_WINDOWS ? 'zstd -T0 --long=30' : 'zstdmt --long=30'
+ ];
+ case constants_1.CompressionMethod.ZstdWithoutLong:
+ return ['--use-compress-program', IS_WINDOWS ? 'zstd -T0' : 'zstdmt'];
+ default:
+ return ['-z'];
+ }
+ }
+ const args = [
+ '--posix',
+ ...getCompressionProgram(),
+ '-cf',
+ cacheFileName.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
+ '--exclude',
+ cacheFileName.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
+ '-P',
+ '-C',
+ workingDirectory.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
+ '--files-from',
+ manifestFilename
+ ];
+ yield execTar(args, compressionMethod, archiveFolder);
});
}
exports.createTar = createTar;
@@ -1574,31 +1216,14 @@ exports.createTar = createTar;
"use strict";
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- var desc = Object.getOwnPropertyDescriptor(m, k);
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
- desc = { enumerable: true, get: function() { return m[k]; } };
- }
- Object.defineProperty(o, k2, desc);
-}) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
-}));
-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
-}) : function(o, v) {
- o["default"] = v;
-});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
+ 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 }));
-exports.getDownloadOptions = exports.getUploadOptions = void 0;
const core = __importStar(__nccwpck_require__(2186));
/**
* Returns a copy of the upload options with defaults filled in.
@@ -1630,20 +1255,15 @@ exports.getUploadOptions = getUploadOptions;
*/
function getDownloadOptions(copy) {
const result = {
- useAzureSdk: false,
- concurrentBlobDownloads: true,
+ useAzureSdk: true,
downloadConcurrency: 8,
timeoutInMs: 30000,
- segmentTimeoutInMs: 600000,
- lookupOnly: false
+ segmentTimeoutInMs: 3600000
};
if (copy) {
if (typeof copy.useAzureSdk === 'boolean') {
result.useAzureSdk = copy.useAzureSdk;
}
- if (typeof copy.concurrentBlobDownloads === 'boolean') {
- result.concurrentBlobDownloads = copy.concurrentBlobDownloads;
- }
if (typeof copy.downloadConcurrency === 'number') {
result.downloadConcurrency = copy.downloadConcurrency;
}
@@ -1653,9 +1273,6 @@ function getDownloadOptions(copy) {
if (typeof copy.segmentTimeoutInMs === 'number') {
result.segmentTimeoutInMs = copy.segmentTimeoutInMs;
}
- if (typeof copy.lookupOnly === 'boolean') {
- result.lookupOnly = copy.lookupOnly;
- }
}
const segmentDownloadTimeoutMins = process.env['SEGMENT_DOWNLOAD_TIMEOUT_MINS'];
if (segmentDownloadTimeoutMins &&
@@ -1668,7 +1285,6 @@ function getDownloadOptions(copy) {
core.debug(`Request timeout (ms): ${result.timeoutInMs}`);
core.debug(`Cache segment download timeout mins env var: ${process.env['SEGMENT_DOWNLOAD_TIMEOUT_MINS']}`);
core.debug(`Segment download timeout (ms): ${result.segmentTimeoutInMs}`);
- core.debug(`Lookup only: ${result.lookupOnly}`);
return result;
}
exports.getDownloadOptions = getDownloadOptions;
@@ -2835,11 +2451,7 @@ exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHand
/* eslint-disable @typescript-eslint/no-explicit-any */
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
- var desc = Object.getOwnPropertyDescriptor(m, k);
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
- desc = { enumerable: true, get: function() { return m[k]; } };
- }
- Object.defineProperty(o, k2, desc);
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
@@ -2852,7 +2464,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
@@ -2871,7 +2483,6 @@ const http = __importStar(__nccwpck_require__(3685));
const https = __importStar(__nccwpck_require__(5687));
const pm = __importStar(__nccwpck_require__(4977));
const tunnel = __importStar(__nccwpck_require__(4294));
-const undici_1 = __nccwpck_require__(1773);
var HttpCodes;
(function (HttpCodes) {
HttpCodes[HttpCodes["OK"] = 200] = "OK";
@@ -2901,16 +2512,16 @@ var HttpCodes;
HttpCodes[HttpCodes["BadGateway"] = 502] = "BadGateway";
HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable";
HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout";
-})(HttpCodes || (exports.HttpCodes = HttpCodes = {}));
+})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));
var Headers;
(function (Headers) {
Headers["Accept"] = "accept";
Headers["ContentType"] = "content-type";
-})(Headers || (exports.Headers = Headers = {}));
+})(Headers = exports.Headers || (exports.Headers = {}));
var MediaTypes;
(function (MediaTypes) {
MediaTypes["ApplicationJson"] = "application/json";
-})(MediaTypes || (exports.MediaTypes = MediaTypes = {}));
+})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));
/**
* Returns the proxy URL, depending upon the supplied url and proxy environment variables.
* @param serverUrl The server URL where the request will be sent. For example, https://api.github.com
@@ -2961,19 +2572,6 @@ class HttpClientResponse {
}));
});
}
- readBodyBuffer() {
- return __awaiter(this, void 0, void 0, function* () {
- return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
- const chunks = [];
- this.message.on('data', (chunk) => {
- chunks.push(chunk);
- });
- this.message.on('end', () => {
- resolve(Buffer.concat(chunks));
- });
- }));
- });
- }
}
exports.HttpClientResponse = HttpClientResponse;
function isHttps(requestUrl) {
@@ -3279,15 +2877,6 @@ class HttpClient {
const parsedUrl = new URL(serverUrl);
return this._getAgent(parsedUrl);
}
- getAgentDispatcher(serverUrl) {
- const parsedUrl = new URL(serverUrl);
- const proxyUrl = pm.getProxyUrl(parsedUrl);
- const useProxy = proxyUrl && proxyUrl.hostname;
- if (!useProxy) {
- return;
- }
- return this._getProxyAgentDispatcher(parsedUrl, proxyUrl);
- }
_prepareRequest(method, requestUrl, headers) {
const info = {};
info.parsedUrl = requestUrl;
@@ -3387,30 +2976,6 @@ class HttpClient {
}
return agent;
}
- _getProxyAgentDispatcher(parsedUrl, proxyUrl) {
- let proxyAgent;
- if (this._keepAlive) {
- proxyAgent = this._proxyAgentDispatcher;
- }
- // if agent is already assigned use that agent.
- if (proxyAgent) {
- return proxyAgent;
- }
- const usingSsl = parsedUrl.protocol === 'https:';
- proxyAgent = new undici_1.ProxyAgent(Object.assign({ uri: proxyUrl.href, pipelining: !this._keepAlive ? 0 : 1 }, ((proxyUrl.username || proxyUrl.password) && {
- token: `${proxyUrl.username}:${proxyUrl.password}`
- })));
- this._proxyAgentDispatcher = proxyAgent;
- if (usingSsl && this._ignoreSslError) {
- // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process
- // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options
- // we have to cast it to any and change it directly
- proxyAgent.options = Object.assign(proxyAgent.options.requestTls || {}, {
- rejectUnauthorized: false
- });
- }
- return proxyAgent;
- }
_performExponentialBackoff(retryNumber) {
return __awaiter(this, void 0, void 0, function* () {
retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);
@@ -3511,13 +3076,7 @@ function getProxyUrl(reqUrl) {
}
})();
if (proxyVar) {
- try {
- return new URL(proxyVar);
- }
- catch (_a) {
- if (!proxyVar.startsWith('http://') && !proxyVar.startsWith('https://'))
- return new URL(`http://${proxyVar}`);
- }
+ return new URL(proxyVar);
}
else {
return undefined;
@@ -3528,10 +3087,6 @@ function checkBypass(reqUrl) {
if (!reqUrl.hostname) {
return false;
}
- const reqHost = reqUrl.hostname;
- if (isLoopbackAddress(reqHost)) {
- return true;
- }
const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';
if (!noProxy) {
return false;
@@ -3557,24 +3112,13 @@ function checkBypass(reqUrl) {
.split(',')
.map(x => x.trim().toUpperCase())
.filter(x => x)) {
- if (upperNoProxyItem === '*' ||
- upperReqHosts.some(x => x === upperNoProxyItem ||
- x.endsWith(`.${upperNoProxyItem}`) ||
- (upperNoProxyItem.startsWith('.') &&
- x.endsWith(`${upperNoProxyItem}`)))) {
+ if (upperReqHosts.some(x => x === upperNoProxyItem)) {
return true;
}
}
return false;
}
exports.checkBypass = checkBypass;
-function isLoopbackAddress(host) {
- const hostLower = host.toLowerCase();
- return (hostLower === 'localhost' ||
- hostLower.startsWith('127.') ||
- hostLower.startsWith('[::1]') ||
- hostLower.startsWith('[0:0:0:0:0:0:0:1]'));
-}
//# sourceMappingURL=proxy.js.map
/***/ }),
@@ -3610,11 +3154,8 @@ var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||
// Max safe segment length for coercion.
var MAX_SAFE_COMPONENT_LENGTH = 16
-var MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6
-
// The actual regexps go on exports.re
var re = exports.re = []
-var safeRe = exports.safeRe = []
var src = exports.src = []
var t = exports.tokens = {}
var R = 0
@@ -3623,31 +3164,6 @@ function tok (n) {
t[n] = R++
}
-var LETTERDASHNUMBER = '[a-zA-Z0-9-]'
-
-// Replace some greedy regex tokens to prevent regex dos issues. These regex are
-// used internally via the safeRe object since all inputs in this library get
-// normalized first to trim and collapse all extra whitespace. The original
-// regexes are exported for userland consumption and lower level usage. A
-// future breaking change could export the safer regex only with a note that
-// all input should have extra whitespace removed.
-var safeRegexReplacements = [
- ['\\s', 1],
- ['\\d', MAX_LENGTH],
- [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],
-]
-
-function makeSafeRe (value) {
- for (var i = 0; i < safeRegexReplacements.length; i++) {
- var token = safeRegexReplacements[i][0]
- var max = safeRegexReplacements[i][1]
- value = value
- .split(token + '*').join(token + '{0,' + max + '}')
- .split(token + '+').join(token + '{1,' + max + '}')
- }
- return value
-}
-
// The following Regular Expressions can be used for tokenizing,
// validating, and parsing SemVer version strings.
@@ -3657,14 +3173,14 @@ function makeSafeRe (value) {
tok('NUMERICIDENTIFIER')
src[t.NUMERICIDENTIFIER] = '0|[1-9]\\d*'
tok('NUMERICIDENTIFIERLOOSE')
-src[t.NUMERICIDENTIFIERLOOSE] = '\\d+'
+src[t.NUMERICIDENTIFIERLOOSE] = '[0-9]+'
// ## Non-numeric Identifier
// Zero or more digits, followed by a letter or hyphen, and then zero or
// more letters, digits, or hyphens.
tok('NONNUMERICIDENTIFIER')
-src[t.NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*'
+src[t.NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*'
// ## Main Version
// Three dot-separated numeric identifiers.
@@ -3706,7 +3222,7 @@ src[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +
// Any combination of digits, letters, or hyphens.
tok('BUILDIDENTIFIER')
-src[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+'
+src[t.BUILDIDENTIFIER] = '[0-9A-Za-z-]+'
// ## Build Metadata
// Plus sign, followed by one or more period-separated build metadata
@@ -3786,7 +3302,6 @@ src[t.COERCE] = '(^|[^\\d])' +
'(?:$|[^\\d])'
tok('COERCERTL')
re[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')
-safeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), 'g')
// Tilde ranges.
// Meaning is "reasonably at or greater than"
@@ -3796,7 +3311,6 @@ src[t.LONETILDE] = '(?:~>?)'
tok('TILDETRIM')
src[t.TILDETRIM] = '(\\s*)' + src[t.LONETILDE] + '\\s+'
re[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')
-safeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), 'g')
var tildeTrimReplace = '$1~'
tok('TILDE')
@@ -3812,7 +3326,6 @@ src[t.LONECARET] = '(?:\\^)'
tok('CARETTRIM')
src[t.CARETTRIM] = '(\\s*)' + src[t.LONECARET] + '\\s+'
re[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')
-safeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), 'g')
var caretTrimReplace = '$1^'
tok('CARET')
@@ -3834,7 +3347,6 @@ src[t.COMPARATORTRIM] = '(\\s*)' + src[t.GTLT] +
// this one has to use the /g flag
re[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')
-safeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g')
var comparatorTrimReplace = '$1$2$3'
// Something like `1.2.3 - 1.2.4`
@@ -3863,14 +3375,6 @@ for (var i = 0; i < R; i++) {
debug(i, src[i])
if (!re[i]) {
re[i] = new RegExp(src[i])
-
- // Replace all greedy whitespace to prevent regex dos issues. These regex are
- // used internally via the safeRe object since all inputs in this library get
- // normalized first to trim and collapse all extra whitespace. The original
- // regexes are exported for userland consumption and lower level usage. A
- // future breaking change could export the safer regex only with a note that
- // all input should have extra whitespace removed.
- safeRe[i] = new RegExp(makeSafeRe(src[i]))
}
}
@@ -3895,7 +3399,7 @@ function parse (version, options) {
return null
}
- var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]
+ var r = options.loose ? re[t.LOOSE] : re[t.FULL]
if (!r.test(version)) {
return null
}
@@ -3950,7 +3454,7 @@ function SemVer (version, options) {
this.options = options
this.loose = !!options.loose
- var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL])
+ var m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])
if (!m) {
throw new TypeError('Invalid Version: ' + version)
@@ -4395,7 +3899,6 @@ function Comparator (comp, options) {
return new Comparator(comp, options)
}
- comp = comp.trim().split(/\s+/).join(' ')
debug('comparator', comp, options)
this.options = options
this.loose = !!options.loose
@@ -4412,7 +3915,7 @@ function Comparator (comp, options) {
var ANY = {}
Comparator.prototype.parse = function (comp) {
- var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]
+ var r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]
var m = comp.match(r)
if (!m) {
@@ -4536,16 +4039,9 @@ function Range (range, options) {
this.loose = !!options.loose
this.includePrerelease = !!options.includePrerelease
- // First reduce all whitespace as much as possible so we do not have to rely
- // on potentially slow regexes like \s*. This is then stored and used for
- // future error messages as well.
- this.raw = range
- .trim()
- .split(/\s+/)
- .join(' ')
-
// First, split based on boolean or ||
- this.set = this.raw.split('||').map(function (range) {
+ this.raw = range
+ this.set = range.split(/\s*\|\|\s*/).map(function (range) {
return this.parseRange(range.trim())
}, this).filter(function (c) {
// throw out any that are not relevant for whatever reason
@@ -4553,7 +4049,7 @@ function Range (range, options) {
})
if (!this.set.length) {
- throw new TypeError('Invalid SemVer Range: ' + this.raw)
+ throw new TypeError('Invalid SemVer Range: ' + range)
}
this.format()
@@ -4572,19 +4068,20 @@ Range.prototype.toString = function () {
Range.prototype.parseRange = function (range) {
var loose = this.options.loose
+ range = range.trim()
// `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
- var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE]
+ var hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]
range = range.replace(hr, hyphenReplace)
debug('hyphen replace', range)
// `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
- range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace)
- debug('comparator trim', range, safeRe[t.COMPARATORTRIM])
+ range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)
+ debug('comparator trim', range, re[t.COMPARATORTRIM])
// `~ 1.2.3` => `~1.2.3`
- range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace)
+ range = range.replace(re[t.TILDETRIM], tildeTrimReplace)
// `^ 1.2.3` => `^1.2.3`
- range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace)
+ range = range.replace(re[t.CARETTRIM], caretTrimReplace)
// normalize spaces
range = range.split(/\s+/).join(' ')
@@ -4592,7 +4089,7 @@ Range.prototype.parseRange = function (range) {
// At this point, the range is completely trimmed and
// ready to be split into comparators.
- var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]
+ var compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]
var set = range.split(' ').map(function (comp) {
return parseComparator(comp, this.options)
}, this).join(' ').split(/\s+/)
@@ -4692,7 +4189,7 @@ function replaceTildes (comp, options) {
}
function replaceTilde (comp, options) {
- var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE]
+ var r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]
return comp.replace(r, function (_, M, m, p, pr) {
debug('tilde', comp, _, M, m, p, pr)
var ret
@@ -4733,7 +4230,7 @@ function replaceCarets (comp, options) {
function replaceCaret (comp, options) {
debug('caret', comp, options)
- var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET]
+ var r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]
return comp.replace(r, function (_, M, m, p, pr) {
debug('caret', comp, _, M, m, p, pr)
var ret
@@ -4792,7 +4289,7 @@ function replaceXRanges (comp, options) {
function replaceXRange (comp, options) {
comp = comp.trim()
- var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE]
+ var r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]
return comp.replace(r, function (ret, gtlt, M, m, p, pr) {
debug('xRange', comp, ret, gtlt, M, m, p, pr)
var xM = isX(M)
@@ -4867,7 +4364,7 @@ function replaceXRange (comp, options) {
function replaceStars (comp, options) {
debug('replaceStars', comp, options)
// Looseness is ignored here. star is always as loose as it gets!
- return comp.trim().replace(safeRe[t.STAR], '')
+ return comp.trim().replace(re[t.STAR], '')
}
// This function is passed to string.replace(re[t.HYPHENRANGE])
@@ -5193,7 +4690,7 @@ function coerce (version, options) {
var match = null
if (!options.rtl) {
- match = version.match(safeRe[t.COERCE])
+ match = version.match(re[t.COERCE])
} else {
// Find the right-most coercible string that does not share
// a terminus with a more left-ward coercible string.
@@ -5204,17 +4701,17 @@ function coerce (version, options) {
// Stop when we get a match that ends at the string end, since no
// coercible string can be more right-ward without the same terminus.
var next
- while ((next = safeRe[t.COERCERTL].exec(version)) &&
+ while ((next = re[t.COERCERTL].exec(version)) &&
(!match || match.index + match[0].length !== version.length)
) {
if (!match ||
next.index + next[0].length !== match.index + match[0].length) {
match = next
}
- safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length
+ re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length
}
// leave it in a clean state
- safeRe[t.COERCERTL].lastIndex = -1
+ re[t.COERCERTL].lastIndex = -1
}
if (match === null) {
@@ -11424,11 +10921,8 @@ var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||
// Max safe segment length for coercion.
var MAX_SAFE_COMPONENT_LENGTH = 16
-var MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6
-
// The actual regexps go on exports.re
var re = exports.re = []
-var safeRe = exports.safeRe = []
var src = exports.src = []
var t = exports.tokens = {}
var R = 0
@@ -11437,31 +10931,6 @@ function tok (n) {
t[n] = R++
}
-var LETTERDASHNUMBER = '[a-zA-Z0-9-]'
-
-// Replace some greedy regex tokens to prevent regex dos issues. These regex are
-// used internally via the safeRe object since all inputs in this library get
-// normalized first to trim and collapse all extra whitespace. The original
-// regexes are exported for userland consumption and lower level usage. A
-// future breaking change could export the safer regex only with a note that
-// all input should have extra whitespace removed.
-var safeRegexReplacements = [
- ['\\s', 1],
- ['\\d', MAX_LENGTH],
- [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],
-]
-
-function makeSafeRe (value) {
- for (var i = 0; i < safeRegexReplacements.length; i++) {
- var token = safeRegexReplacements[i][0]
- var max = safeRegexReplacements[i][1]
- value = value
- .split(token + '*').join(token + '{0,' + max + '}')
- .split(token + '+').join(token + '{1,' + max + '}')
- }
- return value
-}
-
// The following Regular Expressions can be used for tokenizing,
// validating, and parsing SemVer version strings.
@@ -11471,14 +10940,14 @@ function makeSafeRe (value) {
tok('NUMERICIDENTIFIER')
src[t.NUMERICIDENTIFIER] = '0|[1-9]\\d*'
tok('NUMERICIDENTIFIERLOOSE')
-src[t.NUMERICIDENTIFIERLOOSE] = '\\d+'
+src[t.NUMERICIDENTIFIERLOOSE] = '[0-9]+'
// ## Non-numeric Identifier
// Zero or more digits, followed by a letter or hyphen, and then zero or
// more letters, digits, or hyphens.
tok('NONNUMERICIDENTIFIER')
-src[t.NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*'
+src[t.NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*'
// ## Main Version
// Three dot-separated numeric identifiers.
@@ -11520,7 +10989,7 @@ src[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +
// Any combination of digits, letters, or hyphens.
tok('BUILDIDENTIFIER')
-src[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+'
+src[t.BUILDIDENTIFIER] = '[0-9A-Za-z-]+'
// ## Build Metadata
// Plus sign, followed by one or more period-separated build metadata
@@ -11600,7 +11069,6 @@ src[t.COERCE] = '(^|[^\\d])' +
'(?:$|[^\\d])'
tok('COERCERTL')
re[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')
-safeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), 'g')
// Tilde ranges.
// Meaning is "reasonably at or greater than"
@@ -11610,7 +11078,6 @@ src[t.LONETILDE] = '(?:~>?)'
tok('TILDETRIM')
src[t.TILDETRIM] = '(\\s*)' + src[t.LONETILDE] + '\\s+'
re[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')
-safeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), 'g')
var tildeTrimReplace = '$1~'
tok('TILDE')
@@ -11626,7 +11093,6 @@ src[t.LONECARET] = '(?:\\^)'
tok('CARETTRIM')
src[t.CARETTRIM] = '(\\s*)' + src[t.LONECARET] + '\\s+'
re[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')
-safeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), 'g')
var caretTrimReplace = '$1^'
tok('CARET')
@@ -11648,7 +11114,6 @@ src[t.COMPARATORTRIM] = '(\\s*)' + src[t.GTLT] +
// this one has to use the /g flag
re[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')
-safeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g')
var comparatorTrimReplace = '$1$2$3'
// Something like `1.2.3 - 1.2.4`
@@ -11677,14 +11142,6 @@ for (var i = 0; i < R; i++) {
debug(i, src[i])
if (!re[i]) {
re[i] = new RegExp(src[i])
-
- // Replace all greedy whitespace to prevent regex dos issues. These regex are
- // used internally via the safeRe object since all inputs in this library get
- // normalized first to trim and collapse all extra whitespace. The original
- // regexes are exported for userland consumption and lower level usage. A
- // future breaking change could export the safer regex only with a note that
- // all input should have extra whitespace removed.
- safeRe[i] = new RegExp(makeSafeRe(src[i]))
}
}
@@ -11709,7 +11166,7 @@ function parse (version, options) {
return null
}
- var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]
+ var r = options.loose ? re[t.LOOSE] : re[t.FULL]
if (!r.test(version)) {
return null
}
@@ -11764,7 +11221,7 @@ function SemVer (version, options) {
this.options = options
this.loose = !!options.loose
- var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL])
+ var m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])
if (!m) {
throw new TypeError('Invalid Version: ' + version)
@@ -12209,7 +11666,6 @@ function Comparator (comp, options) {
return new Comparator(comp, options)
}
- comp = comp.trim().split(/\s+/).join(' ')
debug('comparator', comp, options)
this.options = options
this.loose = !!options.loose
@@ -12226,7 +11682,7 @@ function Comparator (comp, options) {
var ANY = {}
Comparator.prototype.parse = function (comp) {
- var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]
+ var r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]
var m = comp.match(r)
if (!m) {
@@ -12350,16 +11806,9 @@ function Range (range, options) {
this.loose = !!options.loose
this.includePrerelease = !!options.includePrerelease
- // First reduce all whitespace as much as possible so we do not have to rely
- // on potentially slow regexes like \s*. This is then stored and used for
- // future error messages as well.
- this.raw = range
- .trim()
- .split(/\s+/)
- .join(' ')
-
// First, split based on boolean or ||
- this.set = this.raw.split('||').map(function (range) {
+ this.raw = range
+ this.set = range.split(/\s*\|\|\s*/).map(function (range) {
return this.parseRange(range.trim())
}, this).filter(function (c) {
// throw out any that are not relevant for whatever reason
@@ -12367,7 +11816,7 @@ function Range (range, options) {
})
if (!this.set.length) {
- throw new TypeError('Invalid SemVer Range: ' + this.raw)
+ throw new TypeError('Invalid SemVer Range: ' + range)
}
this.format()
@@ -12386,19 +11835,20 @@ Range.prototype.toString = function () {
Range.prototype.parseRange = function (range) {
var loose = this.options.loose
+ range = range.trim()
// `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
- var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE]
+ var hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]
range = range.replace(hr, hyphenReplace)
debug('hyphen replace', range)
// `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
- range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace)
- debug('comparator trim', range, safeRe[t.COMPARATORTRIM])
+ range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)
+ debug('comparator trim', range, re[t.COMPARATORTRIM])
// `~ 1.2.3` => `~1.2.3`
- range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace)
+ range = range.replace(re[t.TILDETRIM], tildeTrimReplace)
// `^ 1.2.3` => `^1.2.3`
- range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace)
+ range = range.replace(re[t.CARETTRIM], caretTrimReplace)
// normalize spaces
range = range.split(/\s+/).join(' ')
@@ -12406,7 +11856,7 @@ Range.prototype.parseRange = function (range) {
// At this point, the range is completely trimmed and
// ready to be split into comparators.
- var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]
+ var compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]
var set = range.split(' ').map(function (comp) {
return parseComparator(comp, this.options)
}, this).join(' ').split(/\s+/)
@@ -12506,7 +11956,7 @@ function replaceTildes (comp, options) {
}
function replaceTilde (comp, options) {
- var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE]
+ var r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]
return comp.replace(r, function (_, M, m, p, pr) {
debug('tilde', comp, _, M, m, p, pr)
var ret
@@ -12547,7 +11997,7 @@ function replaceCarets (comp, options) {
function replaceCaret (comp, options) {
debug('caret', comp, options)
- var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET]
+ var r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]
return comp.replace(r, function (_, M, m, p, pr) {
debug('caret', comp, _, M, m, p, pr)
var ret
@@ -12606,7 +12056,7 @@ function replaceXRanges (comp, options) {
function replaceXRange (comp, options) {
comp = comp.trim()
- var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE]
+ var r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]
return comp.replace(r, function (ret, gtlt, M, m, p, pr) {
debug('xRange', comp, ret, gtlt, M, m, p, pr)
var xM = isX(M)
@@ -12681,7 +12131,7 @@ function replaceXRange (comp, options) {
function replaceStars (comp, options) {
debug('replaceStars', comp, options)
// Looseness is ignored here. star is always as loose as it gets!
- return comp.trim().replace(safeRe[t.STAR], '')
+ return comp.trim().replace(re[t.STAR], '')
}
// This function is passed to string.replace(re[t.HYPHENRANGE])
@@ -13007,7 +12457,7 @@ function coerce (version, options) {
var match = null
if (!options.rtl) {
- match = version.match(safeRe[t.COERCE])
+ match = version.match(re[t.COERCE])
} else {
// Find the right-most coercible string that does not share
// a terminus with a more left-ward coercible string.
@@ -13018,17 +12468,17 @@ function coerce (version, options) {
// Stop when we get a match that ends at the string end, since no
// coercible string can be more right-ward without the same terminus.
var next
- while ((next = safeRe[t.COERCERTL].exec(version)) &&
+ while ((next = re[t.COERCERTL].exec(version)) &&
(!match || match.index + match[0].length !== version.length)
) {
if (!match ||
next.index + next[0].length !== match.index + match[0].length) {
match = next
}
- safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length
+ re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length
}
// leave it in a clean state
- safeRe[t.COERCERTL].lastIndex = -1
+ re[t.COERCERTL].lastIndex = -1
}
if (match === null) {
@@ -13044,18 +12494,19 @@ function coerce (version, options) {
/***/ }),
/***/ 2557:
-/***/ ((__unused_webpack_module, exports) => {
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
"use strict";
Object.defineProperty(exports, "__esModule", ({ value: true }));
+var tslib = __nccwpck_require__(9268);
+
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
-///
-const listenersMap = new WeakMap();
-const abortedMap = new WeakMap();
+var listenersMap = new WeakMap();
+var abortedMap = new WeakMap();
/**
* An aborter instance implements AbortSignal interface, can abort HTTP requests.
*
@@ -13069,8 +12520,8 @@ const abortedMap = new WeakMap();
* await doAsyncWork(AbortSignal.none);
* ```
*/
-class AbortSignal {
- constructor() {
+var AbortSignal = /** @class */ (function () {
+ function AbortSignal() {
/**
* onabort event listener.
*/
@@ -13078,65 +12529,74 @@ class AbortSignal {
listenersMap.set(this, []);
abortedMap.set(this, false);
}
- /**
- * Status of whether aborted or not.
- *
- * @readonly
- */
- get aborted() {
- if (!abortedMap.has(this)) {
- throw new TypeError("Expected `this` to be an instance of AbortSignal.");
- }
- return abortedMap.get(this);
- }
- /**
- * Creates a new AbortSignal instance that will never be aborted.
- *
- * @readonly
- */
- static get none() {
- return new AbortSignal();
- }
+ Object.defineProperty(AbortSignal.prototype, "aborted", {
+ /**
+ * Status of whether aborted or not.
+ *
+ * @readonly
+ */
+ get: function () {
+ if (!abortedMap.has(this)) {
+ throw new TypeError("Expected `this` to be an instance of AbortSignal.");
+ }
+ return abortedMap.get(this);
+ },
+ enumerable: false,
+ configurable: true
+ });
+ Object.defineProperty(AbortSignal, "none", {
+ /**
+ * Creates a new AbortSignal instance that will never be aborted.
+ *
+ * @readonly
+ */
+ get: function () {
+ return new AbortSignal();
+ },
+ enumerable: false,
+ configurable: true
+ });
/**
* Added new "abort" event listener, only support "abort" event.
*
* @param _type - Only support "abort" event
* @param listener - The listener to be added
*/
- addEventListener(
+ AbortSignal.prototype.addEventListener = function (
// tslint:disable-next-line:variable-name
_type, listener) {
if (!listenersMap.has(this)) {
throw new TypeError("Expected `this` to be an instance of AbortSignal.");
}
- const listeners = listenersMap.get(this);
+ var listeners = listenersMap.get(this);
listeners.push(listener);
- }
+ };
/**
* Remove "abort" event listener, only support "abort" event.
*
* @param _type - Only support "abort" event
* @param listener - The listener to be removed
*/
- removeEventListener(
+ AbortSignal.prototype.removeEventListener = function (
// tslint:disable-next-line:variable-name
_type, listener) {
if (!listenersMap.has(this)) {
throw new TypeError("Expected `this` to be an instance of AbortSignal.");
}
- const listeners = listenersMap.get(this);
- const index = listeners.indexOf(listener);
+ var listeners = listenersMap.get(this);
+ var index = listeners.indexOf(listener);
if (index > -1) {
listeners.splice(index, 1);
}
- }
+ };
/**
* Dispatches a synthetic event to the AbortSignal.
*/
- dispatchEvent(_event) {
+ AbortSignal.prototype.dispatchEvent = function (_event) {
throw new Error("This is a stub dispatchEvent implementation that should not be used. It only exists for type-checking purposes.");
- }
-}
+ };
+ return AbortSignal;
+}());
/**
* Helper to trigger an abort event immediately, the onabort and all abort event listeners will be triggered.
* Will try to trigger abort event for all linked AbortSignal nodes.
@@ -13154,12 +12614,12 @@ function abortSignal(signal) {
if (signal.onabort) {
signal.onabort.call(signal);
}
- const listeners = listenersMap.get(signal);
+ var listeners = listenersMap.get(signal);
if (listeners) {
// Create a copy of listeners so mutations to the array
// (e.g. via removeListener calls) don't affect the listeners
// we invoke.
- listeners.slice().forEach((listener) => {
+ listeners.slice().forEach(function (listener) {
listener.call(signal, { type: "abort" });
});
}
@@ -13185,12 +12645,15 @@ function abortSignal(signal) {
* }
* ```
*/
-class AbortError extends Error {
- constructor(message) {
- super(message);
- this.name = "AbortError";
+var AbortError = /** @class */ (function (_super) {
+ tslib.__extends(AbortError, _super);
+ function AbortError(message) {
+ var _this = _super.call(this, message) || this;
+ _this.name = "AbortError";
+ return _this;
}
-}
+ return AbortError;
+}(Error));
/**
* An AbortController provides an AbortSignal and the associated controls to signal
* that an asynchronous operation should be aborted.
@@ -13225,9 +12688,10 @@ class AbortError extends Error {
* await doAsyncWork(aborter.withTimeout(25 * 1000));
* ```
*/
-class AbortController {
+var AbortController = /** @class */ (function () {
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
- constructor(parentSignals) {
+ function AbortController(parentSignals) {
+ var _this = this;
this._signal = new AbortSignal();
if (!parentSignals) {
return;
@@ -13237,7 +12701,8 @@ class AbortController {
// eslint-disable-next-line prefer-rest-params
parentSignals = arguments;
}
- for (const parentSignal of parentSignals) {
+ for (var _i = 0, parentSignals_1 = parentSignals; _i < parentSignals_1.length; _i++) {
+ var parentSignal = parentSignals_1[_i];
// if the parent signal has already had abort() called,
// then call abort on this signal as well.
if (parentSignal.aborted) {
@@ -13245,42 +12710,47 @@ class AbortController {
}
else {
// when the parent signal aborts, this signal should as well.
- parentSignal.addEventListener("abort", () => {
- this.abort();
+ parentSignal.addEventListener("abort", function () {
+ _this.abort();
});
}
}
}
- /**
- * The AbortSignal associated with this controller that will signal aborted
- * when the abort method is called on this controller.
- *
- * @readonly
- */
- get signal() {
- return this._signal;
- }
+ Object.defineProperty(AbortController.prototype, "signal", {
+ /**
+ * The AbortSignal associated with this controller that will signal aborted
+ * when the abort method is called on this controller.
+ *
+ * @readonly
+ */
+ get: function () {
+ return this._signal;
+ },
+ enumerable: false,
+ configurable: true
+ });
/**
* Signal that any operations passed this controller's associated abort signal
* to cancel any remaining work and throw an `AbortError`.
*/
- abort() {
+ AbortController.prototype.abort = function () {
abortSignal(this._signal);
- }
+ };
/**
* Creates a new AbortSignal instance that will abort after the provided ms.
* @param ms - Elapsed time in milliseconds to trigger an abort.
*/
- static timeout(ms) {
- const signal = new AbortSignal();
- const timer = setTimeout(abortSignal, ms, signal);
+ AbortController.timeout = function (ms) {
+ var signal = new AbortSignal();
+ var timer = setTimeout(abortSignal, ms, signal);
// Prevent the active Timer from keeping the Node.js event loop active.
if (typeof timer.unref === "function") {
timer.unref();
}
return signal;
- }
-}
+ };
+ return AbortController;
+}());
exports.AbortController = AbortController;
exports.AbortError = AbortError;
@@ -13288,6 +12758,319 @@ exports.AbortSignal = AbortSignal;
//# sourceMappingURL=index.js.map
+/***/ }),
+
+/***/ 9268:
+/***/ ((module) => {
+
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+***************************************************************************** */
+/* global global, define, System, Reflect, Promise */
+var __extends;
+var __assign;
+var __rest;
+var __decorate;
+var __param;
+var __metadata;
+var __awaiter;
+var __generator;
+var __exportStar;
+var __values;
+var __read;
+var __spread;
+var __spreadArrays;
+var __spreadArray;
+var __await;
+var __asyncGenerator;
+var __asyncDelegator;
+var __asyncValues;
+var __makeTemplateObject;
+var __importStar;
+var __importDefault;
+var __classPrivateFieldGet;
+var __classPrivateFieldSet;
+var __createBinding;
+(function (factory) {
+ var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {};
+ if (typeof define === "function" && define.amd) {
+ define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); });
+ }
+ else if ( true && typeof module.exports === "object") {
+ factory(createExporter(root, createExporter(module.exports)));
+ }
+ else {
+ factory(createExporter(root));
+ }
+ function createExporter(exports, previous) {
+ if (exports !== root) {
+ if (typeof Object.create === "function") {
+ Object.defineProperty(exports, "__esModule", { value: true });
+ }
+ else {
+ exports.__esModule = true;
+ }
+ }
+ return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };
+ }
+})
+(function (exporter) {
+ var extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+
+ __extends = function (d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+
+ __assign = Object.assign || function (t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
+ }
+ return t;
+ };
+
+ __rest = function (s, e) {
+ var t = {};
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
+ t[p] = s[p];
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
+ t[p[i]] = s[p[i]];
+ }
+ return t;
+ };
+
+ __decorate = function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+ };
+
+ __param = function (paramIndex, decorator) {
+ return function (target, key) { decorator(target, key, paramIndex); }
+ };
+
+ __metadata = function (metadataKey, metadataValue) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
+ };
+
+ __awaiter = function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+ };
+
+ __generator = function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+ };
+
+ __exportStar = function(m, o) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
+ };
+
+ __createBinding = Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+ }) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+ });
+
+ __values = function (o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+ };
+
+ __read = function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ return ar;
+ };
+
+ /** @deprecated */
+ __spread = function () {
+ for (var ar = [], i = 0; i < arguments.length; i++)
+ ar = ar.concat(__read(arguments[i]));
+ return ar;
+ };
+
+ /** @deprecated */
+ __spreadArrays = function () {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+ };
+
+ __spreadArray = function (to, from, pack) {
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
+ if (ar || !(i in from)) {
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
+ ar[i] = from[i];
+ }
+ }
+ return to.concat(ar || Array.prototype.slice.call(from));
+ };
+
+ __await = function (v) {
+ return this instanceof __await ? (this.v = v, this) : new __await(v);
+ };
+
+ __asyncGenerator = function (thisArg, _arguments, generator) {
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
+ function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
+ function fulfill(value) { resume("next", value); }
+ function reject(value) { resume("throw", value); }
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
+ };
+
+ __asyncDelegator = function (o) {
+ var i, p;
+ return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
+ function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
+ };
+
+ __asyncValues = function (o) {
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
+ var m = o[Symbol.asyncIterator], i;
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
+ };
+
+ __makeTemplateObject = function (cooked, raw) {
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
+ return cooked;
+ };
+
+ var __setModuleDefault = Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+ }) : function(o, v) {
+ o["default"] = v;
+ };
+
+ __importStar = function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+ };
+
+ __importDefault = function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+ };
+
+ __classPrivateFieldGet = function (receiver, state, kind, f) {
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
+ };
+
+ __classPrivateFieldSet = function (receiver, state, value, kind, f) {
+ if (kind === "m") throw new TypeError("Private method is not writable");
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
+ };
+
+ exporter("__extends", __extends);
+ exporter("__assign", __assign);
+ exporter("__rest", __rest);
+ exporter("__decorate", __decorate);
+ exporter("__param", __param);
+ exporter("__metadata", __metadata);
+ exporter("__awaiter", __awaiter);
+ exporter("__generator", __generator);
+ exporter("__exportStar", __exportStar);
+ exporter("__createBinding", __createBinding);
+ exporter("__values", __values);
+ exporter("__read", __read);
+ exporter("__spread", __spread);
+ exporter("__spreadArrays", __spreadArrays);
+ exporter("__spreadArray", __spreadArray);
+ exporter("__await", __await);
+ exporter("__asyncGenerator", __asyncGenerator);
+ exporter("__asyncDelegator", __asyncDelegator);
+ exporter("__asyncValues", __asyncValues);
+ exporter("__makeTemplateObject", __makeTemplateObject);
+ exporter("__importStar", __importStar);
+ exporter("__importDefault", __importDefault);
+ exporter("__classPrivateFieldGet", __classPrivateFieldGet);
+ exporter("__classPrivateFieldSet", __classPrivateFieldSet);
+});
+
+
/***/ }),
/***/ 2356:
@@ -13539,18 +13322,20 @@ var uuid = __nccwpck_require__(3415);
var util = __nccwpck_require__(3837);
var tslib = __nccwpck_require__(2107);
var xml2js = __nccwpck_require__(6189);
-var coreUtil = __nccwpck_require__(1333);
+var abortController = __nccwpck_require__(2557);
var logger$1 = __nccwpck_require__(3233);
var coreAuth = __nccwpck_require__(9645);
var os = __nccwpck_require__(2037);
var http = __nccwpck_require__(3685);
var https = __nccwpck_require__(5687);
-var abortController = __nccwpck_require__(2557);
+var tough = __nccwpck_require__(8165);
var tunnel = __nccwpck_require__(4294);
var stream = __nccwpck_require__(2781);
var FormData = __nccwpck_require__(6279);
var node_fetch = __nccwpck_require__(467);
var coreTracing = __nccwpck_require__(4175);
+var url = __nccwpck_require__(7310);
+__nccwpck_require__(2356);
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -13576,6 +13361,7 @@ var xml2js__namespace = /*#__PURE__*/_interopNamespace(xml2js);
var os__namespace = /*#__PURE__*/_interopNamespace(os);
var http__namespace = /*#__PURE__*/_interopNamespace(http);
var https__namespace = /*#__PURE__*/_interopNamespace(https);
+var tough__namespace = /*#__PURE__*/_interopNamespace(tough);
var tunnel__namespace = /*#__PURE__*/_interopNamespace(tunnel);
var FormData__default = /*#__PURE__*/_interopDefaultLegacy(FormData);
var node_fetch__default = /*#__PURE__*/_interopDefaultLegacy(node_fetch);
@@ -13767,7 +13553,7 @@ const Constants = {
/**
* The core-http version
*/
- coreHttpVersion: "3.0.1",
+ coreHttpVersion: "2.2.4",
/**
* Specifies HTTP.
*/
@@ -14068,7 +13854,6 @@ class Serializer {
* @param mapper - The definition of data models.
* @param value - The value.
* @param objectName - Name of the object. Used in the error messages.
- * @deprecated Removing the constraints validation on client side.
*/
validateConstraints(mapper, value, objectName) {
const failValidation = (constraintName, constraintValue) => {
@@ -14167,6 +13952,8 @@ class Serializer {
payload = object;
}
else {
+ // Validate Constraints if any
+ this.validateConstraints(mapper, object, objectName);
if (mapperType.match(/^any$/i) !== null) {
payload = object;
}
@@ -14684,8 +14471,7 @@ function isSpecialXmlProperty(propertyName, options) {
return [XML_ATTRKEY, options.xmlCharKey].includes(propertyName);
}
function deserializeCompositeType(serializer, mapper, responseBody, objectName, options) {
- var _a, _b;
- const xmlCharKey = (_a = options.xmlCharKey) !== null && _a !== void 0 ? _a : XML_CHARKEY;
+ var _a;
if (getPolymorphicDiscriminatorRecursively(serializer, mapper)) {
mapper = getPolymorphicMapper(serializer, mapper, responseBody, "serializedName");
}
@@ -14716,16 +14502,6 @@ function deserializeCompositeType(serializer, mapper, responseBody, objectName,
if (propertyMapper.xmlIsAttribute && responseBody[XML_ATTRKEY]) {
instance[key] = serializer.deserialize(propertyMapper, responseBody[XML_ATTRKEY][xmlName], propertyObjectName, options);
}
- else if (propertyMapper.xmlIsMsText) {
- if (responseBody[xmlCharKey] !== undefined) {
- instance[key] = responseBody[xmlCharKey];
- }
- else if (typeof responseBody === "string") {
- // The special case where xml parser parses "content" into JSON of
- // `{ name: "content"}` instead of `{ name: { "_": "content" }}`
- instance[key] = responseBody;
- }
- }
else {
const propertyName = xmlElementName || xmlName || serializedName;
if (propertyMapper.xmlIsWrapped) {
@@ -14744,14 +14520,12 @@ function deserializeCompositeType(serializer, mapper, responseBody, objectName,
xmlName is "Cors" and xmlElementName is"CorsRule".
*/
const wrapped = responseBody[xmlName];
- const elementList = (_b = wrapped === null || wrapped === void 0 ? void 0 : wrapped[xmlElementName]) !== null && _b !== void 0 ? _b : [];
+ const elementList = (_a = wrapped === null || wrapped === void 0 ? void 0 : wrapped[xmlElementName]) !== null && _a !== void 0 ? _a : [];
instance[key] = serializer.deserialize(propertyMapper, elementList, propertyObjectName, options);
- handledPropertyNames.push(xmlName);
}
else {
const property = responseBody[propertyName];
instance[key] = serializer.deserialize(propertyMapper, property, propertyObjectName, options);
- handledPropertyNames.push(propertyName);
}
}
}
@@ -15906,7 +15680,6 @@ const defaultAllowedHeaderNames = [
"Server",
"Transfer-Encoding",
"User-Agent",
- "WWW-Authenticate",
];
const defaultAllowedQueryParameters = ["api-version"];
class Sanitizer {
@@ -16084,6 +15857,7 @@ class NodeFetchHttpClient {
// a mapping of proxy settings string `${host}:${port}:${username}:${password}` to agent
this.proxyAgentMap = new Map();
this.keepAliveAgents = {};
+ this.cookieJar = new tough__namespace.CookieJar(undefined, { looseMode: true });
}
/**
* Provides minimum viable error handling and the logic that executes the abstract methods.
@@ -16171,11 +15945,7 @@ class NodeFetchHttpClient {
body = uploadReportStream;
}
const platformSpecificRequestInit = await this.prepareRequest(httpRequest);
- const requestInit = Object.assign({ body: body, headers: httpRequest.headers.rawHeaders(), method: httpRequest.method,
- // the types for RequestInit are from the browser, which expects AbortSignal to
- // have `reason` and `throwIfAborted`, but these don't exist on our polyfill
- // for Node.
- signal: abortController$1.signal, redirect: "manual" }, platformSpecificRequestInit);
+ const requestInit = Object.assign({ body: body, headers: httpRequest.headers.rawHeaders(), method: httpRequest.method, signal: abortController$1.signal, redirect: "manual" }, platformSpecificRequestInit);
let operationResponse;
try {
const response = await this.fetch(httpRequest.url, requestInit);
@@ -16300,16 +16070,43 @@ class NodeFetchHttpClient {
*/
async prepareRequest(httpRequest) {
const requestInit = {};
+ if (this.cookieJar && !httpRequest.headers.get("Cookie")) {
+ const cookieString = await new Promise((resolve, reject) => {
+ this.cookieJar.getCookieString(httpRequest.url, (err, cookie) => {
+ if (err) {
+ reject(err);
+ }
+ else {
+ resolve(cookie);
+ }
+ });
+ });
+ httpRequest.headers.set("Cookie", cookieString);
+ }
// Set the http(s) agent
requestInit.agent = this.getOrCreateAgent(httpRequest);
requestInit.compress = httpRequest.decompressResponse;
return requestInit;
}
/**
- * Process an HTTP response.
+ * Process an HTTP response. Handles persisting a cookie for subsequent requests if the response has a "Set-Cookie" header.
*/
- async processRequest(_operationResponse) {
- /* no_op */
+ async processRequest(operationResponse) {
+ if (this.cookieJar) {
+ const setCookieHeader = operationResponse.headers.get("Set-Cookie");
+ if (setCookieHeader !== undefined) {
+ await new Promise((resolve, reject) => {
+ this.cookieJar.setCookie(setCookieHeader, operationResponse.request.url, { ignoreError: true }, (err) => {
+ if (err) {
+ reject(err);
+ }
+ else {
+ resolve();
+ }
+ });
+ });
+ }
+ }
}
}
@@ -16345,6 +16142,7 @@ exports.HttpPipelineLogLevel = void 0;
* @param opts - OperationOptions object to convert to RequestOptionsBase
*/
function operationOptionsToRequestOptionsBase(opts) {
+ var _a;
const { requestOptions, tracingOptions } = opts, additionalOptions = tslib.__rest(opts, ["requestOptions", "tracingOptions"]);
let result = additionalOptions;
if (requestOptions) {
@@ -16353,7 +16151,7 @@ function operationOptionsToRequestOptionsBase(opts) {
if (tracingOptions) {
result.tracingContext = tracingOptions.tracingContext;
// By passing spanOptions if they exist at runtime, we're backwards compatible with @azure/core-tracing@preview.13 and earlier.
- result.spanOptions = tracingOptions === null || tracingOptions === void 0 ? void 0 : tracingOptions.spanOptions;
+ result.spanOptions = (_a = tracingOptions) === null || _a === void 0 ? void 0 : _a.spanOptions;
}
return result;
}
@@ -16643,7 +16441,7 @@ function deserializeResponseBody(jsonContentTypes, xmlContentTypes, response, op
parsedResponse.parsedBody = response.status >= 200 && response.status < 300;
}
if (responseSpec.headersMapper) {
- parsedResponse.parsedHeaders = operationSpec.serializer.deserialize(responseSpec.headersMapper, parsedResponse.headers.toJson(), "operationRes.parsedHeaders", options);
+ parsedResponse.parsedHeaders = operationSpec.serializer.deserialize(responseSpec.headersMapper, parsedResponse.headers.rawHeaders(), "operationRes.parsedHeaders", options);
}
}
return parsedResponse;
@@ -16709,7 +16507,7 @@ function handleErrorResponse(parsedResponse, operationSpec, responseSpec) {
}
// 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.toJson(), "operationRes.parsedHeaders");
+ error.response.parsedHeaders = operationSpec.serializer.deserialize(defaultHeadersMapper, parsedResponse.headers.rawHeaders(), "operationRes.parsedHeaders");
}
}
catch (defaultError) {
@@ -16910,6 +16708,60 @@ function updateRetryData(retryOptions, retryData = { retryCount: 0, retryInterva
return retryData;
}
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT license.
+/**
+ * Helper TypeGuard that checks if the value is not null or undefined.
+ * @param thing - Anything
+ * @internal
+ */
+function isDefined(thing) {
+ return typeof thing !== "undefined" && thing !== null;
+}
+
+// Copyright (c) Microsoft Corporation.
+const StandardAbortMessage$1 = "The operation was aborted.";
+/**
+ * A wrapper for setTimeout that resolves a promise after delayInMs milliseconds.
+ * @param delayInMs - The number of milliseconds to be delayed.
+ * @param value - The value to be resolved with after a timeout of t milliseconds.
+ * @param options - The options for delay - currently abort options
+ * @param abortSignal - The abortSignal associated with containing operation.
+ * @param abortErrorMsg - The abort error message associated with containing operation.
+ * @returns - Resolved promise
+ */
+function delay(delayInMs, value, options) {
+ return new Promise((resolve, reject) => {
+ let timer = undefined;
+ let onAborted = undefined;
+ const rejectOnAbort = () => {
+ return reject(new abortController.AbortError((options === null || options === void 0 ? void 0 : options.abortErrorMsg) ? options === null || options === void 0 ? void 0 : options.abortErrorMsg : StandardAbortMessage$1));
+ };
+ const removeListeners = () => {
+ if ((options === null || options === void 0 ? void 0 : options.abortSignal) && onAborted) {
+ options.abortSignal.removeEventListener("abort", onAborted);
+ }
+ };
+ onAborted = () => {
+ if (isDefined(timer)) {
+ clearTimeout(timer);
+ }
+ removeListeners();
+ return rejectOnAbort();
+ };
+ if ((options === null || options === void 0 ? void 0 : options.abortSignal) && options.abortSignal.aborted) {
+ return rejectOnAbort();
+ }
+ timer = setTimeout(() => {
+ removeListeners();
+ resolve(value);
+ }, delayInMs);
+ if (options === null || options === void 0 ? void 0 : options.abortSignal) {
+ options.abortSignal.addEventListener("abort", onAborted);
+ }
+ });
+}
+
// Copyright (c) Microsoft Corporation.
/**
* Policy that retries the request as many times as configured for as long as the max retry time interval specified, each retry waiting longer to begin than the last time.
@@ -16990,7 +16842,7 @@ async function retry$1(policy, request, response, retryData, requestError) {
if (!isAborted && shouldRetry(policy.retryCount, shouldPolicyRetry, retryData, response)) {
logger.info(`Retrying request in ${retryData.retryInterval}`);
try {
- await coreUtil.delay(retryData.retryInterval);
+ await delay(retryData.retryInterval);
const res = await policy._nextPolicy.sendRequest(request.clone());
return retry$1(policy, request, res, retryData);
}
@@ -17285,7 +17137,7 @@ async function beginRefresh(getAccessToken, retryIntervalInMs, timeoutInMs) {
}
let token = await tryGetAccessToken();
while (token === null) {
- await coreUtil.delay(retryIntervalInMs);
+ await delay(retryIntervalInMs);
token = await tryGetAccessToken();
}
return token;
@@ -17817,7 +17669,7 @@ async function getRegistrationStatus(policy, url, originalRequest) {
return true;
}
else {
- await coreUtil.delay(policy._retryTimeout * 1000);
+ await delay(policy._retryTimeout * 1000);
return getRegistrationStatus(policy, url, originalRequest);
}
}
@@ -17909,7 +17761,7 @@ async function retry(policy, request, operationResponse, err, retryData) {
if (shouldRetry(policy.retryCount, shouldPolicyRetry, retryData, operationResponse, err)) {
// If previous operation ended with an error and the policy allows a retry, do that
try {
- await coreUtil.delay(retryData.retryInterval);
+ await delay(retryData.retryInterval);
return policy._nextPolicy.sendRequest(request.clone());
}
catch (nestedErr) {
@@ -17984,7 +17836,7 @@ class ThrottlingRetryPolicy extends BaseRequestPolicy {
const delayInMs = ThrottlingRetryPolicy.parseRetryAfterHeader(retryAfterHeader);
if (delayInMs) {
this.numberOfRetries += 1;
- await coreUtil.delay(delayInMs, {
+ await delay(delayInMs, undefined, {
abortSignal: httpRequest.abortSignal,
abortErrorMsg: StandardAbortMessage,
});
@@ -18710,8 +18562,8 @@ function getCredentialScopes(options, baseUri) {
if (options === null || options === void 0 ? void 0 : options.credentialScopes) {
const scopes = options.credentialScopes;
return Array.isArray(scopes)
- ? scopes.map((scope) => new URL(scope).toString())
- : new URL(scopes).toString();
+ ? scopes.map((scope) => new url.URL(scope).toString())
+ : new url.URL(scopes).toString();
}
if (baseUri) {
return `${baseUri}/.default`;
@@ -18940,10 +18792,6 @@ class TopicCredentials extends ApiKeyCredentials {
}
}
-Object.defineProperty(exports, "delay", ({
- enumerable: true,
- get: function () { return coreUtil.delay; }
-}));
Object.defineProperty(exports, "isTokenCredential", ({
enumerable: true,
get: function () { return coreAuth.isTokenCredential; }
@@ -18971,6 +18819,7 @@ exports.applyMixins = applyMixins;
exports.bearerTokenAuthenticationPolicy = bearerTokenAuthenticationPolicy;
exports.createPipelineFromOptions = createPipelineFromOptions;
exports.createSpanFunction = createSpanFunction;
+exports.delay = delay;
exports.deserializationPolicy = deserializationPolicy;
exports.deserializeResponseBody = deserializeResponseBody;
exports.disableResponseDecompressionPolicy = disableResponseDecompressionPolicy;
@@ -19532,2067 +19381,2366 @@ module.exports = function(dst, src) {
/***/ }),
-/***/ 2107:
-/***/ ((module) => {
+/***/ 8165:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-/******************************************************************************
-Copyright (c) Microsoft Corporation.
+"use strict";
+/*!
+ * Copyright (c) 2015, Salesforce.com, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of Salesforce.com nor the names of its contributors may
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted.
+const punycode = __nccwpck_require__(5477);
+const urlParse = (__nccwpck_require__(7310).parse);
+const util = __nccwpck_require__(3837);
+const pubsuffix = __nccwpck_require__(8292);
+const Store = (__nccwpck_require__(7707)/* .Store */ .y);
+const MemoryCookieStore = (__nccwpck_require__(6738)/* .MemoryCookieStore */ .m);
+const pathMatch = (__nccwpck_require__(807)/* .pathMatch */ .U);
+const VERSION = __nccwpck_require__(8742);
+const { fromCallback } = __nccwpck_require__(9046);
+
+// From RFC6265 S4.1.1
+// note that it excludes \x3B ";"
+const COOKIE_OCTETS = /^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;
+
+const CONTROL_CHARS = /[\x00-\x1F]/;
+
+// From Chromium // '\r', '\n' and '\0' should be treated as a terminator in
+// the "relaxed" mode, see:
+// https://github.com/ChromiumWebApps/chromium/blob/b3d3b4da8bb94c1b2e061600df106d590fda3620/net/cookies/parsed_cookie.cc#L60
+const TERMINATORS = ["\n", "\r", "\0"];
+
+// RFC6265 S4.1.1 defines path value as 'any CHAR except CTLs or ";"'
+// Note ';' is \x3B
+const PATH_VALUE = /[\x20-\x3A\x3C-\x7E]+/;
+
+// date-time parsing constants (RFC6265 S5.1.1)
+
+const DATE_DELIM = /[\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]/;
+
+const MONTH_TO_NUM = {
+ jan: 0,
+ feb: 1,
+ mar: 2,
+ apr: 3,
+ may: 4,
+ jun: 5,
+ jul: 6,
+ aug: 7,
+ sep: 8,
+ oct: 9,
+ nov: 10,
+ dec: 11
+};
+
+const MAX_TIME = 2147483647000; // 31-bit max
+const MIN_TIME = 0; // 31-bit min
+const SAME_SITE_CONTEXT_VAL_ERR =
+ 'Invalid sameSiteContext option for getCookies(); expected one of "strict", "lax", or "none"';
+
+function checkSameSiteContext(value) {
+ const context = String(value).toLowerCase();
+ if (context === "none" || context === "lax" || context === "strict") {
+ return context;
+ } else {
+ return null;
+ }
+}
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-***************************************************************************** */
-/* global global, define, System, Reflect, Promise */
-var __extends;
-var __assign;
-var __rest;
-var __decorate;
-var __param;
-var __esDecorate;
-var __runInitializers;
-var __propKey;
-var __setFunctionName;
-var __metadata;
-var __awaiter;
-var __generator;
-var __exportStar;
-var __values;
-var __read;
-var __spread;
-var __spreadArrays;
-var __spreadArray;
-var __await;
-var __asyncGenerator;
-var __asyncDelegator;
-var __asyncValues;
-var __makeTemplateObject;
-var __importStar;
-var __importDefault;
-var __classPrivateFieldGet;
-var __classPrivateFieldSet;
-var __classPrivateFieldIn;
-var __createBinding;
-(function (factory) {
- var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {};
- if (typeof define === "function" && define.amd) {
- define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); });
- }
- else if ( true && typeof module.exports === "object") {
- factory(createExporter(root, createExporter(module.exports)));
- }
- else {
- factory(createExporter(root));
- }
- function createExporter(exports, previous) {
- if (exports !== root) {
- if (typeof Object.create === "function") {
- Object.defineProperty(exports, "__esModule", { value: true });
- }
- else {
- exports.__esModule = true;
- }
- }
- return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };
- }
-})
-(function (exporter) {
- var extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+const PrefixSecurityEnum = Object.freeze({
+ SILENT: "silent",
+ STRICT: "strict",
+ DISABLED: "unsafe-disabled"
+});
- __extends = function (d, b) {
- if (typeof b !== "function" && b !== null)
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
+// Dumped from ip-regex@4.0.0, with the following changes:
+// * all capturing groups converted to non-capturing -- "(?:)"
+// * support for IPv6 Scoped Literal ("%eth1") removed
+// * lowercase hexadecimal only
+var IP_REGEX_LOWERCASE =/(?:^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$)|(?:^(?:(?:[a-f\d]{1,4}:){7}(?:[a-f\d]{1,4}|:)|(?:[a-f\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-f\d]{1,4}|:)|(?:[a-f\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,2}|:)|(?:[a-f\d]{1,4}:){4}(?:(?::[a-f\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,3}|:)|(?:[a-f\d]{1,4}:){3}(?:(?::[a-f\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,4}|:)|(?:[a-f\d]{1,4}:){2}(?:(?::[a-f\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,5}|:)|(?:[a-f\d]{1,4}:){1}(?:(?::[a-f\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,6}|:)|(?::(?:(?::[a-f\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,7}|:)))$)/;
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- return t;
- };
+/*
+ * Parses a Natural number (i.e., non-negative integer) with either the
+ * *DIGIT ( non-digit *OCTET )
+ * or
+ * *DIGIT
+ * grammar (RFC6265 S5.1.1).
+ *
+ * The "trailingOK" boolean controls if the grammar accepts a
+ * "( non-digit *OCTET )" trailer.
+ */
+function parseDigits(token, minDigits, maxDigits, trailingOK) {
+ let count = 0;
+ while (count < token.length) {
+ const c = token.charCodeAt(count);
+ // "non-digit = %x00-2F / %x3A-FF"
+ if (c <= 0x2f || c >= 0x3a) {
+ break;
+ }
+ count++;
+ }
- __rest = function (s, e) {
- var t = {};
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
- t[p] = s[p];
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
- t[p[i]] = s[p[i]];
- }
- return t;
- };
+ // constrain to a minimum and maximum number of digits.
+ if (count < minDigits || count > maxDigits) {
+ return null;
+ }
- __decorate = function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
+ if (!trailingOK && count != token.length) {
+ return null;
+ }
- __param = function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
+ return parseInt(token.substr(0, count), 10);
+}
- __esDecorate = function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
- function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
- var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
- var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
- var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
- var _, done = false;
- for (var i = decorators.length - 1; i >= 0; i--) {
- var context = {};
- for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
- for (var p in contextIn.access) context.access[p] = contextIn.access[p];
- context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
- var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
- if (kind === "accessor") {
- if (result === void 0) continue;
- if (result === null || typeof result !== "object") throw new TypeError("Object expected");
- if (_ = accept(result.get)) descriptor.get = _;
- if (_ = accept(result.set)) descriptor.set = _;
- if (_ = accept(result.init)) initializers.push(_);
- }
- else if (_ = accept(result)) {
- if (kind === "field") initializers.push(_);
- else descriptor[key] = _;
- }
- }
- if (target) Object.defineProperty(target, contextIn.name, descriptor);
- done = true;
- };
+function parseTime(token) {
+ const parts = token.split(":");
+ const result = [0, 0, 0];
- __runInitializers = function (thisArg, initializers, value) {
- var useValue = arguments.length > 2;
- for (var i = 0; i < initializers.length; i++) {
- value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
- }
- return useValue ? value : void 0;
- };
+ /* RF6256 S5.1.1:
+ * time = hms-time ( non-digit *OCTET )
+ * hms-time = time-field ":" time-field ":" time-field
+ * time-field = 1*2DIGIT
+ */
- __propKey = function (x) {
- return typeof x === "symbol" ? x : "".concat(x);
- };
+ if (parts.length !== 3) {
+ return null;
+ }
- __setFunctionName = function (f, name, prefix) {
- if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
- return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
- };
+ for (let i = 0; i < 3; i++) {
+ // "time-field" must be strictly "1*2DIGIT", HOWEVER, "hms-time" can be
+ // followed by "( non-digit *OCTET )" so therefore the last time-field can
+ // have a trailer
+ const trailingOK = i == 2;
+ const num = parseDigits(parts[i], 1, 2, trailingOK);
+ if (num === null) {
+ return null;
+ }
+ result[i] = num;
+ }
- __metadata = function (metadataKey, metadataValue) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
- };
+ return result;
+}
- __awaiter = function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
- };
+function parseMonth(token) {
+ token = String(token)
+ .substr(0, 3)
+ .toLowerCase();
+ const num = MONTH_TO_NUM[token];
+ return num >= 0 ? num : null;
+}
- __generator = function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
- function verb(n) { return function (v) { return step([n, v]); }; }
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
- switch (op[0]) {
- case 0: case 1: t = op; break;
- case 4: _.label++; return { value: op[1], done: false };
- case 5: _.label++; y = op[1]; op = [0]; continue;
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
- if (t[2]) _.ops.pop();
- _.trys.pop(); continue;
- }
- op = body.call(thisArg, _);
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
- }
- };
+/*
+ * RFC6265 S5.1.1 date parser (see RFC for full grammar)
+ */
+function parseDate(str) {
+ if (!str) {
+ return;
+ }
- __exportStar = function(m, o) {
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
- };
+ /* RFC6265 S5.1.1:
+ * 2. Process each date-token sequentially in the order the date-tokens
+ * appear in the cookie-date
+ */
+ const tokens = str.split(DATE_DELIM);
+ if (!tokens) {
+ return;
+ }
- __createBinding = Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- var desc = Object.getOwnPropertyDescriptor(m, k);
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
- desc = { enumerable: true, get: function() { return m[k]; } };
- }
- Object.defineProperty(o, k2, desc);
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- });
+ let hour = null;
+ let minute = null;
+ let second = null;
+ let dayOfMonth = null;
+ let month = null;
+ let year = null;
- __values = function (o) {
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
- if (m) return m.call(o);
- if (o && typeof o.length === "number") return {
- next: function () {
- if (o && i >= o.length) o = void 0;
- return { value: o && o[i++], done: !o };
- }
- };
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
- };
+ for (let i = 0; i < tokens.length; i++) {
+ const token = tokens[i].trim();
+ if (!token.length) {
+ continue;
+ }
- __read = function (o, n) {
- var m = typeof Symbol === "function" && o[Symbol.iterator];
- if (!m) return o;
- var i = m.call(o), r, ar = [], e;
- try {
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
- }
- catch (error) { e = { error: error }; }
- finally {
- try {
- if (r && !r.done && (m = i["return"])) m.call(i);
- }
- finally { if (e) throw e.error; }
- }
- return ar;
- };
+ let result;
- /** @deprecated */
- __spread = function () {
- for (var ar = [], i = 0; i < arguments.length; i++)
- ar = ar.concat(__read(arguments[i]));
- return ar;
- };
+ /* 2.1. If the found-time flag is not set and the token matches the time
+ * production, set the found-time flag and set the hour- value,
+ * minute-value, and second-value to the numbers denoted by the digits in
+ * the date-token, respectively. Skip the remaining sub-steps and continue
+ * to the next date-token.
+ */
+ if (second === null) {
+ result = parseTime(token);
+ if (result) {
+ hour = result[0];
+ minute = result[1];
+ second = result[2];
+ continue;
+ }
+ }
- /** @deprecated */
- __spreadArrays = function () {
- for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
- for (var r = Array(s), k = 0, i = 0; i < il; i++)
- for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
- r[k] = a[j];
- return r;
- };
+ /* 2.2. If the found-day-of-month flag is not set and the date-token matches
+ * the day-of-month production, set the found-day-of- month flag and set
+ * the day-of-month-value to the number denoted by the date-token. Skip
+ * the remaining sub-steps and continue to the next date-token.
+ */
+ if (dayOfMonth === null) {
+ // "day-of-month = 1*2DIGIT ( non-digit *OCTET )"
+ result = parseDigits(token, 1, 2, true);
+ if (result !== null) {
+ dayOfMonth = result;
+ continue;
+ }
+ }
- __spreadArray = function (to, from, pack) {
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
- if (ar || !(i in from)) {
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
- ar[i] = from[i];
- }
- }
- return to.concat(ar || Array.prototype.slice.call(from));
- };
+ /* 2.3. If the found-month flag is not set and the date-token matches the
+ * month production, set the found-month flag and set the month-value to
+ * the month denoted by the date-token. Skip the remaining sub-steps and
+ * continue to the next date-token.
+ */
+ if (month === null) {
+ result = parseMonth(token);
+ if (result !== null) {
+ month = result;
+ continue;
+ }
+ }
- __await = function (v) {
- return this instanceof __await ? (this.v = v, this) : new __await(v);
- };
+ /* 2.4. If the found-year flag is not set and the date-token matches the
+ * year production, set the found-year flag and set the year-value to the
+ * number denoted by the date-token. Skip the remaining sub-steps and
+ * continue to the next date-token.
+ */
+ if (year === null) {
+ // "year = 2*4DIGIT ( non-digit *OCTET )"
+ result = parseDigits(token, 2, 4, true);
+ if (result !== null) {
+ year = result;
+ /* From S5.1.1:
+ * 3. If the year-value is greater than or equal to 70 and less
+ * than or equal to 99, increment the year-value by 1900.
+ * 4. If the year-value is greater than or equal to 0 and less
+ * than or equal to 69, increment the year-value by 2000.
+ */
+ if (year >= 70 && year <= 99) {
+ year += 1900;
+ } else if (year >= 0 && year <= 69) {
+ year += 2000;
+ }
+ }
+ }
+ }
- __asyncGenerator = function (thisArg, _arguments, generator) {
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
- var g = generator.apply(thisArg, _arguments || []), i, q = [];
- return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
- function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
- function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
- function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
- function fulfill(value) { resume("next", value); }
- function reject(value) { resume("throw", value); }
- function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
- };
+ /* RFC 6265 S5.1.1
+ * "5. Abort these steps and fail to parse the cookie-date if:
+ * * at least one of the found-day-of-month, found-month, found-
+ * year, or found-time flags is not set,
+ * * the day-of-month-value is less than 1 or greater than 31,
+ * * the year-value is less than 1601,
+ * * the hour-value is greater than 23,
+ * * the minute-value is greater than 59, or
+ * * the second-value is greater than 59.
+ * (Note that leap seconds cannot be represented in this syntax.)"
+ *
+ * So, in order as above:
+ */
+ if (
+ dayOfMonth === null ||
+ month === null ||
+ year === null ||
+ second === null ||
+ dayOfMonth < 1 ||
+ dayOfMonth > 31 ||
+ year < 1601 ||
+ hour > 23 ||
+ minute > 59 ||
+ second > 59
+ ) {
+ return;
+ }
- __asyncDelegator = function (o) {
- var i, p;
- return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
- function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
- };
+ return new Date(Date.UTC(year, month, dayOfMonth, hour, minute, second));
+}
- __asyncValues = function (o) {
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
- var m = o[Symbol.asyncIterator], i;
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
- };
+function formatDate(date) {
+ return date.toUTCString();
+}
- __makeTemplateObject = function (cooked, raw) {
- if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
- return cooked;
- };
+// S5.1.2 Canonicalized Host Names
+function canonicalDomain(str) {
+ if (str == null) {
+ return null;
+ }
+ str = str.trim().replace(/^\./, ""); // S4.1.2.3 & S5.2.3: ignore leading .
- var __setModuleDefault = Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- };
+ // convert to IDN if any non-ASCII characters
+ if (punycode && /[^\u0001-\u007f]/.test(str)) {
+ str = punycode.toASCII(str);
+ }
- __importStar = function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
+ return str.toLowerCase();
+}
- __importDefault = function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
+// S5.1.3 Domain Matching
+function domainMatch(str, domStr, canonicalize) {
+ if (str == null || domStr == null) {
+ return null;
+ }
+ if (canonicalize !== false) {
+ str = canonicalDomain(str);
+ domStr = canonicalDomain(domStr);
+ }
- __classPrivateFieldGet = function (receiver, state, kind, f) {
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
- };
+ /*
+ * S5.1.3:
+ * "A string domain-matches a given domain string if at least one of the
+ * following conditions hold:"
+ *
+ * " o The domain string and the string are identical. (Note that both the
+ * domain string and the string will have been canonicalized to lower case at
+ * this point)"
+ */
+ if (str == domStr) {
+ return true;
+ }
- __classPrivateFieldSet = function (receiver, state, value, kind, f) {
- if (kind === "m") throw new TypeError("Private method is not writable");
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
- };
+ /* " o All of the following [three] conditions hold:" */
- __classPrivateFieldIn = function (state, receiver) {
- if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object");
- return typeof state === "function" ? receiver === state : state.has(receiver);
- };
+ /* "* The domain string is a suffix of the string" */
+ const idx = str.indexOf(domStr);
+ if (idx <= 0) {
+ return false; // it's a non-match (-1) or prefix (0)
+ }
- exporter("__extends", __extends);
- exporter("__assign", __assign);
- exporter("__rest", __rest);
- exporter("__decorate", __decorate);
- exporter("__param", __param);
- exporter("__esDecorate", __esDecorate);
- exporter("__runInitializers", __runInitializers);
- exporter("__propKey", __propKey);
- exporter("__setFunctionName", __setFunctionName);
- exporter("__metadata", __metadata);
- exporter("__awaiter", __awaiter);
- exporter("__generator", __generator);
- exporter("__exportStar", __exportStar);
- exporter("__createBinding", __createBinding);
- exporter("__values", __values);
- exporter("__read", __read);
- exporter("__spread", __spread);
- exporter("__spreadArrays", __spreadArrays);
- exporter("__spreadArray", __spreadArray);
- exporter("__await", __await);
- exporter("__asyncGenerator", __asyncGenerator);
- exporter("__asyncDelegator", __asyncDelegator);
- exporter("__asyncValues", __asyncValues);
- exporter("__makeTemplateObject", __makeTemplateObject);
- exporter("__importStar", __importStar);
- exporter("__importDefault", __importDefault);
- exporter("__classPrivateFieldGet", __classPrivateFieldGet);
- exporter("__classPrivateFieldSet", __classPrivateFieldSet);
- exporter("__classPrivateFieldIn", __classPrivateFieldIn);
-});
+ // next, check it's a proper suffix
+ // e.g., "a.b.c".indexOf("b.c") === 2
+ // 5 === 3+2
+ if (str.length !== domStr.length + idx) {
+ return false; // it's not a suffix
+ }
+ /* " * The last character of the string that is not included in the
+ * domain string is a %x2E (".") character." */
+ if (str.substr(idx-1,1) !== '.') {
+ return false; // doesn't align on "."
+ }
-/***/ }),
+ /* " * The string is a host name (i.e., not an IP address)." */
+ if (IP_REGEX_LOWERCASE.test(str)) {
+ return false; // it's an IP address
+ }
-/***/ 3415:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+ return true;
+}
-"use strict";
+// RFC6265 S5.1.4 Paths and Path-Match
+/*
+ * "The user agent MUST use an algorithm equivalent to the following algorithm
+ * to compute the default-path of a cookie:"
+ *
+ * Assumption: the path (and not query part or absolute uri) is passed in.
+ */
+function defaultPath(path) {
+ // "2. If the uri-path is empty or if the first character of the uri-path is not
+ // a %x2F ("/") character, output %x2F ("/") and skip the remaining steps.
+ if (!path || path.substr(0, 1) !== "/") {
+ return "/";
+ }
-Object.defineProperty(exports, "__esModule", ({
- value: true
-}));
-Object.defineProperty(exports, "v1", ({
- enumerable: true,
- get: function () {
- return _v.default;
+ // "3. If the uri-path contains no more than one %x2F ("/") character, output
+ // %x2F ("/") and skip the remaining step."
+ if (path === "/") {
+ return path;
}
-}));
-Object.defineProperty(exports, "v3", ({
- enumerable: true,
- get: function () {
- return _v2.default;
+
+ const rightSlash = path.lastIndexOf("/");
+ if (rightSlash === 0) {
+ return "/";
}
-}));
-Object.defineProperty(exports, "v4", ({
- enumerable: true,
- get: function () {
- return _v3.default;
+
+ // "4. Output the characters of the uri-path from the first character up to,
+ // but not including, the right-most %x2F ("/")."
+ return path.slice(0, rightSlash);
+}
+
+function trimTerminator(str) {
+ for (let t = 0; t < TERMINATORS.length; t++) {
+ const terminatorIdx = str.indexOf(TERMINATORS[t]);
+ if (terminatorIdx !== -1) {
+ str = str.substr(0, terminatorIdx);
+ }
}
-}));
-Object.defineProperty(exports, "v5", ({
- enumerable: true,
- get: function () {
- return _v4.default;
+
+ return str;
+}
+
+function parseCookiePair(cookiePair, looseMode) {
+ cookiePair = trimTerminator(cookiePair);
+
+ let firstEq = cookiePair.indexOf("=");
+ if (looseMode) {
+ if (firstEq === 0) {
+ // '=' is immediately at start
+ cookiePair = cookiePair.substr(1);
+ firstEq = cookiePair.indexOf("="); // might still need to split on '='
+ }
+ } else {
+ // non-loose mode
+ if (firstEq <= 0) {
+ // no '=' or is at start
+ return; // needs to have non-empty "cookie-name"
+ }
}
-}));
-Object.defineProperty(exports, "NIL", ({
- enumerable: true,
- get: function () {
- return _nil.default;
+
+ let cookieName, cookieValue;
+ if (firstEq <= 0) {
+ cookieName = "";
+ cookieValue = cookiePair.trim();
+ } else {
+ cookieName = cookiePair.substr(0, firstEq).trim();
+ cookieValue = cookiePair.substr(firstEq + 1).trim();
}
-}));
-Object.defineProperty(exports, "version", ({
- enumerable: true,
- get: function () {
- return _version.default;
+
+ if (CONTROL_CHARS.test(cookieName) || CONTROL_CHARS.test(cookieValue)) {
+ return;
}
-}));
-Object.defineProperty(exports, "validate", ({
- enumerable: true,
- get: function () {
- return _validate.default;
+
+ const c = new Cookie();
+ c.key = cookieName;
+ c.value = cookieValue;
+ return c;
+}
+
+function parse(str, options) {
+ if (!options || typeof options !== "object") {
+ options = {};
}
-}));
-Object.defineProperty(exports, "stringify", ({
- enumerable: true,
- get: function () {
- return _stringify.default;
+ str = str.trim();
+
+ // We use a regex to parse the "name-value-pair" part of S5.2
+ const firstSemi = str.indexOf(";"); // S5.2 step 1
+ const cookiePair = firstSemi === -1 ? str : str.substr(0, firstSemi);
+ const c = parseCookiePair(cookiePair, !!options.loose);
+ if (!c) {
+ return;
}
-}));
-Object.defineProperty(exports, "parse", ({
- enumerable: true,
- get: function () {
- return _parse.default;
+
+ if (firstSemi === -1) {
+ return c;
}
-}));
-var _v = _interopRequireDefault(__nccwpck_require__(4757));
+ // S5.2.3 "unparsed-attributes consist of the remainder of the set-cookie-string
+ // (including the %x3B (";") in question)." plus later on in the same section
+ // "discard the first ";" and trim".
+ const unparsed = str.slice(firstSemi + 1).trim();
-var _v2 = _interopRequireDefault(__nccwpck_require__(9982));
+ // "If the unparsed-attributes string is empty, skip the rest of these
+ // steps."
+ if (unparsed.length === 0) {
+ return c;
+ }
-var _v3 = _interopRequireDefault(__nccwpck_require__(5393));
+ /*
+ * S5.2 says that when looping over the items "[p]rocess the attribute-name
+ * and attribute-value according to the requirements in the following
+ * subsections" for every item. Plus, for many of the individual attributes
+ * in S5.3 it says to use the "attribute-value of the last attribute in the
+ * cookie-attribute-list". Therefore, in this implementation, we overwrite
+ * the previous value.
+ */
+ const cookie_avs = unparsed.split(";");
+ while (cookie_avs.length) {
+ const av = cookie_avs.shift().trim();
+ if (av.length === 0) {
+ // happens if ";;" appears
+ continue;
+ }
+ const av_sep = av.indexOf("=");
+ let av_key, av_value;
-var _v4 = _interopRequireDefault(__nccwpck_require__(8788));
+ if (av_sep === -1) {
+ av_key = av;
+ av_value = null;
+ } else {
+ av_key = av.substr(0, av_sep);
+ av_value = av.substr(av_sep + 1);
+ }
-var _nil = _interopRequireDefault(__nccwpck_require__(657));
+ av_key = av_key.trim().toLowerCase();
-var _version = _interopRequireDefault(__nccwpck_require__(7909));
+ if (av_value) {
+ av_value = av_value.trim();
+ }
-var _validate = _interopRequireDefault(__nccwpck_require__(4418));
+ switch (av_key) {
+ case "expires": // S5.2.1
+ if (av_value) {
+ const exp = parseDate(av_value);
+ // "If the attribute-value failed to parse as a cookie date, ignore the
+ // cookie-av."
+ if (exp) {
+ // over and underflow not realistically a concern: V8's getTime() seems to
+ // store something larger than a 32-bit time_t (even with 32-bit node)
+ c.expires = exp;
+ }
+ }
+ break;
-var _stringify = _interopRequireDefault(__nccwpck_require__(4794));
+ case "max-age": // S5.2.2
+ if (av_value) {
+ // "If the first character of the attribute-value is not a DIGIT or a "-"
+ // character ...[or]... If the remainder of attribute-value contains a
+ // non-DIGIT character, ignore the cookie-av."
+ if (/^-?[0-9]+$/.test(av_value)) {
+ const delta = parseInt(av_value, 10);
+ // "If delta-seconds is less than or equal to zero (0), let expiry-time
+ // be the earliest representable date and time."
+ c.setMaxAge(delta);
+ }
+ }
+ break;
-var _parse = _interopRequireDefault(__nccwpck_require__(7079));
+ case "domain": // S5.2.3
+ // "If the attribute-value is empty, the behavior is undefined. However,
+ // the user agent SHOULD ignore the cookie-av entirely."
+ if (av_value) {
+ // S5.2.3 "Let cookie-domain be the attribute-value without the leading %x2E
+ // (".") character."
+ const domain = av_value.trim().replace(/^\./, "");
+ if (domain) {
+ // "Convert the cookie-domain to lower case."
+ c.domain = domain.toLowerCase();
+ }
+ }
+ break;
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+ case "path": // S5.2.4
+ /*
+ * "If the attribute-value is empty or if the first character of the
+ * attribute-value is not %x2F ("/"):
+ * Let cookie-path be the default-path.
+ * Otherwise:
+ * Let cookie-path be the attribute-value."
+ *
+ * We'll represent the default-path as null since it depends on the
+ * context of the parsing.
+ */
+ c.path = av_value && av_value[0] === "/" ? av_value : null;
+ break;
-/***/ }),
+ case "secure": // S5.2.5
+ /*
+ * "If the attribute-name case-insensitively matches the string "Secure",
+ * the user agent MUST append an attribute to the cookie-attribute-list
+ * with an attribute-name of Secure and an empty attribute-value."
+ */
+ c.secure = true;
+ break;
-/***/ 4153:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+ case "httponly": // S5.2.6 -- effectively the same as 'secure'
+ c.httpOnly = true;
+ break;
-"use strict";
+ case "samesite": // RFC6265bis-02 S5.3.7
+ const enforcement = av_value ? av_value.toLowerCase() : "";
+ switch (enforcement) {
+ case "strict":
+ c.sameSite = "strict";
+ break;
+ case "lax":
+ c.sameSite = "lax";
+ break;
+ default:
+ // RFC6265bis-02 S5.3.7 step 1:
+ // "If cookie-av's attribute-value is not a case-insensitive match
+ // for "Strict" or "Lax", ignore the "cookie-av"."
+ // This effectively sets it to 'none' from the prototype.
+ break;
+ }
+ break;
+ default:
+ c.extensions = c.extensions || [];
+ c.extensions.push(av);
+ break;
+ }
+ }
-Object.defineProperty(exports, "__esModule", ({
- value: true
-}));
-exports["default"] = void 0;
+ return c;
+}
-var _crypto = _interopRequireDefault(__nccwpck_require__(6113));
+/**
+ * If the cookie-name begins with a case-sensitive match for the
+ * string "__Secure-", abort these steps and ignore the cookie
+ * entirely unless the cookie's secure-only-flag is true.
+ * @param cookie
+ * @returns boolean
+ */
+function isSecurePrefixConditionMet(cookie) {
+ return !cookie.key.startsWith("__Secure-") || cookie.secure;
+}
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+/**
+ * If the cookie-name begins with a case-sensitive match for the
+ * string "__Host-", abort these steps and ignore the cookie
+ * entirely unless the cookie meets all the following criteria:
+ * 1. The cookie's secure-only-flag is true.
+ * 2. The cookie's host-only-flag is true.
+ * 3. The cookie-attribute-list contains an attribute with an
+ * attribute-name of "Path", and the cookie's path is "/".
+ * @param cookie
+ * @returns boolean
+ */
+function isHostPrefixConditionMet(cookie) {
+ return (
+ !cookie.key.startsWith("__Host-") ||
+ (cookie.secure &&
+ cookie.hostOnly &&
+ cookie.path != null &&
+ cookie.path === "/")
+ );
+}
-function md5(bytes) {
- if (Array.isArray(bytes)) {
- bytes = Buffer.from(bytes);
- } else if (typeof bytes === 'string') {
- bytes = Buffer.from(bytes, 'utf8');
+// avoid the V8 deoptimization monster!
+function jsonParse(str) {
+ let obj;
+ try {
+ obj = JSON.parse(str);
+ } catch (e) {
+ return e;
}
-
- return _crypto.default.createHash('md5').update(bytes).digest();
+ return obj;
}
-var _default = md5;
-exports["default"] = _default;
-
-/***/ }),
-
-/***/ 657:
-/***/ ((__unused_webpack_module, exports) => {
+function fromJSON(str) {
+ if (!str) {
+ return null;
+ }
-"use strict";
+ let obj;
+ if (typeof str === "string") {
+ obj = jsonParse(str);
+ if (obj instanceof Error) {
+ return null;
+ }
+ } else {
+ // assume it's an Object
+ obj = str;
+ }
+ const c = new Cookie();
+ for (let i = 0; i < Cookie.serializableProperties.length; i++) {
+ const prop = Cookie.serializableProperties[i];
+ if (obj[prop] === undefined || obj[prop] === cookieDefaults[prop]) {
+ continue; // leave as prototype default
+ }
-Object.defineProperty(exports, "__esModule", ({
- value: true
-}));
-exports["default"] = void 0;
-var _default = '00000000-0000-0000-0000-000000000000';
-exports["default"] = _default;
+ if (prop === "expires" || prop === "creation" || prop === "lastAccessed") {
+ if (obj[prop] === null) {
+ c[prop] = null;
+ } else {
+ c[prop] = obj[prop] == "Infinity" ? "Infinity" : new Date(obj[prop]);
+ }
+ } else {
+ c[prop] = obj[prop];
+ }
+ }
-/***/ }),
+ return c;
+}
-/***/ 7079:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+/* Section 5.4 part 2:
+ * "* Cookies with longer paths are listed before cookies with
+ * shorter paths.
+ *
+ * * Among cookies that have equal-length path fields, cookies with
+ * earlier creation-times are listed before cookies with later
+ * creation-times."
+ */
-"use strict";
+function cookieCompare(a, b) {
+ let cmp = 0;
+ // descending for length: b CMP a
+ const aPathLen = a.path ? a.path.length : 0;
+ const bPathLen = b.path ? b.path.length : 0;
+ cmp = bPathLen - aPathLen;
+ if (cmp !== 0) {
+ return cmp;
+ }
-Object.defineProperty(exports, "__esModule", ({
- value: true
-}));
-exports["default"] = void 0;
+ // ascending for time: a CMP b
+ const aTime = a.creation ? a.creation.getTime() : MAX_TIME;
+ const bTime = b.creation ? b.creation.getTime() : MAX_TIME;
+ cmp = aTime - bTime;
+ if (cmp !== 0) {
+ return cmp;
+ }
-var _validate = _interopRequireDefault(__nccwpck_require__(4418));
+ // break ties for the same millisecond (precision of JavaScript's clock)
+ cmp = a.creationIndex - b.creationIndex;
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+ return cmp;
+}
-function parse(uuid) {
- if (!(0, _validate.default)(uuid)) {
- throw TypeError('Invalid UUID');
+// Gives the permutation of all possible pathMatch()es of a given path. The
+// array is in longest-to-shortest order. Handy for indexing.
+function permutePath(path) {
+ if (path === "/") {
+ return ["/"];
+ }
+ const permutations = [path];
+ while (path.length > 1) {
+ const lindex = path.lastIndexOf("/");
+ if (lindex === 0) {
+ break;
+ }
+ path = path.substr(0, lindex);
+ permutations.push(path);
}
+ permutations.push("/");
+ return permutations;
+}
- let v;
- const arr = new Uint8Array(16); // Parse ########-....-....-....-............
+function getCookieContext(url) {
+ if (url instanceof Object) {
+ return url;
+ }
+ // NOTE: decodeURI will throw on malformed URIs (see GH-32).
+ // Therefore, we will just skip decoding for such URIs.
+ try {
+ url = decodeURI(url);
+ } catch (err) {
+ // Silently swallow error
+ }
- arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;
- arr[1] = v >>> 16 & 0xff;
- arr[2] = v >>> 8 & 0xff;
- arr[3] = v & 0xff; // Parse ........-####-....-....-............
+ return urlParse(url);
+}
- arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;
- arr[5] = v & 0xff; // Parse ........-....-####-....-............
+const cookieDefaults = {
+ // the order in which the RFC has them:
+ key: "",
+ value: "",
+ expires: "Infinity",
+ maxAge: null,
+ domain: null,
+ path: null,
+ secure: false,
+ httpOnly: false,
+ extensions: null,
+ // set by the CookieJar:
+ hostOnly: null,
+ pathIsDefault: null,
+ creation: null,
+ lastAccessed: null,
+ sameSite: "none"
+};
- arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;
- arr[7] = v & 0xff; // Parse ........-....-....-####-............
+class Cookie {
+ constructor(options = {}) {
+ if (util.inspect.custom) {
+ this[util.inspect.custom] = this.inspect;
+ }
- arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;
- arr[9] = v & 0xff; // Parse ........-....-....-....-############
- // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes)
+ Object.assign(this, cookieDefaults, options);
+ this.creation = this.creation || new Date();
- arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;
- arr[11] = v / 0x100000000 & 0xff;
- arr[12] = v >>> 24 & 0xff;
- arr[13] = v >>> 16 & 0xff;
- arr[14] = v >>> 8 & 0xff;
- arr[15] = v & 0xff;
- return arr;
-}
+ // used to break creation ties in cookieCompare():
+ Object.defineProperty(this, "creationIndex", {
+ configurable: false,
+ enumerable: false, // important for assert.deepEqual checks
+ writable: true,
+ value: ++Cookie.cookiesCreated
+ });
+ }
-var _default = parse;
-exports["default"] = _default;
+ inspect() {
+ const now = Date.now();
+ const hostOnly = this.hostOnly != null ? this.hostOnly : "?";
+ const createAge = this.creation
+ ? `${now - this.creation.getTime()}ms`
+ : "?";
+ const accessAge = this.lastAccessed
+ ? `${now - this.lastAccessed.getTime()}ms`
+ : "?";
+ return `Cookie="${this.toString()}; hostOnly=${hostOnly}; aAge=${accessAge}; cAge=${createAge}"`;
+ }
-/***/ }),
+ toJSON() {
+ const obj = {};
-/***/ 690:
-/***/ ((__unused_webpack_module, exports) => {
+ for (const prop of Cookie.serializableProperties) {
+ if (this[prop] === cookieDefaults[prop]) {
+ continue; // leave as prototype default
+ }
-"use strict";
+ if (
+ prop === "expires" ||
+ prop === "creation" ||
+ prop === "lastAccessed"
+ ) {
+ if (this[prop] === null) {
+ obj[prop] = null;
+ } else {
+ obj[prop] =
+ this[prop] == "Infinity" // intentionally not ===
+ ? "Infinity"
+ : this[prop].toISOString();
+ }
+ } else if (prop === "maxAge") {
+ if (this[prop] !== null) {
+ // again, intentionally not ===
+ obj[prop] =
+ this[prop] == Infinity || this[prop] == -Infinity
+ ? this[prop].toString()
+ : this[prop];
+ }
+ } else {
+ if (this[prop] !== cookieDefaults[prop]) {
+ obj[prop] = this[prop];
+ }
+ }
+ }
+ return obj;
+ }
-Object.defineProperty(exports, "__esModule", ({
- value: true
-}));
-exports["default"] = void 0;
-var _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
-exports["default"] = _default;
+ clone() {
+ return fromJSON(this.toJSON());
+ }
-/***/ }),
+ validate() {
+ if (!COOKIE_OCTETS.test(this.value)) {
+ return false;
+ }
+ if (
+ this.expires != Infinity &&
+ !(this.expires instanceof Date) &&
+ !parseDate(this.expires)
+ ) {
+ return false;
+ }
+ if (this.maxAge != null && this.maxAge <= 0) {
+ return false; // "Max-Age=" non-zero-digit *DIGIT
+ }
+ if (this.path != null && !PATH_VALUE.test(this.path)) {
+ return false;
+ }
-/***/ 979:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+ const cdomain = this.cdomain();
+ if (cdomain) {
+ if (cdomain.match(/\.$/)) {
+ return false; // S4.1.2.3 suggests that this is bad. domainMatch() tests confirm this
+ }
+ const suffix = pubsuffix.getPublicSuffix(cdomain);
+ if (suffix == null) {
+ // it's a public suffix
+ return false;
+ }
+ }
+ return true;
+ }
-"use strict";
+ setExpires(exp) {
+ if (exp instanceof Date) {
+ this.expires = exp;
+ } else {
+ this.expires = parseDate(exp) || "Infinity";
+ }
+ }
+ setMaxAge(age) {
+ if (age === Infinity || age === -Infinity) {
+ this.maxAge = age.toString(); // so JSON.stringify() works
+ } else {
+ this.maxAge = age;
+ }
+ }
-Object.defineProperty(exports, "__esModule", ({
- value: true
-}));
-exports["default"] = rng;
+ cookieString() {
+ let val = this.value;
+ if (val == null) {
+ val = "";
+ }
+ if (this.key === "") {
+ return val;
+ }
+ return `${this.key}=${val}`;
+ }
-var _crypto = _interopRequireDefault(__nccwpck_require__(6113));
+ // gives Set-Cookie header format
+ toString() {
+ let str = this.cookieString();
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+ if (this.expires != Infinity) {
+ if (this.expires instanceof Date) {
+ str += `; Expires=${formatDate(this.expires)}`;
+ } else {
+ str += `; Expires=${this.expires}`;
+ }
+ }
-const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate
+ if (this.maxAge != null && this.maxAge != Infinity) {
+ str += `; Max-Age=${this.maxAge}`;
+ }
-let poolPtr = rnds8Pool.length;
+ if (this.domain && !this.hostOnly) {
+ str += `; Domain=${this.domain}`;
+ }
+ if (this.path) {
+ str += `; Path=${this.path}`;
+ }
-function rng() {
- if (poolPtr > rnds8Pool.length - 16) {
- _crypto.default.randomFillSync(rnds8Pool);
+ if (this.secure) {
+ str += "; Secure";
+ }
+ if (this.httpOnly) {
+ str += "; HttpOnly";
+ }
+ if (this.sameSite && this.sameSite !== "none") {
+ const ssCanon = Cookie.sameSiteCanonical[this.sameSite.toLowerCase()];
+ str += `; SameSite=${ssCanon ? ssCanon : this.sameSite}`;
+ }
+ if (this.extensions) {
+ this.extensions.forEach(ext => {
+ str += `; ${ext}`;
+ });
+ }
- poolPtr = 0;
+ return str;
}
- return rnds8Pool.slice(poolPtr, poolPtr += 16);
-}
+ // TTL() partially replaces the "expiry-time" parts of S5.3 step 3 (setCookie()
+ // elsewhere)
+ // S5.3 says to give the "latest representable date" for which we use Infinity
+ // For "expired" we use 0
+ TTL(now) {
+ /* RFC6265 S4.1.2.2 If a cookie has both the Max-Age and the Expires
+ * attribute, the Max-Age attribute has precedence and controls the
+ * expiration date of the cookie.
+ * (Concurs with S5.3 step 3)
+ */
+ if (this.maxAge != null) {
+ return this.maxAge <= 0 ? 0 : this.maxAge * 1000;
+ }
-/***/ }),
+ let expires = this.expires;
+ if (expires != Infinity) {
+ if (!(expires instanceof Date)) {
+ expires = parseDate(expires) || Infinity;
+ }
-/***/ 6631:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+ if (expires == Infinity) {
+ return Infinity;
+ }
-"use strict";
+ return expires.getTime() - (now || Date.now());
+ }
+ return Infinity;
+ }
-Object.defineProperty(exports, "__esModule", ({
- value: true
-}));
-exports["default"] = void 0;
+ // expiryTime() replaces the "expiry-time" parts of S5.3 step 3 (setCookie()
+ // elsewhere)
+ expiryTime(now) {
+ if (this.maxAge != null) {
+ const relativeTo = now || this.creation || new Date();
+ const age = this.maxAge <= 0 ? -Infinity : this.maxAge * 1000;
+ return relativeTo.getTime() + age;
+ }
-var _crypto = _interopRequireDefault(__nccwpck_require__(6113));
+ if (this.expires == Infinity) {
+ return Infinity;
+ }
+ return this.expires.getTime();
+ }
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+ // expiryDate() replaces the "expiry-time" parts of S5.3 step 3 (setCookie()
+ // elsewhere), except it returns a Date
+ expiryDate(now) {
+ const millisec = this.expiryTime(now);
+ if (millisec == Infinity) {
+ return new Date(MAX_TIME);
+ } else if (millisec == -Infinity) {
+ return new Date(MIN_TIME);
+ } else {
+ return new Date(millisec);
+ }
+ }
-function sha1(bytes) {
- if (Array.isArray(bytes)) {
- bytes = Buffer.from(bytes);
- } else if (typeof bytes === 'string') {
- bytes = Buffer.from(bytes, 'utf8');
+ // This replaces the "persistent-flag" parts of S5.3 step 3
+ isPersistent() {
+ return this.maxAge != null || this.expires != Infinity;
}
- return _crypto.default.createHash('sha1').update(bytes).digest();
+ // Mostly S5.1.2 and S5.2.3:
+ canonicalizedDomain() {
+ if (this.domain == null) {
+ return null;
+ }
+ return canonicalDomain(this.domain);
+ }
+
+ cdomain() {
+ return this.canonicalizedDomain();
+ }
}
-var _default = sha1;
-exports["default"] = _default;
+Cookie.cookiesCreated = 0;
+Cookie.parse = parse;
+Cookie.fromJSON = fromJSON;
+Cookie.serializableProperties = Object.keys(cookieDefaults);
+Cookie.sameSiteLevel = {
+ strict: 3,
+ lax: 2,
+ none: 1
+};
-/***/ }),
+Cookie.sameSiteCanonical = {
+ strict: "Strict",
+ lax: "Lax"
+};
-/***/ 4794:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+function getNormalizedPrefixSecurity(prefixSecurity) {
+ if (prefixSecurity != null) {
+ const normalizedPrefixSecurity = prefixSecurity.toLowerCase();
+ /* The three supported options */
+ switch (normalizedPrefixSecurity) {
+ case PrefixSecurityEnum.STRICT:
+ case PrefixSecurityEnum.SILENT:
+ case PrefixSecurityEnum.DISABLED:
+ return normalizedPrefixSecurity;
+ }
+ }
+ /* Default is SILENT */
+ return PrefixSecurityEnum.SILENT;
+}
-"use strict";
+class CookieJar {
+ constructor(store, options = { rejectPublicSuffixes: true }) {
+ if (typeof options === "boolean") {
+ options = { rejectPublicSuffixes: options };
+ }
+ this.rejectPublicSuffixes = options.rejectPublicSuffixes;
+ this.enableLooseMode = !!options.looseMode;
+ this.allowSpecialUseDomain = !!options.allowSpecialUseDomain;
+ this.store = store || new MemoryCookieStore();
+ this.prefixSecurity = getNormalizedPrefixSecurity(options.prefixSecurity);
+ this._cloneSync = syncWrap("clone");
+ this._importCookiesSync = syncWrap("_importCookies");
+ this.getCookiesSync = syncWrap("getCookies");
+ this.getCookieStringSync = syncWrap("getCookieString");
+ this.getSetCookieStringsSync = syncWrap("getSetCookieStrings");
+ this.removeAllCookiesSync = syncWrap("removeAllCookies");
+ this.setCookieSync = syncWrap("setCookie");
+ this.serializeSync = syncWrap("serialize");
+ }
+ setCookie(cookie, url, options, cb) {
+ let err;
+ const context = getCookieContext(url);
+ if (typeof options === "function") {
+ cb = options;
+ options = {};
+ }
-Object.defineProperty(exports, "__esModule", ({
- value: true
-}));
-exports["default"] = void 0;
+ const host = canonicalDomain(context.hostname);
+ const loose = options.loose || this.enableLooseMode;
-var _validate = _interopRequireDefault(__nccwpck_require__(4418));
+ let sameSiteContext = null;
+ if (options.sameSiteContext) {
+ sameSiteContext = checkSameSiteContext(options.sameSiteContext);
+ if (!sameSiteContext) {
+ return cb(new Error(SAME_SITE_CONTEXT_VAL_ERR));
+ }
+ }
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+ // S5.3 step 1
+ if (typeof cookie === "string" || cookie instanceof String) {
+ cookie = Cookie.parse(cookie, { loose: loose });
+ if (!cookie) {
+ err = new Error("Cookie failed to parse");
+ return cb(options.ignoreError ? null : err);
+ }
+ } else if (!(cookie instanceof Cookie)) {
+ // If you're seeing this error, and are passing in a Cookie object,
+ // it *might* be a Cookie object from another loaded version of tough-cookie.
+ err = new Error(
+ "First argument to setCookie must be a Cookie object or string"
+ );
+ return cb(options.ignoreError ? null : err);
+ }
-/**
- * Convert array of 16 byte values to UUID string format of the form:
- * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
- */
-const byteToHex = [];
+ // S5.3 step 2
+ const now = options.now || new Date(); // will assign later to save effort in the face of errors
-for (let i = 0; i < 256; ++i) {
- byteToHex.push((i + 0x100).toString(16).substr(1));
-}
+ // S5.3 step 3: NOOP; persistent-flag and expiry-time is handled by getCookie()
-function stringify(arr, offset = 0) {
- // Note: Be careful editing this code! It's been tuned for performance
- // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
- const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one
- // of the following:
- // - One or more input array values don't map to a hex octet (leading to
- // "undefined" in the uuid)
- // - Invalid input values for the RFC `version` or `variant` fields
+ // S5.3 step 4: NOOP; domain is null by default
- if (!(0, _validate.default)(uuid)) {
- throw TypeError('Stringified UUID is invalid');
- }
+ // S5.3 step 5: public suffixes
+ if (this.rejectPublicSuffixes && cookie.domain) {
+ const suffix = pubsuffix.getPublicSuffix(cookie.cdomain());
+ if (suffix == null) {
+ // e.g. "com"
+ err = new Error("Cookie has domain set to a public suffix");
+ return cb(options.ignoreError ? null : err);
+ }
+ }
- return uuid;
-}
+ // S5.3 step 6:
+ if (cookie.domain) {
+ if (!domainMatch(host, cookie.cdomain(), false)) {
+ err = new Error(
+ `Cookie not in this host's domain. Cookie:${cookie.cdomain()} Request:${host}`
+ );
+ return cb(options.ignoreError ? null : err);
+ }
-var _default = stringify;
-exports["default"] = _default;
+ if (cookie.hostOnly == null) {
+ // don't reset if already set
+ cookie.hostOnly = false;
+ }
+ } else {
+ cookie.hostOnly = true;
+ cookie.domain = host;
+ }
+
+ //S5.2.4 If the attribute-value is empty or if the first character of the
+ //attribute-value is not %x2F ("/"):
+ //Let cookie-path be the default-path.
+ if (!cookie.path || cookie.path[0] !== "/") {
+ cookie.path = defaultPath(context.pathname);
+ cookie.pathIsDefault = true;
+ }
+
+ // S5.3 step 8: NOOP; secure attribute
+ // S5.3 step 9: NOOP; httpOnly attribute
+
+ // S5.3 step 10
+ if (options.http === false && cookie.httpOnly) {
+ err = new Error("Cookie is HttpOnly and this isn't an HTTP API");
+ return cb(options.ignoreError ? null : err);
+ }
+
+ // 6252bis-02 S5.4 Step 13 & 14:
+ if (cookie.sameSite !== "none" && sameSiteContext) {
+ // "If the cookie's "same-site-flag" is not "None", and the cookie
+ // is being set from a context whose "site for cookies" is not an
+ // exact match for request-uri's host's registered domain, then
+ // abort these steps and ignore the newly created cookie entirely."
+ if (sameSiteContext === "none") {
+ err = new Error(
+ "Cookie is SameSite but this is a cross-origin request"
+ );
+ return cb(options.ignoreError ? null : err);
+ }
+ }
+
+ /* 6265bis-02 S5.4 Steps 15 & 16 */
+ const ignoreErrorForPrefixSecurity =
+ this.prefixSecurity === PrefixSecurityEnum.SILENT;
+ const prefixSecurityDisabled =
+ this.prefixSecurity === PrefixSecurityEnum.DISABLED;
+ /* If prefix checking is not disabled ...*/
+ if (!prefixSecurityDisabled) {
+ let errorFound = false;
+ let errorMsg;
+ /* Check secure prefix condition */
+ if (!isSecurePrefixConditionMet(cookie)) {
+ errorFound = true;
+ errorMsg = "Cookie has __Secure prefix but Secure attribute is not set";
+ } else if (!isHostPrefixConditionMet(cookie)) {
+ /* Check host prefix condition */
+ errorFound = true;
+ errorMsg =
+ "Cookie has __Host prefix but either Secure or HostOnly attribute is not set or Path is not '/'";
+ }
+ if (errorFound) {
+ return cb(
+ options.ignoreError || ignoreErrorForPrefixSecurity
+ ? null
+ : new Error(errorMsg)
+ );
+ }
+ }
+
+ const store = this.store;
+
+ if (!store.updateCookie) {
+ store.updateCookie = function(oldCookie, newCookie, cb) {
+ this.putCookie(newCookie, cb);
+ };
+ }
-/***/ }),
+ function withCookie(err, oldCookie) {
+ if (err) {
+ return cb(err);
+ }
-/***/ 4757:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+ const next = function(err) {
+ if (err) {
+ return cb(err);
+ } else {
+ cb(null, cookie);
+ }
+ };
-"use strict";
+ if (oldCookie) {
+ // S5.3 step 11 - "If the cookie store contains a cookie with the same name,
+ // domain, and path as the newly created cookie:"
+ if (options.http === false && oldCookie.httpOnly) {
+ // step 11.2
+ err = new Error("old Cookie is HttpOnly and this isn't an HTTP API");
+ return cb(options.ignoreError ? null : err);
+ }
+ cookie.creation = oldCookie.creation; // step 11.3
+ cookie.creationIndex = oldCookie.creationIndex; // preserve tie-breaker
+ cookie.lastAccessed = now;
+ // Step 11.4 (delete cookie) is implied by just setting the new one:
+ store.updateCookie(oldCookie, cookie, next); // step 12
+ } else {
+ cookie.creation = cookie.lastAccessed = now;
+ store.putCookie(cookie, next); // step 12
+ }
+ }
+ store.findCookie(cookie.domain, cookie.path, cookie.key, withCookie);
+ }
-Object.defineProperty(exports, "__esModule", ({
- value: true
-}));
-exports["default"] = void 0;
+ // RFC6365 S5.4
+ getCookies(url, options, cb) {
+ const context = getCookieContext(url);
+ if (typeof options === "function") {
+ cb = options;
+ options = {};
+ }
-var _rng = _interopRequireDefault(__nccwpck_require__(979));
+ const host = canonicalDomain(context.hostname);
+ const path = context.pathname || "/";
-var _stringify = _interopRequireDefault(__nccwpck_require__(4794));
+ let secure = options.secure;
+ if (
+ secure == null &&
+ context.protocol &&
+ (context.protocol == "https:" || context.protocol == "wss:")
+ ) {
+ secure = true;
+ }
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+ let sameSiteLevel = 0;
+ if (options.sameSiteContext) {
+ const sameSiteContext = checkSameSiteContext(options.sameSiteContext);
+ sameSiteLevel = Cookie.sameSiteLevel[sameSiteContext];
+ if (!sameSiteLevel) {
+ return cb(new Error(SAME_SITE_CONTEXT_VAL_ERR));
+ }
+ }
-// **`v1()` - Generate time-based UUID**
-//
-// Inspired by https://github.com/LiosK/UUID.js
-// and http://docs.python.org/library/uuid.html
-let _nodeId;
+ let http = options.http;
+ if (http == null) {
+ http = true;
+ }
-let _clockseq; // Previous uuid creation time
+ const now = options.now || Date.now();
+ const expireCheck = options.expire !== false;
+ const allPaths = !!options.allPaths;
+ const store = this.store;
+ function matchingCookie(c) {
+ // "Either:
+ // The cookie's host-only-flag is true and the canonicalized
+ // request-host is identical to the cookie's domain.
+ // Or:
+ // The cookie's host-only-flag is false and the canonicalized
+ // request-host domain-matches the cookie's domain."
+ if (c.hostOnly) {
+ if (c.domain != host) {
+ return false;
+ }
+ } else {
+ if (!domainMatch(host, c.domain, false)) {
+ return false;
+ }
+ }
-let _lastMSecs = 0;
-let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details
+ // "The request-uri's path path-matches the cookie's path."
+ if (!allPaths && !pathMatch(path, c.path)) {
+ return false;
+ }
-function v1(options, buf, offset) {
- let i = buf && offset || 0;
- const b = buf || new Array(16);
- options = options || {};
- let node = options.node || _nodeId;
- let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not
- // specified. We do this lazily to minimize issues related to insufficient
- // system entropy. See #189
+ // "If the cookie's secure-only-flag is true, then the request-uri's
+ // scheme must denote a "secure" protocol"
+ if (c.secure && !secure) {
+ return false;
+ }
- if (node == null || clockseq == null) {
- const seedBytes = options.random || (options.rng || _rng.default)();
+ // "If the cookie's http-only-flag is true, then exclude the cookie if the
+ // cookie-string is being generated for a "non-HTTP" API"
+ if (c.httpOnly && !http) {
+ return false;
+ }
- if (node == null) {
- // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
- node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];
- }
+ // RFC6265bis-02 S5.3.7
+ if (sameSiteLevel) {
+ const cookieLevel = Cookie.sameSiteLevel[c.sameSite || "none"];
+ if (cookieLevel > sameSiteLevel) {
+ // only allow cookies at or below the request level
+ return false;
+ }
+ }
- if (clockseq == null) {
- // Per 4.2.2, randomize (14 bit) clockseq
- clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;
+ // deferred from S5.3
+ // non-RFC: allow retention of expired cookies by choice
+ if (expireCheck && c.expiryTime() <= now) {
+ store.removeCookie(c.domain, c.path, c.key, () => {}); // result ignored
+ return false;
+ }
+
+ return true;
}
- } // UUID timestamps are 100 nano-second units since the Gregorian epoch,
- // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so
- // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
- // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.
+ store.findCookies(
+ host,
+ allPaths ? null : path,
+ this.allowSpecialUseDomain,
+ (err, cookies) => {
+ if (err) {
+ return cb(err);
+ }
- let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock
- // cycle to simulate higher resolution clock
+ cookies = cookies.filter(matchingCookie);
- let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)
+ // sorting of S5.4 part 2
+ if (options.sort !== false) {
+ cookies = cookies.sort(cookieCompare);
+ }
- const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression
+ // S5.4 part 3
+ const now = new Date();
+ for (const cookie of cookies) {
+ cookie.lastAccessed = now;
+ }
+ // TODO persist lastAccessed
- if (dt < 0 && options.clockseq === undefined) {
- clockseq = clockseq + 1 & 0x3fff;
- } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
- // time interval
+ cb(null, cookies);
+ }
+ );
+ }
+ getCookieString(...args) {
+ const cb = args.pop();
+ const next = function(err, cookies) {
+ if (err) {
+ cb(err);
+ } else {
+ cb(
+ null,
+ cookies
+ .sort(cookieCompare)
+ .map(c => c.cookieString())
+ .join("; ")
+ );
+ }
+ };
+ args.push(next);
+ this.getCookies.apply(this, args);
+ }
- if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {
- nsecs = 0;
- } // Per 4.2.1.2 Throw error if too many uuids are requested
+ getSetCookieStrings(...args) {
+ const cb = args.pop();
+ const next = function(err, cookies) {
+ if (err) {
+ cb(err);
+ } else {
+ cb(
+ null,
+ cookies.map(c => {
+ return c.toString();
+ })
+ );
+ }
+ };
+ args.push(next);
+ this.getCookies.apply(this, args);
+ }
+ serialize(cb) {
+ let type = this.store.constructor.name;
+ if (type === "Object") {
+ type = null;
+ }
- if (nsecs >= 10000) {
- throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");
- }
+ // update README.md "Serialization Format" if you change this, please!
+ const serialized = {
+ // The version of tough-cookie that serialized this jar. Generally a good
+ // practice since future versions can make data import decisions based on
+ // known past behavior. When/if this matters, use `semver`.
+ version: `tough-cookie@${VERSION}`,
- _lastMSecs = msecs;
- _lastNSecs = nsecs;
- _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch
+ // add the store type, to make humans happy:
+ storeType: type,
- msecs += 12219292800000; // `time_low`
+ // CookieJar configuration:
+ rejectPublicSuffixes: !!this.rejectPublicSuffixes,
- const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
- b[i++] = tl >>> 24 & 0xff;
- b[i++] = tl >>> 16 & 0xff;
- b[i++] = tl >>> 8 & 0xff;
- b[i++] = tl & 0xff; // `time_mid`
+ // this gets filled from getAllCookies:
+ cookies: []
+ };
- const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;
- b[i++] = tmh >>> 8 & 0xff;
- b[i++] = tmh & 0xff; // `time_high_and_version`
+ if (
+ !(
+ this.store.getAllCookies &&
+ typeof this.store.getAllCookies === "function"
+ )
+ ) {
+ return cb(
+ new Error(
+ "store does not support getAllCookies and cannot be serialized"
+ )
+ );
+ }
- b[i++] = tmh >>> 24 & 0xf | 0x10; // include version
+ this.store.getAllCookies((err, cookies) => {
+ if (err) {
+ return cb(err);
+ }
- b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)
+ serialized.cookies = cookies.map(cookie => {
+ // convert to serialized 'raw' cookies
+ cookie = cookie instanceof Cookie ? cookie.toJSON() : cookie;
- b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`
+ // Remove the index so new ones get assigned during deserialization
+ delete cookie.creationIndex;
- b[i++] = clockseq & 0xff; // `node`
+ return cookie;
+ });
- for (let n = 0; n < 6; ++n) {
- b[i + n] = node[n];
+ return cb(null, serialized);
+ });
}
- return buf || (0, _stringify.default)(b);
-}
-
-var _default = v1;
-exports["default"] = _default;
+ toJSON() {
+ return this.serializeSync();
+ }
-/***/ }),
+ // use the class method CookieJar.deserialize instead of calling this directly
+ _importCookies(serialized, cb) {
+ let cookies = serialized.cookies;
+ if (!cookies || !Array.isArray(cookies)) {
+ return cb(new Error("serialized jar has no cookies array"));
+ }
+ cookies = cookies.slice(); // do not modify the original
-/***/ 9982:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+ const putNext = err => {
+ if (err) {
+ return cb(err);
+ }
-"use strict";
+ if (!cookies.length) {
+ return cb(err, this);
+ }
+ let cookie;
+ try {
+ cookie = fromJSON(cookies.shift());
+ } catch (e) {
+ return cb(e);
+ }
-Object.defineProperty(exports, "__esModule", ({
- value: true
-}));
-exports["default"] = void 0;
+ if (cookie === null) {
+ return putNext(null); // skip this cookie
+ }
-var _v = _interopRequireDefault(__nccwpck_require__(4085));
+ this.store.putCookie(cookie, putNext);
+ };
-var _md = _interopRequireDefault(__nccwpck_require__(4153));
+ putNext();
+ }
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+ clone(newStore, cb) {
+ if (arguments.length === 1) {
+ cb = newStore;
+ newStore = null;
+ }
-const v3 = (0, _v.default)('v3', 0x30, _md.default);
-var _default = v3;
-exports["default"] = _default;
+ this.serialize((err, serialized) => {
+ if (err) {
+ return cb(err);
+ }
+ CookieJar.deserialize(serialized, newStore, cb);
+ });
+ }
-/***/ }),
+ cloneSync(newStore) {
+ if (arguments.length === 0) {
+ return this._cloneSync();
+ }
+ if (!newStore.synchronous) {
+ throw new Error(
+ "CookieJar clone destination store is not synchronous; use async API instead."
+ );
+ }
+ return this._cloneSync(newStore);
+ }
-/***/ 4085:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+ removeAllCookies(cb) {
+ const store = this.store;
-"use strict";
+ // Check that the store implements its own removeAllCookies(). The default
+ // implementation in Store will immediately call the callback with a "not
+ // implemented" Error.
+ if (
+ typeof store.removeAllCookies === "function" &&
+ store.removeAllCookies !== Store.prototype.removeAllCookies
+ ) {
+ return store.removeAllCookies(cb);
+ }
+ store.getAllCookies((err, cookies) => {
+ if (err) {
+ return cb(err);
+ }
-Object.defineProperty(exports, "__esModule", ({
- value: true
-}));
-exports["default"] = _default;
-exports.URL = exports.DNS = void 0;
+ if (cookies.length === 0) {
+ return cb(null);
+ }
-var _stringify = _interopRequireDefault(__nccwpck_require__(4794));
+ let completedCount = 0;
+ const removeErrors = [];
-var _parse = _interopRequireDefault(__nccwpck_require__(7079));
+ function removeCookieCb(removeErr) {
+ if (removeErr) {
+ removeErrors.push(removeErr);
+ }
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+ completedCount++;
-function stringToBytes(str) {
- str = unescape(encodeURIComponent(str)); // UTF8 escape
+ if (completedCount === cookies.length) {
+ return cb(removeErrors.length ? removeErrors[0] : null);
+ }
+ }
- const bytes = [];
-
- for (let i = 0; i < str.length; ++i) {
- bytes.push(str.charCodeAt(i));
+ cookies.forEach(cookie => {
+ store.removeCookie(
+ cookie.domain,
+ cookie.path,
+ cookie.key,
+ removeCookieCb
+ );
+ });
+ });
}
- return bytes;
-}
-
-const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
-exports.DNS = DNS;
-const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';
-exports.URL = URL;
-
-function _default(name, version, hashfunc) {
- function generateUUID(value, namespace, buf, offset) {
- if (typeof value === 'string') {
- value = stringToBytes(value);
+ static deserialize(strOrObj, store, cb) {
+ if (arguments.length !== 3) {
+ // store is optional
+ cb = store;
+ store = null;
}
- if (typeof namespace === 'string') {
- namespace = (0, _parse.default)(namespace);
+ let serialized;
+ if (typeof strOrObj === "string") {
+ serialized = jsonParse(strOrObj);
+ if (serialized instanceof Error) {
+ return cb(serialized);
+ }
+ } else {
+ serialized = strOrObj;
}
- if (namespace.length !== 16) {
- throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');
- } // Compute hash of namespace and value, Per 4.3
- // Future: Use spread syntax when supported on all platforms, e.g. `bytes =
- // hashfunc([...namespace, ... value])`
+ const jar = new CookieJar(store, serialized.rejectPublicSuffixes);
+ jar._importCookies(serialized, err => {
+ if (err) {
+ return cb(err);
+ }
+ cb(null, jar);
+ });
+ }
+ static deserializeSync(strOrObj, store) {
+ const serialized =
+ typeof strOrObj === "string" ? JSON.parse(strOrObj) : strOrObj;
+ const jar = new CookieJar(store, serialized.rejectPublicSuffixes);
- let bytes = new Uint8Array(16 + value.length);
- bytes.set(namespace);
- bytes.set(value, namespace.length);
- bytes = hashfunc(bytes);
- bytes[6] = bytes[6] & 0x0f | version;
- bytes[8] = bytes[8] & 0x3f | 0x80;
+ // catch this mistake early:
+ if (!jar.store.synchronous) {
+ throw new Error(
+ "CookieJar store is not synchronous; use async API instead."
+ );
+ }
- if (buf) {
- offset = offset || 0;
+ jar._importCookiesSync(serialized);
+ return jar;
+ }
+}
+CookieJar.fromJSON = CookieJar.deserializeSync;
- for (let i = 0; i < 16; ++i) {
- buf[offset + i] = bytes[i];
- }
+[
+ "_importCookies",
+ "clone",
+ "getCookies",
+ "getCookieString",
+ "getSetCookieStrings",
+ "removeAllCookies",
+ "serialize",
+ "setCookie"
+].forEach(name => {
+ CookieJar.prototype[name] = fromCallback(CookieJar.prototype[name]);
+});
+CookieJar.deserialize = fromCallback(CookieJar.deserialize);
- return buf;
+// Use a closure to provide a true imperative API for synchronous stores.
+function syncWrap(method) {
+ return function(...args) {
+ if (!this.store.synchronous) {
+ throw new Error(
+ "CookieJar store is not synchronous; use async API instead."
+ );
}
- return (0, _stringify.default)(bytes);
- } // Function#name is not settable on some platforms (#270)
-
+ let syncErr, syncResult;
+ this[method](...args, (err, result) => {
+ syncErr = err;
+ syncResult = result;
+ });
- try {
- generateUUID.name = name; // eslint-disable-next-line no-empty
- } catch (err) {} // For CommonJS default export support
+ if (syncErr) {
+ throw syncErr;
+ }
+ return syncResult;
+ };
+}
+exports.version = VERSION;
+exports.CookieJar = CookieJar;
+exports.Cookie = Cookie;
+exports.Store = Store;
+exports.MemoryCookieStore = MemoryCookieStore;
+exports.parseDate = parseDate;
+exports.formatDate = formatDate;
+exports.parse = parse;
+exports.fromJSON = fromJSON;
+exports.domainMatch = domainMatch;
+exports.defaultPath = defaultPath;
+exports.pathMatch = pathMatch;
+exports.getPublicSuffix = pubsuffix.getPublicSuffix;
+exports.cookieCompare = cookieCompare;
+exports.permuteDomain = __nccwpck_require__(5696).permuteDomain;
+exports.permutePath = permutePath;
+exports.canonicalDomain = canonicalDomain;
+exports.PrefixSecurityEnum = PrefixSecurityEnum;
- generateUUID.DNS = DNS;
- generateUUID.URL = URL;
- return generateUUID;
-}
/***/ }),
-/***/ 5393:
+/***/ 6738:
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
"use strict";
+/*!
+ * Copyright (c) 2015, Salesforce.com, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of Salesforce.com nor the names of its contributors may
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+const { fromCallback } = __nccwpck_require__(9046);
+const Store = (__nccwpck_require__(7707)/* .Store */ .y);
+const permuteDomain = (__nccwpck_require__(5696).permuteDomain);
+const pathMatch = (__nccwpck_require__(807)/* .pathMatch */ .U);
+const util = __nccwpck_require__(3837);
+
+class MemoryCookieStore extends Store {
+ constructor() {
+ super();
+ this.synchronous = true;
+ this.idx = {};
+ if (util.inspect.custom) {
+ this[util.inspect.custom] = this.inspect;
+ }
+ }
+ inspect() {
+ return `{ idx: ${util.inspect(this.idx, false, 2)} }`;
+ }
-Object.defineProperty(exports, "__esModule", ({
- value: true
-}));
-exports["default"] = void 0;
+ findCookie(domain, path, key, cb) {
+ if (!this.idx[domain]) {
+ return cb(null, undefined);
+ }
+ if (!this.idx[domain][path]) {
+ return cb(null, undefined);
+ }
+ return cb(null, this.idx[domain][path][key] || null);
+ }
+ findCookies(domain, path, allowSpecialUseDomain, cb) {
+ const results = [];
+ if (typeof allowSpecialUseDomain === "function") {
+ cb = allowSpecialUseDomain;
+ allowSpecialUseDomain = false;
+ }
+ if (!domain) {
+ return cb(null, []);
+ }
-var _rng = _interopRequireDefault(__nccwpck_require__(979));
+ let pathMatcher;
+ if (!path) {
+ // null means "all paths"
+ pathMatcher = function matchAll(domainIndex) {
+ for (const curPath in domainIndex) {
+ const pathIndex = domainIndex[curPath];
+ for (const key in pathIndex) {
+ results.push(pathIndex[key]);
+ }
+ }
+ };
+ } else {
+ pathMatcher = function matchRFC(domainIndex) {
+ //NOTE: we should use path-match algorithm from S5.1.4 here
+ //(see : https://github.com/ChromiumWebApps/chromium/blob/b3d3b4da8bb94c1b2e061600df106d590fda3620/net/cookies/canonical_cookie.cc#L299)
+ Object.keys(domainIndex).forEach(cookiePath => {
+ if (pathMatch(path, cookiePath)) {
+ const pathIndex = domainIndex[cookiePath];
+ for (const key in pathIndex) {
+ results.push(pathIndex[key]);
+ }
+ }
+ });
+ };
+ }
-var _stringify = _interopRequireDefault(__nccwpck_require__(4794));
+ const domains = permuteDomain(domain, allowSpecialUseDomain) || [domain];
+ const idx = this.idx;
+ domains.forEach(curDomain => {
+ const domainIndex = idx[curDomain];
+ if (!domainIndex) {
+ return;
+ }
+ pathMatcher(domainIndex);
+ });
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+ cb(null, results);
+ }
-function v4(options, buf, offset) {
- options = options || {};
+ putCookie(cookie, cb) {
+ if (!this.idx[cookie.domain]) {
+ this.idx[cookie.domain] = {};
+ }
+ if (!this.idx[cookie.domain][cookie.path]) {
+ this.idx[cookie.domain][cookie.path] = {};
+ }
+ this.idx[cookie.domain][cookie.path][cookie.key] = cookie;
+ cb(null);
+ }
+ updateCookie(oldCookie, newCookie, cb) {
+ // updateCookie() may avoid updating cookies that are identical. For example,
+ // lastAccessed may not be important to some stores and an equality
+ // comparison could exclude that field.
+ this.putCookie(newCookie, cb);
+ }
+ removeCookie(domain, path, key, cb) {
+ if (
+ this.idx[domain] &&
+ this.idx[domain][path] &&
+ this.idx[domain][path][key]
+ ) {
+ delete this.idx[domain][path][key];
+ }
+ cb(null);
+ }
+ removeCookies(domain, path, cb) {
+ if (this.idx[domain]) {
+ if (path) {
+ delete this.idx[domain][path];
+ } else {
+ delete this.idx[domain];
+ }
+ }
+ return cb(null);
+ }
+ removeAllCookies(cb) {
+ this.idx = {};
+ return cb(null);
+ }
+ getAllCookies(cb) {
+ const cookies = [];
+ const idx = this.idx;
- const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
+ const domains = Object.keys(idx);
+ domains.forEach(domain => {
+ const paths = Object.keys(idx[domain]);
+ paths.forEach(path => {
+ const keys = Object.keys(idx[domain][path]);
+ keys.forEach(key => {
+ if (key !== null) {
+ cookies.push(idx[domain][path][key]);
+ }
+ });
+ });
+ });
+ // Sort by creationIndex so deserializing retains the creation order.
+ // When implementing your own store, this SHOULD retain the order too
+ cookies.sort((a, b) => {
+ return (a.creationIndex || 0) - (b.creationIndex || 0);
+ });
- rnds[6] = rnds[6] & 0x0f | 0x40;
- rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
+ cb(null, cookies);
+ }
+}
- if (buf) {
- offset = offset || 0;
+[
+ "findCookie",
+ "findCookies",
+ "putCookie",
+ "updateCookie",
+ "removeCookie",
+ "removeCookies",
+ "removeAllCookies",
+ "getAllCookies"
+].forEach(name => {
+ MemoryCookieStore[name] = fromCallback(MemoryCookieStore.prototype[name]);
+});
- for (let i = 0; i < 16; ++i) {
- buf[offset + i] = rnds[i];
+exports.m = MemoryCookieStore;
+
+
+/***/ }),
+
+/***/ 807:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+/*!
+ * Copyright (c) 2015, Salesforce.com, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of Salesforce.com nor the names of its contributors may
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * "A request-path path-matches a given cookie-path if at least one of the
+ * following conditions holds:"
+ */
+function pathMatch(reqPath, cookiePath) {
+ // "o The cookie-path and the request-path are identical."
+ if (cookiePath === reqPath) {
+ return true;
+ }
+
+ const idx = reqPath.indexOf(cookiePath);
+ if (idx === 0) {
+ // "o The cookie-path is a prefix of the request-path, and the last
+ // character of the cookie-path is %x2F ("/")."
+ if (cookiePath.substr(-1) === "/") {
+ return true;
}
- return buf;
+ // " o The cookie-path is a prefix of the request-path, and the first
+ // character of the request-path that is not included in the cookie- path
+ // is a %x2F ("/") character."
+ if (reqPath.substr(cookiePath.length, 1) === "/") {
+ return true;
+ }
}
- return (0, _stringify.default)(rnds);
+ return false;
}
-var _default = v4;
-exports["default"] = _default;
+exports.U = pathMatch;
+
/***/ }),
-/***/ 8788:
+/***/ 5696:
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
"use strict";
+/*!
+ * Copyright (c) 2015, Salesforce.com, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of Salesforce.com nor the names of its contributors may
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+const pubsuffix = __nccwpck_require__(8292);
+
+// Gives the permutation of all possible domainMatch()es of a given domain. The
+// array is in shortest-to-longest order. Handy for indexing.
+const SPECIAL_USE_DOMAINS = ["local"]; // RFC 6761
+function permuteDomain(domain, allowSpecialUseDomain) {
+ let pubSuf = null;
+ if (allowSpecialUseDomain) {
+ const domainParts = domain.split(".");
+ if (SPECIAL_USE_DOMAINS.includes(domainParts[domainParts.length - 1])) {
+ pubSuf = `${domainParts[domainParts.length - 2]}.${
+ domainParts[domainParts.length - 1]
+ }`;
+ } else {
+ pubSuf = pubsuffix.getPublicSuffix(domain);
+ }
+ } else {
+ pubSuf = pubsuffix.getPublicSuffix(domain);
+ }
+ if (!pubSuf) {
+ return null;
+ }
+ if (pubSuf == domain) {
+ return [domain];
+ }
-Object.defineProperty(exports, "__esModule", ({
- value: true
-}));
-exports["default"] = void 0;
-
-var _v = _interopRequireDefault(__nccwpck_require__(4085));
-
-var _sha = _interopRequireDefault(__nccwpck_require__(6631));
+ const prefix = domain.slice(0, -(pubSuf.length + 1)); // ".example.com"
+ const parts = prefix.split(".").reverse();
+ let cur = pubSuf;
+ const permutations = [cur];
+ while (parts.length) {
+ cur = `${parts.shift()}.${cur}`;
+ permutations.push(cur);
+ }
+ return permutations;
+}
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+exports.permuteDomain = permuteDomain;
-const v5 = (0, _v.default)('v5', 0x50, _sha.default);
-var _default = v5;
-exports["default"] = _default;
/***/ }),
-/***/ 4418:
+/***/ 8292:
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
"use strict";
+/*!
+ * Copyright (c) 2018, Salesforce.com, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of Salesforce.com nor the names of its contributors may
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+const psl = __nccwpck_require__(9975);
-Object.defineProperty(exports, "__esModule", ({
- value: true
-}));
-exports["default"] = void 0;
-
-var _regex = _interopRequireDefault(__nccwpck_require__(690));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function validate(uuid) {
- return typeof uuid === 'string' && _regex.default.test(uuid);
+function getPublicSuffix(domain) {
+ return psl.get(domain);
}
-var _default = validate;
-exports["default"] = _default;
+exports.getPublicSuffix = getPublicSuffix;
+
/***/ }),
-/***/ 7909:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+/***/ 7707:
+/***/ ((__unused_webpack_module, exports) => {
"use strict";
+/*!
+ * Copyright (c) 2015, Salesforce.com, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of Salesforce.com nor the names of its contributors may
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*jshint unused:false */
+
+class Store {
+ constructor() {
+ this.synchronous = false;
+ }
+ findCookie(domain, path, key, cb) {
+ throw new Error("findCookie is not implemented");
+ }
-Object.defineProperty(exports, "__esModule", ({
- value: true
-}));
-exports["default"] = void 0;
+ findCookies(domain, path, allowSpecialUseDomain, cb) {
+ throw new Error("findCookies is not implemented");
+ }
-var _validate = _interopRequireDefault(__nccwpck_require__(4418));
+ putCookie(cookie, cb) {
+ throw new Error("putCookie is not implemented");
+ }
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+ updateCookie(oldCookie, newCookie, cb) {
+ // recommended default implementation:
+ // return this.putCookie(newCookie, cb);
+ throw new Error("updateCookie is not implemented");
+ }
-function version(uuid) {
- if (!(0, _validate.default)(uuid)) {
- throw TypeError('Invalid UUID');
+ removeCookie(domain, path, key, cb) {
+ throw new Error("removeCookie is not implemented");
}
- return parseInt(uuid.substr(14, 1), 16);
+ removeCookies(domain, path, cb) {
+ throw new Error("removeCookies is not implemented");
+ }
+
+ removeAllCookies(cb) {
+ throw new Error("removeAllCookies is not implemented");
+ }
+
+ getAllCookies(cb) {
+ throw new Error(
+ "getAllCookies is not implemented (therefore jar cannot be serialized)"
+ );
+ }
}
-var _default = version;
-exports["default"] = _default;
+exports.y = Store;
+
/***/ }),
-/***/ 7094:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+/***/ 8742:
+/***/ ((module) => {
-"use strict";
+// generated by genversion
+module.exports = '4.0.0'
-Object.defineProperty(exports, "__esModule", ({ value: true }));
+/***/ }),
-var logger$1 = __nccwpck_require__(3233);
+/***/ 2107:
+/***/ ((module) => {
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT license.
-/**
- * When a poller is manually stopped through the `stopPolling` method,
- * the poller will be rejected with an instance of the PollerStoppedError.
- */
-class PollerStoppedError extends Error {
- constructor(message) {
- super(message);
- this.name = "PollerStoppedError";
- Object.setPrototypeOf(this, PollerStoppedError.prototype);
- }
-}
-/**
- * When a poller is cancelled through the `cancelOperation` method,
- * the poller will be rejected with an instance of the PollerCancelledError.
- */
-class PollerCancelledError extends Error {
- constructor(message) {
- super(message);
- this.name = "PollerCancelledError";
- Object.setPrototypeOf(this, PollerCancelledError.prototype);
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+***************************************************************************** */
+/* global global, define, System, Reflect, Promise */
+var __extends;
+var __assign;
+var __rest;
+var __decorate;
+var __param;
+var __metadata;
+var __awaiter;
+var __generator;
+var __exportStar;
+var __values;
+var __read;
+var __spread;
+var __spreadArrays;
+var __spreadArray;
+var __await;
+var __asyncGenerator;
+var __asyncDelegator;
+var __asyncValues;
+var __makeTemplateObject;
+var __importStar;
+var __importDefault;
+var __classPrivateFieldGet;
+var __classPrivateFieldSet;
+var __createBinding;
+(function (factory) {
+ var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {};
+ if (typeof define === "function" && define.amd) {
+ define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); });
}
-}
-/**
- * A class that represents the definition of a program that polls through consecutive requests
- * until it reaches a state of completion.
- *
- * A poller can be executed manually, by polling request by request by calling to the `poll()` method repeatedly, until its operation is completed.
- * It also provides a way to wait until the operation completes, by calling `pollUntilDone()` and waiting until the operation finishes.
- * Pollers can also request the cancellation of the ongoing process to whom is providing the underlying long running operation.
- *
- * ```ts
- * const poller = new MyPoller();
- *
- * // Polling just once:
- * await poller.poll();
- *
- * // We can try to cancel the request here, by calling:
- * //
- * // await poller.cancelOperation();
- * //
- *
- * // Getting the final result:
- * const result = await poller.pollUntilDone();
- * ```
- *
- * The Poller is defined by two types, a type representing the state of the poller, which
- * must include a basic set of properties from `PollOperationState`,
- * and a return type defined by `TResult`, which can be anything.
- *
- * The Poller class implements the `PollerLike` interface, which allows poller implementations to avoid having
- * to export the Poller's class directly, and instead only export the already instantiated poller with the PollerLike type.
- *
- * ```ts
- * class Client {
- * public async makePoller: PollerLike {
- * const poller = new MyPoller({});
- * // It might be preferred to return the poller after the first request is made,
- * // so that some information can be obtained right away.
- * await poller.poll();
- * return poller;
- * }
- * }
- *
- * const poller: PollerLike = myClient.makePoller();
- * ```
- *
- * A poller can be created through its constructor, then it can be polled until it's completed.
- * At any point in time, the state of the poller can be obtained without delay through the getOperationState method.
- * At any point in time, the intermediate forms of the result type can be requested without delay.
- * Once the underlying operation is marked as completed, the poller will stop and the final value will be returned.
- *
- * ```ts
- * const poller = myClient.makePoller();
- * const state: MyOperationState = poller.getOperationState();
- *
- * // The intermediate result can be obtained at any time.
- * const result: MyResult | undefined = poller.getResult();
- *
- * // The final result can only be obtained after the poller finishes.
- * const result: MyResult = await poller.pollUntilDone();
- * ```
- *
- */
-// eslint-disable-next-line no-use-before-define
-class Poller {
- /**
- * A poller needs to be initialized by passing in at least the basic properties of the `PollOperation`.
- *
- * When writing an implementation of a Poller, this implementation needs to deal with the initialization
- * of any custom state beyond the basic definition of the poller. The basic poller assumes that the poller's
- * operation has already been defined, at least its basic properties. The code below shows how to approach
- * the definition of the constructor of a new custom poller.
- *
- * ```ts
- * export class MyPoller extends Poller {
- * constructor({
- * // Anything you might need outside of the basics
- * }) {
- * let state: MyOperationState = {
- * privateProperty: private,
- * publicProperty: public,
- * };
- *
- * const operation = {
- * state,
- * update,
- * cancel,
- * toString
- * }
- *
- * // Sending the operation to the parent's constructor.
- * super(operation);
- *
- * // You can assign more local properties here.
- * }
- * }
- * ```
- *
- * Inside of this constructor, a new promise is created. This will be used to
- * tell the user when the poller finishes (see `pollUntilDone()`). The promise's
- * resolve and reject methods are also used internally to control when to resolve
- * or reject anyone waiting for the poller to finish.
- *
- * The constructor of a custom implementation of a poller is where any serialized version of
- * a previous poller's operation should be deserialized into the operation sent to the
- * base constructor. For example:
- *
- * ```ts
- * export class MyPoller extends Poller {
- * constructor(
- * baseOperation: string | undefined
- * ) {
- * let state: MyOperationState = {};
- * if (baseOperation) {
- * state = {
- * ...JSON.parse(baseOperation).state,
- * ...state
- * };
- * }
- * const operation = {
- * state,
- * // ...
- * }
- * super(operation);
- * }
- * }
- * ```
- *
- * @param operation - Must contain the basic properties of `PollOperation`.
- */
- constructor(operation) {
- this.stopped = true;
- this.pollProgressCallbacks = [];
- this.operation = operation;
- this.promise = new Promise((resolve, reject) => {
- this.resolve = resolve;
- this.reject = reject;
- });
- // This prevents the UnhandledPromiseRejectionWarning in node.js from being thrown.
- // The above warning would get thrown if `poller.poll` is called, it returns an error,
- // and pullUntilDone did not have a .catch or await try/catch on it's return value.
- this.promise.catch(() => {
- /* intentionally blank */
- });
+ else if ( true && typeof module.exports === "object") {
+ factory(createExporter(root, createExporter(module.exports)));
}
- /**
- * Starts a loop that will break only if the poller is done
- * or if the poller is stopped.
- */
- async startPolling() {
- if (this.stopped) {
- this.stopped = false;
- }
- while (!this.isStopped() && !this.isDone()) {
- await this.poll();
- await this.delay();
- }
+ else {
+ factory(createExporter(root));
}
- /**
- * pollOnce does one polling, by calling to the update method of the underlying
- * poll operation to make any relevant change effective.
- *
- * It only optionally receives an object with an abortSignal property, from \@azure/abort-controller's AbortSignalLike.
- *
- * @param options - Optional properties passed to the operation's update method.
- */
- async pollOnce(options = {}) {
- try {
- if (!this.isDone()) {
- this.operation = await this.operation.update({
- abortSignal: options.abortSignal,
- fireProgress: this.fireProgress.bind(this),
- });
- if (this.isDone() && this.resolve) {
- // If the poller has finished polling, this means we now have a result.
- // However, it can be the case that TResult is instantiated to void, so
- // we are not expecting a result anyway. To assert that we might not
- // have a result eventually after finishing polling, we cast the result
- // to TResult.
- this.resolve(this.operation.state.result);
- }
+ function createExporter(exports, previous) {
+ if (exports !== root) {
+ if (typeof Object.create === "function") {
+ Object.defineProperty(exports, "__esModule", { value: true });
}
- }
- catch (e) {
- this.operation.state.error = e;
- if (this.reject) {
- this.reject(e);
+ else {
+ exports.__esModule = true;
}
- throw e;
}
+ return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };
}
- /**
- * fireProgress calls the functions passed in via onProgress the method of the poller.
- *
- * It loops over all of the callbacks received from onProgress, and executes them, sending them
- * the current operation state.
- *
- * @param state - The current operation state.
- */
- fireProgress(state) {
- for (const callback of this.pollProgressCallbacks) {
- callback(state);
- }
- }
- /**
- * Invokes the underlying operation's cancel method, and rejects the
- * pollUntilDone promise.
- */
- async cancelOnce(options = {}) {
- this.operation = await this.operation.cancel(options);
- if (this.reject) {
- this.reject(new PollerCancelledError("Poller cancelled"));
- }
- }
- /**
- * Returns a promise that will resolve once a single polling request finishes.
- * It does this by calling the update method of the Poller's operation.
- *
- * It only optionally receives an object with an abortSignal property, from \@azure/abort-controller's AbortSignalLike.
- *
- * @param options - Optional properties passed to the operation's update method.
- */
- poll(options = {}) {
- if (!this.pollOncePromise) {
- this.pollOncePromise = this.pollOnce(options);
- const clearPollOncePromise = () => {
- this.pollOncePromise = undefined;
- };
- this.pollOncePromise.then(clearPollOncePromise, clearPollOncePromise).catch(this.reject);
- }
- return this.pollOncePromise;
- }
- /**
- * Returns a promise that will resolve once the underlying operation is completed.
- */
- async pollUntilDone() {
- if (this.stopped) {
- this.startPolling().catch(this.reject);
+})
+(function (exporter) {
+ var extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+
+ __extends = function (d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+
+ __assign = Object.assign || function (t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
}
- return this.promise;
- }
- /**
- * Invokes the provided callback after each polling is completed,
- * sending the current state of the poller's operation.
- *
- * It returns a method that can be used to stop receiving updates on the given callback function.
- */
- onProgress(callback) {
- this.pollProgressCallbacks.push(callback);
- return () => {
- this.pollProgressCallbacks = this.pollProgressCallbacks.filter((c) => c !== callback);
- };
- }
- /**
- * Returns true if the poller has finished polling.
- */
- isDone() {
- const state = this.operation.state;
- return Boolean(state.isCompleted || state.isCancelled || state.error);
- }
- /**
- * Stops the poller from continuing to poll.
- */
- stopPolling() {
- if (!this.stopped) {
- this.stopped = true;
- if (this.reject) {
- this.reject(new PollerStoppedError("This poller is already stopped"));
+ return t;
+ };
+
+ __rest = function (s, e) {
+ var t = {};
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
+ t[p] = s[p];
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
+ t[p[i]] = s[p[i]];
}
- }
- }
- /**
- * Returns true if the poller is stopped.
- */
- isStopped() {
- return this.stopped;
- }
- /**
- * Attempts to cancel the underlying operation.
- *
- * It only optionally receives an object with an abortSignal property, from \@azure/abort-controller's AbortSignalLike.
- *
- * If it's called again before it finishes, it will throw an error.
- *
- * @param options - Optional properties passed to the operation's update method.
- */
- cancelOperation(options = {}) {
- if (!this.stopped) {
- this.stopped = true;
- }
- if (!this.cancelPromise) {
- this.cancelPromise = this.cancelOnce(options);
- }
- else if (options.abortSignal) {
- throw new Error("A cancel request is currently pending");
- }
- return this.cancelPromise;
- }
- /**
- * Returns the state of the operation.
- *
- * Even though TState will be the same type inside any of the methods of any extension of the Poller class,
- * implementations of the pollers can customize what's shared with the public by writing their own
- * version of the `getOperationState` method, and by defining two types, one representing the internal state of the poller
- * and a public type representing a safe to share subset of the properties of the internal state.
- * Their definition of getOperationState can then return their public type.
- *
- * Example:
- *
- * ```ts
- * // Let's say we have our poller's operation state defined as:
- * interface MyOperationState extends PollOperationState {
- * privateProperty?: string;
- * publicProperty?: string;
- * }
- *
- * // To allow us to have a true separation of public and private state, we have to define another interface:
- * interface PublicState extends PollOperationState {
- * publicProperty?: string;
- * }
- *
- * // Then, we define our Poller as follows:
- * export class MyPoller extends Poller {
- * // ... More content is needed here ...
- *
- * public getOperationState(): PublicState {
- * const state: PublicState = this.operation.state;
- * return {
- * // Properties from PollOperationState
- * isStarted: state.isStarted,
- * isCompleted: state.isCompleted,
- * isCancelled: state.isCancelled,
- * error: state.error,
- * result: state.result,
- *
- * // The only other property needed by PublicState.
- * publicProperty: state.publicProperty
- * }
- * }
- * }
- * ```
- *
- * You can see this in the tests of this repository, go to the file:
- * `../test/utils/testPoller.ts`
- * and look for the getOperationState implementation.
- */
- getOperationState() {
- return this.operation.state;
- }
- /**
- * Returns the result value of the operation,
- * regardless of the state of the poller.
- * It can return undefined or an incomplete form of the final TResult value
- * depending on the implementation.
- */
- getResult() {
- const state = this.operation.state;
- return state.result;
- }
- /**
- * Returns a serialized version of the poller's operation
- * by invoking the operation's toString method.
- */
- toString() {
- return this.operation.toString();
- }
-}
+ return t;
+ };
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT license.
-/**
- * Detects where the continuation token is and returns it. Notice that azure-asyncoperation
- * must be checked first before the other location headers because there are scenarios
- * where both azure-asyncoperation and location could be present in the same response but
- * azure-asyncoperation should be the one to use for polling.
- */
-function getPollingUrl(rawResponse, defaultPath) {
- var _a, _b, _c;
- return ((_c = (_b = (_a = getAzureAsyncOperation(rawResponse)) !== null && _a !== void 0 ? _a : getOperationLocation(rawResponse)) !== null && _b !== void 0 ? _b : getLocation(rawResponse)) !== null && _c !== void 0 ? _c : defaultPath);
-}
-function getLocation(rawResponse) {
- return rawResponse.headers["location"];
-}
-function getOperationLocation(rawResponse) {
- return rawResponse.headers["operation-location"];
-}
-function getAzureAsyncOperation(rawResponse) {
- return rawResponse.headers["azure-asyncoperation"];
-}
-function findResourceLocation(requestMethod, rawResponse, requestPath) {
- switch (requestMethod) {
- case "PUT": {
- return requestPath;
- }
- case "POST":
- case "PATCH": {
- return getLocation(rawResponse);
- }
- default: {
- return undefined;
- }
- }
-}
-function inferLroMode(requestPath, requestMethod, rawResponse) {
- if (getAzureAsyncOperation(rawResponse) !== undefined ||
- getOperationLocation(rawResponse) !== undefined) {
- return {
- mode: "Location",
- resourceLocation: findResourceLocation(requestMethod, rawResponse, requestPath),
- };
- }
- else if (getLocation(rawResponse) !== undefined) {
- return {
- mode: "Location",
- };
- }
- else if (["PUT", "PATCH"].includes(requestMethod)) {
- return {
- mode: "Body",
- };
- }
- return {};
-}
-class SimpleRestError extends Error {
- constructor(message, statusCode) {
- super(message);
- this.name = "RestError";
- this.statusCode = statusCode;
- Object.setPrototypeOf(this, SimpleRestError.prototype);
- }
-}
-function isUnexpectedInitialResponse(rawResponse) {
- const code = rawResponse.statusCode;
- if (![203, 204, 202, 201, 200, 500].includes(code)) {
- throw new SimpleRestError(`Received unexpected HTTP status code ${code} in the initial response. This may indicate a server issue.`, code);
- }
- return false;
-}
-function isUnexpectedPollingResponse(rawResponse) {
- const code = rawResponse.statusCode;
- if (![202, 201, 200, 500].includes(code)) {
- throw new SimpleRestError(`Received unexpected HTTP status code ${code} while polling. This may indicate a server issue.`, code);
- }
- return false;
-}
+ __decorate = function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+ };
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT license.
-const successStates = ["succeeded"];
-const failureStates = ["failed", "canceled", "cancelled"];
+ __param = function (paramIndex, decorator) {
+ return function (target, key) { decorator(target, key, paramIndex); }
+ };
-// Copyright (c) Microsoft Corporation.
-function getProvisioningState(rawResponse) {
- var _a, _b;
- const { properties, provisioningState } = (_a = rawResponse.body) !== null && _a !== void 0 ? _a : {};
- const state = (_b = properties === null || properties === void 0 ? void 0 : properties.provisioningState) !== null && _b !== void 0 ? _b : provisioningState;
- return typeof state === "string" ? state.toLowerCase() : "succeeded";
-}
-function isBodyPollingDone(rawResponse) {
- const state = getProvisioningState(rawResponse);
- if (isUnexpectedPollingResponse(rawResponse) || failureStates.includes(state)) {
- throw new Error(`The long running operation has failed. The provisioning state: ${state}.`);
- }
- return successStates.includes(state);
-}
-/**
- * Creates a polling strategy based on BodyPolling which uses the provisioning state
- * from the result to determine the current operation state
- */
-function processBodyPollingOperationResult(response) {
- return Object.assign(Object.assign({}, response), { done: isBodyPollingDone(response.rawResponse) });
-}
+ __metadata = function (metadataKey, metadataValue) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
+ };
-// Copyright (c) Microsoft Corporation.
-/**
- * The `@azure/logger` configuration for this package.
- * @internal
- */
-const logger = logger$1.createClientLogger("core-lro");
+ __awaiter = function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+ };
-// Copyright (c) Microsoft Corporation.
-function isPollingDone(rawResponse) {
- var _a;
- if (isUnexpectedPollingResponse(rawResponse) || rawResponse.statusCode === 202) {
- return false;
- }
- const { status } = (_a = rawResponse.body) !== null && _a !== void 0 ? _a : {};
- const state = typeof status === "string" ? status.toLowerCase() : "succeeded";
- if (isUnexpectedPollingResponse(rawResponse) || failureStates.includes(state)) {
- throw new Error(`The long running operation has failed. The provisioning state: ${state}.`);
- }
- return successStates.includes(state);
-}
-/**
- * Sends a request to the URI of the provisioned resource if needed.
- */
-async function sendFinalRequest(lro, resourceLocation, lroResourceLocationConfig) {
- switch (lroResourceLocationConfig) {
- case "original-uri":
- return lro.sendPollRequest(lro.requestPath);
- case "azure-async-operation":
- return undefined;
- case "location":
- default:
- return lro.sendPollRequest(resourceLocation !== null && resourceLocation !== void 0 ? resourceLocation : lro.requestPath);
- }
-}
-function processLocationPollingOperationResult(lro, resourceLocation, lroResourceLocationConfig) {
- return (response) => {
- if (isPollingDone(response.rawResponse)) {
- if (resourceLocation === undefined) {
- return Object.assign(Object.assign({}, response), { done: true });
- }
- else {
- return Object.assign(Object.assign({}, response), { done: false, next: async () => {
- const finalResponse = await sendFinalRequest(lro, resourceLocation, lroResourceLocationConfig);
- return Object.assign(Object.assign({}, (finalResponse !== null && finalResponse !== void 0 ? finalResponse : response)), { done: true });
- } });
- }
+ __generator = function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
- return Object.assign(Object.assign({}, response), { done: false });
};
-}
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT license.
-function processPassthroughOperationResult(response) {
- return Object.assign(Object.assign({}, response), { done: true });
-}
+ __exportStar = function(m, o) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
+ };
-// Copyright (c) Microsoft Corporation.
-/**
- * creates a stepping function that maps an LRO state to another.
- */
-function createGetLroStatusFromResponse(lroPrimitives, config, lroResourceLocationConfig) {
- switch (config.mode) {
- case "Location": {
- return processLocationPollingOperationResult(lroPrimitives, config.resourceLocation, lroResourceLocationConfig);
- }
- case "Body": {
- return processBodyPollingOperationResult;
- }
- default: {
- return processPassthroughOperationResult;
+ __createBinding = Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+ }) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+ });
+
+ __values = function (o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+ };
+
+ __read = function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
- }
-}
-/**
- * Creates a polling operation.
- */
-function createPoll(lroPrimitives) {
- return async (path, pollerConfig, getLroStatusFromResponse) => {
- const response = await lroPrimitives.sendPollRequest(path);
- const retryAfter = response.rawResponse.headers["retry-after"];
- if (retryAfter !== undefined) {
- // Retry-After header value is either in HTTP date format, or in seconds
- const retryAfterInSeconds = parseInt(retryAfter);
- pollerConfig.intervalInMs = isNaN(retryAfterInSeconds)
- ? calculatePollingIntervalFromDate(new Date(retryAfter), pollerConfig.intervalInMs)
- : retryAfterInSeconds * 1000;
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
}
- return getLroStatusFromResponse(response);
+ return ar;
};
-}
-function calculatePollingIntervalFromDate(retryAfterDate, defaultIntervalInMs) {
- const timeNow = Math.floor(new Date().getTime());
- const retryAfterTime = retryAfterDate.getTime();
- if (timeNow < retryAfterTime) {
- return retryAfterTime - timeNow;
- }
- return defaultIntervalInMs;
-}
-/**
- * Creates a callback to be used to initialize the polling operation state.
- * @param state - of the polling operation
- * @param operationSpec - of the LRO
- * @param callback - callback to be called when the operation is done
- * @returns callback that initializes the state of the polling operation
- */
-function createInitializeState(state, requestPath, requestMethod) {
- return (response) => {
- if (isUnexpectedInitialResponse(response.rawResponse))
- ;
- state.initialRawResponse = response.rawResponse;
- state.isStarted = true;
- state.pollingURL = getPollingUrl(state.initialRawResponse, requestPath);
- state.config = inferLroMode(requestPath, requestMethod, state.initialRawResponse);
- /** short circuit polling if body polling is done in the initial request */
- if (state.config.mode === undefined ||
- (state.config.mode === "Body" && isBodyPollingDone(state.initialRawResponse))) {
- state.result = response.flatResponse;
- state.isCompleted = true;
- }
- logger.verbose(`LRO: initial state: ${JSON.stringify(state)}`);
- return Boolean(state.isCompleted);
- };
-}
-
-// Copyright (c) Microsoft Corporation.
-class GenericPollOperation {
- constructor(state, lro, lroResourceLocationConfig, processResult, updateState, isDone) {
- this.state = state;
- this.lro = lro;
- this.lroResourceLocationConfig = lroResourceLocationConfig;
- this.processResult = processResult;
- this.updateState = updateState;
- this.isDone = isDone;
- }
- setPollerConfig(pollerConfig) {
- this.pollerConfig = pollerConfig;
- }
- /**
- * General update function for LROPoller, the general process is as follows
- * 1. Check initial operation result to determine the strategy to use
- * - Strategies: Location, Azure-AsyncOperation, Original Uri
- * 2. Check if the operation result has a terminal state
- * - Terminal state will be determined by each strategy
- * 2.1 If it is terminal state Check if a final GET request is required, if so
- * send final GET request and return result from operation. If no final GET
- * is required, just return the result from operation.
- * - Determining what to call for final request is responsibility of each strategy
- * 2.2 If it is not terminal state, call the polling operation and go to step 1
- * - Determining what to call for polling is responsibility of each strategy
- * - Strategies will always use the latest URI for polling if provided otherwise
- * the last known one
- */
- async update(options) {
- var _a, _b, _c;
- const state = this.state;
- let lastResponse = undefined;
- if (!state.isStarted) {
- const initializeState = createInitializeState(state, this.lro.requestPath, this.lro.requestMethod);
- lastResponse = await this.lro.sendInitialRequest();
- initializeState(lastResponse);
- }
- if (!state.isCompleted) {
- if (!this.poll || !this.getLroStatusFromResponse) {
- if (!state.config) {
- throw new Error("Bad state: LRO mode is undefined. Please check if the serialized state is well-formed.");
- }
- const isDone = this.isDone;
- this.getLroStatusFromResponse = isDone
- ? (response) => (Object.assign(Object.assign({}, response), { done: isDone(response.flatResponse, this.state) }))
- : createGetLroStatusFromResponse(this.lro, state.config, this.lroResourceLocationConfig);
- this.poll = createPoll(this.lro);
- }
- if (!state.pollingURL) {
- throw new Error("Bad state: polling URL is undefined. Please check if the serialized state is well-formed.");
- }
- const currentState = await this.poll(state.pollingURL, this.pollerConfig, this.getLroStatusFromResponse);
- logger.verbose(`LRO: polling response: ${JSON.stringify(currentState.rawResponse)}`);
- if (currentState.done) {
- state.result = this.processResult
- ? this.processResult(currentState.flatResponse, state)
- : currentState.flatResponse;
- state.isCompleted = true;
- }
- else {
- this.poll = (_a = currentState.next) !== null && _a !== void 0 ? _a : this.poll;
- state.pollingURL = getPollingUrl(currentState.rawResponse, state.pollingURL);
- }
- lastResponse = currentState;
- }
- logger.verbose(`LRO: current state: ${JSON.stringify(state)}`);
- if (lastResponse) {
- (_b = this.updateState) === null || _b === void 0 ? void 0 : _b.call(this, state, lastResponse === null || lastResponse === void 0 ? void 0 : lastResponse.rawResponse);
- }
- else {
- logger.error(`LRO: no response was received`);
- }
- (_c = options === null || options === void 0 ? void 0 : options.fireProgress) === null || _c === void 0 ? void 0 : _c.call(options, state);
- return this;
- }
- async cancel() {
- this.state.isCancelled = true;
- return this;
- }
- /**
- * Serializes the Poller operation.
- */
- toString() {
- return JSON.stringify({
- state: this.state,
- });
- }
-}
-
-// Copyright (c) Microsoft Corporation.
-function deserializeState(serializedState) {
- try {
- return JSON.parse(serializedState).state;
- }
- catch (e) {
- throw new Error(`LroEngine: Unable to deserialize state: ${serializedState}`);
- }
-}
-/**
- * The LRO Engine, a class that performs polling.
- */
-class LroEngine extends Poller {
- constructor(lro, options) {
- const { intervalInMs = 2000, resumeFrom } = options || {};
- const state = resumeFrom
- ? deserializeState(resumeFrom)
- : {};
- const operation = new GenericPollOperation(state, lro, options === null || options === void 0 ? void 0 : options.lroResourceLocationConfig, options === null || options === void 0 ? void 0 : options.processResult, options === null || options === void 0 ? void 0 : options.updateState, options === null || options === void 0 ? void 0 : options.isDone);
- super(operation);
- this.config = { intervalInMs: intervalInMs };
- operation.setPollerConfig(this.config);
- }
- /**
- * The method used by the poller to wait before attempting to update its operation.
- */
- delay() {
- return new Promise((resolve) => setTimeout(() => resolve(), this.config.intervalInMs));
- }
-}
-
-exports.LroEngine = LroEngine;
-exports.Poller = Poller;
-exports.PollerCancelledError = PollerCancelledError;
-exports.PollerStoppedError = PollerStoppedError;
-//# sourceMappingURL=index.js.map
-
-
-/***/ }),
-
-/***/ 4559:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-
-__nccwpck_require__(2356);
-var tslib = __nccwpck_require__(6429);
-
-// Copyright (c) Microsoft Corporation.
-/**
- * returns an async iterator that iterates over results. It also has a `byPage`
- * method that returns pages of items at once.
- *
- * @param pagedResult - an object that specifies how to get pages.
- * @returns a paged async iterator that iterates over results.
- */
-function getPagedAsyncIterator(pagedResult) {
- var _a;
- const iter = getItemAsyncIterator(pagedResult);
- return {
- next() {
- return iter.next();
- },
- [Symbol.asyncIterator]() {
- return this;
- },
- byPage: (_a = pagedResult === null || pagedResult === void 0 ? void 0 : pagedResult.byPage) !== null && _a !== void 0 ? _a : ((settings) => {
- return getPageAsyncIterator(pagedResult, settings === null || settings === void 0 ? void 0 : settings.maxPageSize);
- }),
- };
-}
-function getItemAsyncIterator(pagedResult, maxPageSize) {
- return tslib.__asyncGenerator(this, arguments, function* getItemAsyncIterator_1() {
- var e_1, _a;
- const pages = getPageAsyncIterator(pagedResult, maxPageSize);
- const firstVal = yield tslib.__await(pages.next());
- // if the result does not have an array shape, i.e. TPage = TElement, then we return it as is
- if (!Array.isArray(firstVal.value)) {
- yield yield tslib.__await(firstVal.value);
- // `pages` is of type `AsyncIterableIterator` but TPage = TElement in this case
- yield tslib.__await(yield* tslib.__asyncDelegator(tslib.__asyncValues(pages)));
- }
- else {
- yield tslib.__await(yield* tslib.__asyncDelegator(tslib.__asyncValues(firstVal.value)));
- try {
- for (var pages_1 = tslib.__asyncValues(pages), pages_1_1; pages_1_1 = yield tslib.__await(pages_1.next()), !pages_1_1.done;) {
- const page = pages_1_1.value;
- // pages is of type `AsyncIterableIterator` so `page` is of type `TPage`. In this branch,
- // it must be the case that `TPage = TElement[]`
- yield tslib.__await(yield* tslib.__asyncDelegator(tslib.__asyncValues(page)));
- }
- }
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
- finally {
- try {
- if (pages_1_1 && !pages_1_1.done && (_a = pages_1.return)) yield tslib.__await(_a.call(pages_1));
- }
- finally { if (e_1) throw e_1.error; }
- }
- }
- });
-}
-function getPageAsyncIterator(pagedResult, maxPageSize) {
- return tslib.__asyncGenerator(this, arguments, function* getPageAsyncIterator_1() {
- let response = yield tslib.__await(pagedResult.getPage(pagedResult.firstPageLink, maxPageSize));
- yield yield tslib.__await(response.page);
- while (response.nextPageLink) {
- response = yield tslib.__await(pagedResult.getPage(response.nextPageLink, maxPageSize));
- yield yield tslib.__await(response.page);
- }
- });
-}
-
-exports.getPagedAsyncIterator = getPagedAsyncIterator;
-//# sourceMappingURL=index.js.map
-
-
-/***/ }),
-
-/***/ 6429:
-/***/ ((module) => {
-
-/*! *****************************************************************************
-Copyright (c) Microsoft Corporation.
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-***************************************************************************** */
-/* global global, define, System, Reflect, Promise */
-var __extends;
-var __assign;
-var __rest;
-var __decorate;
-var __param;
-var __metadata;
-var __awaiter;
-var __generator;
-var __exportStar;
-var __values;
-var __read;
-var __spread;
-var __spreadArrays;
-var __spreadArray;
-var __await;
-var __asyncGenerator;
-var __asyncDelegator;
-var __asyncValues;
-var __makeTemplateObject;
-var __importStar;
-var __importDefault;
-var __classPrivateFieldGet;
-var __classPrivateFieldSet;
-var __createBinding;
-(function (factory) {
- var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {};
- if (typeof define === "function" && define.amd) {
- define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); });
- }
- else if ( true && typeof module.exports === "object") {
- factory(createExporter(root, createExporter(module.exports)));
- }
- else {
- factory(createExporter(root));
- }
- function createExporter(exports, previous) {
- if (exports !== root) {
- if (typeof Object.create === "function") {
- Object.defineProperty(exports, "__esModule", { value: true });
- }
- else {
- exports.__esModule = true;
- }
- }
- return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };
- }
-})
-(function (exporter) {
- var extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
-
- __extends = function (d, b) {
- if (typeof b !== "function" && b !== null)
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- return t;
- };
-
- __rest = function (s, e) {
- var t = {};
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
- t[p] = s[p];
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
- t[p[i]] = s[p[i]];
- }
- return t;
- };
-
- __decorate = function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
-
- __param = function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
-
- __metadata = function (metadataKey, metadataValue) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
- };
-
- __awaiter = function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
- };
-
- __generator = function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
- function verb(n) { return function (v) { return step([n, v]); }; }
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
- while (_) try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
- switch (op[0]) {
- case 0: case 1: t = op; break;
- case 4: _.label++; return { value: op[1], done: false };
- case 5: _.label++; y = op[1]; op = [0]; continue;
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
- if (t[2]) _.ops.pop();
- _.trys.pop(); continue;
- }
- op = body.call(thisArg, _);
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
- }
- };
-
- __exportStar = function(m, o) {
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
- };
-
- __createBinding = Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- });
-
- __values = function (o) {
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
- if (m) return m.call(o);
- if (o && typeof o.length === "number") return {
- next: function () {
- if (o && i >= o.length) o = void 0;
- return { value: o && o[i++], done: !o };
- }
- };
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
- };
-
- __read = function (o, n) {
- var m = typeof Symbol === "function" && o[Symbol.iterator];
- if (!m) return o;
- var i = m.call(o), r, ar = [], e;
- try {
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
- }
- catch (error) { e = { error: error }; }
- finally {
- try {
- if (r && !r.done && (m = i["return"])) m.call(i);
- }
- finally { if (e) throw e.error; }
- }
- return ar;
- };
-
- /** @deprecated */
- __spread = function () {
- for (var ar = [], i = 0; i < arguments.length; i++)
- ar = ar.concat(__read(arguments[i]));
- return ar;
+
+ /** @deprecated */
+ __spread = function () {
+ for (var ar = [], i = 0; i < arguments.length; i++)
+ ar = ar.concat(__read(arguments[i]));
+ return ar;
};
/** @deprecated */
@@ -21709,694 +21857,653 @@ var __createBinding;
/***/ }),
-/***/ 4175:
+/***/ 3415:
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
"use strict";
-Object.defineProperty(exports, "__esModule", ({ value: true }));
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+Object.defineProperty(exports, "v1", ({
+ enumerable: true,
+ get: function () {
+ return _v.default;
+ }
+}));
+Object.defineProperty(exports, "v3", ({
+ enumerable: true,
+ get: function () {
+ return _v2.default;
+ }
+}));
+Object.defineProperty(exports, "v4", ({
+ enumerable: true,
+ get: function () {
+ return _v3.default;
+ }
+}));
+Object.defineProperty(exports, "v5", ({
+ enumerable: true,
+ get: function () {
+ return _v4.default;
+ }
+}));
+Object.defineProperty(exports, "NIL", ({
+ enumerable: true,
+ get: function () {
+ return _nil.default;
+ }
+}));
+Object.defineProperty(exports, "version", ({
+ enumerable: true,
+ get: function () {
+ return _version.default;
+ }
+}));
+Object.defineProperty(exports, "validate", ({
+ enumerable: true,
+ get: function () {
+ return _validate.default;
+ }
+}));
+Object.defineProperty(exports, "stringify", ({
+ enumerable: true,
+ get: function () {
+ return _stringify.default;
+ }
+}));
+Object.defineProperty(exports, "parse", ({
+ enumerable: true,
+ get: function () {
+ return _parse.default;
+ }
+}));
-var api = __nccwpck_require__(5163);
+var _v = _interopRequireDefault(__nccwpck_require__(4757));
-// Copyright (c) Microsoft Corporation.
-(function (SpanKind) {
- /** Default value. Indicates that the span is used internally. */
- SpanKind[SpanKind["INTERNAL"] = 0] = "INTERNAL";
- /**
- * Indicates that the span covers server-side handling of an RPC or other
- * remote request.
- */
- SpanKind[SpanKind["SERVER"] = 1] = "SERVER";
- /**
- * Indicates that the span covers the client-side wrapper around an RPC or
- * other remote request.
- */
- SpanKind[SpanKind["CLIENT"] = 2] = "CLIENT";
- /**
- * Indicates that the span describes producer sending a message to a
- * broker. Unlike client and server, there is no direct critical path latency
- * relationship between producer and consumer spans.
- */
- SpanKind[SpanKind["PRODUCER"] = 3] = "PRODUCER";
- /**
- * Indicates that the span describes consumer receiving a message from a
- * broker. Unlike client and server, there is no direct critical path latency
- * relationship between producer and consumer spans.
- */
- SpanKind[SpanKind["CONSUMER"] = 4] = "CONSUMER";
-})(exports.SpanKind || (exports.SpanKind = {}));
-/**
- * Return the span if one exists
- *
- * @param context - context to get span from
- */
-function getSpan(context) {
- return api.trace.getSpan(context);
-}
-/**
- * Set the span on a context
- *
- * @param context - context to use as parent
- * @param span - span to set active
- */
-function setSpan(context, span) {
- return api.trace.setSpan(context, span);
-}
-/**
- * Wrap span context in a NoopSpan and set as span in a new
- * context
- *
- * @param context - context to set active span on
- * @param spanContext - span context to be wrapped
- */
-function setSpanContext(context, spanContext) {
- return api.trace.setSpanContext(context, spanContext);
-}
-/**
- * Get the span context of the span if it exists.
- *
- * @param context - context to get values from
- */
-function getSpanContext(context) {
- return api.trace.getSpanContext(context);
-}
-/**
- * Returns true of the given {@link SpanContext} is valid.
- * A valid {@link SpanContext} is one which has a valid trace ID and span ID as per the spec.
- *
- * @param context - the {@link SpanContext} to validate.
- *
- * @returns true if the {@link SpanContext} is valid, false otherwise.
- */
-function isSpanContextValid(context) {
- return api.trace.isSpanContextValid(context);
-}
-function getTracer(name, version) {
- return api.trace.getTracer(name || "azure/core-tracing", version);
-}
-/** Entrypoint for context API */
-const context = api.context;
-(function (SpanStatusCode) {
- /**
- * The default status.
- */
- SpanStatusCode[SpanStatusCode["UNSET"] = 0] = "UNSET";
- /**
- * The operation has been validated by an Application developer or
- * Operator to have completed successfully.
- */
- SpanStatusCode[SpanStatusCode["OK"] = 1] = "OK";
- /**
- * The operation contains an error.
- */
- SpanStatusCode[SpanStatusCode["ERROR"] = 2] = "ERROR";
-})(exports.SpanStatusCode || (exports.SpanStatusCode = {}));
+var _v2 = _interopRequireDefault(__nccwpck_require__(9982));
-// Copyright (c) Microsoft Corporation.
-function isTracingDisabled() {
- var _a;
- if (typeof process === "undefined") {
- // not supported in browser for now without polyfills
- return false;
- }
- const azureTracingDisabledValue = (_a = process.env.AZURE_TRACING_DISABLED) === null || _a === void 0 ? void 0 : _a.toLowerCase();
- if (azureTracingDisabledValue === "false" || azureTracingDisabledValue === "0") {
- return false;
- }
- return Boolean(azureTracingDisabledValue);
-}
-/**
- * Creates a function that can be used to create spans using the global tracer.
- *
- * Usage:
- *
- * ```typescript
- * // once
- * const createSpan = createSpanFunction({ packagePrefix: "Azure.Data.AppConfiguration", namespace: "Microsoft.AppConfiguration" });
- *
- * // in each operation
- * const span = createSpan("deleteConfigurationSetting", operationOptions);
- * // code...
- * span.end();
- * ```
- *
- * @hidden
- * @param args - allows configuration of the prefix for each span as well as the az.namespace field.
- */
-function createSpanFunction(args) {
- return function (operationName, operationOptions) {
- const tracer = getTracer();
- const tracingOptions = (operationOptions === null || operationOptions === void 0 ? void 0 : operationOptions.tracingOptions) || {};
- const spanOptions = Object.assign({ kind: exports.SpanKind.INTERNAL }, tracingOptions.spanOptions);
- const spanName = args.packagePrefix ? `${args.packagePrefix}.${operationName}` : operationName;
- let span;
- if (isTracingDisabled()) {
- span = api.trace.wrapSpanContext(api.INVALID_SPAN_CONTEXT);
- }
- else {
- span = tracer.startSpan(spanName, spanOptions, tracingOptions.tracingContext);
- }
- if (args.namespace) {
- span.setAttribute("az.namespace", args.namespace);
- }
- let newSpanOptions = tracingOptions.spanOptions || {};
- if (span.isRecording() && args.namespace) {
- newSpanOptions = Object.assign(Object.assign({}, tracingOptions.spanOptions), { attributes: Object.assign(Object.assign({}, spanOptions.attributes), { "az.namespace": args.namespace }) });
- }
- const newTracingOptions = Object.assign(Object.assign({}, tracingOptions), { spanOptions: newSpanOptions, tracingContext: setSpan(tracingOptions.tracingContext || context.active(), span) });
- const newOperationOptions = Object.assign(Object.assign({}, operationOptions), { tracingOptions: newTracingOptions });
- return {
- span,
- updatedOptions: newOperationOptions
- };
- };
-}
+var _v3 = _interopRequireDefault(__nccwpck_require__(5393));
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT license.
-const VERSION = "00";
-/**
- * Generates a `SpanContext` given a `traceparent` header value.
- * @param traceParent - Serialized span context data as a `traceparent` header value.
- * @returns The `SpanContext` generated from the `traceparent` value.
- */
-function extractSpanContextFromTraceParentHeader(traceParentHeader) {
- const parts = traceParentHeader.split("-");
- if (parts.length !== 4) {
- return;
- }
- const [version, traceId, spanId, traceOptions] = parts;
- if (version !== VERSION) {
- return;
- }
- const traceFlags = parseInt(traceOptions, 16);
- const spanContext = {
- spanId,
- traceId,
- traceFlags
- };
- return spanContext;
-}
-/**
- * Generates a `traceparent` value given a span context.
- * @param spanContext - Contains context for a specific span.
- * @returns The `spanContext` represented as a `traceparent` value.
- */
-function getTraceParentHeader(spanContext) {
- const missingFields = [];
- if (!spanContext.traceId) {
- missingFields.push("traceId");
- }
- if (!spanContext.spanId) {
- missingFields.push("spanId");
- }
- if (missingFields.length) {
- return;
- }
- const flags = spanContext.traceFlags || 0 /* NONE */;
- const hexFlags = flags.toString(16);
- const traceFlags = hexFlags.length === 1 ? `0${hexFlags}` : hexFlags;
- // https://www.w3.org/TR/trace-context/#traceparent-header-field-values
- return `${VERSION}-${spanContext.traceId}-${spanContext.spanId}-${traceFlags}`;
-}
+var _v4 = _interopRequireDefault(__nccwpck_require__(8788));
-exports.context = context;
-exports.createSpanFunction = createSpanFunction;
-exports.extractSpanContextFromTraceParentHeader = extractSpanContextFromTraceParentHeader;
-exports.getSpan = getSpan;
-exports.getSpanContext = getSpanContext;
-exports.getTraceParentHeader = getTraceParentHeader;
-exports.getTracer = getTracer;
-exports.isSpanContextValid = isSpanContextValid;
-exports.setSpan = setSpan;
-exports.setSpanContext = setSpanContext;
-//# sourceMappingURL=index.js.map
+var _nil = _interopRequireDefault(__nccwpck_require__(657));
+
+var _version = _interopRequireDefault(__nccwpck_require__(7909));
+var _validate = _interopRequireDefault(__nccwpck_require__(4418));
+
+var _stringify = _interopRequireDefault(__nccwpck_require__(4794));
+
+var _parse = _interopRequireDefault(__nccwpck_require__(7079));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/***/ }),
-/***/ 1333:
+/***/ 4153:
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
"use strict";
-Object.defineProperty(exports, "__esModule", ({ value: true }));
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports["default"] = void 0;
-var abortController = __nccwpck_require__(2557);
-var crypto = __nccwpck_require__(6113);
+var _crypto = _interopRequireDefault(__nccwpck_require__(6113));
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT license.
-var _a$1;
-/**
- * A constant that indicates whether the environment the code is running is Node.JS.
- */
-const isNode = typeof process !== "undefined" && Boolean(process.version) && Boolean((_a$1 = process.versions) === null || _a$1 === void 0 ? void 0 : _a$1.node);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-// Copyright (c) Microsoft Corporation.
-/**
- * Creates an abortable promise.
- * @param buildPromise - A function that takes the resolve and reject functions as parameters.
- * @param options - The options for the abortable promise.
- * @returns A promise that can be aborted.
- */
-function createAbortablePromise(buildPromise, options) {
- const { cleanupBeforeAbort, abortSignal, abortErrorMsg } = options !== null && options !== void 0 ? options : {};
- return new Promise((resolve, reject) => {
- function rejectOnAbort() {
- reject(new abortController.AbortError(abortErrorMsg !== null && abortErrorMsg !== void 0 ? abortErrorMsg : "The operation was aborted."));
- }
- function removeListeners() {
- abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.removeEventListener("abort", onAbort);
- }
- function onAbort() {
- cleanupBeforeAbort === null || cleanupBeforeAbort === void 0 ? void 0 : cleanupBeforeAbort();
- removeListeners();
- rejectOnAbort();
- }
- if (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) {
- return rejectOnAbort();
- }
- try {
- buildPromise((x) => {
- removeListeners();
- resolve(x);
- }, (x) => {
- removeListeners();
- reject(x);
- });
- }
- catch (err) {
- reject(err);
- }
- abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.addEventListener("abort", onAbort);
- });
-}
+function md5(bytes) {
+ if (Array.isArray(bytes)) {
+ bytes = Buffer.from(bytes);
+ } else if (typeof bytes === 'string') {
+ bytes = Buffer.from(bytes, 'utf8');
+ }
-// Copyright (c) Microsoft Corporation.
-const StandardAbortMessage = "The delay was aborted.";
-/**
- * A wrapper for setTimeout that resolves a promise after timeInMs milliseconds.
- * @param timeInMs - The number of milliseconds to be delayed.
- * @param options - The options for delay - currently abort options
- * @returns Promise that is resolved after timeInMs
- */
-function delay(timeInMs, options) {
- let token;
- const { abortSignal, abortErrorMsg } = options !== null && options !== void 0 ? options : {};
- return createAbortablePromise((resolve) => {
- token = setTimeout(resolve, timeInMs);
- }, {
- cleanupBeforeAbort: () => clearTimeout(token),
- abortSignal,
- abortErrorMsg: abortErrorMsg !== null && abortErrorMsg !== void 0 ? abortErrorMsg : StandardAbortMessage,
- });
+ return _crypto.default.createHash('md5').update(bytes).digest();
}
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT license.
-/**
- * Returns a random integer value between a lower and upper bound,
- * inclusive of both bounds.
- * Note that this uses Math.random and isn't secure. If you need to use
- * this for any kind of security purpose, find a better source of random.
- * @param min - The smallest integer value allowed.
- * @param max - The largest integer value allowed.
- */
-function getRandomIntegerInclusive(min, max) {
- // Make sure inputs are integers.
- min = Math.ceil(min);
- max = Math.floor(max);
- // Pick a random offset from zero to the size of the range.
- // Since Math.random() can never return 1, we have to make the range one larger
- // in order to be inclusive of the maximum value after we take the floor.
- const offset = Math.floor(Math.random() * (max - min + 1));
- return offset + min;
-}
+var _default = md5;
+exports["default"] = _default;
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT license.
-/**
- * Helper to determine when an input is a generic JS object.
- * @returns true when input is an object type that is not null, Array, RegExp, or Date.
- */
-function isObject(input) {
- return (typeof input === "object" &&
- input !== null &&
- !Array.isArray(input) &&
- !(input instanceof RegExp) &&
- !(input instanceof Date));
-}
+/***/ }),
-// Copyright (c) Microsoft Corporation.
-/**
- * Typeguard for an error object shape (has name and message)
- * @param e - Something caught by a catch clause.
- */
-function isError(e) {
- if (isObject(e)) {
- const hasName = typeof e.name === "string";
- const hasMessage = typeof e.message === "string";
- return hasName && hasMessage;
- }
- return false;
-}
-/**
- * Given what is thought to be an error object, return the message if possible.
- * If the message is missing, returns a stringified version of the input.
- * @param e - Something thrown from a try block
- * @returns The error message or a string of the input
- */
-function getErrorMessage(e) {
- if (isError(e)) {
- return e.message;
- }
- else {
- let stringified;
- try {
- if (typeof e === "object" && e) {
- stringified = JSON.stringify(e);
- }
- else {
- stringified = String(e);
- }
- }
- catch (err) {
- stringified = "[unable to stringify input]";
- }
- return `Unknown error ${stringified}`;
- }
-}
+/***/ 657:
+/***/ ((__unused_webpack_module, exports) => {
-// Copyright (c) Microsoft Corporation.
-/**
- * Generates a SHA-256 HMAC signature.
- * @param key - The HMAC key represented as a base64 string, used to generate the cryptographic HMAC hash.
- * @param stringToSign - The data to be signed.
- * @param encoding - The textual encoding to use for the returned HMAC digest.
- */
-async function computeSha256Hmac(key, stringToSign, encoding) {
- const decodedKey = Buffer.from(key, "base64");
- return crypto.createHmac("sha256", decodedKey).update(stringToSign).digest(encoding);
-}
-/**
- * Generates a SHA-256 hash.
- * @param content - The data to be included in the hash.
- * @param encoding - The textual encoding to use for the returned hash.
- */
-async function computeSha256Hash(content, encoding) {
- return crypto.createHash("sha256").update(content).digest(encoding);
-}
+"use strict";
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT license.
-/**
- * Helper TypeGuard that checks if something is defined or not.
- * @param thing - Anything
- */
-function isDefined(thing) {
- return typeof thing !== "undefined" && thing !== null;
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports["default"] = void 0;
+var _default = '00000000-0000-0000-0000-000000000000';
+exports["default"] = _default;
+
+/***/ }),
+
+/***/ 7079:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports["default"] = void 0;
+
+var _validate = _interopRequireDefault(__nccwpck_require__(4418));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function parse(uuid) {
+ if (!(0, _validate.default)(uuid)) {
+ throw TypeError('Invalid UUID');
+ }
+
+ let v;
+ const arr = new Uint8Array(16); // Parse ########-....-....-....-............
+
+ arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;
+ arr[1] = v >>> 16 & 0xff;
+ arr[2] = v >>> 8 & 0xff;
+ arr[3] = v & 0xff; // Parse ........-####-....-....-............
+
+ arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;
+ arr[5] = v & 0xff; // Parse ........-....-####-....-............
+
+ arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;
+ arr[7] = v & 0xff; // Parse ........-....-....-####-............
+
+ arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;
+ arr[9] = v & 0xff; // Parse ........-....-....-....-############
+ // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes)
+
+ arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;
+ arr[11] = v / 0x100000000 & 0xff;
+ arr[12] = v >>> 24 & 0xff;
+ arr[13] = v >>> 16 & 0xff;
+ arr[14] = v >>> 8 & 0xff;
+ arr[15] = v & 0xff;
+ return arr;
}
-/**
- * Helper TypeGuard that checks if the input is an object with the specified properties.
- * @param thing - Anything.
- * @param properties - The name of the properties that should appear in the object.
- */
-function isObjectWithProperties(thing, properties) {
- if (!isDefined(thing) || typeof thing !== "object") {
- return false;
- }
- for (const property of properties) {
- if (!objectHasProperty(thing, property)) {
- return false;
- }
- }
- return true;
+
+var _default = parse;
+exports["default"] = _default;
+
+/***/ }),
+
+/***/ 690:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports["default"] = void 0;
+var _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
+exports["default"] = _default;
+
+/***/ }),
+
+/***/ 979:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports["default"] = rng;
+
+var _crypto = _interopRequireDefault(__nccwpck_require__(6113));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate
+
+let poolPtr = rnds8Pool.length;
+
+function rng() {
+ if (poolPtr > rnds8Pool.length - 16) {
+ _crypto.default.randomFillSync(rnds8Pool);
+
+ poolPtr = 0;
+ }
+
+ return rnds8Pool.slice(poolPtr, poolPtr += 16);
}
-/**
- * Helper TypeGuard that checks if the input is an object with the specified property.
- * @param thing - Any object.
- * @param property - The name of the property that should appear in the object.
- */
-function objectHasProperty(thing, property) {
- return (isDefined(thing) && typeof thing === "object" && property in thing);
+
+/***/ }),
+
+/***/ 6631:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports["default"] = void 0;
+
+var _crypto = _interopRequireDefault(__nccwpck_require__(6113));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function sha1(bytes) {
+ if (Array.isArray(bytes)) {
+ bytes = Buffer.from(bytes);
+ } else if (typeof bytes === 'string') {
+ bytes = Buffer.from(bytes, 'utf8');
+ }
+
+ return _crypto.default.createHash('sha1').update(bytes).digest();
}
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT license.
-var _a;
-// NOTE: This is a workaround until we can use `globalThis.crypto.randomUUID` in Node.js 19+.
-const uuidFunction = typeof ((_a = globalThis === null || globalThis === void 0 ? void 0 : globalThis.crypto) === null || _a === void 0 ? void 0 : _a.randomUUID) === "function"
- ? globalThis.crypto.randomUUID.bind(globalThis.crypto)
- : crypto.randomUUID;
+var _default = sha1;
+exports["default"] = _default;
+
+/***/ }),
+
+/***/ 4794:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports["default"] = void 0;
+
+var _validate = _interopRequireDefault(__nccwpck_require__(4418));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
/**
- * Generated Universally Unique Identifier
- *
- * @returns RFC4122 v4 UUID.
+ * Convert array of 16 byte values to UUID string format of the form:
+ * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
*/
-function randomUUID() {
- return uuidFunction();
+const byteToHex = [];
+
+for (let i = 0; i < 256; ++i) {
+ byteToHex.push((i + 0x100).toString(16).substr(1));
}
-exports.computeSha256Hash = computeSha256Hash;
-exports.computeSha256Hmac = computeSha256Hmac;
-exports.createAbortablePromise = createAbortablePromise;
-exports.delay = delay;
-exports.getErrorMessage = getErrorMessage;
-exports.getRandomIntegerInclusive = getRandomIntegerInclusive;
-exports.isDefined = isDefined;
-exports.isError = isError;
-exports.isNode = isNode;
-exports.isObject = isObject;
-exports.isObjectWithProperties = isObjectWithProperties;
-exports.objectHasProperty = objectHasProperty;
-exports.randomUUID = randomUUID;
-//# sourceMappingURL=index.js.map
+function stringify(arr, offset = 0) {
+ // Note: Be careful editing this code! It's been tuned for performance
+ // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
+ const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one
+ // of the following:
+ // - One or more input array values don't map to a hex octet (leading to
+ // "undefined" in the uuid)
+ // - Invalid input values for the RFC `version` or `variant` fields
+
+ if (!(0, _validate.default)(uuid)) {
+ throw TypeError('Stringified UUID is invalid');
+ }
+
+ return uuid;
+}
+var _default = stringify;
+exports["default"] = _default;
/***/ }),
-/***/ 3233:
+/***/ 4757:
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
"use strict";
-Object.defineProperty(exports, "__esModule", ({ value: true }));
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports["default"] = void 0;
-function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
+var _rng = _interopRequireDefault(__nccwpck_require__(979));
-var util = _interopDefault(__nccwpck_require__(3837));
-var os = __nccwpck_require__(2037);
+var _stringify = _interopRequireDefault(__nccwpck_require__(4794));
-// Copyright (c) Microsoft Corporation.
-function log(message, ...args) {
- process.stderr.write(`${util.format(message, ...args)}${os.EOL}`);
-}
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-// Copyright (c) Microsoft Corporation.
-const debugEnvVariable = (typeof process !== "undefined" && process.env && process.env.DEBUG) || undefined;
-let enabledString;
-let enabledNamespaces = [];
-let skippedNamespaces = [];
-const debuggers = [];
-if (debugEnvVariable) {
- enable(debugEnvVariable);
-}
-const debugObj = Object.assign((namespace) => {
- return createDebugger(namespace);
-}, {
- enable,
- enabled,
- disable,
- log
-});
-function enable(namespaces) {
- enabledString = namespaces;
- enabledNamespaces = [];
- skippedNamespaces = [];
- const wildcard = /\*/g;
- const namespaceList = namespaces.split(",").map((ns) => ns.trim().replace(wildcard, ".*?"));
- for (const ns of namespaceList) {
- if (ns.startsWith("-")) {
- skippedNamespaces.push(new RegExp(`^${ns.substr(1)}$`));
- }
- else {
- enabledNamespaces.push(new RegExp(`^${ns}$`));
- }
- }
- for (const instance of debuggers) {
- instance.enabled = enabled(instance.namespace);
- }
-}
-function enabled(namespace) {
- if (namespace.endsWith("*")) {
- return true;
- }
- for (const skipped of skippedNamespaces) {
- if (skipped.test(namespace)) {
- return false;
- }
- }
- for (const enabledNamespace of enabledNamespaces) {
- if (enabledNamespace.test(namespace)) {
- return true;
- }
- }
- return false;
-}
-function disable() {
- const result = enabledString || "";
- enable("");
- return result;
-}
-function createDebugger(namespace) {
- const newDebugger = Object.assign(debug, {
- enabled: enabled(namespace),
- destroy,
- log: debugObj.log,
- namespace,
- extend
- });
- function debug(...args) {
- if (!newDebugger.enabled) {
- return;
- }
- if (args.length > 0) {
- args[0] = `${namespace} ${args[0]}`;
- }
- newDebugger.log(...args);
+// **`v1()` - Generate time-based UUID**
+//
+// Inspired by https://github.com/LiosK/UUID.js
+// and http://docs.python.org/library/uuid.html
+let _nodeId;
+
+let _clockseq; // Previous uuid creation time
+
+
+let _lastMSecs = 0;
+let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details
+
+function v1(options, buf, offset) {
+ let i = buf && offset || 0;
+ const b = buf || new Array(16);
+ options = options || {};
+ let node = options.node || _nodeId;
+ let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not
+ // specified. We do this lazily to minimize issues related to insufficient
+ // system entropy. See #189
+
+ if (node == null || clockseq == null) {
+ const seedBytes = options.random || (options.rng || _rng.default)();
+
+ if (node == null) {
+ // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
+ node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];
}
- debuggers.push(newDebugger);
- return newDebugger;
-}
-function destroy() {
- const index = debuggers.indexOf(this);
- if (index >= 0) {
- debuggers.splice(index, 1);
- return true;
+
+ if (clockseq == null) {
+ // Per 4.2.2, randomize (14 bit) clockseq
+ clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;
}
- return false;
-}
-function extend(namespace) {
- const newDebugger = createDebugger(`${this.namespace}:${namespace}`);
- newDebugger.log = this.log;
- return newDebugger;
+ } // UUID timestamps are 100 nano-second units since the Gregorian epoch,
+ // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so
+ // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
+ // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.
+
+
+ let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock
+ // cycle to simulate higher resolution clock
+
+ let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)
+
+ const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression
+
+ if (dt < 0 && options.clockseq === undefined) {
+ clockseq = clockseq + 1 & 0x3fff;
+ } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
+ // time interval
+
+
+ if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {
+ nsecs = 0;
+ } // Per 4.2.1.2 Throw error if too many uuids are requested
+
+
+ if (nsecs >= 10000) {
+ throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");
+ }
+
+ _lastMSecs = msecs;
+ _lastNSecs = nsecs;
+ _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch
+
+ msecs += 12219292800000; // `time_low`
+
+ const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
+ b[i++] = tl >>> 24 & 0xff;
+ b[i++] = tl >>> 16 & 0xff;
+ b[i++] = tl >>> 8 & 0xff;
+ b[i++] = tl & 0xff; // `time_mid`
+
+ const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;
+ b[i++] = tmh >>> 8 & 0xff;
+ b[i++] = tmh & 0xff; // `time_high_and_version`
+
+ b[i++] = tmh >>> 24 & 0xf | 0x10; // include version
+
+ b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)
+
+ b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`
+
+ b[i++] = clockseq & 0xff; // `node`
+
+ for (let n = 0; n < 6; ++n) {
+ b[i + n] = node[n];
+ }
+
+ return buf || (0, _stringify.default)(b);
}
-// Copyright (c) Microsoft Corporation.
-const registeredLoggers = new Set();
-const logLevelFromEnv = (typeof process !== "undefined" && process.env && process.env.AZURE_LOG_LEVEL) || undefined;
-let azureLogLevel;
-/**
- * The AzureLogger provides a mechanism for overriding where logs are output to.
- * By default, logs are sent to stderr.
- * Override the `log` method to redirect logs to another location.
- */
-const AzureLogger = debugObj("azure");
-AzureLogger.log = (...args) => {
- debugObj.log(...args);
-};
-const AZURE_LOG_LEVELS = ["verbose", "info", "warning", "error"];
-if (logLevelFromEnv) {
- // avoid calling setLogLevel because we don't want a mis-set environment variable to crash
- if (isAzureLogLevel(logLevelFromEnv)) {
- setLogLevel(logLevelFromEnv);
- }
- else {
- console.error(`AZURE_LOG_LEVEL set to unknown log level '${logLevelFromEnv}'; logging is not enabled. Acceptable values: ${AZURE_LOG_LEVELS.join(", ")}.`);
- }
+var _default = v1;
+exports["default"] = _default;
+
+/***/ }),
+
+/***/ 9982:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports["default"] = void 0;
+
+var _v = _interopRequireDefault(__nccwpck_require__(4085));
+
+var _md = _interopRequireDefault(__nccwpck_require__(4153));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+const v3 = (0, _v.default)('v3', 0x30, _md.default);
+var _default = v3;
+exports["default"] = _default;
+
+/***/ }),
+
+/***/ 4085:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports["default"] = _default;
+exports.URL = exports.DNS = void 0;
+
+var _stringify = _interopRequireDefault(__nccwpck_require__(4794));
+
+var _parse = _interopRequireDefault(__nccwpck_require__(7079));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function stringToBytes(str) {
+ str = unescape(encodeURIComponent(str)); // UTF8 escape
+
+ const bytes = [];
+
+ for (let i = 0; i < str.length; ++i) {
+ bytes.push(str.charCodeAt(i));
+ }
+
+ return bytes;
}
-/**
- * Immediately enables logging at the specified log level.
- * @param level - The log level to enable for logging.
- * Options from most verbose to least verbose are:
- * - verbose
- * - info
- * - warning
- * - error
- */
-function setLogLevel(level) {
- if (level && !isAzureLogLevel(level)) {
- throw new Error(`Unknown log level '${level}'. Acceptable values: ${AZURE_LOG_LEVELS.join(",")}`);
+
+const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
+exports.DNS = DNS;
+const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';
+exports.URL = URL;
+
+function _default(name, version, hashfunc) {
+ function generateUUID(value, namespace, buf, offset) {
+ if (typeof value === 'string') {
+ value = stringToBytes(value);
}
- azureLogLevel = level;
- const enabledNamespaces = [];
- for (const logger of registeredLoggers) {
- if (shouldEnable(logger)) {
- enabledNamespaces.push(logger.namespace);
- }
+
+ if (typeof namespace === 'string') {
+ namespace = (0, _parse.default)(namespace);
}
- debugObj.enable(enabledNamespaces.join(","));
-}
-/**
- * Retrieves the currently specified log level.
- */
-function getLogLevel() {
- return azureLogLevel;
-}
-const levelMap = {
- verbose: 400,
- info: 300,
- warning: 200,
- error: 100
-};
-/**
- * Creates a logger for use by the Azure SDKs that inherits from `AzureLogger`.
- * @param namespace - The name of the SDK package.
- * @hidden
- */
-function createClientLogger(namespace) {
- const clientRootLogger = AzureLogger.extend(namespace);
- patchLogMethod(AzureLogger, clientRootLogger);
- return {
- error: createLogger(clientRootLogger, "error"),
- warning: createLogger(clientRootLogger, "warning"),
- info: createLogger(clientRootLogger, "info"),
- verbose: createLogger(clientRootLogger, "verbose")
- };
-}
-function patchLogMethod(parent, child) {
- child.log = (...args) => {
- parent.log(...args);
- };
-}
-function createLogger(parent, level) {
- const logger = Object.assign(parent.extend(level), {
- level
- });
- patchLogMethod(parent, logger);
- if (shouldEnable(logger)) {
- const enabledNamespaces = debugObj.disable();
- debugObj.enable(enabledNamespaces + "," + logger.namespace);
+
+ if (namespace.length !== 16) {
+ throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');
+ } // Compute hash of namespace and value, Per 4.3
+ // Future: Use spread syntax when supported on all platforms, e.g. `bytes =
+ // hashfunc([...namespace, ... value])`
+
+
+ let bytes = new Uint8Array(16 + value.length);
+ bytes.set(namespace);
+ bytes.set(value, namespace.length);
+ bytes = hashfunc(bytes);
+ bytes[6] = bytes[6] & 0x0f | version;
+ bytes[8] = bytes[8] & 0x3f | 0x80;
+
+ if (buf) {
+ offset = offset || 0;
+
+ for (let i = 0; i < 16; ++i) {
+ buf[offset + i] = bytes[i];
+ }
+
+ return buf;
}
- registeredLoggers.add(logger);
- return logger;
+
+ return (0, _stringify.default)(bytes);
+ } // Function#name is not settable on some platforms (#270)
+
+
+ try {
+ generateUUID.name = name; // eslint-disable-next-line no-empty
+ } catch (err) {} // For CommonJS default export support
+
+
+ generateUUID.DNS = DNS;
+ generateUUID.URL = URL;
+ return generateUUID;
}
-function shouldEnable(logger) {
- if (azureLogLevel && levelMap[logger.level] <= levelMap[azureLogLevel]) {
- return true;
- }
- else {
- return false;
+
+/***/ }),
+
+/***/ 5393:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports["default"] = void 0;
+
+var _rng = _interopRequireDefault(__nccwpck_require__(979));
+
+var _stringify = _interopRequireDefault(__nccwpck_require__(4794));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function v4(options, buf, offset) {
+ options = options || {};
+
+ const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
+
+
+ rnds[6] = rnds[6] & 0x0f | 0x40;
+ rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
+
+ if (buf) {
+ offset = offset || 0;
+
+ for (let i = 0; i < 16; ++i) {
+ buf[offset + i] = rnds[i];
}
+
+ return buf;
+ }
+
+ return (0, _stringify.default)(rnds);
}
-function isAzureLogLevel(logLevel) {
- return AZURE_LOG_LEVELS.includes(logLevel);
+
+var _default = v4;
+exports["default"] = _default;
+
+/***/ }),
+
+/***/ 8788:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports["default"] = void 0;
+
+var _v = _interopRequireDefault(__nccwpck_require__(4085));
+
+var _sha = _interopRequireDefault(__nccwpck_require__(6631));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+const v5 = (0, _v.default)('v5', 0x50, _sha.default);
+var _default = v5;
+exports["default"] = _default;
+
+/***/ }),
+
+/***/ 4418:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports["default"] = void 0;
+
+var _regex = _interopRequireDefault(__nccwpck_require__(690));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function validate(uuid) {
+ return typeof uuid === 'string' && _regex.default.test(uuid);
}
-exports.AzureLogger = AzureLogger;
-exports.createClientLogger = createClientLogger;
-exports.getLogLevel = getLogLevel;
-exports.setLogLevel = setLogLevel;
-//# sourceMappingURL=index.js.map
+var _default = validate;
+exports["default"] = _default;
+
+/***/ }),
+
+/***/ 7909:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports["default"] = void 0;
+
+var _validate = _interopRequireDefault(__nccwpck_require__(4418));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function version(uuid) {
+ if (!(0, _validate.default)(uuid)) {
+ throw TypeError('Invalid UUID');
+ }
+
+ return parseInt(uuid.substr(14, 1), 16);
+}
+
+var _default = version;
+exports["default"] = _default;
/***/ }),
-/***/ 4100:
+/***/ 7094:
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
"use strict";
@@ -22404,2080 +22511,1919 @@ exports.setLogLevel = setLogLevel;
Object.defineProperty(exports, "__esModule", ({ value: true }));
-var coreHttp = __nccwpck_require__(4607);
-var tslib = __nccwpck_require__(679);
-var coreTracing = __nccwpck_require__(4175);
var logger$1 = __nccwpck_require__(3233);
-var abortController = __nccwpck_require__(2557);
-var os = __nccwpck_require__(2037);
-var crypto = __nccwpck_require__(6113);
-var stream = __nccwpck_require__(2781);
-__nccwpck_require__(4559);
-var coreLro = __nccwpck_require__(7094);
-var events = __nccwpck_require__(2361);
-var fs = __nccwpck_require__(7147);
-var util = __nccwpck_require__(3837);
-function _interopNamespace(e) {
- if (e && e.__esModule) return e;
- var n = Object.create(null);
- if (e) {
- Object.keys(e).forEach(function (k) {
- if (k !== 'default') {
- var d = Object.getOwnPropertyDescriptor(e, k);
- Object.defineProperty(n, k, d.get ? d : {
- enumerable: true,
- get: function () { return e[k]; }
- });
- }
- });
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT license.
+/**
+ * When a poller is manually stopped through the `stopPolling` method,
+ * the poller will be rejected with an instance of the PollerStoppedError.
+ */
+class PollerStoppedError extends Error {
+ constructor(message) {
+ super(message);
+ this.name = "PollerStoppedError";
+ Object.setPrototypeOf(this, PollerStoppedError.prototype);
}
- n["default"] = e;
- return Object.freeze(n);
}
-
-var coreHttp__namespace = /*#__PURE__*/_interopNamespace(coreHttp);
-var os__namespace = /*#__PURE__*/_interopNamespace(os);
-var fs__namespace = /*#__PURE__*/_interopNamespace(fs);
-var util__namespace = /*#__PURE__*/_interopNamespace(util);
-
-/*
- * Copyright (c) Microsoft Corporation.
- * Licensed under the MIT License.
+/**
+ * When a poller is cancelled through the `cancelOperation` method,
+ * the poller will be rejected with an instance of the PollerCancelledError.
+ */
+class PollerCancelledError extends Error {
+ constructor(message) {
+ super(message);
+ this.name = "PollerCancelledError";
+ Object.setPrototypeOf(this, PollerCancelledError.prototype);
+ }
+}
+/**
+ * A class that represents the definition of a program that polls through consecutive requests
+ * until it reaches a state of completion.
+ *
+ * A poller can be executed manually, by polling request by request by calling to the `poll()` method repeatedly, until its operation is completed.
+ * It also provides a way to wait until the operation completes, by calling `pollUntilDone()` and waiting until the operation finishes.
+ * Pollers can also request the cancellation of the ongoing process to whom is providing the underlying long running operation.
+ *
+ * ```ts
+ * const poller = new MyPoller();
+ *
+ * // Polling just once:
+ * await poller.poll();
+ *
+ * // We can try to cancel the request here, by calling:
+ * //
+ * // await poller.cancelOperation();
+ * //
+ *
+ * // Getting the final result:
+ * const result = await poller.pollUntilDone();
+ * ```
+ *
+ * The Poller is defined by two types, a type representing the state of the poller, which
+ * must include a basic set of properties from `PollOperationState`,
+ * and a return type defined by `TResult`, which can be anything.
+ *
+ * The Poller class implements the `PollerLike` interface, which allows poller implementations to avoid having
+ * to export the Poller's class directly, and instead only export the already instantiated poller with the PollerLike type.
+ *
+ * ```ts
+ * class Client {
+ * public async makePoller: PollerLike {
+ * const poller = new MyPoller({});
+ * // It might be preferred to return the poller after the first request is made,
+ * // so that some information can be obtained right away.
+ * await poller.poll();
+ * return poller;
+ * }
+ * }
+ *
+ * const poller: PollerLike = myClient.makePoller();
+ * ```
+ *
+ * A poller can be created through its constructor, then it can be polled until it's completed.
+ * At any point in time, the state of the poller can be obtained without delay through the getOperationState method.
+ * At any point in time, the intermediate forms of the result type can be requested without delay.
+ * Once the underlying operation is marked as completed, the poller will stop and the final value will be returned.
+ *
+ * ```ts
+ * const poller = myClient.makePoller();
+ * const state: MyOperationState = poller.getOperationState();
+ *
+ * // The intermediate result can be obtained at any time.
+ * const result: MyResult | undefined = poller.getResult();
+ *
+ * // The final result can only be obtained after the poller finishes.
+ * const result: MyResult = await poller.pollUntilDone();
+ * ```
*
- * Code generated by Microsoft (R) AutoRest Code Generator.
- * Changes may cause incorrect behavior and will be lost if the code is regenerated.
*/
-const BlobServiceProperties = {
- serializedName: "BlobServiceProperties",
- xmlName: "StorageServiceProperties",
- type: {
- name: "Composite",
- className: "BlobServiceProperties",
- modelProperties: {
- blobAnalyticsLogging: {
- serializedName: "Logging",
- xmlName: "Logging",
- type: {
- name: "Composite",
- className: "Logging"
- }
- },
- hourMetrics: {
- serializedName: "HourMetrics",
- xmlName: "HourMetrics",
- type: {
- name: "Composite",
- className: "Metrics"
- }
- },
- minuteMetrics: {
- serializedName: "MinuteMetrics",
- xmlName: "MinuteMetrics",
- type: {
- name: "Composite",
- className: "Metrics"
- }
- },
- cors: {
- serializedName: "Cors",
- xmlName: "Cors",
- xmlIsWrapped: true,
- xmlElementName: "CorsRule",
- type: {
- name: "Sequence",
- element: {
- type: {
- name: "Composite",
- className: "CorsRule"
- }
- }
- }
- },
- defaultServiceVersion: {
- serializedName: "DefaultServiceVersion",
- xmlName: "DefaultServiceVersion",
- type: {
- name: "String"
- }
- },
- deleteRetentionPolicy: {
- serializedName: "DeleteRetentionPolicy",
- xmlName: "DeleteRetentionPolicy",
- type: {
- name: "Composite",
- className: "RetentionPolicy"
- }
- },
- staticWebsite: {
- serializedName: "StaticWebsite",
- xmlName: "StaticWebsite",
- type: {
- name: "Composite",
- className: "StaticWebsite"
- }
- }
- }
+// eslint-disable-next-line no-use-before-define
+class Poller {
+ /**
+ * A poller needs to be initialized by passing in at least the basic properties of the `PollOperation`.
+ *
+ * When writing an implementation of a Poller, this implementation needs to deal with the initialization
+ * of any custom state beyond the basic definition of the poller. The basic poller assumes that the poller's
+ * operation has already been defined, at least its basic properties. The code below shows how to approach
+ * the definition of the constructor of a new custom poller.
+ *
+ * ```ts
+ * export class MyPoller extends Poller {
+ * constructor({
+ * // Anything you might need outside of the basics
+ * }) {
+ * let state: MyOperationState = {
+ * privateProperty: private,
+ * publicProperty: public,
+ * };
+ *
+ * const operation = {
+ * state,
+ * update,
+ * cancel,
+ * toString
+ * }
+ *
+ * // Sending the operation to the parent's constructor.
+ * super(operation);
+ *
+ * // You can assign more local properties here.
+ * }
+ * }
+ * ```
+ *
+ * Inside of this constructor, a new promise is created. This will be used to
+ * tell the user when the poller finishes (see `pollUntilDone()`). The promise's
+ * resolve and reject methods are also used internally to control when to resolve
+ * or reject anyone waiting for the poller to finish.
+ *
+ * The constructor of a custom implementation of a poller is where any serialized version of
+ * a previous poller's operation should be deserialized into the operation sent to the
+ * base constructor. For example:
+ *
+ * ```ts
+ * export class MyPoller extends Poller {
+ * constructor(
+ * baseOperation: string | undefined
+ * ) {
+ * let state: MyOperationState = {};
+ * if (baseOperation) {
+ * state = {
+ * ...JSON.parse(baseOperation).state,
+ * ...state
+ * };
+ * }
+ * const operation = {
+ * state,
+ * // ...
+ * }
+ * super(operation);
+ * }
+ * }
+ * ```
+ *
+ * @param operation - Must contain the basic properties of `PollOperation`.
+ */
+ constructor(operation) {
+ this.stopped = true;
+ this.pollProgressCallbacks = [];
+ this.operation = operation;
+ this.promise = new Promise((resolve, reject) => {
+ this.resolve = resolve;
+ this.reject = reject;
+ });
+ // This prevents the UnhandledPromiseRejectionWarning in node.js from being thrown.
+ // The above warning would get thrown if `poller.poll` is called, it returns an error,
+ // and pullUntilDone did not have a .catch or await try/catch on it's return value.
+ this.promise.catch(() => {
+ /* intentionally blank */
+ });
}
-};
-const Logging = {
- serializedName: "Logging",
- type: {
- name: "Composite",
- className: "Logging",
- modelProperties: {
- version: {
- serializedName: "Version",
- required: true,
- xmlName: "Version",
- type: {
- name: "String"
- }
- },
- deleteProperty: {
- serializedName: "Delete",
- required: true,
- xmlName: "Delete",
- type: {
- name: "Boolean"
- }
- },
- read: {
- serializedName: "Read",
- required: true,
- xmlName: "Read",
- type: {
- name: "Boolean"
- }
- },
- write: {
- serializedName: "Write",
- required: true,
- xmlName: "Write",
- type: {
- name: "Boolean"
- }
- },
- retentionPolicy: {
- serializedName: "RetentionPolicy",
- xmlName: "RetentionPolicy",
- type: {
- name: "Composite",
- className: "RetentionPolicy"
- }
- }
+ /**
+ * Starts a loop that will break only if the poller is done
+ * or if the poller is stopped.
+ */
+ async startPolling() {
+ if (this.stopped) {
+ this.stopped = false;
}
- }
-};
-const RetentionPolicy = {
- serializedName: "RetentionPolicy",
- type: {
- name: "Composite",
- className: "RetentionPolicy",
- modelProperties: {
- enabled: {
- serializedName: "Enabled",
- required: true,
- xmlName: "Enabled",
- type: {
- name: "Boolean"
- }
- },
- days: {
- constraints: {
- InclusiveMinimum: 1
- },
- serializedName: "Days",
- xmlName: "Days",
- type: {
- name: "Number"
- }
- }
+ while (!this.isStopped() && !this.isDone()) {
+ await this.poll();
+ await this.delay();
}
}
-};
-const Metrics = {
- serializedName: "Metrics",
- type: {
- name: "Composite",
- className: "Metrics",
- modelProperties: {
- version: {
- serializedName: "Version",
- xmlName: "Version",
- type: {
- name: "String"
- }
- },
- enabled: {
- serializedName: "Enabled",
- required: true,
- xmlName: "Enabled",
- type: {
- name: "Boolean"
- }
- },
- includeAPIs: {
- serializedName: "IncludeAPIs",
- xmlName: "IncludeAPIs",
- type: {
- name: "Boolean"
- }
- },
- retentionPolicy: {
- serializedName: "RetentionPolicy",
- xmlName: "RetentionPolicy",
- type: {
- name: "Composite",
- className: "RetentionPolicy"
+ /**
+ * pollOnce does one polling, by calling to the update method of the underlying
+ * poll operation to make any relevant change effective.
+ *
+ * It only optionally receives an object with an abortSignal property, from \@azure/abort-controller's AbortSignalLike.
+ *
+ * @param options - Optional properties passed to the operation's update method.
+ */
+ async pollOnce(options = {}) {
+ try {
+ if (!this.isDone()) {
+ this.operation = await this.operation.update({
+ abortSignal: options.abortSignal,
+ fireProgress: this.fireProgress.bind(this),
+ });
+ if (this.isDone() && this.resolve) {
+ // If the poller has finished polling, this means we now have a result.
+ // However, it can be the case that TResult is instantiated to void, so
+ // we are not expecting a result anyway. To assert that we might not
+ // have a result eventually after finishing polling, we cast the result
+ // to TResult.
+ this.resolve(this.operation.state.result);
}
}
}
- }
-};
-const CorsRule = {
- serializedName: "CorsRule",
- type: {
- name: "Composite",
- className: "CorsRule",
- modelProperties: {
- allowedOrigins: {
- serializedName: "AllowedOrigins",
- required: true,
- xmlName: "AllowedOrigins",
- type: {
- name: "String"
- }
- },
- allowedMethods: {
- serializedName: "AllowedMethods",
- required: true,
- xmlName: "AllowedMethods",
- type: {
- name: "String"
- }
- },
- allowedHeaders: {
- serializedName: "AllowedHeaders",
- required: true,
- xmlName: "AllowedHeaders",
- type: {
- name: "String"
- }
- },
- exposedHeaders: {
- serializedName: "ExposedHeaders",
- required: true,
- xmlName: "ExposedHeaders",
- type: {
- name: "String"
- }
- },
- maxAgeInSeconds: {
- constraints: {
- InclusiveMinimum: 0
- },
- serializedName: "MaxAgeInSeconds",
- required: true,
- xmlName: "MaxAgeInSeconds",
- type: {
- name: "Number"
- }
+ catch (e) {
+ this.operation.state.error = e;
+ if (this.reject) {
+ this.reject(e);
}
+ throw e;
}
}
-};
-const StaticWebsite = {
- serializedName: "StaticWebsite",
- type: {
- name: "Composite",
- className: "StaticWebsite",
- modelProperties: {
- enabled: {
- serializedName: "Enabled",
- required: true,
- xmlName: "Enabled",
- type: {
- name: "Boolean"
- }
- },
- indexDocument: {
- serializedName: "IndexDocument",
- xmlName: "IndexDocument",
- type: {
- name: "String"
- }
- },
- errorDocument404Path: {
- serializedName: "ErrorDocument404Path",
- xmlName: "ErrorDocument404Path",
- type: {
- name: "String"
- }
- },
- defaultIndexDocumentPath: {
- serializedName: "DefaultIndexDocumentPath",
- xmlName: "DefaultIndexDocumentPath",
- type: {
- name: "String"
- }
- }
+ /**
+ * fireProgress calls the functions passed in via onProgress the method of the poller.
+ *
+ * It loops over all of the callbacks received from onProgress, and executes them, sending them
+ * the current operation state.
+ *
+ * @param state - The current operation state.
+ */
+ fireProgress(state) {
+ for (const callback of this.pollProgressCallbacks) {
+ callback(state);
}
}
-};
-const StorageError = {
- serializedName: "StorageError",
- type: {
- name: "Composite",
- className: "StorageError",
- modelProperties: {
- message: {
- serializedName: "Message",
- xmlName: "Message",
- type: {
- name: "String"
- }
- },
- code: {
- serializedName: "Code",
- xmlName: "Code",
- type: {
- name: "String"
- }
- }
+ /**
+ * Invokes the underlying operation's cancel method, and rejects the
+ * pollUntilDone promise.
+ */
+ async cancelOnce(options = {}) {
+ this.operation = await this.operation.cancel(options);
+ if (this.reject) {
+ this.reject(new PollerCancelledError("Poller cancelled"));
}
}
-};
-const BlobServiceStatistics = {
- serializedName: "BlobServiceStatistics",
- xmlName: "StorageServiceStats",
- type: {
- name: "Composite",
- className: "BlobServiceStatistics",
- modelProperties: {
- geoReplication: {
- serializedName: "GeoReplication",
- xmlName: "GeoReplication",
- type: {
- name: "Composite",
- className: "GeoReplication"
- }
- }
- }
- }
-};
-const GeoReplication = {
- serializedName: "GeoReplication",
- type: {
- name: "Composite",
- className: "GeoReplication",
- modelProperties: {
- status: {
- serializedName: "Status",
- required: true,
- xmlName: "Status",
- type: {
- name: "Enum",
- allowedValues: ["live", "bootstrap", "unavailable"]
- }
- },
- lastSyncOn: {
- serializedName: "LastSyncTime",
- required: true,
- xmlName: "LastSyncTime",
- type: {
- name: "DateTimeRfc1123"
- }
- }
+ /**
+ * Returns a promise that will resolve once a single polling request finishes.
+ * It does this by calling the update method of the Poller's operation.
+ *
+ * It only optionally receives an object with an abortSignal property, from \@azure/abort-controller's AbortSignalLike.
+ *
+ * @param options - Optional properties passed to the operation's update method.
+ */
+ poll(options = {}) {
+ if (!this.pollOncePromise) {
+ this.pollOncePromise = this.pollOnce(options);
+ const clearPollOncePromise = () => {
+ this.pollOncePromise = undefined;
+ };
+ this.pollOncePromise.then(clearPollOncePromise, clearPollOncePromise).catch(this.reject);
}
+ return this.pollOncePromise;
}
-};
-const ListContainersSegmentResponse = {
- serializedName: "ListContainersSegmentResponse",
- xmlName: "EnumerationResults",
- type: {
- name: "Composite",
- className: "ListContainersSegmentResponse",
- modelProperties: {
- serviceEndpoint: {
- serializedName: "ServiceEndpoint",
- required: true,
- xmlName: "ServiceEndpoint",
- xmlIsAttribute: true,
- type: {
- name: "String"
- }
- },
- prefix: {
- serializedName: "Prefix",
- xmlName: "Prefix",
- type: {
- name: "String"
- }
- },
- marker: {
- serializedName: "Marker",
- xmlName: "Marker",
- type: {
- name: "String"
- }
- },
- maxPageSize: {
- serializedName: "MaxResults",
- xmlName: "MaxResults",
- type: {
- name: "Number"
- }
- },
- containerItems: {
- serializedName: "ContainerItems",
- required: true,
- xmlName: "Containers",
- xmlIsWrapped: true,
- xmlElementName: "Container",
- type: {
- name: "Sequence",
- element: {
- type: {
- name: "Composite",
- className: "ContainerItem"
- }
- }
- }
- },
- continuationToken: {
- serializedName: "NextMarker",
- xmlName: "NextMarker",
- type: {
- name: "String"
- }
- }
+ /**
+ * Returns a promise that will resolve once the underlying operation is completed.
+ */
+ async pollUntilDone() {
+ if (this.stopped) {
+ this.startPolling().catch(this.reject);
}
+ return this.promise;
}
-};
-const ContainerItem = {
- serializedName: "ContainerItem",
- xmlName: "Container",
- type: {
- name: "Composite",
- className: "ContainerItem",
- modelProperties: {
- name: {
- serializedName: "Name",
- required: true,
- xmlName: "Name",
- type: {
- name: "String"
- }
- },
- deleted: {
- serializedName: "Deleted",
- xmlName: "Deleted",
- type: {
- name: "Boolean"
- }
- },
- version: {
- serializedName: "Version",
- xmlName: "Version",
- type: {
- name: "String"
- }
- },
- properties: {
- serializedName: "Properties",
- xmlName: "Properties",
- type: {
- name: "Composite",
- className: "ContainerProperties"
- }
- },
- metadata: {
- serializedName: "Metadata",
- xmlName: "Metadata",
- type: {
- name: "Dictionary",
- value: { type: { name: "String" } }
- }
- }
- }
+ /**
+ * Invokes the provided callback after each polling is completed,
+ * sending the current state of the poller's operation.
+ *
+ * It returns a method that can be used to stop receiving updates on the given callback function.
+ */
+ onProgress(callback) {
+ this.pollProgressCallbacks.push(callback);
+ return () => {
+ this.pollProgressCallbacks = this.pollProgressCallbacks.filter((c) => c !== callback);
+ };
}
-};
-const ContainerProperties = {
- serializedName: "ContainerProperties",
- type: {
- name: "Composite",
- className: "ContainerProperties",
- modelProperties: {
- lastModified: {
- serializedName: "Last-Modified",
- required: true,
- xmlName: "Last-Modified",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- etag: {
- serializedName: "Etag",
- required: true,
- xmlName: "Etag",
- type: {
- name: "String"
- }
- },
- leaseStatus: {
- serializedName: "LeaseStatus",
- xmlName: "LeaseStatus",
- type: {
- name: "Enum",
- allowedValues: ["locked", "unlocked"]
- }
- },
- leaseState: {
- serializedName: "LeaseState",
- xmlName: "LeaseState",
- type: {
- name: "Enum",
- allowedValues: [
- "available",
- "leased",
- "expired",
- "breaking",
- "broken"
- ]
- }
- },
- leaseDuration: {
- serializedName: "LeaseDuration",
- xmlName: "LeaseDuration",
- type: {
- name: "Enum",
- allowedValues: ["infinite", "fixed"]
- }
- },
- publicAccess: {
- serializedName: "PublicAccess",
- xmlName: "PublicAccess",
- type: {
- name: "Enum",
- allowedValues: ["container", "blob"]
- }
- },
- hasImmutabilityPolicy: {
- serializedName: "HasImmutabilityPolicy",
- xmlName: "HasImmutabilityPolicy",
- type: {
- name: "Boolean"
- }
- },
- hasLegalHold: {
- serializedName: "HasLegalHold",
- xmlName: "HasLegalHold",
- type: {
- name: "Boolean"
- }
- },
- defaultEncryptionScope: {
- serializedName: "DefaultEncryptionScope",
- xmlName: "DefaultEncryptionScope",
- type: {
- name: "String"
- }
- },
- preventEncryptionScopeOverride: {
- serializedName: "DenyEncryptionScopeOverride",
- xmlName: "DenyEncryptionScopeOverride",
- type: {
- name: "Boolean"
- }
- },
- deletedOn: {
- serializedName: "DeletedTime",
- xmlName: "DeletedTime",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- remainingRetentionDays: {
- serializedName: "RemainingRetentionDays",
- xmlName: "RemainingRetentionDays",
- type: {
- name: "Number"
- }
- },
- isImmutableStorageWithVersioningEnabled: {
- serializedName: "ImmutableStorageWithVersioningEnabled",
- xmlName: "ImmutableStorageWithVersioningEnabled",
- type: {
- name: "Boolean"
- }
- }
- }
+ /**
+ * Returns true if the poller has finished polling.
+ */
+ isDone() {
+ const state = this.operation.state;
+ return Boolean(state.isCompleted || state.isCancelled || state.error);
}
-};
-const KeyInfo = {
- serializedName: "KeyInfo",
- type: {
- name: "Composite",
- className: "KeyInfo",
- modelProperties: {
- startsOn: {
- serializedName: "Start",
- required: true,
- xmlName: "Start",
- type: {
- name: "String"
- }
- },
- expiresOn: {
- serializedName: "Expiry",
- required: true,
- xmlName: "Expiry",
- type: {
- name: "String"
- }
+ /**
+ * Stops the poller from continuing to poll.
+ */
+ stopPolling() {
+ if (!this.stopped) {
+ this.stopped = true;
+ if (this.reject) {
+ this.reject(new PollerStoppedError("This poller is already stopped"));
}
}
}
-};
-const UserDelegationKey = {
- serializedName: "UserDelegationKey",
- type: {
- name: "Composite",
- className: "UserDelegationKey",
- modelProperties: {
- signedObjectId: {
- serializedName: "SignedOid",
- required: true,
- xmlName: "SignedOid",
- type: {
- name: "String"
- }
- },
- signedTenantId: {
- serializedName: "SignedTid",
- required: true,
- xmlName: "SignedTid",
- type: {
- name: "String"
- }
- },
- signedStartsOn: {
- serializedName: "SignedStart",
- required: true,
- xmlName: "SignedStart",
- type: {
- name: "String"
- }
- },
- signedExpiresOn: {
- serializedName: "SignedExpiry",
- required: true,
- xmlName: "SignedExpiry",
- type: {
- name: "String"
- }
- },
- signedService: {
- serializedName: "SignedService",
- required: true,
- xmlName: "SignedService",
- type: {
- name: "String"
- }
- },
- signedVersion: {
- serializedName: "SignedVersion",
- required: true,
- xmlName: "SignedVersion",
- type: {
- name: "String"
- }
- },
- value: {
- serializedName: "Value",
- required: true,
- xmlName: "Value",
- type: {
- name: "String"
- }
- }
- }
+ /**
+ * Returns true if the poller is stopped.
+ */
+ isStopped() {
+ return this.stopped;
}
-};
-const FilterBlobSegment = {
- serializedName: "FilterBlobSegment",
- xmlName: "EnumerationResults",
- type: {
- name: "Composite",
- className: "FilterBlobSegment",
- modelProperties: {
- serviceEndpoint: {
- serializedName: "ServiceEndpoint",
- required: true,
- xmlName: "ServiceEndpoint",
- xmlIsAttribute: true,
- type: {
- name: "String"
- }
- },
- where: {
- serializedName: "Where",
- required: true,
- xmlName: "Where",
- type: {
- name: "String"
- }
- },
- blobs: {
- serializedName: "Blobs",
- required: true,
- xmlName: "Blobs",
- xmlIsWrapped: true,
- xmlElementName: "Blob",
- type: {
- name: "Sequence",
- element: {
- type: {
- name: "Composite",
- className: "FilterBlobItem"
- }
- }
- }
- },
- continuationToken: {
- serializedName: "NextMarker",
- xmlName: "NextMarker",
- type: {
- name: "String"
- }
- }
+ /**
+ * Attempts to cancel the underlying operation.
+ *
+ * It only optionally receives an object with an abortSignal property, from \@azure/abort-controller's AbortSignalLike.
+ *
+ * If it's called again before it finishes, it will throw an error.
+ *
+ * @param options - Optional properties passed to the operation's update method.
+ */
+ cancelOperation(options = {}) {
+ if (!this.stopped) {
+ this.stopped = true;
}
- }
-};
-const FilterBlobItem = {
- serializedName: "FilterBlobItem",
- xmlName: "Blob",
- type: {
- name: "Composite",
- className: "FilterBlobItem",
- modelProperties: {
- name: {
- serializedName: "Name",
- required: true,
- xmlName: "Name",
- type: {
- name: "String"
- }
- },
- containerName: {
- serializedName: "ContainerName",
- required: true,
- xmlName: "ContainerName",
- type: {
- name: "String"
- }
- },
- tags: {
- serializedName: "Tags",
- xmlName: "Tags",
- type: {
- name: "Composite",
- className: "BlobTags"
- }
- }
+ if (!this.cancelPromise) {
+ this.cancelPromise = this.cancelOnce(options);
}
- }
-};
-const BlobTags = {
- serializedName: "BlobTags",
- xmlName: "Tags",
- type: {
- name: "Composite",
- className: "BlobTags",
- modelProperties: {
- blobTagSet: {
- serializedName: "BlobTagSet",
- required: true,
- xmlName: "TagSet",
- xmlIsWrapped: true,
- xmlElementName: "Tag",
- type: {
- name: "Sequence",
- element: {
- type: {
- name: "Composite",
- className: "BlobTag"
- }
- }
- }
- }
+ else if (options.abortSignal) {
+ throw new Error("A cancel request is currently pending");
}
+ return this.cancelPromise;
}
-};
-const BlobTag = {
- serializedName: "BlobTag",
- xmlName: "Tag",
- type: {
- name: "Composite",
- className: "BlobTag",
- modelProperties: {
- key: {
- serializedName: "Key",
- required: true,
- xmlName: "Key",
- type: {
- name: "String"
- }
- },
- value: {
- serializedName: "Value",
- required: true,
- xmlName: "Value",
- type: {
- name: "String"
- }
- }
+ /**
+ * Returns the state of the operation.
+ *
+ * Even though TState will be the same type inside any of the methods of any extension of the Poller class,
+ * implementations of the pollers can customize what's shared with the public by writing their own
+ * version of the `getOperationState` method, and by defining two types, one representing the internal state of the poller
+ * and a public type representing a safe to share subset of the properties of the internal state.
+ * Their definition of getOperationState can then return their public type.
+ *
+ * Example:
+ *
+ * ```ts
+ * // Let's say we have our poller's operation state defined as:
+ * interface MyOperationState extends PollOperationState {
+ * privateProperty?: string;
+ * publicProperty?: string;
+ * }
+ *
+ * // To allow us to have a true separation of public and private state, we have to define another interface:
+ * interface PublicState extends PollOperationState {
+ * publicProperty?: string;
+ * }
+ *
+ * // Then, we define our Poller as follows:
+ * export class MyPoller extends Poller {
+ * // ... More content is needed here ...
+ *
+ * public getOperationState(): PublicState {
+ * const state: PublicState = this.operation.state;
+ * return {
+ * // Properties from PollOperationState
+ * isStarted: state.isStarted,
+ * isCompleted: state.isCompleted,
+ * isCancelled: state.isCancelled,
+ * error: state.error,
+ * result: state.result,
+ *
+ * // The only other property needed by PublicState.
+ * publicProperty: state.publicProperty
+ * }
+ * }
+ * }
+ * ```
+ *
+ * You can see this in the tests of this repository, go to the file:
+ * `../test/utils/testPoller.ts`
+ * and look for the getOperationState implementation.
+ */
+ getOperationState() {
+ return this.operation.state;
+ }
+ /**
+ * Returns the result value of the operation,
+ * regardless of the state of the poller.
+ * It can return undefined or an incomplete form of the final TResult value
+ * depending on the implementation.
+ */
+ getResult() {
+ const state = this.operation.state;
+ return state.result;
+ }
+ /**
+ * Returns a serialized version of the poller's operation
+ * by invoking the operation's toString method.
+ */
+ toString() {
+ return this.operation.toString();
+ }
+}
+
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT license.
+/**
+ * Detects where the continuation token is and returns it. Notice that azure-asyncoperation
+ * must be checked first before the other location headers because there are scenarios
+ * where both azure-asyncoperation and location could be present in the same response but
+ * azure-asyncoperation should be the one to use for polling.
+ */
+function getPollingUrl(rawResponse, defaultPath) {
+ var _a, _b, _c;
+ return ((_c = (_b = (_a = getAzureAsyncOperation(rawResponse)) !== null && _a !== void 0 ? _a : getOperationLocation(rawResponse)) !== null && _b !== void 0 ? _b : getLocation(rawResponse)) !== null && _c !== void 0 ? _c : defaultPath);
+}
+function getLocation(rawResponse) {
+ return rawResponse.headers["location"];
+}
+function getOperationLocation(rawResponse) {
+ return rawResponse.headers["operation-location"];
+}
+function getAzureAsyncOperation(rawResponse) {
+ return rawResponse.headers["azure-asyncoperation"];
+}
+function findResourceLocation(requestMethod, rawResponse, requestPath) {
+ switch (requestMethod) {
+ case "PUT": {
+ return requestPath;
+ }
+ case "POST":
+ case "PATCH": {
+ return getLocation(rawResponse);
+ }
+ default: {
+ return undefined;
}
}
-};
-const SignedIdentifier = {
- serializedName: "SignedIdentifier",
- xmlName: "SignedIdentifier",
- type: {
- name: "Composite",
- className: "SignedIdentifier",
- modelProperties: {
- id: {
- serializedName: "Id",
- required: true,
- xmlName: "Id",
- type: {
- name: "String"
- }
- },
- accessPolicy: {
- serializedName: "AccessPolicy",
- xmlName: "AccessPolicy",
- type: {
- name: "Composite",
- className: "AccessPolicy"
- }
+}
+function inferLroMode(requestPath, requestMethod, rawResponse) {
+ if (getAzureAsyncOperation(rawResponse) !== undefined ||
+ getOperationLocation(rawResponse) !== undefined) {
+ return {
+ mode: "Location",
+ resourceLocation: findResourceLocation(requestMethod, rawResponse, requestPath),
+ };
+ }
+ else if (getLocation(rawResponse) !== undefined) {
+ return {
+ mode: "Location",
+ };
+ }
+ else if (["PUT", "PATCH"].includes(requestMethod)) {
+ return {
+ mode: "Body",
+ };
+ }
+ return {};
+}
+class SimpleRestError extends Error {
+ constructor(message, statusCode) {
+ super(message);
+ this.name = "RestError";
+ this.statusCode = statusCode;
+ Object.setPrototypeOf(this, SimpleRestError.prototype);
+ }
+}
+function isUnexpectedInitialResponse(rawResponse) {
+ const code = rawResponse.statusCode;
+ if (![203, 204, 202, 201, 200, 500].includes(code)) {
+ throw new SimpleRestError(`Received unexpected HTTP status code ${code} in the initial response. This may indicate a server issue.`, code);
+ }
+ return false;
+}
+function isUnexpectedPollingResponse(rawResponse) {
+ const code = rawResponse.statusCode;
+ if (![202, 201, 200, 500].includes(code)) {
+ throw new SimpleRestError(`Received unexpected HTTP status code ${code} while polling. This may indicate a server issue.`, code);
+ }
+ return false;
+}
+
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT license.
+const successStates = ["succeeded"];
+const failureStates = ["failed", "canceled", "cancelled"];
+
+// Copyright (c) Microsoft Corporation.
+function getProvisioningState(rawResponse) {
+ var _a, _b;
+ const { properties, provisioningState } = (_a = rawResponse.body) !== null && _a !== void 0 ? _a : {};
+ const state = (_b = properties === null || properties === void 0 ? void 0 : properties.provisioningState) !== null && _b !== void 0 ? _b : provisioningState;
+ return typeof state === "string" ? state.toLowerCase() : "succeeded";
+}
+function isBodyPollingDone(rawResponse) {
+ const state = getProvisioningState(rawResponse);
+ if (isUnexpectedPollingResponse(rawResponse) || failureStates.includes(state)) {
+ throw new Error(`The long running operation has failed. The provisioning state: ${state}.`);
+ }
+ return successStates.includes(state);
+}
+/**
+ * Creates a polling strategy based on BodyPolling which uses the provisioning state
+ * from the result to determine the current operation state
+ */
+function processBodyPollingOperationResult(response) {
+ return Object.assign(Object.assign({}, response), { done: isBodyPollingDone(response.rawResponse) });
+}
+
+// Copyright (c) Microsoft Corporation.
+/**
+ * The `@azure/logger` configuration for this package.
+ * @internal
+ */
+const logger = logger$1.createClientLogger("core-lro");
+
+// Copyright (c) Microsoft Corporation.
+function isPollingDone(rawResponse) {
+ var _a;
+ if (isUnexpectedPollingResponse(rawResponse) || rawResponse.statusCode === 202) {
+ return false;
+ }
+ const { status } = (_a = rawResponse.body) !== null && _a !== void 0 ? _a : {};
+ const state = typeof status === "string" ? status.toLowerCase() : "succeeded";
+ if (isUnexpectedPollingResponse(rawResponse) || failureStates.includes(state)) {
+ throw new Error(`The long running operation has failed. The provisioning state: ${state}.`);
+ }
+ return successStates.includes(state);
+}
+/**
+ * Sends a request to the URI of the provisioned resource if needed.
+ */
+async function sendFinalRequest(lro, resourceLocation, lroResourceLocationConfig) {
+ switch (lroResourceLocationConfig) {
+ case "original-uri":
+ return lro.sendPollRequest(lro.requestPath);
+ case "azure-async-operation":
+ return undefined;
+ case "location":
+ default:
+ return lro.sendPollRequest(resourceLocation !== null && resourceLocation !== void 0 ? resourceLocation : lro.requestPath);
+ }
+}
+function processLocationPollingOperationResult(lro, resourceLocation, lroResourceLocationConfig) {
+ return (response) => {
+ if (isPollingDone(response.rawResponse)) {
+ if (resourceLocation === undefined) {
+ return Object.assign(Object.assign({}, response), { done: true });
+ }
+ else {
+ return Object.assign(Object.assign({}, response), { done: false, next: async () => {
+ const finalResponse = await sendFinalRequest(lro, resourceLocation, lroResourceLocationConfig);
+ return Object.assign(Object.assign({}, (finalResponse !== null && finalResponse !== void 0 ? finalResponse : response)), { done: true });
+ } });
}
}
+ return Object.assign(Object.assign({}, response), { done: false });
+ };
+}
+
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT license.
+function processPassthroughOperationResult(response) {
+ return Object.assign(Object.assign({}, response), { done: true });
+}
+
+// Copyright (c) Microsoft Corporation.
+/**
+ * creates a stepping function that maps an LRO state to another.
+ */
+function createGetLroStatusFromResponse(lroPrimitives, config, lroResourceLocationConfig) {
+ switch (config.mode) {
+ case "Location": {
+ return processLocationPollingOperationResult(lroPrimitives, config.resourceLocation, lroResourceLocationConfig);
+ }
+ case "Body": {
+ return processBodyPollingOperationResult;
+ }
+ default: {
+ return processPassthroughOperationResult;
+ }
}
-};
-const AccessPolicy = {
- serializedName: "AccessPolicy",
- type: {
- name: "Composite",
- className: "AccessPolicy",
- modelProperties: {
- startsOn: {
- serializedName: "Start",
- xmlName: "Start",
- type: {
- name: "String"
- }
- },
- expiresOn: {
- serializedName: "Expiry",
- xmlName: "Expiry",
- type: {
- name: "String"
- }
- },
- permissions: {
- serializedName: "Permission",
- xmlName: "Permission",
- type: {
- name: "String"
- }
- }
+}
+/**
+ * Creates a polling operation.
+ */
+function createPoll(lroPrimitives) {
+ return async (path, pollerConfig, getLroStatusFromResponse) => {
+ const response = await lroPrimitives.sendPollRequest(path);
+ const retryAfter = response.rawResponse.headers["retry-after"];
+ if (retryAfter !== undefined) {
+ // Retry-After header value is either in HTTP date format, or in seconds
+ const retryAfterInSeconds = parseInt(retryAfter);
+ pollerConfig.intervalInMs = isNaN(retryAfterInSeconds)
+ ? calculatePollingIntervalFromDate(new Date(retryAfter), pollerConfig.intervalInMs)
+ : retryAfterInSeconds * 1000;
}
+ return getLroStatusFromResponse(response);
+ };
+}
+function calculatePollingIntervalFromDate(retryAfterDate, defaultIntervalInMs) {
+ const timeNow = Math.floor(new Date().getTime());
+ const retryAfterTime = retryAfterDate.getTime();
+ if (timeNow < retryAfterTime) {
+ return retryAfterTime - timeNow;
}
-};
-const ListBlobsFlatSegmentResponse = {
- serializedName: "ListBlobsFlatSegmentResponse",
- xmlName: "EnumerationResults",
- type: {
- name: "Composite",
- className: "ListBlobsFlatSegmentResponse",
- modelProperties: {
- serviceEndpoint: {
- serializedName: "ServiceEndpoint",
- required: true,
- xmlName: "ServiceEndpoint",
- xmlIsAttribute: true,
- type: {
- name: "String"
- }
- },
- containerName: {
- serializedName: "ContainerName",
- required: true,
- xmlName: "ContainerName",
- xmlIsAttribute: true,
- type: {
- name: "String"
- }
- },
- prefix: {
- serializedName: "Prefix",
- xmlName: "Prefix",
- type: {
- name: "String"
- }
- },
- marker: {
- serializedName: "Marker",
- xmlName: "Marker",
- type: {
- name: "String"
- }
- },
- maxPageSize: {
- serializedName: "MaxResults",
- xmlName: "MaxResults",
- type: {
- name: "Number"
- }
- },
- segment: {
- serializedName: "Segment",
- xmlName: "Blobs",
- type: {
- name: "Composite",
- className: "BlobFlatListSegment"
- }
- },
- continuationToken: {
- serializedName: "NextMarker",
- xmlName: "NextMarker",
- type: {
- name: "String"
- }
- }
+ return defaultIntervalInMs;
+}
+/**
+ * Creates a callback to be used to initialize the polling operation state.
+ * @param state - of the polling operation
+ * @param operationSpec - of the LRO
+ * @param callback - callback to be called when the operation is done
+ * @returns callback that initializes the state of the polling operation
+ */
+function createInitializeState(state, requestPath, requestMethod) {
+ return (response) => {
+ if (isUnexpectedInitialResponse(response.rawResponse))
+ ;
+ state.initialRawResponse = response.rawResponse;
+ state.isStarted = true;
+ state.pollingURL = getPollingUrl(state.initialRawResponse, requestPath);
+ state.config = inferLroMode(requestPath, requestMethod, state.initialRawResponse);
+ /** short circuit polling if body polling is done in the initial request */
+ if (state.config.mode === undefined ||
+ (state.config.mode === "Body" && isBodyPollingDone(state.initialRawResponse))) {
+ state.result = response.flatResponse;
+ state.isCompleted = true;
}
+ logger.verbose(`LRO: initial state: ${JSON.stringify(state)}`);
+ return Boolean(state.isCompleted);
+ };
+}
+
+// Copyright (c) Microsoft Corporation.
+class GenericPollOperation {
+ constructor(state, lro, lroResourceLocationConfig, processResult, updateState, isDone) {
+ this.state = state;
+ this.lro = lro;
+ this.lroResourceLocationConfig = lroResourceLocationConfig;
+ this.processResult = processResult;
+ this.updateState = updateState;
+ this.isDone = isDone;
}
-};
-const BlobFlatListSegment = {
- serializedName: "BlobFlatListSegment",
- xmlName: "Blobs",
- type: {
- name: "Composite",
- className: "BlobFlatListSegment",
- modelProperties: {
- blobItems: {
- serializedName: "BlobItems",
- required: true,
- xmlName: "BlobItems",
- xmlElementName: "Blob",
- type: {
- name: "Sequence",
- element: {
- type: {
- name: "Composite",
- className: "BlobItemInternal"
- }
- }
+ setPollerConfig(pollerConfig) {
+ this.pollerConfig = pollerConfig;
+ }
+ /**
+ * General update function for LROPoller, the general process is as follows
+ * 1. Check initial operation result to determine the strategy to use
+ * - Strategies: Location, Azure-AsyncOperation, Original Uri
+ * 2. Check if the operation result has a terminal state
+ * - Terminal state will be determined by each strategy
+ * 2.1 If it is terminal state Check if a final GET request is required, if so
+ * send final GET request and return result from operation. If no final GET
+ * is required, just return the result from operation.
+ * - Determining what to call for final request is responsibility of each strategy
+ * 2.2 If it is not terminal state, call the polling operation and go to step 1
+ * - Determining what to call for polling is responsibility of each strategy
+ * - Strategies will always use the latest URI for polling if provided otherwise
+ * the last known one
+ */
+ async update(options) {
+ var _a, _b, _c;
+ const state = this.state;
+ let lastResponse = undefined;
+ if (!state.isStarted) {
+ const initializeState = createInitializeState(state, this.lro.requestPath, this.lro.requestMethod);
+ lastResponse = await this.lro.sendInitialRequest();
+ initializeState(lastResponse);
+ }
+ if (!state.isCompleted) {
+ if (!this.poll || !this.getLroStatusFromResponse) {
+ if (!state.config) {
+ throw new Error("Bad state: LRO mode is undefined. Please check if the serialized state is well-formed.");
}
+ const isDone = this.isDone;
+ this.getLroStatusFromResponse = isDone
+ ? (response) => (Object.assign(Object.assign({}, response), { done: isDone(response.flatResponse, this.state) }))
+ : createGetLroStatusFromResponse(this.lro, state.config, this.lroResourceLocationConfig);
+ this.poll = createPoll(this.lro);
+ }
+ if (!state.pollingURL) {
+ throw new Error("Bad state: polling URL is undefined. Please check if the serialized state is well-formed.");
+ }
+ const currentState = await this.poll(state.pollingURL, this.pollerConfig, this.getLroStatusFromResponse);
+ logger.verbose(`LRO: polling response: ${JSON.stringify(currentState.rawResponse)}`);
+ if (currentState.done) {
+ state.result = this.processResult
+ ? this.processResult(currentState.flatResponse, state)
+ : currentState.flatResponse;
+ state.isCompleted = true;
+ }
+ else {
+ this.poll = (_a = currentState.next) !== null && _a !== void 0 ? _a : this.poll;
+ state.pollingURL = getPollingUrl(currentState.rawResponse, state.pollingURL);
}
+ lastResponse = currentState;
}
- }
-};
-const BlobItemInternal = {
- serializedName: "BlobItemInternal",
- xmlName: "Blob",
- type: {
- name: "Composite",
- className: "BlobItemInternal",
- modelProperties: {
- name: {
- serializedName: "Name",
- xmlName: "Name",
- type: {
- name: "Composite",
- className: "BlobName"
- }
- },
- deleted: {
- serializedName: "Deleted",
- required: true,
- xmlName: "Deleted",
- type: {
- name: "Boolean"
- }
- },
- snapshot: {
- serializedName: "Snapshot",
- required: true,
- xmlName: "Snapshot",
- type: {
- name: "String"
- }
- },
- versionId: {
- serializedName: "VersionId",
- xmlName: "VersionId",
- type: {
- name: "String"
- }
- },
- isCurrentVersion: {
- serializedName: "IsCurrentVersion",
- xmlName: "IsCurrentVersion",
- type: {
- name: "Boolean"
- }
- },
- properties: {
- serializedName: "Properties",
- xmlName: "Properties",
- type: {
- name: "Composite",
- className: "BlobPropertiesInternal"
- }
- },
- metadata: {
- serializedName: "Metadata",
- xmlName: "Metadata",
- type: {
- name: "Dictionary",
- value: { type: { name: "String" } }
- }
- },
- blobTags: {
- serializedName: "BlobTags",
- xmlName: "Tags",
- type: {
- name: "Composite",
- className: "BlobTags"
- }
- },
- objectReplicationMetadata: {
- serializedName: "ObjectReplicationMetadata",
- xmlName: "OrMetadata",
- type: {
- name: "Dictionary",
- value: { type: { name: "String" } }
+ logger.verbose(`LRO: current state: ${JSON.stringify(state)}`);
+ if (lastResponse) {
+ (_b = this.updateState) === null || _b === void 0 ? void 0 : _b.call(this, state, lastResponse === null || lastResponse === void 0 ? void 0 : lastResponse.rawResponse);
+ }
+ else {
+ logger.error(`LRO: no response was received`);
+ }
+ (_c = options === null || options === void 0 ? void 0 : options.fireProgress) === null || _c === void 0 ? void 0 : _c.call(options, state);
+ return this;
+ }
+ async cancel() {
+ this.state.isCancelled = true;
+ return this;
+ }
+ /**
+ * Serializes the Poller operation.
+ */
+ toString() {
+ return JSON.stringify({
+ state: this.state,
+ });
+ }
+}
+
+// Copyright (c) Microsoft Corporation.
+function deserializeState(serializedState) {
+ try {
+ return JSON.parse(serializedState).state;
+ }
+ catch (e) {
+ throw new Error(`LroEngine: Unable to deserialize state: ${serializedState}`);
+ }
+}
+/**
+ * The LRO Engine, a class that performs polling.
+ */
+class LroEngine extends Poller {
+ constructor(lro, options) {
+ const { intervalInMs = 2000, resumeFrom } = options || {};
+ const state = resumeFrom
+ ? deserializeState(resumeFrom)
+ : {};
+ const operation = new GenericPollOperation(state, lro, options === null || options === void 0 ? void 0 : options.lroResourceLocationConfig, options === null || options === void 0 ? void 0 : options.processResult, options === null || options === void 0 ? void 0 : options.updateState, options === null || options === void 0 ? void 0 : options.isDone);
+ super(operation);
+ this.config = { intervalInMs: intervalInMs };
+ operation.setPollerConfig(this.config);
+ }
+ /**
+ * The method used by the poller to wait before attempting to update its operation.
+ */
+ delay() {
+ return new Promise((resolve) => setTimeout(() => resolve(), this.config.intervalInMs));
+ }
+}
+
+exports.LroEngine = LroEngine;
+exports.Poller = Poller;
+exports.PollerCancelledError = PollerCancelledError;
+exports.PollerStoppedError = PollerStoppedError;
+//# sourceMappingURL=index.js.map
+
+
+/***/ }),
+
+/***/ 4559:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+
+__nccwpck_require__(2356);
+var tslib = __nccwpck_require__(6429);
+
+// Copyright (c) Microsoft Corporation.
+/**
+ * returns an async iterator that iterates over results. It also has a `byPage`
+ * method that returns pages of items at once.
+ *
+ * @param pagedResult - an object that specifies how to get pages.
+ * @returns a paged async iterator that iterates over results.
+ */
+function getPagedAsyncIterator(pagedResult) {
+ var _a;
+ const iter = getItemAsyncIterator(pagedResult);
+ return {
+ next() {
+ return iter.next();
+ },
+ [Symbol.asyncIterator]() {
+ return this;
+ },
+ byPage: (_a = pagedResult === null || pagedResult === void 0 ? void 0 : pagedResult.byPage) !== null && _a !== void 0 ? _a : ((settings) => {
+ return getPageAsyncIterator(pagedResult, settings === null || settings === void 0 ? void 0 : settings.maxPageSize);
+ }),
+ };
+}
+function getItemAsyncIterator(pagedResult, maxPageSize) {
+ return tslib.__asyncGenerator(this, arguments, function* getItemAsyncIterator_1() {
+ var e_1, _a;
+ const pages = getPageAsyncIterator(pagedResult, maxPageSize);
+ const firstVal = yield tslib.__await(pages.next());
+ // if the result does not have an array shape, i.e. TPage = TElement, then we return it as is
+ if (!Array.isArray(firstVal.value)) {
+ yield yield tslib.__await(firstVal.value);
+ // `pages` is of type `AsyncIterableIterator` but TPage = TElement in this case
+ yield tslib.__await(yield* tslib.__asyncDelegator(tslib.__asyncValues(pages)));
+ }
+ else {
+ yield tslib.__await(yield* tslib.__asyncDelegator(tslib.__asyncValues(firstVal.value)));
+ try {
+ for (var pages_1 = tslib.__asyncValues(pages), pages_1_1; pages_1_1 = yield tslib.__await(pages_1.next()), !pages_1_1.done;) {
+ const page = pages_1_1.value;
+ // pages is of type `AsyncIterableIterator` so `page` is of type `TPage`. In this branch,
+ // it must be the case that `TPage = TElement[]`
+ yield tslib.__await(yield* tslib.__asyncDelegator(tslib.__asyncValues(page)));
}
- },
- hasVersionsOnly: {
- serializedName: "HasVersionsOnly",
- xmlName: "HasVersionsOnly",
- type: {
- name: "Boolean"
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (pages_1_1 && !pages_1_1.done && (_a = pages_1.return)) yield tslib.__await(_a.call(pages_1));
}
+ finally { if (e_1) throw e_1.error; }
}
}
+ });
+}
+function getPageAsyncIterator(pagedResult, maxPageSize) {
+ return tslib.__asyncGenerator(this, arguments, function* getPageAsyncIterator_1() {
+ let response = yield tslib.__await(pagedResult.getPage(pagedResult.firstPageLink, maxPageSize));
+ yield yield tslib.__await(response.page);
+ while (response.nextPageLink) {
+ response = yield tslib.__await(pagedResult.getPage(response.nextPageLink, maxPageSize));
+ yield yield tslib.__await(response.page);
+ }
+ });
+}
+
+exports.getPagedAsyncIterator = getPagedAsyncIterator;
+//# sourceMappingURL=index.js.map
+
+
+/***/ }),
+
+/***/ 6429:
+/***/ ((module) => {
+
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+***************************************************************************** */
+/* global global, define, System, Reflect, Promise */
+var __extends;
+var __assign;
+var __rest;
+var __decorate;
+var __param;
+var __metadata;
+var __awaiter;
+var __generator;
+var __exportStar;
+var __values;
+var __read;
+var __spread;
+var __spreadArrays;
+var __spreadArray;
+var __await;
+var __asyncGenerator;
+var __asyncDelegator;
+var __asyncValues;
+var __makeTemplateObject;
+var __importStar;
+var __importDefault;
+var __classPrivateFieldGet;
+var __classPrivateFieldSet;
+var __createBinding;
+(function (factory) {
+ var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {};
+ if (typeof define === "function" && define.amd) {
+ define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); });
}
-};
-const BlobName = {
- serializedName: "BlobName",
- type: {
- name: "Composite",
- className: "BlobName",
- modelProperties: {
- encoded: {
- serializedName: "Encoded",
- xmlName: "Encoded",
- xmlIsAttribute: true,
- type: {
- name: "Boolean"
- }
- },
- content: {
- serializedName: "content",
- xmlName: "content",
- xmlIsMsText: true,
- type: {
- name: "String"
- }
+ else if ( true && typeof module.exports === "object") {
+ factory(createExporter(root, createExporter(module.exports)));
+ }
+ else {
+ factory(createExporter(root));
+ }
+ function createExporter(exports, previous) {
+ if (exports !== root) {
+ if (typeof Object.create === "function") {
+ Object.defineProperty(exports, "__esModule", { value: true });
+ }
+ else {
+ exports.__esModule = true;
}
}
+ return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };
}
-};
-const BlobPropertiesInternal = {
- serializedName: "BlobPropertiesInternal",
- xmlName: "Properties",
- type: {
- name: "Composite",
- className: "BlobPropertiesInternal",
- modelProperties: {
- createdOn: {
- serializedName: "Creation-Time",
- xmlName: "Creation-Time",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- lastModified: {
- serializedName: "Last-Modified",
- required: true,
- xmlName: "Last-Modified",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- etag: {
- serializedName: "Etag",
- required: true,
- xmlName: "Etag",
- type: {
- name: "String"
- }
- },
- contentLength: {
- serializedName: "Content-Length",
- xmlName: "Content-Length",
- type: {
- name: "Number"
- }
- },
- contentType: {
- serializedName: "Content-Type",
- xmlName: "Content-Type",
- type: {
- name: "String"
- }
- },
- contentEncoding: {
- serializedName: "Content-Encoding",
- xmlName: "Content-Encoding",
- type: {
- name: "String"
- }
- },
- contentLanguage: {
- serializedName: "Content-Language",
- xmlName: "Content-Language",
- type: {
- name: "String"
- }
- },
- contentMD5: {
- serializedName: "Content-MD5",
- xmlName: "Content-MD5",
- type: {
- name: "ByteArray"
- }
- },
- contentDisposition: {
- serializedName: "Content-Disposition",
- xmlName: "Content-Disposition",
- type: {
- name: "String"
- }
- },
- cacheControl: {
- serializedName: "Cache-Control",
- xmlName: "Cache-Control",
- type: {
- name: "String"
- }
- },
- blobSequenceNumber: {
- serializedName: "x-ms-blob-sequence-number",
- xmlName: "x-ms-blob-sequence-number",
- type: {
- name: "Number"
- }
- },
- blobType: {
- serializedName: "BlobType",
- xmlName: "BlobType",
- type: {
- name: "Enum",
- allowedValues: ["BlockBlob", "PageBlob", "AppendBlob"]
- }
- },
- leaseStatus: {
- serializedName: "LeaseStatus",
- xmlName: "LeaseStatus",
- type: {
- name: "Enum",
- allowedValues: ["locked", "unlocked"]
- }
- },
- leaseState: {
- serializedName: "LeaseState",
- xmlName: "LeaseState",
- type: {
- name: "Enum",
- allowedValues: [
- "available",
- "leased",
- "expired",
- "breaking",
- "broken"
- ]
- }
- },
- leaseDuration: {
- serializedName: "LeaseDuration",
- xmlName: "LeaseDuration",
- type: {
- name: "Enum",
- allowedValues: ["infinite", "fixed"]
+})
+(function (exporter) {
+ var extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+
+ __extends = function (d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+
+ __assign = Object.assign || function (t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
+ }
+ return t;
+ };
+
+ __rest = function (s, e) {
+ var t = {};
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
+ t[p] = s[p];
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
+ t[p[i]] = s[p[i]];
+ }
+ return t;
+ };
+
+ __decorate = function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+ };
+
+ __param = function (paramIndex, decorator) {
+ return function (target, key) { decorator(target, key, paramIndex); }
+ };
+
+ __metadata = function (metadataKey, metadataValue) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
+ };
+
+ __awaiter = function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+ };
+
+ __generator = function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
}
- },
- copyId: {
- serializedName: "CopyId",
- xmlName: "CopyId",
- type: {
- name: "String"
- }
- },
- copyStatus: {
- serializedName: "CopyStatus",
- xmlName: "CopyStatus",
- type: {
- name: "Enum",
- allowedValues: ["pending", "success", "aborted", "failed"]
- }
- },
- copySource: {
- serializedName: "CopySource",
- xmlName: "CopySource",
- type: {
- name: "String"
- }
- },
- copyProgress: {
- serializedName: "CopyProgress",
- xmlName: "CopyProgress",
- type: {
- name: "String"
- }
- },
- copyCompletedOn: {
- serializedName: "CopyCompletionTime",
- xmlName: "CopyCompletionTime",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- copyStatusDescription: {
- serializedName: "CopyStatusDescription",
- xmlName: "CopyStatusDescription",
- type: {
- name: "String"
- }
- },
- serverEncrypted: {
- serializedName: "ServerEncrypted",
- xmlName: "ServerEncrypted",
- type: {
- name: "Boolean"
- }
- },
- incrementalCopy: {
- serializedName: "IncrementalCopy",
- xmlName: "IncrementalCopy",
- type: {
- name: "Boolean"
- }
- },
- destinationSnapshot: {
- serializedName: "DestinationSnapshot",
- xmlName: "DestinationSnapshot",
- type: {
- name: "String"
- }
- },
- deletedOn: {
- serializedName: "DeletedTime",
- xmlName: "DeletedTime",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- remainingRetentionDays: {
- serializedName: "RemainingRetentionDays",
- xmlName: "RemainingRetentionDays",
- type: {
- name: "Number"
- }
- },
- accessTier: {
- serializedName: "AccessTier",
- xmlName: "AccessTier",
- type: {
- name: "Enum",
- allowedValues: [
- "P4",
- "P6",
- "P10",
- "P15",
- "P20",
- "P30",
- "P40",
- "P50",
- "P60",
- "P70",
- "P80",
- "Hot",
- "Cool",
- "Archive",
- "Cold"
- ]
- }
- },
- accessTierInferred: {
- serializedName: "AccessTierInferred",
- xmlName: "AccessTierInferred",
- type: {
- name: "Boolean"
- }
- },
- archiveStatus: {
- serializedName: "ArchiveStatus",
- xmlName: "ArchiveStatus",
- type: {
- name: "Enum",
- allowedValues: [
- "rehydrate-pending-to-hot",
- "rehydrate-pending-to-cool"
- ]
- }
- },
- customerProvidedKeySha256: {
- serializedName: "CustomerProvidedKeySha256",
- xmlName: "CustomerProvidedKeySha256",
- type: {
- name: "String"
- }
- },
- encryptionScope: {
- serializedName: "EncryptionScope",
- xmlName: "EncryptionScope",
- type: {
- name: "String"
- }
- },
- accessTierChangedOn: {
- serializedName: "AccessTierChangeTime",
- xmlName: "AccessTierChangeTime",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- tagCount: {
- serializedName: "TagCount",
- xmlName: "TagCount",
- type: {
- name: "Number"
- }
- },
- expiresOn: {
- serializedName: "Expiry-Time",
- xmlName: "Expiry-Time",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- isSealed: {
- serializedName: "Sealed",
- xmlName: "Sealed",
- type: {
- name: "Boolean"
- }
- },
- rehydratePriority: {
- serializedName: "RehydratePriority",
- xmlName: "RehydratePriority",
- type: {
- name: "Enum",
- allowedValues: ["High", "Standard"]
- }
- },
- lastAccessedOn: {
- serializedName: "LastAccessTime",
- xmlName: "LastAccessTime",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- immutabilityPolicyExpiresOn: {
- serializedName: "ImmutabilityPolicyUntilDate",
- xmlName: "ImmutabilityPolicyUntilDate",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- immutabilityPolicyMode: {
- serializedName: "ImmutabilityPolicyMode",
- xmlName: "ImmutabilityPolicyMode",
- type: {
- name: "Enum",
- allowedValues: ["Mutable", "Unlocked", "Locked"]
- }
- },
- legalHold: {
- serializedName: "LegalHold",
- xmlName: "LegalHold",
- type: {
- name: "Boolean"
- }
- }
- }
- }
-};
-const ListBlobsHierarchySegmentResponse = {
- serializedName: "ListBlobsHierarchySegmentResponse",
- xmlName: "EnumerationResults",
- type: {
- name: "Composite",
- className: "ListBlobsHierarchySegmentResponse",
- modelProperties: {
- serviceEndpoint: {
- serializedName: "ServiceEndpoint",
- required: true,
- xmlName: "ServiceEndpoint",
- xmlIsAttribute: true,
- type: {
- name: "String"
- }
- },
- containerName: {
- serializedName: "ContainerName",
- required: true,
- xmlName: "ContainerName",
- xmlIsAttribute: true,
- type: {
- name: "String"
- }
- },
- prefix: {
- serializedName: "Prefix",
- xmlName: "Prefix",
- type: {
- name: "String"
- }
- },
- marker: {
- serializedName: "Marker",
- xmlName: "Marker",
- type: {
- name: "String"
- }
- },
- maxPageSize: {
- serializedName: "MaxResults",
- xmlName: "MaxResults",
- type: {
- name: "Number"
- }
- },
- delimiter: {
- serializedName: "Delimiter",
- xmlName: "Delimiter",
- type: {
- name: "String"
- }
- },
- segment: {
- serializedName: "Segment",
- xmlName: "Blobs",
- type: {
- name: "Composite",
- className: "BlobHierarchyListSegment"
- }
- },
- continuationToken: {
- serializedName: "NextMarker",
- xmlName: "NextMarker",
- type: {
- name: "String"
- }
- }
- }
- }
-};
-const BlobHierarchyListSegment = {
- serializedName: "BlobHierarchyListSegment",
- xmlName: "Blobs",
- type: {
- name: "Composite",
- className: "BlobHierarchyListSegment",
- modelProperties: {
- blobPrefixes: {
- serializedName: "BlobPrefixes",
- xmlName: "BlobPrefixes",
- xmlElementName: "BlobPrefix",
- type: {
- name: "Sequence",
- element: {
- type: {
- name: "Composite",
- className: "BlobPrefix"
- }
- }
- }
- },
- blobItems: {
- serializedName: "BlobItems",
- required: true,
- xmlName: "BlobItems",
- xmlElementName: "Blob",
- type: {
- name: "Sequence",
- element: {
- type: {
- name: "Composite",
- className: "BlobItemInternal"
- }
- }
- }
- }
- }
- }
-};
-const BlobPrefix = {
- serializedName: "BlobPrefix",
- type: {
- name: "Composite",
- className: "BlobPrefix",
- modelProperties: {
- name: {
- serializedName: "Name",
- xmlName: "Name",
- type: {
- name: "Composite",
- className: "BlobName"
- }
- }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
- }
-};
-const BlockLookupList = {
- serializedName: "BlockLookupList",
- xmlName: "BlockList",
- type: {
- name: "Composite",
- className: "BlockLookupList",
- modelProperties: {
- committed: {
- serializedName: "Committed",
- xmlName: "Committed",
- xmlElementName: "Committed",
- type: {
- name: "Sequence",
- element: {
- type: {
- name: "String"
- }
- }
- }
- },
- uncommitted: {
- serializedName: "Uncommitted",
- xmlName: "Uncommitted",
- xmlElementName: "Uncommitted",
- type: {
- name: "Sequence",
- element: {
- type: {
- name: "String"
- }
- }
- }
- },
- latest: {
- serializedName: "Latest",
- xmlName: "Latest",
- xmlElementName: "Latest",
- type: {
- name: "Sequence",
- element: {
- type: {
- name: "String"
- }
- }
- }
+ };
+
+ __exportStar = function(m, o) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
+ };
+
+ __createBinding = Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+ }) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+ });
+
+ __values = function (o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
}
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+ };
+
+ __read = function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
- }
-};
-const BlockList = {
- serializedName: "BlockList",
- type: {
- name: "Composite",
- className: "BlockList",
- modelProperties: {
- committedBlocks: {
- serializedName: "CommittedBlocks",
- xmlName: "CommittedBlocks",
- xmlIsWrapped: true,
- xmlElementName: "Block",
- type: {
- name: "Sequence",
- element: {
- type: {
- name: "Composite",
- className: "Block"
- }
- }
- }
- },
- uncommittedBlocks: {
- serializedName: "UncommittedBlocks",
- xmlName: "UncommittedBlocks",
- xmlIsWrapped: true,
- xmlElementName: "Block",
- type: {
- name: "Sequence",
- element: {
- type: {
- name: "Composite",
- className: "Block"
- }
- }
- }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
}
+ finally { if (e) throw e.error; }
}
- }
-};
-const Block = {
- serializedName: "Block",
- type: {
- name: "Composite",
- className: "Block",
- modelProperties: {
- name: {
- serializedName: "Name",
- required: true,
- xmlName: "Name",
- type: {
- name: "String"
- }
- },
- size: {
- serializedName: "Size",
- required: true,
- xmlName: "Size",
- type: {
- name: "Number"
- }
- }
- }
- }
-};
-const PageList = {
- serializedName: "PageList",
- type: {
- name: "Composite",
- className: "PageList",
- modelProperties: {
- pageRange: {
- serializedName: "PageRange",
- xmlName: "PageRange",
- xmlElementName: "PageRange",
- type: {
- name: "Sequence",
- element: {
- type: {
- name: "Composite",
- className: "PageRange"
- }
- }
- }
- },
- clearRange: {
- serializedName: "ClearRange",
- xmlName: "ClearRange",
- xmlElementName: "ClearRange",
- type: {
- name: "Sequence",
- element: {
- type: {
- name: "Composite",
- className: "ClearRange"
- }
- }
- }
- },
- continuationToken: {
- serializedName: "NextMarker",
- xmlName: "NextMarker",
- type: {
- name: "String"
- }
+ return ar;
+ };
+
+ /** @deprecated */
+ __spread = function () {
+ for (var ar = [], i = 0; i < arguments.length; i++)
+ ar = ar.concat(__read(arguments[i]));
+ return ar;
+ };
+
+ /** @deprecated */
+ __spreadArrays = function () {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+ };
+
+ __spreadArray = function (to, from, pack) {
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
+ if (ar || !(i in from)) {
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
+ ar[i] = from[i];
}
}
+ return to.concat(ar || Array.prototype.slice.call(from));
+ };
+
+ __await = function (v) {
+ return this instanceof __await ? (this.v = v, this) : new __await(v);
+ };
+
+ __asyncGenerator = function (thisArg, _arguments, generator) {
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
+ function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
+ function fulfill(value) { resume("next", value); }
+ function reject(value) { resume("throw", value); }
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
+ };
+
+ __asyncDelegator = function (o) {
+ var i, p;
+ return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
+ function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
+ };
+
+ __asyncValues = function (o) {
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
+ var m = o[Symbol.asyncIterator], i;
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
+ };
+
+ __makeTemplateObject = function (cooked, raw) {
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
+ return cooked;
+ };
+
+ var __setModuleDefault = Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+ }) : function(o, v) {
+ o["default"] = v;
+ };
+
+ __importStar = function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+ };
+
+ __importDefault = function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+ };
+
+ __classPrivateFieldGet = function (receiver, state, kind, f) {
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
+ };
+
+ __classPrivateFieldSet = function (receiver, state, value, kind, f) {
+ if (kind === "m") throw new TypeError("Private method is not writable");
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
+ };
+
+ exporter("__extends", __extends);
+ exporter("__assign", __assign);
+ exporter("__rest", __rest);
+ exporter("__decorate", __decorate);
+ exporter("__param", __param);
+ exporter("__metadata", __metadata);
+ exporter("__awaiter", __awaiter);
+ exporter("__generator", __generator);
+ exporter("__exportStar", __exportStar);
+ exporter("__createBinding", __createBinding);
+ exporter("__values", __values);
+ exporter("__read", __read);
+ exporter("__spread", __spread);
+ exporter("__spreadArrays", __spreadArrays);
+ exporter("__spreadArray", __spreadArray);
+ exporter("__await", __await);
+ exporter("__asyncGenerator", __asyncGenerator);
+ exporter("__asyncDelegator", __asyncDelegator);
+ exporter("__asyncValues", __asyncValues);
+ exporter("__makeTemplateObject", __makeTemplateObject);
+ exporter("__importStar", __importStar);
+ exporter("__importDefault", __importDefault);
+ exporter("__classPrivateFieldGet", __classPrivateFieldGet);
+ exporter("__classPrivateFieldSet", __classPrivateFieldSet);
+});
+
+
+/***/ }),
+
+/***/ 4175:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+
+var api = __nccwpck_require__(5163);
+
+// Copyright (c) Microsoft Corporation.
+(function (SpanKind) {
+ /** Default value. Indicates that the span is used internally. */
+ SpanKind[SpanKind["INTERNAL"] = 0] = "INTERNAL";
+ /**
+ * Indicates that the span covers server-side handling of an RPC or other
+ * remote request.
+ */
+ SpanKind[SpanKind["SERVER"] = 1] = "SERVER";
+ /**
+ * Indicates that the span covers the client-side wrapper around an RPC or
+ * other remote request.
+ */
+ SpanKind[SpanKind["CLIENT"] = 2] = "CLIENT";
+ /**
+ * Indicates that the span describes producer sending a message to a
+ * broker. Unlike client and server, there is no direct critical path latency
+ * relationship between producer and consumer spans.
+ */
+ SpanKind[SpanKind["PRODUCER"] = 3] = "PRODUCER";
+ /**
+ * Indicates that the span describes consumer receiving a message from a
+ * broker. Unlike client and server, there is no direct critical path latency
+ * relationship between producer and consumer spans.
+ */
+ SpanKind[SpanKind["CONSUMER"] = 4] = "CONSUMER";
+})(exports.SpanKind || (exports.SpanKind = {}));
+/**
+ * Return the span if one exists
+ *
+ * @param context - context to get span from
+ */
+function getSpan(context) {
+ return api.trace.getSpan(context);
+}
+/**
+ * Set the span on a context
+ *
+ * @param context - context to use as parent
+ * @param span - span to set active
+ */
+function setSpan(context, span) {
+ return api.trace.setSpan(context, span);
+}
+/**
+ * Wrap span context in a NoopSpan and set as span in a new
+ * context
+ *
+ * @param context - context to set active span on
+ * @param spanContext - span context to be wrapped
+ */
+function setSpanContext(context, spanContext) {
+ return api.trace.setSpanContext(context, spanContext);
+}
+/**
+ * Get the span context of the span if it exists.
+ *
+ * @param context - context to get values from
+ */
+function getSpanContext(context) {
+ return api.trace.getSpanContext(context);
+}
+/**
+ * Returns true of the given {@link SpanContext} is valid.
+ * A valid {@link SpanContext} is one which has a valid trace ID and span ID as per the spec.
+ *
+ * @param context - the {@link SpanContext} to validate.
+ *
+ * @returns true if the {@link SpanContext} is valid, false otherwise.
+ */
+function isSpanContextValid(context) {
+ return api.trace.isSpanContextValid(context);
+}
+function getTracer(name, version) {
+ return api.trace.getTracer(name || "azure/core-tracing", version);
+}
+/** Entrypoint for context API */
+const context = api.context;
+(function (SpanStatusCode) {
+ /**
+ * The default status.
+ */
+ SpanStatusCode[SpanStatusCode["UNSET"] = 0] = "UNSET";
+ /**
+ * The operation has been validated by an Application developer or
+ * Operator to have completed successfully.
+ */
+ SpanStatusCode[SpanStatusCode["OK"] = 1] = "OK";
+ /**
+ * The operation contains an error.
+ */
+ SpanStatusCode[SpanStatusCode["ERROR"] = 2] = "ERROR";
+})(exports.SpanStatusCode || (exports.SpanStatusCode = {}));
+
+// Copyright (c) Microsoft Corporation.
+function isTracingDisabled() {
+ var _a;
+ if (typeof process === "undefined") {
+ // not supported in browser for now without polyfills
+ return false;
}
-};
-const PageRange = {
- serializedName: "PageRange",
- xmlName: "PageRange",
- type: {
- name: "Composite",
- className: "PageRange",
- modelProperties: {
- start: {
- serializedName: "Start",
- required: true,
- xmlName: "Start",
- type: {
- name: "Number"
- }
- },
- end: {
- serializedName: "End",
- required: true,
- xmlName: "End",
- type: {
- name: "Number"
- }
- }
+ const azureTracingDisabledValue = (_a = process.env.AZURE_TRACING_DISABLED) === null || _a === void 0 ? void 0 : _a.toLowerCase();
+ if (azureTracingDisabledValue === "false" || azureTracingDisabledValue === "0") {
+ return false;
+ }
+ return Boolean(azureTracingDisabledValue);
+}
+/**
+ * Creates a function that can be used to create spans using the global tracer.
+ *
+ * Usage:
+ *
+ * ```typescript
+ * // once
+ * const createSpan = createSpanFunction({ packagePrefix: "Azure.Data.AppConfiguration", namespace: "Microsoft.AppConfiguration" });
+ *
+ * // in each operation
+ * const span = createSpan("deleteConfigurationSetting", operationOptions);
+ * // code...
+ * span.end();
+ * ```
+ *
+ * @hidden
+ * @param args - allows configuration of the prefix for each span as well as the az.namespace field.
+ */
+function createSpanFunction(args) {
+ return function (operationName, operationOptions) {
+ const tracer = getTracer();
+ const tracingOptions = (operationOptions === null || operationOptions === void 0 ? void 0 : operationOptions.tracingOptions) || {};
+ const spanOptions = Object.assign({ kind: exports.SpanKind.INTERNAL }, tracingOptions.spanOptions);
+ const spanName = args.packagePrefix ? `${args.packagePrefix}.${operationName}` : operationName;
+ let span;
+ if (isTracingDisabled()) {
+ span = api.trace.wrapSpanContext(api.INVALID_SPAN_CONTEXT);
}
+ else {
+ span = tracer.startSpan(spanName, spanOptions, tracingOptions.tracingContext);
+ }
+ if (args.namespace) {
+ span.setAttribute("az.namespace", args.namespace);
+ }
+ let newSpanOptions = tracingOptions.spanOptions || {};
+ if (span.isRecording() && args.namespace) {
+ newSpanOptions = Object.assign(Object.assign({}, tracingOptions.spanOptions), { attributes: Object.assign(Object.assign({}, spanOptions.attributes), { "az.namespace": args.namespace }) });
+ }
+ const newTracingOptions = Object.assign(Object.assign({}, tracingOptions), { spanOptions: newSpanOptions, tracingContext: setSpan(tracingOptions.tracingContext || context.active(), span) });
+ const newOperationOptions = Object.assign(Object.assign({}, operationOptions), { tracingOptions: newTracingOptions });
+ return {
+ span,
+ updatedOptions: newOperationOptions
+ };
+ };
+}
+
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT license.
+const VERSION = "00";
+/**
+ * Generates a `SpanContext` given a `traceparent` header value.
+ * @param traceParent - Serialized span context data as a `traceparent` header value.
+ * @returns The `SpanContext` generated from the `traceparent` value.
+ */
+function extractSpanContextFromTraceParentHeader(traceParentHeader) {
+ const parts = traceParentHeader.split("-");
+ if (parts.length !== 4) {
+ return;
}
-};
-const ClearRange = {
- serializedName: "ClearRange",
- xmlName: "ClearRange",
- type: {
- name: "Composite",
- className: "ClearRange",
- modelProperties: {
- start: {
- serializedName: "Start",
- required: true,
- xmlName: "Start",
- type: {
- name: "Number"
- }
- },
- end: {
- serializedName: "End",
- required: true,
- xmlName: "End",
- type: {
- name: "Number"
- }
- }
+ const [version, traceId, spanId, traceOptions] = parts;
+ if (version !== VERSION) {
+ return;
+ }
+ const traceFlags = parseInt(traceOptions, 16);
+ const spanContext = {
+ spanId,
+ traceId,
+ traceFlags
+ };
+ return spanContext;
+}
+/**
+ * Generates a `traceparent` value given a span context.
+ * @param spanContext - Contains context for a specific span.
+ * @returns The `spanContext` represented as a `traceparent` value.
+ */
+function getTraceParentHeader(spanContext) {
+ const missingFields = [];
+ if (!spanContext.traceId) {
+ missingFields.push("traceId");
+ }
+ if (!spanContext.spanId) {
+ missingFields.push("spanId");
+ }
+ if (missingFields.length) {
+ return;
+ }
+ const flags = spanContext.traceFlags || 0 /* NONE */;
+ const hexFlags = flags.toString(16);
+ const traceFlags = hexFlags.length === 1 ? `0${hexFlags}` : hexFlags;
+ // https://www.w3.org/TR/trace-context/#traceparent-header-field-values
+ return `${VERSION}-${spanContext.traceId}-${spanContext.spanId}-${traceFlags}`;
+}
+
+exports.context = context;
+exports.createSpanFunction = createSpanFunction;
+exports.extractSpanContextFromTraceParentHeader = extractSpanContextFromTraceParentHeader;
+exports.getSpan = getSpan;
+exports.getSpanContext = getSpanContext;
+exports.getTraceParentHeader = getTraceParentHeader;
+exports.getTracer = getTracer;
+exports.isSpanContextValid = isSpanContextValid;
+exports.setSpan = setSpan;
+exports.setSpanContext = setSpanContext;
+//# sourceMappingURL=index.js.map
+
+
+/***/ }),
+
+/***/ 3233:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+
+function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
+
+var util = _interopDefault(__nccwpck_require__(3837));
+var os = __nccwpck_require__(2037);
+
+// Copyright (c) Microsoft Corporation.
+function log(message, ...args) {
+ process.stderr.write(`${util.format(message, ...args)}${os.EOL}`);
+}
+
+// Copyright (c) Microsoft Corporation.
+const debugEnvVariable = (typeof process !== "undefined" && process.env && process.env.DEBUG) || undefined;
+let enabledString;
+let enabledNamespaces = [];
+let skippedNamespaces = [];
+const debuggers = [];
+if (debugEnvVariable) {
+ enable(debugEnvVariable);
+}
+const debugObj = Object.assign((namespace) => {
+ return createDebugger(namespace);
+}, {
+ enable,
+ enabled,
+ disable,
+ log
+});
+function enable(namespaces) {
+ enabledString = namespaces;
+ enabledNamespaces = [];
+ skippedNamespaces = [];
+ const wildcard = /\*/g;
+ const namespaceList = namespaces.split(",").map((ns) => ns.trim().replace(wildcard, ".*?"));
+ for (const ns of namespaceList) {
+ if (ns.startsWith("-")) {
+ skippedNamespaces.push(new RegExp(`^${ns.substr(1)}$`));
+ }
+ else {
+ enabledNamespaces.push(new RegExp(`^${ns}$`));
}
}
-};
-const QueryRequest = {
- serializedName: "QueryRequest",
- xmlName: "QueryRequest",
- type: {
- name: "Composite",
- className: "QueryRequest",
- modelProperties: {
- queryType: {
- serializedName: "QueryType",
- required: true,
- xmlName: "QueryType",
- type: {
- name: "String"
- }
- },
- expression: {
- serializedName: "Expression",
- required: true,
- xmlName: "Expression",
- type: {
- name: "String"
- }
- },
- inputSerialization: {
- serializedName: "InputSerialization",
- xmlName: "InputSerialization",
- type: {
- name: "Composite",
- className: "QuerySerialization"
- }
- },
- outputSerialization: {
- serializedName: "OutputSerialization",
- xmlName: "OutputSerialization",
- type: {
- name: "Composite",
- className: "QuerySerialization"
- }
- }
+ for (const instance of debuggers) {
+ instance.enabled = enabled(instance.namespace);
+ }
+}
+function enabled(namespace) {
+ if (namespace.endsWith("*")) {
+ return true;
+ }
+ for (const skipped of skippedNamespaces) {
+ if (skipped.test(namespace)) {
+ return false;
}
}
-};
-const QuerySerialization = {
- serializedName: "QuerySerialization",
- type: {
- name: "Composite",
- className: "QuerySerialization",
- modelProperties: {
- format: {
- serializedName: "Format",
- xmlName: "Format",
- type: {
- name: "Composite",
- className: "QueryFormat"
- }
- }
+ for (const enabledNamespace of enabledNamespaces) {
+ if (enabledNamespace.test(namespace)) {
+ return true;
}
}
-};
-const QueryFormat = {
- serializedName: "QueryFormat",
+ return false;
+}
+function disable() {
+ const result = enabledString || "";
+ enable("");
+ return result;
+}
+function createDebugger(namespace) {
+ const newDebugger = Object.assign(debug, {
+ enabled: enabled(namespace),
+ destroy,
+ log: debugObj.log,
+ namespace,
+ extend
+ });
+ function debug(...args) {
+ if (!newDebugger.enabled) {
+ return;
+ }
+ if (args.length > 0) {
+ args[0] = `${namespace} ${args[0]}`;
+ }
+ newDebugger.log(...args);
+ }
+ debuggers.push(newDebugger);
+ return newDebugger;
+}
+function destroy() {
+ const index = debuggers.indexOf(this);
+ if (index >= 0) {
+ debuggers.splice(index, 1);
+ return true;
+ }
+ return false;
+}
+function extend(namespace) {
+ const newDebugger = createDebugger(`${this.namespace}:${namespace}`);
+ newDebugger.log = this.log;
+ return newDebugger;
+}
+
+// Copyright (c) Microsoft Corporation.
+const registeredLoggers = new Set();
+const logLevelFromEnv = (typeof process !== "undefined" && process.env && process.env.AZURE_LOG_LEVEL) || undefined;
+let azureLogLevel;
+/**
+ * The AzureLogger provides a mechanism for overriding where logs are output to.
+ * By default, logs are sent to stderr.
+ * Override the `log` method to redirect logs to another location.
+ */
+const AzureLogger = debugObj("azure");
+AzureLogger.log = (...args) => {
+ debugObj.log(...args);
+};
+const AZURE_LOG_LEVELS = ["verbose", "info", "warning", "error"];
+if (logLevelFromEnv) {
+ // avoid calling setLogLevel because we don't want a mis-set environment variable to crash
+ if (isAzureLogLevel(logLevelFromEnv)) {
+ setLogLevel(logLevelFromEnv);
+ }
+ else {
+ console.error(`AZURE_LOG_LEVEL set to unknown log level '${logLevelFromEnv}'; logging is not enabled. Acceptable values: ${AZURE_LOG_LEVELS.join(", ")}.`);
+ }
+}
+/**
+ * Immediately enables logging at the specified log level.
+ * @param level - The log level to enable for logging.
+ * Options from most verbose to least verbose are:
+ * - verbose
+ * - info
+ * - warning
+ * - error
+ */
+function setLogLevel(level) {
+ if (level && !isAzureLogLevel(level)) {
+ throw new Error(`Unknown log level '${level}'. Acceptable values: ${AZURE_LOG_LEVELS.join(",")}`);
+ }
+ azureLogLevel = level;
+ const enabledNamespaces = [];
+ for (const logger of registeredLoggers) {
+ if (shouldEnable(logger)) {
+ enabledNamespaces.push(logger.namespace);
+ }
+ }
+ debugObj.enable(enabledNamespaces.join(","));
+}
+/**
+ * Retrieves the currently specified log level.
+ */
+function getLogLevel() {
+ return azureLogLevel;
+}
+const levelMap = {
+ verbose: 400,
+ info: 300,
+ warning: 200,
+ error: 100
+};
+/**
+ * Creates a logger for use by the Azure SDKs that inherits from `AzureLogger`.
+ * @param namespace - The name of the SDK package.
+ * @hidden
+ */
+function createClientLogger(namespace) {
+ const clientRootLogger = AzureLogger.extend(namespace);
+ patchLogMethod(AzureLogger, clientRootLogger);
+ return {
+ error: createLogger(clientRootLogger, "error"),
+ warning: createLogger(clientRootLogger, "warning"),
+ info: createLogger(clientRootLogger, "info"),
+ verbose: createLogger(clientRootLogger, "verbose")
+ };
+}
+function patchLogMethod(parent, child) {
+ child.log = (...args) => {
+ parent.log(...args);
+ };
+}
+function createLogger(parent, level) {
+ const logger = Object.assign(parent.extend(level), {
+ level
+ });
+ patchLogMethod(parent, logger);
+ if (shouldEnable(logger)) {
+ const enabledNamespaces = debugObj.disable();
+ debugObj.enable(enabledNamespaces + "," + logger.namespace);
+ }
+ registeredLoggers.add(logger);
+ return logger;
+}
+function shouldEnable(logger) {
+ if (azureLogLevel && levelMap[logger.level] <= levelMap[azureLogLevel]) {
+ return true;
+ }
+ else {
+ return false;
+ }
+}
+function isAzureLogLevel(logLevel) {
+ return AZURE_LOG_LEVELS.includes(logLevel);
+}
+
+exports.AzureLogger = AzureLogger;
+exports.createClientLogger = createClientLogger;
+exports.getLogLevel = getLogLevel;
+exports.setLogLevel = setLogLevel;
+//# sourceMappingURL=index.js.map
+
+
+/***/ }),
+
+/***/ 4100:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+
+var coreHttp = __nccwpck_require__(4607);
+var tslib = __nccwpck_require__(679);
+var coreTracing = __nccwpck_require__(4175);
+var logger$1 = __nccwpck_require__(3233);
+var abortController = __nccwpck_require__(2557);
+var os = __nccwpck_require__(2037);
+var crypto = __nccwpck_require__(6113);
+var stream = __nccwpck_require__(2781);
+__nccwpck_require__(4559);
+var coreLro = __nccwpck_require__(7094);
+var events = __nccwpck_require__(2361);
+var fs = __nccwpck_require__(7147);
+var util = __nccwpck_require__(3837);
+
+function _interopNamespace(e) {
+ if (e && e.__esModule) return e;
+ var n = Object.create(null);
+ if (e) {
+ Object.keys(e).forEach(function (k) {
+ if (k !== 'default') {
+ var d = Object.getOwnPropertyDescriptor(e, k);
+ Object.defineProperty(n, k, d.get ? d : {
+ enumerable: true,
+ get: function () { return e[k]; }
+ });
+ }
+ });
+ }
+ n["default"] = e;
+ return Object.freeze(n);
+}
+
+var coreHttp__namespace = /*#__PURE__*/_interopNamespace(coreHttp);
+var os__namespace = /*#__PURE__*/_interopNamespace(os);
+var fs__namespace = /*#__PURE__*/_interopNamespace(fs);
+var util__namespace = /*#__PURE__*/_interopNamespace(util);
+
+/*
+ * Copyright (c) Microsoft Corporation.
+ * Licensed under the MIT License.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is regenerated.
+ */
+const BlobServiceProperties = {
+ serializedName: "BlobServiceProperties",
+ xmlName: "StorageServiceProperties",
type: {
name: "Composite",
- className: "QueryFormat",
+ className: "BlobServiceProperties",
modelProperties: {
- type: {
- serializedName: "Type",
- required: true,
- xmlName: "Type",
+ blobAnalyticsLogging: {
+ serializedName: "Logging",
+ xmlName: "Logging",
type: {
- name: "Enum",
- allowedValues: ["delimited", "json", "arrow", "parquet"]
+ name: "Composite",
+ className: "Logging"
}
},
- delimitedTextConfiguration: {
- serializedName: "DelimitedTextConfiguration",
- xmlName: "DelimitedTextConfiguration",
+ hourMetrics: {
+ serializedName: "HourMetrics",
+ xmlName: "HourMetrics",
type: {
name: "Composite",
- className: "DelimitedTextConfiguration"
+ className: "Metrics"
}
},
- jsonTextConfiguration: {
- serializedName: "JsonTextConfiguration",
- xmlName: "JsonTextConfiguration",
+ minuteMetrics: {
+ serializedName: "MinuteMetrics",
+ xmlName: "MinuteMetrics",
type: {
name: "Composite",
- className: "JsonTextConfiguration"
+ className: "Metrics"
}
},
- arrowConfiguration: {
- serializedName: "ArrowConfiguration",
- xmlName: "ArrowConfiguration",
+ cors: {
+ serializedName: "Cors",
+ xmlName: "Cors",
+ xmlIsWrapped: true,
+ xmlElementName: "CorsRule",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "CorsRule"
+ }
+ }
+ }
+ },
+ defaultServiceVersion: {
+ serializedName: "DefaultServiceVersion",
+ xmlName: "DefaultServiceVersion",
+ type: {
+ name: "String"
+ }
+ },
+ deleteRetentionPolicy: {
+ serializedName: "DeleteRetentionPolicy",
+ xmlName: "DeleteRetentionPolicy",
type: {
name: "Composite",
- className: "ArrowConfiguration"
+ className: "RetentionPolicy"
}
},
- parquetTextConfiguration: {
- serializedName: "ParquetTextConfiguration",
- xmlName: "ParquetTextConfiguration",
+ staticWebsite: {
+ serializedName: "StaticWebsite",
+ xmlName: "StaticWebsite",
type: {
- name: "any"
+ name: "Composite",
+ className: "StaticWebsite"
}
}
}
}
};
-const DelimitedTextConfiguration = {
- serializedName: "DelimitedTextConfiguration",
- xmlName: "DelimitedTextConfiguration",
+const Logging = {
+ serializedName: "Logging",
type: {
name: "Composite",
- className: "DelimitedTextConfiguration",
+ className: "Logging",
modelProperties: {
- columnSeparator: {
- serializedName: "ColumnSeparator",
- xmlName: "ColumnSeparator",
+ version: {
+ serializedName: "Version",
+ required: true,
+ xmlName: "Version",
type: {
name: "String"
}
},
- fieldQuote: {
- serializedName: "FieldQuote",
- xmlName: "FieldQuote",
+ deleteProperty: {
+ serializedName: "Delete",
+ required: true,
+ xmlName: "Delete",
type: {
- name: "String"
+ name: "Boolean"
}
},
- recordSeparator: {
- serializedName: "RecordSeparator",
- xmlName: "RecordSeparator",
+ read: {
+ serializedName: "Read",
+ required: true,
+ xmlName: "Read",
type: {
- name: "String"
+ name: "Boolean"
}
},
- escapeChar: {
- serializedName: "EscapeChar",
- xmlName: "EscapeChar",
+ write: {
+ serializedName: "Write",
+ required: true,
+ xmlName: "Write",
type: {
- name: "String"
+ name: "Boolean"
}
},
- headersPresent: {
- serializedName: "HeadersPresent",
- xmlName: "HasHeaders",
+ retentionPolicy: {
+ serializedName: "RetentionPolicy",
+ xmlName: "RetentionPolicy",
type: {
- name: "Boolean"
+ name: "Composite",
+ className: "RetentionPolicy"
}
}
}
}
};
-const JsonTextConfiguration = {
- serializedName: "JsonTextConfiguration",
- xmlName: "JsonTextConfiguration",
+const RetentionPolicy = {
+ serializedName: "RetentionPolicy",
type: {
name: "Composite",
- className: "JsonTextConfiguration",
+ className: "RetentionPolicy",
modelProperties: {
- recordSeparator: {
- serializedName: "RecordSeparator",
- xmlName: "RecordSeparator",
+ enabled: {
+ serializedName: "Enabled",
+ required: true,
+ xmlName: "Enabled",
type: {
- name: "String"
+ name: "Boolean"
}
- }
- }
- }
-};
-const ArrowConfiguration = {
- serializedName: "ArrowConfiguration",
- xmlName: "ArrowConfiguration",
- type: {
- name: "Composite",
- className: "ArrowConfiguration",
- modelProperties: {
- schema: {
- serializedName: "Schema",
- required: true,
- xmlName: "Schema",
- xmlIsWrapped: true,
- xmlElementName: "Field",
+ },
+ days: {
+ constraints: {
+ InclusiveMinimum: 1
+ },
+ serializedName: "Days",
+ xmlName: "Days",
type: {
- name: "Sequence",
- element: {
- type: {
- name: "Composite",
- className: "ArrowField"
- }
- }
+ name: "Number"
}
}
}
}
};
-const ArrowField = {
- serializedName: "ArrowField",
- xmlName: "Field",
+const Metrics = {
+ serializedName: "Metrics",
type: {
name: "Composite",
- className: "ArrowField",
+ className: "Metrics",
modelProperties: {
- type: {
- serializedName: "Type",
- required: true,
- xmlName: "Type",
+ version: {
+ serializedName: "Version",
+ xmlName: "Version",
type: {
name: "String"
}
},
- name: {
- serializedName: "Name",
- xmlName: "Name",
+ enabled: {
+ serializedName: "Enabled",
+ required: true,
+ xmlName: "Enabled",
type: {
- name: "String"
+ name: "Boolean"
}
},
- precision: {
- serializedName: "Precision",
- xmlName: "Precision",
+ includeAPIs: {
+ serializedName: "IncludeAPIs",
+ xmlName: "IncludeAPIs",
type: {
- name: "Number"
+ name: "Boolean"
}
},
- scale: {
- serializedName: "Scale",
- xmlName: "Scale",
+ retentionPolicy: {
+ serializedName: "RetentionPolicy",
+ xmlName: "RetentionPolicy",
type: {
- name: "Number"
+ name: "Composite",
+ className: "RetentionPolicy"
}
}
}
}
};
-const ServiceSetPropertiesHeaders = {
- serializedName: "Service_setPropertiesHeaders",
+const CorsRule = {
+ serializedName: "CorsRule",
type: {
name: "Composite",
- className: "ServiceSetPropertiesHeaders",
+ className: "CorsRule",
modelProperties: {
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
+ allowedOrigins: {
+ serializedName: "AllowedOrigins",
+ required: true,
+ xmlName: "AllowedOrigins",
type: {
name: "String"
}
},
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ allowedMethods: {
+ serializedName: "AllowedMethods",
+ required: true,
+ xmlName: "AllowedMethods",
type: {
name: "String"
}
},
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ allowedHeaders: {
+ serializedName: "AllowedHeaders",
+ required: true,
+ xmlName: "AllowedHeaders",
type: {
name: "String"
}
},
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ exposedHeaders: {
+ serializedName: "ExposedHeaders",
+ required: true,
+ xmlName: "ExposedHeaders",
type: {
name: "String"
}
- }
- }
- }
-};
-const ServiceSetPropertiesExceptionHeaders = {
- serializedName: "Service_setPropertiesExceptionHeaders",
- type: {
- name: "Composite",
- className: "ServiceSetPropertiesExceptionHeaders",
- modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ },
+ maxAgeInSeconds: {
+ constraints: {
+ InclusiveMinimum: 0
+ },
+ serializedName: "MaxAgeInSeconds",
+ required: true,
+ xmlName: "MaxAgeInSeconds",
type: {
- name: "String"
+ name: "Number"
}
}
}
}
};
-const ServiceGetPropertiesHeaders = {
- serializedName: "Service_getPropertiesHeaders",
+const StaticWebsite = {
+ serializedName: "StaticWebsite",
type: {
name: "Composite",
- className: "ServiceGetPropertiesHeaders",
+ className: "StaticWebsite",
modelProperties: {
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
+ enabled: {
+ serializedName: "Enabled",
+ required: true,
+ xmlName: "Enabled",
type: {
- name: "String"
+ name: "Boolean"
}
},
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ indexDocument: {
+ serializedName: "IndexDocument",
+ xmlName: "IndexDocument",
type: {
name: "String"
}
},
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ errorDocument404Path: {
+ serializedName: "ErrorDocument404Path",
+ xmlName: "ErrorDocument404Path",
type: {
name: "String"
}
},
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ defaultIndexDocumentPath: {
+ serializedName: "DefaultIndexDocumentPath",
+ xmlName: "DefaultIndexDocumentPath",
type: {
name: "String"
}
@@ -24485,128 +24431,129 @@ const ServiceGetPropertiesHeaders = {
}
}
};
-const ServiceGetPropertiesExceptionHeaders = {
- serializedName: "Service_getPropertiesExceptionHeaders",
+const StorageError = {
+ serializedName: "StorageError",
type: {
name: "Composite",
- className: "ServiceGetPropertiesExceptionHeaders",
+ className: "StorageError",
modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
- type: {
+ message: {
+ serializedName: "Message",
+ xmlName: "Message",
+ type: {
+ name: "String"
+ }
+ },
+ code: {
+ serializedName: "Code",
+ xmlName: "Code",
+ type: {
name: "String"
}
}
}
}
};
-const ServiceGetStatisticsHeaders = {
- serializedName: "Service_getStatisticsHeaders",
+const BlobServiceStatistics = {
+ serializedName: "BlobServiceStatistics",
+ xmlName: "StorageServiceStats",
type: {
name: "Composite",
- className: "ServiceGetStatisticsHeaders",
+ className: "BlobServiceStatistics",
modelProperties: {
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
- type: {
- name: "String"
- }
- },
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
- type: {
- name: "String"
- }
- },
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
- type: {
- name: "String"
- }
- },
- date: {
- serializedName: "date",
- xmlName: "date",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ geoReplication: {
+ serializedName: "GeoReplication",
+ xmlName: "GeoReplication",
type: {
- name: "String"
+ name: "Composite",
+ className: "GeoReplication"
}
}
}
}
};
-const ServiceGetStatisticsExceptionHeaders = {
- serializedName: "Service_getStatisticsExceptionHeaders",
+const GeoReplication = {
+ serializedName: "GeoReplication",
type: {
name: "Composite",
- className: "ServiceGetStatisticsExceptionHeaders",
+ className: "GeoReplication",
modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ status: {
+ serializedName: "Status",
+ required: true,
+ xmlName: "Status",
type: {
- name: "String"
+ name: "Enum",
+ allowedValues: ["live", "bootstrap", "unavailable"]
+ }
+ },
+ lastSyncOn: {
+ serializedName: "LastSyncTime",
+ required: true,
+ xmlName: "LastSyncTime",
+ type: {
+ name: "DateTimeRfc1123"
}
}
}
}
};
-const ServiceListContainersSegmentHeaders = {
- serializedName: "Service_listContainersSegmentHeaders",
+const ListContainersSegmentResponse = {
+ serializedName: "ListContainersSegmentResponse",
+ xmlName: "EnumerationResults",
type: {
name: "Composite",
- className: "ServiceListContainersSegmentHeaders",
+ className: "ListContainersSegmentResponse",
modelProperties: {
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
+ serviceEndpoint: {
+ serializedName: "ServiceEndpoint",
+ required: true,
+ xmlName: "ServiceEndpoint",
+ xmlIsAttribute: true,
type: {
name: "String"
}
},
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ prefix: {
+ serializedName: "Prefix",
+ xmlName: "Prefix",
type: {
name: "String"
}
},
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ marker: {
+ serializedName: "Marker",
+ xmlName: "Marker",
type: {
name: "String"
}
},
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ maxPageSize: {
+ serializedName: "MaxResults",
+ xmlName: "MaxResults",
type: {
- name: "String"
+ name: "Number"
}
- }
- }
- }
-};
-const ServiceListContainersSegmentExceptionHeaders = {
- serializedName: "Service_listContainersSegmentExceptionHeaders",
- type: {
- name: "Composite",
- className: "ServiceListContainersSegmentExceptionHeaders",
- modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ },
+ containerItems: {
+ serializedName: "ContainerItems",
+ required: true,
+ xmlName: "Containers",
+ xmlIsWrapped: true,
+ xmlElementName: "Container",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "ContainerItem"
+ }
+ }
+ }
+ },
+ continuationToken: {
+ serializedName: "NextMarker",
+ xmlName: "NextMarker",
type: {
name: "String"
}
@@ -24614,154 +24561,184 @@ const ServiceListContainersSegmentExceptionHeaders = {
}
}
};
-const ServiceGetUserDelegationKeyHeaders = {
- serializedName: "Service_getUserDelegationKeyHeaders",
+const ContainerItem = {
+ serializedName: "ContainerItem",
+ xmlName: "Container",
type: {
name: "Composite",
- className: "ServiceGetUserDelegationKeyHeaders",
+ className: "ContainerItem",
modelProperties: {
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
+ name: {
+ serializedName: "Name",
+ required: true,
+ xmlName: "Name",
type: {
name: "String"
}
},
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ deleted: {
+ serializedName: "Deleted",
+ xmlName: "Deleted",
type: {
- name: "String"
+ name: "Boolean"
}
},
version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ serializedName: "Version",
+ xmlName: "Version",
type: {
name: "String"
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
+ properties: {
+ serializedName: "Properties",
+ xmlName: "Properties",
type: {
- name: "DateTimeRfc1123"
+ name: "Composite",
+ className: "ContainerProperties"
}
},
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ metadata: {
+ serializedName: "Metadata",
+ xmlName: "Metadata",
type: {
- name: "String"
+ name: "Dictionary",
+ value: { type: { name: "String" } }
}
}
}
}
};
-const ServiceGetUserDelegationKeyExceptionHeaders = {
- serializedName: "Service_getUserDelegationKeyExceptionHeaders",
+const ContainerProperties = {
+ serializedName: "ContainerProperties",
type: {
name: "Composite",
- className: "ServiceGetUserDelegationKeyExceptionHeaders",
+ className: "ContainerProperties",
modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ lastModified: {
+ serializedName: "Last-Modified",
+ required: true,
+ xmlName: "Last-Modified",
type: {
- name: "String"
+ name: "DateTimeRfc1123"
}
- }
- }
- }
-};
-const ServiceGetAccountInfoHeaders = {
- serializedName: "Service_getAccountInfoHeaders",
- type: {
- name: "Composite",
- className: "ServiceGetAccountInfoHeaders",
- modelProperties: {
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
+ },
+ etag: {
+ serializedName: "Etag",
+ required: true,
+ xmlName: "Etag",
type: {
name: "String"
}
},
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ leaseStatus: {
+ serializedName: "LeaseStatus",
+ xmlName: "LeaseStatus",
type: {
- name: "String"
+ name: "Enum",
+ allowedValues: ["locked", "unlocked"]
}
},
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ leaseState: {
+ serializedName: "LeaseState",
+ xmlName: "LeaseState",
type: {
- name: "String"
+ name: "Enum",
+ allowedValues: [
+ "available",
+ "leased",
+ "expired",
+ "breaking",
+ "broken"
+ ]
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
+ leaseDuration: {
+ serializedName: "LeaseDuration",
+ xmlName: "LeaseDuration",
type: {
- name: "DateTimeRfc1123"
+ name: "Enum",
+ allowedValues: ["infinite", "fixed"]
}
},
- skuName: {
- serializedName: "x-ms-sku-name",
- xmlName: "x-ms-sku-name",
+ publicAccess: {
+ serializedName: "PublicAccess",
+ xmlName: "PublicAccess",
type: {
name: "Enum",
- allowedValues: [
- "Standard_LRS",
- "Standard_GRS",
- "Standard_RAGRS",
- "Standard_ZRS",
- "Premium_LRS"
- ]
+ allowedValues: ["container", "blob"]
}
},
- accountKind: {
- serializedName: "x-ms-account-kind",
- xmlName: "x-ms-account-kind",
+ hasImmutabilityPolicy: {
+ serializedName: "HasImmutabilityPolicy",
+ xmlName: "HasImmutabilityPolicy",
type: {
- name: "Enum",
- allowedValues: [
- "Storage",
- "BlobStorage",
- "StorageV2",
- "FileStorage",
- "BlockBlobStorage"
- ]
+ name: "Boolean"
}
},
- isHierarchicalNamespaceEnabled: {
- serializedName: "x-ms-is-hns-enabled",
- xmlName: "x-ms-is-hns-enabled",
+ hasLegalHold: {
+ serializedName: "HasLegalHold",
+ xmlName: "HasLegalHold",
type: {
name: "Boolean"
}
},
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ defaultEncryptionScope: {
+ serializedName: "DefaultEncryptionScope",
+ xmlName: "DefaultEncryptionScope",
type: {
name: "String"
}
+ },
+ preventEncryptionScopeOverride: {
+ serializedName: "DenyEncryptionScopeOverride",
+ xmlName: "DenyEncryptionScopeOverride",
+ type: {
+ name: "Boolean"
+ }
+ },
+ deletedOn: {
+ serializedName: "DeletedTime",
+ xmlName: "DeletedTime",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ remainingRetentionDays: {
+ serializedName: "RemainingRetentionDays",
+ xmlName: "RemainingRetentionDays",
+ type: {
+ name: "Number"
+ }
+ },
+ isImmutableStorageWithVersioningEnabled: {
+ serializedName: "ImmutableStorageWithVersioningEnabled",
+ xmlName: "ImmutableStorageWithVersioningEnabled",
+ type: {
+ name: "Boolean"
+ }
}
}
}
};
-const ServiceGetAccountInfoExceptionHeaders = {
- serializedName: "Service_getAccountInfoExceptionHeaders",
+const KeyInfo = {
+ serializedName: "KeyInfo",
type: {
name: "Composite",
- className: "ServiceGetAccountInfoExceptionHeaders",
+ className: "KeyInfo",
modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ startsOn: {
+ serializedName: "Start",
+ required: true,
+ xmlName: "Start",
+ type: {
+ name: "String"
+ }
+ },
+ expiresOn: {
+ serializedName: "Expiry",
+ required: true,
+ xmlName: "Expiry",
type: {
name: "String"
}
@@ -24769,59 +24746,64 @@ const ServiceGetAccountInfoExceptionHeaders = {
}
}
};
-const ServiceSubmitBatchHeaders = {
- serializedName: "Service_submitBatchHeaders",
+const UserDelegationKey = {
+ serializedName: "UserDelegationKey",
type: {
name: "Composite",
- className: "ServiceSubmitBatchHeaders",
+ className: "UserDelegationKey",
modelProperties: {
- contentType: {
- serializedName: "content-type",
- xmlName: "content-type",
+ signedObjectId: {
+ serializedName: "SignedOid",
+ required: true,
+ xmlName: "SignedOid",
type: {
name: "String"
}
},
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ signedTenantId: {
+ serializedName: "SignedTid",
+ required: true,
+ xmlName: "SignedTid",
type: {
name: "String"
}
},
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ signedStartsOn: {
+ serializedName: "SignedStart",
+ required: true,
+ xmlName: "SignedStart",
type: {
name: "String"
}
},
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
+ signedExpiresOn: {
+ serializedName: "SignedExpiry",
+ required: true,
+ xmlName: "SignedExpiry",
type: {
name: "String"
}
},
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ signedService: {
+ serializedName: "SignedService",
+ required: true,
+ xmlName: "SignedService",
type: {
name: "String"
}
- }
- }
- }
-};
-const ServiceSubmitBatchExceptionHeaders = {
- serializedName: "Service_submitBatchExceptionHeaders",
- type: {
- name: "Composite",
- className: "ServiceSubmitBatchExceptionHeaders",
- modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ },
+ signedVersion: {
+ serializedName: "SignedVersion",
+ required: true,
+ xmlName: "SignedVersion",
+ type: {
+ name: "String"
+ }
+ },
+ value: {
+ serializedName: "Value",
+ required: true,
+ xmlName: "Value",
type: {
name: "String"
}
@@ -24829,43 +24811,49 @@ const ServiceSubmitBatchExceptionHeaders = {
}
}
};
-const ServiceFilterBlobsHeaders = {
- serializedName: "Service_filterBlobsHeaders",
+const FilterBlobSegment = {
+ serializedName: "FilterBlobSegment",
+ xmlName: "EnumerationResults",
type: {
name: "Composite",
- className: "ServiceFilterBlobsHeaders",
+ className: "FilterBlobSegment",
modelProperties: {
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
- type: {
- name: "String"
- }
- },
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ serviceEndpoint: {
+ serializedName: "ServiceEndpoint",
+ required: true,
+ xmlName: "ServiceEndpoint",
+ xmlIsAttribute: true,
type: {
name: "String"
}
},
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ where: {
+ serializedName: "Where",
+ required: true,
+ xmlName: "Where",
type: {
name: "String"
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
+ blobs: {
+ serializedName: "Blobs",
+ required: true,
+ xmlName: "Blobs",
+ xmlIsWrapped: true,
+ xmlElementName: "Blob",
type: {
- name: "DateTimeRfc1123"
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "FilterBlobItem"
+ }
+ }
}
},
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ continuationToken: {
+ serializedName: "NextMarker",
+ xmlName: "NextMarker",
type: {
name: "String"
}
@@ -24873,73 +24861,85 @@ const ServiceFilterBlobsHeaders = {
}
}
};
-const ServiceFilterBlobsExceptionHeaders = {
- serializedName: "Service_filterBlobsExceptionHeaders",
+const FilterBlobItem = {
+ serializedName: "FilterBlobItem",
+ xmlName: "Blob",
type: {
name: "Composite",
- className: "ServiceFilterBlobsExceptionHeaders",
+ className: "FilterBlobItem",
modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ name: {
+ serializedName: "Name",
+ required: true,
+ xmlName: "Name",
type: {
name: "String"
}
+ },
+ containerName: {
+ serializedName: "ContainerName",
+ required: true,
+ xmlName: "ContainerName",
+ type: {
+ name: "String"
+ }
+ },
+ tags: {
+ serializedName: "Tags",
+ xmlName: "Tags",
+ type: {
+ name: "Composite",
+ className: "BlobTags"
+ }
}
}
}
};
-const ContainerCreateHeaders = {
- serializedName: "Container_createHeaders",
+const BlobTags = {
+ serializedName: "BlobTags",
+ xmlName: "Tags",
type: {
name: "Composite",
- className: "ContainerCreateHeaders",
+ className: "BlobTags",
modelProperties: {
- etag: {
- serializedName: "etag",
- xmlName: "etag",
+ blobTagSet: {
+ serializedName: "BlobTagSet",
+ required: true,
+ xmlName: "TagSet",
+ xmlIsWrapped: true,
+ xmlElementName: "Tag",
type: {
- name: "String"
- }
- },
- lastModified: {
- serializedName: "last-modified",
- xmlName: "last-modified",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
- type: {
- name: "String"
- }
- },
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
- type: {
- name: "String"
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "BlobTag"
+ }
+ }
}
- },
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ }
+ }
+ }
+};
+const BlobTag = {
+ serializedName: "BlobTag",
+ xmlName: "Tag",
+ type: {
+ name: "Composite",
+ className: "BlobTag",
+ modelProperties: {
+ key: {
+ serializedName: "Key",
+ required: true,
+ xmlName: "Key",
type: {
name: "String"
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ value: {
+ serializedName: "Value",
+ required: true,
+ xmlName: "Value",
type: {
name: "String"
}
@@ -24947,155 +24947,119 @@ const ContainerCreateHeaders = {
}
}
};
-const ContainerCreateExceptionHeaders = {
- serializedName: "Container_createExceptionHeaders",
+const SignedIdentifier = {
+ serializedName: "SignedIdentifier",
+ xmlName: "SignedIdentifier",
type: {
name: "Composite",
- className: "ContainerCreateExceptionHeaders",
+ className: "SignedIdentifier",
modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ id: {
+ serializedName: "Id",
+ required: true,
+ xmlName: "Id",
type: {
name: "String"
}
+ },
+ accessPolicy: {
+ serializedName: "AccessPolicy",
+ xmlName: "AccessPolicy",
+ type: {
+ name: "Composite",
+ className: "AccessPolicy"
+ }
}
}
}
};
-const ContainerGetPropertiesHeaders = {
- serializedName: "Container_getPropertiesHeaders",
+const AccessPolicy = {
+ serializedName: "AccessPolicy",
type: {
name: "Composite",
- className: "ContainerGetPropertiesHeaders",
+ className: "AccessPolicy",
modelProperties: {
- metadata: {
- serializedName: "x-ms-meta",
- xmlName: "x-ms-meta",
- type: {
- name: "Dictionary",
- value: { type: { name: "String" } }
- },
- headerCollectionPrefix: "x-ms-meta-"
- },
- etag: {
- serializedName: "etag",
- xmlName: "etag",
+ startsOn: {
+ serializedName: "Start",
+ xmlName: "Start",
type: {
name: "String"
}
},
- lastModified: {
- serializedName: "last-modified",
- xmlName: "last-modified",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- leaseDuration: {
- serializedName: "x-ms-lease-duration",
- xmlName: "x-ms-lease-duration",
- type: {
- name: "Enum",
- allowedValues: ["infinite", "fixed"]
- }
- },
- leaseState: {
- serializedName: "x-ms-lease-state",
- xmlName: "x-ms-lease-state",
- type: {
- name: "Enum",
- allowedValues: [
- "available",
- "leased",
- "expired",
- "breaking",
- "broken"
- ]
- }
- },
- leaseStatus: {
- serializedName: "x-ms-lease-status",
- xmlName: "x-ms-lease-status",
- type: {
- name: "Enum",
- allowedValues: ["locked", "unlocked"]
- }
- },
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
+ expiresOn: {
+ serializedName: "Expiry",
+ xmlName: "Expiry",
type: {
name: "String"
}
},
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ permissions: {
+ serializedName: "Permission",
+ xmlName: "Permission",
type: {
name: "String"
}
- },
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ }
+ }
+ }
+};
+const ListBlobsFlatSegmentResponse = {
+ serializedName: "ListBlobsFlatSegmentResponse",
+ xmlName: "EnumerationResults",
+ type: {
+ name: "Composite",
+ className: "ListBlobsFlatSegmentResponse",
+ modelProperties: {
+ serviceEndpoint: {
+ serializedName: "ServiceEndpoint",
+ required: true,
+ xmlName: "ServiceEndpoint",
+ xmlIsAttribute: true,
type: {
name: "String"
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- blobPublicAccess: {
- serializedName: "x-ms-blob-public-access",
- xmlName: "x-ms-blob-public-access",
- type: {
- name: "Enum",
- allowedValues: ["container", "blob"]
- }
- },
- hasImmutabilityPolicy: {
- serializedName: "x-ms-has-immutability-policy",
- xmlName: "x-ms-has-immutability-policy",
+ containerName: {
+ serializedName: "ContainerName",
+ required: true,
+ xmlName: "ContainerName",
+ xmlIsAttribute: true,
type: {
- name: "Boolean"
+ name: "String"
}
},
- hasLegalHold: {
- serializedName: "x-ms-has-legal-hold",
- xmlName: "x-ms-has-legal-hold",
+ prefix: {
+ serializedName: "Prefix",
+ xmlName: "Prefix",
type: {
- name: "Boolean"
+ name: "String"
}
},
- defaultEncryptionScope: {
- serializedName: "x-ms-default-encryption-scope",
- xmlName: "x-ms-default-encryption-scope",
+ marker: {
+ serializedName: "Marker",
+ xmlName: "Marker",
type: {
name: "String"
}
},
- denyEncryptionScopeOverride: {
- serializedName: "x-ms-deny-encryption-scope-override",
- xmlName: "x-ms-deny-encryption-scope-override",
+ maxPageSize: {
+ serializedName: "MaxResults",
+ xmlName: "MaxResults",
type: {
- name: "Boolean"
+ name: "Number"
}
},
- isImmutableStorageWithVersioningEnabled: {
- serializedName: "x-ms-immutable-storage-with-versioning-enabled",
- xmlName: "x-ms-immutable-storage-with-versioning-enabled",
+ segment: {
+ serializedName: "Segment",
+ xmlName: "Blobs",
type: {
- name: "Boolean"
+ name: "Composite",
+ className: "BlobFlatListSegment"
}
},
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ continuationToken: {
+ serializedName: "NextMarker",
+ xmlName: "NextMarker",
type: {
name: "String"
}
@@ -25103,149 +25067,135 @@ const ContainerGetPropertiesHeaders = {
}
}
};
-const ContainerGetPropertiesExceptionHeaders = {
- serializedName: "Container_getPropertiesExceptionHeaders",
+const BlobFlatListSegment = {
+ serializedName: "BlobFlatListSegment",
+ xmlName: "Blobs",
type: {
name: "Composite",
- className: "ContainerGetPropertiesExceptionHeaders",
+ className: "BlobFlatListSegment",
modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ blobItems: {
+ serializedName: "BlobItems",
+ required: true,
+ xmlName: "BlobItems",
+ xmlElementName: "Blob",
type: {
- name: "String"
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "BlobItemInternal"
+ }
+ }
}
}
}
}
};
-const ContainerDeleteHeaders = {
- serializedName: "Container_deleteHeaders",
+const BlobItemInternal = {
+ serializedName: "BlobItemInternal",
+ xmlName: "Blob",
type: {
name: "Composite",
- className: "ContainerDeleteHeaders",
+ className: "BlobItemInternal",
modelProperties: {
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
+ name: {
+ serializedName: "Name",
+ xmlName: "Name",
type: {
- name: "String"
+ name: "Composite",
+ className: "BlobName"
}
},
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ deleted: {
+ serializedName: "Deleted",
+ required: true,
+ xmlName: "Deleted",
type: {
- name: "String"
+ name: "Boolean"
}
},
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ snapshot: {
+ serializedName: "Snapshot",
+ required: true,
+ xmlName: "Snapshot",
type: {
name: "String"
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
- type: {
- name: "String"
- }
- }
- }
- }
-};
-const ContainerDeleteExceptionHeaders = {
- serializedName: "Container_deleteExceptionHeaders",
- type: {
- name: "Composite",
- className: "ContainerDeleteExceptionHeaders",
- modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
- type: {
- name: "String"
- }
- }
- }
- }
-};
-const ContainerSetMetadataHeaders = {
- serializedName: "Container_setMetadataHeaders",
- type: {
- name: "Composite",
- className: "ContainerSetMetadataHeaders",
- modelProperties: {
- etag: {
- serializedName: "etag",
- xmlName: "etag",
+ versionId: {
+ serializedName: "VersionId",
+ xmlName: "VersionId",
type: {
name: "String"
}
},
- lastModified: {
- serializedName: "last-modified",
- xmlName: "last-modified",
+ isCurrentVersion: {
+ serializedName: "IsCurrentVersion",
+ xmlName: "IsCurrentVersion",
type: {
- name: "DateTimeRfc1123"
+ name: "Boolean"
}
},
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
+ properties: {
+ serializedName: "Properties",
+ xmlName: "Properties",
type: {
- name: "String"
+ name: "Composite",
+ className: "BlobPropertiesInternal"
}
},
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ metadata: {
+ serializedName: "Metadata",
+ xmlName: "Metadata",
type: {
- name: "String"
+ name: "Dictionary",
+ value: { type: { name: "String" } }
}
},
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ blobTags: {
+ serializedName: "BlobTags",
+ xmlName: "Tags",
type: {
- name: "String"
+ name: "Composite",
+ className: "BlobTags"
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
+ objectReplicationMetadata: {
+ serializedName: "ObjectReplicationMetadata",
+ xmlName: "OrMetadata",
type: {
- name: "DateTimeRfc1123"
+ name: "Dictionary",
+ value: { type: { name: "String" } }
}
},
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ hasVersionsOnly: {
+ serializedName: "HasVersionsOnly",
+ xmlName: "HasVersionsOnly",
type: {
- name: "String"
+ name: "Boolean"
}
}
}
}
};
-const ContainerSetMetadataExceptionHeaders = {
- serializedName: "Container_setMetadataExceptionHeaders",
+const BlobName = {
+ serializedName: "BlobName",
type: {
name: "Composite",
- className: "ContainerSetMetadataExceptionHeaders",
+ className: "BlobName",
modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ encoded: {
+ serializedName: "Encoded",
+ xmlName: "Encoded",
+ xmlIsAttribute: true,
+ type: {
+ name: "Boolean"
+ }
+ },
+ content: {
+ serializedName: "content",
+ xmlName: "content",
type: {
name: "String"
}
@@ -25253,663 +25203,823 @@ const ContainerSetMetadataExceptionHeaders = {
}
}
};
-const ContainerGetAccessPolicyHeaders = {
- serializedName: "Container_getAccessPolicyHeaders",
+const BlobPropertiesInternal = {
+ serializedName: "BlobPropertiesInternal",
+ xmlName: "Properties",
type: {
name: "Composite",
- className: "ContainerGetAccessPolicyHeaders",
+ className: "BlobPropertiesInternal",
modelProperties: {
- blobPublicAccess: {
- serializedName: "x-ms-blob-public-access",
- xmlName: "x-ms-blob-public-access",
+ createdOn: {
+ serializedName: "Creation-Time",
+ xmlName: "Creation-Time",
type: {
- name: "Enum",
- allowedValues: ["container", "blob"]
+ name: "DateTimeRfc1123"
+ }
+ },
+ lastModified: {
+ serializedName: "Last-Modified",
+ required: true,
+ xmlName: "Last-Modified",
+ type: {
+ name: "DateTimeRfc1123"
}
},
etag: {
- serializedName: "etag",
- xmlName: "etag",
+ serializedName: "Etag",
+ required: true,
+ xmlName: "Etag",
type: {
name: "String"
}
},
- lastModified: {
- serializedName: "last-modified",
- xmlName: "last-modified",
+ contentLength: {
+ serializedName: "Content-Length",
+ xmlName: "Content-Length",
type: {
- name: "DateTimeRfc1123"
+ name: "Number"
}
},
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
+ contentType: {
+ serializedName: "Content-Type",
+ xmlName: "Content-Type",
type: {
name: "String"
}
},
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ contentEncoding: {
+ serializedName: "Content-Encoding",
+ xmlName: "Content-Encoding",
type: {
name: "String"
}
},
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ contentLanguage: {
+ serializedName: "Content-Language",
+ xmlName: "Content-Language",
type: {
name: "String"
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
+ contentMD5: {
+ serializedName: "Content-MD5",
+ xmlName: "Content-MD5",
type: {
- name: "DateTimeRfc1123"
+ name: "ByteArray"
}
},
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
- type: {
- name: "String"
- }
- }
- }
- }
-};
-const ContainerGetAccessPolicyExceptionHeaders = {
- serializedName: "Container_getAccessPolicyExceptionHeaders",
- type: {
- name: "Composite",
- className: "ContainerGetAccessPolicyExceptionHeaders",
- modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ contentDisposition: {
+ serializedName: "Content-Disposition",
+ xmlName: "Content-Disposition",
type: {
name: "String"
}
- }
- }
- }
-};
-const ContainerSetAccessPolicyHeaders = {
- serializedName: "Container_setAccessPolicyHeaders",
- type: {
- name: "Composite",
- className: "ContainerSetAccessPolicyHeaders",
- modelProperties: {
- etag: {
- serializedName: "etag",
- xmlName: "etag",
+ },
+ cacheControl: {
+ serializedName: "Cache-Control",
+ xmlName: "Cache-Control",
type: {
name: "String"
}
},
- lastModified: {
- serializedName: "last-modified",
- xmlName: "last-modified",
+ blobSequenceNumber: {
+ serializedName: "x-ms-blob-sequence-number",
+ xmlName: "x-ms-blob-sequence-number",
type: {
- name: "DateTimeRfc1123"
+ name: "Number"
}
},
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
+ blobType: {
+ serializedName: "BlobType",
+ xmlName: "BlobType",
type: {
- name: "String"
+ name: "Enum",
+ allowedValues: ["BlockBlob", "PageBlob", "AppendBlob"]
}
},
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ leaseStatus: {
+ serializedName: "LeaseStatus",
+ xmlName: "LeaseStatus",
type: {
- name: "String"
+ name: "Enum",
+ allowedValues: ["locked", "unlocked"]
}
},
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ leaseState: {
+ serializedName: "LeaseState",
+ xmlName: "LeaseState",
type: {
- name: "String"
+ name: "Enum",
+ allowedValues: [
+ "available",
+ "leased",
+ "expired",
+ "breaking",
+ "broken"
+ ]
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
+ leaseDuration: {
+ serializedName: "LeaseDuration",
+ xmlName: "LeaseDuration",
type: {
- name: "DateTimeRfc1123"
+ name: "Enum",
+ allowedValues: ["infinite", "fixed"]
}
},
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
- type: {
- name: "String"
- }
- }
- }
- }
-};
-const ContainerSetAccessPolicyExceptionHeaders = {
- serializedName: "Container_setAccessPolicyExceptionHeaders",
- type: {
- name: "Composite",
- className: "ContainerSetAccessPolicyExceptionHeaders",
- modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ copyId: {
+ serializedName: "CopyId",
+ xmlName: "CopyId",
type: {
name: "String"
}
- }
- }
- }
-};
-const ContainerRestoreHeaders = {
- serializedName: "Container_restoreHeaders",
- type: {
- name: "Composite",
- className: "ContainerRestoreHeaders",
- modelProperties: {
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
+ },
+ copyStatus: {
+ serializedName: "CopyStatus",
+ xmlName: "CopyStatus",
type: {
- name: "String"
+ name: "Enum",
+ allowedValues: ["pending", "success", "aborted", "failed"]
}
},
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ copySource: {
+ serializedName: "CopySource",
+ xmlName: "CopySource",
type: {
name: "String"
}
},
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ copyProgress: {
+ serializedName: "CopyProgress",
+ xmlName: "CopyProgress",
type: {
name: "String"
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
+ copyCompletedOn: {
+ serializedName: "CopyCompletionTime",
+ xmlName: "CopyCompletionTime",
type: {
name: "DateTimeRfc1123"
}
},
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
- type: {
- name: "String"
- }
- }
- }
- }
-};
-const ContainerRestoreExceptionHeaders = {
- serializedName: "Container_restoreExceptionHeaders",
- type: {
- name: "Composite",
- className: "ContainerRestoreExceptionHeaders",
- modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ copyStatusDescription: {
+ serializedName: "CopyStatusDescription",
+ xmlName: "CopyStatusDescription",
type: {
name: "String"
}
- }
- }
- }
-};
-const ContainerRenameHeaders = {
- serializedName: "Container_renameHeaders",
- type: {
- name: "Composite",
- className: "ContainerRenameHeaders",
- modelProperties: {
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
+ },
+ serverEncrypted: {
+ serializedName: "ServerEncrypted",
+ xmlName: "ServerEncrypted",
type: {
- name: "String"
+ name: "Boolean"
}
},
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ incrementalCopy: {
+ serializedName: "IncrementalCopy",
+ xmlName: "IncrementalCopy",
type: {
- name: "String"
+ name: "Boolean"
}
},
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ destinationSnapshot: {
+ serializedName: "DestinationSnapshot",
+ xmlName: "DestinationSnapshot",
type: {
name: "String"
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
+ deletedOn: {
+ serializedName: "DeletedTime",
+ xmlName: "DeletedTime",
type: {
name: "DateTimeRfc1123"
}
},
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
- type: {
- name: "String"
- }
- }
- }
- }
-};
-const ContainerRenameExceptionHeaders = {
- serializedName: "Container_renameExceptionHeaders",
- type: {
- name: "Composite",
- className: "ContainerRenameExceptionHeaders",
- modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
- type: {
- name: "String"
- }
- }
- }
- }
-};
-const ContainerSubmitBatchHeaders = {
- serializedName: "Container_submitBatchHeaders",
- type: {
- name: "Composite",
- className: "ContainerSubmitBatchHeaders",
- modelProperties: {
- contentType: {
- serializedName: "content-type",
- xmlName: "content-type",
+ remainingRetentionDays: {
+ serializedName: "RemainingRetentionDays",
+ xmlName: "RemainingRetentionDays",
type: {
- name: "String"
+ name: "Number"
}
},
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ accessTier: {
+ serializedName: "AccessTier",
+ xmlName: "AccessTier",
type: {
- name: "String"
+ name: "Enum",
+ allowedValues: [
+ "P4",
+ "P6",
+ "P10",
+ "P15",
+ "P20",
+ "P30",
+ "P40",
+ "P50",
+ "P60",
+ "P70",
+ "P80",
+ "Hot",
+ "Cool",
+ "Archive"
+ ]
}
},
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
- type: {
- name: "String"
- }
- }
- }
- }
-};
-const ContainerSubmitBatchExceptionHeaders = {
- serializedName: "Container_submitBatchExceptionHeaders",
- type: {
- name: "Composite",
- className: "ContainerSubmitBatchExceptionHeaders",
- modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ accessTierInferred: {
+ serializedName: "AccessTierInferred",
+ xmlName: "AccessTierInferred",
type: {
- name: "String"
+ name: "Boolean"
}
- }
- }
- }
-};
-const ContainerFilterBlobsHeaders = {
- serializedName: "Container_filterBlobsHeaders",
- type: {
- name: "Composite",
- className: "ContainerFilterBlobsHeaders",
- modelProperties: {
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
+ },
+ archiveStatus: {
+ serializedName: "ArchiveStatus",
+ xmlName: "ArchiveStatus",
type: {
- name: "String"
+ name: "Enum",
+ allowedValues: [
+ "rehydrate-pending-to-hot",
+ "rehydrate-pending-to-cool"
+ ]
}
},
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ customerProvidedKeySha256: {
+ serializedName: "CustomerProvidedKeySha256",
+ xmlName: "CustomerProvidedKeySha256",
type: {
name: "String"
}
},
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ encryptionScope: {
+ serializedName: "EncryptionScope",
+ xmlName: "EncryptionScope",
type: {
name: "String"
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
+ accessTierChangedOn: {
+ serializedName: "AccessTierChangeTime",
+ xmlName: "AccessTierChangeTime",
type: {
name: "DateTimeRfc1123"
}
- }
- }
- }
-};
-const ContainerFilterBlobsExceptionHeaders = {
- serializedName: "Container_filterBlobsExceptionHeaders",
- type: {
- name: "Composite",
- className: "ContainerFilterBlobsExceptionHeaders",
- modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ },
+ tagCount: {
+ serializedName: "TagCount",
+ xmlName: "TagCount",
type: {
- name: "String"
+ name: "Number"
}
- }
- }
- }
-};
-const ContainerAcquireLeaseHeaders = {
- serializedName: "Container_acquireLeaseHeaders",
- type: {
- name: "Composite",
- className: "ContainerAcquireLeaseHeaders",
- modelProperties: {
- etag: {
- serializedName: "etag",
- xmlName: "etag",
+ },
+ expiresOn: {
+ serializedName: "Expiry-Time",
+ xmlName: "Expiry-Time",
type: {
- name: "String"
+ name: "DateTimeRfc1123"
}
},
- lastModified: {
- serializedName: "last-modified",
- xmlName: "last-modified",
+ isSealed: {
+ serializedName: "Sealed",
+ xmlName: "Sealed",
type: {
- name: "DateTimeRfc1123"
+ name: "Boolean"
}
},
- leaseId: {
- serializedName: "x-ms-lease-id",
- xmlName: "x-ms-lease-id",
+ rehydratePriority: {
+ serializedName: "RehydratePriority",
+ xmlName: "RehydratePriority",
type: {
- name: "String"
+ name: "Enum",
+ allowedValues: ["High", "Standard"]
}
},
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
+ lastAccessedOn: {
+ serializedName: "LastAccessTime",
+ xmlName: "LastAccessTime",
type: {
- name: "String"
+ name: "DateTimeRfc1123"
}
},
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ immutabilityPolicyExpiresOn: {
+ serializedName: "ImmutabilityPolicyUntilDate",
+ xmlName: "ImmutabilityPolicyUntilDate",
type: {
- name: "String"
+ name: "DateTimeRfc1123"
}
},
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ immutabilityPolicyMode: {
+ serializedName: "ImmutabilityPolicyMode",
+ xmlName: "ImmutabilityPolicyMode",
type: {
- name: "String"
+ name: "Enum",
+ allowedValues: ["Mutable", "Unlocked", "Locked"]
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
+ legalHold: {
+ serializedName: "LegalHold",
+ xmlName: "LegalHold",
type: {
- name: "DateTimeRfc1123"
+ name: "Boolean"
}
}
}
}
};
-const ContainerAcquireLeaseExceptionHeaders = {
- serializedName: "Container_acquireLeaseExceptionHeaders",
+const ListBlobsHierarchySegmentResponse = {
+ serializedName: "ListBlobsHierarchySegmentResponse",
+ xmlName: "EnumerationResults",
type: {
name: "Composite",
- className: "ContainerAcquireLeaseExceptionHeaders",
+ className: "ListBlobsHierarchySegmentResponse",
modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ serviceEndpoint: {
+ serializedName: "ServiceEndpoint",
+ required: true,
+ xmlName: "ServiceEndpoint",
+ xmlIsAttribute: true,
type: {
name: "String"
}
- }
- }
- }
-};
-const ContainerReleaseLeaseHeaders = {
- serializedName: "Container_releaseLeaseHeaders",
- type: {
- name: "Composite",
- className: "ContainerReleaseLeaseHeaders",
- modelProperties: {
- etag: {
- serializedName: "etag",
- xmlName: "etag",
+ },
+ containerName: {
+ serializedName: "ContainerName",
+ required: true,
+ xmlName: "ContainerName",
+ xmlIsAttribute: true,
type: {
name: "String"
}
},
- lastModified: {
- serializedName: "last-modified",
- xmlName: "last-modified",
+ prefix: {
+ serializedName: "Prefix",
+ xmlName: "Prefix",
type: {
- name: "DateTimeRfc1123"
+ name: "String"
}
},
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
+ marker: {
+ serializedName: "Marker",
+ xmlName: "Marker",
type: {
name: "String"
}
},
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ maxPageSize: {
+ serializedName: "MaxResults",
+ xmlName: "MaxResults",
type: {
- name: "String"
+ name: "Number"
}
},
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ delimiter: {
+ serializedName: "Delimiter",
+ xmlName: "Delimiter",
type: {
name: "String"
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
+ segment: {
+ serializedName: "Segment",
+ xmlName: "Blobs",
type: {
- name: "DateTimeRfc1123"
+ name: "Composite",
+ className: "BlobHierarchyListSegment"
+ }
+ },
+ continuationToken: {
+ serializedName: "NextMarker",
+ xmlName: "NextMarker",
+ type: {
+ name: "String"
}
}
}
}
};
-const ContainerReleaseLeaseExceptionHeaders = {
- serializedName: "Container_releaseLeaseExceptionHeaders",
+const BlobHierarchyListSegment = {
+ serializedName: "BlobHierarchyListSegment",
+ xmlName: "Blobs",
type: {
name: "Composite",
- className: "ContainerReleaseLeaseExceptionHeaders",
+ className: "BlobHierarchyListSegment",
modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ blobPrefixes: {
+ serializedName: "BlobPrefixes",
+ xmlName: "BlobPrefixes",
+ xmlElementName: "BlobPrefix",
type: {
- name: "String"
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "BlobPrefix"
+ }
+ }
+ }
+ },
+ blobItems: {
+ serializedName: "BlobItems",
+ required: true,
+ xmlName: "BlobItems",
+ xmlElementName: "Blob",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "BlobItemInternal"
+ }
+ }
}
}
}
}
};
-const ContainerRenewLeaseHeaders = {
- serializedName: "Container_renewLeaseHeaders",
+const BlobPrefix = {
+ serializedName: "BlobPrefix",
type: {
name: "Composite",
- className: "ContainerRenewLeaseHeaders",
+ className: "BlobPrefix",
modelProperties: {
- etag: {
- serializedName: "etag",
- xmlName: "etag",
+ name: {
+ serializedName: "Name",
+ xmlName: "Name",
type: {
- name: "String"
+ name: "Composite",
+ className: "BlobName"
+ }
+ }
+ }
+ }
+};
+const BlockLookupList = {
+ serializedName: "BlockLookupList",
+ xmlName: "BlockList",
+ type: {
+ name: "Composite",
+ className: "BlockLookupList",
+ modelProperties: {
+ committed: {
+ serializedName: "Committed",
+ xmlName: "Committed",
+ xmlElementName: "Committed",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "String"
+ }
+ }
}
},
- lastModified: {
- serializedName: "last-modified",
- xmlName: "last-modified",
+ uncommitted: {
+ serializedName: "Uncommitted",
+ xmlName: "Uncommitted",
+ xmlElementName: "Uncommitted",
type: {
- name: "DateTimeRfc1123"
+ name: "Sequence",
+ element: {
+ type: {
+ name: "String"
+ }
+ }
}
},
- leaseId: {
- serializedName: "x-ms-lease-id",
- xmlName: "x-ms-lease-id",
+ latest: {
+ serializedName: "Latest",
+ xmlName: "Latest",
+ xmlElementName: "Latest",
type: {
- name: "String"
+ name: "Sequence",
+ element: {
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+ }
+ }
+};
+const BlockList = {
+ serializedName: "BlockList",
+ type: {
+ name: "Composite",
+ className: "BlockList",
+ modelProperties: {
+ committedBlocks: {
+ serializedName: "CommittedBlocks",
+ xmlName: "CommittedBlocks",
+ xmlIsWrapped: true,
+ xmlElementName: "Block",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "Block"
+ }
+ }
}
},
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
+ uncommittedBlocks: {
+ serializedName: "UncommittedBlocks",
+ xmlName: "UncommittedBlocks",
+ xmlIsWrapped: true,
+ xmlElementName: "Block",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "Block"
+ }
+ }
+ }
+ }
+ }
+ }
+};
+const Block = {
+ serializedName: "Block",
+ type: {
+ name: "Composite",
+ className: "Block",
+ modelProperties: {
+ name: {
+ serializedName: "Name",
+ required: true,
+ xmlName: "Name",
type: {
name: "String"
}
},
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ size: {
+ serializedName: "Size",
+ required: true,
+ xmlName: "Size",
+ type: {
+ name: "Number"
+ }
+ }
+ }
+ }
+};
+const PageList = {
+ serializedName: "PageList",
+ type: {
+ name: "Composite",
+ className: "PageList",
+ modelProperties: {
+ pageRange: {
+ serializedName: "PageRange",
+ xmlName: "PageRange",
+ xmlElementName: "PageRange",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "PageRange"
+ }
+ }
+ }
+ },
+ clearRange: {
+ serializedName: "ClearRange",
+ xmlName: "ClearRange",
+ xmlElementName: "ClearRange",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "ClearRange"
+ }
+ }
+ }
+ }
+ }
+ }
+};
+const PageRange = {
+ serializedName: "PageRange",
+ xmlName: "PageRange",
+ type: {
+ name: "Composite",
+ className: "PageRange",
+ modelProperties: {
+ start: {
+ serializedName: "Start",
+ required: true,
+ xmlName: "Start",
+ type: {
+ name: "Number"
+ }
+ },
+ end: {
+ serializedName: "End",
+ required: true,
+ xmlName: "End",
+ type: {
+ name: "Number"
+ }
+ }
+ }
+ }
+};
+const ClearRange = {
+ serializedName: "ClearRange",
+ xmlName: "ClearRange",
+ type: {
+ name: "Composite",
+ className: "ClearRange",
+ modelProperties: {
+ start: {
+ serializedName: "Start",
+ required: true,
+ xmlName: "Start",
+ type: {
+ name: "Number"
+ }
+ },
+ end: {
+ serializedName: "End",
+ required: true,
+ xmlName: "End",
+ type: {
+ name: "Number"
+ }
+ }
+ }
+ }
+};
+const QueryRequest = {
+ serializedName: "QueryRequest",
+ xmlName: "QueryRequest",
+ type: {
+ name: "Composite",
+ className: "QueryRequest",
+ modelProperties: {
+ queryType: {
+ serializedName: "QueryType",
+ required: true,
+ xmlName: "QueryType",
type: {
name: "String"
}
},
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ expression: {
+ serializedName: "Expression",
+ required: true,
+ xmlName: "Expression",
type: {
name: "String"
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
+ inputSerialization: {
+ serializedName: "InputSerialization",
+ xmlName: "InputSerialization",
type: {
- name: "DateTimeRfc1123"
+ name: "Composite",
+ className: "QuerySerialization"
+ }
+ },
+ outputSerialization: {
+ serializedName: "OutputSerialization",
+ xmlName: "OutputSerialization",
+ type: {
+ name: "Composite",
+ className: "QuerySerialization"
}
}
}
}
};
-const ContainerRenewLeaseExceptionHeaders = {
- serializedName: "Container_renewLeaseExceptionHeaders",
+const QuerySerialization = {
+ serializedName: "QuerySerialization",
type: {
name: "Composite",
- className: "ContainerRenewLeaseExceptionHeaders",
+ className: "QuerySerialization",
modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ format: {
+ serializedName: "Format",
+ xmlName: "Format",
type: {
- name: "String"
+ name: "Composite",
+ className: "QueryFormat"
}
}
}
}
};
-const ContainerBreakLeaseHeaders = {
- serializedName: "Container_breakLeaseHeaders",
+const QueryFormat = {
+ serializedName: "QueryFormat",
type: {
name: "Composite",
- className: "ContainerBreakLeaseHeaders",
+ className: "QueryFormat",
modelProperties: {
- etag: {
- serializedName: "etag",
- xmlName: "etag",
+ type: {
+ serializedName: "Type",
+ required: true,
+ xmlName: "Type",
type: {
- name: "String"
+ name: "Enum",
+ allowedValues: ["delimited", "json", "arrow", "parquet"]
}
},
- lastModified: {
- serializedName: "last-modified",
- xmlName: "last-modified",
+ delimitedTextConfiguration: {
+ serializedName: "DelimitedTextConfiguration",
+ xmlName: "DelimitedTextConfiguration",
type: {
- name: "DateTimeRfc1123"
+ name: "Composite",
+ className: "DelimitedTextConfiguration"
}
},
- leaseTime: {
- serializedName: "x-ms-lease-time",
- xmlName: "x-ms-lease-time",
+ jsonTextConfiguration: {
+ serializedName: "JsonTextConfiguration",
+ xmlName: "JsonTextConfiguration",
type: {
- name: "Number"
+ name: "Composite",
+ className: "JsonTextConfiguration"
}
},
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
+ arrowConfiguration: {
+ serializedName: "ArrowConfiguration",
+ xmlName: "ArrowConfiguration",
+ type: {
+ name: "Composite",
+ className: "ArrowConfiguration"
+ }
+ },
+ parquetTextConfiguration: {
+ serializedName: "ParquetTextConfiguration",
+ xmlName: "ParquetTextConfiguration",
+ type: {
+ name: "any"
+ }
+ }
+ }
+ }
+};
+const DelimitedTextConfiguration = {
+ serializedName: "DelimitedTextConfiguration",
+ xmlName: "DelimitedTextConfiguration",
+ type: {
+ name: "Composite",
+ className: "DelimitedTextConfiguration",
+ modelProperties: {
+ columnSeparator: {
+ serializedName: "ColumnSeparator",
+ xmlName: "ColumnSeparator",
type: {
name: "String"
}
},
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ fieldQuote: {
+ serializedName: "FieldQuote",
+ xmlName: "FieldQuote",
type: {
name: "String"
}
},
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ recordSeparator: {
+ serializedName: "RecordSeparator",
+ xmlName: "RecordSeparator",
type: {
name: "String"
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
+ escapeChar: {
+ serializedName: "EscapeChar",
+ xmlName: "EscapeChar",
type: {
- name: "DateTimeRfc1123"
+ name: "String"
+ }
+ },
+ headersPresent: {
+ serializedName: "HeadersPresent",
+ xmlName: "HasHeaders",
+ type: {
+ name: "Boolean"
}
}
}
}
};
-const ContainerBreakLeaseExceptionHeaders = {
- serializedName: "Container_breakLeaseExceptionHeaders",
+const JsonTextConfiguration = {
+ serializedName: "JsonTextConfiguration",
+ xmlName: "JsonTextConfiguration",
type: {
name: "Composite",
- className: "ContainerBreakLeaseExceptionHeaders",
+ className: "JsonTextConfiguration",
modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ recordSeparator: {
+ serializedName: "RecordSeparator",
+ xmlName: "RecordSeparator",
type: {
name: "String"
}
@@ -25917,33 +26027,77 @@ const ContainerBreakLeaseExceptionHeaders = {
}
}
};
-const ContainerChangeLeaseHeaders = {
- serializedName: "Container_changeLeaseHeaders",
+const ArrowConfiguration = {
+ serializedName: "ArrowConfiguration",
+ xmlName: "ArrowConfiguration",
type: {
name: "Composite",
- className: "ContainerChangeLeaseHeaders",
+ className: "ArrowConfiguration",
modelProperties: {
- etag: {
- serializedName: "etag",
- xmlName: "etag",
+ schema: {
+ serializedName: "Schema",
+ required: true,
+ xmlName: "Schema",
+ xmlIsWrapped: true,
+ xmlElementName: "Field",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "ArrowField"
+ }
+ }
+ }
+ }
+ }
+ }
+};
+const ArrowField = {
+ serializedName: "ArrowField",
+ xmlName: "Field",
+ type: {
+ name: "Composite",
+ className: "ArrowField",
+ modelProperties: {
+ type: {
+ serializedName: "Type",
+ required: true,
+ xmlName: "Type",
type: {
name: "String"
}
},
- lastModified: {
- serializedName: "last-modified",
- xmlName: "last-modified",
+ name: {
+ serializedName: "Name",
+ xmlName: "Name",
type: {
- name: "DateTimeRfc1123"
+ name: "String"
}
},
- leaseId: {
- serializedName: "x-ms-lease-id",
- xmlName: "x-ms-lease-id",
+ precision: {
+ serializedName: "Precision",
+ xmlName: "Precision",
type: {
- name: "String"
+ name: "Number"
}
},
+ scale: {
+ serializedName: "Scale",
+ xmlName: "Scale",
+ type: {
+ name: "Number"
+ }
+ }
+ }
+ }
+};
+const ServiceSetPropertiesHeaders = {
+ serializedName: "Service_setPropertiesHeaders",
+ type: {
+ name: "Composite",
+ className: "ServiceSetPropertiesHeaders",
+ modelProperties: {
clientRequestId: {
serializedName: "x-ms-client-request-id",
xmlName: "x-ms-client-request-id",
@@ -25965,21 +26119,21 @@ const ContainerChangeLeaseHeaders = {
name: "String"
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
type: {
- name: "DateTimeRfc1123"
+ name: "String"
}
}
}
}
};
-const ContainerChangeLeaseExceptionHeaders = {
- serializedName: "Container_changeLeaseExceptionHeaders",
+const ServiceSetPropertiesExceptionHeaders = {
+ serializedName: "Service_setPropertiesExceptionHeaders",
type: {
name: "Composite",
- className: "ContainerChangeLeaseExceptionHeaders",
+ className: "ServiceSetPropertiesExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -25991,19 +26145,12 @@ const ContainerChangeLeaseExceptionHeaders = {
}
}
};
-const ContainerListBlobFlatSegmentHeaders = {
- serializedName: "Container_listBlobFlatSegmentHeaders",
+const ServiceGetPropertiesHeaders = {
+ serializedName: "Service_getPropertiesHeaders",
type: {
name: "Composite",
- className: "ContainerListBlobFlatSegmentHeaders",
+ className: "ServiceGetPropertiesHeaders",
modelProperties: {
- contentType: {
- serializedName: "content-type",
- xmlName: "content-type",
- type: {
- name: "String"
- }
- },
clientRequestId: {
serializedName: "x-ms-client-request-id",
xmlName: "x-ms-client-request-id",
@@ -26025,13 +26172,6 @@ const ContainerListBlobFlatSegmentHeaders = {
name: "String"
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
- type: {
- name: "DateTimeRfc1123"
- }
- },
errorCode: {
serializedName: "x-ms-error-code",
xmlName: "x-ms-error-code",
@@ -26042,11 +26182,11 @@ const ContainerListBlobFlatSegmentHeaders = {
}
}
};
-const ContainerListBlobFlatSegmentExceptionHeaders = {
- serializedName: "Container_listBlobFlatSegmentExceptionHeaders",
+const ServiceGetPropertiesExceptionHeaders = {
+ serializedName: "Service_getPropertiesExceptionHeaders",
type: {
name: "Composite",
- className: "ContainerListBlobFlatSegmentExceptionHeaders",
+ className: "ServiceGetPropertiesExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -26058,19 +26198,12 @@ const ContainerListBlobFlatSegmentExceptionHeaders = {
}
}
};
-const ContainerListBlobHierarchySegmentHeaders = {
- serializedName: "Container_listBlobHierarchySegmentHeaders",
+const ServiceGetStatisticsHeaders = {
+ serializedName: "Service_getStatisticsHeaders",
type: {
name: "Composite",
- className: "ContainerListBlobHierarchySegmentHeaders",
+ className: "ServiceGetStatisticsHeaders",
modelProperties: {
- contentType: {
- serializedName: "content-type",
- xmlName: "content-type",
- type: {
- name: "String"
- }
- },
clientRequestId: {
serializedName: "x-ms-client-request-id",
xmlName: "x-ms-client-request-id",
@@ -26109,11 +26242,11 @@ const ContainerListBlobHierarchySegmentHeaders = {
}
}
};
-const ContainerListBlobHierarchySegmentExceptionHeaders = {
- serializedName: "Container_listBlobHierarchySegmentExceptionHeaders",
+const ServiceGetStatisticsExceptionHeaders = {
+ serializedName: "Service_getStatisticsExceptionHeaders",
type: {
name: "Composite",
- className: "ContainerListBlobHierarchySegmentExceptionHeaders",
+ className: "ServiceGetStatisticsExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -26125,11 +26258,11 @@ const ContainerListBlobHierarchySegmentExceptionHeaders = {
}
}
};
-const ContainerGetAccountInfoHeaders = {
- serializedName: "Container_getAccountInfoHeaders",
+const ServiceListContainersSegmentHeaders = {
+ serializedName: "Service_listContainersSegmentHeaders",
type: {
name: "Composite",
- className: "ContainerGetAccountInfoHeaders",
+ className: "ServiceListContainersSegmentHeaders",
modelProperties: {
clientRequestId: {
serializedName: "x-ms-client-request-id",
@@ -26152,11 +26285,124 @@ const ContainerGetAccountInfoHeaders = {
name: "String"
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
type: {
- name: "DateTimeRfc1123"
+ name: "String"
+ }
+ }
+ }
+ }
+};
+const ServiceListContainersSegmentExceptionHeaders = {
+ serializedName: "Service_listContainersSegmentExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "ServiceListContainersSegmentExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+const ServiceGetUserDelegationKeyHeaders = {
+ serializedName: "Service_getUserDelegationKeyHeaders",
+ type: {
+ name: "Composite",
+ className: "ServiceGetUserDelegationKeyHeaders",
+ modelProperties: {
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
+ type: {
+ name: "String"
+ }
+ },
+ date: {
+ serializedName: "date",
+ xmlName: "date",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+const ServiceGetUserDelegationKeyExceptionHeaders = {
+ serializedName: "Service_getUserDelegationKeyExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "ServiceGetUserDelegationKeyExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+const ServiceGetAccountInfoHeaders = {
+ serializedName: "Service_getAccountInfoHeaders",
+ type: {
+ name: "Composite",
+ className: "ServiceGetAccountInfoHeaders",
+ modelProperties: {
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
+ type: {
+ name: "String"
+ }
+ },
+ date: {
+ serializedName: "date",
+ xmlName: "date",
+ type: {
+ name: "DateTimeRfc1123"
}
},
skuName: {
@@ -26186,15 +26432,29 @@ const ContainerGetAccountInfoHeaders = {
"BlockBlobStorage"
]
}
+ },
+ isHierarchicalNamespaceEnabled: {
+ serializedName: "x-ms-is-hns-enabled",
+ xmlName: "x-ms-is-hns-enabled",
+ type: {
+ name: "Boolean"
+ }
+ },
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
}
}
}
};
-const ContainerGetAccountInfoExceptionHeaders = {
- serializedName: "Container_getAccountInfoExceptionHeaders",
+const ServiceGetAccountInfoExceptionHeaders = {
+ serializedName: "Service_getAccountInfoExceptionHeaders",
type: {
name: "Composite",
- className: "ContainerGetAccountInfoExceptionHeaders",
+ className: "ServiceGetAccountInfoExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -26206,170 +26466,227 @@ const ContainerGetAccountInfoExceptionHeaders = {
}
}
};
-const BlobDownloadHeaders = {
- serializedName: "Blob_downloadHeaders",
+const ServiceSubmitBatchHeaders = {
+ serializedName: "Service_submitBatchHeaders",
type: {
name: "Composite",
- className: "BlobDownloadHeaders",
+ className: "ServiceSubmitBatchHeaders",
modelProperties: {
- lastModified: {
- serializedName: "last-modified",
- xmlName: "last-modified",
+ contentType: {
+ serializedName: "content-type",
+ xmlName: "content-type",
type: {
- name: "DateTimeRfc1123"
+ name: "String"
}
},
- createdOn: {
- serializedName: "x-ms-creation-time",
- xmlName: "x-ms-creation-time",
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
type: {
- name: "DateTimeRfc1123"
+ name: "String"
}
},
- metadata: {
- serializedName: "x-ms-meta",
- xmlName: "x-ms-meta",
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
type: {
- name: "Dictionary",
- value: { type: { name: "String" } }
- },
- headerCollectionPrefix: "x-ms-meta-"
+ name: "String"
+ }
},
- objectReplicationPolicyId: {
- serializedName: "x-ms-or-policy-id",
- xmlName: "x-ms-or-policy-id",
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
type: {
name: "String"
}
},
- objectReplicationRules: {
- serializedName: "x-ms-or",
- xmlName: "x-ms-or",
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
type: {
- name: "Dictionary",
- value: { type: { name: "String" } }
- },
- headerCollectionPrefix: "x-ms-or-"
- },
- contentLength: {
- serializedName: "content-length",
- xmlName: "content-length",
+ name: "String"
+ }
+ }
+ }
+ }
+};
+const ServiceSubmitBatchExceptionHeaders = {
+ serializedName: "Service_submitBatchExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "ServiceSubmitBatchExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
type: {
- name: "Number"
+ name: "String"
}
- },
- contentType: {
- serializedName: "content-type",
- xmlName: "content-type",
+ }
+ }
+ }
+};
+const ServiceFilterBlobsHeaders = {
+ serializedName: "Service_filterBlobsHeaders",
+ type: {
+ name: "Composite",
+ className: "ServiceFilterBlobsHeaders",
+ modelProperties: {
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
type: {
name: "String"
}
},
- contentRange: {
- serializedName: "content-range",
- xmlName: "content-range",
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
type: {
name: "String"
}
},
- etag: {
- serializedName: "etag",
- xmlName: "etag",
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
type: {
name: "String"
}
},
- contentMD5: {
- serializedName: "content-md5",
- xmlName: "content-md5",
+ date: {
+ serializedName: "date",
+ xmlName: "date",
type: {
- name: "ByteArray"
+ name: "DateTimeRfc1123"
}
},
- contentEncoding: {
- serializedName: "content-encoding",
- xmlName: "content-encoding",
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
type: {
name: "String"
}
- },
- cacheControl: {
- serializedName: "cache-control",
- xmlName: "cache-control",
+ }
+ }
+ }
+};
+const ServiceFilterBlobsExceptionHeaders = {
+ serializedName: "Service_filterBlobsExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "ServiceFilterBlobsExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
type: {
name: "String"
}
- },
- contentDisposition: {
- serializedName: "content-disposition",
- xmlName: "content-disposition",
+ }
+ }
+ }
+};
+const ContainerCreateHeaders = {
+ serializedName: "Container_createHeaders",
+ type: {
+ name: "Composite",
+ className: "ContainerCreateHeaders",
+ modelProperties: {
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
type: {
name: "String"
}
},
- contentLanguage: {
- serializedName: "content-language",
- xmlName: "content-language",
+ lastModified: {
+ serializedName: "last-modified",
+ xmlName: "last-modified",
type: {
- name: "String"
+ name: "DateTimeRfc1123"
}
},
- blobSequenceNumber: {
- serializedName: "x-ms-blob-sequence-number",
- xmlName: "x-ms-blob-sequence-number",
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
type: {
- name: "Number"
+ name: "String"
}
},
- blobType: {
- serializedName: "x-ms-blob-type",
- xmlName: "x-ms-blob-type",
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
type: {
- name: "Enum",
- allowedValues: ["BlockBlob", "PageBlob", "AppendBlob"]
+ name: "String"
}
},
- copyCompletedOn: {
- serializedName: "x-ms-copy-completion-time",
- xmlName: "x-ms-copy-completion-time",
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
type: {
- name: "DateTimeRfc1123"
+ name: "String"
}
},
- copyStatusDescription: {
- serializedName: "x-ms-copy-status-description",
- xmlName: "x-ms-copy-status-description",
+ date: {
+ serializedName: "date",
+ xmlName: "date",
type: {
- name: "String"
+ name: "DateTimeRfc1123"
}
},
- copyId: {
- serializedName: "x-ms-copy-id",
- xmlName: "x-ms-copy-id",
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
type: {
name: "String"
}
- },
- copyProgress: {
- serializedName: "x-ms-copy-progress",
- xmlName: "x-ms-copy-progress",
+ }
+ }
+ }
+};
+const ContainerCreateExceptionHeaders = {
+ serializedName: "Container_createExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "ContainerCreateExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
type: {
name: "String"
}
+ }
+ }
+ }
+};
+const ContainerGetPropertiesHeaders = {
+ serializedName: "Container_getPropertiesHeaders",
+ type: {
+ name: "Composite",
+ className: "ContainerGetPropertiesHeaders",
+ modelProperties: {
+ metadata: {
+ serializedName: "x-ms-meta",
+ xmlName: "x-ms-meta",
+ type: {
+ name: "Dictionary",
+ value: { type: { name: "String" } }
+ },
+ headerCollectionPrefix: "x-ms-meta-"
},
- copySource: {
- serializedName: "x-ms-copy-source",
- xmlName: "x-ms-copy-source",
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
type: {
name: "String"
}
},
- copyStatus: {
- serializedName: "x-ms-copy-status",
- xmlName: "x-ms-copy-status",
+ lastModified: {
+ serializedName: "last-modified",
+ xmlName: "last-modified",
type: {
- name: "Enum",
- allowedValues: ["pending", "success", "aborted", "failed"]
+ name: "DateTimeRfc1123"
}
},
leaseDuration: {
@@ -26423,27 +26740,6 @@ const BlobDownloadHeaders = {
name: "String"
}
},
- versionId: {
- serializedName: "x-ms-version-id",
- xmlName: "x-ms-version-id",
- type: {
- name: "String"
- }
- },
- isCurrentVersion: {
- serializedName: "x-ms-is-current-version",
- xmlName: "x-ms-is-current-version",
- type: {
- name: "Boolean"
- }
- },
- acceptRanges: {
- serializedName: "accept-ranges",
- xmlName: "accept-ranges",
- type: {
- name: "String"
- }
- },
date: {
serializedName: "date",
xmlName: "date",
@@ -26451,80 +26747,45 @@ const BlobDownloadHeaders = {
name: "DateTimeRfc1123"
}
},
- blobCommittedBlockCount: {
- serializedName: "x-ms-blob-committed-block-count",
- xmlName: "x-ms-blob-committed-block-count",
+ blobPublicAccess: {
+ serializedName: "x-ms-blob-public-access",
+ xmlName: "x-ms-blob-public-access",
type: {
- name: "Number"
+ name: "Enum",
+ allowedValues: ["container", "blob"]
}
},
- isServerEncrypted: {
- serializedName: "x-ms-server-encrypted",
- xmlName: "x-ms-server-encrypted",
+ hasImmutabilityPolicy: {
+ serializedName: "x-ms-has-immutability-policy",
+ xmlName: "x-ms-has-immutability-policy",
type: {
name: "Boolean"
}
},
- encryptionKeySha256: {
- serializedName: "x-ms-encryption-key-sha256",
- xmlName: "x-ms-encryption-key-sha256",
+ hasLegalHold: {
+ serializedName: "x-ms-has-legal-hold",
+ xmlName: "x-ms-has-legal-hold",
type: {
- name: "String"
+ name: "Boolean"
}
},
- encryptionScope: {
- serializedName: "x-ms-encryption-scope",
- xmlName: "x-ms-encryption-scope",
+ defaultEncryptionScope: {
+ serializedName: "x-ms-default-encryption-scope",
+ xmlName: "x-ms-default-encryption-scope",
type: {
name: "String"
}
},
- blobContentMD5: {
- serializedName: "x-ms-blob-content-md5",
- xmlName: "x-ms-blob-content-md5",
- type: {
- name: "ByteArray"
- }
- },
- tagCount: {
- serializedName: "x-ms-tag-count",
- xmlName: "x-ms-tag-count",
- type: {
- name: "Number"
- }
- },
- isSealed: {
- serializedName: "x-ms-blob-sealed",
- xmlName: "x-ms-blob-sealed",
+ denyEncryptionScopeOverride: {
+ serializedName: "x-ms-deny-encryption-scope-override",
+ xmlName: "x-ms-deny-encryption-scope-override",
type: {
name: "Boolean"
}
},
- lastAccessed: {
- serializedName: "x-ms-last-access-time",
- xmlName: "x-ms-last-access-time",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- immutabilityPolicyExpiresOn: {
- serializedName: "x-ms-immutability-policy-until-date",
- xmlName: "x-ms-immutability-policy-until-date",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- immutabilityPolicyMode: {
- serializedName: "x-ms-immutability-policy-mode",
- xmlName: "x-ms-immutability-policy-mode",
- type: {
- name: "Enum",
- allowedValues: ["Mutable", "Unlocked", "Locked"]
- }
- },
- legalHold: {
- serializedName: "x-ms-legal-hold",
- xmlName: "x-ms-legal-hold",
+ isImmutableStorageWithVersioningEnabled: {
+ serializedName: "x-ms-immutable-storage-with-versioning-enabled",
+ xmlName: "x-ms-immutable-storage-with-versioning-enabled",
type: {
name: "Boolean"
}
@@ -26535,22 +26796,15 @@ const BlobDownloadHeaders = {
type: {
name: "String"
}
- },
- contentCrc64: {
- serializedName: "x-ms-content-crc64",
- xmlName: "x-ms-content-crc64",
- type: {
- name: "ByteArray"
- }
}
}
}
};
-const BlobDownloadExceptionHeaders = {
- serializedName: "Blob_downloadExceptionHeaders",
+const ContainerGetPropertiesExceptionHeaders = {
+ serializedName: "Container_getPropertiesExceptionHeaders",
type: {
name: "Composite",
- className: "BlobDownloadExceptionHeaders",
+ className: "ContainerGetPropertiesExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -26562,207 +26816,166 @@ const BlobDownloadExceptionHeaders = {
}
}
};
-const BlobGetPropertiesHeaders = {
- serializedName: "Blob_getPropertiesHeaders",
+const ContainerDeleteHeaders = {
+ serializedName: "Container_deleteHeaders",
type: {
name: "Composite",
- className: "BlobGetPropertiesHeaders",
+ className: "ContainerDeleteHeaders",
modelProperties: {
- lastModified: {
- serializedName: "last-modified",
- xmlName: "last-modified",
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
type: {
- name: "DateTimeRfc1123"
+ name: "String"
}
},
- createdOn: {
- serializedName: "x-ms-creation-time",
- xmlName: "x-ms-creation-time",
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
type: {
- name: "DateTimeRfc1123"
+ name: "String"
}
},
- metadata: {
- serializedName: "x-ms-meta",
- xmlName: "x-ms-meta",
- type: {
- name: "Dictionary",
- value: { type: { name: "String" } }
- },
- headerCollectionPrefix: "x-ms-meta-"
- },
- objectReplicationPolicyId: {
- serializedName: "x-ms-or-policy-id",
- xmlName: "x-ms-or-policy-id",
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
type: {
name: "String"
}
},
- objectReplicationRules: {
- serializedName: "x-ms-or",
- xmlName: "x-ms-or",
- type: {
- name: "Dictionary",
- value: { type: { name: "String" } }
- },
- headerCollectionPrefix: "x-ms-or-"
- },
- blobType: {
- serializedName: "x-ms-blob-type",
- xmlName: "x-ms-blob-type",
- type: {
- name: "Enum",
- allowedValues: ["BlockBlob", "PageBlob", "AppendBlob"]
- }
- },
- copyCompletedOn: {
- serializedName: "x-ms-copy-completion-time",
- xmlName: "x-ms-copy-completion-time",
+ date: {
+ serializedName: "date",
+ xmlName: "date",
type: {
name: "DateTimeRfc1123"
}
},
- copyStatusDescription: {
- serializedName: "x-ms-copy-status-description",
- xmlName: "x-ms-copy-status-description",
- type: {
- name: "String"
- }
- },
- copyId: {
- serializedName: "x-ms-copy-id",
- xmlName: "x-ms-copy-id",
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
type: {
name: "String"
}
- },
- copyProgress: {
- serializedName: "x-ms-copy-progress",
- xmlName: "x-ms-copy-progress",
+ }
+ }
+ }
+};
+const ContainerDeleteExceptionHeaders = {
+ serializedName: "Container_deleteExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "ContainerDeleteExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
type: {
name: "String"
}
- },
- copySource: {
- serializedName: "x-ms-copy-source",
- xmlName: "x-ms-copy-source",
+ }
+ }
+ }
+};
+const ContainerSetMetadataHeaders = {
+ serializedName: "Container_setMetadataHeaders",
+ type: {
+ name: "Composite",
+ className: "ContainerSetMetadataHeaders",
+ modelProperties: {
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
type: {
name: "String"
}
},
- copyStatus: {
- serializedName: "x-ms-copy-status",
- xmlName: "x-ms-copy-status",
- type: {
- name: "Enum",
- allowedValues: ["pending", "success", "aborted", "failed"]
- }
- },
- isIncrementalCopy: {
- serializedName: "x-ms-incremental-copy",
- xmlName: "x-ms-incremental-copy",
+ lastModified: {
+ serializedName: "last-modified",
+ xmlName: "last-modified",
type: {
- name: "Boolean"
+ name: "DateTimeRfc1123"
}
},
- destinationSnapshot: {
- serializedName: "x-ms-copy-destination-snapshot",
- xmlName: "x-ms-copy-destination-snapshot",
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
type: {
name: "String"
}
},
- leaseDuration: {
- serializedName: "x-ms-lease-duration",
- xmlName: "x-ms-lease-duration",
- type: {
- name: "Enum",
- allowedValues: ["infinite", "fixed"]
- }
- },
- leaseState: {
- serializedName: "x-ms-lease-state",
- xmlName: "x-ms-lease-state",
- type: {
- name: "Enum",
- allowedValues: [
- "available",
- "leased",
- "expired",
- "breaking",
- "broken"
- ]
- }
- },
- leaseStatus: {
- serializedName: "x-ms-lease-status",
- xmlName: "x-ms-lease-status",
- type: {
- name: "Enum",
- allowedValues: ["locked", "unlocked"]
- }
- },
- contentLength: {
- serializedName: "content-length",
- xmlName: "content-length",
- type: {
- name: "Number"
- }
- },
- contentType: {
- serializedName: "content-type",
- xmlName: "content-type",
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
type: {
name: "String"
}
},
- etag: {
- serializedName: "etag",
- xmlName: "etag",
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
type: {
name: "String"
}
},
- contentMD5: {
- serializedName: "content-md5",
- xmlName: "content-md5",
+ date: {
+ serializedName: "date",
+ xmlName: "date",
type: {
- name: "ByteArray"
+ name: "DateTimeRfc1123"
}
},
- contentEncoding: {
- serializedName: "content-encoding",
- xmlName: "content-encoding",
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
type: {
name: "String"
}
- },
- contentDisposition: {
- serializedName: "content-disposition",
- xmlName: "content-disposition",
+ }
+ }
+ }
+};
+const ContainerSetMetadataExceptionHeaders = {
+ serializedName: "Container_setMetadataExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "ContainerSetMetadataExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
type: {
name: "String"
}
- },
- contentLanguage: {
- serializedName: "content-language",
- xmlName: "content-language",
+ }
+ }
+ }
+};
+const ContainerGetAccessPolicyHeaders = {
+ serializedName: "Container_getAccessPolicyHeaders",
+ type: {
+ name: "Composite",
+ className: "ContainerGetAccessPolicyHeaders",
+ modelProperties: {
+ blobPublicAccess: {
+ serializedName: "x-ms-blob-public-access",
+ xmlName: "x-ms-blob-public-access",
type: {
- name: "String"
+ name: "Enum",
+ allowedValues: ["container", "blob"]
}
},
- cacheControl: {
- serializedName: "cache-control",
- xmlName: "cache-control",
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
type: {
name: "String"
}
},
- blobSequenceNumber: {
- serializedName: "x-ms-blob-sequence-number",
- xmlName: "x-ms-blob-sequence-number",
+ lastModified: {
+ serializedName: "last-modified",
+ xmlName: "last-modified",
type: {
- name: "Number"
+ name: "DateTimeRfc1123"
}
},
clientRequestId: {
@@ -26793,141 +27006,80 @@ const BlobGetPropertiesHeaders = {
name: "DateTimeRfc1123"
}
},
- acceptRanges: {
- serializedName: "accept-ranges",
- xmlName: "accept-ranges",
- type: {
- name: "String"
- }
- },
- blobCommittedBlockCount: {
- serializedName: "x-ms-blob-committed-block-count",
- xmlName: "x-ms-blob-committed-block-count",
- type: {
- name: "Number"
- }
- },
- isServerEncrypted: {
- serializedName: "x-ms-server-encrypted",
- xmlName: "x-ms-server-encrypted",
- type: {
- name: "Boolean"
- }
- },
- encryptionKeySha256: {
- serializedName: "x-ms-encryption-key-sha256",
- xmlName: "x-ms-encryption-key-sha256",
- type: {
- name: "String"
- }
- },
- encryptionScope: {
- serializedName: "x-ms-encryption-scope",
- xmlName: "x-ms-encryption-scope",
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
type: {
name: "String"
}
- },
- accessTier: {
- serializedName: "x-ms-access-tier",
- xmlName: "x-ms-access-tier",
+ }
+ }
+ }
+};
+const ContainerGetAccessPolicyExceptionHeaders = {
+ serializedName: "Container_getAccessPolicyExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "ContainerGetAccessPolicyExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
type: {
name: "String"
}
- },
- accessTierInferred: {
- serializedName: "x-ms-access-tier-inferred",
- xmlName: "x-ms-access-tier-inferred",
- type: {
- name: "Boolean"
- }
- },
- archiveStatus: {
- serializedName: "x-ms-archive-status",
- xmlName: "x-ms-archive-status",
+ }
+ }
+ }
+};
+const ContainerSetAccessPolicyHeaders = {
+ serializedName: "Container_setAccessPolicyHeaders",
+ type: {
+ name: "Composite",
+ className: "ContainerSetAccessPolicyHeaders",
+ modelProperties: {
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
type: {
name: "String"
}
},
- accessTierChangedOn: {
- serializedName: "x-ms-access-tier-change-time",
- xmlName: "x-ms-access-tier-change-time",
+ lastModified: {
+ serializedName: "last-modified",
+ xmlName: "last-modified",
type: {
name: "DateTimeRfc1123"
}
},
- versionId: {
- serializedName: "x-ms-version-id",
- xmlName: "x-ms-version-id",
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
type: {
name: "String"
}
},
- isCurrentVersion: {
- serializedName: "x-ms-is-current-version",
- xmlName: "x-ms-is-current-version",
- type: {
- name: "Boolean"
- }
- },
- tagCount: {
- serializedName: "x-ms-tag-count",
- xmlName: "x-ms-tag-count",
- type: {
- name: "Number"
- }
- },
- expiresOn: {
- serializedName: "x-ms-expiry-time",
- xmlName: "x-ms-expiry-time",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- isSealed: {
- serializedName: "x-ms-blob-sealed",
- xmlName: "x-ms-blob-sealed",
- type: {
- name: "Boolean"
- }
- },
- rehydratePriority: {
- serializedName: "x-ms-rehydrate-priority",
- xmlName: "x-ms-rehydrate-priority",
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
type: {
- name: "Enum",
- allowedValues: ["High", "Standard"]
+ name: "String"
}
},
- lastAccessed: {
- serializedName: "x-ms-last-access-time",
- xmlName: "x-ms-last-access-time",
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
type: {
- name: "DateTimeRfc1123"
+ name: "String"
}
},
- immutabilityPolicyExpiresOn: {
- serializedName: "x-ms-immutability-policy-until-date",
- xmlName: "x-ms-immutability-policy-until-date",
+ date: {
+ serializedName: "date",
+ xmlName: "date",
type: {
name: "DateTimeRfc1123"
}
},
- immutabilityPolicyMode: {
- serializedName: "x-ms-immutability-policy-mode",
- xmlName: "x-ms-immutability-policy-mode",
- type: {
- name: "Enum",
- allowedValues: ["Mutable", "Unlocked", "Locked"]
- }
- },
- legalHold: {
- serializedName: "x-ms-legal-hold",
- xmlName: "x-ms-legal-hold",
- type: {
- name: "Boolean"
- }
- },
errorCode: {
serializedName: "x-ms-error-code",
xmlName: "x-ms-error-code",
@@ -26938,11 +27090,11 @@ const BlobGetPropertiesHeaders = {
}
}
};
-const BlobGetPropertiesExceptionHeaders = {
- serializedName: "Blob_getPropertiesExceptionHeaders",
+const ContainerSetAccessPolicyExceptionHeaders = {
+ serializedName: "Container_setAccessPolicyExceptionHeaders",
type: {
name: "Composite",
- className: "BlobGetPropertiesExceptionHeaders",
+ className: "ContainerSetAccessPolicyExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -26954,11 +27106,11 @@ const BlobGetPropertiesExceptionHeaders = {
}
}
};
-const BlobDeleteHeaders = {
- serializedName: "Blob_deleteHeaders",
+const ContainerRestoreHeaders = {
+ serializedName: "Container_restoreHeaders",
type: {
name: "Composite",
- className: "BlobDeleteHeaders",
+ className: "ContainerRestoreHeaders",
modelProperties: {
clientRequestId: {
serializedName: "x-ms-client-request-id",
@@ -26998,11 +27150,11 @@ const BlobDeleteHeaders = {
}
}
};
-const BlobDeleteExceptionHeaders = {
- serializedName: "Blob_deleteExceptionHeaders",
+const ContainerRestoreExceptionHeaders = {
+ serializedName: "Container_restoreExceptionHeaders",
type: {
name: "Composite",
- className: "BlobDeleteExceptionHeaders",
+ className: "ContainerRestoreExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -27014,11 +27166,11 @@ const BlobDeleteExceptionHeaders = {
}
}
};
-const BlobUndeleteHeaders = {
- serializedName: "Blob_undeleteHeaders",
+const ContainerRenameHeaders = {
+ serializedName: "Container_renameHeaders",
type: {
name: "Composite",
- className: "BlobUndeleteHeaders",
+ className: "ContainerRenameHeaders",
modelProperties: {
clientRequestId: {
serializedName: "x-ms-client-request-id",
@@ -27058,11 +27210,11 @@ const BlobUndeleteHeaders = {
}
}
};
-const BlobUndeleteExceptionHeaders = {
- serializedName: "Blob_undeleteExceptionHeaders",
+const ContainerRenameExceptionHeaders = {
+ serializedName: "Container_renameExceptionHeaders",
type: {
name: "Composite",
- className: "BlobUndeleteExceptionHeaders",
+ className: "ContainerRenameExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -27074,26 +27226,58 @@ const BlobUndeleteExceptionHeaders = {
}
}
};
-const BlobSetExpiryHeaders = {
- serializedName: "Blob_setExpiryHeaders",
+const ContainerSubmitBatchHeaders = {
+ serializedName: "Container_submitBatchHeaders",
type: {
name: "Composite",
- className: "BlobSetExpiryHeaders",
+ className: "ContainerSubmitBatchHeaders",
modelProperties: {
- etag: {
- serializedName: "etag",
- xmlName: "etag",
+ contentType: {
+ serializedName: "content-type",
+ xmlName: "content-type",
type: {
name: "String"
}
},
- lastModified: {
- serializedName: "last-modified",
- xmlName: "last-modified",
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
type: {
- name: "DateTimeRfc1123"
+ name: "String"
}
},
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+const ContainerSubmitBatchExceptionHeaders = {
+ serializedName: "Container_submitBatchExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "ContainerSubmitBatchExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+const ContainerFilterBlobsHeaders = {
+ serializedName: "Container_filterBlobsHeaders",
+ type: {
+ name: "Composite",
+ className: "ContainerFilterBlobsHeaders",
+ modelProperties: {
clientRequestId: {
serializedName: "x-ms-client-request-id",
xmlName: "x-ms-client-request-id",
@@ -27125,11 +27309,11 @@ const BlobSetExpiryHeaders = {
}
}
};
-const BlobSetExpiryExceptionHeaders = {
- serializedName: "Blob_setExpiryExceptionHeaders",
+const ContainerFilterBlobsExceptionHeaders = {
+ serializedName: "Container_filterBlobsExceptionHeaders",
type: {
name: "Composite",
- className: "BlobSetExpiryExceptionHeaders",
+ className: "ContainerFilterBlobsExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -27141,11 +27325,11 @@ const BlobSetExpiryExceptionHeaders = {
}
}
};
-const BlobSetHttpHeadersHeaders = {
- serializedName: "Blob_setHttpHeadersHeaders",
+const ContainerAcquireLeaseHeaders = {
+ serializedName: "Container_acquireLeaseHeaders",
type: {
name: "Composite",
- className: "BlobSetHttpHeadersHeaders",
+ className: "ContainerAcquireLeaseHeaders",
modelProperties: {
etag: {
serializedName: "etag",
@@ -27161,11 +27345,11 @@ const BlobSetHttpHeadersHeaders = {
name: "DateTimeRfc1123"
}
},
- blobSequenceNumber: {
- serializedName: "x-ms-blob-sequence-number",
- xmlName: "x-ms-blob-sequence-number",
+ leaseId: {
+ serializedName: "x-ms-lease-id",
+ xmlName: "x-ms-lease-id",
type: {
- name: "Number"
+ name: "String"
}
},
clientRequestId: {
@@ -27195,22 +27379,15 @@ const BlobSetHttpHeadersHeaders = {
type: {
name: "DateTimeRfc1123"
}
- },
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
- type: {
- name: "String"
- }
}
}
}
};
-const BlobSetHttpHeadersExceptionHeaders = {
- serializedName: "Blob_setHttpHeadersExceptionHeaders",
+const ContainerAcquireLeaseExceptionHeaders = {
+ serializedName: "Container_acquireLeaseExceptionHeaders",
type: {
name: "Composite",
- className: "BlobSetHttpHeadersExceptionHeaders",
+ className: "ContainerAcquireLeaseExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -27222,12 +27399,26 @@ const BlobSetHttpHeadersExceptionHeaders = {
}
}
};
-const BlobSetImmutabilityPolicyHeaders = {
- serializedName: "Blob_setImmutabilityPolicyHeaders",
+const ContainerReleaseLeaseHeaders = {
+ serializedName: "Container_releaseLeaseHeaders",
type: {
name: "Composite",
- className: "BlobSetImmutabilityPolicyHeaders",
+ className: "ContainerReleaseLeaseHeaders",
modelProperties: {
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
+ type: {
+ name: "String"
+ }
+ },
+ lastModified: {
+ serializedName: "last-modified",
+ xmlName: "last-modified",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
clientRequestId: {
serializedName: "x-ms-client-request-id",
xmlName: "x-ms-client-request-id",
@@ -27255,30 +27446,15 @@ const BlobSetImmutabilityPolicyHeaders = {
type: {
name: "DateTimeRfc1123"
}
- },
- immutabilityPolicyExpiry: {
- serializedName: "x-ms-immutability-policy-until-date",
- xmlName: "x-ms-immutability-policy-until-date",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- immutabilityPolicyMode: {
- serializedName: "x-ms-immutability-policy-mode",
- xmlName: "x-ms-immutability-policy-mode",
- type: {
- name: "Enum",
- allowedValues: ["Mutable", "Unlocked", "Locked"]
- }
}
}
}
};
-const BlobSetImmutabilityPolicyExceptionHeaders = {
- serializedName: "Blob_setImmutabilityPolicyExceptionHeaders",
+const ContainerReleaseLeaseExceptionHeaders = {
+ serializedName: "Container_releaseLeaseExceptionHeaders",
type: {
name: "Composite",
- className: "BlobSetImmutabilityPolicyExceptionHeaders",
+ className: "ContainerReleaseLeaseExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -27290,65 +27466,33 @@ const BlobSetImmutabilityPolicyExceptionHeaders = {
}
}
};
-const BlobDeleteImmutabilityPolicyHeaders = {
- serializedName: "Blob_deleteImmutabilityPolicyHeaders",
+const ContainerRenewLeaseHeaders = {
+ serializedName: "Container_renewLeaseHeaders",
type: {
name: "Composite",
- className: "BlobDeleteImmutabilityPolicyHeaders",
+ className: "ContainerRenewLeaseHeaders",
modelProperties: {
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
type: {
name: "String"
}
},
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ lastModified: {
+ serializedName: "last-modified",
+ xmlName: "last-modified",
type: {
- name: "String"
+ name: "DateTimeRfc1123"
}
},
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ leaseId: {
+ serializedName: "x-ms-lease-id",
+ xmlName: "x-ms-lease-id",
type: {
name: "String"
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
- type: {
- name: "DateTimeRfc1123"
- }
- }
- }
- }
-};
-const BlobDeleteImmutabilityPolicyExceptionHeaders = {
- serializedName: "Blob_deleteImmutabilityPolicyExceptionHeaders",
- type: {
- name: "Composite",
- className: "BlobDeleteImmutabilityPolicyExceptionHeaders",
- modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
- type: {
- name: "String"
- }
- }
- }
- }
-};
-const BlobSetLegalHoldHeaders = {
- serializedName: "Blob_setLegalHoldHeaders",
- type: {
- name: "Composite",
- className: "BlobSetLegalHoldHeaders",
- modelProperties: {
clientRequestId: {
serializedName: "x-ms-client-request-id",
xmlName: "x-ms-client-request-id",
@@ -27376,22 +27520,15 @@ const BlobSetLegalHoldHeaders = {
type: {
name: "DateTimeRfc1123"
}
- },
- legalHold: {
- serializedName: "x-ms-legal-hold",
- xmlName: "x-ms-legal-hold",
- type: {
- name: "Boolean"
- }
}
}
}
};
-const BlobSetLegalHoldExceptionHeaders = {
- serializedName: "Blob_setLegalHoldExceptionHeaders",
+const ContainerRenewLeaseExceptionHeaders = {
+ serializedName: "Container_renewLeaseExceptionHeaders",
type: {
name: "Composite",
- className: "BlobSetLegalHoldExceptionHeaders",
+ className: "ContainerRenewLeaseExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -27403,11 +27540,11 @@ const BlobSetLegalHoldExceptionHeaders = {
}
}
};
-const BlobSetMetadataHeaders = {
- serializedName: "Blob_setMetadataHeaders",
+const ContainerBreakLeaseHeaders = {
+ serializedName: "Container_breakLeaseHeaders",
type: {
name: "Composite",
- className: "BlobSetMetadataHeaders",
+ className: "ContainerBreakLeaseHeaders",
modelProperties: {
etag: {
serializedName: "etag",
@@ -27423,6 +27560,13 @@ const BlobSetMetadataHeaders = {
name: "DateTimeRfc1123"
}
},
+ leaseTime: {
+ serializedName: "x-ms-lease-time",
+ xmlName: "x-ms-lease-time",
+ type: {
+ name: "Number"
+ }
+ },
clientRequestId: {
serializedName: "x-ms-client-request-id",
xmlName: "x-ms-client-request-id",
@@ -27444,56 +27588,21 @@ const BlobSetMetadataHeaders = {
name: "String"
}
},
- versionId: {
- serializedName: "x-ms-version-id",
- xmlName: "x-ms-version-id",
- type: {
- name: "String"
- }
- },
date: {
serializedName: "date",
xmlName: "date",
type: {
name: "DateTimeRfc1123"
}
- },
- isServerEncrypted: {
- serializedName: "x-ms-request-server-encrypted",
- xmlName: "x-ms-request-server-encrypted",
- type: {
- name: "Boolean"
- }
- },
- encryptionKeySha256: {
- serializedName: "x-ms-encryption-key-sha256",
- xmlName: "x-ms-encryption-key-sha256",
- type: {
- name: "String"
- }
- },
- encryptionScope: {
- serializedName: "x-ms-encryption-scope",
- xmlName: "x-ms-encryption-scope",
- type: {
- name: "String"
- }
- },
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
- type: {
- name: "String"
- }
}
}
}
};
-const BlobSetMetadataExceptionHeaders = {
- serializedName: "Blob_setMetadataExceptionHeaders",
+const ContainerBreakLeaseExceptionHeaders = {
+ serializedName: "Container_breakLeaseExceptionHeaders",
type: {
name: "Composite",
- className: "BlobSetMetadataExceptionHeaders",
+ className: "ContainerBreakLeaseExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -27505,11 +27614,11 @@ const BlobSetMetadataExceptionHeaders = {
}
}
};
-const BlobAcquireLeaseHeaders = {
- serializedName: "Blob_acquireLeaseHeaders",
+const ContainerChangeLeaseHeaders = {
+ serializedName: "Container_changeLeaseHeaders",
type: {
name: "Composite",
- className: "BlobAcquireLeaseHeaders",
+ className: "ContainerChangeLeaseHeaders",
modelProperties: {
etag: {
serializedName: "etag",
@@ -27563,11 +27672,11 @@ const BlobAcquireLeaseHeaders = {
}
}
};
-const BlobAcquireLeaseExceptionHeaders = {
- serializedName: "Blob_acquireLeaseExceptionHeaders",
+const ContainerChangeLeaseExceptionHeaders = {
+ serializedName: "Container_changeLeaseExceptionHeaders",
type: {
name: "Composite",
- className: "BlobAcquireLeaseExceptionHeaders",
+ className: "ContainerChangeLeaseExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -27579,26 +27688,19 @@ const BlobAcquireLeaseExceptionHeaders = {
}
}
};
-const BlobReleaseLeaseHeaders = {
- serializedName: "Blob_releaseLeaseHeaders",
+const ContainerListBlobFlatSegmentHeaders = {
+ serializedName: "Container_listBlobFlatSegmentHeaders",
type: {
name: "Composite",
- className: "BlobReleaseLeaseHeaders",
+ className: "ContainerListBlobFlatSegmentHeaders",
modelProperties: {
- etag: {
- serializedName: "etag",
- xmlName: "etag",
+ contentType: {
+ serializedName: "content-type",
+ xmlName: "content-type",
type: {
name: "String"
}
},
- lastModified: {
- serializedName: "last-modified",
- xmlName: "last-modified",
- type: {
- name: "DateTimeRfc1123"
- }
- },
clientRequestId: {
serializedName: "x-ms-client-request-id",
xmlName: "x-ms-client-request-id",
@@ -27626,15 +27728,22 @@ const BlobReleaseLeaseHeaders = {
type: {
name: "DateTimeRfc1123"
}
+ },
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
}
}
}
};
-const BlobReleaseLeaseExceptionHeaders = {
- serializedName: "Blob_releaseLeaseExceptionHeaders",
+const ContainerListBlobFlatSegmentExceptionHeaders = {
+ serializedName: "Container_listBlobFlatSegmentExceptionHeaders",
type: {
name: "Composite",
- className: "BlobReleaseLeaseExceptionHeaders",
+ className: "ContainerListBlobFlatSegmentExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -27646,29 +27755,15 @@ const BlobReleaseLeaseExceptionHeaders = {
}
}
};
-const BlobRenewLeaseHeaders = {
- serializedName: "Blob_renewLeaseHeaders",
+const ContainerListBlobHierarchySegmentHeaders = {
+ serializedName: "Container_listBlobHierarchySegmentHeaders",
type: {
name: "Composite",
- className: "BlobRenewLeaseHeaders",
+ className: "ContainerListBlobHierarchySegmentHeaders",
modelProperties: {
- etag: {
- serializedName: "etag",
- xmlName: "etag",
- type: {
- name: "String"
- }
- },
- lastModified: {
- serializedName: "last-modified",
- xmlName: "last-modified",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- leaseId: {
- serializedName: "x-ms-lease-id",
- xmlName: "x-ms-lease-id",
+ contentType: {
+ serializedName: "content-type",
+ xmlName: "content-type",
type: {
name: "String"
}
@@ -27700,15 +27795,22 @@ const BlobRenewLeaseHeaders = {
type: {
name: "DateTimeRfc1123"
}
+ },
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
}
}
}
};
-const BlobRenewLeaseExceptionHeaders = {
- serializedName: "Blob_renewLeaseExceptionHeaders",
+const ContainerListBlobHierarchySegmentExceptionHeaders = {
+ serializedName: "Container_listBlobHierarchySegmentExceptionHeaders",
type: {
name: "Composite",
- className: "BlobRenewLeaseExceptionHeaders",
+ className: "ContainerListBlobHierarchySegmentExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -27720,26 +27822,12 @@ const BlobRenewLeaseExceptionHeaders = {
}
}
};
-const BlobChangeLeaseHeaders = {
- serializedName: "Blob_changeLeaseHeaders",
+const ContainerGetAccountInfoHeaders = {
+ serializedName: "Container_getAccountInfoHeaders",
type: {
name: "Composite",
- className: "BlobChangeLeaseHeaders",
+ className: "ContainerGetAccountInfoHeaders",
modelProperties: {
- etag: {
- serializedName: "etag",
- xmlName: "etag",
- type: {
- name: "String"
- }
- },
- lastModified: {
- serializedName: "last-modified",
- xmlName: "last-modified",
- type: {
- name: "DateTimeRfc1123"
- }
- },
clientRequestId: {
serializedName: "x-ms-client-request-id",
xmlName: "x-ms-client-request-id",
@@ -27754,13 +27842,6 @@ const BlobChangeLeaseHeaders = {
name: "String"
}
},
- leaseId: {
- serializedName: "x-ms-lease-id",
- xmlName: "x-ms-lease-id",
- type: {
- name: "String"
- }
- },
version: {
serializedName: "x-ms-version",
xmlName: "x-ms-version",
@@ -27774,15 +27855,43 @@ const BlobChangeLeaseHeaders = {
type: {
name: "DateTimeRfc1123"
}
+ },
+ skuName: {
+ serializedName: "x-ms-sku-name",
+ xmlName: "x-ms-sku-name",
+ type: {
+ name: "Enum",
+ allowedValues: [
+ "Standard_LRS",
+ "Standard_GRS",
+ "Standard_RAGRS",
+ "Standard_ZRS",
+ "Premium_LRS"
+ ]
+ }
+ },
+ accountKind: {
+ serializedName: "x-ms-account-kind",
+ xmlName: "x-ms-account-kind",
+ type: {
+ name: "Enum",
+ allowedValues: [
+ "Storage",
+ "BlobStorage",
+ "StorageV2",
+ "FileStorage",
+ "BlockBlobStorage"
+ ]
+ }
}
}
}
};
-const BlobChangeLeaseExceptionHeaders = {
- serializedName: "Blob_changeLeaseExceptionHeaders",
+const ContainerGetAccountInfoExceptionHeaders = {
+ serializedName: "Container_getAccountInfoExceptionHeaders",
type: {
name: "Composite",
- className: "BlobChangeLeaseExceptionHeaders",
+ className: "ContainerGetAccountInfoExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -27794,19 +27903,12 @@ const BlobChangeLeaseExceptionHeaders = {
}
}
};
-const BlobBreakLeaseHeaders = {
- serializedName: "Blob_breakLeaseHeaders",
+const BlobDownloadHeaders = {
+ serializedName: "Blob_downloadHeaders",
type: {
name: "Composite",
- className: "BlobBreakLeaseHeaders",
+ className: "BlobDownloadHeaders",
modelProperties: {
- etag: {
- serializedName: "etag",
- xmlName: "etag",
- type: {
- name: "String"
- }
- },
lastModified: {
serializedName: "last-modified",
xmlName: "last-modified",
@@ -27814,69 +27916,48 @@ const BlobBreakLeaseHeaders = {
name: "DateTimeRfc1123"
}
},
- leaseTime: {
- serializedName: "x-ms-lease-time",
- xmlName: "x-ms-lease-time",
+ metadata: {
+ serializedName: "x-ms-meta",
+ xmlName: "x-ms-meta",
type: {
- name: "Number"
- }
+ name: "Dictionary",
+ value: { type: { name: "String" } }
+ },
+ headerCollectionPrefix: "x-ms-meta-"
},
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
+ objectReplicationPolicyId: {
+ serializedName: "x-ms-or-policy-id",
+ xmlName: "x-ms-or-policy-id",
type: {
name: "String"
}
},
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ objectReplicationRules: {
+ serializedName: "x-ms-or",
+ xmlName: "x-ms-or",
type: {
- name: "String"
- }
+ name: "Dictionary",
+ value: { type: { name: "String" } }
+ },
+ headerCollectionPrefix: "x-ms-or-"
},
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ contentLength: {
+ serializedName: "content-length",
+ xmlName: "content-length",
type: {
- name: "String"
+ name: "Number"
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
- type: {
- name: "DateTimeRfc1123"
- }
- }
- }
- }
-};
-const BlobBreakLeaseExceptionHeaders = {
- serializedName: "Blob_breakLeaseExceptionHeaders",
- type: {
- name: "Composite",
- className: "BlobBreakLeaseExceptionHeaders",
- modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ contentType: {
+ serializedName: "content-type",
+ xmlName: "content-type",
type: {
name: "String"
}
- }
- }
- }
-};
-const BlobCreateSnapshotHeaders = {
- serializedName: "Blob_createSnapshotHeaders",
- type: {
- name: "Composite",
- className: "BlobCreateSnapshotHeaders",
- modelProperties: {
- snapshot: {
- serializedName: "x-ms-snapshot",
- xmlName: "x-ms-snapshot",
+ },
+ contentRange: {
+ serializedName: "content-range",
+ xmlName: "content-range",
type: {
name: "String"
}
@@ -27888,139 +27969,87 @@ const BlobCreateSnapshotHeaders = {
name: "String"
}
},
- lastModified: {
- serializedName: "last-modified",
- xmlName: "last-modified",
+ contentMD5: {
+ serializedName: "content-md5",
+ xmlName: "content-md5",
type: {
- name: "DateTimeRfc1123"
+ name: "ByteArray"
}
},
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
+ contentEncoding: {
+ serializedName: "content-encoding",
+ xmlName: "content-encoding",
type: {
name: "String"
}
},
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ cacheControl: {
+ serializedName: "cache-control",
+ xmlName: "cache-control",
type: {
name: "String"
}
},
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ contentDisposition: {
+ serializedName: "content-disposition",
+ xmlName: "content-disposition",
type: {
name: "String"
}
},
- versionId: {
- serializedName: "x-ms-version-id",
- xmlName: "x-ms-version-id",
+ contentLanguage: {
+ serializedName: "content-language",
+ xmlName: "content-language",
type: {
name: "String"
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- isServerEncrypted: {
- serializedName: "x-ms-request-server-encrypted",
- xmlName: "x-ms-request-server-encrypted",
+ blobSequenceNumber: {
+ serializedName: "x-ms-blob-sequence-number",
+ xmlName: "x-ms-blob-sequence-number",
type: {
- name: "Boolean"
+ name: "Number"
}
},
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
- type: {
- name: "String"
- }
- }
- }
- }
-};
-const BlobCreateSnapshotExceptionHeaders = {
- serializedName: "Blob_createSnapshotExceptionHeaders",
- type: {
- name: "Composite",
- className: "BlobCreateSnapshotExceptionHeaders",
- modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
- type: {
- name: "String"
- }
- }
- }
- }
-};
-const BlobStartCopyFromURLHeaders = {
- serializedName: "Blob_startCopyFromURLHeaders",
- type: {
- name: "Composite",
- className: "BlobStartCopyFromURLHeaders",
- modelProperties: {
- etag: {
- serializedName: "etag",
- xmlName: "etag",
+ blobType: {
+ serializedName: "x-ms-blob-type",
+ xmlName: "x-ms-blob-type",
type: {
- name: "String"
+ name: "Enum",
+ allowedValues: ["BlockBlob", "PageBlob", "AppendBlob"]
}
},
- lastModified: {
- serializedName: "last-modified",
- xmlName: "last-modified",
+ copyCompletedOn: {
+ serializedName: "x-ms-copy-completion-time",
+ xmlName: "x-ms-copy-completion-time",
type: {
name: "DateTimeRfc1123"
}
},
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
- type: {
- name: "String"
- }
- },
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ copyStatusDescription: {
+ serializedName: "x-ms-copy-status-description",
+ xmlName: "x-ms-copy-status-description",
type: {
name: "String"
}
},
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ copyId: {
+ serializedName: "x-ms-copy-id",
+ xmlName: "x-ms-copy-id",
type: {
name: "String"
}
},
- versionId: {
- serializedName: "x-ms-version-id",
- xmlName: "x-ms-version-id",
+ copyProgress: {
+ serializedName: "x-ms-copy-progress",
+ xmlName: "x-ms-copy-progress",
type: {
name: "String"
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- copyId: {
- serializedName: "x-ms-copy-id",
- xmlName: "x-ms-copy-id",
+ copySource: {
+ serializedName: "x-ms-copy-source",
+ xmlName: "x-ms-copy-source",
type: {
name: "String"
}
@@ -28033,50 +28062,34 @@ const BlobStartCopyFromURLHeaders = {
allowedValues: ["pending", "success", "aborted", "failed"]
}
},
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
- type: {
- name: "String"
- }
- }
- }
- }
-};
-const BlobStartCopyFromURLExceptionHeaders = {
- serializedName: "Blob_startCopyFromURLExceptionHeaders",
- type: {
- name: "Composite",
- className: "BlobStartCopyFromURLExceptionHeaders",
- modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ leaseDuration: {
+ serializedName: "x-ms-lease-duration",
+ xmlName: "x-ms-lease-duration",
type: {
- name: "String"
+ name: "Enum",
+ allowedValues: ["infinite", "fixed"]
}
- }
- }
- }
-};
-const BlobCopyFromURLHeaders = {
- serializedName: "Blob_copyFromURLHeaders",
- type: {
- name: "Composite",
- className: "BlobCopyFromURLHeaders",
- modelProperties: {
- etag: {
- serializedName: "etag",
- xmlName: "etag",
+ },
+ leaseState: {
+ serializedName: "x-ms-lease-state",
+ xmlName: "x-ms-lease-state",
type: {
- name: "String"
+ name: "Enum",
+ allowedValues: [
+ "available",
+ "leased",
+ "expired",
+ "breaking",
+ "broken"
+ ]
}
},
- lastModified: {
- serializedName: "last-modified",
- xmlName: "last-modified",
+ leaseStatus: {
+ serializedName: "x-ms-lease-status",
+ xmlName: "x-ms-lease-status",
type: {
- name: "DateTimeRfc1123"
+ name: "Enum",
+ allowedValues: ["locked", "unlocked"]
}
},
clientRequestId: {
@@ -28107,160 +28120,103 @@ const BlobCopyFromURLHeaders = {
name: "String"
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
+ isCurrentVersion: {
+ serializedName: "x-ms-is-current-version",
+ xmlName: "x-ms-is-current-version",
type: {
- name: "DateTimeRfc1123"
+ name: "Boolean"
}
},
- copyId: {
- serializedName: "x-ms-copy-id",
- xmlName: "x-ms-copy-id",
+ acceptRanges: {
+ serializedName: "accept-ranges",
+ xmlName: "accept-ranges",
type: {
name: "String"
}
},
- copyStatus: {
- defaultValue: "success",
- isConstant: true,
- serializedName: "x-ms-copy-status",
+ date: {
+ serializedName: "date",
+ xmlName: "date",
type: {
- name: "String"
+ name: "DateTimeRfc1123"
}
},
- contentMD5: {
- serializedName: "content-md5",
- xmlName: "content-md5",
+ blobCommittedBlockCount: {
+ serializedName: "x-ms-blob-committed-block-count",
+ xmlName: "x-ms-blob-committed-block-count",
type: {
- name: "ByteArray"
+ name: "Number"
}
},
- xMsContentCrc64: {
- serializedName: "x-ms-content-crc64",
- xmlName: "x-ms-content-crc64",
+ isServerEncrypted: {
+ serializedName: "x-ms-server-encrypted",
+ xmlName: "x-ms-server-encrypted",
type: {
- name: "ByteArray"
+ name: "Boolean"
}
},
- encryptionScope: {
- serializedName: "x-ms-encryption-scope",
- xmlName: "x-ms-encryption-scope",
+ encryptionKeySha256: {
+ serializedName: "x-ms-encryption-key-sha256",
+ xmlName: "x-ms-encryption-key-sha256",
type: {
name: "String"
}
},
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
- type: {
- name: "String"
- }
- }
- }
- }
-};
-const BlobCopyFromURLExceptionHeaders = {
- serializedName: "Blob_copyFromURLExceptionHeaders",
- type: {
- name: "Composite",
- className: "BlobCopyFromURLExceptionHeaders",
- modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ encryptionScope: {
+ serializedName: "x-ms-encryption-scope",
+ xmlName: "x-ms-encryption-scope",
type: {
name: "String"
}
- }
- }
- }
-};
-const BlobAbortCopyFromURLHeaders = {
- serializedName: "Blob_abortCopyFromURLHeaders",
- type: {
- name: "Composite",
- className: "BlobAbortCopyFromURLHeaders",
- modelProperties: {
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
+ },
+ blobContentMD5: {
+ serializedName: "x-ms-blob-content-md5",
+ xmlName: "x-ms-blob-content-md5",
type: {
- name: "String"
+ name: "ByteArray"
}
},
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ tagCount: {
+ serializedName: "x-ms-tag-count",
+ xmlName: "x-ms-tag-count",
type: {
- name: "String"
+ name: "Number"
}
},
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ isSealed: {
+ serializedName: "x-ms-blob-sealed",
+ xmlName: "x-ms-blob-sealed",
type: {
- name: "String"
+ name: "Boolean"
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
+ lastAccessed: {
+ serializedName: "x-ms-last-access-time",
+ xmlName: "x-ms-last-access-time",
type: {
name: "DateTimeRfc1123"
}
},
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
- type: {
- name: "String"
- }
- }
- }
- }
-};
-const BlobAbortCopyFromURLExceptionHeaders = {
- serializedName: "Blob_abortCopyFromURLExceptionHeaders",
- type: {
- name: "Composite",
- className: "BlobAbortCopyFromURLExceptionHeaders",
- modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
- type: {
- name: "String"
- }
- }
- }
- }
-};
-const BlobSetTierHeaders = {
- serializedName: "Blob_setTierHeaders",
- type: {
- name: "Composite",
- className: "BlobSetTierHeaders",
- modelProperties: {
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
+ immutabilityPolicyExpiresOn: {
+ serializedName: "x-ms-immutability-policy-until-date",
+ xmlName: "x-ms-immutability-policy-until-date",
type: {
- name: "String"
+ name: "DateTimeRfc1123"
}
},
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ immutabilityPolicyMode: {
+ serializedName: "x-ms-immutability-policy-mode",
+ xmlName: "x-ms-immutability-policy-mode",
type: {
- name: "String"
+ name: "Enum",
+ allowedValues: ["Mutable", "Unlocked", "Locked"]
}
},
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ legalHold: {
+ serializedName: "x-ms-legal-hold",
+ xmlName: "x-ms-legal-hold",
type: {
- name: "String"
+ name: "Boolean"
}
},
errorCode: {
@@ -28269,96 +28225,22 @@ const BlobSetTierHeaders = {
type: {
name: "String"
}
- }
- }
- }
-};
-const BlobSetTierExceptionHeaders = {
- serializedName: "Blob_setTierExceptionHeaders",
- type: {
- name: "Composite",
- className: "BlobSetTierExceptionHeaders",
- modelProperties: {
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
- type: {
- name: "String"
- }
- }
- }
- }
-};
-const BlobGetAccountInfoHeaders = {
- serializedName: "Blob_getAccountInfoHeaders",
- type: {
- name: "Composite",
- className: "BlobGetAccountInfoHeaders",
- modelProperties: {
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
- type: {
- name: "String"
- }
- },
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
- type: {
- name: "String"
- }
- },
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
- type: {
- name: "String"
- }
- },
- date: {
- serializedName: "date",
- xmlName: "date",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- skuName: {
- serializedName: "x-ms-sku-name",
- xmlName: "x-ms-sku-name",
- type: {
- name: "Enum",
- allowedValues: [
- "Standard_LRS",
- "Standard_GRS",
- "Standard_RAGRS",
- "Standard_ZRS",
- "Premium_LRS"
- ]
- }
},
- accountKind: {
- serializedName: "x-ms-account-kind",
- xmlName: "x-ms-account-kind",
+ contentCrc64: {
+ serializedName: "x-ms-content-crc64",
+ xmlName: "x-ms-content-crc64",
type: {
- name: "Enum",
- allowedValues: [
- "Storage",
- "BlobStorage",
- "StorageV2",
- "FileStorage",
- "BlockBlobStorage"
- ]
+ name: "ByteArray"
}
}
}
}
};
-const BlobGetAccountInfoExceptionHeaders = {
- serializedName: "Blob_getAccountInfoExceptionHeaders",
+const BlobDownloadExceptionHeaders = {
+ serializedName: "Blob_downloadExceptionHeaders",
type: {
name: "Composite",
- className: "BlobGetAccountInfoExceptionHeaders",
+ className: "BlobDownloadExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -28370,11 +28252,11 @@ const BlobGetAccountInfoExceptionHeaders = {
}
}
};
-const BlobQueryHeaders = {
- serializedName: "Blob_queryHeaders",
+const BlobGetPropertiesHeaders = {
+ serializedName: "Blob_getPropertiesHeaders",
type: {
name: "Composite",
- className: "BlobQueryHeaders",
+ className: "BlobGetPropertiesHeaders",
modelProperties: {
lastModified: {
serializedName: "last-modified",
@@ -28383,83 +28265,37 @@ const BlobQueryHeaders = {
name: "DateTimeRfc1123"
}
},
+ createdOn: {
+ serializedName: "x-ms-creation-time",
+ xmlName: "x-ms-creation-time",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
metadata: {
serializedName: "x-ms-meta",
xmlName: "x-ms-meta",
type: {
name: "Dictionary",
value: { type: { name: "String" } }
- }
- },
- contentLength: {
- serializedName: "content-length",
- xmlName: "content-length",
- type: {
- name: "Number"
- }
- },
- contentType: {
- serializedName: "content-type",
- xmlName: "content-type",
- type: {
- name: "String"
- }
- },
- contentRange: {
- serializedName: "content-range",
- xmlName: "content-range",
- type: {
- name: "String"
- }
- },
- etag: {
- serializedName: "etag",
- xmlName: "etag",
- type: {
- name: "String"
- }
- },
- contentMD5: {
- serializedName: "content-md5",
- xmlName: "content-md5",
- type: {
- name: "ByteArray"
- }
- },
- contentEncoding: {
- serializedName: "content-encoding",
- xmlName: "content-encoding",
- type: {
- name: "String"
- }
- },
- cacheControl: {
- serializedName: "cache-control",
- xmlName: "cache-control",
- type: {
- name: "String"
- }
- },
- contentDisposition: {
- serializedName: "content-disposition",
- xmlName: "content-disposition",
- type: {
- name: "String"
- }
+ },
+ headerCollectionPrefix: "x-ms-meta-"
},
- contentLanguage: {
- serializedName: "content-language",
- xmlName: "content-language",
+ objectReplicationPolicyId: {
+ serializedName: "x-ms-or-policy-id",
+ xmlName: "x-ms-or-policy-id",
type: {
name: "String"
}
},
- blobSequenceNumber: {
- serializedName: "x-ms-blob-sequence-number",
- xmlName: "x-ms-blob-sequence-number",
+ objectReplicationRules: {
+ serializedName: "x-ms-or",
+ xmlName: "x-ms-or",
type: {
- name: "Number"
- }
+ name: "Dictionary",
+ value: { type: { name: "String" } }
+ },
+ headerCollectionPrefix: "x-ms-or-"
},
blobType: {
serializedName: "x-ms-blob-type",
@@ -28469,7 +28305,7 @@ const BlobQueryHeaders = {
allowedValues: ["BlockBlob", "PageBlob", "AppendBlob"]
}
},
- copyCompletionTime: {
+ copyCompletedOn: {
serializedName: "x-ms-copy-completion-time",
xmlName: "x-ms-copy-completion-time",
type: {
@@ -28512,6 +28348,20 @@ const BlobQueryHeaders = {
allowedValues: ["pending", "success", "aborted", "failed"]
}
},
+ isIncrementalCopy: {
+ serializedName: "x-ms-incremental-copy",
+ xmlName: "x-ms-incremental-copy",
+ type: {
+ name: "Boolean"
+ }
+ },
+ destinationSnapshot: {
+ serializedName: "x-ms-copy-destination-snapshot",
+ xmlName: "x-ms-copy-destination-snapshot",
+ type: {
+ name: "String"
+ }
+ },
leaseDuration: {
serializedName: "x-ms-lease-duration",
xmlName: "x-ms-lease-duration",
@@ -28542,6 +28392,69 @@ const BlobQueryHeaders = {
allowedValues: ["locked", "unlocked"]
}
},
+ contentLength: {
+ serializedName: "content-length",
+ xmlName: "content-length",
+ type: {
+ name: "Number"
+ }
+ },
+ contentType: {
+ serializedName: "content-type",
+ xmlName: "content-type",
+ type: {
+ name: "String"
+ }
+ },
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
+ type: {
+ name: "String"
+ }
+ },
+ contentMD5: {
+ serializedName: "content-md5",
+ xmlName: "content-md5",
+ type: {
+ name: "ByteArray"
+ }
+ },
+ contentEncoding: {
+ serializedName: "content-encoding",
+ xmlName: "content-encoding",
+ type: {
+ name: "String"
+ }
+ },
+ contentDisposition: {
+ serializedName: "content-disposition",
+ xmlName: "content-disposition",
+ type: {
+ name: "String"
+ }
+ },
+ contentLanguage: {
+ serializedName: "content-language",
+ xmlName: "content-language",
+ type: {
+ name: "String"
+ }
+ },
+ cacheControl: {
+ serializedName: "cache-control",
+ xmlName: "cache-control",
+ type: {
+ name: "String"
+ }
+ },
+ blobSequenceNumber: {
+ serializedName: "x-ms-blob-sequence-number",
+ xmlName: "x-ms-blob-sequence-number",
+ type: {
+ name: "Number"
+ }
+ },
clientRequestId: {
serializedName: "x-ms-client-request-id",
xmlName: "x-ms-client-request-id",
@@ -28563,13 +28476,6 @@ const BlobQueryHeaders = {
name: "String"
}
},
- acceptRanges: {
- serializedName: "accept-ranges",
- xmlName: "accept-ranges",
- type: {
- name: "String"
- }
- },
date: {
serializedName: "date",
xmlName: "date",
@@ -28577,6 +28483,13 @@ const BlobQueryHeaders = {
name: "DateTimeRfc1123"
}
},
+ acceptRanges: {
+ serializedName: "accept-ranges",
+ xmlName: "accept-ranges",
+ type: {
+ name: "String"
+ }
+ },
blobCommittedBlockCount: {
serializedName: "x-ms-blob-committed-block-count",
xmlName: "x-ms-blob-committed-block-count",
@@ -28605,35 +28518,121 @@ const BlobQueryHeaders = {
name: "String"
}
},
- blobContentMD5: {
- serializedName: "x-ms-blob-content-md5",
- xmlName: "x-ms-blob-content-md5",
+ accessTier: {
+ serializedName: "x-ms-access-tier",
+ xmlName: "x-ms-access-tier",
type: {
- name: "ByteArray"
+ name: "String"
}
},
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ accessTierInferred: {
+ serializedName: "x-ms-access-tier-inferred",
+ xmlName: "x-ms-access-tier-inferred",
type: {
- name: "String"
+ name: "Boolean"
}
},
- contentCrc64: {
- serializedName: "x-ms-content-crc64",
- xmlName: "x-ms-content-crc64",
- type: {
- name: "ByteArray"
+ archiveStatus: {
+ serializedName: "x-ms-archive-status",
+ xmlName: "x-ms-archive-status",
+ type: {
+ name: "String"
+ }
+ },
+ accessTierChangedOn: {
+ serializedName: "x-ms-access-tier-change-time",
+ xmlName: "x-ms-access-tier-change-time",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ versionId: {
+ serializedName: "x-ms-version-id",
+ xmlName: "x-ms-version-id",
+ type: {
+ name: "String"
+ }
+ },
+ isCurrentVersion: {
+ serializedName: "x-ms-is-current-version",
+ xmlName: "x-ms-is-current-version",
+ type: {
+ name: "Boolean"
+ }
+ },
+ tagCount: {
+ serializedName: "x-ms-tag-count",
+ xmlName: "x-ms-tag-count",
+ type: {
+ name: "Number"
+ }
+ },
+ expiresOn: {
+ serializedName: "x-ms-expiry-time",
+ xmlName: "x-ms-expiry-time",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ isSealed: {
+ serializedName: "x-ms-blob-sealed",
+ xmlName: "x-ms-blob-sealed",
+ type: {
+ name: "Boolean"
+ }
+ },
+ rehydratePriority: {
+ serializedName: "x-ms-rehydrate-priority",
+ xmlName: "x-ms-rehydrate-priority",
+ type: {
+ name: "Enum",
+ allowedValues: ["High", "Standard"]
+ }
+ },
+ lastAccessed: {
+ serializedName: "x-ms-last-access-time",
+ xmlName: "x-ms-last-access-time",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ immutabilityPolicyExpiresOn: {
+ serializedName: "x-ms-immutability-policy-until-date",
+ xmlName: "x-ms-immutability-policy-until-date",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ immutabilityPolicyMode: {
+ serializedName: "x-ms-immutability-policy-mode",
+ xmlName: "x-ms-immutability-policy-mode",
+ type: {
+ name: "Enum",
+ allowedValues: ["Mutable", "Unlocked", "Locked"]
+ }
+ },
+ legalHold: {
+ serializedName: "x-ms-legal-hold",
+ xmlName: "x-ms-legal-hold",
+ type: {
+ name: "Boolean"
+ }
+ },
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
}
}
}
}
};
-const BlobQueryExceptionHeaders = {
- serializedName: "Blob_queryExceptionHeaders",
+const BlobGetPropertiesExceptionHeaders = {
+ serializedName: "Blob_getPropertiesExceptionHeaders",
type: {
name: "Composite",
- className: "BlobQueryExceptionHeaders",
+ className: "BlobGetPropertiesExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -28645,11 +28644,11 @@ const BlobQueryExceptionHeaders = {
}
}
};
-const BlobGetTagsHeaders = {
- serializedName: "Blob_getTagsHeaders",
+const BlobDeleteHeaders = {
+ serializedName: "Blob_deleteHeaders",
type: {
name: "Composite",
- className: "BlobGetTagsHeaders",
+ className: "BlobDeleteHeaders",
modelProperties: {
clientRequestId: {
serializedName: "x-ms-client-request-id",
@@ -28689,11 +28688,11 @@ const BlobGetTagsHeaders = {
}
}
};
-const BlobGetTagsExceptionHeaders = {
- serializedName: "Blob_getTagsExceptionHeaders",
+const BlobDeleteExceptionHeaders = {
+ serializedName: "Blob_deleteExceptionHeaders",
type: {
name: "Composite",
- className: "BlobGetTagsExceptionHeaders",
+ className: "BlobDeleteExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -28705,11 +28704,11 @@ const BlobGetTagsExceptionHeaders = {
}
}
};
-const BlobSetTagsHeaders = {
- serializedName: "Blob_setTagsHeaders",
+const BlobUndeleteHeaders = {
+ serializedName: "Blob_undeleteHeaders",
type: {
name: "Composite",
- className: "BlobSetTagsHeaders",
+ className: "BlobUndeleteHeaders",
modelProperties: {
clientRequestId: {
serializedName: "x-ms-client-request-id",
@@ -28749,11 +28748,11 @@ const BlobSetTagsHeaders = {
}
}
};
-const BlobSetTagsExceptionHeaders = {
- serializedName: "Blob_setTagsExceptionHeaders",
+const BlobUndeleteExceptionHeaders = {
+ serializedName: "Blob_undeleteExceptionHeaders",
type: {
name: "Composite",
- className: "BlobSetTagsExceptionHeaders",
+ className: "BlobUndeleteExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -28765,11 +28764,11 @@ const BlobSetTagsExceptionHeaders = {
}
}
};
-const PageBlobCreateHeaders = {
- serializedName: "PageBlob_createHeaders",
+const BlobSetExpiryHeaders = {
+ serializedName: "Blob_setExpiryHeaders",
type: {
name: "Composite",
- className: "PageBlobCreateHeaders",
+ className: "BlobSetExpiryHeaders",
modelProperties: {
etag: {
serializedName: "etag",
@@ -28785,13 +28784,6 @@ const PageBlobCreateHeaders = {
name: "DateTimeRfc1123"
}
},
- contentMD5: {
- serializedName: "content-md5",
- xmlName: "content-md5",
- type: {
- name: "ByteArray"
- }
- },
clientRequestId: {
serializedName: "x-ms-client-request-id",
xmlName: "x-ms-client-request-id",
@@ -28813,56 +28805,21 @@ const PageBlobCreateHeaders = {
name: "String"
}
},
- versionId: {
- serializedName: "x-ms-version-id",
- xmlName: "x-ms-version-id",
- type: {
- name: "String"
- }
- },
date: {
serializedName: "date",
xmlName: "date",
type: {
name: "DateTimeRfc1123"
}
- },
- isServerEncrypted: {
- serializedName: "x-ms-request-server-encrypted",
- xmlName: "x-ms-request-server-encrypted",
- type: {
- name: "Boolean"
- }
- },
- encryptionKeySha256: {
- serializedName: "x-ms-encryption-key-sha256",
- xmlName: "x-ms-encryption-key-sha256",
- type: {
- name: "String"
- }
- },
- encryptionScope: {
- serializedName: "x-ms-encryption-scope",
- xmlName: "x-ms-encryption-scope",
- type: {
- name: "String"
- }
- },
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
- type: {
- name: "String"
- }
}
}
}
};
-const PageBlobCreateExceptionHeaders = {
- serializedName: "PageBlob_createExceptionHeaders",
+const BlobSetExpiryExceptionHeaders = {
+ serializedName: "Blob_setExpiryExceptionHeaders",
type: {
name: "Composite",
- className: "PageBlobCreateExceptionHeaders",
+ className: "BlobSetExpiryExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -28874,11 +28831,11 @@ const PageBlobCreateExceptionHeaders = {
}
}
};
-const PageBlobUploadPagesHeaders = {
- serializedName: "PageBlob_uploadPagesHeaders",
+const BlobSetHttpHeadersHeaders = {
+ serializedName: "Blob_setHttpHeadersHeaders",
type: {
name: "Composite",
- className: "PageBlobUploadPagesHeaders",
+ className: "BlobSetHttpHeadersHeaders",
modelProperties: {
etag: {
serializedName: "etag",
@@ -28894,20 +28851,6 @@ const PageBlobUploadPagesHeaders = {
name: "DateTimeRfc1123"
}
},
- contentMD5: {
- serializedName: "content-md5",
- xmlName: "content-md5",
- type: {
- name: "ByteArray"
- }
- },
- xMsContentCrc64: {
- serializedName: "x-ms-content-crc64",
- xmlName: "x-ms-content-crc64",
- type: {
- name: "ByteArray"
- }
- },
blobSequenceNumber: {
serializedName: "x-ms-blob-sequence-number",
xmlName: "x-ms-blob-sequence-number",
@@ -28943,42 +28886,89 @@ const PageBlobUploadPagesHeaders = {
name: "DateTimeRfc1123"
}
},
- isServerEncrypted: {
- serializedName: "x-ms-request-server-encrypted",
- xmlName: "x-ms-request-server-encrypted",
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
type: {
- name: "Boolean"
+ name: "String"
}
- },
- encryptionKeySha256: {
- serializedName: "x-ms-encryption-key-sha256",
- xmlName: "x-ms-encryption-key-sha256",
+ }
+ }
+ }
+};
+const BlobSetHttpHeadersExceptionHeaders = {
+ serializedName: "Blob_setHttpHeadersExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "BlobSetHttpHeadersExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+const BlobSetImmutabilityPolicyHeaders = {
+ serializedName: "Blob_setImmutabilityPolicyHeaders",
+ type: {
+ name: "Composite",
+ className: "BlobSetImmutabilityPolicyHeaders",
+ modelProperties: {
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
type: {
name: "String"
}
},
- encryptionScope: {
- serializedName: "x-ms-encryption-scope",
- xmlName: "x-ms-encryption-scope",
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
type: {
name: "String"
}
},
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
type: {
name: "String"
}
+ },
+ date: {
+ serializedName: "date",
+ xmlName: "date",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ immutabilityPolicyExpiry: {
+ serializedName: "x-ms-immutability-policy-until-date",
+ xmlName: "x-ms-immutability-policy-until-date",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ immutabilityPolicyMode: {
+ serializedName: "x-ms-immutability-policy-mode",
+ xmlName: "x-ms-immutability-policy-mode",
+ type: {
+ name: "Enum",
+ allowedValues: ["Mutable", "Unlocked", "Locked"]
+ }
}
}
}
};
-const PageBlobUploadPagesExceptionHeaders = {
- serializedName: "PageBlob_uploadPagesExceptionHeaders",
+const BlobSetImmutabilityPolicyExceptionHeaders = {
+ serializedName: "Blob_setImmutabilityPolicyExceptionHeaders",
type: {
name: "Composite",
- className: "PageBlobUploadPagesExceptionHeaders",
+ className: "BlobSetImmutabilityPolicyExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -28990,47 +28980,65 @@ const PageBlobUploadPagesExceptionHeaders = {
}
}
};
-const PageBlobClearPagesHeaders = {
- serializedName: "PageBlob_clearPagesHeaders",
+const BlobDeleteImmutabilityPolicyHeaders = {
+ serializedName: "Blob_deleteImmutabilityPolicyHeaders",
type: {
name: "Composite",
- className: "PageBlobClearPagesHeaders",
+ className: "BlobDeleteImmutabilityPolicyHeaders",
modelProperties: {
- etag: {
- serializedName: "etag",
- xmlName: "etag",
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
type: {
name: "String"
}
},
- lastModified: {
- serializedName: "last-modified",
- xmlName: "last-modified",
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
type: {
- name: "DateTimeRfc1123"
+ name: "String"
}
},
- contentMD5: {
- serializedName: "content-md5",
- xmlName: "content-md5",
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
type: {
- name: "ByteArray"
+ name: "String"
}
},
- xMsContentCrc64: {
- serializedName: "x-ms-content-crc64",
- xmlName: "x-ms-content-crc64",
+ date: {
+ serializedName: "date",
+ xmlName: "date",
type: {
- name: "ByteArray"
+ name: "DateTimeRfc1123"
}
- },
- blobSequenceNumber: {
- serializedName: "x-ms-blob-sequence-number",
- xmlName: "x-ms-blob-sequence-number",
+ }
+ }
+ }
+};
+const BlobDeleteImmutabilityPolicyExceptionHeaders = {
+ serializedName: "Blob_deleteImmutabilityPolicyExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "BlobDeleteImmutabilityPolicyExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
type: {
- name: "Number"
+ name: "String"
}
- },
+ }
+ }
+ }
+};
+const BlobSetLegalHoldHeaders = {
+ serializedName: "Blob_setLegalHoldHeaders",
+ type: {
+ name: "Composite",
+ className: "BlobSetLegalHoldHeaders",
+ modelProperties: {
clientRequestId: {
serializedName: "x-ms-client-request-id",
xmlName: "x-ms-client-request-id",
@@ -29059,21 +29067,21 @@ const PageBlobClearPagesHeaders = {
name: "DateTimeRfc1123"
}
},
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ legalHold: {
+ serializedName: "x-ms-legal-hold",
+ xmlName: "x-ms-legal-hold",
type: {
- name: "String"
+ name: "Boolean"
}
}
}
}
};
-const PageBlobClearPagesExceptionHeaders = {
- serializedName: "PageBlob_clearPagesExceptionHeaders",
+const BlobSetLegalHoldExceptionHeaders = {
+ serializedName: "Blob_setLegalHoldExceptionHeaders",
type: {
name: "Composite",
- className: "PageBlobClearPagesExceptionHeaders",
+ className: "BlobSetLegalHoldExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -29085,11 +29093,11 @@ const PageBlobClearPagesExceptionHeaders = {
}
}
};
-const PageBlobUploadPagesFromURLHeaders = {
- serializedName: "PageBlob_uploadPagesFromURLHeaders",
+const BlobSetMetadataHeaders = {
+ serializedName: "Blob_setMetadataHeaders",
type: {
name: "Composite",
- className: "PageBlobUploadPagesFromURLHeaders",
+ className: "BlobSetMetadataHeaders",
modelProperties: {
etag: {
serializedName: "etag",
@@ -29105,25 +29113,11 @@ const PageBlobUploadPagesFromURLHeaders = {
name: "DateTimeRfc1123"
}
},
- contentMD5: {
- serializedName: "content-md5",
- xmlName: "content-md5",
- type: {
- name: "ByteArray"
- }
- },
- xMsContentCrc64: {
- serializedName: "x-ms-content-crc64",
- xmlName: "x-ms-content-crc64",
- type: {
- name: "ByteArray"
- }
- },
- blobSequenceNumber: {
- serializedName: "x-ms-blob-sequence-number",
- xmlName: "x-ms-blob-sequence-number",
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
type: {
- name: "Number"
+ name: "String"
}
},
requestId: {
@@ -29140,6 +29134,13 @@ const PageBlobUploadPagesFromURLHeaders = {
name: "String"
}
},
+ versionId: {
+ serializedName: "x-ms-version-id",
+ xmlName: "x-ms-version-id",
+ type: {
+ name: "String"
+ }
+ },
date: {
serializedName: "date",
xmlName: "date",
@@ -29178,11 +29179,11 @@ const PageBlobUploadPagesFromURLHeaders = {
}
}
};
-const PageBlobUploadPagesFromURLExceptionHeaders = {
- serializedName: "PageBlob_uploadPagesFromURLExceptionHeaders",
+const BlobSetMetadataExceptionHeaders = {
+ serializedName: "Blob_setMetadataExceptionHeaders",
type: {
name: "Composite",
- className: "PageBlobUploadPagesFromURLExceptionHeaders",
+ className: "BlobSetMetadataExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -29194,12 +29195,19 @@ const PageBlobUploadPagesFromURLExceptionHeaders = {
}
}
};
-const PageBlobGetPageRangesHeaders = {
- serializedName: "PageBlob_getPageRangesHeaders",
+const BlobAcquireLeaseHeaders = {
+ serializedName: "Blob_acquireLeaseHeaders",
type: {
name: "Composite",
- className: "PageBlobGetPageRangesHeaders",
+ className: "BlobAcquireLeaseHeaders",
modelProperties: {
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
+ type: {
+ name: "String"
+ }
+ },
lastModified: {
serializedName: "last-modified",
xmlName: "last-modified",
@@ -29207,20 +29215,13 @@ const PageBlobGetPageRangesHeaders = {
name: "DateTimeRfc1123"
}
},
- etag: {
- serializedName: "etag",
- xmlName: "etag",
+ leaseId: {
+ serializedName: "x-ms-lease-id",
+ xmlName: "x-ms-lease-id",
type: {
name: "String"
}
},
- blobContentLength: {
- serializedName: "x-ms-blob-content-length",
- xmlName: "x-ms-blob-content-length",
- type: {
- name: "Number"
- }
- },
clientRequestId: {
serializedName: "x-ms-client-request-id",
xmlName: "x-ms-client-request-id",
@@ -29248,22 +29249,15 @@ const PageBlobGetPageRangesHeaders = {
type: {
name: "DateTimeRfc1123"
}
- },
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
- type: {
- name: "String"
- }
}
}
}
};
-const PageBlobGetPageRangesExceptionHeaders = {
- serializedName: "PageBlob_getPageRangesExceptionHeaders",
+const BlobAcquireLeaseExceptionHeaders = {
+ serializedName: "Blob_acquireLeaseExceptionHeaders",
type: {
name: "Composite",
- className: "PageBlobGetPageRangesExceptionHeaders",
+ className: "BlobAcquireLeaseExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -29275,19 +29269,12 @@ const PageBlobGetPageRangesExceptionHeaders = {
}
}
};
-const PageBlobGetPageRangesDiffHeaders = {
- serializedName: "PageBlob_getPageRangesDiffHeaders",
+const BlobReleaseLeaseHeaders = {
+ serializedName: "Blob_releaseLeaseHeaders",
type: {
name: "Composite",
- className: "PageBlobGetPageRangesDiffHeaders",
+ className: "BlobReleaseLeaseHeaders",
modelProperties: {
- lastModified: {
- serializedName: "last-modified",
- xmlName: "last-modified",
- type: {
- name: "DateTimeRfc1123"
- }
- },
etag: {
serializedName: "etag",
xmlName: "etag",
@@ -29295,11 +29282,11 @@ const PageBlobGetPageRangesDiffHeaders = {
name: "String"
}
},
- blobContentLength: {
- serializedName: "x-ms-blob-content-length",
- xmlName: "x-ms-blob-content-length",
+ lastModified: {
+ serializedName: "last-modified",
+ xmlName: "last-modified",
type: {
- name: "Number"
+ name: "DateTimeRfc1123"
}
},
clientRequestId: {
@@ -29329,22 +29316,15 @@ const PageBlobGetPageRangesDiffHeaders = {
type: {
name: "DateTimeRfc1123"
}
- },
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
- type: {
- name: "String"
- }
}
}
}
};
-const PageBlobGetPageRangesDiffExceptionHeaders = {
- serializedName: "PageBlob_getPageRangesDiffExceptionHeaders",
+const BlobReleaseLeaseExceptionHeaders = {
+ serializedName: "Blob_releaseLeaseExceptionHeaders",
type: {
name: "Composite",
- className: "PageBlobGetPageRangesDiffExceptionHeaders",
+ className: "BlobReleaseLeaseExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -29356,11 +29336,11 @@ const PageBlobGetPageRangesDiffExceptionHeaders = {
}
}
};
-const PageBlobResizeHeaders = {
- serializedName: "PageBlob_resizeHeaders",
+const BlobRenewLeaseHeaders = {
+ serializedName: "Blob_renewLeaseHeaders",
type: {
name: "Composite",
- className: "PageBlobResizeHeaders",
+ className: "BlobRenewLeaseHeaders",
modelProperties: {
etag: {
serializedName: "etag",
@@ -29376,11 +29356,11 @@ const PageBlobResizeHeaders = {
name: "DateTimeRfc1123"
}
},
- blobSequenceNumber: {
- serializedName: "x-ms-blob-sequence-number",
- xmlName: "x-ms-blob-sequence-number",
+ leaseId: {
+ serializedName: "x-ms-lease-id",
+ xmlName: "x-ms-lease-id",
type: {
- name: "Number"
+ name: "String"
}
},
clientRequestId: {
@@ -29410,22 +29390,15 @@ const PageBlobResizeHeaders = {
type: {
name: "DateTimeRfc1123"
}
- },
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
- type: {
- name: "String"
- }
}
}
}
};
-const PageBlobResizeExceptionHeaders = {
- serializedName: "PageBlob_resizeExceptionHeaders",
+const BlobRenewLeaseExceptionHeaders = {
+ serializedName: "Blob_renewLeaseExceptionHeaders",
type: {
name: "Composite",
- className: "PageBlobResizeExceptionHeaders",
+ className: "BlobRenewLeaseExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -29437,11 +29410,11 @@ const PageBlobResizeExceptionHeaders = {
}
}
};
-const PageBlobUpdateSequenceNumberHeaders = {
- serializedName: "PageBlob_updateSequenceNumberHeaders",
+const BlobChangeLeaseHeaders = {
+ serializedName: "Blob_changeLeaseHeaders",
type: {
name: "Composite",
- className: "PageBlobUpdateSequenceNumberHeaders",
+ className: "BlobChangeLeaseHeaders",
modelProperties: {
etag: {
serializedName: "etag",
@@ -29457,13 +29430,6 @@ const PageBlobUpdateSequenceNumberHeaders = {
name: "DateTimeRfc1123"
}
},
- blobSequenceNumber: {
- serializedName: "x-ms-blob-sequence-number",
- xmlName: "x-ms-blob-sequence-number",
- type: {
- name: "Number"
- }
- },
clientRequestId: {
serializedName: "x-ms-client-request-id",
xmlName: "x-ms-client-request-id",
@@ -29478,7 +29444,14 @@ const PageBlobUpdateSequenceNumberHeaders = {
name: "String"
}
},
- version: {
+ leaseId: {
+ serializedName: "x-ms-lease-id",
+ xmlName: "x-ms-lease-id",
+ type: {
+ name: "String"
+ }
+ },
+ version: {
serializedName: "x-ms-version",
xmlName: "x-ms-version",
type: {
@@ -29491,22 +29464,15 @@ const PageBlobUpdateSequenceNumberHeaders = {
type: {
name: "DateTimeRfc1123"
}
- },
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
- type: {
- name: "String"
- }
}
}
}
};
-const PageBlobUpdateSequenceNumberExceptionHeaders = {
- serializedName: "PageBlob_updateSequenceNumberExceptionHeaders",
+const BlobChangeLeaseExceptionHeaders = {
+ serializedName: "Blob_changeLeaseExceptionHeaders",
type: {
name: "Composite",
- className: "PageBlobUpdateSequenceNumberExceptionHeaders",
+ className: "BlobChangeLeaseExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -29518,11 +29484,11 @@ const PageBlobUpdateSequenceNumberExceptionHeaders = {
}
}
};
-const PageBlobCopyIncrementalHeaders = {
- serializedName: "PageBlob_copyIncrementalHeaders",
+const BlobBreakLeaseHeaders = {
+ serializedName: "Blob_breakLeaseHeaders",
type: {
name: "Composite",
- className: "PageBlobCopyIncrementalHeaders",
+ className: "BlobBreakLeaseHeaders",
modelProperties: {
etag: {
serializedName: "etag",
@@ -29538,6 +29504,13 @@ const PageBlobCopyIncrementalHeaders = {
name: "DateTimeRfc1123"
}
},
+ leaseTime: {
+ serializedName: "x-ms-lease-time",
+ xmlName: "x-ms-lease-time",
+ type: {
+ name: "Number"
+ }
+ },
clientRequestId: {
serializedName: "x-ms-client-request-id",
xmlName: "x-ms-client-request-id",
@@ -29565,37 +29538,15 @@ const PageBlobCopyIncrementalHeaders = {
type: {
name: "DateTimeRfc1123"
}
- },
- copyId: {
- serializedName: "x-ms-copy-id",
- xmlName: "x-ms-copy-id",
- type: {
- name: "String"
- }
- },
- copyStatus: {
- serializedName: "x-ms-copy-status",
- xmlName: "x-ms-copy-status",
- type: {
- name: "Enum",
- allowedValues: ["pending", "success", "aborted", "failed"]
- }
- },
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
- type: {
- name: "String"
- }
}
}
}
};
-const PageBlobCopyIncrementalExceptionHeaders = {
- serializedName: "PageBlob_copyIncrementalExceptionHeaders",
+const BlobBreakLeaseExceptionHeaders = {
+ serializedName: "Blob_breakLeaseExceptionHeaders",
type: {
name: "Composite",
- className: "PageBlobCopyIncrementalExceptionHeaders",
+ className: "BlobBreakLeaseExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -29607,12 +29558,19 @@ const PageBlobCopyIncrementalExceptionHeaders = {
}
}
};
-const AppendBlobCreateHeaders = {
- serializedName: "AppendBlob_createHeaders",
+const BlobCreateSnapshotHeaders = {
+ serializedName: "Blob_createSnapshotHeaders",
type: {
name: "Composite",
- className: "AppendBlobCreateHeaders",
+ className: "BlobCreateSnapshotHeaders",
modelProperties: {
+ snapshot: {
+ serializedName: "x-ms-snapshot",
+ xmlName: "x-ms-snapshot",
+ type: {
+ name: "String"
+ }
+ },
etag: {
serializedName: "etag",
xmlName: "etag",
@@ -29627,13 +29585,6 @@ const AppendBlobCreateHeaders = {
name: "DateTimeRfc1123"
}
},
- contentMD5: {
- serializedName: "content-md5",
- xmlName: "content-md5",
- type: {
- name: "ByteArray"
- }
- },
clientRequestId: {
serializedName: "x-ms-client-request-id",
xmlName: "x-ms-client-request-id",
@@ -29676,20 +29627,6 @@ const AppendBlobCreateHeaders = {
name: "Boolean"
}
},
- encryptionKeySha256: {
- serializedName: "x-ms-encryption-key-sha256",
- xmlName: "x-ms-encryption-key-sha256",
- type: {
- name: "String"
- }
- },
- encryptionScope: {
- serializedName: "x-ms-encryption-scope",
- xmlName: "x-ms-encryption-scope",
- type: {
- name: "String"
- }
- },
errorCode: {
serializedName: "x-ms-error-code",
xmlName: "x-ms-error-code",
@@ -29700,11 +29637,11 @@ const AppendBlobCreateHeaders = {
}
}
};
-const AppendBlobCreateExceptionHeaders = {
- serializedName: "AppendBlob_createExceptionHeaders",
+const BlobCreateSnapshotExceptionHeaders = {
+ serializedName: "Blob_createSnapshotExceptionHeaders",
type: {
name: "Composite",
- className: "AppendBlobCreateExceptionHeaders",
+ className: "BlobCreateSnapshotExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -29716,11 +29653,11 @@ const AppendBlobCreateExceptionHeaders = {
}
}
};
-const AppendBlobAppendBlockHeaders = {
- serializedName: "AppendBlob_appendBlockHeaders",
+const BlobStartCopyFromURLHeaders = {
+ serializedName: "Blob_startCopyFromURLHeaders",
type: {
name: "Composite",
- className: "AppendBlobAppendBlockHeaders",
+ className: "BlobStartCopyFromURLHeaders",
modelProperties: {
etag: {
serializedName: "etag",
@@ -29736,20 +29673,6 @@ const AppendBlobAppendBlockHeaders = {
name: "DateTimeRfc1123"
}
},
- contentMD5: {
- serializedName: "content-md5",
- xmlName: "content-md5",
- type: {
- name: "ByteArray"
- }
- },
- xMsContentCrc64: {
- serializedName: "x-ms-content-crc64",
- xmlName: "x-ms-content-crc64",
- type: {
- name: "ByteArray"
- }
- },
clientRequestId: {
serializedName: "x-ms-client-request-id",
xmlName: "x-ms-client-request-id",
@@ -29771,46 +29694,33 @@ const AppendBlobAppendBlockHeaders = {
name: "String"
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- blobAppendOffset: {
- serializedName: "x-ms-blob-append-offset",
- xmlName: "x-ms-blob-append-offset",
+ versionId: {
+ serializedName: "x-ms-version-id",
+ xmlName: "x-ms-version-id",
type: {
name: "String"
}
},
- blobCommittedBlockCount: {
- serializedName: "x-ms-blob-committed-block-count",
- xmlName: "x-ms-blob-committed-block-count",
- type: {
- name: "Number"
- }
- },
- isServerEncrypted: {
- serializedName: "x-ms-request-server-encrypted",
- xmlName: "x-ms-request-server-encrypted",
+ date: {
+ serializedName: "date",
+ xmlName: "date",
type: {
- name: "Boolean"
+ name: "DateTimeRfc1123"
}
},
- encryptionKeySha256: {
- serializedName: "x-ms-encryption-key-sha256",
- xmlName: "x-ms-encryption-key-sha256",
+ copyId: {
+ serializedName: "x-ms-copy-id",
+ xmlName: "x-ms-copy-id",
type: {
name: "String"
}
},
- encryptionScope: {
- serializedName: "x-ms-encryption-scope",
- xmlName: "x-ms-encryption-scope",
+ copyStatus: {
+ serializedName: "x-ms-copy-status",
+ xmlName: "x-ms-copy-status",
type: {
- name: "String"
+ name: "Enum",
+ allowedValues: ["pending", "success", "aborted", "failed"]
}
},
errorCode: {
@@ -29823,11 +29733,11 @@ const AppendBlobAppendBlockHeaders = {
}
}
};
-const AppendBlobAppendBlockExceptionHeaders = {
- serializedName: "AppendBlob_appendBlockExceptionHeaders",
+const BlobStartCopyFromURLExceptionHeaders = {
+ serializedName: "Blob_startCopyFromURLExceptionHeaders",
type: {
name: "Composite",
- className: "AppendBlobAppendBlockExceptionHeaders",
+ className: "BlobStartCopyFromURLExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -29839,11 +29749,11 @@ const AppendBlobAppendBlockExceptionHeaders = {
}
}
};
-const AppendBlobAppendBlockFromUrlHeaders = {
- serializedName: "AppendBlob_appendBlockFromUrlHeaders",
+const BlobCopyFromURLHeaders = {
+ serializedName: "Blob_copyFromURLHeaders",
type: {
name: "Composite",
- className: "AppendBlobAppendBlockFromUrlHeaders",
+ className: "BlobCopyFromURLHeaders",
modelProperties: {
etag: {
serializedName: "etag",
@@ -29859,18 +29769,11 @@ const AppendBlobAppendBlockFromUrlHeaders = {
name: "DateTimeRfc1123"
}
},
- contentMD5: {
- serializedName: "content-md5",
- xmlName: "content-md5",
- type: {
- name: "ByteArray"
- }
- },
- xMsContentCrc64: {
- serializedName: "x-ms-content-crc64",
- xmlName: "x-ms-content-crc64",
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
type: {
- name: "ByteArray"
+ name: "String"
}
},
requestId: {
@@ -29887,6 +29790,13 @@ const AppendBlobAppendBlockFromUrlHeaders = {
name: "String"
}
},
+ versionId: {
+ serializedName: "x-ms-version-id",
+ xmlName: "x-ms-version-id",
+ type: {
+ name: "String"
+ }
+ },
date: {
serializedName: "date",
xmlName: "date",
@@ -29894,25 +29804,33 @@ const AppendBlobAppendBlockFromUrlHeaders = {
name: "DateTimeRfc1123"
}
},
- blobAppendOffset: {
- serializedName: "x-ms-blob-append-offset",
- xmlName: "x-ms-blob-append-offset",
+ copyId: {
+ serializedName: "x-ms-copy-id",
+ xmlName: "x-ms-copy-id",
type: {
name: "String"
}
},
- blobCommittedBlockCount: {
- serializedName: "x-ms-blob-committed-block-count",
- xmlName: "x-ms-blob-committed-block-count",
+ copyStatus: {
+ defaultValue: "success",
+ isConstant: true,
+ serializedName: "x-ms-copy-status",
type: {
- name: "Number"
+ name: "String"
}
},
- encryptionKeySha256: {
- serializedName: "x-ms-encryption-key-sha256",
- xmlName: "x-ms-encryption-key-sha256",
+ contentMD5: {
+ serializedName: "content-md5",
+ xmlName: "content-md5",
type: {
- name: "String"
+ name: "ByteArray"
+ }
+ },
+ xMsContentCrc64: {
+ serializedName: "x-ms-content-crc64",
+ xmlName: "x-ms-content-crc64",
+ type: {
+ name: "ByteArray"
}
},
encryptionScope: {
@@ -29922,13 +29840,6 @@ const AppendBlobAppendBlockFromUrlHeaders = {
name: "String"
}
},
- isServerEncrypted: {
- serializedName: "x-ms-request-server-encrypted",
- xmlName: "x-ms-request-server-encrypted",
- type: {
- name: "Boolean"
- }
- },
errorCode: {
serializedName: "x-ms-error-code",
xmlName: "x-ms-error-code",
@@ -29939,11 +29850,11 @@ const AppendBlobAppendBlockFromUrlHeaders = {
}
}
};
-const AppendBlobAppendBlockFromUrlExceptionHeaders = {
- serializedName: "AppendBlob_appendBlockFromUrlExceptionHeaders",
+const BlobCopyFromURLExceptionHeaders = {
+ serializedName: "Blob_copyFromURLExceptionHeaders",
type: {
name: "Composite",
- className: "AppendBlobAppendBlockFromUrlExceptionHeaders",
+ className: "BlobCopyFromURLExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -29955,26 +29866,12 @@ const AppendBlobAppendBlockFromUrlExceptionHeaders = {
}
}
};
-const AppendBlobSealHeaders = {
- serializedName: "AppendBlob_sealHeaders",
+const BlobAbortCopyFromURLHeaders = {
+ serializedName: "Blob_abortCopyFromURLHeaders",
type: {
name: "Composite",
- className: "AppendBlobSealHeaders",
+ className: "BlobAbortCopyFromURLHeaders",
modelProperties: {
- etag: {
- serializedName: "etag",
- xmlName: "etag",
- type: {
- name: "String"
- }
- },
- lastModified: {
- serializedName: "last-modified",
- xmlName: "last-modified",
- type: {
- name: "DateTimeRfc1123"
- }
- },
clientRequestId: {
serializedName: "x-ms-client-request-id",
xmlName: "x-ms-client-request-id",
@@ -30003,21 +29900,21 @@ const AppendBlobSealHeaders = {
name: "DateTimeRfc1123"
}
},
- isSealed: {
- serializedName: "x-ms-blob-sealed",
- xmlName: "x-ms-blob-sealed",
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
type: {
- name: "Boolean"
+ name: "String"
}
}
}
}
};
-const AppendBlobSealExceptionHeaders = {
- serializedName: "AppendBlob_sealExceptionHeaders",
+const BlobAbortCopyFromURLExceptionHeaders = {
+ serializedName: "Blob_abortCopyFromURLExceptionHeaders",
type: {
name: "Composite",
- className: "AppendBlobSealExceptionHeaders",
+ className: "BlobAbortCopyFromURLExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -30029,33 +29926,12 @@ const AppendBlobSealExceptionHeaders = {
}
}
};
-const BlockBlobUploadHeaders = {
- serializedName: "BlockBlob_uploadHeaders",
+const BlobSetTierHeaders = {
+ serializedName: "Blob_setTierHeaders",
type: {
name: "Composite",
- className: "BlockBlobUploadHeaders",
+ className: "BlobSetTierHeaders",
modelProperties: {
- etag: {
- serializedName: "etag",
- xmlName: "etag",
- type: {
- name: "String"
- }
- },
- lastModified: {
- serializedName: "last-modified",
- xmlName: "last-modified",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- contentMD5: {
- serializedName: "content-md5",
- xmlName: "content-md5",
- type: {
- name: "ByteArray"
- }
- },
clientRequestId: {
serializedName: "x-ms-client-request-id",
xmlName: "x-ms-client-request-id",
@@ -30077,41 +29953,6 @@ const BlockBlobUploadHeaders = {
name: "String"
}
},
- versionId: {
- serializedName: "x-ms-version-id",
- xmlName: "x-ms-version-id",
- type: {
- name: "String"
- }
- },
- date: {
- serializedName: "date",
- xmlName: "date",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- isServerEncrypted: {
- serializedName: "x-ms-request-server-encrypted",
- xmlName: "x-ms-request-server-encrypted",
- type: {
- name: "Boolean"
- }
- },
- encryptionKeySha256: {
- serializedName: "x-ms-encryption-key-sha256",
- xmlName: "x-ms-encryption-key-sha256",
- type: {
- name: "String"
- }
- },
- encryptionScope: {
- serializedName: "x-ms-encryption-scope",
- xmlName: "x-ms-encryption-scope",
- type: {
- name: "String"
- }
- },
errorCode: {
serializedName: "x-ms-error-code",
xmlName: "x-ms-error-code",
@@ -30122,11 +29963,11 @@ const BlockBlobUploadHeaders = {
}
}
};
-const BlockBlobUploadExceptionHeaders = {
- serializedName: "BlockBlob_uploadExceptionHeaders",
+const BlobSetTierExceptionHeaders = {
+ serializedName: "Blob_setTierExceptionHeaders",
type: {
name: "Composite",
- className: "BlockBlobUploadExceptionHeaders",
+ className: "BlobSetTierExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -30138,33 +29979,12 @@ const BlockBlobUploadExceptionHeaders = {
}
}
};
-const BlockBlobPutBlobFromUrlHeaders = {
- serializedName: "BlockBlob_putBlobFromUrlHeaders",
+const BlobGetAccountInfoHeaders = {
+ serializedName: "Blob_getAccountInfoHeaders",
type: {
name: "Composite",
- className: "BlockBlobPutBlobFromUrlHeaders",
+ className: "BlobGetAccountInfoHeaders",
modelProperties: {
- etag: {
- serializedName: "etag",
- xmlName: "etag",
- type: {
- name: "String"
- }
- },
- lastModified: {
- serializedName: "last-modified",
- xmlName: "last-modified",
- type: {
- name: "DateTimeRfc1123"
- }
- },
- contentMD5: {
- serializedName: "content-md5",
- xmlName: "content-md5",
- type: {
- name: "ByteArray"
- }
- },
clientRequestId: {
serializedName: "x-ms-client-request-id",
xmlName: "x-ms-client-request-id",
@@ -30186,13 +30006,6 @@ const BlockBlobPutBlobFromUrlHeaders = {
name: "String"
}
},
- versionId: {
- serializedName: "x-ms-version-id",
- xmlName: "x-ms-version-id",
- type: {
- name: "String"
- }
- },
date: {
serializedName: "date",
xmlName: "date",
@@ -30200,42 +30013,42 @@ const BlockBlobPutBlobFromUrlHeaders = {
name: "DateTimeRfc1123"
}
},
- isServerEncrypted: {
- serializedName: "x-ms-request-server-encrypted",
- xmlName: "x-ms-request-server-encrypted",
- type: {
- name: "Boolean"
- }
- },
- encryptionKeySha256: {
- serializedName: "x-ms-encryption-key-sha256",
- xmlName: "x-ms-encryption-key-sha256",
- type: {
- name: "String"
- }
- },
- encryptionScope: {
- serializedName: "x-ms-encryption-scope",
- xmlName: "x-ms-encryption-scope",
+ skuName: {
+ serializedName: "x-ms-sku-name",
+ xmlName: "x-ms-sku-name",
type: {
- name: "String"
+ name: "Enum",
+ allowedValues: [
+ "Standard_LRS",
+ "Standard_GRS",
+ "Standard_RAGRS",
+ "Standard_ZRS",
+ "Premium_LRS"
+ ]
}
},
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ accountKind: {
+ serializedName: "x-ms-account-kind",
+ xmlName: "x-ms-account-kind",
type: {
- name: "String"
+ name: "Enum",
+ allowedValues: [
+ "Storage",
+ "BlobStorage",
+ "StorageV2",
+ "FileStorage",
+ "BlockBlobStorage"
+ ]
}
}
}
}
};
-const BlockBlobPutBlobFromUrlExceptionHeaders = {
- serializedName: "BlockBlob_putBlobFromUrlExceptionHeaders",
+const BlobGetAccountInfoExceptionHeaders = {
+ serializedName: "Blob_getAccountInfoExceptionHeaders",
type: {
name: "Composite",
- className: "BlockBlobPutBlobFromUrlExceptionHeaders",
+ className: "BlobGetAccountInfoExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -30247,90 +30060,270 @@ const BlockBlobPutBlobFromUrlExceptionHeaders = {
}
}
};
-const BlockBlobStageBlockHeaders = {
- serializedName: "BlockBlob_stageBlockHeaders",
+const BlobQueryHeaders = {
+ serializedName: "Blob_queryHeaders",
type: {
name: "Composite",
- className: "BlockBlobStageBlockHeaders",
+ className: "BlobQueryHeaders",
modelProperties: {
- contentMD5: {
- serializedName: "content-md5",
- xmlName: "content-md5",
+ lastModified: {
+ serializedName: "last-modified",
+ xmlName: "last-modified",
type: {
- name: "ByteArray"
+ name: "DateTimeRfc1123"
}
},
- clientRequestId: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
+ metadata: {
+ serializedName: "x-ms-meta",
+ xmlName: "x-ms-meta",
type: {
- name: "String"
+ name: "Dictionary",
+ value: { type: { name: "String" } }
}
},
- requestId: {
- serializedName: "x-ms-request-id",
- xmlName: "x-ms-request-id",
+ contentLength: {
+ serializedName: "content-length",
+ xmlName: "content-length",
+ type: {
+ name: "Number"
+ }
+ },
+ contentType: {
+ serializedName: "content-type",
+ xmlName: "content-type",
type: {
name: "String"
}
},
- version: {
- serializedName: "x-ms-version",
- xmlName: "x-ms-version",
+ contentRange: {
+ serializedName: "content-range",
+ xmlName: "content-range",
type: {
name: "String"
}
},
- date: {
- serializedName: "date",
- xmlName: "date",
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
type: {
- name: "DateTimeRfc1123"
+ name: "String"
}
},
- xMsContentCrc64: {
- serializedName: "x-ms-content-crc64",
- xmlName: "x-ms-content-crc64",
+ contentMD5: {
+ serializedName: "content-md5",
+ xmlName: "content-md5",
type: {
name: "ByteArray"
}
},
- isServerEncrypted: {
- serializedName: "x-ms-request-server-encrypted",
- xmlName: "x-ms-request-server-encrypted",
+ contentEncoding: {
+ serializedName: "content-encoding",
+ xmlName: "content-encoding",
type: {
- name: "Boolean"
+ name: "String"
}
},
- encryptionKeySha256: {
- serializedName: "x-ms-encryption-key-sha256",
- xmlName: "x-ms-encryption-key-sha256",
+ cacheControl: {
+ serializedName: "cache-control",
+ xmlName: "cache-control",
type: {
name: "String"
}
},
- encryptionScope: {
- serializedName: "x-ms-encryption-scope",
- xmlName: "x-ms-encryption-scope",
+ contentDisposition: {
+ serializedName: "content-disposition",
+ xmlName: "content-disposition",
type: {
name: "String"
}
},
- errorCode: {
- serializedName: "x-ms-error-code",
- xmlName: "x-ms-error-code",
+ contentLanguage: {
+ serializedName: "content-language",
+ xmlName: "content-language",
type: {
name: "String"
}
- }
- }
+ },
+ blobSequenceNumber: {
+ serializedName: "x-ms-blob-sequence-number",
+ xmlName: "x-ms-blob-sequence-number",
+ type: {
+ name: "Number"
+ }
+ },
+ blobType: {
+ serializedName: "x-ms-blob-type",
+ xmlName: "x-ms-blob-type",
+ type: {
+ name: "Enum",
+ allowedValues: ["BlockBlob", "PageBlob", "AppendBlob"]
+ }
+ },
+ copyCompletionTime: {
+ serializedName: "x-ms-copy-completion-time",
+ xmlName: "x-ms-copy-completion-time",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ copyStatusDescription: {
+ serializedName: "x-ms-copy-status-description",
+ xmlName: "x-ms-copy-status-description",
+ type: {
+ name: "String"
+ }
+ },
+ copyId: {
+ serializedName: "x-ms-copy-id",
+ xmlName: "x-ms-copy-id",
+ type: {
+ name: "String"
+ }
+ },
+ copyProgress: {
+ serializedName: "x-ms-copy-progress",
+ xmlName: "x-ms-copy-progress",
+ type: {
+ name: "String"
+ }
+ },
+ copySource: {
+ serializedName: "x-ms-copy-source",
+ xmlName: "x-ms-copy-source",
+ type: {
+ name: "String"
+ }
+ },
+ copyStatus: {
+ serializedName: "x-ms-copy-status",
+ xmlName: "x-ms-copy-status",
+ type: {
+ name: "Enum",
+ allowedValues: ["pending", "success", "aborted", "failed"]
+ }
+ },
+ leaseDuration: {
+ serializedName: "x-ms-lease-duration",
+ xmlName: "x-ms-lease-duration",
+ type: {
+ name: "Enum",
+ allowedValues: ["infinite", "fixed"]
+ }
+ },
+ leaseState: {
+ serializedName: "x-ms-lease-state",
+ xmlName: "x-ms-lease-state",
+ type: {
+ name: "Enum",
+ allowedValues: [
+ "available",
+ "leased",
+ "expired",
+ "breaking",
+ "broken"
+ ]
+ }
+ },
+ leaseStatus: {
+ serializedName: "x-ms-lease-status",
+ xmlName: "x-ms-lease-status",
+ type: {
+ name: "Enum",
+ allowedValues: ["locked", "unlocked"]
+ }
+ },
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
+ type: {
+ name: "String"
+ }
+ },
+ acceptRanges: {
+ serializedName: "accept-ranges",
+ xmlName: "accept-ranges",
+ type: {
+ name: "String"
+ }
+ },
+ date: {
+ serializedName: "date",
+ xmlName: "date",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ blobCommittedBlockCount: {
+ serializedName: "x-ms-blob-committed-block-count",
+ xmlName: "x-ms-blob-committed-block-count",
+ type: {
+ name: "Number"
+ }
+ },
+ isServerEncrypted: {
+ serializedName: "x-ms-server-encrypted",
+ xmlName: "x-ms-server-encrypted",
+ type: {
+ name: "Boolean"
+ }
+ },
+ encryptionKeySha256: {
+ serializedName: "x-ms-encryption-key-sha256",
+ xmlName: "x-ms-encryption-key-sha256",
+ type: {
+ name: "String"
+ }
+ },
+ encryptionScope: {
+ serializedName: "x-ms-encryption-scope",
+ xmlName: "x-ms-encryption-scope",
+ type: {
+ name: "String"
+ }
+ },
+ blobContentMD5: {
+ serializedName: "x-ms-blob-content-md5",
+ xmlName: "x-ms-blob-content-md5",
+ type: {
+ name: "ByteArray"
+ }
+ },
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ },
+ contentCrc64: {
+ serializedName: "x-ms-content-crc64",
+ xmlName: "x-ms-content-crc64",
+ type: {
+ name: "ByteArray"
+ }
+ }
+ }
}
};
-const BlockBlobStageBlockExceptionHeaders = {
- serializedName: "BlockBlob_stageBlockExceptionHeaders",
+const BlobQueryExceptionHeaders = {
+ serializedName: "Blob_queryExceptionHeaders",
type: {
name: "Composite",
- className: "BlockBlobStageBlockExceptionHeaders",
+ className: "BlobQueryExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -30342,22 +30335,149 @@ const BlockBlobStageBlockExceptionHeaders = {
}
}
};
-const BlockBlobStageBlockFromURLHeaders = {
- serializedName: "BlockBlob_stageBlockFromURLHeaders",
+const BlobGetTagsHeaders = {
+ serializedName: "Blob_getTagsHeaders",
type: {
name: "Composite",
- className: "BlockBlobStageBlockFromURLHeaders",
+ className: "BlobGetTagsHeaders",
modelProperties: {
- contentMD5: {
- serializedName: "content-md5",
- xmlName: "content-md5",
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
type: {
- name: "ByteArray"
+ name: "String"
}
},
- xMsContentCrc64: {
- serializedName: "x-ms-content-crc64",
- xmlName: "x-ms-content-crc64",
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
+ type: {
+ name: "String"
+ }
+ },
+ date: {
+ serializedName: "date",
+ xmlName: "date",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+const BlobGetTagsExceptionHeaders = {
+ serializedName: "Blob_getTagsExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "BlobGetTagsExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+const BlobSetTagsHeaders = {
+ serializedName: "Blob_setTagsHeaders",
+ type: {
+ name: "Composite",
+ className: "BlobSetTagsHeaders",
+ modelProperties: {
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
+ type: {
+ name: "String"
+ }
+ },
+ date: {
+ serializedName: "date",
+ xmlName: "date",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+const BlobSetTagsExceptionHeaders = {
+ serializedName: "Blob_setTagsExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "BlobSetTagsExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+const PageBlobCreateHeaders = {
+ serializedName: "PageBlob_createHeaders",
+ type: {
+ name: "Composite",
+ className: "PageBlobCreateHeaders",
+ modelProperties: {
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
+ type: {
+ name: "String"
+ }
+ },
+ lastModified: {
+ serializedName: "last-modified",
+ xmlName: "last-modified",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ contentMD5: {
+ serializedName: "content-md5",
+ xmlName: "content-md5",
type: {
name: "ByteArray"
}
@@ -30383,6 +30503,13 @@ const BlockBlobStageBlockFromURLHeaders = {
name: "String"
}
},
+ versionId: {
+ serializedName: "x-ms-version-id",
+ xmlName: "x-ms-version-id",
+ type: {
+ name: "String"
+ }
+ },
date: {
serializedName: "date",
xmlName: "date",
@@ -30421,11 +30548,11 @@ const BlockBlobStageBlockFromURLHeaders = {
}
}
};
-const BlockBlobStageBlockFromURLExceptionHeaders = {
- serializedName: "BlockBlob_stageBlockFromURLExceptionHeaders",
+const PageBlobCreateExceptionHeaders = {
+ serializedName: "PageBlob_createExceptionHeaders",
type: {
name: "Composite",
- className: "BlockBlobStageBlockFromURLExceptionHeaders",
+ className: "PageBlobCreateExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -30437,11 +30564,11 @@ const BlockBlobStageBlockFromURLExceptionHeaders = {
}
}
};
-const BlockBlobCommitBlockListHeaders = {
- serializedName: "BlockBlob_commitBlockListHeaders",
+const PageBlobUploadPagesHeaders = {
+ serializedName: "PageBlob_uploadPagesHeaders",
type: {
name: "Composite",
- className: "BlockBlobCommitBlockListHeaders",
+ className: "PageBlobUploadPagesHeaders",
modelProperties: {
etag: {
serializedName: "etag",
@@ -30471,6 +30598,13 @@ const BlockBlobCommitBlockListHeaders = {
name: "ByteArray"
}
},
+ blobSequenceNumber: {
+ serializedName: "x-ms-blob-sequence-number",
+ xmlName: "x-ms-blob-sequence-number",
+ type: {
+ name: "Number"
+ }
+ },
clientRequestId: {
serializedName: "x-ms-client-request-id",
xmlName: "x-ms-client-request-id",
@@ -30492,13 +30626,6 @@ const BlockBlobCommitBlockListHeaders = {
name: "String"
}
},
- versionId: {
- serializedName: "x-ms-version-id",
- xmlName: "x-ms-version-id",
- type: {
- name: "String"
- }
- },
date: {
serializedName: "date",
xmlName: "date",
@@ -30537,11 +30664,11 @@ const BlockBlobCommitBlockListHeaders = {
}
}
};
-const BlockBlobCommitBlockListExceptionHeaders = {
- serializedName: "BlockBlob_commitBlockListExceptionHeaders",
+const PageBlobUploadPagesExceptionHeaders = {
+ serializedName: "PageBlob_uploadPagesExceptionHeaders",
type: {
name: "Composite",
- className: "BlockBlobCommitBlockListExceptionHeaders",
+ className: "PageBlobUploadPagesExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -30553,12 +30680,19 @@ const BlockBlobCommitBlockListExceptionHeaders = {
}
}
};
-const BlockBlobGetBlockListHeaders = {
- serializedName: "BlockBlob_getBlockListHeaders",
+const PageBlobClearPagesHeaders = {
+ serializedName: "PageBlob_clearPagesHeaders",
type: {
name: "Composite",
- className: "BlockBlobGetBlockListHeaders",
+ className: "PageBlobClearPagesHeaders",
modelProperties: {
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
+ type: {
+ name: "String"
+ }
+ },
lastModified: {
serializedName: "last-modified",
xmlName: "last-modified",
@@ -30566,23 +30700,23 @@ const BlockBlobGetBlockListHeaders = {
name: "DateTimeRfc1123"
}
},
- etag: {
- serializedName: "etag",
- xmlName: "etag",
+ contentMD5: {
+ serializedName: "content-md5",
+ xmlName: "content-md5",
type: {
- name: "String"
+ name: "ByteArray"
}
},
- contentType: {
- serializedName: "content-type",
- xmlName: "content-type",
+ xMsContentCrc64: {
+ serializedName: "x-ms-content-crc64",
+ xmlName: "x-ms-content-crc64",
type: {
- name: "String"
+ name: "ByteArray"
}
},
- blobContentLength: {
- serializedName: "x-ms-blob-content-length",
- xmlName: "x-ms-blob-content-length",
+ blobSequenceNumber: {
+ serializedName: "x-ms-blob-sequence-number",
+ xmlName: "x-ms-blob-sequence-number",
type: {
name: "Number"
}
@@ -30625,11 +30759,11 @@ const BlockBlobGetBlockListHeaders = {
}
}
};
-const BlockBlobGetBlockListExceptionHeaders = {
- serializedName: "BlockBlob_getBlockListExceptionHeaders",
+const PageBlobClearPagesExceptionHeaders = {
+ serializedName: "PageBlob_clearPagesExceptionHeaders",
type: {
name: "Composite",
- className: "BlockBlobGetBlockListExceptionHeaders",
+ className: "PageBlobClearPagesExceptionHeaders",
modelProperties: {
errorCode: {
serializedName: "x-ms-error-code",
@@ -30641,1652 +30775,2602 @@ const BlockBlobGetBlockListExceptionHeaders = {
}
}
};
-
-var Mappers = /*#__PURE__*/Object.freeze({
- __proto__: null,
- BlobServiceProperties: BlobServiceProperties,
- Logging: Logging,
- RetentionPolicy: RetentionPolicy,
- Metrics: Metrics,
- CorsRule: CorsRule,
- StaticWebsite: StaticWebsite,
- StorageError: StorageError,
- BlobServiceStatistics: BlobServiceStatistics,
- GeoReplication: GeoReplication,
- ListContainersSegmentResponse: ListContainersSegmentResponse,
- ContainerItem: ContainerItem,
- ContainerProperties: ContainerProperties,
- KeyInfo: KeyInfo,
- UserDelegationKey: UserDelegationKey,
- FilterBlobSegment: FilterBlobSegment,
- FilterBlobItem: FilterBlobItem,
- BlobTags: BlobTags,
- BlobTag: BlobTag,
- SignedIdentifier: SignedIdentifier,
- AccessPolicy: AccessPolicy,
- ListBlobsFlatSegmentResponse: ListBlobsFlatSegmentResponse,
- BlobFlatListSegment: BlobFlatListSegment,
- BlobItemInternal: BlobItemInternal,
- BlobName: BlobName,
- BlobPropertiesInternal: BlobPropertiesInternal,
- ListBlobsHierarchySegmentResponse: ListBlobsHierarchySegmentResponse,
- BlobHierarchyListSegment: BlobHierarchyListSegment,
- BlobPrefix: BlobPrefix,
- BlockLookupList: BlockLookupList,
- BlockList: BlockList,
- Block: Block,
- PageList: PageList,
- PageRange: PageRange,
- ClearRange: ClearRange,
- QueryRequest: QueryRequest,
- QuerySerialization: QuerySerialization,
- QueryFormat: QueryFormat,
- DelimitedTextConfiguration: DelimitedTextConfiguration,
- JsonTextConfiguration: JsonTextConfiguration,
- ArrowConfiguration: ArrowConfiguration,
- ArrowField: ArrowField,
- ServiceSetPropertiesHeaders: ServiceSetPropertiesHeaders,
- ServiceSetPropertiesExceptionHeaders: ServiceSetPropertiesExceptionHeaders,
- ServiceGetPropertiesHeaders: ServiceGetPropertiesHeaders,
- ServiceGetPropertiesExceptionHeaders: ServiceGetPropertiesExceptionHeaders,
- ServiceGetStatisticsHeaders: ServiceGetStatisticsHeaders,
- ServiceGetStatisticsExceptionHeaders: ServiceGetStatisticsExceptionHeaders,
- ServiceListContainersSegmentHeaders: ServiceListContainersSegmentHeaders,
- ServiceListContainersSegmentExceptionHeaders: ServiceListContainersSegmentExceptionHeaders,
- ServiceGetUserDelegationKeyHeaders: ServiceGetUserDelegationKeyHeaders,
- ServiceGetUserDelegationKeyExceptionHeaders: ServiceGetUserDelegationKeyExceptionHeaders,
- ServiceGetAccountInfoHeaders: ServiceGetAccountInfoHeaders,
- ServiceGetAccountInfoExceptionHeaders: ServiceGetAccountInfoExceptionHeaders,
- ServiceSubmitBatchHeaders: ServiceSubmitBatchHeaders,
- ServiceSubmitBatchExceptionHeaders: ServiceSubmitBatchExceptionHeaders,
- ServiceFilterBlobsHeaders: ServiceFilterBlobsHeaders,
- ServiceFilterBlobsExceptionHeaders: ServiceFilterBlobsExceptionHeaders,
- ContainerCreateHeaders: ContainerCreateHeaders,
- ContainerCreateExceptionHeaders: ContainerCreateExceptionHeaders,
- ContainerGetPropertiesHeaders: ContainerGetPropertiesHeaders,
- ContainerGetPropertiesExceptionHeaders: ContainerGetPropertiesExceptionHeaders,
- ContainerDeleteHeaders: ContainerDeleteHeaders,
- ContainerDeleteExceptionHeaders: ContainerDeleteExceptionHeaders,
- ContainerSetMetadataHeaders: ContainerSetMetadataHeaders,
- ContainerSetMetadataExceptionHeaders: ContainerSetMetadataExceptionHeaders,
- ContainerGetAccessPolicyHeaders: ContainerGetAccessPolicyHeaders,
- ContainerGetAccessPolicyExceptionHeaders: ContainerGetAccessPolicyExceptionHeaders,
- ContainerSetAccessPolicyHeaders: ContainerSetAccessPolicyHeaders,
- ContainerSetAccessPolicyExceptionHeaders: ContainerSetAccessPolicyExceptionHeaders,
- ContainerRestoreHeaders: ContainerRestoreHeaders,
- ContainerRestoreExceptionHeaders: ContainerRestoreExceptionHeaders,
- ContainerRenameHeaders: ContainerRenameHeaders,
- ContainerRenameExceptionHeaders: ContainerRenameExceptionHeaders,
- ContainerSubmitBatchHeaders: ContainerSubmitBatchHeaders,
- ContainerSubmitBatchExceptionHeaders: ContainerSubmitBatchExceptionHeaders,
- ContainerFilterBlobsHeaders: ContainerFilterBlobsHeaders,
- ContainerFilterBlobsExceptionHeaders: ContainerFilterBlobsExceptionHeaders,
- ContainerAcquireLeaseHeaders: ContainerAcquireLeaseHeaders,
- ContainerAcquireLeaseExceptionHeaders: ContainerAcquireLeaseExceptionHeaders,
- ContainerReleaseLeaseHeaders: ContainerReleaseLeaseHeaders,
- ContainerReleaseLeaseExceptionHeaders: ContainerReleaseLeaseExceptionHeaders,
- ContainerRenewLeaseHeaders: ContainerRenewLeaseHeaders,
- ContainerRenewLeaseExceptionHeaders: ContainerRenewLeaseExceptionHeaders,
- ContainerBreakLeaseHeaders: ContainerBreakLeaseHeaders,
- ContainerBreakLeaseExceptionHeaders: ContainerBreakLeaseExceptionHeaders,
- ContainerChangeLeaseHeaders: ContainerChangeLeaseHeaders,
- ContainerChangeLeaseExceptionHeaders: ContainerChangeLeaseExceptionHeaders,
- ContainerListBlobFlatSegmentHeaders: ContainerListBlobFlatSegmentHeaders,
- ContainerListBlobFlatSegmentExceptionHeaders: ContainerListBlobFlatSegmentExceptionHeaders,
- ContainerListBlobHierarchySegmentHeaders: ContainerListBlobHierarchySegmentHeaders,
- ContainerListBlobHierarchySegmentExceptionHeaders: ContainerListBlobHierarchySegmentExceptionHeaders,
- ContainerGetAccountInfoHeaders: ContainerGetAccountInfoHeaders,
- ContainerGetAccountInfoExceptionHeaders: ContainerGetAccountInfoExceptionHeaders,
- BlobDownloadHeaders: BlobDownloadHeaders,
- BlobDownloadExceptionHeaders: BlobDownloadExceptionHeaders,
- BlobGetPropertiesHeaders: BlobGetPropertiesHeaders,
- BlobGetPropertiesExceptionHeaders: BlobGetPropertiesExceptionHeaders,
- BlobDeleteHeaders: BlobDeleteHeaders,
- BlobDeleteExceptionHeaders: BlobDeleteExceptionHeaders,
- BlobUndeleteHeaders: BlobUndeleteHeaders,
- BlobUndeleteExceptionHeaders: BlobUndeleteExceptionHeaders,
- BlobSetExpiryHeaders: BlobSetExpiryHeaders,
- BlobSetExpiryExceptionHeaders: BlobSetExpiryExceptionHeaders,
- BlobSetHttpHeadersHeaders: BlobSetHttpHeadersHeaders,
- BlobSetHttpHeadersExceptionHeaders: BlobSetHttpHeadersExceptionHeaders,
- BlobSetImmutabilityPolicyHeaders: BlobSetImmutabilityPolicyHeaders,
- BlobSetImmutabilityPolicyExceptionHeaders: BlobSetImmutabilityPolicyExceptionHeaders,
- BlobDeleteImmutabilityPolicyHeaders: BlobDeleteImmutabilityPolicyHeaders,
- BlobDeleteImmutabilityPolicyExceptionHeaders: BlobDeleteImmutabilityPolicyExceptionHeaders,
- BlobSetLegalHoldHeaders: BlobSetLegalHoldHeaders,
- BlobSetLegalHoldExceptionHeaders: BlobSetLegalHoldExceptionHeaders,
- BlobSetMetadataHeaders: BlobSetMetadataHeaders,
- BlobSetMetadataExceptionHeaders: BlobSetMetadataExceptionHeaders,
- BlobAcquireLeaseHeaders: BlobAcquireLeaseHeaders,
- BlobAcquireLeaseExceptionHeaders: BlobAcquireLeaseExceptionHeaders,
- BlobReleaseLeaseHeaders: BlobReleaseLeaseHeaders,
- BlobReleaseLeaseExceptionHeaders: BlobReleaseLeaseExceptionHeaders,
- BlobRenewLeaseHeaders: BlobRenewLeaseHeaders,
- BlobRenewLeaseExceptionHeaders: BlobRenewLeaseExceptionHeaders,
- BlobChangeLeaseHeaders: BlobChangeLeaseHeaders,
- BlobChangeLeaseExceptionHeaders: BlobChangeLeaseExceptionHeaders,
- BlobBreakLeaseHeaders: BlobBreakLeaseHeaders,
- BlobBreakLeaseExceptionHeaders: BlobBreakLeaseExceptionHeaders,
- BlobCreateSnapshotHeaders: BlobCreateSnapshotHeaders,
- BlobCreateSnapshotExceptionHeaders: BlobCreateSnapshotExceptionHeaders,
- BlobStartCopyFromURLHeaders: BlobStartCopyFromURLHeaders,
- BlobStartCopyFromURLExceptionHeaders: BlobStartCopyFromURLExceptionHeaders,
- BlobCopyFromURLHeaders: BlobCopyFromURLHeaders,
- BlobCopyFromURLExceptionHeaders: BlobCopyFromURLExceptionHeaders,
- BlobAbortCopyFromURLHeaders: BlobAbortCopyFromURLHeaders,
- BlobAbortCopyFromURLExceptionHeaders: BlobAbortCopyFromURLExceptionHeaders,
- BlobSetTierHeaders: BlobSetTierHeaders,
- BlobSetTierExceptionHeaders: BlobSetTierExceptionHeaders,
- BlobGetAccountInfoHeaders: BlobGetAccountInfoHeaders,
- BlobGetAccountInfoExceptionHeaders: BlobGetAccountInfoExceptionHeaders,
- BlobQueryHeaders: BlobQueryHeaders,
- BlobQueryExceptionHeaders: BlobQueryExceptionHeaders,
- BlobGetTagsHeaders: BlobGetTagsHeaders,
- BlobGetTagsExceptionHeaders: BlobGetTagsExceptionHeaders,
- BlobSetTagsHeaders: BlobSetTagsHeaders,
- BlobSetTagsExceptionHeaders: BlobSetTagsExceptionHeaders,
- PageBlobCreateHeaders: PageBlobCreateHeaders,
- PageBlobCreateExceptionHeaders: PageBlobCreateExceptionHeaders,
- PageBlobUploadPagesHeaders: PageBlobUploadPagesHeaders,
- PageBlobUploadPagesExceptionHeaders: PageBlobUploadPagesExceptionHeaders,
- PageBlobClearPagesHeaders: PageBlobClearPagesHeaders,
- PageBlobClearPagesExceptionHeaders: PageBlobClearPagesExceptionHeaders,
- PageBlobUploadPagesFromURLHeaders: PageBlobUploadPagesFromURLHeaders,
- PageBlobUploadPagesFromURLExceptionHeaders: PageBlobUploadPagesFromURLExceptionHeaders,
- PageBlobGetPageRangesHeaders: PageBlobGetPageRangesHeaders,
- PageBlobGetPageRangesExceptionHeaders: PageBlobGetPageRangesExceptionHeaders,
- PageBlobGetPageRangesDiffHeaders: PageBlobGetPageRangesDiffHeaders,
- PageBlobGetPageRangesDiffExceptionHeaders: PageBlobGetPageRangesDiffExceptionHeaders,
- PageBlobResizeHeaders: PageBlobResizeHeaders,
- PageBlobResizeExceptionHeaders: PageBlobResizeExceptionHeaders,
- PageBlobUpdateSequenceNumberHeaders: PageBlobUpdateSequenceNumberHeaders,
- PageBlobUpdateSequenceNumberExceptionHeaders: PageBlobUpdateSequenceNumberExceptionHeaders,
- PageBlobCopyIncrementalHeaders: PageBlobCopyIncrementalHeaders,
- PageBlobCopyIncrementalExceptionHeaders: PageBlobCopyIncrementalExceptionHeaders,
- AppendBlobCreateHeaders: AppendBlobCreateHeaders,
- AppendBlobCreateExceptionHeaders: AppendBlobCreateExceptionHeaders,
- AppendBlobAppendBlockHeaders: AppendBlobAppendBlockHeaders,
- AppendBlobAppendBlockExceptionHeaders: AppendBlobAppendBlockExceptionHeaders,
- AppendBlobAppendBlockFromUrlHeaders: AppendBlobAppendBlockFromUrlHeaders,
- AppendBlobAppendBlockFromUrlExceptionHeaders: AppendBlobAppendBlockFromUrlExceptionHeaders,
- AppendBlobSealHeaders: AppendBlobSealHeaders,
- AppendBlobSealExceptionHeaders: AppendBlobSealExceptionHeaders,
- BlockBlobUploadHeaders: BlockBlobUploadHeaders,
- BlockBlobUploadExceptionHeaders: BlockBlobUploadExceptionHeaders,
- BlockBlobPutBlobFromUrlHeaders: BlockBlobPutBlobFromUrlHeaders,
- BlockBlobPutBlobFromUrlExceptionHeaders: BlockBlobPutBlobFromUrlExceptionHeaders,
- BlockBlobStageBlockHeaders: BlockBlobStageBlockHeaders,
- BlockBlobStageBlockExceptionHeaders: BlockBlobStageBlockExceptionHeaders,
- BlockBlobStageBlockFromURLHeaders: BlockBlobStageBlockFromURLHeaders,
- BlockBlobStageBlockFromURLExceptionHeaders: BlockBlobStageBlockFromURLExceptionHeaders,
- BlockBlobCommitBlockListHeaders: BlockBlobCommitBlockListHeaders,
- BlockBlobCommitBlockListExceptionHeaders: BlockBlobCommitBlockListExceptionHeaders,
- BlockBlobGetBlockListHeaders: BlockBlobGetBlockListHeaders,
- BlockBlobGetBlockListExceptionHeaders: BlockBlobGetBlockListExceptionHeaders
-});
-
-/*
- * Copyright (c) Microsoft Corporation.
- * Licensed under the MIT License.
- *
- * Code generated by Microsoft (R) AutoRest Code Generator.
- * Changes may cause incorrect behavior and will be lost if the code is regenerated.
- */
-const contentType = {
- parameterPath: ["options", "contentType"],
- mapper: {
- defaultValue: "application/xml",
- isConstant: true,
- serializedName: "Content-Type",
- type: {
- name: "String"
- }
- }
-};
-const blobServiceProperties = {
- parameterPath: "blobServiceProperties",
- mapper: BlobServiceProperties
-};
-const accept = {
- parameterPath: "accept",
- mapper: {
- defaultValue: "application/xml",
- isConstant: true,
- serializedName: "Accept",
- type: {
- name: "String"
+const PageBlobUploadPagesFromURLHeaders = {
+ serializedName: "PageBlob_uploadPagesFromURLHeaders",
+ type: {
+ name: "Composite",
+ className: "PageBlobUploadPagesFromURLHeaders",
+ modelProperties: {
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
+ type: {
+ name: "String"
+ }
+ },
+ lastModified: {
+ serializedName: "last-modified",
+ xmlName: "last-modified",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ contentMD5: {
+ serializedName: "content-md5",
+ xmlName: "content-md5",
+ type: {
+ name: "ByteArray"
+ }
+ },
+ xMsContentCrc64: {
+ serializedName: "x-ms-content-crc64",
+ xmlName: "x-ms-content-crc64",
+ type: {
+ name: "ByteArray"
+ }
+ },
+ blobSequenceNumber: {
+ serializedName: "x-ms-blob-sequence-number",
+ xmlName: "x-ms-blob-sequence-number",
+ type: {
+ name: "Number"
+ }
+ },
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
+ type: {
+ name: "String"
+ }
+ },
+ date: {
+ serializedName: "date",
+ xmlName: "date",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ isServerEncrypted: {
+ serializedName: "x-ms-request-server-encrypted",
+ xmlName: "x-ms-request-server-encrypted",
+ type: {
+ name: "Boolean"
+ }
+ },
+ encryptionKeySha256: {
+ serializedName: "x-ms-encryption-key-sha256",
+ xmlName: "x-ms-encryption-key-sha256",
+ type: {
+ name: "String"
+ }
+ },
+ encryptionScope: {
+ serializedName: "x-ms-encryption-scope",
+ xmlName: "x-ms-encryption-scope",
+ type: {
+ name: "String"
+ }
+ },
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const url = {
- parameterPath: "url",
- mapper: {
- serializedName: "url",
- required: true,
- xmlName: "url",
- type: {
- name: "String"
- }
- },
- skipEncoding: true
-};
-const restype = {
- parameterPath: "restype",
- mapper: {
- defaultValue: "service",
- isConstant: true,
- serializedName: "restype",
- type: {
- name: "String"
+const PageBlobUploadPagesFromURLExceptionHeaders = {
+ serializedName: "PageBlob_uploadPagesFromURLExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "PageBlobUploadPagesFromURLExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const comp = {
- parameterPath: "comp",
- mapper: {
- defaultValue: "properties",
- isConstant: true,
- serializedName: "comp",
- type: {
- name: "String"
+const PageBlobGetPageRangesHeaders = {
+ serializedName: "PageBlob_getPageRangesHeaders",
+ type: {
+ name: "Composite",
+ className: "PageBlobGetPageRangesHeaders",
+ modelProperties: {
+ lastModified: {
+ serializedName: "last-modified",
+ xmlName: "last-modified",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
+ type: {
+ name: "String"
+ }
+ },
+ blobContentLength: {
+ serializedName: "x-ms-blob-content-length",
+ xmlName: "x-ms-blob-content-length",
+ type: {
+ name: "Number"
+ }
+ },
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
+ type: {
+ name: "String"
+ }
+ },
+ date: {
+ serializedName: "date",
+ xmlName: "date",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const timeoutInSeconds = {
- parameterPath: ["options", "timeoutInSeconds"],
- mapper: {
- constraints: {
- InclusiveMinimum: 0
- },
- serializedName: "timeout",
- xmlName: "timeout",
- type: {
- name: "Number"
+const PageBlobGetPageRangesExceptionHeaders = {
+ serializedName: "PageBlob_getPageRangesExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "PageBlobGetPageRangesExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const version = {
- parameterPath: "version",
- mapper: {
- defaultValue: "2022-11-02",
- isConstant: true,
- serializedName: "x-ms-version",
- type: {
- name: "String"
+const PageBlobGetPageRangesDiffHeaders = {
+ serializedName: "PageBlob_getPageRangesDiffHeaders",
+ type: {
+ name: "Composite",
+ className: "PageBlobGetPageRangesDiffHeaders",
+ modelProperties: {
+ lastModified: {
+ serializedName: "last-modified",
+ xmlName: "last-modified",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
+ type: {
+ name: "String"
+ }
+ },
+ blobContentLength: {
+ serializedName: "x-ms-blob-content-length",
+ xmlName: "x-ms-blob-content-length",
+ type: {
+ name: "Number"
+ }
+ },
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
+ type: {
+ name: "String"
+ }
+ },
+ date: {
+ serializedName: "date",
+ xmlName: "date",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const requestId = {
- parameterPath: ["options", "requestId"],
- mapper: {
- serializedName: "x-ms-client-request-id",
- xmlName: "x-ms-client-request-id",
- type: {
- name: "String"
+const PageBlobGetPageRangesDiffExceptionHeaders = {
+ serializedName: "PageBlob_getPageRangesDiffExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "PageBlobGetPageRangesDiffExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const accept1 = {
- parameterPath: "accept",
- mapper: {
- defaultValue: "application/xml",
- isConstant: true,
- serializedName: "Accept",
- type: {
- name: "String"
+const PageBlobResizeHeaders = {
+ serializedName: "PageBlob_resizeHeaders",
+ type: {
+ name: "Composite",
+ className: "PageBlobResizeHeaders",
+ modelProperties: {
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
+ type: {
+ name: "String"
+ }
+ },
+ lastModified: {
+ serializedName: "last-modified",
+ xmlName: "last-modified",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ blobSequenceNumber: {
+ serializedName: "x-ms-blob-sequence-number",
+ xmlName: "x-ms-blob-sequence-number",
+ type: {
+ name: "Number"
+ }
+ },
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
+ type: {
+ name: "String"
+ }
+ },
+ date: {
+ serializedName: "date",
+ xmlName: "date",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const comp1 = {
- parameterPath: "comp",
- mapper: {
- defaultValue: "stats",
- isConstant: true,
- serializedName: "comp",
- type: {
- name: "String"
+const PageBlobResizeExceptionHeaders = {
+ serializedName: "PageBlob_resizeExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "PageBlobResizeExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const comp2 = {
- parameterPath: "comp",
- mapper: {
- defaultValue: "list",
- isConstant: true,
- serializedName: "comp",
- type: {
- name: "String"
- }
- }
-};
-const prefix = {
- parameterPath: ["options", "prefix"],
- mapper: {
- serializedName: "prefix",
- xmlName: "prefix",
- type: {
- name: "String"
- }
- }
-};
-const marker = {
- parameterPath: ["options", "marker"],
- mapper: {
- serializedName: "marker",
- xmlName: "marker",
- type: {
- name: "String"
+const PageBlobUpdateSequenceNumberHeaders = {
+ serializedName: "PageBlob_updateSequenceNumberHeaders",
+ type: {
+ name: "Composite",
+ className: "PageBlobUpdateSequenceNumberHeaders",
+ modelProperties: {
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
+ type: {
+ name: "String"
+ }
+ },
+ lastModified: {
+ serializedName: "last-modified",
+ xmlName: "last-modified",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ blobSequenceNumber: {
+ serializedName: "x-ms-blob-sequence-number",
+ xmlName: "x-ms-blob-sequence-number",
+ type: {
+ name: "Number"
+ }
+ },
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
+ type: {
+ name: "String"
+ }
+ },
+ date: {
+ serializedName: "date",
+ xmlName: "date",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const maxPageSize = {
- parameterPath: ["options", "maxPageSize"],
- mapper: {
- constraints: {
- InclusiveMinimum: 1
- },
- serializedName: "maxresults",
- xmlName: "maxresults",
- type: {
- name: "Number"
+const PageBlobUpdateSequenceNumberExceptionHeaders = {
+ serializedName: "PageBlob_updateSequenceNumberExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "PageBlobUpdateSequenceNumberExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const include = {
- parameterPath: ["options", "include"],
- mapper: {
- serializedName: "include",
- xmlName: "include",
- xmlElementName: "ListContainersIncludeType",
- type: {
- name: "Sequence",
- element: {
+const PageBlobCopyIncrementalHeaders = {
+ serializedName: "PageBlob_copyIncrementalHeaders",
+ type: {
+ name: "Composite",
+ className: "PageBlobCopyIncrementalHeaders",
+ modelProperties: {
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
+ type: {
+ name: "String"
+ }
+ },
+ lastModified: {
+ serializedName: "last-modified",
+ xmlName: "last-modified",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
+ type: {
+ name: "String"
+ }
+ },
+ date: {
+ serializedName: "date",
+ xmlName: "date",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ copyId: {
+ serializedName: "x-ms-copy-id",
+ xmlName: "x-ms-copy-id",
+ type: {
+ name: "String"
+ }
+ },
+ copyStatus: {
+ serializedName: "x-ms-copy-status",
+ xmlName: "x-ms-copy-status",
type: {
name: "Enum",
- allowedValues: ["metadata", "deleted", "system"]
+ allowedValues: ["pending", "success", "aborted", "failed"]
+ }
+ },
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
}
}
}
- },
- collectionFormat: coreHttp.QueryCollectionFormat.Csv
-};
-const keyInfo = {
- parameterPath: "keyInfo",
- mapper: KeyInfo
-};
-const comp3 = {
- parameterPath: "comp",
- mapper: {
- defaultValue: "userdelegationkey",
- isConstant: true,
- serializedName: "comp",
- type: {
- name: "String"
- }
- }
-};
-const restype1 = {
- parameterPath: "restype",
- mapper: {
- defaultValue: "account",
- isConstant: true,
- serializedName: "restype",
- type: {
- name: "String"
- }
- }
-};
-const body = {
- parameterPath: "body",
- mapper: {
- serializedName: "body",
- required: true,
- xmlName: "body",
- type: {
- name: "Stream"
- }
- }
-};
-const comp4 = {
- parameterPath: "comp",
- mapper: {
- defaultValue: "batch",
- isConstant: true,
- serializedName: "comp",
- type: {
- name: "String"
- }
}
};
-const contentLength = {
- parameterPath: "contentLength",
- mapper: {
- serializedName: "Content-Length",
- required: true,
- xmlName: "Content-Length",
- type: {
- name: "Number"
+const PageBlobCopyIncrementalExceptionHeaders = {
+ serializedName: "PageBlob_copyIncrementalExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "PageBlobCopyIncrementalExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const multipartContentType = {
- parameterPath: "multipartContentType",
- mapper: {
- serializedName: "Content-Type",
- required: true,
- xmlName: "Content-Type",
- type: {
- name: "String"
+const AppendBlobCreateHeaders = {
+ serializedName: "AppendBlob_createHeaders",
+ type: {
+ name: "Composite",
+ className: "AppendBlobCreateHeaders",
+ modelProperties: {
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
+ type: {
+ name: "String"
+ }
+ },
+ lastModified: {
+ serializedName: "last-modified",
+ xmlName: "last-modified",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ contentMD5: {
+ serializedName: "content-md5",
+ xmlName: "content-md5",
+ type: {
+ name: "ByteArray"
+ }
+ },
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
+ type: {
+ name: "String"
+ }
+ },
+ versionId: {
+ serializedName: "x-ms-version-id",
+ xmlName: "x-ms-version-id",
+ type: {
+ name: "String"
+ }
+ },
+ date: {
+ serializedName: "date",
+ xmlName: "date",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ isServerEncrypted: {
+ serializedName: "x-ms-request-server-encrypted",
+ xmlName: "x-ms-request-server-encrypted",
+ type: {
+ name: "Boolean"
+ }
+ },
+ encryptionKeySha256: {
+ serializedName: "x-ms-encryption-key-sha256",
+ xmlName: "x-ms-encryption-key-sha256",
+ type: {
+ name: "String"
+ }
+ },
+ encryptionScope: {
+ serializedName: "x-ms-encryption-scope",
+ xmlName: "x-ms-encryption-scope",
+ type: {
+ name: "String"
+ }
+ },
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const comp5 = {
- parameterPath: "comp",
- mapper: {
- defaultValue: "blobs",
- isConstant: true,
- serializedName: "comp",
- type: {
- name: "String"
+const AppendBlobCreateExceptionHeaders = {
+ serializedName: "AppendBlob_createExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "AppendBlobCreateExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const where = {
- parameterPath: ["options", "where"],
- mapper: {
- serializedName: "where",
- xmlName: "where",
- type: {
- name: "String"
+const AppendBlobAppendBlockHeaders = {
+ serializedName: "AppendBlob_appendBlockHeaders",
+ type: {
+ name: "Composite",
+ className: "AppendBlobAppendBlockHeaders",
+ modelProperties: {
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
+ type: {
+ name: "String"
+ }
+ },
+ lastModified: {
+ serializedName: "last-modified",
+ xmlName: "last-modified",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ contentMD5: {
+ serializedName: "content-md5",
+ xmlName: "content-md5",
+ type: {
+ name: "ByteArray"
+ }
+ },
+ xMsContentCrc64: {
+ serializedName: "x-ms-content-crc64",
+ xmlName: "x-ms-content-crc64",
+ type: {
+ name: "ByteArray"
+ }
+ },
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
+ type: {
+ name: "String"
+ }
+ },
+ date: {
+ serializedName: "date",
+ xmlName: "date",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ blobAppendOffset: {
+ serializedName: "x-ms-blob-append-offset",
+ xmlName: "x-ms-blob-append-offset",
+ type: {
+ name: "String"
+ }
+ },
+ blobCommittedBlockCount: {
+ serializedName: "x-ms-blob-committed-block-count",
+ xmlName: "x-ms-blob-committed-block-count",
+ type: {
+ name: "Number"
+ }
+ },
+ isServerEncrypted: {
+ serializedName: "x-ms-request-server-encrypted",
+ xmlName: "x-ms-request-server-encrypted",
+ type: {
+ name: "Boolean"
+ }
+ },
+ encryptionKeySha256: {
+ serializedName: "x-ms-encryption-key-sha256",
+ xmlName: "x-ms-encryption-key-sha256",
+ type: {
+ name: "String"
+ }
+ },
+ encryptionScope: {
+ serializedName: "x-ms-encryption-scope",
+ xmlName: "x-ms-encryption-scope",
+ type: {
+ name: "String"
+ }
+ },
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const restype2 = {
- parameterPath: "restype",
- mapper: {
- defaultValue: "container",
- isConstant: true,
- serializedName: "restype",
- type: {
- name: "String"
+const AppendBlobAppendBlockExceptionHeaders = {
+ serializedName: "AppendBlob_appendBlockExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "AppendBlobAppendBlockExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const metadata = {
- parameterPath: ["options", "metadata"],
- mapper: {
- serializedName: "x-ms-meta",
- xmlName: "x-ms-meta",
- type: {
- name: "Dictionary",
- value: { type: { name: "String" } }
- },
- headerCollectionPrefix: "x-ms-meta-"
- }
-};
-const access = {
- parameterPath: ["options", "access"],
- mapper: {
- serializedName: "x-ms-blob-public-access",
- xmlName: "x-ms-blob-public-access",
- type: {
- name: "Enum",
- allowedValues: ["container", "blob"]
- }
- }
-};
-const defaultEncryptionScope = {
- parameterPath: [
- "options",
- "containerEncryptionScope",
- "defaultEncryptionScope"
- ],
- mapper: {
- serializedName: "x-ms-default-encryption-scope",
- xmlName: "x-ms-default-encryption-scope",
- type: {
- name: "String"
- }
- }
-};
-const preventEncryptionScopeOverride = {
- parameterPath: [
- "options",
- "containerEncryptionScope",
- "preventEncryptionScopeOverride"
- ],
- mapper: {
- serializedName: "x-ms-deny-encryption-scope-override",
- xmlName: "x-ms-deny-encryption-scope-override",
- type: {
- name: "Boolean"
- }
- }
-};
-const leaseId = {
- parameterPath: ["options", "leaseAccessConditions", "leaseId"],
- mapper: {
- serializedName: "x-ms-lease-id",
- xmlName: "x-ms-lease-id",
- type: {
- name: "String"
- }
- }
-};
-const ifModifiedSince = {
- parameterPath: ["options", "modifiedAccessConditions", "ifModifiedSince"],
- mapper: {
- serializedName: "If-Modified-Since",
- xmlName: "If-Modified-Since",
- type: {
- name: "DateTimeRfc1123"
- }
- }
-};
-const ifUnmodifiedSince = {
- parameterPath: ["options", "modifiedAccessConditions", "ifUnmodifiedSince"],
- mapper: {
- serializedName: "If-Unmodified-Since",
- xmlName: "If-Unmodified-Since",
- type: {
- name: "DateTimeRfc1123"
+const AppendBlobAppendBlockFromUrlHeaders = {
+ serializedName: "AppendBlob_appendBlockFromUrlHeaders",
+ type: {
+ name: "Composite",
+ className: "AppendBlobAppendBlockFromUrlHeaders",
+ modelProperties: {
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
+ type: {
+ name: "String"
+ }
+ },
+ lastModified: {
+ serializedName: "last-modified",
+ xmlName: "last-modified",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ contentMD5: {
+ serializedName: "content-md5",
+ xmlName: "content-md5",
+ type: {
+ name: "ByteArray"
+ }
+ },
+ xMsContentCrc64: {
+ serializedName: "x-ms-content-crc64",
+ xmlName: "x-ms-content-crc64",
+ type: {
+ name: "ByteArray"
+ }
+ },
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
+ type: {
+ name: "String"
+ }
+ },
+ date: {
+ serializedName: "date",
+ xmlName: "date",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ blobAppendOffset: {
+ serializedName: "x-ms-blob-append-offset",
+ xmlName: "x-ms-blob-append-offset",
+ type: {
+ name: "String"
+ }
+ },
+ blobCommittedBlockCount: {
+ serializedName: "x-ms-blob-committed-block-count",
+ xmlName: "x-ms-blob-committed-block-count",
+ type: {
+ name: "Number"
+ }
+ },
+ encryptionKeySha256: {
+ serializedName: "x-ms-encryption-key-sha256",
+ xmlName: "x-ms-encryption-key-sha256",
+ type: {
+ name: "String"
+ }
+ },
+ encryptionScope: {
+ serializedName: "x-ms-encryption-scope",
+ xmlName: "x-ms-encryption-scope",
+ type: {
+ name: "String"
+ }
+ },
+ isServerEncrypted: {
+ serializedName: "x-ms-request-server-encrypted",
+ xmlName: "x-ms-request-server-encrypted",
+ type: {
+ name: "Boolean"
+ }
+ },
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const comp6 = {
- parameterPath: "comp",
- mapper: {
- defaultValue: "metadata",
- isConstant: true,
- serializedName: "comp",
- type: {
- name: "String"
+const AppendBlobAppendBlockFromUrlExceptionHeaders = {
+ serializedName: "AppendBlob_appendBlockFromUrlExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "AppendBlobAppendBlockFromUrlExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const comp7 = {
- parameterPath: "comp",
- mapper: {
- defaultValue: "acl",
- isConstant: true,
- serializedName: "comp",
- type: {
- name: "String"
+const AppendBlobSealHeaders = {
+ serializedName: "AppendBlob_sealHeaders",
+ type: {
+ name: "Composite",
+ className: "AppendBlobSealHeaders",
+ modelProperties: {
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
+ type: {
+ name: "String"
+ }
+ },
+ lastModified: {
+ serializedName: "last-modified",
+ xmlName: "last-modified",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
+ type: {
+ name: "String"
+ }
+ },
+ date: {
+ serializedName: "date",
+ xmlName: "date",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ isSealed: {
+ serializedName: "x-ms-blob-sealed",
+ xmlName: "x-ms-blob-sealed",
+ type: {
+ name: "Boolean"
+ }
+ }
}
}
};
-const containerAcl = {
- parameterPath: ["options", "containerAcl"],
- mapper: {
- serializedName: "containerAcl",
- xmlName: "SignedIdentifiers",
- xmlIsWrapped: true,
- xmlElementName: "SignedIdentifier",
- type: {
- name: "Sequence",
- element: {
+const AppendBlobSealExceptionHeaders = {
+ serializedName: "AppendBlob_sealExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "AppendBlobSealExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
type: {
- name: "Composite",
- className: "SignedIdentifier"
+ name: "String"
}
}
}
}
};
-const comp8 = {
- parameterPath: "comp",
- mapper: {
- defaultValue: "undelete",
- isConstant: true,
- serializedName: "comp",
- type: {
- name: "String"
+const BlockBlobUploadHeaders = {
+ serializedName: "BlockBlob_uploadHeaders",
+ type: {
+ name: "Composite",
+ className: "BlockBlobUploadHeaders",
+ modelProperties: {
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
+ type: {
+ name: "String"
+ }
+ },
+ lastModified: {
+ serializedName: "last-modified",
+ xmlName: "last-modified",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ contentMD5: {
+ serializedName: "content-md5",
+ xmlName: "content-md5",
+ type: {
+ name: "ByteArray"
+ }
+ },
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
+ type: {
+ name: "String"
+ }
+ },
+ versionId: {
+ serializedName: "x-ms-version-id",
+ xmlName: "x-ms-version-id",
+ type: {
+ name: "String"
+ }
+ },
+ date: {
+ serializedName: "date",
+ xmlName: "date",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ isServerEncrypted: {
+ serializedName: "x-ms-request-server-encrypted",
+ xmlName: "x-ms-request-server-encrypted",
+ type: {
+ name: "Boolean"
+ }
+ },
+ encryptionKeySha256: {
+ serializedName: "x-ms-encryption-key-sha256",
+ xmlName: "x-ms-encryption-key-sha256",
+ type: {
+ name: "String"
+ }
+ },
+ encryptionScope: {
+ serializedName: "x-ms-encryption-scope",
+ xmlName: "x-ms-encryption-scope",
+ type: {
+ name: "String"
+ }
+ },
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const deletedContainerName = {
- parameterPath: ["options", "deletedContainerName"],
- mapper: {
- serializedName: "x-ms-deleted-container-name",
- xmlName: "x-ms-deleted-container-name",
- type: {
- name: "String"
+const BlockBlobUploadExceptionHeaders = {
+ serializedName: "BlockBlob_uploadExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "BlockBlobUploadExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const deletedContainerVersion = {
- parameterPath: ["options", "deletedContainerVersion"],
- mapper: {
- serializedName: "x-ms-deleted-container-version",
- xmlName: "x-ms-deleted-container-version",
- type: {
- name: "String"
+const BlockBlobPutBlobFromUrlHeaders = {
+ serializedName: "BlockBlob_putBlobFromUrlHeaders",
+ type: {
+ name: "Composite",
+ className: "BlockBlobPutBlobFromUrlHeaders",
+ modelProperties: {
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
+ type: {
+ name: "String"
+ }
+ },
+ lastModified: {
+ serializedName: "last-modified",
+ xmlName: "last-modified",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ contentMD5: {
+ serializedName: "content-md5",
+ xmlName: "content-md5",
+ type: {
+ name: "ByteArray"
+ }
+ },
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
+ type: {
+ name: "String"
+ }
+ },
+ versionId: {
+ serializedName: "x-ms-version-id",
+ xmlName: "x-ms-version-id",
+ type: {
+ name: "String"
+ }
+ },
+ date: {
+ serializedName: "date",
+ xmlName: "date",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ isServerEncrypted: {
+ serializedName: "x-ms-request-server-encrypted",
+ xmlName: "x-ms-request-server-encrypted",
+ type: {
+ name: "Boolean"
+ }
+ },
+ encryptionKeySha256: {
+ serializedName: "x-ms-encryption-key-sha256",
+ xmlName: "x-ms-encryption-key-sha256",
+ type: {
+ name: "String"
+ }
+ },
+ encryptionScope: {
+ serializedName: "x-ms-encryption-scope",
+ xmlName: "x-ms-encryption-scope",
+ type: {
+ name: "String"
+ }
+ },
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const comp9 = {
- parameterPath: "comp",
- mapper: {
- defaultValue: "rename",
- isConstant: true,
- serializedName: "comp",
- type: {
- name: "String"
+const BlockBlobPutBlobFromUrlExceptionHeaders = {
+ serializedName: "BlockBlob_putBlobFromUrlExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "BlockBlobPutBlobFromUrlExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const sourceContainerName = {
- parameterPath: "sourceContainerName",
- mapper: {
- serializedName: "x-ms-source-container-name",
- required: true,
- xmlName: "x-ms-source-container-name",
- type: {
- name: "String"
- }
- }
-};
-const sourceLeaseId = {
- parameterPath: ["options", "sourceLeaseId"],
- mapper: {
- serializedName: "x-ms-source-lease-id",
- xmlName: "x-ms-source-lease-id",
- type: {
- name: "String"
- }
- }
-};
-const comp10 = {
- parameterPath: "comp",
- mapper: {
- defaultValue: "lease",
- isConstant: true,
- serializedName: "comp",
- type: {
- name: "String"
- }
- }
-};
-const action = {
- parameterPath: "action",
- mapper: {
- defaultValue: "acquire",
- isConstant: true,
- serializedName: "x-ms-lease-action",
- type: {
- name: "String"
- }
- }
-};
-const duration = {
- parameterPath: ["options", "duration"],
- mapper: {
- serializedName: "x-ms-lease-duration",
- xmlName: "x-ms-lease-duration",
- type: {
- name: "Number"
- }
- }
-};
-const proposedLeaseId = {
- parameterPath: ["options", "proposedLeaseId"],
- mapper: {
- serializedName: "x-ms-proposed-lease-id",
- xmlName: "x-ms-proposed-lease-id",
- type: {
- name: "String"
- }
- }
-};
-const action1 = {
- parameterPath: "action",
- mapper: {
- defaultValue: "release",
- isConstant: true,
- serializedName: "x-ms-lease-action",
- type: {
- name: "String"
+const BlockBlobStageBlockHeaders = {
+ serializedName: "BlockBlob_stageBlockHeaders",
+ type: {
+ name: "Composite",
+ className: "BlockBlobStageBlockHeaders",
+ modelProperties: {
+ contentMD5: {
+ serializedName: "content-md5",
+ xmlName: "content-md5",
+ type: {
+ name: "ByteArray"
+ }
+ },
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
+ type: {
+ name: "String"
+ }
+ },
+ date: {
+ serializedName: "date",
+ xmlName: "date",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ xMsContentCrc64: {
+ serializedName: "x-ms-content-crc64",
+ xmlName: "x-ms-content-crc64",
+ type: {
+ name: "ByteArray"
+ }
+ },
+ isServerEncrypted: {
+ serializedName: "x-ms-request-server-encrypted",
+ xmlName: "x-ms-request-server-encrypted",
+ type: {
+ name: "Boolean"
+ }
+ },
+ encryptionKeySha256: {
+ serializedName: "x-ms-encryption-key-sha256",
+ xmlName: "x-ms-encryption-key-sha256",
+ type: {
+ name: "String"
+ }
+ },
+ encryptionScope: {
+ serializedName: "x-ms-encryption-scope",
+ xmlName: "x-ms-encryption-scope",
+ type: {
+ name: "String"
+ }
+ },
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const leaseId1 = {
- parameterPath: "leaseId",
- mapper: {
- serializedName: "x-ms-lease-id",
- required: true,
- xmlName: "x-ms-lease-id",
- type: {
- name: "String"
+const BlockBlobStageBlockExceptionHeaders = {
+ serializedName: "BlockBlob_stageBlockExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "BlockBlobStageBlockExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const action2 = {
- parameterPath: "action",
- mapper: {
- defaultValue: "renew",
- isConstant: true,
- serializedName: "x-ms-lease-action",
- type: {
- name: "String"
+const BlockBlobStageBlockFromURLHeaders = {
+ serializedName: "BlockBlob_stageBlockFromURLHeaders",
+ type: {
+ name: "Composite",
+ className: "BlockBlobStageBlockFromURLHeaders",
+ modelProperties: {
+ contentMD5: {
+ serializedName: "content-md5",
+ xmlName: "content-md5",
+ type: {
+ name: "ByteArray"
+ }
+ },
+ xMsContentCrc64: {
+ serializedName: "x-ms-content-crc64",
+ xmlName: "x-ms-content-crc64",
+ type: {
+ name: "ByteArray"
+ }
+ },
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
+ type: {
+ name: "String"
+ }
+ },
+ date: {
+ serializedName: "date",
+ xmlName: "date",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ isServerEncrypted: {
+ serializedName: "x-ms-request-server-encrypted",
+ xmlName: "x-ms-request-server-encrypted",
+ type: {
+ name: "Boolean"
+ }
+ },
+ encryptionKeySha256: {
+ serializedName: "x-ms-encryption-key-sha256",
+ xmlName: "x-ms-encryption-key-sha256",
+ type: {
+ name: "String"
+ }
+ },
+ encryptionScope: {
+ serializedName: "x-ms-encryption-scope",
+ xmlName: "x-ms-encryption-scope",
+ type: {
+ name: "String"
+ }
+ },
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const action3 = {
- parameterPath: "action",
- mapper: {
- defaultValue: "break",
- isConstant: true,
- serializedName: "x-ms-lease-action",
- type: {
- name: "String"
+const BlockBlobStageBlockFromURLExceptionHeaders = {
+ serializedName: "BlockBlob_stageBlockFromURLExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "BlockBlobStageBlockFromURLExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const breakPeriod = {
- parameterPath: ["options", "breakPeriod"],
- mapper: {
- serializedName: "x-ms-lease-break-period",
- xmlName: "x-ms-lease-break-period",
- type: {
- name: "Number"
+const BlockBlobCommitBlockListHeaders = {
+ serializedName: "BlockBlob_commitBlockListHeaders",
+ type: {
+ name: "Composite",
+ className: "BlockBlobCommitBlockListHeaders",
+ modelProperties: {
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
+ type: {
+ name: "String"
+ }
+ },
+ lastModified: {
+ serializedName: "last-modified",
+ xmlName: "last-modified",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ contentMD5: {
+ serializedName: "content-md5",
+ xmlName: "content-md5",
+ type: {
+ name: "ByteArray"
+ }
+ },
+ xMsContentCrc64: {
+ serializedName: "x-ms-content-crc64",
+ xmlName: "x-ms-content-crc64",
+ type: {
+ name: "ByteArray"
+ }
+ },
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
+ type: {
+ name: "String"
+ }
+ },
+ versionId: {
+ serializedName: "x-ms-version-id",
+ xmlName: "x-ms-version-id",
+ type: {
+ name: "String"
+ }
+ },
+ date: {
+ serializedName: "date",
+ xmlName: "date",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ isServerEncrypted: {
+ serializedName: "x-ms-request-server-encrypted",
+ xmlName: "x-ms-request-server-encrypted",
+ type: {
+ name: "Boolean"
+ }
+ },
+ encryptionKeySha256: {
+ serializedName: "x-ms-encryption-key-sha256",
+ xmlName: "x-ms-encryption-key-sha256",
+ type: {
+ name: "String"
+ }
+ },
+ encryptionScope: {
+ serializedName: "x-ms-encryption-scope",
+ xmlName: "x-ms-encryption-scope",
+ type: {
+ name: "String"
+ }
+ },
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const action4 = {
- parameterPath: "action",
- mapper: {
- defaultValue: "change",
- isConstant: true,
- serializedName: "x-ms-lease-action",
- type: {
- name: "String"
+const BlockBlobCommitBlockListExceptionHeaders = {
+ serializedName: "BlockBlob_commitBlockListExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "BlockBlobCommitBlockListExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const proposedLeaseId1 = {
- parameterPath: "proposedLeaseId",
- mapper: {
- serializedName: "x-ms-proposed-lease-id",
- required: true,
- xmlName: "x-ms-proposed-lease-id",
- type: {
- name: "String"
+const BlockBlobGetBlockListHeaders = {
+ serializedName: "BlockBlob_getBlockListHeaders",
+ type: {
+ name: "Composite",
+ className: "BlockBlobGetBlockListHeaders",
+ modelProperties: {
+ lastModified: {
+ serializedName: "last-modified",
+ xmlName: "last-modified",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ etag: {
+ serializedName: "etag",
+ xmlName: "etag",
+ type: {
+ name: "String"
+ }
+ },
+ contentType: {
+ serializedName: "content-type",
+ xmlName: "content-type",
+ type: {
+ name: "String"
+ }
+ },
+ blobContentLength: {
+ serializedName: "x-ms-blob-content-length",
+ xmlName: "x-ms-blob-content-length",
+ type: {
+ name: "Number"
+ }
+ },
+ clientRequestId: {
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ requestId: {
+ serializedName: "x-ms-request-id",
+ xmlName: "x-ms-request-id",
+ type: {
+ name: "String"
+ }
+ },
+ version: {
+ serializedName: "x-ms-version",
+ xmlName: "x-ms-version",
+ type: {
+ name: "String"
+ }
+ },
+ date: {
+ serializedName: "date",
+ xmlName: "date",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ },
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
+ type: {
+ name: "String"
+ }
+ }
}
}
};
-const include1 = {
- parameterPath: ["options", "include"],
- mapper: {
- serializedName: "include",
- xmlName: "include",
- xmlElementName: "ListBlobsIncludeItem",
- type: {
- name: "Sequence",
- element: {
+const BlockBlobGetBlockListExceptionHeaders = {
+ serializedName: "BlockBlob_getBlockListExceptionHeaders",
+ type: {
+ name: "Composite",
+ className: "BlockBlobGetBlockListExceptionHeaders",
+ modelProperties: {
+ errorCode: {
+ serializedName: "x-ms-error-code",
+ xmlName: "x-ms-error-code",
type: {
- name: "Enum",
- allowedValues: [
- "copy",
- "deleted",
- "metadata",
- "snapshots",
- "uncommittedblobs",
- "versions",
- "tags",
- "immutabilitypolicy",
- "legalhold",
- "deletedwithversions"
- ]
+ name: "String"
}
}
}
- },
- collectionFormat: coreHttp.QueryCollectionFormat.Csv
+ }
};
-const delimiter = {
- parameterPath: "delimiter",
- mapper: {
- serializedName: "delimiter",
- required: true,
- xmlName: "delimiter",
+
+var Mappers = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ BlobServiceProperties: BlobServiceProperties,
+ Logging: Logging,
+ RetentionPolicy: RetentionPolicy,
+ Metrics: Metrics,
+ CorsRule: CorsRule,
+ StaticWebsite: StaticWebsite,
+ StorageError: StorageError,
+ BlobServiceStatistics: BlobServiceStatistics,
+ GeoReplication: GeoReplication,
+ ListContainersSegmentResponse: ListContainersSegmentResponse,
+ ContainerItem: ContainerItem,
+ ContainerProperties: ContainerProperties,
+ KeyInfo: KeyInfo,
+ UserDelegationKey: UserDelegationKey,
+ FilterBlobSegment: FilterBlobSegment,
+ FilterBlobItem: FilterBlobItem,
+ BlobTags: BlobTags,
+ BlobTag: BlobTag,
+ SignedIdentifier: SignedIdentifier,
+ AccessPolicy: AccessPolicy,
+ ListBlobsFlatSegmentResponse: ListBlobsFlatSegmentResponse,
+ BlobFlatListSegment: BlobFlatListSegment,
+ BlobItemInternal: BlobItemInternal,
+ BlobName: BlobName,
+ BlobPropertiesInternal: BlobPropertiesInternal,
+ ListBlobsHierarchySegmentResponse: ListBlobsHierarchySegmentResponse,
+ BlobHierarchyListSegment: BlobHierarchyListSegment,
+ BlobPrefix: BlobPrefix,
+ BlockLookupList: BlockLookupList,
+ BlockList: BlockList,
+ Block: Block,
+ PageList: PageList,
+ PageRange: PageRange,
+ ClearRange: ClearRange,
+ QueryRequest: QueryRequest,
+ QuerySerialization: QuerySerialization,
+ QueryFormat: QueryFormat,
+ DelimitedTextConfiguration: DelimitedTextConfiguration,
+ JsonTextConfiguration: JsonTextConfiguration,
+ ArrowConfiguration: ArrowConfiguration,
+ ArrowField: ArrowField,
+ ServiceSetPropertiesHeaders: ServiceSetPropertiesHeaders,
+ ServiceSetPropertiesExceptionHeaders: ServiceSetPropertiesExceptionHeaders,
+ ServiceGetPropertiesHeaders: ServiceGetPropertiesHeaders,
+ ServiceGetPropertiesExceptionHeaders: ServiceGetPropertiesExceptionHeaders,
+ ServiceGetStatisticsHeaders: ServiceGetStatisticsHeaders,
+ ServiceGetStatisticsExceptionHeaders: ServiceGetStatisticsExceptionHeaders,
+ ServiceListContainersSegmentHeaders: ServiceListContainersSegmentHeaders,
+ ServiceListContainersSegmentExceptionHeaders: ServiceListContainersSegmentExceptionHeaders,
+ ServiceGetUserDelegationKeyHeaders: ServiceGetUserDelegationKeyHeaders,
+ ServiceGetUserDelegationKeyExceptionHeaders: ServiceGetUserDelegationKeyExceptionHeaders,
+ ServiceGetAccountInfoHeaders: ServiceGetAccountInfoHeaders,
+ ServiceGetAccountInfoExceptionHeaders: ServiceGetAccountInfoExceptionHeaders,
+ ServiceSubmitBatchHeaders: ServiceSubmitBatchHeaders,
+ ServiceSubmitBatchExceptionHeaders: ServiceSubmitBatchExceptionHeaders,
+ ServiceFilterBlobsHeaders: ServiceFilterBlobsHeaders,
+ ServiceFilterBlobsExceptionHeaders: ServiceFilterBlobsExceptionHeaders,
+ ContainerCreateHeaders: ContainerCreateHeaders,
+ ContainerCreateExceptionHeaders: ContainerCreateExceptionHeaders,
+ ContainerGetPropertiesHeaders: ContainerGetPropertiesHeaders,
+ ContainerGetPropertiesExceptionHeaders: ContainerGetPropertiesExceptionHeaders,
+ ContainerDeleteHeaders: ContainerDeleteHeaders,
+ ContainerDeleteExceptionHeaders: ContainerDeleteExceptionHeaders,
+ ContainerSetMetadataHeaders: ContainerSetMetadataHeaders,
+ ContainerSetMetadataExceptionHeaders: ContainerSetMetadataExceptionHeaders,
+ ContainerGetAccessPolicyHeaders: ContainerGetAccessPolicyHeaders,
+ ContainerGetAccessPolicyExceptionHeaders: ContainerGetAccessPolicyExceptionHeaders,
+ ContainerSetAccessPolicyHeaders: ContainerSetAccessPolicyHeaders,
+ ContainerSetAccessPolicyExceptionHeaders: ContainerSetAccessPolicyExceptionHeaders,
+ ContainerRestoreHeaders: ContainerRestoreHeaders,
+ ContainerRestoreExceptionHeaders: ContainerRestoreExceptionHeaders,
+ ContainerRenameHeaders: ContainerRenameHeaders,
+ ContainerRenameExceptionHeaders: ContainerRenameExceptionHeaders,
+ ContainerSubmitBatchHeaders: ContainerSubmitBatchHeaders,
+ ContainerSubmitBatchExceptionHeaders: ContainerSubmitBatchExceptionHeaders,
+ ContainerFilterBlobsHeaders: ContainerFilterBlobsHeaders,
+ ContainerFilterBlobsExceptionHeaders: ContainerFilterBlobsExceptionHeaders,
+ ContainerAcquireLeaseHeaders: ContainerAcquireLeaseHeaders,
+ ContainerAcquireLeaseExceptionHeaders: ContainerAcquireLeaseExceptionHeaders,
+ ContainerReleaseLeaseHeaders: ContainerReleaseLeaseHeaders,
+ ContainerReleaseLeaseExceptionHeaders: ContainerReleaseLeaseExceptionHeaders,
+ ContainerRenewLeaseHeaders: ContainerRenewLeaseHeaders,
+ ContainerRenewLeaseExceptionHeaders: ContainerRenewLeaseExceptionHeaders,
+ ContainerBreakLeaseHeaders: ContainerBreakLeaseHeaders,
+ ContainerBreakLeaseExceptionHeaders: ContainerBreakLeaseExceptionHeaders,
+ ContainerChangeLeaseHeaders: ContainerChangeLeaseHeaders,
+ ContainerChangeLeaseExceptionHeaders: ContainerChangeLeaseExceptionHeaders,
+ ContainerListBlobFlatSegmentHeaders: ContainerListBlobFlatSegmentHeaders,
+ ContainerListBlobFlatSegmentExceptionHeaders: ContainerListBlobFlatSegmentExceptionHeaders,
+ ContainerListBlobHierarchySegmentHeaders: ContainerListBlobHierarchySegmentHeaders,
+ ContainerListBlobHierarchySegmentExceptionHeaders: ContainerListBlobHierarchySegmentExceptionHeaders,
+ ContainerGetAccountInfoHeaders: ContainerGetAccountInfoHeaders,
+ ContainerGetAccountInfoExceptionHeaders: ContainerGetAccountInfoExceptionHeaders,
+ BlobDownloadHeaders: BlobDownloadHeaders,
+ BlobDownloadExceptionHeaders: BlobDownloadExceptionHeaders,
+ BlobGetPropertiesHeaders: BlobGetPropertiesHeaders,
+ BlobGetPropertiesExceptionHeaders: BlobGetPropertiesExceptionHeaders,
+ BlobDeleteHeaders: BlobDeleteHeaders,
+ BlobDeleteExceptionHeaders: BlobDeleteExceptionHeaders,
+ BlobUndeleteHeaders: BlobUndeleteHeaders,
+ BlobUndeleteExceptionHeaders: BlobUndeleteExceptionHeaders,
+ BlobSetExpiryHeaders: BlobSetExpiryHeaders,
+ BlobSetExpiryExceptionHeaders: BlobSetExpiryExceptionHeaders,
+ BlobSetHttpHeadersHeaders: BlobSetHttpHeadersHeaders,
+ BlobSetHttpHeadersExceptionHeaders: BlobSetHttpHeadersExceptionHeaders,
+ BlobSetImmutabilityPolicyHeaders: BlobSetImmutabilityPolicyHeaders,
+ BlobSetImmutabilityPolicyExceptionHeaders: BlobSetImmutabilityPolicyExceptionHeaders,
+ BlobDeleteImmutabilityPolicyHeaders: BlobDeleteImmutabilityPolicyHeaders,
+ BlobDeleteImmutabilityPolicyExceptionHeaders: BlobDeleteImmutabilityPolicyExceptionHeaders,
+ BlobSetLegalHoldHeaders: BlobSetLegalHoldHeaders,
+ BlobSetLegalHoldExceptionHeaders: BlobSetLegalHoldExceptionHeaders,
+ BlobSetMetadataHeaders: BlobSetMetadataHeaders,
+ BlobSetMetadataExceptionHeaders: BlobSetMetadataExceptionHeaders,
+ BlobAcquireLeaseHeaders: BlobAcquireLeaseHeaders,
+ BlobAcquireLeaseExceptionHeaders: BlobAcquireLeaseExceptionHeaders,
+ BlobReleaseLeaseHeaders: BlobReleaseLeaseHeaders,
+ BlobReleaseLeaseExceptionHeaders: BlobReleaseLeaseExceptionHeaders,
+ BlobRenewLeaseHeaders: BlobRenewLeaseHeaders,
+ BlobRenewLeaseExceptionHeaders: BlobRenewLeaseExceptionHeaders,
+ BlobChangeLeaseHeaders: BlobChangeLeaseHeaders,
+ BlobChangeLeaseExceptionHeaders: BlobChangeLeaseExceptionHeaders,
+ BlobBreakLeaseHeaders: BlobBreakLeaseHeaders,
+ BlobBreakLeaseExceptionHeaders: BlobBreakLeaseExceptionHeaders,
+ BlobCreateSnapshotHeaders: BlobCreateSnapshotHeaders,
+ BlobCreateSnapshotExceptionHeaders: BlobCreateSnapshotExceptionHeaders,
+ BlobStartCopyFromURLHeaders: BlobStartCopyFromURLHeaders,
+ BlobStartCopyFromURLExceptionHeaders: BlobStartCopyFromURLExceptionHeaders,
+ BlobCopyFromURLHeaders: BlobCopyFromURLHeaders,
+ BlobCopyFromURLExceptionHeaders: BlobCopyFromURLExceptionHeaders,
+ BlobAbortCopyFromURLHeaders: BlobAbortCopyFromURLHeaders,
+ BlobAbortCopyFromURLExceptionHeaders: BlobAbortCopyFromURLExceptionHeaders,
+ BlobSetTierHeaders: BlobSetTierHeaders,
+ BlobSetTierExceptionHeaders: BlobSetTierExceptionHeaders,
+ BlobGetAccountInfoHeaders: BlobGetAccountInfoHeaders,
+ BlobGetAccountInfoExceptionHeaders: BlobGetAccountInfoExceptionHeaders,
+ BlobQueryHeaders: BlobQueryHeaders,
+ BlobQueryExceptionHeaders: BlobQueryExceptionHeaders,
+ BlobGetTagsHeaders: BlobGetTagsHeaders,
+ BlobGetTagsExceptionHeaders: BlobGetTagsExceptionHeaders,
+ BlobSetTagsHeaders: BlobSetTagsHeaders,
+ BlobSetTagsExceptionHeaders: BlobSetTagsExceptionHeaders,
+ PageBlobCreateHeaders: PageBlobCreateHeaders,
+ PageBlobCreateExceptionHeaders: PageBlobCreateExceptionHeaders,
+ PageBlobUploadPagesHeaders: PageBlobUploadPagesHeaders,
+ PageBlobUploadPagesExceptionHeaders: PageBlobUploadPagesExceptionHeaders,
+ PageBlobClearPagesHeaders: PageBlobClearPagesHeaders,
+ PageBlobClearPagesExceptionHeaders: PageBlobClearPagesExceptionHeaders,
+ PageBlobUploadPagesFromURLHeaders: PageBlobUploadPagesFromURLHeaders,
+ PageBlobUploadPagesFromURLExceptionHeaders: PageBlobUploadPagesFromURLExceptionHeaders,
+ PageBlobGetPageRangesHeaders: PageBlobGetPageRangesHeaders,
+ PageBlobGetPageRangesExceptionHeaders: PageBlobGetPageRangesExceptionHeaders,
+ PageBlobGetPageRangesDiffHeaders: PageBlobGetPageRangesDiffHeaders,
+ PageBlobGetPageRangesDiffExceptionHeaders: PageBlobGetPageRangesDiffExceptionHeaders,
+ PageBlobResizeHeaders: PageBlobResizeHeaders,
+ PageBlobResizeExceptionHeaders: PageBlobResizeExceptionHeaders,
+ PageBlobUpdateSequenceNumberHeaders: PageBlobUpdateSequenceNumberHeaders,
+ PageBlobUpdateSequenceNumberExceptionHeaders: PageBlobUpdateSequenceNumberExceptionHeaders,
+ PageBlobCopyIncrementalHeaders: PageBlobCopyIncrementalHeaders,
+ PageBlobCopyIncrementalExceptionHeaders: PageBlobCopyIncrementalExceptionHeaders,
+ AppendBlobCreateHeaders: AppendBlobCreateHeaders,
+ AppendBlobCreateExceptionHeaders: AppendBlobCreateExceptionHeaders,
+ AppendBlobAppendBlockHeaders: AppendBlobAppendBlockHeaders,
+ AppendBlobAppendBlockExceptionHeaders: AppendBlobAppendBlockExceptionHeaders,
+ AppendBlobAppendBlockFromUrlHeaders: AppendBlobAppendBlockFromUrlHeaders,
+ AppendBlobAppendBlockFromUrlExceptionHeaders: AppendBlobAppendBlockFromUrlExceptionHeaders,
+ AppendBlobSealHeaders: AppendBlobSealHeaders,
+ AppendBlobSealExceptionHeaders: AppendBlobSealExceptionHeaders,
+ BlockBlobUploadHeaders: BlockBlobUploadHeaders,
+ BlockBlobUploadExceptionHeaders: BlockBlobUploadExceptionHeaders,
+ BlockBlobPutBlobFromUrlHeaders: BlockBlobPutBlobFromUrlHeaders,
+ BlockBlobPutBlobFromUrlExceptionHeaders: BlockBlobPutBlobFromUrlExceptionHeaders,
+ BlockBlobStageBlockHeaders: BlockBlobStageBlockHeaders,
+ BlockBlobStageBlockExceptionHeaders: BlockBlobStageBlockExceptionHeaders,
+ BlockBlobStageBlockFromURLHeaders: BlockBlobStageBlockFromURLHeaders,
+ BlockBlobStageBlockFromURLExceptionHeaders: BlockBlobStageBlockFromURLExceptionHeaders,
+ BlockBlobCommitBlockListHeaders: BlockBlobCommitBlockListHeaders,
+ BlockBlobCommitBlockListExceptionHeaders: BlockBlobCommitBlockListExceptionHeaders,
+ BlockBlobGetBlockListHeaders: BlockBlobGetBlockListHeaders,
+ BlockBlobGetBlockListExceptionHeaders: BlockBlobGetBlockListExceptionHeaders
+});
+
+/*
+ * Copyright (c) Microsoft Corporation.
+ * Licensed under the MIT License.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is regenerated.
+ */
+const contentType = {
+ parameterPath: ["options", "contentType"],
+ mapper: {
+ defaultValue: "application/xml",
+ isConstant: true,
+ serializedName: "Content-Type",
type: {
name: "String"
}
}
};
-const snapshot = {
- parameterPath: ["options", "snapshot"],
+const blobServiceProperties = {
+ parameterPath: "blobServiceProperties",
+ mapper: BlobServiceProperties
+};
+const accept = {
+ parameterPath: "accept",
mapper: {
- serializedName: "snapshot",
- xmlName: "snapshot",
+ defaultValue: "application/xml",
+ isConstant: true,
+ serializedName: "Accept",
type: {
name: "String"
}
}
};
-const versionId = {
- parameterPath: ["options", "versionId"],
+const url = {
+ parameterPath: "url",
mapper: {
- serializedName: "versionid",
- xmlName: "versionid",
+ serializedName: "url",
+ required: true,
+ xmlName: "url",
type: {
name: "String"
}
- }
+ },
+ skipEncoding: true
};
-const range = {
- parameterPath: ["options", "range"],
+const restype = {
+ parameterPath: "restype",
mapper: {
- serializedName: "x-ms-range",
- xmlName: "x-ms-range",
+ defaultValue: "service",
+ isConstant: true,
+ serializedName: "restype",
type: {
name: "String"
}
}
};
-const rangeGetContentMD5 = {
- parameterPath: ["options", "rangeGetContentMD5"],
+const comp = {
+ parameterPath: "comp",
mapper: {
- serializedName: "x-ms-range-get-content-md5",
- xmlName: "x-ms-range-get-content-md5",
+ defaultValue: "properties",
+ isConstant: true,
+ serializedName: "comp",
type: {
- name: "Boolean"
+ name: "String"
}
}
};
-const rangeGetContentCRC64 = {
- parameterPath: ["options", "rangeGetContentCRC64"],
+const timeoutInSeconds = {
+ parameterPath: ["options", "timeoutInSeconds"],
mapper: {
- serializedName: "x-ms-range-get-content-crc64",
- xmlName: "x-ms-range-get-content-crc64",
+ constraints: {
+ InclusiveMinimum: 0
+ },
+ serializedName: "timeout",
+ xmlName: "timeout",
type: {
- name: "Boolean"
+ name: "Number"
}
}
};
-const encryptionKey = {
- parameterPath: ["options", "cpkInfo", "encryptionKey"],
+const version = {
+ parameterPath: "version",
mapper: {
- serializedName: "x-ms-encryption-key",
- xmlName: "x-ms-encryption-key",
+ defaultValue: "2021-04-10",
+ isConstant: true,
+ serializedName: "x-ms-version",
type: {
name: "String"
}
}
};
-const encryptionKeySha256 = {
- parameterPath: ["options", "cpkInfo", "encryptionKeySha256"],
+const requestId = {
+ parameterPath: ["options", "requestId"],
mapper: {
- serializedName: "x-ms-encryption-key-sha256",
- xmlName: "x-ms-encryption-key-sha256",
+ serializedName: "x-ms-client-request-id",
+ xmlName: "x-ms-client-request-id",
type: {
name: "String"
}
}
};
-const encryptionAlgorithm = {
- parameterPath: ["options", "cpkInfo", "encryptionAlgorithm"],
+const accept1 = {
+ parameterPath: "accept",
mapper: {
- serializedName: "x-ms-encryption-algorithm",
- xmlName: "x-ms-encryption-algorithm",
+ defaultValue: "application/xml",
+ isConstant: true,
+ serializedName: "Accept",
type: {
name: "String"
}
}
};
-const ifMatch = {
- parameterPath: ["options", "modifiedAccessConditions", "ifMatch"],
+const comp1 = {
+ parameterPath: "comp",
mapper: {
- serializedName: "If-Match",
- xmlName: "If-Match",
+ defaultValue: "stats",
+ isConstant: true,
+ serializedName: "comp",
type: {
name: "String"
}
}
};
-const ifNoneMatch = {
- parameterPath: ["options", "modifiedAccessConditions", "ifNoneMatch"],
+const comp2 = {
+ parameterPath: "comp",
mapper: {
- serializedName: "If-None-Match",
- xmlName: "If-None-Match",
+ defaultValue: "list",
+ isConstant: true,
+ serializedName: "comp",
type: {
name: "String"
}
}
};
-const ifTags = {
- parameterPath: ["options", "modifiedAccessConditions", "ifTags"],
+const prefix = {
+ parameterPath: ["options", "prefix"],
mapper: {
- serializedName: "x-ms-if-tags",
- xmlName: "x-ms-if-tags",
+ serializedName: "prefix",
+ xmlName: "prefix",
type: {
name: "String"
}
}
};
-const deleteSnapshots = {
- parameterPath: ["options", "deleteSnapshots"],
+const marker = {
+ parameterPath: ["options", "marker"],
mapper: {
- serializedName: "x-ms-delete-snapshots",
- xmlName: "x-ms-delete-snapshots",
+ serializedName: "marker",
+ xmlName: "marker",
type: {
- name: "Enum",
- allowedValues: ["include", "only"]
+ name: "String"
}
}
};
-const blobDeleteType = {
- parameterPath: ["options", "blobDeleteType"],
+const maxPageSize = {
+ parameterPath: ["options", "maxPageSize"],
mapper: {
- serializedName: "deletetype",
- xmlName: "deletetype",
+ constraints: {
+ InclusiveMinimum: 1
+ },
+ serializedName: "maxresults",
+ xmlName: "maxresults",
type: {
- name: "String"
+ name: "Number"
}
}
};
-const comp11 = {
- parameterPath: "comp",
+const include = {
+ parameterPath: ["options", "include"],
mapper: {
- defaultValue: "expiry",
- isConstant: true,
- serializedName: "comp",
+ serializedName: "include",
+ xmlName: "include",
+ xmlElementName: "ListContainersIncludeType",
type: {
- name: "String"
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Enum",
+ allowedValues: ["metadata", "deleted", "system"]
+ }
+ }
}
- }
+ },
+ collectionFormat: coreHttp.QueryCollectionFormat.Csv
};
-const expiryOptions = {
- parameterPath: "expiryOptions",
+const keyInfo = {
+ parameterPath: "keyInfo",
+ mapper: KeyInfo
+};
+const comp3 = {
+ parameterPath: "comp",
mapper: {
- serializedName: "x-ms-expiry-option",
- required: true,
- xmlName: "x-ms-expiry-option",
+ defaultValue: "userdelegationkey",
+ isConstant: true,
+ serializedName: "comp",
type: {
name: "String"
}
}
};
-const expiresOn = {
- parameterPath: ["options", "expiresOn"],
+const restype1 = {
+ parameterPath: "restype",
mapper: {
- serializedName: "x-ms-expiry-time",
- xmlName: "x-ms-expiry-time",
+ defaultValue: "account",
+ isConstant: true,
+ serializedName: "restype",
type: {
name: "String"
}
}
};
-const blobCacheControl = {
- parameterPath: ["options", "blobHttpHeaders", "blobCacheControl"],
+const body = {
+ parameterPath: "body",
mapper: {
- serializedName: "x-ms-blob-cache-control",
- xmlName: "x-ms-blob-cache-control",
+ serializedName: "body",
+ required: true,
+ xmlName: "body",
type: {
- name: "String"
+ name: "Stream"
}
}
};
-const blobContentType = {
- parameterPath: ["options", "blobHttpHeaders", "blobContentType"],
+const comp4 = {
+ parameterPath: "comp",
mapper: {
- serializedName: "x-ms-blob-content-type",
- xmlName: "x-ms-blob-content-type",
+ defaultValue: "batch",
+ isConstant: true,
+ serializedName: "comp",
type: {
name: "String"
}
}
};
-const blobContentMD5 = {
- parameterPath: ["options", "blobHttpHeaders", "blobContentMD5"],
+const contentLength = {
+ parameterPath: "contentLength",
mapper: {
- serializedName: "x-ms-blob-content-md5",
- xmlName: "x-ms-blob-content-md5",
+ serializedName: "Content-Length",
+ required: true,
+ xmlName: "Content-Length",
type: {
- name: "ByteArray"
+ name: "Number"
}
}
};
-const blobContentEncoding = {
- parameterPath: ["options", "blobHttpHeaders", "blobContentEncoding"],
+const multipartContentType = {
+ parameterPath: "multipartContentType",
mapper: {
- serializedName: "x-ms-blob-content-encoding",
- xmlName: "x-ms-blob-content-encoding",
+ serializedName: "Content-Type",
+ required: true,
+ xmlName: "Content-Type",
type: {
name: "String"
}
}
};
-const blobContentLanguage = {
- parameterPath: ["options", "blobHttpHeaders", "blobContentLanguage"],
+const comp5 = {
+ parameterPath: "comp",
mapper: {
- serializedName: "x-ms-blob-content-language",
- xmlName: "x-ms-blob-content-language",
+ defaultValue: "blobs",
+ isConstant: true,
+ serializedName: "comp",
type: {
name: "String"
}
}
};
-const blobContentDisposition = {
- parameterPath: ["options", "blobHttpHeaders", "blobContentDisposition"],
+const where = {
+ parameterPath: ["options", "where"],
mapper: {
- serializedName: "x-ms-blob-content-disposition",
- xmlName: "x-ms-blob-content-disposition",
+ serializedName: "where",
+ xmlName: "where",
type: {
name: "String"
}
}
};
-const comp12 = {
- parameterPath: "comp",
+const restype2 = {
+ parameterPath: "restype",
mapper: {
- defaultValue: "immutabilityPolicies",
+ defaultValue: "container",
isConstant: true,
- serializedName: "comp",
+ serializedName: "restype",
type: {
name: "String"
}
}
};
-const immutabilityPolicyExpiry = {
- parameterPath: ["options", "immutabilityPolicyExpiry"],
+const metadata = {
+ parameterPath: ["options", "metadata"],
mapper: {
- serializedName: "x-ms-immutability-policy-until-date",
- xmlName: "x-ms-immutability-policy-until-date",
+ serializedName: "x-ms-meta",
+ xmlName: "x-ms-meta",
type: {
- name: "DateTimeRfc1123"
- }
+ name: "Dictionary",
+ value: { type: { name: "String" } }
+ },
+ headerCollectionPrefix: "x-ms-meta-"
}
};
-const immutabilityPolicyMode = {
- parameterPath: ["options", "immutabilityPolicyMode"],
+const access = {
+ parameterPath: ["options", "access"],
mapper: {
- serializedName: "x-ms-immutability-policy-mode",
- xmlName: "x-ms-immutability-policy-mode",
+ serializedName: "x-ms-blob-public-access",
+ xmlName: "x-ms-blob-public-access",
type: {
name: "Enum",
- allowedValues: ["Mutable", "Unlocked", "Locked"]
+ allowedValues: ["container", "blob"]
}
}
};
-const comp13 = {
- parameterPath: "comp",
+const defaultEncryptionScope = {
+ parameterPath: [
+ "options",
+ "containerEncryptionScope",
+ "defaultEncryptionScope"
+ ],
mapper: {
- defaultValue: "legalhold",
- isConstant: true,
- serializedName: "comp",
+ serializedName: "x-ms-default-encryption-scope",
+ xmlName: "x-ms-default-encryption-scope",
type: {
name: "String"
}
}
};
-const legalHold = {
- parameterPath: "legalHold",
+const preventEncryptionScopeOverride = {
+ parameterPath: [
+ "options",
+ "containerEncryptionScope",
+ "preventEncryptionScopeOverride"
+ ],
mapper: {
- serializedName: "x-ms-legal-hold",
- required: true,
- xmlName: "x-ms-legal-hold",
+ serializedName: "x-ms-deny-encryption-scope-override",
+ xmlName: "x-ms-deny-encryption-scope-override",
type: {
name: "Boolean"
}
}
};
-const encryptionScope = {
- parameterPath: ["options", "encryptionScope"],
+const leaseId = {
+ parameterPath: ["options", "leaseAccessConditions", "leaseId"],
mapper: {
- serializedName: "x-ms-encryption-scope",
- xmlName: "x-ms-encryption-scope",
+ serializedName: "x-ms-lease-id",
+ xmlName: "x-ms-lease-id",
type: {
name: "String"
}
}
};
-const comp14 = {
- parameterPath: "comp",
+const ifModifiedSince = {
+ parameterPath: ["options", "modifiedAccessConditions", "ifModifiedSince"],
mapper: {
- defaultValue: "snapshot",
- isConstant: true,
- serializedName: "comp",
+ serializedName: "If-Modified-Since",
+ xmlName: "If-Modified-Since",
type: {
- name: "String"
+ name: "DateTimeRfc1123"
}
}
};
-const tier = {
- parameterPath: ["options", "tier"],
+const ifUnmodifiedSince = {
+ parameterPath: ["options", "modifiedAccessConditions", "ifUnmodifiedSince"],
mapper: {
- serializedName: "x-ms-access-tier",
- xmlName: "x-ms-access-tier",
+ serializedName: "If-Unmodified-Since",
+ xmlName: "If-Unmodified-Since",
type: {
- name: "Enum",
- allowedValues: [
- "P4",
- "P6",
- "P10",
- "P15",
- "P20",
- "P30",
- "P40",
- "P50",
- "P60",
- "P70",
- "P80",
- "Hot",
- "Cool",
- "Archive",
- "Cold"
- ]
+ name: "DateTimeRfc1123"
}
}
};
-const rehydratePriority = {
- parameterPath: ["options", "rehydratePriority"],
+const comp6 = {
+ parameterPath: "comp",
mapper: {
- serializedName: "x-ms-rehydrate-priority",
- xmlName: "x-ms-rehydrate-priority",
+ defaultValue: "metadata",
+ isConstant: true,
+ serializedName: "comp",
type: {
- name: "Enum",
- allowedValues: ["High", "Standard"]
+ name: "String"
}
}
};
-const sourceIfModifiedSince = {
- parameterPath: [
- "options",
- "sourceModifiedAccessConditions",
- "sourceIfModifiedSince"
- ],
+const comp7 = {
+ parameterPath: "comp",
mapper: {
- serializedName: "x-ms-source-if-modified-since",
- xmlName: "x-ms-source-if-modified-since",
+ defaultValue: "acl",
+ isConstant: true,
+ serializedName: "comp",
type: {
- name: "DateTimeRfc1123"
+ name: "String"
}
}
};
-const sourceIfUnmodifiedSince = {
- parameterPath: [
- "options",
- "sourceModifiedAccessConditions",
- "sourceIfUnmodifiedSince"
- ],
+const containerAcl = {
+ parameterPath: ["options", "containerAcl"],
mapper: {
- serializedName: "x-ms-source-if-unmodified-since",
- xmlName: "x-ms-source-if-unmodified-since",
+ serializedName: "containerAcl",
+ xmlName: "SignedIdentifiers",
+ xmlIsWrapped: true,
+ xmlElementName: "SignedIdentifier",
type: {
- name: "DateTimeRfc1123"
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "SignedIdentifier"
+ }
+ }
}
}
};
-const sourceIfMatch = {
- parameterPath: ["options", "sourceModifiedAccessConditions", "sourceIfMatch"],
+const comp8 = {
+ parameterPath: "comp",
mapper: {
- serializedName: "x-ms-source-if-match",
- xmlName: "x-ms-source-if-match",
+ defaultValue: "undelete",
+ isConstant: true,
+ serializedName: "comp",
type: {
name: "String"
}
}
};
-const sourceIfNoneMatch = {
- parameterPath: [
- "options",
- "sourceModifiedAccessConditions",
- "sourceIfNoneMatch"
- ],
+const deletedContainerName = {
+ parameterPath: ["options", "deletedContainerName"],
mapper: {
- serializedName: "x-ms-source-if-none-match",
- xmlName: "x-ms-source-if-none-match",
+ serializedName: "x-ms-deleted-container-name",
+ xmlName: "x-ms-deleted-container-name",
type: {
name: "String"
}
}
};
-const sourceIfTags = {
- parameterPath: ["options", "sourceModifiedAccessConditions", "sourceIfTags"],
+const deletedContainerVersion = {
+ parameterPath: ["options", "deletedContainerVersion"],
mapper: {
- serializedName: "x-ms-source-if-tags",
- xmlName: "x-ms-source-if-tags",
+ serializedName: "x-ms-deleted-container-version",
+ xmlName: "x-ms-deleted-container-version",
type: {
name: "String"
}
}
};
-const copySource = {
- parameterPath: "copySource",
+const comp9 = {
+ parameterPath: "comp",
mapper: {
- serializedName: "x-ms-copy-source",
- required: true,
- xmlName: "x-ms-copy-source",
+ defaultValue: "rename",
+ isConstant: true,
+ serializedName: "comp",
type: {
name: "String"
}
}
};
-const blobTagsString = {
- parameterPath: ["options", "blobTagsString"],
+const sourceContainerName = {
+ parameterPath: "sourceContainerName",
mapper: {
- serializedName: "x-ms-tags",
- xmlName: "x-ms-tags",
+ serializedName: "x-ms-source-container-name",
+ required: true,
+ xmlName: "x-ms-source-container-name",
type: {
name: "String"
}
}
};
-const sealBlob = {
- parameterPath: ["options", "sealBlob"],
+const sourceLeaseId = {
+ parameterPath: ["options", "sourceLeaseId"],
mapper: {
- serializedName: "x-ms-seal-blob",
- xmlName: "x-ms-seal-blob",
+ serializedName: "x-ms-source-lease-id",
+ xmlName: "x-ms-source-lease-id",
type: {
- name: "Boolean"
+ name: "String"
}
}
};
-const legalHold1 = {
- parameterPath: ["options", "legalHold"],
+const comp10 = {
+ parameterPath: "comp",
mapper: {
- serializedName: "x-ms-legal-hold",
- xmlName: "x-ms-legal-hold",
+ defaultValue: "lease",
+ isConstant: true,
+ serializedName: "comp",
type: {
- name: "Boolean"
+ name: "String"
}
}
};
-const xMsRequiresSync = {
- parameterPath: "xMsRequiresSync",
+const action = {
+ parameterPath: "action",
mapper: {
- defaultValue: "true",
+ defaultValue: "acquire",
isConstant: true,
- serializedName: "x-ms-requires-sync",
+ serializedName: "x-ms-lease-action",
type: {
name: "String"
}
}
};
-const sourceContentMD5 = {
- parameterPath: ["options", "sourceContentMD5"],
+const duration = {
+ parameterPath: ["options", "duration"],
mapper: {
- serializedName: "x-ms-source-content-md5",
- xmlName: "x-ms-source-content-md5",
+ serializedName: "x-ms-lease-duration",
+ xmlName: "x-ms-lease-duration",
type: {
- name: "ByteArray"
+ name: "Number"
}
}
};
-const copySourceAuthorization = {
- parameterPath: ["options", "copySourceAuthorization"],
+const proposedLeaseId = {
+ parameterPath: ["options", "proposedLeaseId"],
mapper: {
- serializedName: "x-ms-copy-source-authorization",
- xmlName: "x-ms-copy-source-authorization",
+ serializedName: "x-ms-proposed-lease-id",
+ xmlName: "x-ms-proposed-lease-id",
type: {
name: "String"
}
}
};
-const copySourceTags = {
- parameterPath: ["options", "copySourceTags"],
+const action1 = {
+ parameterPath: "action",
mapper: {
- serializedName: "x-ms-copy-source-tag-option",
- xmlName: "x-ms-copy-source-tag-option",
+ defaultValue: "release",
+ isConstant: true,
+ serializedName: "x-ms-lease-action",
type: {
- name: "Enum",
- allowedValues: ["REPLACE", "COPY"]
+ name: "String"
}
}
};
-const comp15 = {
- parameterPath: "comp",
+const leaseId1 = {
+ parameterPath: "leaseId",
mapper: {
- defaultValue: "copy",
- isConstant: true,
- serializedName: "comp",
+ serializedName: "x-ms-lease-id",
+ required: true,
+ xmlName: "x-ms-lease-id",
type: {
name: "String"
}
}
};
-const copyActionAbortConstant = {
- parameterPath: "copyActionAbortConstant",
+const action2 = {
+ parameterPath: "action",
mapper: {
- defaultValue: "abort",
+ defaultValue: "renew",
isConstant: true,
- serializedName: "x-ms-copy-action",
+ serializedName: "x-ms-lease-action",
type: {
name: "String"
}
}
};
-const copyId = {
- parameterPath: "copyId",
+const action3 = {
+ parameterPath: "action",
mapper: {
- serializedName: "copyid",
- required: true,
- xmlName: "copyid",
+ defaultValue: "break",
+ isConstant: true,
+ serializedName: "x-ms-lease-action",
type: {
name: "String"
}
}
};
-const comp16 = {
- parameterPath: "comp",
+const breakPeriod = {
+ parameterPath: ["options", "breakPeriod"],
mapper: {
- defaultValue: "tier",
+ serializedName: "x-ms-lease-break-period",
+ xmlName: "x-ms-lease-break-period",
+ type: {
+ name: "Number"
+ }
+ }
+};
+const action4 = {
+ parameterPath: "action",
+ mapper: {
+ defaultValue: "change",
isConstant: true,
- serializedName: "comp",
+ serializedName: "x-ms-lease-action",
type: {
name: "String"
}
}
};
-const tier1 = {
- parameterPath: "tier",
+const proposedLeaseId1 = {
+ parameterPath: "proposedLeaseId",
mapper: {
- serializedName: "x-ms-access-tier",
+ serializedName: "x-ms-proposed-lease-id",
required: true,
- xmlName: "x-ms-access-tier",
+ xmlName: "x-ms-proposed-lease-id",
type: {
- name: "Enum",
- allowedValues: [
- "P4",
- "P6",
- "P10",
- "P15",
- "P20",
- "P30",
- "P40",
- "P50",
- "P60",
- "P70",
- "P80",
- "Hot",
- "Cool",
- "Archive",
- "Cold"
- ]
+ name: "String"
}
}
};
-const queryRequest = {
- parameterPath: ["options", "queryRequest"],
- mapper: QueryRequest
-};
-const comp17 = {
- parameterPath: "comp",
+const include1 = {
+ parameterPath: ["options", "include"],
mapper: {
- defaultValue: "query",
- isConstant: true,
- serializedName: "comp",
+ serializedName: "include",
+ xmlName: "include",
+ xmlElementName: "ListBlobsIncludeItem",
type: {
- name: "String"
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Enum",
+ allowedValues: [
+ "copy",
+ "deleted",
+ "metadata",
+ "snapshots",
+ "uncommittedblobs",
+ "versions",
+ "tags",
+ "immutabilitypolicy",
+ "legalhold",
+ "deletedwithversions"
+ ]
+ }
+ }
}
- }
+ },
+ collectionFormat: coreHttp.QueryCollectionFormat.Csv
};
-const comp18 = {
- parameterPath: "comp",
+const delimiter = {
+ parameterPath: "delimiter",
mapper: {
- defaultValue: "tags",
- isConstant: true,
- serializedName: "comp",
+ serializedName: "delimiter",
+ required: true,
+ xmlName: "delimiter",
type: {
name: "String"
}
}
};
-const tags = {
- parameterPath: ["options", "tags"],
- mapper: BlobTags
-};
-const transactionalContentMD5 = {
- parameterPath: ["options", "transactionalContentMD5"],
+const snapshot = {
+ parameterPath: ["options", "snapshot"],
mapper: {
- serializedName: "Content-MD5",
- xmlName: "Content-MD5",
+ serializedName: "snapshot",
+ xmlName: "snapshot",
type: {
- name: "ByteArray"
+ name: "String"
}
}
};
-const transactionalContentCrc64 = {
- parameterPath: ["options", "transactionalContentCrc64"],
+const versionId = {
+ parameterPath: ["options", "versionId"],
mapper: {
- serializedName: "x-ms-content-crc64",
- xmlName: "x-ms-content-crc64",
+ serializedName: "versionid",
+ xmlName: "versionid",
type: {
- name: "ByteArray"
+ name: "String"
}
}
};
-const blobType = {
- parameterPath: "blobType",
+const range = {
+ parameterPath: ["options", "range"],
mapper: {
- defaultValue: "PageBlob",
- isConstant: true,
- serializedName: "x-ms-blob-type",
+ serializedName: "x-ms-range",
+ xmlName: "x-ms-range",
type: {
name: "String"
}
}
};
-const blobContentLength = {
- parameterPath: "blobContentLength",
+const rangeGetContentMD5 = {
+ parameterPath: ["options", "rangeGetContentMD5"],
mapper: {
- serializedName: "x-ms-blob-content-length",
- required: true,
- xmlName: "x-ms-blob-content-length",
+ serializedName: "x-ms-range-get-content-md5",
+ xmlName: "x-ms-range-get-content-md5",
type: {
- name: "Number"
+ name: "Boolean"
}
}
};
-const blobSequenceNumber = {
- parameterPath: ["options", "blobSequenceNumber"],
+const rangeGetContentCRC64 = {
+ parameterPath: ["options", "rangeGetContentCRC64"],
mapper: {
- serializedName: "x-ms-blob-sequence-number",
- xmlName: "x-ms-blob-sequence-number",
+ serializedName: "x-ms-range-get-content-crc64",
+ xmlName: "x-ms-range-get-content-crc64",
type: {
- name: "Number"
+ name: "Boolean"
}
}
};
-const contentType1 = {
- parameterPath: ["options", "contentType"],
+const encryptionKey = {
+ parameterPath: ["options", "cpkInfo", "encryptionKey"],
mapper: {
- defaultValue: "application/octet-stream",
- isConstant: true,
- serializedName: "Content-Type",
+ serializedName: "x-ms-encryption-key",
+ xmlName: "x-ms-encryption-key",
type: {
name: "String"
}
}
};
-const body1 = {
- parameterPath: "body",
+const encryptionKeySha256 = {
+ parameterPath: ["options", "cpkInfo", "encryptionKeySha256"],
mapper: {
- serializedName: "body",
- required: true,
- xmlName: "body",
+ serializedName: "x-ms-encryption-key-sha256",
+ xmlName: "x-ms-encryption-key-sha256",
type: {
- name: "Stream"
+ name: "String"
}
}
};
-const accept2 = {
- parameterPath: "accept",
+const encryptionAlgorithm = {
+ parameterPath: ["options", "cpkInfo", "encryptionAlgorithm"],
mapper: {
- defaultValue: "application/xml",
- isConstant: true,
- serializedName: "Accept",
+ serializedName: "x-ms-encryption-algorithm",
+ xmlName: "x-ms-encryption-algorithm",
type: {
name: "String"
}
}
};
-const comp19 = {
- parameterPath: "comp",
+const ifMatch = {
+ parameterPath: ["options", "modifiedAccessConditions", "ifMatch"],
mapper: {
- defaultValue: "page",
- isConstant: true,
- serializedName: "comp",
+ serializedName: "If-Match",
+ xmlName: "If-Match",
type: {
name: "String"
}
}
};
-const pageWrite = {
- parameterPath: "pageWrite",
+const ifNoneMatch = {
+ parameterPath: ["options", "modifiedAccessConditions", "ifNoneMatch"],
mapper: {
- defaultValue: "update",
- isConstant: true,
- serializedName: "x-ms-page-write",
+ serializedName: "If-None-Match",
+ xmlName: "If-None-Match",
type: {
name: "String"
}
}
};
-const ifSequenceNumberLessThanOrEqualTo = {
- parameterPath: [
- "options",
- "sequenceNumberAccessConditions",
- "ifSequenceNumberLessThanOrEqualTo"
- ],
+const ifTags = {
+ parameterPath: ["options", "modifiedAccessConditions", "ifTags"],
mapper: {
- serializedName: "x-ms-if-sequence-number-le",
- xmlName: "x-ms-if-sequence-number-le",
+ serializedName: "x-ms-if-tags",
+ xmlName: "x-ms-if-tags",
type: {
- name: "Number"
+ name: "String"
}
}
};
-const ifSequenceNumberLessThan = {
- parameterPath: [
- "options",
- "sequenceNumberAccessConditions",
- "ifSequenceNumberLessThan"
- ],
+const deleteSnapshots = {
+ parameterPath: ["options", "deleteSnapshots"],
mapper: {
- serializedName: "x-ms-if-sequence-number-lt",
- xmlName: "x-ms-if-sequence-number-lt",
+ serializedName: "x-ms-delete-snapshots",
+ xmlName: "x-ms-delete-snapshots",
type: {
- name: "Number"
+ name: "Enum",
+ allowedValues: ["include", "only"]
}
}
};
-const ifSequenceNumberEqualTo = {
- parameterPath: [
- "options",
- "sequenceNumberAccessConditions",
- "ifSequenceNumberEqualTo"
- ],
+const blobDeleteType = {
+ parameterPath: ["options", "blobDeleteType"],
mapper: {
- serializedName: "x-ms-if-sequence-number-eq",
- xmlName: "x-ms-if-sequence-number-eq",
+ serializedName: "deletetype",
+ xmlName: "deletetype",
type: {
- name: "Number"
+ name: "String"
}
}
};
-const pageWrite1 = {
- parameterPath: "pageWrite",
+const comp11 = {
+ parameterPath: "comp",
mapper: {
- defaultValue: "clear",
+ defaultValue: "expiry",
isConstant: true,
- serializedName: "x-ms-page-write",
+ serializedName: "comp",
type: {
name: "String"
}
}
};
-const sourceUrl = {
- parameterPath: "sourceUrl",
+const expiryOptions = {
+ parameterPath: "expiryOptions",
mapper: {
- serializedName: "x-ms-copy-source",
+ serializedName: "x-ms-expiry-option",
required: true,
- xmlName: "x-ms-copy-source",
+ xmlName: "x-ms-expiry-option",
type: {
name: "String"
}
}
};
-const sourceRange = {
- parameterPath: "sourceRange",
+const expiresOn = {
+ parameterPath: ["options", "expiresOn"],
mapper: {
- serializedName: "x-ms-source-range",
- required: true,
- xmlName: "x-ms-source-range",
+ serializedName: "x-ms-expiry-time",
+ xmlName: "x-ms-expiry-time",
type: {
name: "String"
}
}
};
-const sourceContentCrc64 = {
- parameterPath: ["options", "sourceContentCrc64"],
+const blobCacheControl = {
+ parameterPath: ["options", "blobHttpHeaders", "blobCacheControl"],
mapper: {
- serializedName: "x-ms-source-content-crc64",
- xmlName: "x-ms-source-content-crc64",
+ serializedName: "x-ms-blob-cache-control",
+ xmlName: "x-ms-blob-cache-control",
type: {
- name: "ByteArray"
+ name: "String"
}
}
};
-const range1 = {
- parameterPath: "range",
+const blobContentType = {
+ parameterPath: ["options", "blobHttpHeaders", "blobContentType"],
mapper: {
- serializedName: "x-ms-range",
- required: true,
- xmlName: "x-ms-range",
+ serializedName: "x-ms-blob-content-type",
+ xmlName: "x-ms-blob-content-type",
type: {
name: "String"
}
}
};
-const comp20 = {
- parameterPath: "comp",
+const blobContentMD5 = {
+ parameterPath: ["options", "blobHttpHeaders", "blobContentMD5"],
mapper: {
- defaultValue: "pagelist",
- isConstant: true,
- serializedName: "comp",
+ serializedName: "x-ms-blob-content-md5",
+ xmlName: "x-ms-blob-content-md5",
type: {
- name: "String"
+ name: "ByteArray"
}
}
};
-const prevsnapshot = {
- parameterPath: ["options", "prevsnapshot"],
+const blobContentEncoding = {
+ parameterPath: ["options", "blobHttpHeaders", "blobContentEncoding"],
mapper: {
- serializedName: "prevsnapshot",
- xmlName: "prevsnapshot",
+ serializedName: "x-ms-blob-content-encoding",
+ xmlName: "x-ms-blob-content-encoding",
type: {
name: "String"
}
}
};
-const prevSnapshotUrl = {
- parameterPath: ["options", "prevSnapshotUrl"],
+const blobContentLanguage = {
+ parameterPath: ["options", "blobHttpHeaders", "blobContentLanguage"],
mapper: {
- serializedName: "x-ms-previous-snapshot-url",
- xmlName: "x-ms-previous-snapshot-url",
+ serializedName: "x-ms-blob-content-language",
+ xmlName: "x-ms-blob-content-language",
type: {
name: "String"
}
}
};
-const sequenceNumberAction = {
- parameterPath: "sequenceNumberAction",
+const blobContentDisposition = {
+ parameterPath: ["options", "blobHttpHeaders", "blobContentDisposition"],
mapper: {
- serializedName: "x-ms-sequence-number-action",
- required: true,
- xmlName: "x-ms-sequence-number-action",
- type: {
- name: "Enum",
- allowedValues: ["max", "update", "increment"]
+ serializedName: "x-ms-blob-content-disposition",
+ xmlName: "x-ms-blob-content-disposition",
+ type: {
+ name: "String"
}
}
};
-const comp21 = {
+const comp12 = {
parameterPath: "comp",
mapper: {
- defaultValue: "incrementalcopy",
+ defaultValue: "immutabilityPolicies",
isConstant: true,
serializedName: "comp",
type: {
@@ -32294,21 +33378,63 @@ const comp21 = {
}
}
};
-const blobType1 = {
- parameterPath: "blobType",
+const immutabilityPolicyExpiry = {
+ parameterPath: ["options", "immutabilityPolicyExpiry"],
mapper: {
- defaultValue: "AppendBlob",
+ serializedName: "x-ms-immutability-policy-until-date",
+ xmlName: "x-ms-immutability-policy-until-date",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ }
+};
+const immutabilityPolicyMode = {
+ parameterPath: ["options", "immutabilityPolicyMode"],
+ mapper: {
+ serializedName: "x-ms-immutability-policy-mode",
+ xmlName: "x-ms-immutability-policy-mode",
+ type: {
+ name: "Enum",
+ allowedValues: ["Mutable", "Unlocked", "Locked"]
+ }
+ }
+};
+const comp13 = {
+ parameterPath: "comp",
+ mapper: {
+ defaultValue: "legalhold",
isConstant: true,
- serializedName: "x-ms-blob-type",
+ serializedName: "comp",
type: {
name: "String"
}
}
};
-const comp22 = {
+const legalHold = {
+ parameterPath: "legalHold",
+ mapper: {
+ serializedName: "x-ms-legal-hold",
+ required: true,
+ xmlName: "x-ms-legal-hold",
+ type: {
+ name: "Boolean"
+ }
+ }
+};
+const encryptionScope = {
+ parameterPath: ["options", "encryptionScope"],
+ mapper: {
+ serializedName: "x-ms-encryption-scope",
+ xmlName: "x-ms-encryption-scope",
+ type: {
+ name: "String"
+ }
+ }
+};
+const comp14 = {
parameterPath: "comp",
mapper: {
- defaultValue: "appendblock",
+ defaultValue: "snapshot",
isConstant: true,
serializedName: "comp",
type: {
@@ -32316,76 +33442,181 @@ const comp22 = {
}
}
};
-const maxSize = {
- parameterPath: ["options", "appendPositionAccessConditions", "maxSize"],
+const tier = {
+ parameterPath: ["options", "tier"],
mapper: {
- serializedName: "x-ms-blob-condition-maxsize",
- xmlName: "x-ms-blob-condition-maxsize",
+ serializedName: "x-ms-access-tier",
+ xmlName: "x-ms-access-tier",
type: {
- name: "Number"
+ name: "Enum",
+ allowedValues: [
+ "P4",
+ "P6",
+ "P10",
+ "P15",
+ "P20",
+ "P30",
+ "P40",
+ "P50",
+ "P60",
+ "P70",
+ "P80",
+ "Hot",
+ "Cool",
+ "Archive"
+ ]
}
}
};
-const appendPosition = {
+const rehydratePriority = {
+ parameterPath: ["options", "rehydratePriority"],
+ mapper: {
+ serializedName: "x-ms-rehydrate-priority",
+ xmlName: "x-ms-rehydrate-priority",
+ type: {
+ name: "Enum",
+ allowedValues: ["High", "Standard"]
+ }
+ }
+};
+const sourceIfModifiedSince = {
parameterPath: [
"options",
- "appendPositionAccessConditions",
- "appendPosition"
+ "sourceModifiedAccessConditions",
+ "sourceIfModifiedSince"
],
mapper: {
- serializedName: "x-ms-blob-condition-appendpos",
- xmlName: "x-ms-blob-condition-appendpos",
+ serializedName: "x-ms-source-if-modified-since",
+ xmlName: "x-ms-source-if-modified-since",
type: {
- name: "Number"
+ name: "DateTimeRfc1123"
}
}
};
-const sourceRange1 = {
- parameterPath: ["options", "sourceRange"],
+const sourceIfUnmodifiedSince = {
+ parameterPath: [
+ "options",
+ "sourceModifiedAccessConditions",
+ "sourceIfUnmodifiedSince"
+ ],
mapper: {
- serializedName: "x-ms-source-range",
- xmlName: "x-ms-source-range",
+ serializedName: "x-ms-source-if-unmodified-since",
+ xmlName: "x-ms-source-if-unmodified-since",
+ type: {
+ name: "DateTimeRfc1123"
+ }
+ }
+};
+const sourceIfMatch = {
+ parameterPath: ["options", "sourceModifiedAccessConditions", "sourceIfMatch"],
+ mapper: {
+ serializedName: "x-ms-source-if-match",
+ xmlName: "x-ms-source-if-match",
type: {
name: "String"
}
}
};
-const comp23 = {
- parameterPath: "comp",
+const sourceIfNoneMatch = {
+ parameterPath: [
+ "options",
+ "sourceModifiedAccessConditions",
+ "sourceIfNoneMatch"
+ ],
mapper: {
- defaultValue: "seal",
- isConstant: true,
- serializedName: "comp",
+ serializedName: "x-ms-source-if-none-match",
+ xmlName: "x-ms-source-if-none-match",
type: {
name: "String"
}
}
};
-const blobType2 = {
- parameterPath: "blobType",
+const sourceIfTags = {
+ parameterPath: ["options", "sourceModifiedAccessConditions", "sourceIfTags"],
mapper: {
- defaultValue: "BlockBlob",
- isConstant: true,
- serializedName: "x-ms-blob-type",
+ serializedName: "x-ms-source-if-tags",
+ xmlName: "x-ms-source-if-tags",
type: {
name: "String"
}
}
};
-const copySourceBlobProperties = {
- parameterPath: ["options", "copySourceBlobProperties"],
+const copySource = {
+ parameterPath: "copySource",
mapper: {
- serializedName: "x-ms-copy-source-blob-properties",
- xmlName: "x-ms-copy-source-blob-properties",
+ serializedName: "x-ms-copy-source",
+ required: true,
+ xmlName: "x-ms-copy-source",
+ type: {
+ name: "String"
+ }
+ }
+};
+const blobTagsString = {
+ parameterPath: ["options", "blobTagsString"],
+ mapper: {
+ serializedName: "x-ms-tags",
+ xmlName: "x-ms-tags",
+ type: {
+ name: "String"
+ }
+ }
+};
+const sealBlob = {
+ parameterPath: ["options", "sealBlob"],
+ mapper: {
+ serializedName: "x-ms-seal-blob",
+ xmlName: "x-ms-seal-blob",
type: {
name: "Boolean"
}
}
};
-const comp24 = {
+const legalHold1 = {
+ parameterPath: ["options", "legalHold"],
+ mapper: {
+ serializedName: "x-ms-legal-hold",
+ xmlName: "x-ms-legal-hold",
+ type: {
+ name: "Boolean"
+ }
+ }
+};
+const xMsRequiresSync = {
+ parameterPath: "xMsRequiresSync",
+ mapper: {
+ defaultValue: "true",
+ isConstant: true,
+ serializedName: "x-ms-requires-sync",
+ type: {
+ name: "String"
+ }
+ }
+};
+const sourceContentMD5 = {
+ parameterPath: ["options", "sourceContentMD5"],
+ mapper: {
+ serializedName: "x-ms-source-content-md5",
+ xmlName: "x-ms-source-content-md5",
+ type: {
+ name: "ByteArray"
+ }
+ }
+};
+const copySourceAuthorization = {
+ parameterPath: ["options", "copySourceAuthorization"],
+ mapper: {
+ serializedName: "x-ms-copy-source-authorization",
+ xmlName: "x-ms-copy-source-authorization",
+ type: {
+ name: "String"
+ }
+ }
+};
+const comp15 = {
parameterPath: "comp",
mapper: {
- defaultValue: "block",
+ defaultValue: "copy",
isConstant: true,
serializedName: "comp",
type: {
@@ -32393,25 +33624,32 @@ const comp24 = {
}
}
};
-const blockId = {
- parameterPath: "blockId",
+const copyActionAbortConstant = {
+ parameterPath: "copyActionAbortConstant",
mapper: {
- serializedName: "blockid",
- required: true,
- xmlName: "blockid",
+ defaultValue: "abort",
+ isConstant: true,
+ serializedName: "x-ms-copy-action",
type: {
name: "String"
}
}
};
-const blocks = {
- parameterPath: "blocks",
- mapper: BlockLookupList
+const copyId = {
+ parameterPath: "copyId",
+ mapper: {
+ serializedName: "copyid",
+ required: true,
+ xmlName: "copyid",
+ type: {
+ name: "String"
+ }
+ }
};
-const comp25 = {
+const comp16 = {
parameterPath: "comp",
mapper: {
- defaultValue: "blocklist",
+ defaultValue: "tier",
isConstant: true,
serializedName: "comp",
type: {
@@ -32419,156 +33657,595 @@ const comp25 = {
}
}
};
-const listType = {
- parameterPath: "listType",
+const tier1 = {
+ parameterPath: "tier",
mapper: {
- defaultValue: "committed",
- serializedName: "blocklisttype",
+ serializedName: "x-ms-access-tier",
required: true,
- xmlName: "blocklisttype",
+ xmlName: "x-ms-access-tier",
type: {
name: "Enum",
- allowedValues: ["committed", "uncommitted", "all"]
+ allowedValues: [
+ "P4",
+ "P6",
+ "P10",
+ "P15",
+ "P20",
+ "P30",
+ "P40",
+ "P50",
+ "P60",
+ "P70",
+ "P80",
+ "Hot",
+ "Cool",
+ "Archive"
+ ]
}
}
};
-
-/*
- * Copyright (c) Microsoft Corporation.
- * Licensed under the MIT License.
- *
- * Code generated by Microsoft (R) AutoRest Code Generator.
- * Changes may cause incorrect behavior and will be lost if the code is regenerated.
- */
-/** Class representing a Service. */
-class Service {
- /**
- * Initialize a new instance of the class Service class.
- * @param client Reference to the service client
- */
- constructor(client) {
- this.client = client;
+const queryRequest = {
+ parameterPath: ["options", "queryRequest"],
+ mapper: QueryRequest
+};
+const comp17 = {
+ parameterPath: "comp",
+ mapper: {
+ defaultValue: "query",
+ isConstant: true,
+ serializedName: "comp",
+ type: {
+ name: "String"
+ }
}
- /**
- * Sets properties for a storage account's Blob service endpoint, including properties for Storage
- * Analytics and CORS (Cross-Origin Resource Sharing) rules
- * @param blobServiceProperties The StorageService properties.
- * @param options The options parameters.
- */
- setProperties(blobServiceProperties, options) {
- const operationArguments = {
- blobServiceProperties,
- options: coreHttp__namespace.operationOptionsToRequestOptionsBase(options || {})
- };
- return this.client.sendOperationRequest(operationArguments, setPropertiesOperationSpec);
+};
+const comp18 = {
+ parameterPath: "comp",
+ mapper: {
+ defaultValue: "tags",
+ isConstant: true,
+ serializedName: "comp",
+ type: {
+ name: "String"
+ }
}
- /**
- * gets the properties of a storage account's Blob service, including properties for Storage Analytics
- * and CORS (Cross-Origin Resource Sharing) rules.
- * @param options The options parameters.
- */
- getProperties(options) {
- const operationArguments = {
- options: coreHttp__namespace.operationOptionsToRequestOptionsBase(options || {})
- };
- return this.client.sendOperationRequest(operationArguments, getPropertiesOperationSpec$2);
+};
+const tags = {
+ parameterPath: ["options", "tags"],
+ mapper: BlobTags
+};
+const transactionalContentMD5 = {
+ parameterPath: ["options", "transactionalContentMD5"],
+ mapper: {
+ serializedName: "Content-MD5",
+ xmlName: "Content-MD5",
+ type: {
+ name: "ByteArray"
+ }
}
- /**
- * Retrieves statistics related to replication for the Blob service. It is only available on the
- * secondary location endpoint when read-access geo-redundant replication is enabled for the storage
- * account.
- * @param options The options parameters.
- */
- getStatistics(options) {
- const operationArguments = {
- options: coreHttp__namespace.operationOptionsToRequestOptionsBase(options || {})
- };
- return this.client.sendOperationRequest(operationArguments, getStatisticsOperationSpec);
+};
+const transactionalContentCrc64 = {
+ parameterPath: ["options", "transactionalContentCrc64"],
+ mapper: {
+ serializedName: "x-ms-content-crc64",
+ xmlName: "x-ms-content-crc64",
+ type: {
+ name: "ByteArray"
+ }
}
- /**
- * The List Containers Segment operation returns a list of the containers under the specified account
- * @param options The options parameters.
- */
- listContainersSegment(options) {
- const operationArguments = {
- options: coreHttp__namespace.operationOptionsToRequestOptionsBase(options || {})
- };
- return this.client.sendOperationRequest(operationArguments, listContainersSegmentOperationSpec);
+};
+const blobType = {
+ parameterPath: "blobType",
+ mapper: {
+ defaultValue: "PageBlob",
+ isConstant: true,
+ serializedName: "x-ms-blob-type",
+ type: {
+ name: "String"
+ }
}
- /**
- * Retrieves a user delegation key for the Blob service. This is only a valid operation when using
- * bearer token authentication.
- * @param keyInfo Key information
- * @param options The options parameters.
- */
- getUserDelegationKey(keyInfo, options) {
- const operationArguments = {
- keyInfo,
- options: coreHttp__namespace.operationOptionsToRequestOptionsBase(options || {})
- };
- return this.client.sendOperationRequest(operationArguments, getUserDelegationKeyOperationSpec);
+};
+const blobContentLength = {
+ parameterPath: "blobContentLength",
+ mapper: {
+ serializedName: "x-ms-blob-content-length",
+ required: true,
+ xmlName: "x-ms-blob-content-length",
+ type: {
+ name: "Number"
+ }
}
- /**
- * Returns the sku name and account kind
- * @param options The options parameters.
- */
- getAccountInfo(options) {
- const operationArguments = {
- options: coreHttp__namespace.operationOptionsToRequestOptionsBase(options || {})
- };
- return this.client.sendOperationRequest(operationArguments, getAccountInfoOperationSpec$2);
+};
+const blobSequenceNumber = {
+ parameterPath: ["options", "blobSequenceNumber"],
+ mapper: {
+ serializedName: "x-ms-blob-sequence-number",
+ xmlName: "x-ms-blob-sequence-number",
+ type: {
+ name: "Number"
+ }
}
- /**
- * The Batch operation allows multiple API calls to be embedded into a single HTTP request.
- * @param contentLength The length of the request.
- * @param multipartContentType Required. The value of this header must be multipart/mixed with a batch
- * boundary. Example header value: multipart/mixed; boundary=batch_
- * @param body Initial data
- * @param options The options parameters.
- */
- submitBatch(contentLength, multipartContentType, body, options) {
- const operationArguments = {
- contentLength,
- multipartContentType,
- body,
- options: coreHttp__namespace.operationOptionsToRequestOptionsBase(options || {})
- };
- return this.client.sendOperationRequest(operationArguments, submitBatchOperationSpec$1);
+};
+const contentType1 = {
+ parameterPath: ["options", "contentType"],
+ mapper: {
+ defaultValue: "application/octet-stream",
+ isConstant: true,
+ serializedName: "Content-Type",
+ type: {
+ name: "String"
+ }
}
- /**
- * The Filter Blobs operation enables callers to list blobs across all containers whose tags match a
- * given search expression. Filter blobs searches across all containers within a storage account but
- * can be scoped within the expression to a single container.
- * @param options The options parameters.
- */
- filterBlobs(options) {
- const operationArguments = {
- options: coreHttp__namespace.operationOptionsToRequestOptionsBase(options || {})
- };
- return this.client.sendOperationRequest(operationArguments, filterBlobsOperationSpec$1);
+};
+const body1 = {
+ parameterPath: "body",
+ mapper: {
+ serializedName: "body",
+ required: true,
+ xmlName: "body",
+ type: {
+ name: "Stream"
+ }
}
-}
-// Operation Specifications
-const xmlSerializer$5 = new coreHttp__namespace.Serializer(Mappers, /* isXml */ true);
-const setPropertiesOperationSpec = {
- path: "/",
- httpMethod: "PUT",
- responses: {
- 202: {
- headersMapper: ServiceSetPropertiesHeaders
- },
- default: {
- bodyMapper: StorageError,
- headersMapper: ServiceSetPropertiesExceptionHeaders
+};
+const accept2 = {
+ parameterPath: "accept",
+ mapper: {
+ defaultValue: "application/xml",
+ isConstant: true,
+ serializedName: "Accept",
+ type: {
+ name: "String"
}
- },
- requestBody: blobServiceProperties,
- queryParameters: [
- restype,
- comp,
- timeoutInSeconds
- ],
- urlParameters: [url],
+ }
+};
+const comp19 = {
+ parameterPath: "comp",
+ mapper: {
+ defaultValue: "page",
+ isConstant: true,
+ serializedName: "comp",
+ type: {
+ name: "String"
+ }
+ }
+};
+const pageWrite = {
+ parameterPath: "pageWrite",
+ mapper: {
+ defaultValue: "update",
+ isConstant: true,
+ serializedName: "x-ms-page-write",
+ type: {
+ name: "String"
+ }
+ }
+};
+const ifSequenceNumberLessThanOrEqualTo = {
+ parameterPath: [
+ "options",
+ "sequenceNumberAccessConditions",
+ "ifSequenceNumberLessThanOrEqualTo"
+ ],
+ mapper: {
+ serializedName: "x-ms-if-sequence-number-le",
+ xmlName: "x-ms-if-sequence-number-le",
+ type: {
+ name: "Number"
+ }
+ }
+};
+const ifSequenceNumberLessThan = {
+ parameterPath: [
+ "options",
+ "sequenceNumberAccessConditions",
+ "ifSequenceNumberLessThan"
+ ],
+ mapper: {
+ serializedName: "x-ms-if-sequence-number-lt",
+ xmlName: "x-ms-if-sequence-number-lt",
+ type: {
+ name: "Number"
+ }
+ }
+};
+const ifSequenceNumberEqualTo = {
+ parameterPath: [
+ "options",
+ "sequenceNumberAccessConditions",
+ "ifSequenceNumberEqualTo"
+ ],
+ mapper: {
+ serializedName: "x-ms-if-sequence-number-eq",
+ xmlName: "x-ms-if-sequence-number-eq",
+ type: {
+ name: "Number"
+ }
+ }
+};
+const pageWrite1 = {
+ parameterPath: "pageWrite",
+ mapper: {
+ defaultValue: "clear",
+ isConstant: true,
+ serializedName: "x-ms-page-write",
+ type: {
+ name: "String"
+ }
+ }
+};
+const sourceUrl = {
+ parameterPath: "sourceUrl",
+ mapper: {
+ serializedName: "x-ms-copy-source",
+ required: true,
+ xmlName: "x-ms-copy-source",
+ type: {
+ name: "String"
+ }
+ }
+};
+const sourceRange = {
+ parameterPath: "sourceRange",
+ mapper: {
+ serializedName: "x-ms-source-range",
+ required: true,
+ xmlName: "x-ms-source-range",
+ type: {
+ name: "String"
+ }
+ }
+};
+const sourceContentCrc64 = {
+ parameterPath: ["options", "sourceContentCrc64"],
+ mapper: {
+ serializedName: "x-ms-source-content-crc64",
+ xmlName: "x-ms-source-content-crc64",
+ type: {
+ name: "ByteArray"
+ }
+ }
+};
+const range1 = {
+ parameterPath: "range",
+ mapper: {
+ serializedName: "x-ms-range",
+ required: true,
+ xmlName: "x-ms-range",
+ type: {
+ name: "String"
+ }
+ }
+};
+const comp20 = {
+ parameterPath: "comp",
+ mapper: {
+ defaultValue: "pagelist",
+ isConstant: true,
+ serializedName: "comp",
+ type: {
+ name: "String"
+ }
+ }
+};
+const prevsnapshot = {
+ parameterPath: ["options", "prevsnapshot"],
+ mapper: {
+ serializedName: "prevsnapshot",
+ xmlName: "prevsnapshot",
+ type: {
+ name: "String"
+ }
+ }
+};
+const prevSnapshotUrl = {
+ parameterPath: ["options", "prevSnapshotUrl"],
+ mapper: {
+ serializedName: "x-ms-previous-snapshot-url",
+ xmlName: "x-ms-previous-snapshot-url",
+ type: {
+ name: "String"
+ }
+ }
+};
+const sequenceNumberAction = {
+ parameterPath: "sequenceNumberAction",
+ mapper: {
+ serializedName: "x-ms-sequence-number-action",
+ required: true,
+ xmlName: "x-ms-sequence-number-action",
+ type: {
+ name: "Enum",
+ allowedValues: ["max", "update", "increment"]
+ }
+ }
+};
+const comp21 = {
+ parameterPath: "comp",
+ mapper: {
+ defaultValue: "incrementalcopy",
+ isConstant: true,
+ serializedName: "comp",
+ type: {
+ name: "String"
+ }
+ }
+};
+const blobType1 = {
+ parameterPath: "blobType",
+ mapper: {
+ defaultValue: "AppendBlob",
+ isConstant: true,
+ serializedName: "x-ms-blob-type",
+ type: {
+ name: "String"
+ }
+ }
+};
+const comp22 = {
+ parameterPath: "comp",
+ mapper: {
+ defaultValue: "appendblock",
+ isConstant: true,
+ serializedName: "comp",
+ type: {
+ name: "String"
+ }
+ }
+};
+const maxSize = {
+ parameterPath: ["options", "appendPositionAccessConditions", "maxSize"],
+ mapper: {
+ serializedName: "x-ms-blob-condition-maxsize",
+ xmlName: "x-ms-blob-condition-maxsize",
+ type: {
+ name: "Number"
+ }
+ }
+};
+const appendPosition = {
+ parameterPath: [
+ "options",
+ "appendPositionAccessConditions",
+ "appendPosition"
+ ],
+ mapper: {
+ serializedName: "x-ms-blob-condition-appendpos",
+ xmlName: "x-ms-blob-condition-appendpos",
+ type: {
+ name: "Number"
+ }
+ }
+};
+const sourceRange1 = {
+ parameterPath: ["options", "sourceRange"],
+ mapper: {
+ serializedName: "x-ms-source-range",
+ xmlName: "x-ms-source-range",
+ type: {
+ name: "String"
+ }
+ }
+};
+const comp23 = {
+ parameterPath: "comp",
+ mapper: {
+ defaultValue: "seal",
+ isConstant: true,
+ serializedName: "comp",
+ type: {
+ name: "String"
+ }
+ }
+};
+const blobType2 = {
+ parameterPath: "blobType",
+ mapper: {
+ defaultValue: "BlockBlob",
+ isConstant: true,
+ serializedName: "x-ms-blob-type",
+ type: {
+ name: "String"
+ }
+ }
+};
+const copySourceBlobProperties = {
+ parameterPath: ["options", "copySourceBlobProperties"],
+ mapper: {
+ serializedName: "x-ms-copy-source-blob-properties",
+ xmlName: "x-ms-copy-source-blob-properties",
+ type: {
+ name: "Boolean"
+ }
+ }
+};
+const comp24 = {
+ parameterPath: "comp",
+ mapper: {
+ defaultValue: "block",
+ isConstant: true,
+ serializedName: "comp",
+ type: {
+ name: "String"
+ }
+ }
+};
+const blockId = {
+ parameterPath: "blockId",
+ mapper: {
+ serializedName: "blockid",
+ required: true,
+ xmlName: "blockid",
+ type: {
+ name: "String"
+ }
+ }
+};
+const blocks = {
+ parameterPath: "blocks",
+ mapper: BlockLookupList
+};
+const comp25 = {
+ parameterPath: "comp",
+ mapper: {
+ defaultValue: "blocklist",
+ isConstant: true,
+ serializedName: "comp",
+ type: {
+ name: "String"
+ }
+ }
+};
+const listType = {
+ parameterPath: "listType",
+ mapper: {
+ defaultValue: "committed",
+ serializedName: "blocklisttype",
+ required: true,
+ xmlName: "blocklisttype",
+ type: {
+ name: "Enum",
+ allowedValues: ["committed", "uncommitted", "all"]
+ }
+ }
+};
+
+/*
+ * Copyright (c) Microsoft Corporation.
+ * Licensed under the MIT License.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is regenerated.
+ */
+/** Class representing a Service. */
+class Service {
+ /**
+ * Initialize a new instance of the class Service class.
+ * @param client Reference to the service client
+ */
+ constructor(client) {
+ this.client = client;
+ }
+ /**
+ * Sets properties for a storage account's Blob service endpoint, including properties for Storage
+ * Analytics and CORS (Cross-Origin Resource Sharing) rules
+ * @param blobServiceProperties The StorageService properties.
+ * @param options The options parameters.
+ */
+ setProperties(blobServiceProperties, options) {
+ const operationArguments = {
+ blobServiceProperties,
+ options: coreHttp__namespace.operationOptionsToRequestOptionsBase(options || {})
+ };
+ return this.client.sendOperationRequest(operationArguments, setPropertiesOperationSpec);
+ }
+ /**
+ * gets the properties of a storage account's Blob service, including properties for Storage Analytics
+ * and CORS (Cross-Origin Resource Sharing) rules.
+ * @param options The options parameters.
+ */
+ getProperties(options) {
+ const operationArguments = {
+ options: coreHttp__namespace.operationOptionsToRequestOptionsBase(options || {})
+ };
+ return this.client.sendOperationRequest(operationArguments, getPropertiesOperationSpec$2);
+ }
+ /**
+ * Retrieves statistics related to replication for the Blob service. It is only available on the
+ * secondary location endpoint when read-access geo-redundant replication is enabled for the storage
+ * account.
+ * @param options The options parameters.
+ */
+ getStatistics(options) {
+ const operationArguments = {
+ options: coreHttp__namespace.operationOptionsToRequestOptionsBase(options || {})
+ };
+ return this.client.sendOperationRequest(operationArguments, getStatisticsOperationSpec);
+ }
+ /**
+ * The List Containers Segment operation returns a list of the containers under the specified account
+ * @param options The options parameters.
+ */
+ listContainersSegment(options) {
+ const operationArguments = {
+ options: coreHttp__namespace.operationOptionsToRequestOptionsBase(options || {})
+ };
+ return this.client.sendOperationRequest(operationArguments, listContainersSegmentOperationSpec);
+ }
+ /**
+ * Retrieves a user delegation key for the Blob service. This is only a valid operation when using
+ * bearer token authentication.
+ * @param keyInfo Key information
+ * @param options The options parameters.
+ */
+ getUserDelegationKey(keyInfo, options) {
+ const operationArguments = {
+ keyInfo,
+ options: coreHttp__namespace.operationOptionsToRequestOptionsBase(options || {})
+ };
+ return this.client.sendOperationRequest(operationArguments, getUserDelegationKeyOperationSpec);
+ }
+ /**
+ * Returns the sku name and account kind
+ * @param options The options parameters.
+ */
+ getAccountInfo(options) {
+ const operationArguments = {
+ options: coreHttp__namespace.operationOptionsToRequestOptionsBase(options || {})
+ };
+ return this.client.sendOperationRequest(operationArguments, getAccountInfoOperationSpec$2);
+ }
+ /**
+ * The Batch operation allows multiple API calls to be embedded into a single HTTP request.
+ * @param contentLength The length of the request.
+ * @param multipartContentType Required. The value of this header must be multipart/mixed with a batch
+ * boundary. Example header value: multipart/mixed; boundary=batch_
+ * @param body Initial data
+ * @param options The options parameters.
+ */
+ submitBatch(contentLength, multipartContentType, body, options) {
+ const operationArguments = {
+ contentLength,
+ multipartContentType,
+ body,
+ options: coreHttp__namespace.operationOptionsToRequestOptionsBase(options || {})
+ };
+ return this.client.sendOperationRequest(operationArguments, submitBatchOperationSpec$1);
+ }
+ /**
+ * The Filter Blobs operation enables callers to list blobs across all containers whose tags match a
+ * given search expression. Filter blobs searches across all containers within a storage account but
+ * can be scoped within the expression to a single container.
+ * @param options The options parameters.
+ */
+ filterBlobs(options) {
+ const operationArguments = {
+ options: coreHttp__namespace.operationOptionsToRequestOptionsBase(options || {})
+ };
+ return this.client.sendOperationRequest(operationArguments, filterBlobsOperationSpec$1);
+ }
+}
+// Operation Specifications
+const xmlSerializer$5 = new coreHttp__namespace.Serializer(Mappers, /* isXml */ true);
+const setPropertiesOperationSpec = {
+ path: "/",
+ httpMethod: "PUT",
+ responses: {
+ 202: {
+ headersMapper: ServiceSetPropertiesHeaders
+ },
+ default: {
+ bodyMapper: StorageError,
+ headersMapper: ServiceSetPropertiesExceptionHeaders
+ }
+ },
+ requestBody: blobServiceProperties,
+ queryParameters: [
+ restype,
+ comp,
+ timeoutInSeconds
+ ],
+ urlParameters: [url],
headerParameters: [
contentType,
accept,
@@ -34416,8 +36093,7 @@ const copyFromURLOperationSpec = {
legalHold1,
xMsRequiresSync,
sourceContentMD5,
- copySourceAuthorization,
- copySourceTags
+ copySourceAuthorization
],
isXML: true,
serializer: xmlSerializer$3
@@ -34957,8 +36633,6 @@ const getPageRangesOperationSpec = {
},
queryParameters: [
timeoutInSeconds,
- marker,
- maxPageSize,
snapshot,
comp20
],
@@ -34993,8 +36667,6 @@ const getPageRangesDiffOperationSpec = {
},
queryParameters: [
timeoutInSeconds,
- marker,
- maxPageSize,
snapshot,
comp20,
prevsnapshot
@@ -35511,7 +37183,6 @@ const uploadOperationSpec = {
blobTagsString,
legalHold1,
transactionalContentMD5,
- transactionalContentCrc64,
contentType1,
accept2,
blobType2
@@ -35565,7 +37236,6 @@ const putBlobFromUrlOperationSpec = {
blobTagsString,
sourceContentMD5,
copySourceAuthorization,
- copySourceTags,
transactionalContentMD5,
blobType2,
copySourceBlobProperties
@@ -35739,15 +37409,14 @@ const logger = logger$1.createClientLogger("storage-blob");
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
-const SDK_VERSION = "12.14.0";
-const SERVICE_VERSION = "2022-11-02";
+const SDK_VERSION = "12.9.0";
+const SERVICE_VERSION = "2021-04-10";
const BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES = 256 * 1024 * 1024; // 256MB
const BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES = 4000 * 1024 * 1024; // 4000MB
const BLOCK_BLOB_MAX_BLOCKS = 50000;
const DEFAULT_BLOCK_BUFFER_SIZE_BYTES = 8 * 1024 * 1024; // 8MB
const DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES = 4 * 1024 * 1024; // 4MB
const DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS = 5;
-const REQUEST_TIMEOUT = 100 * 1000; // In ms
/**
* The OAuth scope to use with Azure Storage.
*/
@@ -35934,31 +37603,6 @@ const StorageBlobLoggingAllowedQueryParameters = [
"snapshot",
];
const BlobUsesCustomerSpecifiedEncryptionMsg = "BlobUsesCustomerSpecifiedEncryption";
-const BlobDoesNotUseCustomerSpecifiedEncryption = "BlobDoesNotUseCustomerSpecifiedEncryption";
-/// List of ports used for path style addressing.
-/// Path style addressing means that storage account is put in URI's Path segment in instead of in host.
-const PathStylePorts = [
- "10000",
- "10001",
- "10002",
- "10003",
- "10004",
- "10100",
- "10101",
- "10102",
- "10103",
- "10104",
- "11000",
- "11001",
- "11002",
- "11003",
- "11004",
- "11100",
- "11101",
- "11102",
- "11103",
- "11104",
-];
// Copyright (c) Microsoft Corporation.
/**
@@ -36139,8 +37783,7 @@ function appendToURLPath(url, name) {
let path = urlParsed.getPath();
path = path ? (path.endsWith("/") ? `${path}${name}` : `${path}/${name}`) : name;
urlParsed.setPath(path);
- const normalizedUrl = new URL(urlParsed.toString());
- return normalizedUrl.toString();
+ return urlParsed.toString();
}
/**
* Set URL parameter name and value. If name exists in URL parameters, old value
@@ -36401,8 +38044,7 @@ function isIpEndpointStyle(parsedUrl) {
// Case 2: localhost(:port), use broad regex to match port part.
// Case 3: Ipv4, use broad regex which just check if host contains Ipv4.
// For valid host please refer to https://man7.org/linux/man-pages/man7/hostname.7.html.
- return (/^.*:.*:.*$|^localhost(:[0-9]+)?$|^(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])){3}(:[0-9]+)?$/.test(host) ||
- (parsedUrl.getPort() !== undefined && PathStylePorts.includes(parsedUrl.getPort())));
+ return /^.*:.*:.*$|^localhost(:[0-9]+)?$|^(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])){3}(:[0-9]+)?$/.test(host);
}
/**
* Convert Tags to encoded string.
@@ -36588,57 +38230,170 @@ function ConvertInternalResponseOfListBlobHierarchy(internalResponse) {
}),
} });
}
-function* ExtractPageRangeInfoItems(getPageRangesSegment) {
- let pageRange = [];
- let clearRange = [];
- if (getPageRangesSegment.pageRange)
- pageRange = getPageRangesSegment.pageRange;
- if (getPageRangesSegment.clearRange)
- clearRange = getPageRangesSegment.clearRange;
- let pageRangeIndex = 0;
- let clearRangeIndex = 0;
- while (pageRangeIndex < pageRange.length && clearRangeIndex < clearRange.length) {
- if (pageRange[pageRangeIndex].start < clearRange[clearRangeIndex].start) {
- yield {
- start: pageRange[pageRangeIndex].start,
- end: pageRange[pageRangeIndex].end,
- isClear: false,
- };
- ++pageRangeIndex;
- }
- else {
- yield {
- start: clearRange[clearRangeIndex].start,
- end: clearRange[clearRangeIndex].end,
- isClear: true,
- };
- ++clearRangeIndex;
+function decodeBase64String(value) {
+ if (coreHttp.isNode) {
+ return Buffer.from(value, "base64");
+ }
+ else {
+ const byteString = atob(value);
+ const arr = new Uint8Array(byteString.length);
+ for (let i = 0; i < byteString.length; i++) {
+ arr[i] = byteString.charCodeAt(i);
}
+ return arr;
}
- for (; pageRangeIndex < pageRange.length; ++pageRangeIndex) {
- yield {
- start: pageRange[pageRangeIndex].start,
- end: pageRange[pageRangeIndex].end,
- isClear: false,
+}
+function ParseBoolean(content) {
+ if (content === undefined)
+ return undefined;
+ if (content === "true")
+ return true;
+ if (content === "false")
+ return false;
+ return undefined;
+}
+function ParseBlobName(blobNameInXML) {
+ if (blobNameInXML["$"] !== undefined && blobNameInXML["#"] !== undefined) {
+ return {
+ encoded: ParseBoolean(blobNameInXML["$"]["Encoded"]),
+ content: blobNameInXML["#"],
};
}
- for (; clearRangeIndex < clearRange.length; ++clearRangeIndex) {
- yield {
- start: clearRange[clearRangeIndex].start,
- end: clearRange[clearRangeIndex].end,
- isClear: true,
+ else {
+ return {
+ encoded: false,
+ content: blobNameInXML,
};
}
}
-/**
- * Escape the blobName but keep path separator ('/').
- */
-function EscapePath(blobName) {
- const split = blobName.split("/");
- for (let i = 0; i < split.length; i++) {
- split[i] = encodeURIComponent(split[i]);
+function ParseBlobItem(blobInXML) {
+ const blobPropertiesInXML = blobInXML["Properties"];
+ const blobProperties = {
+ createdOn: new Date(blobPropertiesInXML["Creation-Time"]),
+ lastModified: new Date(blobPropertiesInXML["Last-Modified"]),
+ etag: blobPropertiesInXML["Etag"],
+ contentLength: blobPropertiesInXML["Content-Length"] === undefined
+ ? undefined
+ : parseFloat(blobPropertiesInXML["Content-Length"]),
+ contentType: blobPropertiesInXML["Content-Type"],
+ contentEncoding: blobPropertiesInXML["Content-Encoding"],
+ contentLanguage: blobPropertiesInXML["Content-Language"],
+ contentMD5: decodeBase64String(blobPropertiesInXML["Content-MD5"]),
+ contentDisposition: blobPropertiesInXML["Content-Disposition"],
+ cacheControl: blobPropertiesInXML["Cache-Control"],
+ blobSequenceNumber: blobPropertiesInXML["x-ms-blob-sequence-number"] === undefined
+ ? undefined
+ : parseFloat(blobPropertiesInXML["x-ms-blob-sequence-number"]),
+ blobType: blobPropertiesInXML["BlobType"],
+ leaseStatus: blobPropertiesInXML["LeaseStatus"],
+ leaseState: blobPropertiesInXML["LeaseState"],
+ leaseDuration: blobPropertiesInXML["LeaseDuration"],
+ copyId: blobPropertiesInXML["CopyId"],
+ copyStatus: blobPropertiesInXML["CopyStatus"],
+ copySource: blobPropertiesInXML["CopySource"],
+ copyProgress: blobPropertiesInXML["CopyProgress"],
+ copyCompletedOn: blobPropertiesInXML["CopyCompletionTime"] === undefined
+ ? undefined
+ : new Date(blobPropertiesInXML["CopyCompletionTime"]),
+ copyStatusDescription: blobPropertiesInXML["CopyStatusDescription"],
+ serverEncrypted: ParseBoolean(blobPropertiesInXML["ServerEncrypted"]),
+ incrementalCopy: ParseBoolean(blobPropertiesInXML["IncrementalCopy"]),
+ destinationSnapshot: blobPropertiesInXML["DestinationSnapshot"],
+ deletedOn: blobPropertiesInXML["DeletedTime"] === undefined
+ ? undefined
+ : new Date(blobPropertiesInXML["DeletedTime"]),
+ remainingRetentionDays: blobPropertiesInXML["RemainingRetentionDays"] === undefined
+ ? undefined
+ : parseFloat(blobPropertiesInXML["RemainingRetentionDays"]),
+ accessTier: blobPropertiesInXML["AccessTier"],
+ accessTierInferred: ParseBoolean(blobPropertiesInXML["AccessTierInferred"]),
+ archiveStatus: blobPropertiesInXML["ArchiveStatus"],
+ customerProvidedKeySha256: blobPropertiesInXML["CustomerProvidedKeySha256"],
+ encryptionScope: blobPropertiesInXML["EncryptionScope"],
+ accessTierChangedOn: blobPropertiesInXML["AccessTierChangeTime"] === undefined
+ ? undefined
+ : new Date(blobPropertiesInXML["AccessTierChangeTime"]),
+ tagCount: blobPropertiesInXML["TagCount"] === undefined
+ ? undefined
+ : parseFloat(blobPropertiesInXML["TagCount"]),
+ expiresOn: blobPropertiesInXML["Expiry-Time"] === undefined
+ ? undefined
+ : new Date(blobPropertiesInXML["Expiry-Time"]),
+ isSealed: ParseBoolean(blobPropertiesInXML["Sealed"]),
+ rehydratePriority: blobPropertiesInXML["RehydratePriority"],
+ lastAccessedOn: blobPropertiesInXML["LastAccessTime"] === undefined
+ ? undefined
+ : new Date(blobPropertiesInXML["LastAccessTime"]),
+ immutabilityPolicyExpiresOn: blobPropertiesInXML["ImmutabilityPolicyUntilDate"] === undefined
+ ? undefined
+ : new Date(blobPropertiesInXML["ImmutabilityPolicyUntilDate"]),
+ immutabilityPolicyMode: blobPropertiesInXML["ImmutabilityPolicyMode"],
+ legalHold: ParseBoolean(blobPropertiesInXML["LegalHold"]),
+ };
+ return {
+ name: ParseBlobName(blobInXML["Name"]),
+ deleted: ParseBoolean(blobInXML["Deleted"]),
+ snapshot: blobInXML["Snapshot"],
+ versionId: blobInXML["VersionId"],
+ isCurrentVersion: ParseBoolean(blobInXML["IsCurrentVersion"]),
+ properties: blobProperties,
+ metadata: blobInXML["Metadata"],
+ blobTags: ParseBlobTags(blobInXML["Tags"]),
+ objectReplicationMetadata: blobInXML["OrMetadata"],
+ hasVersionsOnly: ParseBoolean(blobInXML["HasVersionsOnly"]),
+ };
+}
+function ParseBlobPrefix(blobPrefixInXML) {
+ return {
+ name: ParseBlobName(blobPrefixInXML["Name"]),
+ };
+}
+function ParseBlobTag(blobTagInXML) {
+ return {
+ key: blobTagInXML["Key"],
+ value: blobTagInXML["Value"],
+ };
+}
+function ParseBlobTags(blobTagsInXML) {
+ if (blobTagsInXML === undefined ||
+ blobTagsInXML["TagSet"] === undefined ||
+ blobTagsInXML["TagSet"]["Tag"] === undefined) {
+ return undefined;
+ }
+ const blobTagSet = [];
+ if (blobTagsInXML["TagSet"]["Tag"] instanceof Array) {
+ blobTagsInXML["TagSet"]["Tag"].forEach((blobTagInXML) => {
+ blobTagSet.push(ParseBlobTag(blobTagInXML));
+ });
+ }
+ else {
+ blobTagSet.push(ParseBlobTag(blobTagsInXML["TagSet"]["Tag"]));
+ }
+ return { blobTagSet: blobTagSet };
+}
+function ProcessBlobItems(blobArrayInXML) {
+ const blobItems = [];
+ if (blobArrayInXML instanceof Array) {
+ blobArrayInXML.forEach((blobInXML) => {
+ blobItems.push(ParseBlobItem(blobInXML));
+ });
+ }
+ else {
+ blobItems.push(ParseBlobItem(blobArrayInXML));
+ }
+ return blobItems;
+}
+function ProcessBlobPrefixes(blobPrefixesInXML) {
+ const blobPrefixes = [];
+ if (blobPrefixesInXML instanceof Array) {
+ blobPrefixesInXML.forEach((blobPrefixInXML) => {
+ blobPrefixes.push(ParseBlobPrefix(blobPrefixInXML));
+ });
+ }
+ else {
+ blobPrefixes.push(ParseBlobPrefix(blobPrefixesInXML));
}
- return split.join("/");
+ return blobPrefixes;
}
// Copyright (c) Microsoft Corporation.
@@ -37057,10 +38812,7 @@ class TelemetryPolicyFactory {
userAgentInfo.push(libInfo);
}
// e.g. (NODE-VERSION 4.9.1; Windows_NT 10.0.16299)
- let runtimeInfo = `(NODE-VERSION ${process.version})`;
- if (os__namespace) {
- runtimeInfo = `(NODE-VERSION ${process.version}; ${os__namespace.type()} ${os__namespace.release()})`;
- }
+ const runtimeInfo = `(NODE-VERSION ${process.version}; ${os__namespace.type()} ${os__namespace.release()})`;
if (userAgentInfo.indexOf(runtimeInfo) === -1) {
userAgentInfo.push(runtimeInfo);
}
@@ -37598,7 +39350,7 @@ class StorageSharedKeyCredential extends Credential {
* Changes may cause incorrect behavior and will be lost if the code is regenerated.
*/
const packageName = "azure-storage-blob";
-const packageVersion = "12.14.0";
+const packageVersion = "12.9.0";
class StorageClientContext extends coreHttp__namespace.ServiceClient {
/**
* Initializes a new instance of the StorageClientContext class.
@@ -37624,7 +39376,7 @@ class StorageClientContext extends coreHttp__namespace.ServiceClient {
// Parameter assignments
this.url = url;
// Assigning values to Constant parameters
- this.version = options.version || "2022-11-02";
+ this.version = options.version || "2021-04-10";
}
}
@@ -39553,14 +41305,6 @@ class BlobDownloadResponse {
get lastAccessed() {
return this.originalResponse.lastAccessed;
}
- /**
- * Returns the date and time the blob was created.
- *
- * @readonly
- */
- get createdOn() {
- return this.originalResponse.createdOn;
- }
/**
* A name-value pair
* to associate with a file storage object.
@@ -39714,6 +41458,22 @@ const AVRO_INIT_BYTES = new Uint8Array([79, 98, 106, 1]);
const AVRO_CODEC_KEY = "avro.codec";
const AVRO_SCHEMA_KEY = "avro.schema";
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT license.
+function arraysEqual(a, b) {
+ if (a === b)
+ return true;
+ if (a == null || b == null)
+ return false;
+ if (a.length != b.length)
+ return false;
+ for (let i = 0; i < a.length; ++i) {
+ if (a[i] !== b[i])
+ return false;
+ }
+ return true;
+}
+
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
class AvroParser {
@@ -39726,7 +41486,7 @@ class AvroParser {
*/
static async readFixedBytes(stream, length, options = {}) {
const bytes = await stream.read(length, { abortSignal: options.abortSignal });
- if (bytes.length !== length) {
+ if (bytes.length != length) {
throw new Error("Hit stream end.");
}
return bytes;
@@ -39756,7 +41516,6 @@ class AvroParser {
} while (haveMoreByte && significanceInBit < 28); // bitwise operation only works for 32-bit integers
if (haveMoreByte) {
// Switch to float arithmetic
- // eslint-disable-next-line no-self-assign
zigZagEncoded = zigZagEncoded;
significanceInFloat = 268435456; // 2 ** 28.
do {
@@ -39783,10 +41542,10 @@ class AvroParser {
}
static async readBoolean(stream, options = {}) {
const b = await AvroParser.readByte(stream, options);
- if (b === 1) {
+ if (b == 1) {
return true;
}
- else if (b === 0) {
+ else if (b == 0) {
return false;
}
else {
@@ -39808,10 +41567,16 @@ class AvroParser {
if (size < 0) {
throw new Error("Bytes size was negative.");
}
- return stream.read(size, { abortSignal: options.abortSignal });
+ return await stream.read(size, { abortSignal: options.abortSignal });
}
static async readString(stream, options = {}) {
const u8arr = await AvroParser.readBytes(stream, options);
+ // polyfill TextDecoder to be backward compatible with older
+ // nodejs that doesn't expose TextDecoder as a global variable
+ if (typeof TextDecoder === "undefined" && "function" !== "undefined") {
+ global.TextDecoder = (__nccwpck_require__(3837).TextDecoder);
+ }
+ // FUTURE: need TextDecoder polyfill for IE
const utf8decoder = new TextDecoder();
return utf8decoder.decode(u8arr);
}
@@ -39822,8 +41587,8 @@ class AvroParser {
return { key, value };
}
static async readMap(stream, readItemMethod, options = {}) {
- const readPairMethod = (s, opts = {}) => {
- return AvroParser.readMapPair(s, readItemMethod, opts);
+ const readPairMethod = async (stream, options = {}) => {
+ return await AvroParser.readMapPair(stream, readItemMethod, options);
};
const pairs = await AvroParser.readArray(stream, readPairMethod, options);
const dict = {};
@@ -39834,7 +41599,7 @@ class AvroParser {
}
static async readArray(stream, readItemMethod, options = {}) {
const items = [];
- for (let count = await AvroParser.readLong(stream, options); count !== 0; count = await AvroParser.readLong(stream, options)) {
+ for (let count = await AvroParser.readLong(stream, options); count != 0; count = await AvroParser.readLong(stream, options)) {
if (count < 0) {
// Ignore block sizes
await AvroParser.readLong(stream, options);
@@ -39857,17 +41622,6 @@ var AvroComplex;
AvroComplex["UNION"] = "union";
AvroComplex["FIXED"] = "fixed";
})(AvroComplex || (AvroComplex = {}));
-var AvroPrimitive;
-(function (AvroPrimitive) {
- AvroPrimitive["NULL"] = "null";
- AvroPrimitive["BOOLEAN"] = "boolean";
- AvroPrimitive["INT"] = "int";
- AvroPrimitive["LONG"] = "long";
- AvroPrimitive["FLOAT"] = "float";
- AvroPrimitive["DOUBLE"] = "double";
- AvroPrimitive["BYTES"] = "bytes";
- AvroPrimitive["STRING"] = "string";
-})(AvroPrimitive || (AvroPrimitive = {}));
class AvroType {
/**
* Determines the AvroType from the Avro Schema.
@@ -39907,9 +41661,7 @@ class AvroType {
try {
return AvroType.fromStringSchema(type);
}
- catch (err) {
- // eslint-disable-line no-empty
- }
+ catch (err) { }
switch (type) {
case AvroComplex.RECORD:
if (schema.aliases) {
@@ -39918,7 +41670,6 @@ class AvroType {
if (!schema.name) {
throw new Error(`Required attribute 'name' doesn't exist on schema: ${schema}`);
}
- // eslint-disable-next-line no-case-declarations
const fields = {};
if (!schema.fields) {
throw new Error(`Required attribute 'fields' doesn't exist on schema: ${schema}`);
@@ -39947,29 +41698,40 @@ class AvroType {
}
}
}
+var AvroPrimitive;
+(function (AvroPrimitive) {
+ AvroPrimitive["NULL"] = "null";
+ AvroPrimitive["BOOLEAN"] = "boolean";
+ AvroPrimitive["INT"] = "int";
+ AvroPrimitive["LONG"] = "long";
+ AvroPrimitive["FLOAT"] = "float";
+ AvroPrimitive["DOUBLE"] = "double";
+ AvroPrimitive["BYTES"] = "bytes";
+ AvroPrimitive["STRING"] = "string";
+})(AvroPrimitive || (AvroPrimitive = {}));
class AvroPrimitiveType extends AvroType {
constructor(primitive) {
super();
this._primitive = primitive;
}
- read(stream, options = {}) {
+ async read(stream, options = {}) {
switch (this._primitive) {
case AvroPrimitive.NULL:
- return AvroParser.readNull();
+ return await AvroParser.readNull();
case AvroPrimitive.BOOLEAN:
- return AvroParser.readBoolean(stream, options);
+ return await AvroParser.readBoolean(stream, options);
case AvroPrimitive.INT:
- return AvroParser.readInt(stream, options);
+ return await AvroParser.readInt(stream, options);
case AvroPrimitive.LONG:
- return AvroParser.readLong(stream, options);
+ return await AvroParser.readLong(stream, options);
case AvroPrimitive.FLOAT:
- return AvroParser.readFloat(stream, options);
+ return await AvroParser.readFloat(stream, options);
case AvroPrimitive.DOUBLE:
- return AvroParser.readDouble(stream, options);
+ return await AvroParser.readDouble(stream, options);
case AvroPrimitive.BYTES:
- return AvroParser.readBytes(stream, options);
+ return await AvroParser.readBytes(stream, options);
case AvroPrimitive.STRING:
- return AvroParser.readString(stream, options);
+ return await AvroParser.readString(stream, options);
default:
throw new Error("Unknown Avro Primitive");
}
@@ -39991,9 +41753,8 @@ class AvroUnionType extends AvroType {
this._types = types;
}
async read(stream, options = {}) {
- // eslint-disable-line @typescript-eslint/ban-types
const typeIndex = await AvroParser.readInt(stream, options);
- return this._types[typeIndex].read(stream, options);
+ return await this._types[typeIndex].read(stream, options);
}
}
class AvroMapType extends AvroType {
@@ -40001,11 +41762,11 @@ class AvroMapType extends AvroType {
super();
this._itemType = itemType;
}
- read(stream, options = {}) {
- const readItemMethod = (s, opts) => {
- return this._itemType.read(s, opts);
+ async read(stream, options = {}) {
+ const readItemMethod = async (s, options) => {
+ return await this._itemType.read(s, options);
};
- return AvroParser.readMap(stream, readItemMethod, options);
+ return await AvroParser.readMap(stream, readItemMethod, options);
}
}
class AvroRecordType extends AvroType {
@@ -40018,7 +41779,7 @@ class AvroRecordType extends AvroType {
const record = {};
record["$schema"] = this._name;
for (const key in this._fields) {
- if (Object.prototype.hasOwnProperty.call(this._fields, key)) {
+ if (this._fields.hasOwnProperty(key)) {
record[key] = await this._fields[key].read(stream, options);
}
}
@@ -40026,23 +41787,6 @@ class AvroRecordType extends AvroType {
}
}
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT license.
-function arraysEqual(a, b) {
- if (a === b)
- return true;
- // eslint-disable-next-line eqeqeq
- if (a == null || b == null)
- return false;
- if (a.length !== b.length)
- return false;
- for (let i = 0; i < a.length; ++i) {
- if (a[i] !== b[i])
- return false;
- }
- return true;
-}
-
// Copyright (c) Microsoft Corporation.
class AvroReader {
constructor(dataStream, headerStream, currentBlockOffset, indexWithinCurrentBlock) {
@@ -40073,7 +41817,7 @@ class AvroReader {
});
// Validate codec
const codec = this._metadata[AVRO_CODEC_KEY];
- if (!(codec === undefined || codec === null || codec === "null")) {
+ if (!(codec == undefined || codec == "null")) {
throw new Error("Codecs are not supported");
}
// The 16-byte, randomly-generated sync marker for this file.
@@ -40083,7 +41827,7 @@ class AvroReader {
// Parse the schema
const schema = JSON.parse(this._metadata[AVRO_SCHEMA_KEY]);
this._itemType = AvroType.fromSchema(schema);
- if (this._blockOffset === 0) {
+ if (this._blockOffset == 0) {
this._blockOffset = this._initialBlockOffset + this._dataStream.position;
}
this._itemsRemainingInBlock = await AvroParser.readLong(this._dataStream, {
@@ -40113,7 +41857,7 @@ class AvroReader {
}));
this._itemsRemainingInBlock--;
this._objectIndex++;
- if (this._itemsRemainingInBlock === 0) {
+ if (this._itemsRemainingInBlock == 0) {
const marker = yield tslib.__await(AvroParser.readFixedBytes(this._dataStream, AVRO_SYNC_MARKER_SIZE, {
abortSignal: options.abortSignal,
}));
@@ -40188,7 +41932,6 @@ class AvroReadableFromStream extends AvroReadable {
else {
// register callback to wait for enough data to read
return new Promise((resolve, reject) => {
- /* eslint-disable @typescript-eslint/no-use-before-define */
const cleanUp = () => {
this._readable.removeListener("readable", readableCallback);
this._readable.removeListener("error", rejectCallback);
@@ -40199,12 +41942,12 @@ class AvroReadableFromStream extends AvroReadable {
}
};
const readableCallback = () => {
- const callbackChunk = this._readable.read(size);
- if (callbackChunk) {
- this._position += callbackChunk.length;
+ const chunk = this._readable.read(size);
+ if (chunk) {
+ this._position += chunk.length;
cleanUp();
- // callbackChunk.length maybe less than desired size if the stream ends.
- resolve(this.toUint8Array(callbackChunk));
+ // chunk.length maybe less than desired size if the stream ends.
+ resolve(this.toUint8Array(chunk));
}
};
const rejectCallback = () => {
@@ -40222,7 +41965,6 @@ class AvroReadableFromStream extends AvroReadable {
if (options.abortSignal) {
options.abortSignal.addEventListener("abort", abortHandler);
}
- /* eslint-enable @typescript-eslint/no-use-before-define */
});
}
}
@@ -40650,43295 +42392,20272 @@ class BlobQueryResponse {
* to execute the request.
*
* @readonly
- */
- get version() {
- return this.originalResponse.version;
- }
- /**
- * The SHA-256 hash of the encryption key used to encrypt the blob. This value is only returned
- * when the blob was encrypted with a customer-provided key.
- *
- * @readonly
- */
- get encryptionKeySha256() {
- return this.originalResponse.encryptionKeySha256;
- }
- /**
- * If the request is to read a specified range and the x-ms-range-get-content-crc64 is set to
- * true, then the request returns a crc64 for the range, as long as the range size is less than
- * or equal to 4 MB. If both x-ms-range-get-content-crc64 & x-ms-range-get-content-md5 is
- * specified in the same request, it will fail with 400(Bad Request)
- */
- get contentCrc64() {
- return this.originalResponse.contentCrc64;
- }
- /**
- * The response body as a browser Blob.
- * Always undefined in node.js.
- *
- * @readonly
- */
- get blobBody() {
- return undefined;
- }
- /**
- * The response body as a node.js Readable stream.
- * Always undefined in the browser.
- *
- * It will parse avor data returned by blob query.
- *
- * @readonly
- */
- get readableStreamBody() {
- return coreHttp.isNode ? this.blobDownloadStream : undefined;
- }
- /**
- * The HTTP response.
- */
- get _response() {
- return this.originalResponse._response;
- }
-}
-
-// Copyright (c) Microsoft Corporation.
-/**
- * Represents the access tier on a blob.
- * For detailed information about block blob level tiering see {@link https://docs.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers|Hot, cool and archive storage tiers.}
- */
-exports.BlockBlobTier = void 0;
-(function (BlockBlobTier) {
- /**
- * Optimized for storing data that is accessed frequently.
- */
- BlockBlobTier["Hot"] = "Hot";
- /**
- * Optimized for storing data that is infrequently accessed and stored for at least 30 days.
- */
- BlockBlobTier["Cool"] = "Cool";
- /**
- * Optimized for storing data that is rarely accessed.
- */
- BlockBlobTier["Cold"] = "Cold";
- /**
- * Optimized for storing data that is rarely accessed and stored for at least 180 days
- * with flexible latency requirements (on the order of hours).
- */
- BlockBlobTier["Archive"] = "Archive";
-})(exports.BlockBlobTier || (exports.BlockBlobTier = {}));
-/**
- * Specifies the page blob tier to set the blob to. This is only applicable to page blobs on premium storage accounts.
- * Please see {@link https://docs.microsoft.com/azure/storage/storage-premium-storage#scalability-and-performance-targets|here}
- * for detailed information on the corresponding IOPS and throughput per PageBlobTier.
- */
-exports.PremiumPageBlobTier = void 0;
-(function (PremiumPageBlobTier) {
- /**
- * P4 Tier.
- */
- PremiumPageBlobTier["P4"] = "P4";
- /**
- * P6 Tier.
- */
- PremiumPageBlobTier["P6"] = "P6";
- /**
- * P10 Tier.
- */
- PremiumPageBlobTier["P10"] = "P10";
- /**
- * P15 Tier.
- */
- PremiumPageBlobTier["P15"] = "P15";
- /**
- * P20 Tier.
- */
- PremiumPageBlobTier["P20"] = "P20";
- /**
- * P30 Tier.
- */
- PremiumPageBlobTier["P30"] = "P30";
- /**
- * P40 Tier.
- */
- PremiumPageBlobTier["P40"] = "P40";
- /**
- * P50 Tier.
- */
- PremiumPageBlobTier["P50"] = "P50";
- /**
- * P60 Tier.
- */
- PremiumPageBlobTier["P60"] = "P60";
- /**
- * P70 Tier.
- */
- PremiumPageBlobTier["P70"] = "P70";
- /**
- * P80 Tier.
- */
- PremiumPageBlobTier["P80"] = "P80";
-})(exports.PremiumPageBlobTier || (exports.PremiumPageBlobTier = {}));
-function toAccessTier(tier) {
- if (tier === undefined) {
- return undefined;
- }
- return tier; // No more check if string is a valid AccessTier, and left this to underlay logic to decide(service).
-}
-function ensureCpkIfSpecified(cpk, isHttps) {
- if (cpk && !isHttps) {
- throw new RangeError("Customer-provided encryption key must be used over HTTPS.");
- }
- if (cpk && !cpk.encryptionAlgorithm) {
- cpk.encryptionAlgorithm = EncryptionAlgorithmAES25;
- }
-}
-/**
- * Defines the known cloud audiences for Storage.
- */
-exports.StorageBlobAudience = void 0;
-(function (StorageBlobAudience) {
- /**
- * The OAuth scope to use to retrieve an AAD token for Azure Storage.
- */
- StorageBlobAudience["StorageOAuthScopes"] = "https://storage.azure.com/.default";
- /**
- * The OAuth scope to use to retrieve an AAD token for Azure Disk.
- */
- StorageBlobAudience["DiskComputeOAuthScopes"] = "https://disk.compute.azure.com/.default";
-})(exports.StorageBlobAudience || (exports.StorageBlobAudience = {}));
-
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT license.
-/**
- * Function that converts PageRange and ClearRange to a common Range object.
- * PageRange and ClearRange have start and end while Range offset and count
- * this function normalizes to Range.
- * @param response - Model PageBlob Range response
- */
-function rangeResponseFromModel(response) {
- const pageRange = (response._response.parsedBody.pageRange || []).map((x) => ({
- offset: x.start,
- count: x.end - x.start,
- }));
- const clearRange = (response._response.parsedBody.clearRange || []).map((x) => ({
- offset: x.start,
- count: x.end - x.start,
- }));
- return Object.assign(Object.assign({}, response), { pageRange,
- clearRange, _response: Object.assign(Object.assign({}, response._response), { parsedBody: {
- pageRange,
- clearRange,
- } }) });
-}
-
-// Copyright (c) Microsoft Corporation.
-/**
- * This is the poller returned by {@link BlobClient.beginCopyFromURL}.
- * This can not be instantiated directly outside of this package.
- *
- * @hidden
- */
-class BlobBeginCopyFromUrlPoller extends coreLro.Poller {
- constructor(options) {
- const { blobClient, copySource, intervalInMs = 15000, onProgress, resumeFrom, startCopyFromURLOptions, } = options;
- let state;
- if (resumeFrom) {
- state = JSON.parse(resumeFrom).state;
- }
- const operation = makeBlobBeginCopyFromURLPollOperation(Object.assign(Object.assign({}, state), { blobClient,
- copySource,
- startCopyFromURLOptions }));
- super(operation);
- if (typeof onProgress === "function") {
- this.onProgress(onProgress);
- }
- this.intervalInMs = intervalInMs;
- }
- delay() {
- return coreHttp.delay(this.intervalInMs);
- }
-}
-/**
- * Note: Intentionally using function expression over arrow function expression
- * so that the function can be invoked with a different context.
- * This affects what `this` refers to.
- * @hidden
- */
-const cancel = async function cancel(options = {}) {
- const state = this.state;
- const { copyId } = state;
- if (state.isCompleted) {
- return makeBlobBeginCopyFromURLPollOperation(state);
- }
- if (!copyId) {
- state.isCancelled = true;
- return makeBlobBeginCopyFromURLPollOperation(state);
- }
- // if abortCopyFromURL throws, it will bubble up to user's poller.cancelOperation call
- await state.blobClient.abortCopyFromURL(copyId, {
- abortSignal: options.abortSignal,
- });
- state.isCancelled = true;
- return makeBlobBeginCopyFromURLPollOperation(state);
-};
-/**
- * Note: Intentionally using function expression over arrow function expression
- * so that the function can be invoked with a different context.
- * This affects what `this` refers to.
- * @hidden
- */
-const update = async function update(options = {}) {
- const state = this.state;
- const { blobClient, copySource, startCopyFromURLOptions } = state;
- if (!state.isStarted) {
- state.isStarted = true;
- const result = await blobClient.startCopyFromURL(copySource, startCopyFromURLOptions);
- // copyId is needed to abort
- state.copyId = result.copyId;
- if (result.copyStatus === "success") {
- state.result = result;
- state.isCompleted = true;
- }
- }
- else if (!state.isCompleted) {
- try {
- const result = await state.blobClient.getProperties({ abortSignal: options.abortSignal });
- const { copyStatus, copyProgress } = result;
- const prevCopyProgress = state.copyProgress;
- if (copyProgress) {
- state.copyProgress = copyProgress;
- }
- if (copyStatus === "pending" &&
- copyProgress !== prevCopyProgress &&
- typeof options.fireProgress === "function") {
- // trigger in setTimeout, or swallow error?
- options.fireProgress(state);
- }
- else if (copyStatus === "success") {
- state.result = result;
- state.isCompleted = true;
- }
- else if (copyStatus === "failed") {
- state.error = new Error(`Blob copy failed with reason: "${result.copyStatusDescription || "unknown"}"`);
- state.isCompleted = true;
- }
- }
- catch (err) {
- state.error = err;
- state.isCompleted = true;
- }
- }
- return makeBlobBeginCopyFromURLPollOperation(state);
-};
-/**
- * Note: Intentionally using function expression over arrow function expression
- * so that the function can be invoked with a different context.
- * This affects what `this` refers to.
- * @hidden
- */
-const toString = function toString() {
- return JSON.stringify({ state: this.state }, (key, value) => {
- // remove blobClient from serialized state since a client can't be hydrated from this info.
- if (key === "blobClient") {
- return undefined;
- }
- return value;
- });
-};
-/**
- * Creates a poll operation given the provided state.
- * @hidden
- */
-function makeBlobBeginCopyFromURLPollOperation(state) {
- return {
- state: Object.assign({}, state),
- cancel,
- toString,
- update,
- };
-}
-
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT license.
-/**
- * Generate a range string. For example:
- *
- * "bytes=255-" or "bytes=0-511"
- *
- * @param iRange -
- */
-function rangeToString(iRange) {
- if (iRange.offset < 0) {
- throw new RangeError(`Range.offset cannot be smaller than 0.`);
- }
- if (iRange.count && iRange.count <= 0) {
- throw new RangeError(`Range.count must be larger than 0. Leave it undefined if you want a range from offset to the end.`);
- }
- return iRange.count
- ? `bytes=${iRange.offset}-${iRange.offset + iRange.count - 1}`
- : `bytes=${iRange.offset}-`;
-}
-
-// Copyright (c) Microsoft Corporation.
-/**
- * States for Batch.
- */
-var BatchStates;
-(function (BatchStates) {
- BatchStates[BatchStates["Good"] = 0] = "Good";
- BatchStates[BatchStates["Error"] = 1] = "Error";
-})(BatchStates || (BatchStates = {}));
-/**
- * Batch provides basic parallel execution with concurrency limits.
- * Will stop execute left operations when one of the executed operation throws an error.
- * But Batch cannot cancel ongoing operations, you need to cancel them by yourself.
- */
-class Batch {
- /**
- * Creates an instance of Batch.
- * @param concurrency -
- */
- constructor(concurrency = 5) {
- /**
- * Number of active operations under execution.
- */
- this.actives = 0;
- /**
- * Number of completed operations under execution.
- */
- this.completed = 0;
- /**
- * Offset of next operation to be executed.
- */
- this.offset = 0;
- /**
- * Operation array to be executed.
- */
- this.operations = [];
- /**
- * States of Batch. When an error happens, state will turn into error.
- * Batch will stop execute left operations.
- */
- this.state = BatchStates.Good;
- if (concurrency < 1) {
- throw new RangeError("concurrency must be larger than 0");
- }
- this.concurrency = concurrency;
- this.emitter = new events.EventEmitter();
- }
- /**
- * Add a operation into queue.
- *
- * @param operation -
- */
- addOperation(operation) {
- this.operations.push(async () => {
- try {
- this.actives++;
- await operation();
- this.actives--;
- this.completed++;
- this.parallelExecute();
- }
- catch (error) {
- this.emitter.emit("error", error);
- }
- });
- }
- /**
- * Start execute operations in the queue.
- *
- */
- async do() {
- if (this.operations.length === 0) {
- return Promise.resolve();
- }
- this.parallelExecute();
- return new Promise((resolve, reject) => {
- this.emitter.on("finish", resolve);
- this.emitter.on("error", (error) => {
- this.state = BatchStates.Error;
- reject(error);
- });
- });
- }
- /**
- * Get next operation to be executed. Return null when reaching ends.
- *
- */
- nextOperation() {
- if (this.offset < this.operations.length) {
- return this.operations[this.offset++];
- }
- return null;
- }
- /**
- * Start execute operations. One one the most important difference between
- * this method with do() is that do() wraps as an sync method.
- *
- */
- parallelExecute() {
- if (this.state === BatchStates.Error) {
- return;
- }
- if (this.completed >= this.operations.length) {
- this.emitter.emit("finish");
- return;
- }
- while (this.actives < this.concurrency) {
- const operation = this.nextOperation();
- if (operation) {
- operation();
- }
- else {
- return;
- }
- }
- }
-}
-
-// Copyright (c) Microsoft Corporation.
-/**
- * This class generates a readable stream from the data in an array of buffers.
- */
-class BuffersStream extends stream.Readable {
- /**
- * Creates an instance of BuffersStream that will emit the data
- * contained in the array of buffers.
- *
- * @param buffers - Array of buffers containing the data
- * @param byteLength - The total length of data contained in the buffers
- */
- constructor(buffers, byteLength, options) {
- super(options);
- this.buffers = buffers;
- this.byteLength = byteLength;
- this.byteOffsetInCurrentBuffer = 0;
- this.bufferIndex = 0;
- this.pushedBytesLength = 0;
- // check byteLength is no larger than buffers[] total length
- let buffersLength = 0;
- for (const buf of this.buffers) {
- buffersLength += buf.byteLength;
- }
- if (buffersLength < this.byteLength) {
- throw new Error("Data size shouldn't be larger than the total length of buffers.");
- }
- }
- /**
- * Internal _read() that will be called when the stream wants to pull more data in.
- *
- * @param size - Optional. The size of data to be read
- */
- _read(size) {
- if (this.pushedBytesLength >= this.byteLength) {
- this.push(null);
- }
- if (!size) {
- size = this.readableHighWaterMark;
- }
- const outBuffers = [];
- let i = 0;
- while (i < size && this.pushedBytesLength < this.byteLength) {
- // The last buffer may be longer than the data it contains.
- const remainingDataInAllBuffers = this.byteLength - this.pushedBytesLength;
- const remainingCapacityInThisBuffer = this.buffers[this.bufferIndex].byteLength - this.byteOffsetInCurrentBuffer;
- const remaining = Math.min(remainingCapacityInThisBuffer, remainingDataInAllBuffers);
- if (remaining > size - i) {
- // chunkSize = size - i
- const end = this.byteOffsetInCurrentBuffer + size - i;
- outBuffers.push(this.buffers[this.bufferIndex].slice(this.byteOffsetInCurrentBuffer, end));
- this.pushedBytesLength += size - i;
- this.byteOffsetInCurrentBuffer = end;
- i = size;
- break;
- }
- else {
- // chunkSize = remaining
- const end = this.byteOffsetInCurrentBuffer + remaining;
- outBuffers.push(this.buffers[this.bufferIndex].slice(this.byteOffsetInCurrentBuffer, end));
- if (remaining === remainingCapacityInThisBuffer) {
- // this.buffers[this.bufferIndex] used up, shift to next one
- this.byteOffsetInCurrentBuffer = 0;
- this.bufferIndex++;
- }
- else {
- this.byteOffsetInCurrentBuffer = end;
- }
- this.pushedBytesLength += remaining;
- i += remaining;
- }
- }
- if (outBuffers.length > 1) {
- this.push(Buffer.concat(outBuffers));
- }
- else if (outBuffers.length === 1) {
- this.push(outBuffers[0]);
- }
- }
-}
-
-// Copyright (c) Microsoft Corporation.
-/**
- * maxBufferLength is max size of each buffer in the pooled buffers.
- */
-// Can't use import as Typescript doesn't recognize "buffer".
-const maxBufferLength = (__nccwpck_require__(4300).constants.MAX_LENGTH);
-/**
- * This class provides a buffer container which conceptually has no hard size limit.
- * It accepts a capacity, an array of input buffers and the total length of input data.
- * It will allocate an internal "buffer" of the capacity and fill the data in the input buffers
- * into the internal "buffer" serially with respect to the total length.
- * Then by calling PooledBuffer.getReadableStream(), you can get a readable stream
- * assembled from all the data in the internal "buffer".
- */
-class PooledBuffer {
- constructor(capacity, buffers, totalLength) {
- /**
- * Internal buffers used to keep the data.
- * Each buffer has a length of the maxBufferLength except last one.
- */
- this.buffers = [];
- this.capacity = capacity;
- this._size = 0;
- // allocate
- const bufferNum = Math.ceil(capacity / maxBufferLength);
- for (let i = 0; i < bufferNum; i++) {
- let len = i === bufferNum - 1 ? capacity % maxBufferLength : maxBufferLength;
- if (len === 0) {
- len = maxBufferLength;
- }
- this.buffers.push(Buffer.allocUnsafe(len));
- }
- if (buffers) {
- this.fill(buffers, totalLength);
- }
- }
- /**
- * The size of the data contained in the pooled buffers.
- */
- get size() {
- return this._size;
- }
- /**
- * Fill the internal buffers with data in the input buffers serially
- * with respect to the total length and the total capacity of the internal buffers.
- * Data copied will be shift out of the input buffers.
- *
- * @param buffers - Input buffers containing the data to be filled in the pooled buffer
- * @param totalLength - Total length of the data to be filled in.
- *
- */
- fill(buffers, totalLength) {
- this._size = Math.min(this.capacity, totalLength);
- let i = 0, j = 0, targetOffset = 0, sourceOffset = 0, totalCopiedNum = 0;
- while (totalCopiedNum < this._size) {
- const source = buffers[i];
- const target = this.buffers[j];
- const copiedNum = source.copy(target, targetOffset, sourceOffset);
- totalCopiedNum += copiedNum;
- sourceOffset += copiedNum;
- targetOffset += copiedNum;
- if (sourceOffset === source.length) {
- i++;
- sourceOffset = 0;
- }
- if (targetOffset === target.length) {
- j++;
- targetOffset = 0;
- }
- }
- // clear copied from source buffers
- buffers.splice(0, i);
- if (buffers.length > 0) {
- buffers[0] = buffers[0].slice(sourceOffset);
- }
- }
- /**
- * Get the readable stream assembled from all the data in the internal buffers.
- *
- */
- getReadableStream() {
- return new BuffersStream(this.buffers, this.size);
- }
-}
-
-// Copyright (c) Microsoft Corporation.
-/**
- * This class accepts a Node.js Readable stream as input, and keeps reading data
- * from the stream into the internal buffer structure, until it reaches maxBuffers.
- * Every available buffer will try to trigger outgoingHandler.
- *
- * The internal buffer structure includes an incoming buffer array, and a outgoing
- * buffer array. The incoming buffer array includes the "empty" buffers can be filled
- * with new incoming data. The outgoing array includes the filled buffers to be
- * handled by outgoingHandler. Every above buffer size is defined by parameter bufferSize.
- *
- * NUM_OF_ALL_BUFFERS = BUFFERS_IN_INCOMING + BUFFERS_IN_OUTGOING + BUFFERS_UNDER_HANDLING
- *
- * NUM_OF_ALL_BUFFERS lesser than or equal to maxBuffers
- *
- * PERFORMANCE IMPROVEMENT TIPS:
- * 1. Input stream highWaterMark is better to set a same value with bufferSize
- * parameter, which will avoid Buffer.concat() operations.
- * 2. concurrency should set a smaller value than maxBuffers, which is helpful to
- * reduce the possibility when a outgoing handler waits for the stream data.
- * in this situation, outgoing handlers are blocked.
- * Outgoing queue shouldn't be empty.
- */
-class BufferScheduler {
- /**
- * Creates an instance of BufferScheduler.
- *
- * @param readable - A Node.js Readable stream
- * @param bufferSize - Buffer size of every maintained buffer
- * @param maxBuffers - How many buffers can be allocated
- * @param outgoingHandler - An async function scheduled to be
- * triggered when a buffer fully filled
- * with stream data
- * @param concurrency - Concurrency of executing outgoingHandlers (>0)
- * @param encoding - [Optional] Encoding of Readable stream when it's a string stream
- */
- constructor(readable, bufferSize, maxBuffers, outgoingHandler, concurrency, encoding) {
- /**
- * An internal event emitter.
- */
- this.emitter = new events.EventEmitter();
- /**
- * An internal offset marker to track data offset in bytes of next outgoingHandler.
- */
- this.offset = 0;
- /**
- * An internal marker to track whether stream is end.
- */
- this.isStreamEnd = false;
- /**
- * An internal marker to track whether stream or outgoingHandler returns error.
- */
- this.isError = false;
- /**
- * How many handlers are executing.
- */
- this.executingOutgoingHandlers = 0;
- /**
- * How many buffers have been allocated.
- */
- this.numBuffers = 0;
- /**
- * Because this class doesn't know how much data every time stream pops, which
- * is defined by highWaterMarker of the stream. So BufferScheduler will cache
- * data received from the stream, when data in unresolvedDataArray exceeds the
- * blockSize defined, it will try to concat a blockSize of buffer, fill into available
- * buffers from incoming and push to outgoing array.
- */
- this.unresolvedDataArray = [];
- /**
- * How much data consisted in unresolvedDataArray.
- */
- this.unresolvedLength = 0;
- /**
- * The array includes all the available buffers can be used to fill data from stream.
- */
- this.incoming = [];
- /**
- * The array (queue) includes all the buffers filled from stream data.
- */
- this.outgoing = [];
- if (bufferSize <= 0) {
- throw new RangeError(`bufferSize must be larger than 0, current is ${bufferSize}`);
- }
- if (maxBuffers <= 0) {
- throw new RangeError(`maxBuffers must be larger than 0, current is ${maxBuffers}`);
- }
- if (concurrency <= 0) {
- throw new RangeError(`concurrency must be larger than 0, current is ${concurrency}`);
- }
- this.bufferSize = bufferSize;
- this.maxBuffers = maxBuffers;
- this.readable = readable;
- this.outgoingHandler = outgoingHandler;
- this.concurrency = concurrency;
- this.encoding = encoding;
- }
- /**
- * Start the scheduler, will return error when stream of any of the outgoingHandlers
- * returns error.
- *
- */
- async do() {
- return new Promise((resolve, reject) => {
- this.readable.on("data", (data) => {
- data = typeof data === "string" ? Buffer.from(data, this.encoding) : data;
- this.appendUnresolvedData(data);
- if (!this.resolveData()) {
- this.readable.pause();
- }
- });
- this.readable.on("error", (err) => {
- this.emitter.emit("error", err);
- });
- this.readable.on("end", () => {
- this.isStreamEnd = true;
- this.emitter.emit("checkEnd");
- });
- this.emitter.on("error", (err) => {
- this.isError = true;
- this.readable.pause();
- reject(err);
- });
- this.emitter.on("checkEnd", () => {
- if (this.outgoing.length > 0) {
- this.triggerOutgoingHandlers();
- return;
- }
- if (this.isStreamEnd && this.executingOutgoingHandlers === 0) {
- if (this.unresolvedLength > 0 && this.unresolvedLength < this.bufferSize) {
- const buffer = this.shiftBufferFromUnresolvedDataArray();
- this.outgoingHandler(() => buffer.getReadableStream(), buffer.size, this.offset)
- .then(resolve)
- .catch(reject);
- }
- else if (this.unresolvedLength >= this.bufferSize) {
- return;
- }
- else {
- resolve();
- }
- }
- });
- });
- }
- /**
- * Insert a new data into unresolved array.
- *
- * @param data -
- */
- appendUnresolvedData(data) {
- this.unresolvedDataArray.push(data);
- this.unresolvedLength += data.length;
- }
- /**
- * Try to shift a buffer with size in blockSize. The buffer returned may be less
- * than blockSize when data in unresolvedDataArray is less than bufferSize.
- *
- */
- shiftBufferFromUnresolvedDataArray(buffer) {
- if (!buffer) {
- buffer = new PooledBuffer(this.bufferSize, this.unresolvedDataArray, this.unresolvedLength);
- }
- else {
- buffer.fill(this.unresolvedDataArray, this.unresolvedLength);
- }
- this.unresolvedLength -= buffer.size;
- return buffer;
- }
- /**
- * Resolve data in unresolvedDataArray. For every buffer with size in blockSize
- * shifted, it will try to get (or allocate a buffer) from incoming, and fill it,
- * then push it into outgoing to be handled by outgoing handler.
- *
- * Return false when available buffers in incoming are not enough, else true.
- *
- * @returns Return false when buffers in incoming are not enough, else true.
- */
- resolveData() {
- while (this.unresolvedLength >= this.bufferSize) {
- let buffer;
- if (this.incoming.length > 0) {
- buffer = this.incoming.shift();
- this.shiftBufferFromUnresolvedDataArray(buffer);
- }
- else {
- if (this.numBuffers < this.maxBuffers) {
- buffer = this.shiftBufferFromUnresolvedDataArray();
- this.numBuffers++;
- }
- else {
- // No available buffer, wait for buffer returned
- return false;
- }
- }
- this.outgoing.push(buffer);
- this.triggerOutgoingHandlers();
- }
- return true;
- }
- /**
- * Try to trigger a outgoing handler for every buffer in outgoing. Stop when
- * concurrency reaches.
- */
- async triggerOutgoingHandlers() {
- let buffer;
- do {
- if (this.executingOutgoingHandlers >= this.concurrency) {
- return;
- }
- buffer = this.outgoing.shift();
- if (buffer) {
- this.triggerOutgoingHandler(buffer);
- }
- } while (buffer);
- }
- /**
- * Trigger a outgoing handler for a buffer shifted from outgoing.
- *
- * @param buffer -
- */
- async triggerOutgoingHandler(buffer) {
- const bufferLength = buffer.size;
- this.executingOutgoingHandlers++;
- this.offset += bufferLength;
- try {
- await this.outgoingHandler(() => buffer.getReadableStream(), bufferLength, this.offset - bufferLength);
- }
- catch (err) {
- this.emitter.emit("error", err);
- return;
- }
- this.executingOutgoingHandlers--;
- this.reuseBuffer(buffer);
- this.emitter.emit("checkEnd");
- }
- /**
- * Return buffer used by outgoing handler into incoming.
- *
- * @param buffer -
- */
- reuseBuffer(buffer) {
- this.incoming.push(buffer);
- if (!this.isError && this.resolveData() && !this.isStreamEnd) {
- this.readable.resume();
- }
- }
-}
-
-// Copyright (c) Microsoft Corporation.
-/**
- * Reads a readable stream into buffer. Fill the buffer from offset to end.
- *
- * @param stream - A Node.js Readable stream
- * @param buffer - Buffer to be filled, length must greater than or equal to offset
- * @param offset - From which position in the buffer to be filled, inclusive
- * @param end - To which position in the buffer to be filled, exclusive
- * @param encoding - Encoding of the Readable stream
- */
-async function streamToBuffer(stream, buffer, offset, end, encoding) {
- let pos = 0; // Position in stream
- const count = end - offset; // Total amount of data needed in stream
- return new Promise((resolve, reject) => {
- const timeout = setTimeout(() => reject(new Error(`The operation cannot be completed in timeout.`)), REQUEST_TIMEOUT);
- stream.on("readable", () => {
- if (pos >= count) {
- clearTimeout(timeout);
- resolve();
- return;
- }
- let chunk = stream.read();
- if (!chunk) {
- return;
- }
- if (typeof chunk === "string") {
- chunk = Buffer.from(chunk, encoding);
- }
- // How much data needed in this chunk
- const chunkLength = pos + chunk.length > count ? count - pos : chunk.length;
- buffer.fill(chunk.slice(0, chunkLength), offset + pos, offset + pos + chunkLength);
- pos += chunkLength;
- });
- stream.on("end", () => {
- clearTimeout(timeout);
- if (pos < count) {
- reject(new Error(`Stream drains before getting enough data needed. Data read: ${pos}, data need: ${count}`));
- }
- resolve();
- });
- stream.on("error", (msg) => {
- clearTimeout(timeout);
- reject(msg);
- });
- });
-}
-/**
- * Reads a readable stream into buffer entirely.
- *
- * @param stream - A Node.js Readable stream
- * @param buffer - Buffer to be filled, length must greater than or equal to offset
- * @param encoding - Encoding of the Readable stream
- * @returns with the count of bytes read.
- * @throws `RangeError` If buffer size is not big enough.
- */
-async function streamToBuffer2(stream, buffer, encoding) {
- let pos = 0; // Position in stream
- const bufferSize = buffer.length;
- return new Promise((resolve, reject) => {
- stream.on("readable", () => {
- let chunk = stream.read();
- if (!chunk) {
- return;
- }
- if (typeof chunk === "string") {
- chunk = Buffer.from(chunk, encoding);
- }
- if (pos + chunk.length > bufferSize) {
- reject(new Error(`Stream exceeds buffer size. Buffer size: ${bufferSize}`));
- return;
- }
- buffer.fill(chunk, pos, pos + chunk.length);
- pos += chunk.length;
- });
- stream.on("end", () => {
- resolve(pos);
- });
- stream.on("error", reject);
- });
-}
-/**
- * ONLY AVAILABLE IN NODE.JS RUNTIME.
- *
- * Writes the content of a readstream to a local file. Returns a Promise which is completed after the file handle is closed.
- *
- * @param rs - The read stream.
- * @param file - Destination file path.
- */
-async function readStreamToLocalFile(rs, file) {
- return new Promise((resolve, reject) => {
- const ws = fs__namespace.createWriteStream(file);
- rs.on("error", (err) => {
- reject(err);
- });
- ws.on("error", (err) => {
- reject(err);
- });
- ws.on("close", resolve);
- rs.pipe(ws);
- });
-}
-/**
- * ONLY AVAILABLE IN NODE.JS RUNTIME.
- *
- * Promisified version of fs.stat().
- */
-const fsStat = util__namespace.promisify(fs__namespace.stat);
-const fsCreateReadStream = fs__namespace.createReadStream;
-
-/**
- * A BlobClient represents a URL to an Azure Storage blob; the blob may be a block blob,
- * append blob, or page blob.
- */
-class BlobClient extends StorageClient {
- constructor(urlOrConnectionString, credentialOrPipelineOrContainerName, blobNameOrOptions,
- // Legacy, no fix for eslint error without breaking. Disable it for this interface.
- /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/
- options) {
- options = options || {};
- let pipeline;
- let url;
- if (isPipelineLike(credentialOrPipelineOrContainerName)) {
- // (url: string, pipeline: Pipeline)
- url = urlOrConnectionString;
- pipeline = credentialOrPipelineOrContainerName;
- }
- else if ((coreHttp.isNode && credentialOrPipelineOrContainerName instanceof StorageSharedKeyCredential) ||
- credentialOrPipelineOrContainerName instanceof AnonymousCredential ||
- coreHttp.isTokenCredential(credentialOrPipelineOrContainerName)) {
- // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)
- url = urlOrConnectionString;
- options = blobNameOrOptions;
- pipeline = newPipeline(credentialOrPipelineOrContainerName, options);
- }
- else if (!credentialOrPipelineOrContainerName &&
- typeof credentialOrPipelineOrContainerName !== "string") {
- // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)
- // The second parameter is undefined. Use anonymous credential.
- url = urlOrConnectionString;
- if (blobNameOrOptions && typeof blobNameOrOptions !== "string") {
- options = blobNameOrOptions;
- }
- pipeline = newPipeline(new AnonymousCredential(), options);
- }
- else if (credentialOrPipelineOrContainerName &&
- typeof credentialOrPipelineOrContainerName === "string" &&
- blobNameOrOptions &&
- typeof blobNameOrOptions === "string") {
- // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions)
- const containerName = credentialOrPipelineOrContainerName;
- const blobName = blobNameOrOptions;
- const extractedCreds = extractConnectionStringParts(urlOrConnectionString);
- if (extractedCreds.kind === "AccountConnString") {
- if (coreHttp.isNode) {
- const sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey);
- url = appendToURLPath(appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)), encodeURIComponent(blobName));
- if (!options.proxyOptions) {
- options.proxyOptions = coreHttp.getDefaultProxySettings(extractedCreds.proxyUri);
- }
- pipeline = newPipeline(sharedKeyCredential, options);
- }
- else {
- throw new Error("Account connection string is only supported in Node.js environment");
- }
- }
- else if (extractedCreds.kind === "SASConnString") {
- url =
- appendToURLPath(appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)), encodeURIComponent(blobName)) +
- "?" +
- extractedCreds.accountSas;
- pipeline = newPipeline(new AnonymousCredential(), options);
- }
- else {
- throw new Error("Connection string must be either an Account connection string or a SAS connection string");
- }
- }
- else {
- throw new Error("Expecting non-empty strings for containerName and blobName parameters");
- }
- super(url, pipeline);
- ({ blobName: this._name, containerName: this._containerName } =
- this.getBlobAndContainerNamesFromUrl());
- this.blobContext = new Blob$1(this.storageClientContext);
- this._snapshot = getURLParameter(this.url, URLConstants.Parameters.SNAPSHOT);
- this._versionId = getURLParameter(this.url, URLConstants.Parameters.VERSIONID);
- }
- /**
- * The name of the blob.
- */
- get name() {
- return this._name;
- }
- /**
- * The name of the storage container the blob is associated with.
- */
- get containerName() {
- return this._containerName;
- }
- /**
- * Creates a new BlobClient object identical to the source but with the specified snapshot timestamp.
- * Provide "" will remove the snapshot and return a Client to the base blob.
- *
- * @param snapshot - The snapshot timestamp.
- * @returns A new BlobClient object identical to the source but with the specified snapshot timestamp
- */
- withSnapshot(snapshot) {
- return new BlobClient(setURLParameter(this.url, URLConstants.Parameters.SNAPSHOT, snapshot.length === 0 ? undefined : snapshot), this.pipeline);
- }
- /**
- * Creates a new BlobClient object pointing to a version of this blob.
- * Provide "" will remove the versionId and return a Client to the base blob.
- *
- * @param versionId - The versionId.
- * @returns A new BlobClient object pointing to the version of this blob.
- */
- withVersion(versionId) {
- return new BlobClient(setURLParameter(this.url, URLConstants.Parameters.VERSIONID, versionId.length === 0 ? undefined : versionId), this.pipeline);
- }
- /**
- * Creates a AppendBlobClient object.
- *
- */
- getAppendBlobClient() {
- return new AppendBlobClient(this.url, this.pipeline);
- }
- /**
- * Creates a BlockBlobClient object.
- *
- */
- getBlockBlobClient() {
- return new BlockBlobClient(this.url, this.pipeline);
- }
- /**
- * Creates a PageBlobClient object.
- *
- */
- getPageBlobClient() {
- return new PageBlobClient(this.url, this.pipeline);
- }
- /**
- * Reads or downloads a blob from the system, including its metadata and properties.
- * You can also call Get Blob to read a snapshot.
- *
- * * In Node.js, data returns in a Readable stream readableStreamBody
- * * In browsers, data returns in a promise blobBody
- *
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob
- *
- * @param offset - From which position of the blob to download, greater than or equal to 0
- * @param count - How much data to be downloaded, greater than 0. Will download to the end when undefined
- * @param options - Optional options to Blob Download operation.
- *
- *
- * Example usage (Node.js):
- *
- * ```js
- * // Download and convert a blob to a string
- * const downloadBlockBlobResponse = await blobClient.download();
- * const downloaded = await streamToBuffer(downloadBlockBlobResponse.readableStreamBody);
- * console.log("Downloaded blob content:", downloaded.toString());
- *
- * async function streamToBuffer(readableStream) {
- * return new Promise((resolve, reject) => {
- * const chunks = [];
- * readableStream.on("data", (data) => {
- * chunks.push(data instanceof Buffer ? data : Buffer.from(data));
- * });
- * readableStream.on("end", () => {
- * resolve(Buffer.concat(chunks));
- * });
- * readableStream.on("error", reject);
- * });
- * }
- * ```
- *
- * Example usage (browser):
- *
- * ```js
- * // Download and convert a blob to a string
- * const downloadBlockBlobResponse = await blobClient.download();
- * const downloaded = await blobToString(await downloadBlockBlobResponse.blobBody);
- * console.log(
- * "Downloaded blob content",
- * downloaded
- * );
- *
- * async function blobToString(blob: Blob): Promise {
- * const fileReader = new FileReader();
- * return new Promise((resolve, reject) => {
- * fileReader.onloadend = (ev: any) => {
- * resolve(ev.target!.result);
- * };
- * fileReader.onerror = reject;
- * fileReader.readAsText(blob);
- * });
- * }
- * ```
- */
- async download(offset = 0, count, options = {}) {
- var _a;
- options.conditions = options.conditions || {};
- options.conditions = options.conditions || {};
- ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);
- const { span, updatedOptions } = createSpan("BlobClient-download", options);
- try {
- const res = await this.blobContext.download(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), requestOptions: {
- onDownloadProgress: coreHttp.isNode ? undefined : options.onProgress, // for Node.js, progress is reported by RetriableReadableStream
- }, range: offset === 0 && !count ? undefined : rangeToString({ offset, count }), rangeGetContentMD5: options.rangeGetContentMD5, rangeGetContentCRC64: options.rangeGetContentCrc64, snapshot: options.snapshot, cpkInfo: options.customerProvidedKey }, convertTracingToRequestOptionsBase(updatedOptions)));
- const wrappedRes = Object.assign(Object.assign({}, res), { _response: res._response, objectReplicationDestinationPolicyId: res.objectReplicationPolicyId, objectReplicationSourceProperties: parseObjectReplicationRecord(res.objectReplicationRules) });
- // Return browser response immediately
- if (!coreHttp.isNode) {
- return wrappedRes;
- }
- // We support retrying when download stream unexpected ends in Node.js runtime
- // Following code shouldn't be bundled into browser build, however some
- // bundlers may try to bundle following code and "FileReadResponse.ts".
- // In this case, "FileDownloadResponse.browser.ts" will be used as a shim of "FileDownloadResponse.ts"
- // The config is in package.json "browser" field
- if (options.maxRetryRequests === undefined || options.maxRetryRequests < 0) {
- // TODO: Default value or make it a required parameter?
- options.maxRetryRequests = DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS;
- }
- if (res.contentLength === undefined) {
- throw new RangeError(`File download response doesn't contain valid content length header`);
- }
- if (!res.etag) {
- throw new RangeError(`File download response doesn't contain valid etag header`);
- }
- return new BlobDownloadResponse(wrappedRes, async (start) => {
- var _a;
- const updatedDownloadOptions = {
- leaseAccessConditions: options.conditions,
- modifiedAccessConditions: {
- ifMatch: options.conditions.ifMatch || res.etag,
- ifModifiedSince: options.conditions.ifModifiedSince,
- ifNoneMatch: options.conditions.ifNoneMatch,
- ifUnmodifiedSince: options.conditions.ifUnmodifiedSince,
- ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions,
- },
- range: rangeToString({
- count: offset + res.contentLength - start,
- offset: start,
- }),
- rangeGetContentMD5: options.rangeGetContentMD5,
- rangeGetContentCRC64: options.rangeGetContentCrc64,
- snapshot: options.snapshot,
- cpkInfo: options.customerProvidedKey,
- };
- // Debug purpose only
- // console.log(
- // `Read from internal stream, range: ${
- // updatedOptions.range
- // }, options: ${JSON.stringify(updatedOptions)}`
- // );
- return (await this.blobContext.download(Object.assign({ abortSignal: options.abortSignal }, updatedDownloadOptions))).readableStreamBody;
- }, offset, res.contentLength, {
- maxRetryRequests: options.maxRetryRequests,
- onProgress: options.onProgress,
- });
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Returns true if the Azure blob resource represented by this client exists; false otherwise.
- *
- * NOTE: use this function with care since an existing blob might be deleted by other clients or
- * applications. Vice versa new blobs might be added by other clients or applications after this
- * function completes.
- *
- * @param options - options to Exists operation.
- */
- async exists(options = {}) {
- const { span, updatedOptions } = createSpan("BlobClient-exists", options);
- try {
- ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);
- await this.getProperties({
- abortSignal: options.abortSignal,
- customerProvidedKey: options.customerProvidedKey,
- conditions: options.conditions,
- tracingOptions: updatedOptions.tracingOptions,
- });
- return true;
- }
- catch (e) {
- if (e.statusCode === 404) {
- // Expected exception when checking blob existence
- return false;
- }
- else if (e.statusCode === 409 &&
- (e.details.errorCode === BlobUsesCustomerSpecifiedEncryptionMsg ||
- e.details.errorCode === BlobDoesNotUseCustomerSpecifiedEncryption)) {
- // Expected exception when checking blob existence
- return true;
- }
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Returns all user-defined metadata, standard HTTP properties, and system properties
- * for the blob. It does not return the content of the blob.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob-properties
- *
- * WARNING: The `metadata` object returned in the response will have its keys in lowercase, even if
- * they originally contained uppercase characters. This differs from the metadata keys returned by
- * the methods of {@link ContainerClient} that list blobs using the `includeMetadata` option, which
- * will retain their original casing.
- *
- * @param options - Optional options to Get Properties operation.
- */
- async getProperties(options = {}) {
- var _a;
- const { span, updatedOptions } = createSpan("BlobClient-getProperties", options);
- try {
- options.conditions = options.conditions || {};
- ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);
- const res = await this.blobContext.getProperties(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey }, convertTracingToRequestOptionsBase(updatedOptions)));
- return Object.assign(Object.assign({}, res), { _response: res._response, objectReplicationDestinationPolicyId: res.objectReplicationPolicyId, objectReplicationSourceProperties: parseObjectReplicationRecord(res.objectReplicationRules) });
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Marks the specified blob or snapshot for deletion. The blob is later deleted
- * during garbage collection. Note that in order to delete a blob, you must delete
- * all of its snapshots. You can delete both at the same time with the Delete
- * Blob operation.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/delete-blob
- *
- * @param options - Optional options to Blob Delete operation.
- */
- async delete(options = {}) {
- var _a;
- const { span, updatedOptions } = createSpan("BlobClient-delete", options);
- options.conditions = options.conditions || {};
- try {
- return await this.blobContext.delete(Object.assign({ abortSignal: options.abortSignal, deleteSnapshots: options.deleteSnapshots, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Marks the specified blob or snapshot for deletion if it exists. The blob is later deleted
- * during garbage collection. Note that in order to delete a blob, you must delete
- * all of its snapshots. You can delete both at the same time with the Delete
- * Blob operation.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/delete-blob
- *
- * @param options - Optional options to Blob Delete operation.
- */
- async deleteIfExists(options = {}) {
- var _a, _b;
- const { span, updatedOptions } = createSpan("BlobClient-deleteIfExists", options);
- try {
- const res = await this.delete(updatedOptions);
- return Object.assign(Object.assign({ succeeded: true }, res), { _response: res._response });
- }
- catch (e) {
- if (((_a = e.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "BlobNotFound") {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: "Expected exception when deleting a blob or snapshot only if it exists.",
- });
- return Object.assign(Object.assign({ succeeded: false }, (_b = e.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e.response });
- }
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Restores the contents and metadata of soft deleted blob and any associated
- * soft deleted snapshots. Undelete Blob is supported only on version 2017-07-29
- * or later.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/undelete-blob
- *
- * @param options - Optional options to Blob Undelete operation.
- */
- async undelete(options = {}) {
- const { span, updatedOptions } = createSpan("BlobClient-undelete", options);
- try {
- return await this.blobContext.undelete(Object.assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Sets system properties on the blob.
- *
- * If no value provided, or no value provided for the specified blob HTTP headers,
- * these blob HTTP headers without a value will be cleared.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-properties
- *
- * @param blobHTTPHeaders - If no value provided, or no value provided for
- * the specified blob HTTP headers, these blob HTTP
- * headers without a value will be cleared.
- * A common header to set is `blobContentType`
- * enabling the browser to provide functionality
- * based on file type.
- * @param options - Optional options to Blob Set HTTP Headers operation.
- */
- async setHTTPHeaders(blobHTTPHeaders, options = {}) {
- var _a;
- const { span, updatedOptions } = createSpan("BlobClient-setHTTPHeaders", options);
- options.conditions = options.conditions || {};
- try {
- ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);
- return await this.blobContext.setHttpHeaders(Object.assign({ abortSignal: options.abortSignal, blobHttpHeaders: blobHTTPHeaders, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Sets user-defined metadata for the specified blob as one or more name-value pairs.
- *
- * If no option provided, or no metadata defined in the parameter, the blob
- * metadata will be removed.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-metadata
- *
- * @param metadata - Replace existing metadata with this value.
- * If no value provided the existing metadata will be removed.
- * @param options - Optional options to Set Metadata operation.
- */
- async setMetadata(metadata, options = {}) {
- var _a;
- const { span, updatedOptions } = createSpan("BlobClient-setMetadata", options);
- options.conditions = options.conditions || {};
- try {
- ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);
- return await this.blobContext.setMetadata(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, metadata, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Sets tags on the underlying blob.
- * A blob can have up to 10 tags. Tag keys must be between 1 and 128 characters. Tag values must be between 0 and 256 characters.
- * Valid tag key and value characters include lower and upper case letters, digits (0-9),
- * space (' '), plus ('+'), minus ('-'), period ('.'), foward slash ('/'), colon (':'), equals ('='), and underscore ('_').
- *
- * @param tags -
- * @param options -
- */
- async setTags(tags, options = {}) {
- var _a;
- const { span, updatedOptions } = createSpan("BlobClient-setTags", options);
- try {
- return await this.blobContext.setTags(Object.assign(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)), { tags: toBlobTags(tags) }));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Gets the tags associated with the underlying blob.
- *
- * @param options -
- */
- async getTags(options = {}) {
- var _a;
- const { span, updatedOptions } = createSpan("BlobClient-getTags", options);
- try {
- const response = await this.blobContext.getTags(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)));
- const wrappedResponse = Object.assign(Object.assign({}, response), { _response: response._response, tags: toTags({ blobTagSet: response.blobTagSet }) || {} });
- return wrappedResponse;
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Get a {@link BlobLeaseClient} that manages leases on the blob.
- *
- * @param proposeLeaseId - Initial proposed lease Id.
- * @returns A new BlobLeaseClient object for managing leases on the blob.
- */
- getBlobLeaseClient(proposeLeaseId) {
- return new BlobLeaseClient(this, proposeLeaseId);
- }
- /**
- * Creates a read-only snapshot of a blob.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/snapshot-blob
- *
- * @param options - Optional options to the Blob Create Snapshot operation.
- */
- async createSnapshot(options = {}) {
- var _a;
- const { span, updatedOptions } = createSpan("BlobClient-createSnapshot", options);
- options.conditions = options.conditions || {};
- try {
- ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);
- return await this.blobContext.createSnapshot(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Asynchronously copies a blob to a destination within the storage account.
- * This method returns a long running operation poller that allows you to wait
- * indefinitely until the copy is completed.
- * You can also cancel a copy before it is completed by calling `cancelOperation` on the poller.
- * Note that the onProgress callback will not be invoked if the operation completes in the first
- * request, and attempting to cancel a completed copy will result in an error being thrown.
- *
- * In version 2012-02-12 and later, the source for a Copy Blob operation can be
- * a committed blob in any Azure storage account.
- * Beginning with version 2015-02-21, the source for a Copy Blob operation can be
- * an Azure file in any Azure storage account.
- * Only storage accounts created on or after June 7th, 2012 allow the Copy Blob
- * operation to copy from another storage account.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/copy-blob
- *
- * Example using automatic polling:
- *
- * ```js
- * const copyPoller = await blobClient.beginCopyFromURL('url');
- * const result = await copyPoller.pollUntilDone();
- * ```
- *
- * Example using manual polling:
- *
- * ```js
- * const copyPoller = await blobClient.beginCopyFromURL('url');
- * while (!poller.isDone()) {
- * await poller.poll();
- * }
- * const result = copyPoller.getResult();
- * ```
- *
- * Example using progress updates:
- *
- * ```js
- * const copyPoller = await blobClient.beginCopyFromURL('url', {
- * onProgress(state) {
- * console.log(`Progress: ${state.copyProgress}`);
- * }
- * });
- * const result = await copyPoller.pollUntilDone();
- * ```
- *
- * Example using a changing polling interval (default 15 seconds):
- *
- * ```js
- * const copyPoller = await blobClient.beginCopyFromURL('url', {
- * intervalInMs: 1000 // poll blob every 1 second for copy progress
- * });
- * const result = await copyPoller.pollUntilDone();
- * ```
- *
- * Example using copy cancellation:
- *
- * ```js
- * const copyPoller = await blobClient.beginCopyFromURL('url');
- * // cancel operation after starting it.
- * try {
- * await copyPoller.cancelOperation();
- * // calls to get the result now throw PollerCancelledError
- * await copyPoller.getResult();
- * } catch (err) {
- * if (err.name === 'PollerCancelledError') {
- * console.log('The copy was cancelled.');
- * }
- * }
- * ```
- *
- * @param copySource - url to the source Azure Blob/File.
- * @param options - Optional options to the Blob Start Copy From URL operation.
- */
- async beginCopyFromURL(copySource, options = {}) {
- const client = {
- abortCopyFromURL: (...args) => this.abortCopyFromURL(...args),
- getProperties: (...args) => this.getProperties(...args),
- startCopyFromURL: (...args) => this.startCopyFromURL(...args),
- };
- const poller = new BlobBeginCopyFromUrlPoller({
- blobClient: client,
- copySource,
- intervalInMs: options.intervalInMs,
- onProgress: options.onProgress,
- resumeFrom: options.resumeFrom,
- startCopyFromURLOptions: options,
- });
- // Trigger the startCopyFromURL call by calling poll.
- // Any errors from this method should be surfaced to the user.
- await poller.poll();
- return poller;
- }
- /**
- * Aborts a pending asynchronous Copy Blob operation, and leaves a destination blob with zero
- * length and full metadata. Version 2012-02-12 and newer.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/abort-copy-blob
- *
- * @param copyId - Id of the Copy From URL operation.
- * @param options - Optional options to the Blob Abort Copy From URL operation.
- */
- async abortCopyFromURL(copyId, options = {}) {
- const { span, updatedOptions } = createSpan("BlobClient-abortCopyFromURL", options);
- try {
- return await this.blobContext.abortCopyFromURL(copyId, Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * The synchronous Copy From URL operation copies a blob or an internet resource to a new blob. It will not
- * return a response until the copy is complete.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/copy-blob-from-url
- *
- * @param copySource - The source URL to copy from, Shared Access Signature(SAS) maybe needed for authentication
- * @param options -
- */
- async syncCopyFromURL(copySource, options = {}) {
- var _a, _b, _c;
- const { span, updatedOptions } = createSpan("BlobClient-syncCopyFromURL", options);
- options.conditions = options.conditions || {};
- options.sourceConditions = options.sourceConditions || {};
- try {
- return await this.blobContext.copyFromURL(copySource, Object.assign({ abortSignal: options.abortSignal, metadata: options.metadata, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), sourceModifiedAccessConditions: {
- sourceIfMatch: options.sourceConditions.ifMatch,
- sourceIfModifiedSince: options.sourceConditions.ifModifiedSince,
- sourceIfNoneMatch: options.sourceConditions.ifNoneMatch,
- sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince,
- }, sourceContentMD5: options.sourceContentMD5, copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization), tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags), immutabilityPolicyExpiry: (_b = options.immutabilityPolicy) === null || _b === void 0 ? void 0 : _b.expiriesOn, immutabilityPolicyMode: (_c = options.immutabilityPolicy) === null || _c === void 0 ? void 0 : _c.policyMode, legalHold: options.legalHold, encryptionScope: options.encryptionScope, copySourceTags: options.copySourceTags }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Sets the tier on a blob. The operation is allowed on a page blob in a premium
- * storage account and on a block blob in a blob storage account (locally redundant
- * storage only). A premium page blob's tier determines the allowed size, IOPS,
- * and bandwidth of the blob. A block blob's tier determines Hot/Cool/Archive
- * storage type. This operation does not update the blob's ETag.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-tier
- *
- * @param tier - The tier to be set on the blob. Valid values are Hot, Cool, or Archive.
- * @param options - Optional options to the Blob Set Tier operation.
- */
- async setAccessTier(tier, options = {}) {
- var _a;
- const { span, updatedOptions } = createSpan("BlobClient-setAccessTier", options);
- try {
- return await this.blobContext.setTier(toAccessTier(tier), Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), rehydratePriority: options.rehydratePriority }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- async downloadToBuffer(param1, param2, param3, param4 = {}) {
- let buffer;
- let offset = 0;
- let count = 0;
- let options = param4;
- if (param1 instanceof Buffer) {
- buffer = param1;
- offset = param2 || 0;
- count = typeof param3 === "number" ? param3 : 0;
- }
- else {
- offset = typeof param1 === "number" ? param1 : 0;
- count = typeof param2 === "number" ? param2 : 0;
- options = param3 || {};
- }
- const { span, updatedOptions } = createSpan("BlobClient-downloadToBuffer", options);
- try {
- if (!options.blockSize) {
- options.blockSize = 0;
- }
- if (options.blockSize < 0) {
- throw new RangeError("blockSize option must be >= 0");
- }
- if (options.blockSize === 0) {
- options.blockSize = DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES;
- }
- if (offset < 0) {
- throw new RangeError("offset option must be >= 0");
- }
- if (count && count <= 0) {
- throw new RangeError("count option must be greater than 0");
- }
- if (!options.conditions) {
- options.conditions = {};
- }
- // Customer doesn't specify length, get it
- if (!count) {
- const response = await this.getProperties(Object.assign(Object.assign({}, options), { tracingOptions: Object.assign(Object.assign({}, options.tracingOptions), convertTracingToRequestOptionsBase(updatedOptions)) }));
- count = response.contentLength - offset;
- if (count < 0) {
- throw new RangeError(`offset ${offset} shouldn't be larger than blob size ${response.contentLength}`);
- }
- }
- // Allocate the buffer of size = count if the buffer is not provided
- if (!buffer) {
- try {
- buffer = Buffer.alloc(count);
- }
- catch (error) {
- throw new Error(`Unable to allocate the buffer of size: ${count}(in bytes). Please try passing your own buffer to the "downloadToBuffer" method or try using other methods like "download" or "downloadToFile".\t ${error.message}`);
- }
- }
- if (buffer.length < count) {
- throw new RangeError(`The buffer's size should be equal to or larger than the request count of bytes: ${count}`);
- }
- let transferProgress = 0;
- const batch = new Batch(options.concurrency);
- for (let off = offset; off < offset + count; off = off + options.blockSize) {
- batch.addOperation(async () => {
- // Exclusive chunk end position
- let chunkEnd = offset + count;
- if (off + options.blockSize < chunkEnd) {
- chunkEnd = off + options.blockSize;
- }
- const response = await this.download(off, chunkEnd - off, {
- abortSignal: options.abortSignal,
- conditions: options.conditions,
- maxRetryRequests: options.maxRetryRequestsPerBlock,
- customerProvidedKey: options.customerProvidedKey,
- tracingOptions: Object.assign(Object.assign({}, options.tracingOptions), convertTracingToRequestOptionsBase(updatedOptions)),
- });
- const stream = response.readableStreamBody;
- await streamToBuffer(stream, buffer, off - offset, chunkEnd - offset);
- // Update progress after block is downloaded, in case of block trying
- // Could provide finer grained progress updating inside HTTP requests,
- // only if convenience layer download try is enabled
- transferProgress += chunkEnd - off;
- if (options.onProgress) {
- options.onProgress({ loadedBytes: transferProgress });
- }
- });
- }
- await batch.do();
- return buffer;
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * ONLY AVAILABLE IN NODE.JS RUNTIME.
- *
- * Downloads an Azure Blob to a local file.
- * Fails if the the given file path already exits.
- * Offset and count are optional, pass 0 and undefined respectively to download the entire blob.
- *
- * @param filePath -
- * @param offset - From which position of the block blob to download.
- * @param count - How much data to be downloaded. Will download to the end when passing undefined.
- * @param options - Options to Blob download options.
- * @returns The response data for blob download operation,
- * but with readableStreamBody set to undefined since its
- * content is already read and written into a local file
- * at the specified path.
- */
- async downloadToFile(filePath, offset = 0, count, options = {}) {
- const { span, updatedOptions } = createSpan("BlobClient-downloadToFile", options);
- try {
- const response = await this.download(offset, count, Object.assign(Object.assign({}, options), { tracingOptions: Object.assign(Object.assign({}, options.tracingOptions), convertTracingToRequestOptionsBase(updatedOptions)) }));
- if (response.readableStreamBody) {
- await readStreamToLocalFile(response.readableStreamBody, filePath);
- }
- // The stream is no longer accessible so setting it to undefined.
- response.blobDownloadStream = undefined;
- return response;
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- getBlobAndContainerNamesFromUrl() {
- let containerName;
- let blobName;
- try {
- // URL may look like the following
- // "https://myaccount.blob.core.windows.net/mycontainer/blob?sasString";
- // "https://myaccount.blob.core.windows.net/mycontainer/blob";
- // "https://myaccount.blob.core.windows.net/mycontainer/blob/a.txt?sasString";
- // "https://myaccount.blob.core.windows.net/mycontainer/blob/a.txt";
- // IPv4/IPv6 address hosts, Endpoints - `http://127.0.0.1:10000/devstoreaccount1/containername/blob`
- // http://localhost:10001/devstoreaccount1/containername/blob
- const parsedUrl = coreHttp.URLBuilder.parse(this.url);
- if (parsedUrl.getHost().split(".")[1] === "blob") {
- // "https://myaccount.blob.core.windows.net/containername/blob".
- // .getPath() -> /containername/blob
- const pathComponents = parsedUrl.getPath().match("/([^/]*)(/(.*))?");
- containerName = pathComponents[1];
- blobName = pathComponents[3];
- }
- else if (isIpEndpointStyle(parsedUrl)) {
- // IPv4/IPv6 address hosts... Example - http://192.0.0.10:10001/devstoreaccount1/containername/blob
- // Single word domain without a [dot] in the endpoint... Example - http://localhost:10001/devstoreaccount1/containername/blob
- // .getPath() -> /devstoreaccount1/containername/blob
- const pathComponents = parsedUrl.getPath().match("/([^/]*)/([^/]*)(/(.*))?");
- containerName = pathComponents[2];
- blobName = pathComponents[4];
- }
- else {
- // "https://customdomain.com/containername/blob".
- // .getPath() -> /containername/blob
- const pathComponents = parsedUrl.getPath().match("/([^/]*)(/(.*))?");
- containerName = pathComponents[1];
- blobName = pathComponents[3];
- }
- // decode the encoded blobName, containerName - to get all the special characters that might be present in them
- containerName = decodeURIComponent(containerName);
- blobName = decodeURIComponent(blobName);
- // Azure Storage Server will replace "\" with "/" in the blob names
- // doing the same in the SDK side so that the user doesn't have to replace "\" instances in the blobName
- blobName = blobName.replace(/\\/g, "/");
- if (!containerName) {
- throw new Error("Provided containerName is invalid.");
- }
- return { blobName, containerName };
- }
- catch (error) {
- throw new Error("Unable to extract blobName and containerName with provided information.");
- }
- }
- /**
- * Asynchronously copies a blob to a destination within the storage account.
- * In version 2012-02-12 and later, the source for a Copy Blob operation can be
- * a committed blob in any Azure storage account.
- * Beginning with version 2015-02-21, the source for a Copy Blob operation can be
- * an Azure file in any Azure storage account.
- * Only storage accounts created on or after June 7th, 2012 allow the Copy Blob
- * operation to copy from another storage account.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/copy-blob
- *
- * @param copySource - url to the source Azure Blob/File.
- * @param options - Optional options to the Blob Start Copy From URL operation.
- */
- async startCopyFromURL(copySource, options = {}) {
- var _a, _b, _c;
- const { span, updatedOptions } = createSpan("BlobClient-startCopyFromURL", options);
- options.conditions = options.conditions || {};
- options.sourceConditions = options.sourceConditions || {};
- try {
- return await this.blobContext.startCopyFromURL(copySource, Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), sourceModifiedAccessConditions: {
- sourceIfMatch: options.sourceConditions.ifMatch,
- sourceIfModifiedSince: options.sourceConditions.ifModifiedSince,
- sourceIfNoneMatch: options.sourceConditions.ifNoneMatch,
- sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince,
- sourceIfTags: options.sourceConditions.tagConditions,
- }, immutabilityPolicyExpiry: (_b = options.immutabilityPolicy) === null || _b === void 0 ? void 0 : _b.expiriesOn, immutabilityPolicyMode: (_c = options.immutabilityPolicy) === null || _c === void 0 ? void 0 : _c.policyMode, legalHold: options.legalHold, rehydratePriority: options.rehydratePriority, tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags), sealBlob: options.sealBlob }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Only available for BlobClient constructed with a shared key credential.
- *
- * Generates a Blob Service Shared Access Signature (SAS) URI based on the client properties
- * and parameters passed in. The SAS is signed by the shared key credential of the client.
- *
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas
- *
- * @param options - Optional parameters.
- * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.
- */
- generateSasUrl(options) {
- return new Promise((resolve) => {
- if (!(this.credential instanceof StorageSharedKeyCredential)) {
- throw new RangeError("Can only generate the SAS when the client is initialized with a shared key credential");
- }
- const sas = generateBlobSASQueryParameters(Object.assign({ containerName: this._containerName, blobName: this._name, snapshotTime: this._snapshot, versionId: this._versionId }, options), this.credential).toString();
- resolve(appendToURLQuery(this.url, sas));
- });
- }
- /**
- * Delete the immutablility policy on the blob.
- *
- * @param options - Optional options to delete immutability policy on the blob.
- */
- async deleteImmutabilityPolicy(options) {
- const { span, updatedOptions } = createSpan("BlobClient-deleteImmutabilityPolicy", options);
- try {
- return await this.blobContext.deleteImmutabilityPolicy(Object.assign({ abortSignal: options === null || options === void 0 ? void 0 : options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Set immutablility policy on the blob.
- *
- * @param options - Optional options to set immutability policy on the blob.
- */
- async setImmutabilityPolicy(immutabilityPolicy, options) {
- const { span, updatedOptions } = createSpan("BlobClient-setImmutabilityPolicy", options);
- try {
- return await this.blobContext.setImmutabilityPolicy(Object.assign({ abortSignal: options === null || options === void 0 ? void 0 : options.abortSignal, immutabilityPolicyExpiry: immutabilityPolicy.expiriesOn, immutabilityPolicyMode: immutabilityPolicy.policyMode, modifiedAccessConditions: options === null || options === void 0 ? void 0 : options.modifiedAccessCondition }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Set legal hold on the blob.
- *
- * @param options - Optional options to set legal hold on the blob.
- */
- async setLegalHold(legalHoldEnabled, options) {
- const { span, updatedOptions } = createSpan("BlobClient-setLegalHold", options);
- try {
- return await this.blobContext.setLegalHold(legalHoldEnabled, Object.assign({ abortSignal: options === null || options === void 0 ? void 0 : options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
-}
-/**
- * AppendBlobClient defines a set of operations applicable to append blobs.
- */
-class AppendBlobClient extends BlobClient {
- constructor(urlOrConnectionString, credentialOrPipelineOrContainerName, blobNameOrOptions,
- // Legacy, no fix for eslint error without breaking. Disable it for this interface.
- /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/
- options) {
- // In TypeScript we cannot simply pass all parameters to super() like below so have to duplicate the code instead.
- // super(s, credentialOrPipelineOrContainerNameOrOptions, blobNameOrOptions, options);
- let pipeline;
- let url;
- options = options || {};
- if (isPipelineLike(credentialOrPipelineOrContainerName)) {
- // (url: string, pipeline: Pipeline)
- url = urlOrConnectionString;
- pipeline = credentialOrPipelineOrContainerName;
- }
- else if ((coreHttp.isNode && credentialOrPipelineOrContainerName instanceof StorageSharedKeyCredential) ||
- credentialOrPipelineOrContainerName instanceof AnonymousCredential ||
- coreHttp.isTokenCredential(credentialOrPipelineOrContainerName)) {
- // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions) url = urlOrConnectionString;
- url = urlOrConnectionString;
- options = blobNameOrOptions;
- pipeline = newPipeline(credentialOrPipelineOrContainerName, options);
- }
- else if (!credentialOrPipelineOrContainerName &&
- typeof credentialOrPipelineOrContainerName !== "string") {
- // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)
- url = urlOrConnectionString;
- // The second parameter is undefined. Use anonymous credential.
- pipeline = newPipeline(new AnonymousCredential(), options);
- }
- else if (credentialOrPipelineOrContainerName &&
- typeof credentialOrPipelineOrContainerName === "string" &&
- blobNameOrOptions &&
- typeof blobNameOrOptions === "string") {
- // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions)
- const containerName = credentialOrPipelineOrContainerName;
- const blobName = blobNameOrOptions;
- const extractedCreds = extractConnectionStringParts(urlOrConnectionString);
- if (extractedCreds.kind === "AccountConnString") {
- if (coreHttp.isNode) {
- const sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey);
- url = appendToURLPath(appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)), encodeURIComponent(blobName));
- if (!options.proxyOptions) {
- options.proxyOptions = coreHttp.getDefaultProxySettings(extractedCreds.proxyUri);
- }
- pipeline = newPipeline(sharedKeyCredential, options);
- }
- else {
- throw new Error("Account connection string is only supported in Node.js environment");
- }
- }
- else if (extractedCreds.kind === "SASConnString") {
- url =
- appendToURLPath(appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)), encodeURIComponent(blobName)) +
- "?" +
- extractedCreds.accountSas;
- pipeline = newPipeline(new AnonymousCredential(), options);
- }
- else {
- throw new Error("Connection string must be either an Account connection string or a SAS connection string");
- }
- }
- else {
- throw new Error("Expecting non-empty strings for containerName and blobName parameters");
- }
- super(url, pipeline);
- this.appendBlobContext = new AppendBlob(this.storageClientContext);
- }
- /**
- * Creates a new AppendBlobClient object identical to the source but with the
- * specified snapshot timestamp.
- * Provide "" will remove the snapshot and return a Client to the base blob.
- *
- * @param snapshot - The snapshot timestamp.
- * @returns A new AppendBlobClient object identical to the source but with the specified snapshot timestamp.
- */
- withSnapshot(snapshot) {
- return new AppendBlobClient(setURLParameter(this.url, URLConstants.Parameters.SNAPSHOT, snapshot.length === 0 ? undefined : snapshot), this.pipeline);
- }
- /**
- * Creates a 0-length append blob. Call AppendBlock to append data to an append blob.
- * @see https://docs.microsoft.com/rest/api/storageservices/put-blob
- *
- * @param options - Options to the Append Block Create operation.
- *
- *
- * Example usage:
- *
- * ```js
- * const appendBlobClient = containerClient.getAppendBlobClient("");
- * await appendBlobClient.create();
- * ```
- */
- async create(options = {}) {
- var _a, _b, _c;
- const { span, updatedOptions } = createSpan("AppendBlobClient-create", options);
- options.conditions = options.conditions || {};
- try {
- ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);
- return await this.appendBlobContext.create(0, Object.assign({ abortSignal: options.abortSignal, blobHttpHeaders: options.blobHTTPHeaders, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, immutabilityPolicyExpiry: (_b = options.immutabilityPolicy) === null || _b === void 0 ? void 0 : _b.expiriesOn, immutabilityPolicyMode: (_c = options.immutabilityPolicy) === null || _c === void 0 ? void 0 : _c.policyMode, legalHold: options.legalHold, blobTagsString: toBlobTagsString(options.tags) }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Creates a 0-length append blob. Call AppendBlock to append data to an append blob.
- * If the blob with the same name already exists, the content of the existing blob will remain unchanged.
- * @see https://docs.microsoft.com/rest/api/storageservices/put-blob
- *
- * @param options -
- */
- async createIfNotExists(options = {}) {
- var _a, _b;
- const { span, updatedOptions } = createSpan("AppendBlobClient-createIfNotExists", options);
- const conditions = { ifNoneMatch: ETagAny };
- try {
- const res = await this.create(Object.assign(Object.assign({}, updatedOptions), { conditions }));
- return Object.assign(Object.assign({ succeeded: true }, res), { _response: res._response });
- }
- catch (e) {
- if (((_a = e.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "BlobAlreadyExists") {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: "Expected exception when creating a blob only if it does not already exist.",
- });
- return Object.assign(Object.assign({ succeeded: false }, (_b = e.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e.response });
- }
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Seals the append blob, making it read only.
- *
- * @param options -
- */
- async seal(options = {}) {
- var _a;
- const { span, updatedOptions } = createSpan("AppendBlobClient-seal", options);
- options.conditions = options.conditions || {};
- try {
- return await this.appendBlobContext.seal(Object.assign({ abortSignal: options.abortSignal, appendPositionAccessConditions: options.conditions, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Commits a new block of data to the end of the existing append blob.
- * @see https://docs.microsoft.com/rest/api/storageservices/append-block
- *
- * @param body - Data to be appended.
- * @param contentLength - Length of the body in bytes.
- * @param options - Options to the Append Block operation.
- *
- *
- * Example usage:
- *
- * ```js
- * const content = "Hello World!";
- *
- * // Create a new append blob and append data to the blob.
- * const newAppendBlobClient = containerClient.getAppendBlobClient("");
- * await newAppendBlobClient.create();
- * await newAppendBlobClient.appendBlock(content, content.length);
- *
- * // Append data to an existing append blob.
- * const existingAppendBlobClient = containerClient.getAppendBlobClient("");
- * await existingAppendBlobClient.appendBlock(content, content.length);
- * ```
- */
- async appendBlock(body, contentLength, options = {}) {
- var _a;
- const { span, updatedOptions } = createSpan("AppendBlobClient-appendBlock", options);
- options.conditions = options.conditions || {};
- try {
- ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);
- return await this.appendBlobContext.appendBlock(contentLength, body, Object.assign({ abortSignal: options.abortSignal, appendPositionAccessConditions: options.conditions, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), requestOptions: {
- onUploadProgress: options.onProgress,
- }, transactionalContentMD5: options.transactionalContentMD5, transactionalContentCrc64: options.transactionalContentCrc64, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * The Append Block operation commits a new block of data to the end of an existing append blob
- * where the contents are read from a source url.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/append-block-from-url
- *
- * @param sourceURL -
- * The url to the blob that will be the source of the copy. A source blob in the same storage account can
- * be authenticated via Shared Key. However, if the source is a blob in another account, the source blob
- * must either be public or must be authenticated via a shared access signature. If the source blob is
- * public, no authentication is required to perform the operation.
- * @param sourceOffset - Offset in source to be appended
- * @param count - Number of bytes to be appended as a block
- * @param options -
- */
- async appendBlockFromURL(sourceURL, sourceOffset, count, options = {}) {
- var _a;
- const { span, updatedOptions } = createSpan("AppendBlobClient-appendBlockFromURL", options);
- options.conditions = options.conditions || {};
- options.sourceConditions = options.sourceConditions || {};
- try {
- ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);
- return await this.appendBlobContext.appendBlockFromUrl(sourceURL, 0, Object.assign({ abortSignal: options.abortSignal, sourceRange: rangeToString({ offset: sourceOffset, count }), sourceContentMD5: options.sourceContentMD5, sourceContentCrc64: options.sourceContentCrc64, leaseAccessConditions: options.conditions, appendPositionAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), sourceModifiedAccessConditions: {
- sourceIfMatch: options.sourceConditions.ifMatch,
- sourceIfModifiedSince: options.sourceConditions.ifModifiedSince,
- sourceIfNoneMatch: options.sourceConditions.ifNoneMatch,
- sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince,
- }, copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
-}
-/**
- * BlockBlobClient defines a set of operations applicable to block blobs.
- */
-class BlockBlobClient extends BlobClient {
- constructor(urlOrConnectionString, credentialOrPipelineOrContainerName, blobNameOrOptions,
- // Legacy, no fix for eslint error without breaking. Disable it for this interface.
- /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/
- options) {
- // In TypeScript we cannot simply pass all parameters to super() like below so have to duplicate the code instead.
- // super(s, credentialOrPipelineOrContainerNameOrOptions, blobNameOrOptions, options);
- let pipeline;
- let url;
- options = options || {};
- if (isPipelineLike(credentialOrPipelineOrContainerName)) {
- // (url: string, pipeline: Pipeline)
- url = urlOrConnectionString;
- pipeline = credentialOrPipelineOrContainerName;
- }
- else if ((coreHttp.isNode && credentialOrPipelineOrContainerName instanceof StorageSharedKeyCredential) ||
- credentialOrPipelineOrContainerName instanceof AnonymousCredential ||
- coreHttp.isTokenCredential(credentialOrPipelineOrContainerName)) {
- // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)
- url = urlOrConnectionString;
- options = blobNameOrOptions;
- pipeline = newPipeline(credentialOrPipelineOrContainerName, options);
- }
- else if (!credentialOrPipelineOrContainerName &&
- typeof credentialOrPipelineOrContainerName !== "string") {
- // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)
- // The second parameter is undefined. Use anonymous credential.
- url = urlOrConnectionString;
- if (blobNameOrOptions && typeof blobNameOrOptions !== "string") {
- options = blobNameOrOptions;
- }
- pipeline = newPipeline(new AnonymousCredential(), options);
- }
- else if (credentialOrPipelineOrContainerName &&
- typeof credentialOrPipelineOrContainerName === "string" &&
- blobNameOrOptions &&
- typeof blobNameOrOptions === "string") {
- // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions)
- const containerName = credentialOrPipelineOrContainerName;
- const blobName = blobNameOrOptions;
- const extractedCreds = extractConnectionStringParts(urlOrConnectionString);
- if (extractedCreds.kind === "AccountConnString") {
- if (coreHttp.isNode) {
- const sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey);
- url = appendToURLPath(appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)), encodeURIComponent(blobName));
- if (!options.proxyOptions) {
- options.proxyOptions = coreHttp.getDefaultProxySettings(extractedCreds.proxyUri);
- }
- pipeline = newPipeline(sharedKeyCredential, options);
- }
- else {
- throw new Error("Account connection string is only supported in Node.js environment");
- }
- }
- else if (extractedCreds.kind === "SASConnString") {
- url =
- appendToURLPath(appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)), encodeURIComponent(blobName)) +
- "?" +
- extractedCreds.accountSas;
- pipeline = newPipeline(new AnonymousCredential(), options);
- }
- else {
- throw new Error("Connection string must be either an Account connection string or a SAS connection string");
- }
- }
- else {
- throw new Error("Expecting non-empty strings for containerName and blobName parameters");
- }
- super(url, pipeline);
- this.blockBlobContext = new BlockBlob(this.storageClientContext);
- this._blobContext = new Blob$1(this.storageClientContext);
- }
- /**
- * Creates a new BlockBlobClient object identical to the source but with the
- * specified snapshot timestamp.
- * Provide "" will remove the snapshot and return a URL to the base blob.
- *
- * @param snapshot - The snapshot timestamp.
- * @returns A new BlockBlobClient object identical to the source but with the specified snapshot timestamp.
- */
- withSnapshot(snapshot) {
- return new BlockBlobClient(setURLParameter(this.url, URLConstants.Parameters.SNAPSHOT, snapshot.length === 0 ? undefined : snapshot), this.pipeline);
- }
- /**
- * ONLY AVAILABLE IN NODE.JS RUNTIME.
- *
- * Quick query for a JSON or CSV formatted blob.
- *
- * Example usage (Node.js):
- *
- * ```js
- * // Query and convert a blob to a string
- * const queryBlockBlobResponse = await blockBlobClient.query("select * from BlobStorage");
- * const downloaded = (await streamToBuffer(queryBlockBlobResponse.readableStreamBody)).toString();
- * console.log("Query blob content:", downloaded);
- *
- * async function streamToBuffer(readableStream) {
- * return new Promise((resolve, reject) => {
- * const chunks = [];
- * readableStream.on("data", (data) => {
- * chunks.push(data instanceof Buffer ? data : Buffer.from(data));
- * });
- * readableStream.on("end", () => {
- * resolve(Buffer.concat(chunks));
- * });
- * readableStream.on("error", reject);
- * });
- * }
- * ```
- *
- * @param query -
- * @param options -
- */
- async query(query, options = {}) {
- var _a;
- ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);
- const { span, updatedOptions } = createSpan("BlockBlobClient-query", options);
- try {
- if (!coreHttp.isNode) {
- throw new Error("This operation currently is only supported in Node.js.");
- }
- ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);
- const response = await this._blobContext.query(Object.assign({ abortSignal: options.abortSignal, queryRequest: {
- queryType: "SQL",
- expression: query,
- inputSerialization: toQuerySerialization(options.inputTextConfiguration),
- outputSerialization: toQuerySerialization(options.outputTextConfiguration),
- }, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey }, convertTracingToRequestOptionsBase(updatedOptions)));
- return new BlobQueryResponse(response, {
- abortSignal: options.abortSignal,
- onProgress: options.onProgress,
- onError: options.onError,
- });
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Creates a new block blob, or updates the content of an existing block blob.
- * Updating an existing block blob overwrites any existing metadata on the blob.
- * Partial updates are not supported; the content of the existing blob is
- * overwritten with the new content. To perform a partial update of a block blob's,
- * use {@link stageBlock} and {@link commitBlockList}.
- *
- * This is a non-parallel uploading method, please use {@link uploadFile},
- * {@link uploadStream} or {@link uploadBrowserData} for better performance
- * with concurrency uploading.
- *
- * @see https://docs.microsoft.com/rest/api/storageservices/put-blob
- *
- * @param body - Blob, string, ArrayBuffer, ArrayBufferView or a function
- * which returns a new Readable stream whose offset is from data source beginning.
- * @param contentLength - Length of body in bytes. Use Buffer.byteLength() to calculate body length for a
- * string including non non-Base64/Hex-encoded characters.
- * @param options - Options to the Block Blob Upload operation.
- * @returns Response data for the Block Blob Upload operation.
- *
- * Example usage:
- *
- * ```js
- * const content = "Hello world!";
- * const uploadBlobResponse = await blockBlobClient.upload(content, content.length);
- * ```
- */
- async upload(body, contentLength, options = {}) {
- var _a, _b, _c;
- options.conditions = options.conditions || {};
- const { span, updatedOptions } = createSpan("BlockBlobClient-upload", options);
- try {
- ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);
- return await this.blockBlobContext.upload(contentLength, body, Object.assign({ abortSignal: options.abortSignal, blobHttpHeaders: options.blobHTTPHeaders, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), requestOptions: {
- onUploadProgress: options.onProgress,
- }, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, immutabilityPolicyExpiry: (_b = options.immutabilityPolicy) === null || _b === void 0 ? void 0 : _b.expiriesOn, immutabilityPolicyMode: (_c = options.immutabilityPolicy) === null || _c === void 0 ? void 0 : _c.policyMode, legalHold: options.legalHold, tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags) }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Creates a new Block Blob where the contents of the blob are read from a given URL.
- * This API is supported beginning with the 2020-04-08 version. Partial updates
- * are not supported with Put Blob from URL; the content of an existing blob is overwritten with
- * the content of the new blob. To perform partial updates to a block blob’s contents using a
- * source URL, use {@link stageBlockFromURL} and {@link commitBlockList}.
- *
- * @param sourceURL - Specifies the URL of the blob. The value
- * may be a URL of up to 2 KB in length that specifies a blob.
- * The value should be URL-encoded as it would appear
- * in a request URI. The source blob must either be public
- * or must be authenticated via a shared access signature.
- * If the source blob is public, no authentication is required
- * to perform the operation. Here are some examples of source object URLs:
- * - https://myaccount.blob.core.windows.net/mycontainer/myblob
- * - https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=
- * @param options - Optional parameters.
- */
- async syncUploadFromURL(sourceURL, options = {}) {
- var _a, _b, _c, _d, _e;
- options.conditions = options.conditions || {};
- const { span, updatedOptions } = createSpan("BlockBlobClient-syncUploadFromURL", options);
- try {
- ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);
- return await this.blockBlobContext.putBlobFromUrl(0, sourceURL, Object.assign(Object.assign(Object.assign({}, options), { blobHttpHeaders: options.blobHTTPHeaders, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: options.conditions.tagConditions }), sourceModifiedAccessConditions: {
- sourceIfMatch: (_a = options.sourceConditions) === null || _a === void 0 ? void 0 : _a.ifMatch,
- sourceIfModifiedSince: (_b = options.sourceConditions) === null || _b === void 0 ? void 0 : _b.ifModifiedSince,
- sourceIfNoneMatch: (_c = options.sourceConditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch,
- sourceIfUnmodifiedSince: (_d = options.sourceConditions) === null || _d === void 0 ? void 0 : _d.ifUnmodifiedSince,
- sourceIfTags: (_e = options.sourceConditions) === null || _e === void 0 ? void 0 : _e.tagConditions,
- }, cpkInfo: options.customerProvidedKey, copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization), tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags), copySourceTags: options.copySourceTags }), convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Uploads the specified block to the block blob's "staging area" to be later
- * committed by a call to commitBlockList.
- * @see https://docs.microsoft.com/rest/api/storageservices/put-block
- *
- * @param blockId - A 64-byte value that is base64-encoded
- * @param body - Data to upload to the staging area.
- * @param contentLength - Number of bytes to upload.
- * @param options - Options to the Block Blob Stage Block operation.
- * @returns Response data for the Block Blob Stage Block operation.
- */
- async stageBlock(blockId, body, contentLength, options = {}) {
- const { span, updatedOptions } = createSpan("BlockBlobClient-stageBlock", options);
- try {
- ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);
- return await this.blockBlobContext.stageBlock(blockId, contentLength, body, Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, requestOptions: {
- onUploadProgress: options.onProgress,
- }, transactionalContentMD5: options.transactionalContentMD5, transactionalContentCrc64: options.transactionalContentCrc64, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * The Stage Block From URL operation creates a new block to be committed as part
- * of a blob where the contents are read from a URL.
- * This API is available starting in version 2018-03-28.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/put-block-from-url
- *
- * @param blockId - A 64-byte value that is base64-encoded
- * @param sourceURL - Specifies the URL of the blob. The value
- * may be a URL of up to 2 KB in length that specifies a blob.
- * The value should be URL-encoded as it would appear
- * in a request URI. The source blob must either be public
- * or must be authenticated via a shared access signature.
- * If the source blob is public, no authentication is required
- * to perform the operation. Here are some examples of source object URLs:
- * - https://myaccount.blob.core.windows.net/mycontainer/myblob
- * - https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=
- * @param offset - From which position of the blob to download, greater than or equal to 0
- * @param count - How much data to be downloaded, greater than 0. Will download to the end when undefined
- * @param options - Options to the Block Blob Stage Block From URL operation.
- * @returns Response data for the Block Blob Stage Block From URL operation.
- */
- async stageBlockFromURL(blockId, sourceURL, offset = 0, count, options = {}) {
- const { span, updatedOptions } = createSpan("BlockBlobClient-stageBlockFromURL", options);
- try {
- ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);
- return await this.blockBlobContext.stageBlockFromURL(blockId, 0, sourceURL, Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, sourceContentMD5: options.sourceContentMD5, sourceContentCrc64: options.sourceContentCrc64, sourceRange: offset === 0 && !count ? undefined : rangeToString({ offset, count }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization) }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Writes a blob by specifying the list of block IDs that make up the blob.
- * In order to be written as part of a blob, a block must have been successfully written
- * to the server in a prior {@link stageBlock} operation. You can call {@link commitBlockList} to
- * update a blob by uploading only those blocks that have changed, then committing the new and existing
- * blocks together. Any blocks not specified in the block list and permanently deleted.
- * @see https://docs.microsoft.com/rest/api/storageservices/put-block-list
- *
- * @param blocks - Array of 64-byte value that is base64-encoded
- * @param options - Options to the Block Blob Commit Block List operation.
- * @returns Response data for the Block Blob Commit Block List operation.
- */
- async commitBlockList(blocks, options = {}) {
- var _a, _b, _c;
- options.conditions = options.conditions || {};
- const { span, updatedOptions } = createSpan("BlockBlobClient-commitBlockList", options);
- try {
- ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);
- return await this.blockBlobContext.commitBlockList({ latest: blocks }, Object.assign({ abortSignal: options.abortSignal, blobHttpHeaders: options.blobHTTPHeaders, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, immutabilityPolicyExpiry: (_b = options.immutabilityPolicy) === null || _b === void 0 ? void 0 : _b.expiriesOn, immutabilityPolicyMode: (_c = options.immutabilityPolicy) === null || _c === void 0 ? void 0 : _c.policyMode, legalHold: options.legalHold, tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags) }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Returns the list of blocks that have been uploaded as part of a block blob
- * using the specified block list filter.
- * @see https://docs.microsoft.com/rest/api/storageservices/get-block-list
- *
- * @param listType - Specifies whether to return the list of committed blocks,
- * the list of uncommitted blocks, or both lists together.
- * @param options - Options to the Block Blob Get Block List operation.
- * @returns Response data for the Block Blob Get Block List operation.
- */
- async getBlockList(listType, options = {}) {
- var _a;
- const { span, updatedOptions } = createSpan("BlockBlobClient-getBlockList", options);
- try {
- const res = await this.blockBlobContext.getBlockList(listType, Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)));
- if (!res.committedBlocks) {
- res.committedBlocks = [];
- }
- if (!res.uncommittedBlocks) {
- res.uncommittedBlocks = [];
- }
- return res;
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- // High level functions
- /**
- * Uploads a Buffer(Node.js)/Blob(browsers)/ArrayBuffer/ArrayBufferView object to a BlockBlob.
- *
- * 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.
- *
- * A common {@link BlockBlobParallelUploadOptions.blobHTTPHeaders} option to set is
- * `blobContentType`, enabling the browser to provide
- * functionality based on file type.
- *
- * @param data - Buffer(Node.js), Blob, ArrayBuffer or ArrayBufferView
- * @param options -
- */
- async uploadData(data, options = {}) {
- const { span, updatedOptions } = createSpan("BlockBlobClient-uploadData", options);
- try {
- if (coreHttp.isNode) {
- let buffer;
- if (data instanceof Buffer) {
- buffer = data;
- }
- else if (data instanceof ArrayBuffer) {
- buffer = Buffer.from(data);
- }
- else {
- data = data;
- buffer = Buffer.from(data.buffer, data.byteOffset, data.byteLength);
- }
- return this.uploadSeekableInternal((offset, size) => buffer.slice(offset, offset + size), buffer.byteLength, updatedOptions);
- }
- else {
- const browserBlob = new Blob([data]);
- return this.uploadSeekableInternal((offset, size) => browserBlob.slice(offset, offset + size), browserBlob.size, updatedOptions);
- }
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * ONLY AVAILABLE IN BROWSERS.
- *
- * Uploads a browser Blob/File/ArrayBuffer/ArrayBufferView object to block blob.
- *
- * When buffer length lesser than or equal to 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.
- *
- * A common {@link BlockBlobParallelUploadOptions.blobHTTPHeaders} option to set is
- * `blobContentType`, enabling the browser to provide
- * functionality based on file type.
- *
- * @deprecated Use {@link uploadData} instead.
- *
- * @param browserData - Blob, File, ArrayBuffer or ArrayBufferView
- * @param options - Options to upload browser data.
- * @returns Response data for the Blob Upload operation.
- */
- async uploadBrowserData(browserData, options = {}) {
- const { span, updatedOptions } = createSpan("BlockBlobClient-uploadBrowserData", options);
- try {
- const browserBlob = new Blob([browserData]);
- return await this.uploadSeekableInternal((offset, size) => browserBlob.slice(offset, offset + size), browserBlob.size, updatedOptions);
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- *
- * Uploads data to block blob. Requires a bodyFactory as the data source,
- * which need to return a {@link HttpRequestBody} object with the offset and size provided.
- *
- * When data length is no more than the specified {@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.
- *
- * @param bodyFactory -
- * @param size - size of the data to upload.
- * @param options - Options to Upload to Block Blob operation.
- * @returns Response data for the Blob Upload operation.
- */
- async uploadSeekableInternal(bodyFactory, size, options = {}) {
- if (!options.blockSize) {
- options.blockSize = 0;
- }
- if (options.blockSize < 0 || options.blockSize > BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES) {
- throw new RangeError(`blockSize option must be >= 0 and <= ${BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES}`);
- }
- if (options.maxSingleShotSize !== 0 && !options.maxSingleShotSize) {
- options.maxSingleShotSize = BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES;
- }
- if (options.maxSingleShotSize < 0 ||
- options.maxSingleShotSize > BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES) {
- throw new RangeError(`maxSingleShotSize option must be >= 0 and <= ${BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES}`);
- }
- if (options.blockSize === 0) {
- if (size > BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES * BLOCK_BLOB_MAX_BLOCKS) {
- throw new RangeError(`${size} is too larger to upload to a block blob.`);
- }
- if (size > options.maxSingleShotSize) {
- options.blockSize = Math.ceil(size / BLOCK_BLOB_MAX_BLOCKS);
- if (options.blockSize < DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES) {
- options.blockSize = DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES;
- }
- }
- }
- if (!options.blobHTTPHeaders) {
- options.blobHTTPHeaders = {};
- }
- if (!options.conditions) {
- options.conditions = {};
- }
- const { span, updatedOptions } = createSpan("BlockBlobClient-uploadSeekableInternal", options);
- try {
- if (size <= options.maxSingleShotSize) {
- return await this.upload(bodyFactory(0, size), size, updatedOptions);
- }
- const numBlocks = Math.floor((size - 1) / options.blockSize) + 1;
- if (numBlocks > BLOCK_BLOB_MAX_BLOCKS) {
- throw new RangeError(`The buffer's size is too big or the BlockSize is too small;` +
- `the number of blocks must be <= ${BLOCK_BLOB_MAX_BLOCKS}`);
- }
- const blockList = [];
- const blockIDPrefix = coreHttp.generateUuid();
- let transferProgress = 0;
- const batch = new Batch(options.concurrency);
- for (let i = 0; i < numBlocks; i++) {
- batch.addOperation(async () => {
- const blockID = generateBlockID(blockIDPrefix, i);
- const start = options.blockSize * i;
- const end = i === numBlocks - 1 ? size : start + options.blockSize;
- const contentLength = end - start;
- blockList.push(blockID);
- await this.stageBlock(blockID, bodyFactory(start, contentLength), contentLength, {
- abortSignal: options.abortSignal,
- conditions: options.conditions,
- encryptionScope: options.encryptionScope,
- tracingOptions: updatedOptions.tracingOptions,
- });
- // Update progress after block is successfully uploaded to server, in case of block trying
- // TODO: Hook with convenience layer progress event in finer level
- transferProgress += contentLength;
- if (options.onProgress) {
- options.onProgress({
- loadedBytes: transferProgress,
- });
- }
- });
- }
- await batch.do();
- return this.commitBlockList(blockList, updatedOptions);
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * ONLY AVAILABLE IN NODE.JS RUNTIME.
- *
- * Uploads a local file in blocks to a block blob.
- *
- * When file size lesser than or equal to 256MB, this method will use 1 upload call to finish the upload.
- * Otherwise, this method will call stageBlock to upload blocks, and finally call commitBlockList
- * to commit the block list.
- *
- * @param filePath - Full path of local file
- * @param options - Options to Upload to Block Blob operation.
- * @returns Response data for the Blob Upload operation.
- */
- async uploadFile(filePath, options = {}) {
- const { span, updatedOptions } = createSpan("BlockBlobClient-uploadFile", options);
- try {
- const size = (await fsStat(filePath)).size;
- return await this.uploadSeekableInternal((offset, count) => {
- return () => fsCreateReadStream(filePath, {
- autoClose: true,
- end: count ? offset + count - 1 : Infinity,
- start: offset,
- });
- }, size, Object.assign(Object.assign({}, options), { tracingOptions: Object.assign(Object.assign({}, options.tracingOptions), convertTracingToRequestOptionsBase(updatedOptions)) }));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * ONLY AVAILABLE IN NODE.JS RUNTIME.
- *
- * Uploads a Node.js Readable stream into block blob.
- *
- * PERFORMANCE IMPROVEMENT TIPS:
- * * Input stream highWaterMark is better to set a same value with bufferSize
- * parameter, which will avoid Buffer.concat() operations.
- *
- * @param stream - Node.js Readable stream
- * @param bufferSize - Size of every buffer allocated, also the block size in the uploaded block blob. Default value is 8MB
- * @param maxConcurrency - Max concurrency indicates the max number of buffers that can be allocated,
- * positive correlation with max uploading concurrency. Default value is 5
- * @param options - Options to Upload Stream to Block Blob operation.
- * @returns Response data for the Blob Upload operation.
- */
- async uploadStream(stream, bufferSize = DEFAULT_BLOCK_BUFFER_SIZE_BYTES, maxConcurrency = 5, options = {}) {
- if (!options.blobHTTPHeaders) {
- options.blobHTTPHeaders = {};
- }
- if (!options.conditions) {
- options.conditions = {};
- }
- const { span, updatedOptions } = createSpan("BlockBlobClient-uploadStream", options);
- try {
- let blockNum = 0;
- const blockIDPrefix = coreHttp.generateUuid();
- let transferProgress = 0;
- const blockList = [];
- const scheduler = new BufferScheduler(stream, bufferSize, maxConcurrency, async (body, length) => {
- const blockID = generateBlockID(blockIDPrefix, blockNum);
- blockList.push(blockID);
- blockNum++;
- await this.stageBlock(blockID, body, length, {
- conditions: options.conditions,
- encryptionScope: options.encryptionScope,
- tracingOptions: updatedOptions.tracingOptions,
- });
- // Update progress after block is successfully uploaded to server, in case of block trying
- transferProgress += length;
- if (options.onProgress) {
- options.onProgress({ loadedBytes: transferProgress });
- }
- },
- // concurrency should set a smaller value than maxConcurrency, which is helpful to
- // reduce the possibility when a outgoing handler waits for stream data, in
- // this situation, outgoing handlers are blocked.
- // Outgoing queue shouldn't be empty.
- Math.ceil((maxConcurrency / 4) * 3));
- await scheduler.do();
- return await this.commitBlockList(blockList, Object.assign(Object.assign({}, options), { tracingOptions: Object.assign(Object.assign({}, options.tracingOptions), convertTracingToRequestOptionsBase(updatedOptions)) }));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
-}
-/**
- * PageBlobClient defines a set of operations applicable to page blobs.
- */
-class PageBlobClient extends BlobClient {
- constructor(urlOrConnectionString, credentialOrPipelineOrContainerName, blobNameOrOptions,
- // Legacy, no fix for eslint error without breaking. Disable it for this interface.
- /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/
- options) {
- // In TypeScript we cannot simply pass all parameters to super() like below so have to duplicate the code instead.
- // super(s, credentialOrPipelineOrContainerNameOrOptions, blobNameOrOptions, options);
- let pipeline;
- let url;
- options = options || {};
- if (isPipelineLike(credentialOrPipelineOrContainerName)) {
- // (url: string, pipeline: Pipeline)
- url = urlOrConnectionString;
- pipeline = credentialOrPipelineOrContainerName;
- }
- else if ((coreHttp.isNode && credentialOrPipelineOrContainerName instanceof StorageSharedKeyCredential) ||
- credentialOrPipelineOrContainerName instanceof AnonymousCredential ||
- coreHttp.isTokenCredential(credentialOrPipelineOrContainerName)) {
- // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)
- url = urlOrConnectionString;
- options = blobNameOrOptions;
- pipeline = newPipeline(credentialOrPipelineOrContainerName, options);
- }
- else if (!credentialOrPipelineOrContainerName &&
- typeof credentialOrPipelineOrContainerName !== "string") {
- // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)
- // The second parameter is undefined. Use anonymous credential.
- url = urlOrConnectionString;
- pipeline = newPipeline(new AnonymousCredential(), options);
- }
- else if (credentialOrPipelineOrContainerName &&
- typeof credentialOrPipelineOrContainerName === "string" &&
- blobNameOrOptions &&
- typeof blobNameOrOptions === "string") {
- // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions)
- const containerName = credentialOrPipelineOrContainerName;
- const blobName = blobNameOrOptions;
- const extractedCreds = extractConnectionStringParts(urlOrConnectionString);
- if (extractedCreds.kind === "AccountConnString") {
- if (coreHttp.isNode) {
- const sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey);
- url = appendToURLPath(appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)), encodeURIComponent(blobName));
- if (!options.proxyOptions) {
- options.proxyOptions = coreHttp.getDefaultProxySettings(extractedCreds.proxyUri);
- }
- pipeline = newPipeline(sharedKeyCredential, options);
- }
- else {
- throw new Error("Account connection string is only supported in Node.js environment");
- }
- }
- else if (extractedCreds.kind === "SASConnString") {
- url =
- appendToURLPath(appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)), encodeURIComponent(blobName)) +
- "?" +
- extractedCreds.accountSas;
- pipeline = newPipeline(new AnonymousCredential(), options);
- }
- else {
- throw new Error("Connection string must be either an Account connection string or a SAS connection string");
- }
- }
- else {
- throw new Error("Expecting non-empty strings for containerName and blobName parameters");
- }
- super(url, pipeline);
- this.pageBlobContext = new PageBlob(this.storageClientContext);
- }
- /**
- * Creates a new PageBlobClient object identical to the source but with the
- * specified snapshot timestamp.
- * Provide "" will remove the snapshot and return a Client to the base blob.
- *
- * @param snapshot - The snapshot timestamp.
- * @returns A new PageBlobClient object identical to the source but with the specified snapshot timestamp.
- */
- withSnapshot(snapshot) {
- return new PageBlobClient(setURLParameter(this.url, URLConstants.Parameters.SNAPSHOT, snapshot.length === 0 ? undefined : snapshot), this.pipeline);
- }
- /**
- * Creates a page blob of the specified length. Call uploadPages to upload data
- * data to a page blob.
- * @see https://docs.microsoft.com/rest/api/storageservices/put-blob
- *
- * @param size - size of the page blob.
- * @param options - Options to the Page Blob Create operation.
- * @returns Response data for the Page Blob Create operation.
- */
- async create(size, options = {}) {
- var _a, _b, _c;
- options.conditions = options.conditions || {};
- const { span, updatedOptions } = createSpan("PageBlobClient-create", options);
- try {
- ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);
- return await this.pageBlobContext.create(0, size, Object.assign({ abortSignal: options.abortSignal, blobHttpHeaders: options.blobHTTPHeaders, blobSequenceNumber: options.blobSequenceNumber, leaseAccessConditions: options.conditions, metadata: options.metadata, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, immutabilityPolicyExpiry: (_b = options.immutabilityPolicy) === null || _b === void 0 ? void 0 : _b.expiriesOn, immutabilityPolicyMode: (_c = options.immutabilityPolicy) === null || _c === void 0 ? void 0 : _c.policyMode, legalHold: options.legalHold, tier: toAccessTier(options.tier), blobTagsString: toBlobTagsString(options.tags) }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Creates a page blob of the specified length. Call uploadPages to upload data
- * data to a page blob. If the blob with the same name already exists, the content
- * of the existing blob will remain unchanged.
- * @see https://docs.microsoft.com/rest/api/storageservices/put-blob
- *
- * @param size - size of the page blob.
- * @param options -
- */
- async createIfNotExists(size, options = {}) {
- var _a, _b;
- const { span, updatedOptions } = createSpan("PageBlobClient-createIfNotExists", options);
- try {
- const conditions = { ifNoneMatch: ETagAny };
- const res = await this.create(size, Object.assign(Object.assign({}, options), { conditions, tracingOptions: updatedOptions.tracingOptions }));
- return Object.assign(Object.assign({ succeeded: true }, res), { _response: res._response });
- }
- catch (e) {
- if (((_a = e.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "BlobAlreadyExists") {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: "Expected exception when creating a blob only if it does not already exist.",
- });
- return Object.assign(Object.assign({ succeeded: false }, (_b = e.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e.response });
- }
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Writes 1 or more pages to the page blob. The start and end offsets must be a multiple of 512.
- * @see https://docs.microsoft.com/rest/api/storageservices/put-page
- *
- * @param body - Data to upload
- * @param offset - Offset of destination page blob
- * @param count - Content length of the body, also number of bytes to be uploaded
- * @param options - Options to the Page Blob Upload Pages operation.
- * @returns Response data for the Page Blob Upload Pages operation.
- */
- async uploadPages(body, offset, count, options = {}) {
- var _a;
- options.conditions = options.conditions || {};
- const { span, updatedOptions } = createSpan("PageBlobClient-uploadPages", options);
- try {
- ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);
- return await this.pageBlobContext.uploadPages(count, body, Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), requestOptions: {
- onUploadProgress: options.onProgress,
- }, range: rangeToString({ offset, count }), sequenceNumberAccessConditions: options.conditions, transactionalContentMD5: options.transactionalContentMD5, transactionalContentCrc64: options.transactionalContentCrc64, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * The Upload Pages operation writes a range of pages to a page blob where the
- * contents are read from a URL.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/put-page-from-url
- *
- * @param sourceURL - Specify a URL to the copy source, Shared Access Signature(SAS) maybe needed for authentication
- * @param sourceOffset - The source offset to copy from. Pass 0 to copy from the beginning of source page blob
- * @param destOffset - Offset of destination page blob
- * @param count - Number of bytes to be uploaded from source page blob
- * @param options -
- */
- async uploadPagesFromURL(sourceURL, sourceOffset, destOffset, count, options = {}) {
- var _a;
- options.conditions = options.conditions || {};
- options.sourceConditions = options.sourceConditions || {};
- const { span, updatedOptions } = createSpan("PageBlobClient-uploadPagesFromURL", options);
- try {
- ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);
- return await this.pageBlobContext.uploadPagesFromURL(sourceURL, rangeToString({ offset: sourceOffset, count }), 0, rangeToString({ offset: destOffset, count }), Object.assign({ abortSignal: options.abortSignal, sourceContentMD5: options.sourceContentMD5, sourceContentCrc64: options.sourceContentCrc64, leaseAccessConditions: options.conditions, sequenceNumberAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), sourceModifiedAccessConditions: {
- sourceIfMatch: options.sourceConditions.ifMatch,
- sourceIfModifiedSince: options.sourceConditions.ifModifiedSince,
- sourceIfNoneMatch: options.sourceConditions.ifNoneMatch,
- sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince,
- }, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope, copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization) }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Frees the specified pages from the page blob.
- * @see https://docs.microsoft.com/rest/api/storageservices/put-page
- *
- * @param offset - Starting byte position of the pages to clear.
- * @param count - Number of bytes to clear.
- * @param options - Options to the Page Blob Clear Pages operation.
- * @returns Response data for the Page Blob Clear Pages operation.
- */
- async clearPages(offset = 0, count, options = {}) {
- var _a;
- options.conditions = options.conditions || {};
- const { span, updatedOptions } = createSpan("PageBlobClient-clearPages", options);
- try {
- return await this.pageBlobContext.clearPages(0, Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), range: rangeToString({ offset, count }), sequenceNumberAccessConditions: options.conditions, cpkInfo: options.customerProvidedKey, encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Returns the list of valid page ranges for a page blob or snapshot of a page blob.
- * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges
- *
- * @param offset - Starting byte position of the page ranges.
- * @param count - Number of bytes to get.
- * @param options - Options to the Page Blob Get Ranges operation.
- * @returns Response data for the Page Blob Get Ranges operation.
- */
- async getPageRanges(offset = 0, count, options = {}) {
- var _a;
- options.conditions = options.conditions || {};
- const { span, updatedOptions } = createSpan("PageBlobClient-getPageRanges", options);
- try {
- return await this.pageBlobContext
- .getPageRanges(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), range: rangeToString({ offset, count }) }, convertTracingToRequestOptionsBase(updatedOptions)))
- .then(rangeResponseFromModel);
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * getPageRangesSegment returns a single segment of page ranges starting from the
- * specified Marker. Use an empty Marker to start enumeration from the beginning.
- * After getting a segment, process it, and then call getPageRangesSegment again
- * (passing the the previously-returned Marker) to get the next segment.
- * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges
- *
- * @param offset - Starting byte position of the page ranges.
- * @param count - Number of bytes to get.
- * @param marker - A string value that identifies the portion of the list to be returned with the next list operation.
- * @param options - Options to PageBlob Get Page Ranges Segment operation.
- */
- async listPageRangesSegment(offset = 0, count, marker, options = {}) {
- var _a;
- const { span, updatedOptions } = createSpan("PageBlobClient-getPageRangesSegment", options);
- try {
- return await this.pageBlobContext.getPageRanges(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), range: rangeToString({ offset, count }), marker: marker, maxPageSize: options.maxPageSize }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Returns an AsyncIterableIterator for {@link PageBlobGetPageRangesResponseModel}
- *
- * @param offset - Starting byte position of the page ranges.
- * @param count - Number of bytes to get.
- * @param marker - A string value that identifies the portion of
- * the get of page ranges to be returned with the next getting operation. The
- * operation returns the ContinuationToken value within the response body if the
- * getting operation did not return all page ranges remaining within 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 get
- * items. The marker value is opaque to the client.
- * @param options - Options to List Page Ranges operation.
- */
- listPageRangeItemSegments(offset = 0, count, marker, options = {}) {
- return tslib.__asyncGenerator(this, arguments, function* listPageRangeItemSegments_1() {
- let getPageRangeItemSegmentsResponse;
- if (!!marker || marker === undefined) {
- do {
- getPageRangeItemSegmentsResponse = yield tslib.__await(this.listPageRangesSegment(offset, count, marker, options));
- marker = getPageRangeItemSegmentsResponse.continuationToken;
- yield yield tslib.__await(yield tslib.__await(getPageRangeItemSegmentsResponse));
- } while (marker);
- }
- });
- }
- /**
- * Returns an AsyncIterableIterator of {@link PageRangeInfo} objects
- *
- * @param offset - Starting byte position of the page ranges.
- * @param count - Number of bytes to get.
- * @param options - Options to List Page Ranges operation.
- */
- listPageRangeItems(offset = 0, count, options = {}) {
- return tslib.__asyncGenerator(this, arguments, function* listPageRangeItems_1() {
- var e_1, _a;
- let marker;
- try {
- for (var _b = tslib.__asyncValues(this.listPageRangeItemSegments(offset, count, marker, options)), _c; _c = yield tslib.__await(_b.next()), !_c.done;) {
- const getPageRangesSegment = _c.value;
- yield tslib.__await(yield* tslib.__asyncDelegator(tslib.__asyncValues(ExtractPageRangeInfoItems(getPageRangesSegment))));
- }
- }
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
- finally {
- try {
- if (_c && !_c.done && (_a = _b.return)) yield tslib.__await(_a.call(_b));
- }
- finally { if (e_1) throw e_1.error; }
- }
- });
- }
- /**
- * Returns an async iterable iterator to list of page ranges for a page blob.
- * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges
- *
- * .byPage() returns an async iterable iterator to list of page ranges for a page blob.
- *
- * Example using `for await` syntax:
- *
- * ```js
- * // Get the pageBlobClient before you run these snippets,
- * // Can be obtained from `blobServiceClient.getContainerClient("").getPageBlobClient("");`
- * let i = 1;
- * for await (const pageRange of pageBlobClient.listPageRanges()) {
- * console.log(`Page range ${i++}: ${pageRange.start} - ${pageRange.end}`);
- * }
- * ```
- *
- * Example using `iter.next()`:
- *
- * ```js
- * let i = 1;
- * let iter = pageBlobClient.listPageRanges();
- * let pageRangeItem = await iter.next();
- * while (!pageRangeItem.done) {
- * console.log(`Page range ${i++}: ${pageRangeItem.value.start} - ${pageRangeItem.value.end}, IsClear: ${pageRangeItem.value.isClear}`);
- * pageRangeItem = await iter.next();
- * }
- * ```
- *
- * Example using `byPage()`:
- *
- * ```js
- * // passing optional maxPageSize in the page settings
- * let i = 1;
- * for await (const response of pageBlobClient.listPageRanges().byPage({ maxPageSize: 20 })) {
- * for (const pageRange of response) {
- * console.log(`Page range ${i++}: ${pageRange.start} - ${pageRange.end}`);
- * }
- * }
- * ```
- *
- * Example using paging with a marker:
- *
- * ```js
- * let i = 1;
- * let iterator = pageBlobClient.listPageRanges().byPage({ maxPageSize: 2 });
- * let response = (await iterator.next()).value;
- *
- * // Prints 2 page ranges
- * for (const pageRange of response) {
- * console.log(`Page range ${i++}: ${pageRange.start} - ${pageRange.end}`);
- * }
- *
- * // Gets next marker
- * let marker = response.continuationToken;
- *
- * // Passing next marker as continuationToken
- *
- * iterator = pageBlobClient.listPageRanges().byPage({ continuationToken: marker, maxPageSize: 10 });
- * response = (await iterator.next()).value;
- *
- * // Prints 10 page ranges
- * for (const blob of response) {
- * console.log(`Page range ${i++}: ${pageRange.start} - ${pageRange.end}`);
- * }
- * ```
- * @param offset - Starting byte position of the page ranges.
- * @param count - Number of bytes to get.
- * @param options - Options to the Page Blob Get Ranges operation.
- * @returns An asyncIterableIterator that supports paging.
- */
- listPageRanges(offset = 0, count, options = {}) {
- options.conditions = options.conditions || {};
- // AsyncIterableIterator to iterate over blobs
- const iter = this.listPageRangeItems(offset, count, options);
- return {
- /**
- * The next method, part of the iteration protocol
- */
- next() {
- return iter.next();
- },
- /**
- * The connection to the async iterator, part of the iteration protocol
- */
- [Symbol.asyncIterator]() {
- return this;
- },
- /**
- * Return an AsyncIterableIterator that works a page at a time
- */
- byPage: (settings = {}) => {
- return this.listPageRangeItemSegments(offset, count, settings.continuationToken, Object.assign({ maxPageSize: settings.maxPageSize }, options));
- },
- };
- }
- /**
- * Gets the collection of page ranges that differ between a specified snapshot and this page blob.
- * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges
- *
- * @param offset - Starting byte position of the page blob
- * @param count - Number of bytes to get ranges diff.
- * @param prevSnapshot - Timestamp of snapshot to retrieve the difference.
- * @param options - Options to the Page Blob Get Page Ranges Diff operation.
- * @returns Response data for the Page Blob Get Page Range Diff operation.
- */
- async getPageRangesDiff(offset, count, prevSnapshot, options = {}) {
- var _a;
- options.conditions = options.conditions || {};
- const { span, updatedOptions } = createSpan("PageBlobClient-getPageRangesDiff", options);
- try {
- return await this.pageBlobContext
- .getPageRangesDiff(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), prevsnapshot: prevSnapshot, range: rangeToString({ offset, count }) }, convertTracingToRequestOptionsBase(updatedOptions)))
- .then(rangeResponseFromModel);
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * getPageRangesDiffSegment returns a single segment of page ranges starting from the
- * specified Marker for difference between previous snapshot and the target page blob.
- * Use an empty Marker to start enumeration from the beginning.
- * After getting a segment, process it, and then call getPageRangesDiffSegment again
- * (passing the the previously-returned Marker) to get the next segment.
- * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges
- *
- * @param offset - Starting byte position of the page ranges.
- * @param count - Number of bytes to get.
- * @param prevSnapshotOrUrl - Timestamp of snapshot to retrieve the difference or URL of snapshot to retrieve the difference.
- * @param marker - A string value that identifies the portion of the get to be returned with the next get operation.
- * @param options - Options to the Page Blob Get Page Ranges Diff operation.
- */
- async listPageRangesDiffSegment(offset, count, prevSnapshotOrUrl, marker, options) {
- var _a;
- const { span, updatedOptions } = createSpan("PageBlobClient-getPageRangesDiffSegment", options);
- try {
- return await this.pageBlobContext.getPageRangesDiff(Object.assign({ abortSignal: options === null || options === void 0 ? void 0 : options.abortSignal, leaseAccessConditions: options === null || options === void 0 ? void 0 : options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.conditions), { ifTags: (_a = options === null || options === void 0 ? void 0 : options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), prevsnapshot: prevSnapshotOrUrl, range: rangeToString({
- offset: offset,
- count: count,
- }), marker: marker, maxPageSize: options === null || options === void 0 ? void 0 : options.maxPageSize }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Returns an AsyncIterableIterator for {@link PageBlobGetPageRangesDiffResponseModel}
- *
- *
- * @param offset - Starting byte position of the page ranges.
- * @param count - Number of bytes to get.
- * @param prevSnapshotOrUrl - Timestamp of snapshot to retrieve the difference or URL of snapshot to retrieve the difference.
- * @param marker - A string value that identifies the portion of
- * the get of page ranges to be returned with the next getting operation. The
- * operation returns the ContinuationToken value within the response body if the
- * getting operation did not return all page ranges remaining within 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 get
- * items. The marker value is opaque to the client.
- * @param options - Options to the Page Blob Get Page Ranges Diff operation.
- */
- listPageRangeDiffItemSegments(offset, count, prevSnapshotOrUrl, marker, options) {
- return tslib.__asyncGenerator(this, arguments, function* listPageRangeDiffItemSegments_1() {
- let getPageRangeItemSegmentsResponse;
- if (!!marker || marker === undefined) {
- do {
- getPageRangeItemSegmentsResponse = yield tslib.__await(this.listPageRangesDiffSegment(offset, count, prevSnapshotOrUrl, marker, options));
- marker = getPageRangeItemSegmentsResponse.continuationToken;
- yield yield tslib.__await(yield tslib.__await(getPageRangeItemSegmentsResponse));
- } while (marker);
- }
- });
- }
- /**
- * Returns an AsyncIterableIterator of {@link PageRangeInfo} objects
- *
- * @param offset - Starting byte position of the page ranges.
- * @param count - Number of bytes to get.
- * @param prevSnapshotOrUrl - Timestamp of snapshot to retrieve the difference or URL of snapshot to retrieve the difference.
- * @param options - Options to the Page Blob Get Page Ranges Diff operation.
- */
- listPageRangeDiffItems(offset, count, prevSnapshotOrUrl, options) {
- return tslib.__asyncGenerator(this, arguments, function* listPageRangeDiffItems_1() {
- var e_2, _a;
- let marker;
- try {
- for (var _b = tslib.__asyncValues(this.listPageRangeDiffItemSegments(offset, count, prevSnapshotOrUrl, marker, options)), _c; _c = yield tslib.__await(_b.next()), !_c.done;) {
- const getPageRangesSegment = _c.value;
- yield tslib.__await(yield* tslib.__asyncDelegator(tslib.__asyncValues(ExtractPageRangeInfoItems(getPageRangesSegment))));
- }
- }
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
- finally {
- try {
- if (_c && !_c.done && (_a = _b.return)) yield tslib.__await(_a.call(_b));
- }
- finally { if (e_2) throw e_2.error; }
- }
- });
- }
- /**
- * Returns an async iterable iterator to list of page ranges that differ between a specified snapshot and this page blob.
- * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges
- *
- * .byPage() returns an async iterable iterator to list of page ranges that differ between a specified snapshot and this page blob.
- *
- * Example using `for await` syntax:
- *
- * ```js
- * // Get the pageBlobClient before you run these snippets,
- * // Can be obtained from `blobServiceClient.getContainerClient("").getPageBlobClient("");`
- * let i = 1;
- * for await (const pageRange of pageBlobClient.listPageRangesDiff()) {
- * console.log(`Page range ${i++}: ${pageRange.start} - ${pageRange.end}`);
- * }
- * ```
- *
- * Example using `iter.next()`:
- *
- * ```js
- * let i = 1;
- * let iter = pageBlobClient.listPageRangesDiff();
- * let pageRangeItem = await iter.next();
- * while (!pageRangeItem.done) {
- * console.log(`Page range ${i++}: ${pageRangeItem.value.start} - ${pageRangeItem.value.end}, IsClear: ${pageRangeItem.value.isClear}`);
- * pageRangeItem = await iter.next();
- * }
- * ```
- *
- * Example using `byPage()`:
- *
- * ```js
- * // passing optional maxPageSize in the page settings
- * let i = 1;
- * for await (const response of pageBlobClient.listPageRangesDiff().byPage({ maxPageSize: 20 })) {
- * for (const pageRange of response) {
- * console.log(`Page range ${i++}: ${pageRange.start} - ${pageRange.end}`);
- * }
- * }
- * ```
- *
- * Example using paging with a marker:
- *
- * ```js
- * let i = 1;
- * let iterator = pageBlobClient.listPageRangesDiff().byPage({ maxPageSize: 2 });
- * let response = (await iterator.next()).value;
- *
- * // Prints 2 page ranges
- * for (const pageRange of response) {
- * console.log(`Page range ${i++}: ${pageRange.start} - ${pageRange.end}`);
- * }
- *
- * // Gets next marker
- * let marker = response.continuationToken;
- *
- * // Passing next marker as continuationToken
- *
- * iterator = pageBlobClient.listPageRangesDiff().byPage({ continuationToken: marker, maxPageSize: 10 });
- * response = (await iterator.next()).value;
- *
- * // Prints 10 page ranges
- * for (const blob of response) {
- * console.log(`Page range ${i++}: ${pageRange.start} - ${pageRange.end}`);
- * }
- * ```
- * @param offset - Starting byte position of the page ranges.
- * @param count - Number of bytes to get.
- * @param prevSnapshot - Timestamp of snapshot to retrieve the difference.
- * @param options - Options to the Page Blob Get Ranges operation.
- * @returns An asyncIterableIterator that supports paging.
- */
- listPageRangesDiff(offset, count, prevSnapshot, options = {}) {
- options.conditions = options.conditions || {};
- // AsyncIterableIterator to iterate over blobs
- const iter = this.listPageRangeDiffItems(offset, count, prevSnapshot, Object.assign({}, options));
- return {
- /**
- * The next method, part of the iteration protocol
- */
- next() {
- return iter.next();
- },
- /**
- * The connection to the async iterator, part of the iteration protocol
- */
- [Symbol.asyncIterator]() {
- return this;
- },
- /**
- * Return an AsyncIterableIterator that works a page at a time
- */
- byPage: (settings = {}) => {
- return this.listPageRangeDiffItemSegments(offset, count, prevSnapshot, settings.continuationToken, Object.assign({ maxPageSize: settings.maxPageSize }, options));
- },
- };
- }
- /**
- * Gets the collection of page ranges that differ between a specified snapshot and this page blob for managed disks.
- * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges
- *
- * @param offset - Starting byte position of the page blob
- * @param count - Number of bytes to get ranges diff.
- * @param prevSnapshotUrl - URL of snapshot to retrieve the difference.
- * @param options - Options to the Page Blob Get Page Ranges Diff operation.
- * @returns Response data for the Page Blob Get Page Range Diff operation.
- */
- async getPageRangesDiffForManagedDisks(offset, count, prevSnapshotUrl, options = {}) {
- var _a;
- options.conditions = options.conditions || {};
- const { span, updatedOptions } = createSpan("PageBlobClient-GetPageRangesDiffForManagedDisks", options);
- try {
- return await this.pageBlobContext
- .getPageRangesDiff(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), prevSnapshotUrl, range: rangeToString({ offset, count }) }, convertTracingToRequestOptionsBase(updatedOptions)))
- .then(rangeResponseFromModel);
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Resizes the page blob to the specified size (which must be a multiple of 512).
- * @see https://docs.microsoft.com/rest/api/storageservices/set-blob-properties
- *
- * @param size - Target size
- * @param options - Options to the Page Blob Resize operation.
- * @returns Response data for the Page Blob Resize operation.
- */
- async resize(size, options = {}) {
- var _a;
- options.conditions = options.conditions || {};
- const { span, updatedOptions } = createSpan("PageBlobClient-resize", options);
- try {
- return await this.pageBlobContext.resize(size, Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }), encryptionScope: options.encryptionScope }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Sets a page blob's sequence number.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-properties
- *
- * @param sequenceNumberAction - Indicates how the service should modify the blob's sequence number.
- * @param sequenceNumber - Required if sequenceNumberAction is max or update
- * @param options - Options to the Page Blob Update Sequence Number operation.
- * @returns Response data for the Page Blob Update Sequence Number operation.
- */
- async updateSequenceNumber(sequenceNumberAction, sequenceNumber, options = {}) {
- var _a;
- options.conditions = options.conditions || {};
- const { span, updatedOptions } = createSpan("PageBlobClient-updateSequenceNumber", options);
- try {
- return await this.pageBlobContext.updateSequenceNumber(sequenceNumberAction, Object.assign({ abortSignal: options.abortSignal, blobSequenceNumber: sequenceNumber, leaseAccessConditions: options.conditions, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Begins an operation to start an incremental copy from one page blob's snapshot to this page blob.
- * The snapshot is copied such that only the differential changes between the previously
- * copied snapshot are transferred to the destination.
- * The copied snapshots are complete copies of the original snapshot and can be read or copied from as usual.
- * @see https://docs.microsoft.com/rest/api/storageservices/incremental-copy-blob
- * @see https://docs.microsoft.com/en-us/azure/virtual-machines/windows/incremental-snapshots
- *
- * @param copySource - Specifies the name of the source page blob snapshot. For example,
- * https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=
- * @param options - Options to the Page Blob Copy Incremental operation.
- * @returns Response data for the Page Blob Copy Incremental operation.
- */
- async startCopyIncremental(copySource, options = {}) {
- var _a;
- const { span, updatedOptions } = createSpan("PageBlobClient-startCopyIncremental", options);
- try {
- return await this.pageBlobContext.copyIncremental(copySource, Object.assign({ abortSignal: options.abortSignal, modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }) }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
-}
-
-// Copyright (c) Microsoft Corporation.
-async function getBodyAsText(batchResponse) {
- let buffer = Buffer.alloc(BATCH_MAX_PAYLOAD_IN_BYTES);
- const responseLength = await streamToBuffer2(batchResponse.readableStreamBody, buffer);
- // Slice the buffer to trim the empty ending.
- buffer = buffer.slice(0, responseLength);
- return buffer.toString();
-}
-function utf8ByteLength(str) {
- return Buffer.byteLength(str);
-}
-
-// Copyright (c) Microsoft Corporation.
-const HTTP_HEADER_DELIMITER = ": ";
-const SPACE_DELIMITER = " ";
-const NOT_FOUND = -1;
-/**
- * Util class for parsing batch response.
- */
-class BatchResponseParser {
- constructor(batchResponse, subRequests) {
- if (!batchResponse || !batchResponse.contentType) {
- // In special case(reported), server may return invalid content-type which could not be parsed.
- throw new RangeError("batchResponse is malformed or doesn't contain valid content-type.");
- }
- if (!subRequests || subRequests.size === 0) {
- // This should be prevent during coding.
- throw new RangeError("Invalid state: subRequests is not provided or size is 0.");
- }
- this.batchResponse = batchResponse;
- this.subRequests = subRequests;
- this.responseBatchBoundary = this.batchResponse.contentType.split("=")[1];
- this.perResponsePrefix = `--${this.responseBatchBoundary}${HTTP_LINE_ENDING}`;
- this.batchResponseEnding = `--${this.responseBatchBoundary}--`;
- }
- // For example of response, please refer to https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch#response
- async parseBatchResponse() {
- // When logic reach here, suppose batch request has already succeeded with 202, so we can further parse
- // sub request's response.
- if (this.batchResponse._response.status !== HTTPURLConnection.HTTP_ACCEPTED) {
- throw new Error(`Invalid state: batch request failed with status: '${this.batchResponse._response.status}'.`);
- }
- const responseBodyAsText = await getBodyAsText(this.batchResponse);
- const subResponses = responseBodyAsText
- .split(this.batchResponseEnding)[0] // string after ending is useless
- .split(this.perResponsePrefix)
- .slice(1); // string before first response boundary is useless
- const subResponseCount = subResponses.length;
- // Defensive coding in case of potential error parsing.
- // Note: subResponseCount == 1 is special case where sub request is invalid.
- // We try to prevent such cases through early validation, e.g. validate sub request count >= 1.
- // While in unexpected sub request invalid case, we allow sub response to be parsed and return to user.
- if (subResponseCount !== this.subRequests.size && subResponseCount !== 1) {
- throw new Error("Invalid state: sub responses' count is not equal to sub requests' count.");
- }
- const deserializedSubResponses = new Array(subResponseCount);
- let subResponsesSucceededCount = 0;
- let subResponsesFailedCount = 0;
- // Parse sub subResponses.
- for (let index = 0; index < subResponseCount; index++) {
- const subResponse = subResponses[index];
- const deserializedSubResponse = {};
- deserializedSubResponse.headers = new coreHttp.HttpHeaders();
- const responseLines = subResponse.split(`${HTTP_LINE_ENDING}`);
- let subRespHeaderStartFound = false;
- let subRespHeaderEndFound = false;
- let subRespFailed = false;
- let contentId = NOT_FOUND;
- for (const responseLine of responseLines) {
- if (!subRespHeaderStartFound) {
- // Convention line to indicate content ID
- if (responseLine.startsWith(HeaderConstants.CONTENT_ID)) {
- contentId = parseInt(responseLine.split(HTTP_HEADER_DELIMITER)[1]);
- }
- // Http version line with status code indicates the start of sub request's response.
- // Example: HTTP/1.1 202 Accepted
- if (responseLine.startsWith(HTTP_VERSION_1_1)) {
- subRespHeaderStartFound = true;
- const tokens = responseLine.split(SPACE_DELIMITER);
- deserializedSubResponse.status = parseInt(tokens[1]);
- deserializedSubResponse.statusMessage = tokens.slice(2).join(SPACE_DELIMITER);
- }
- continue; // Skip convention headers not specifically for sub request i.e. Content-Type: application/http and Content-ID: *
- }
- if (responseLine.trim() === "") {
- // Sub response's header start line already found, and the first empty line indicates header end line found.
- if (!subRespHeaderEndFound) {
- subRespHeaderEndFound = true;
- }
- continue; // Skip empty line
- }
- // Note: when code reach here, it indicates subRespHeaderStartFound == true
- if (!subRespHeaderEndFound) {
- if (responseLine.indexOf(HTTP_HEADER_DELIMITER) === -1) {
- // Defensive coding to prevent from missing valuable lines.
- throw new Error(`Invalid state: find non-empty line '${responseLine}' without HTTP header delimiter '${HTTP_HEADER_DELIMITER}'.`);
- }
- // Parse headers of sub response.
- const tokens = responseLine.split(HTTP_HEADER_DELIMITER);
- deserializedSubResponse.headers.set(tokens[0], tokens[1]);
- if (tokens[0] === HeaderConstants.X_MS_ERROR_CODE) {
- deserializedSubResponse.errorCode = tokens[1];
- subRespFailed = true;
- }
- }
- else {
- // Assemble body of sub response.
- if (!deserializedSubResponse.bodyAsText) {
- deserializedSubResponse.bodyAsText = "";
- }
- deserializedSubResponse.bodyAsText += responseLine;
- }
- } // Inner for end
- // The response will contain the Content-ID header for each corresponding subrequest response to use for tracking.
- // The Content-IDs are set to a valid index in the subrequests we sent. In the status code 202 path, we could expect it
- // to be 1-1 mapping from the [0, subRequests.size) to the Content-IDs returned. If not, we simply don't return that
- // unexpected subResponse in the parsed reponse and we can always look it up in the raw response for debugging purpose.
- if (contentId !== NOT_FOUND &&
- Number.isInteger(contentId) &&
- contentId >= 0 &&
- contentId < this.subRequests.size &&
- deserializedSubResponses[contentId] === undefined) {
- deserializedSubResponse._request = this.subRequests.get(contentId);
- deserializedSubResponses[contentId] = deserializedSubResponse;
- }
- else {
- logger.error(`subResponses[${index}] is dropped as the Content-ID is not found or invalid, Content-ID: ${contentId}`);
- }
- if (subRespFailed) {
- subResponsesFailedCount++;
- }
- else {
- subResponsesSucceededCount++;
- }
- }
- return {
- subResponses: deserializedSubResponses,
- subResponsesSucceededCount: subResponsesSucceededCount,
- subResponsesFailedCount: subResponsesFailedCount,
- };
- }
-}
-
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT license.
-var MutexLockStatus;
-(function (MutexLockStatus) {
- MutexLockStatus[MutexLockStatus["LOCKED"] = 0] = "LOCKED";
- MutexLockStatus[MutexLockStatus["UNLOCKED"] = 1] = "UNLOCKED";
-})(MutexLockStatus || (MutexLockStatus = {}));
-/**
- * An async mutex lock.
- */
-class Mutex {
- /**
- * Lock for a specific key. If the lock has been acquired by another customer, then
- * will wait until getting the lock.
- *
- * @param key - lock key
- */
- static async lock(key) {
- return new Promise((resolve) => {
- if (this.keys[key] === undefined || this.keys[key] === MutexLockStatus.UNLOCKED) {
- this.keys[key] = MutexLockStatus.LOCKED;
- resolve();
- }
- else {
- this.onUnlockEvent(key, () => {
- this.keys[key] = MutexLockStatus.LOCKED;
- resolve();
- });
- }
- });
- }
- /**
- * Unlock a key.
- *
- * @param key -
- */
- static async unlock(key) {
- return new Promise((resolve) => {
- if (this.keys[key] === MutexLockStatus.LOCKED) {
- this.emitUnlockEvent(key);
- }
- delete this.keys[key];
- resolve();
- });
- }
- static onUnlockEvent(key, handler) {
- if (this.listeners[key] === undefined) {
- this.listeners[key] = [handler];
- }
- else {
- this.listeners[key].push(handler);
- }
- }
- static emitUnlockEvent(key) {
- if (this.listeners[key] !== undefined && this.listeners[key].length > 0) {
- const handler = this.listeners[key].shift();
- setImmediate(() => {
- handler.call(this);
- });
- }
- }
-}
-Mutex.keys = {};
-Mutex.listeners = {};
-
-// Copyright (c) Microsoft Corporation.
-/**
- * A BlobBatch represents an aggregated set of operations on blobs.
- * Currently, only `delete` and `setAccessTier` are supported.
- */
-class BlobBatch {
- constructor() {
- this.batch = "batch";
- this.batchRequest = new InnerBatchRequest();
- }
- /**
- * Get the value of Content-Type for a batch request.
- * The value must be multipart/mixed with a batch boundary.
- * Example: multipart/mixed; boundary=batch_a81786c8-e301-4e42-a729-a32ca24ae252
- */
- getMultiPartContentType() {
- return this.batchRequest.getMultipartContentType();
- }
- /**
- * Get assembled HTTP request body for sub requests.
- */
- getHttpRequestBody() {
- return this.batchRequest.getHttpRequestBody();
- }
- /**
- * Get sub requests that are added into the batch request.
- */
- getSubRequests() {
- return this.batchRequest.getSubRequests();
- }
- async addSubRequestInternal(subRequest, assembleSubRequestFunc) {
- await Mutex.lock(this.batch);
- try {
- this.batchRequest.preAddSubRequest(subRequest);
- await assembleSubRequestFunc();
- this.batchRequest.postAddSubRequest(subRequest);
- }
- finally {
- await Mutex.unlock(this.batch);
- }
- }
- setBatchType(batchType) {
- if (!this.batchType) {
- this.batchType = batchType;
- }
- if (this.batchType !== batchType) {
- throw new RangeError(`BlobBatch only supports one operation type per batch and it already is being used for ${this.batchType} operations.`);
- }
- }
- async deleteBlob(urlOrBlobClient, credentialOrOptions, options) {
- let url;
- let credential;
- if (typeof urlOrBlobClient === "string" &&
- ((coreHttp.isNode && credentialOrOptions instanceof StorageSharedKeyCredential) ||
- credentialOrOptions instanceof AnonymousCredential ||
- coreHttp.isTokenCredential(credentialOrOptions))) {
- // First overload
- url = urlOrBlobClient;
- credential = credentialOrOptions;
- }
- else if (urlOrBlobClient instanceof BlobClient) {
- // Second overload
- url = urlOrBlobClient.url;
- credential = urlOrBlobClient.credential;
- options = credentialOrOptions;
- }
- else {
- throw new RangeError("Invalid arguments. Either url and credential, or BlobClient need be provided.");
- }
- if (!options) {
- options = {};
- }
- const { span, updatedOptions } = createSpan("BatchDeleteRequest-addSubRequest", options);
- try {
- this.setBatchType("delete");
- await this.addSubRequestInternal({
- url: url,
- credential: credential,
- }, async () => {
- await new BlobClient(url, this.batchRequest.createPipeline(credential)).delete(updatedOptions);
- });
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- async setBlobAccessTier(urlOrBlobClient, credentialOrTier, tierOrOptions, options) {
- let url;
- let credential;
- let tier;
- if (typeof urlOrBlobClient === "string" &&
- ((coreHttp.isNode && credentialOrTier instanceof StorageSharedKeyCredential) ||
- credentialOrTier instanceof AnonymousCredential ||
- coreHttp.isTokenCredential(credentialOrTier))) {
- // First overload
- url = urlOrBlobClient;
- credential = credentialOrTier;
- tier = tierOrOptions;
- }
- else if (urlOrBlobClient instanceof BlobClient) {
- // Second overload
- url = urlOrBlobClient.url;
- credential = urlOrBlobClient.credential;
- tier = credentialOrTier;
- options = tierOrOptions;
- }
- else {
- throw new RangeError("Invalid arguments. Either url and credential, or BlobClient need be provided.");
- }
- if (!options) {
- options = {};
- }
- const { span, updatedOptions } = createSpan("BatchSetTierRequest-addSubRequest", options);
- try {
- this.setBatchType("setAccessTier");
- await this.addSubRequestInternal({
- url: url,
- credential: credential,
- }, async () => {
- await new BlobClient(url, this.batchRequest.createPipeline(credential)).setAccessTier(tier, updatedOptions);
- });
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
-}
-/**
- * Inner batch request class which is responsible for assembling and serializing sub requests.
- * See https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch#request-body for how requests are assembled.
- */
-class InnerBatchRequest {
- constructor() {
- this.operationCount = 0;
- this.body = "";
- const tempGuid = coreHttp.generateUuid();
- // batch_{batchid}
- this.boundary = `batch_${tempGuid}`;
- // --batch_{batchid}
- // Content-Type: application/http
- // Content-Transfer-Encoding: binary
- this.subRequestPrefix = `--${this.boundary}${HTTP_LINE_ENDING}${HeaderConstants.CONTENT_TYPE}: application/http${HTTP_LINE_ENDING}${HeaderConstants.CONTENT_TRANSFER_ENCODING}: binary`;
- // multipart/mixed; boundary=batch_{batchid}
- this.multipartContentType = `multipart/mixed; boundary=${this.boundary}`;
- // --batch_{batchid}--
- this.batchRequestEnding = `--${this.boundary}--`;
- this.subRequests = new Map();
- }
- /**
- * Create pipeline to assemble sub requests. The idea here is to use existing
- * credential and serialization/deserialization components, with additional policies to
- * filter unnecessary headers, assemble sub requests into request's body
- * and intercept request from going to wire.
- * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.
- */
- createPipeline(credential) {
- const isAnonymousCreds = credential instanceof AnonymousCredential;
- const policyFactoryLength = 3 + (isAnonymousCreds ? 0 : 1); // [deserializationPolicy, BatchHeaderFilterPolicyFactory, (Optional)Credential, BatchRequestAssemblePolicyFactory]
- const factories = new Array(policyFactoryLength);
- factories[0] = coreHttp.deserializationPolicy(); // Default deserializationPolicy is provided by protocol layer
- factories[1] = new BatchHeaderFilterPolicyFactory(); // Use batch header filter policy to exclude unnecessary headers
- if (!isAnonymousCreds) {
- factories[2] = coreHttp.isTokenCredential(credential)
- ? attachCredential(coreHttp.bearerTokenAuthenticationPolicy(credential, StorageOAuthScopes), credential)
- : credential;
- }
- factories[policyFactoryLength - 1] = new BatchRequestAssemblePolicyFactory(this); // Use batch assemble policy to assemble request and intercept request from going to wire
- return new Pipeline(factories, {});
- }
- appendSubRequestToBody(request) {
- // Start to assemble sub request
- this.body += [
- this.subRequestPrefix,
- `${HeaderConstants.CONTENT_ID}: ${this.operationCount}`,
- "",
- `${request.method.toString()} ${getURLPathAndQuery(request.url)} ${HTTP_VERSION_1_1}${HTTP_LINE_ENDING}`, // sub request start line with method
- ].join(HTTP_LINE_ENDING);
- for (const header of request.headers.headersArray()) {
- this.body += `${header.name}: ${header.value}${HTTP_LINE_ENDING}`;
- }
- this.body += HTTP_LINE_ENDING; // sub request's headers need be ending with an empty line
- // No body to assemble for current batch request support
- // End to assemble sub request
- }
- preAddSubRequest(subRequest) {
- if (this.operationCount >= BATCH_MAX_REQUEST) {
- throw new RangeError(`Cannot exceed ${BATCH_MAX_REQUEST} sub requests in a single batch`);
- }
- // Fast fail if url for sub request is invalid
- const path = getURLPath(subRequest.url);
- if (!path || path === "") {
- throw new RangeError(`Invalid url for sub request: '${subRequest.url}'`);
- }
- }
- postAddSubRequest(subRequest) {
- this.subRequests.set(this.operationCount, subRequest);
- this.operationCount++;
- }
- // Return the http request body with assembling the ending line to the sub request body.
- getHttpRequestBody() {
- return `${this.body}${this.batchRequestEnding}${HTTP_LINE_ENDING}`;
- }
- getMultipartContentType() {
- return this.multipartContentType;
- }
- getSubRequests() {
- return this.subRequests;
- }
-}
-class BatchRequestAssemblePolicy extends coreHttp.BaseRequestPolicy {
- constructor(batchRequest, nextPolicy, options) {
- super(nextPolicy, options);
- this.dummyResponse = {
- request: new coreHttp.WebResource(),
- status: 200,
- headers: new coreHttp.HttpHeaders(),
- };
- this.batchRequest = batchRequest;
- }
- async sendRequest(request) {
- await this.batchRequest.appendSubRequestToBody(request);
- return this.dummyResponse; // Intercept request from going to wire
- }
-}
-class BatchRequestAssemblePolicyFactory {
- constructor(batchRequest) {
- this.batchRequest = batchRequest;
- }
- create(nextPolicy, options) {
- return new BatchRequestAssemblePolicy(this.batchRequest, nextPolicy, options);
- }
-}
-class BatchHeaderFilterPolicy extends coreHttp.BaseRequestPolicy {
- // The base class has a protected constructor. Adding a public one to enable constructing of this class.
- /* eslint-disable-next-line @typescript-eslint/no-useless-constructor*/
- constructor(nextPolicy, options) {
- super(nextPolicy, options);
- }
- async sendRequest(request) {
- let xMsHeaderName = "";
- for (const header of request.headers.headersArray()) {
- if (iEqual(header.name, HeaderConstants.X_MS_VERSION)) {
- xMsHeaderName = header.name;
- }
- }
- if (xMsHeaderName !== "") {
- request.headers.remove(xMsHeaderName); // The subrequests should not have the x-ms-version header.
- }
- return this._nextPolicy.sendRequest(request);
- }
-}
-class BatchHeaderFilterPolicyFactory {
- create(nextPolicy, options) {
- return new BatchHeaderFilterPolicy(nextPolicy, options);
- }
-}
-
-// Copyright (c) Microsoft Corporation.
-/**
- * A BlobBatchClient allows you to make batched requests to the Azure Storage Blob service.
- *
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch
- */
-class BlobBatchClient {
- constructor(url, credentialOrPipeline,
- // Legacy, no fix for eslint error without breaking. Disable it for this interface.
- /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/
- options) {
- let pipeline;
- if (isPipelineLike(credentialOrPipeline)) {
- pipeline = credentialOrPipeline;
- }
- else if (!credentialOrPipeline) {
- // no credential provided
- pipeline = newPipeline(new AnonymousCredential(), options);
- }
- else {
- pipeline = newPipeline(credentialOrPipeline, options);
- }
- const storageClientContext = new StorageClientContext(url, pipeline.toServiceClientOptions());
- const path = getURLPath(url);
- if (path && path !== "/") {
- // Container scoped.
- this.serviceOrContainerContext = new Container(storageClientContext);
- }
- else {
- this.serviceOrContainerContext = new Service(storageClientContext);
- }
- }
- /**
- * Creates a {@link BlobBatch}.
- * A BlobBatch represents an aggregated set of operations on blobs.
- */
- createBatch() {
- return new BlobBatch();
- }
- async deleteBlobs(urlsOrBlobClients, credentialOrOptions,
- // Legacy, no fix for eslint error without breaking. Disable it for this interface.
- /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/
- options) {
- const batch = new BlobBatch();
- for (const urlOrBlobClient of urlsOrBlobClients) {
- if (typeof urlOrBlobClient === "string") {
- await batch.deleteBlob(urlOrBlobClient, credentialOrOptions, options);
- }
- else {
- await batch.deleteBlob(urlOrBlobClient, credentialOrOptions);
- }
- }
- return this.submitBatch(batch);
- }
- async setBlobsAccessTier(urlsOrBlobClients, credentialOrTier, tierOrOptions,
- // Legacy, no fix for eslint error without breaking. Disable it for this interface.
- /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/
- options) {
- const batch = new BlobBatch();
- for (const urlOrBlobClient of urlsOrBlobClients) {
- if (typeof urlOrBlobClient === "string") {
- await batch.setBlobAccessTier(urlOrBlobClient, credentialOrTier, tierOrOptions, options);
- }
- else {
- await batch.setBlobAccessTier(urlOrBlobClient, credentialOrTier, tierOrOptions);
- }
- }
- return this.submitBatch(batch);
- }
- /**
- * Submit batch request which consists of multiple subrequests.
- *
- * Get `blobBatchClient` and other details before running the snippets.
- * `blobServiceClient.getBlobBatchClient()` gives the `blobBatchClient`
- *
- * Example usage:
- *
- * ```js
- * let batchRequest = new BlobBatch();
- * await batchRequest.deleteBlob(urlInString0, credential0);
- * await batchRequest.deleteBlob(urlInString1, credential1, {
- * deleteSnapshots: "include"
- * });
- * const batchResp = await blobBatchClient.submitBatch(batchRequest);
- * console.log(batchResp.subResponsesSucceededCount);
- * ```
- *
- * Example using a lease:
- *
- * ```js
- * let batchRequest = new BlobBatch();
- * await batchRequest.setBlobAccessTier(blockBlobClient0, "Cool");
- * await batchRequest.setBlobAccessTier(blockBlobClient1, "Cool", {
- * conditions: { leaseId: leaseId }
- * });
- * const batchResp = await blobBatchClient.submitBatch(batchRequest);
- * console.log(batchResp.subResponsesSucceededCount);
- * ```
- *
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch
- *
- * @param batchRequest - A set of Delete or SetTier operations.
- * @param options -
- */
- async submitBatch(batchRequest, options = {}) {
- if (!batchRequest || batchRequest.getSubRequests().size === 0) {
- throw new RangeError("Batch request should contain one or more sub requests.");
- }
- const { span, updatedOptions } = createSpan("BlobBatchClient-submitBatch", options);
- try {
- const batchRequestBody = batchRequest.getHttpRequestBody();
- // ServiceSubmitBatchResponseModel and ContainerSubmitBatchResponse are compatible for now.
- const rawBatchResponse = await this.serviceOrContainerContext.submitBatch(utf8ByteLength(batchRequestBody), batchRequest.getMultiPartContentType(), batchRequestBody, Object.assign(Object.assign({}, options), convertTracingToRequestOptionsBase(updatedOptions)));
- // Parse the sub responses result, if logic reaches here(i.e. the batch request succeeded with status code 202).
- const batchResponseParser = new BatchResponseParser(rawBatchResponse, batchRequest.getSubRequests());
- const responseSummary = await batchResponseParser.parseBatchResponse();
- const res = {
- _response: rawBatchResponse._response,
- contentType: rawBatchResponse.contentType,
- errorCode: rawBatchResponse.errorCode,
- requestId: rawBatchResponse.requestId,
- clientRequestId: rawBatchResponse.clientRequestId,
- version: rawBatchResponse.version,
- subResponses: responseSummary.subResponses,
- subResponsesSucceededCount: responseSummary.subResponsesSucceededCount,
- subResponsesFailedCount: responseSummary.subResponsesFailedCount,
- };
- return res;
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
-}
-
-/**
- * A ContainerClient represents a URL to the Azure Storage container allowing you to manipulate its blobs.
- */
-class ContainerClient extends StorageClient {
- constructor(urlOrConnectionString, credentialOrPipelineOrContainerName,
- // Legacy, no fix for eslint error without breaking. Disable it for this interface.
- /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/
- options) {
- let pipeline;
- let url;
- options = options || {};
- if (isPipelineLike(credentialOrPipelineOrContainerName)) {
- // (url: string, pipeline: Pipeline)
- url = urlOrConnectionString;
- pipeline = credentialOrPipelineOrContainerName;
- }
- else if ((coreHttp.isNode && credentialOrPipelineOrContainerName instanceof StorageSharedKeyCredential) ||
- credentialOrPipelineOrContainerName instanceof AnonymousCredential ||
- coreHttp.isTokenCredential(credentialOrPipelineOrContainerName)) {
- // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)
- url = urlOrConnectionString;
- pipeline = newPipeline(credentialOrPipelineOrContainerName, options);
- }
- else if (!credentialOrPipelineOrContainerName &&
- typeof credentialOrPipelineOrContainerName !== "string") {
- // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)
- // The second parameter is undefined. Use anonymous credential.
- url = urlOrConnectionString;
- pipeline = newPipeline(new AnonymousCredential(), options);
- }
- else if (credentialOrPipelineOrContainerName &&
- typeof credentialOrPipelineOrContainerName === "string") {
- // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions)
- const containerName = credentialOrPipelineOrContainerName;
- const extractedCreds = extractConnectionStringParts(urlOrConnectionString);
- if (extractedCreds.kind === "AccountConnString") {
- if (coreHttp.isNode) {
- const sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey);
- url = appendToURLPath(extractedCreds.url, encodeURIComponent(containerName));
- if (!options.proxyOptions) {
- options.proxyOptions = coreHttp.getDefaultProxySettings(extractedCreds.proxyUri);
- }
- pipeline = newPipeline(sharedKeyCredential, options);
- }
- else {
- throw new Error("Account connection string is only supported in Node.js environment");
- }
- }
- else if (extractedCreds.kind === "SASConnString") {
- url =
- appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)) +
- "?" +
- extractedCreds.accountSas;
- pipeline = newPipeline(new AnonymousCredential(), options);
- }
- else {
- throw new Error("Connection string must be either an Account connection string or a SAS connection string");
- }
- }
- else {
- throw new Error("Expecting non-empty strings for containerName parameter");
- }
- super(url, pipeline);
- this._containerName = this.getContainerNameFromUrl();
- this.containerContext = new Container(this.storageClientContext);
- }
- /**
- * The name of the container.
- */
- get containerName() {
- return this._containerName;
- }
- /**
- * Creates a new container under the specified account. If the container with
- * the same name already exists, the operation fails.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/create-container
- * Naming rules: @see https://learn.microsoft.com/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata
- *
- * @param options - Options to Container Create operation.
- *
- *
- * Example usage:
- *
- * ```js
- * const containerClient = blobServiceClient.getContainerClient("");
- * const createContainerResponse = await containerClient.create();
- * console.log("Container was created successfully", createContainerResponse.requestId);
- * ```
- */
- async create(options = {}) {
- const { span, updatedOptions } = createSpan("ContainerClient-create", options);
- try {
- // Spread operator in destructuring assignments,
- // this will filter out unwanted properties from the response object into result object
- return await this.containerContext.create(Object.assign(Object.assign({}, options), convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Creates a new container under the specified account. If the container with
- * the same name already exists, it is not changed.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/create-container
- * Naming rules: @see https://learn.microsoft.com/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata
- *
- * @param options -
- */
- async createIfNotExists(options = {}) {
- var _a, _b;
- const { span, updatedOptions } = createSpan("ContainerClient-createIfNotExists", options);
- try {
- const res = await this.create(updatedOptions);
- return Object.assign(Object.assign({ succeeded: true }, res), { _response: res._response });
- }
- catch (e) {
- if (((_a = e.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "ContainerAlreadyExists") {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: "Expected exception when creating a container only if it does not already exist.",
- });
- return Object.assign(Object.assign({ succeeded: false }, (_b = e.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e.response });
- }
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Returns true if the Azure container resource represented by this client exists; false otherwise.
- *
- * NOTE: use this function with care since an existing container might be deleted by other clients or
- * applications. Vice versa new containers with the same name might be added by other clients or
- * applications after this function completes.
- *
- * @param options -
- */
- async exists(options = {}) {
- const { span, updatedOptions } = createSpan("ContainerClient-exists", options);
- try {
- await this.getProperties({
- abortSignal: options.abortSignal,
- tracingOptions: updatedOptions.tracingOptions,
- });
- return true;
- }
- catch (e) {
- if (e.statusCode === 404) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: "Expected exception when checking container existence",
- });
- return false;
- }
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Creates a {@link BlobClient}
- *
- * @param blobName - A blob name
- * @returns A new BlobClient object for the given blob name.
- */
- getBlobClient(blobName) {
- return new BlobClient(appendToURLPath(this.url, EscapePath(blobName)), this.pipeline);
- }
- /**
- * Creates an {@link AppendBlobClient}
- *
- * @param blobName - An append blob name
- */
- getAppendBlobClient(blobName) {
- return new AppendBlobClient(appendToURLPath(this.url, EscapePath(blobName)), this.pipeline);
- }
- /**
- * Creates a {@link BlockBlobClient}
- *
- * @param blobName - A block blob name
- *
- *
- * Example usage:
- *
- * ```js
- * const content = "Hello world!";
- *
- * const blockBlobClient = containerClient.getBlockBlobClient("");
- * const uploadBlobResponse = await blockBlobClient.upload(content, content.length);
- * ```
- */
- getBlockBlobClient(blobName) {
- return new BlockBlobClient(appendToURLPath(this.url, EscapePath(blobName)), this.pipeline);
- }
- /**
- * Creates a {@link PageBlobClient}
- *
- * @param blobName - A page blob name
- */
- getPageBlobClient(blobName) {
- return new PageBlobClient(appendToURLPath(this.url, EscapePath(blobName)), this.pipeline);
- }
- /**
- * Returns all user-defined metadata and system properties for the specified
- * container. The data returned does not include the container's list of blobs.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/get-container-properties
- *
- * WARNING: The `metadata` object returned in the response will have its keys in lowercase, even if
- * they originally contained uppercase characters. This differs from the metadata keys returned by
- * the `listContainers` method of {@link BlobServiceClient} using the `includeMetadata` option, which
- * will retain their original casing.
- *
- * @param options - Options to Container Get Properties operation.
- */
- async getProperties(options = {}) {
- if (!options.conditions) {
- options.conditions = {};
- }
- const { span, updatedOptions } = createSpan("ContainerClient-getProperties", options);
- try {
- return await this.containerContext.getProperties(Object.assign(Object.assign({ abortSignal: options.abortSignal }, options.conditions), convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Marks the specified container for deletion. The container and any blobs
- * contained within it are later deleted during garbage collection.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/delete-container
- *
- * @param options - Options to Container Delete operation.
- */
- async delete(options = {}) {
- if (!options.conditions) {
- options.conditions = {};
- }
- const { span, updatedOptions } = createSpan("ContainerClient-delete", options);
- try {
- return await this.containerContext.delete(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: options.conditions }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Marks the specified container for deletion if it exists. The container and any blobs
- * contained within it are later deleted during garbage collection.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/delete-container
- *
- * @param options - Options to Container Delete operation.
- */
- async deleteIfExists(options = {}) {
- var _a, _b;
- const { span, updatedOptions } = createSpan("ContainerClient-deleteIfExists", options);
- try {
- const res = await this.delete(updatedOptions);
- return Object.assign(Object.assign({ succeeded: true }, res), { _response: res._response });
- }
- catch (e) {
- if (((_a = e.details) === null || _a === void 0 ? void 0 : _a.errorCode) === "ContainerNotFound") {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: "Expected exception when deleting a container only if it exists.",
- });
- return Object.assign(Object.assign({ succeeded: false }, (_b = e.response) === null || _b === void 0 ? void 0 : _b.parsedHeaders), { _response: e.response });
- }
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Sets one or more user-defined name-value pairs for the specified container.
- *
- * If no option provided, or no metadata defined in the parameter, the container
- * metadata will be removed.
- *
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/set-container-metadata
- *
- * @param metadata - Replace existing metadata with this value.
- * If no value provided the existing metadata will be removed.
- * @param options - Options to Container Set Metadata operation.
- */
- async setMetadata(metadata, options = {}) {
- if (!options.conditions) {
- options.conditions = {};
- }
- if (options.conditions.ifUnmodifiedSince) {
- throw new RangeError("the IfUnmodifiedSince must have their default values because they are ignored by the blob service");
- }
- const { span, updatedOptions } = createSpan("ContainerClient-setMetadata", options);
- try {
- return await this.containerContext.setMetadata(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, metadata, modifiedAccessConditions: options.conditions }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Gets the permissions for the specified container. The permissions indicate
- * whether container data may be accessed publicly.
- *
- * WARNING: JavaScript Date will potentially lose precision when parsing startsOn and expiresOn strings.
- * For example, new Date("2018-12-31T03:44:23.8827891Z").toISOString() will get "2018-12-31T03:44:23.882Z".
- *
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/get-container-acl
- *
- * @param options - Options to Container Get Access Policy operation.
- */
- async getAccessPolicy(options = {}) {
- if (!options.conditions) {
- options.conditions = {};
- }
- const { span, updatedOptions } = createSpan("ContainerClient-getAccessPolicy", options);
- try {
- const response = await this.containerContext.getAccessPolicy(Object.assign({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions }, convertTracingToRequestOptionsBase(updatedOptions)));
- const res = {
- _response: response._response,
- blobPublicAccess: response.blobPublicAccess,
- date: response.date,
- etag: response.etag,
- errorCode: response.errorCode,
- lastModified: response.lastModified,
- requestId: response.requestId,
- clientRequestId: response.clientRequestId,
- signedIdentifiers: [],
- version: response.version,
- };
- for (const identifier of response) {
- let accessPolicy = undefined;
- if (identifier.accessPolicy) {
- accessPolicy = {
- permissions: identifier.accessPolicy.permissions,
- };
- if (identifier.accessPolicy.expiresOn) {
- accessPolicy.expiresOn = new Date(identifier.accessPolicy.expiresOn);
- }
- if (identifier.accessPolicy.startsOn) {
- accessPolicy.startsOn = new Date(identifier.accessPolicy.startsOn);
- }
- }
- res.signedIdentifiers.push({
- accessPolicy,
- id: identifier.id,
- });
- }
- return res;
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Sets the permissions for the specified container. The permissions indicate
- * whether blobs in a container may be accessed publicly.
- *
- * When you set permissions for a container, the existing permissions are replaced.
- * If no access or containerAcl provided, the existing container ACL will be
- * removed.
- *
- * When you establish a stored access policy on a container, it may take up to 30 seconds to take effect.
- * During this interval, a shared access signature that is associated with the stored access policy will
- * fail with status code 403 (Forbidden), until the access policy becomes active.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/set-container-acl
- *
- * @param access - The level of public access to data in the container.
- * @param containerAcl - Array of elements each having a unique Id and details of the access policy.
- * @param options - Options to Container Set Access Policy operation.
- */
- async setAccessPolicy(access, containerAcl, options = {}) {
- options.conditions = options.conditions || {};
- const { span, updatedOptions } = createSpan("ContainerClient-setAccessPolicy", options);
- try {
- const acl = [];
- for (const identifier of containerAcl || []) {
- acl.push({
- accessPolicy: {
- expiresOn: identifier.accessPolicy.expiresOn
- ? truncatedISO8061Date(identifier.accessPolicy.expiresOn)
- : "",
- permissions: identifier.accessPolicy.permissions,
- startsOn: identifier.accessPolicy.startsOn
- ? truncatedISO8061Date(identifier.accessPolicy.startsOn)
- : "",
- },
- id: identifier.id,
- });
- }
- return await this.containerContext.setAccessPolicy(Object.assign({ abortSignal: options.abortSignal, access, containerAcl: acl, leaseAccessConditions: options.conditions, modifiedAccessConditions: options.conditions }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Get a {@link BlobLeaseClient} that manages leases on the container.
- *
- * @param proposeLeaseId - Initial proposed lease Id.
- * @returns A new BlobLeaseClient object for managing leases on the container.
- */
- getBlobLeaseClient(proposeLeaseId) {
- return new BlobLeaseClient(this, proposeLeaseId);
- }
- /**
- * Creates a new block blob, or updates the content of an existing block blob.
- *
- * Updating an existing block blob overwrites any existing metadata on the blob.
- * Partial updates are not supported; the content of the existing blob is
- * overwritten with the new content. To perform a partial update of a block blob's,
- * use {@link BlockBlobClient.stageBlock} and {@link BlockBlobClient.commitBlockList}.
- *
- * This is a non-parallel uploading method, please use {@link BlockBlobClient.uploadFile},
- * {@link BlockBlobClient.uploadStream} or {@link BlockBlobClient.uploadBrowserData} for better
- * performance with concurrency uploading.
- *
- * @see https://docs.microsoft.com/rest/api/storageservices/put-blob
- *
- * @param blobName - Name of the block blob to create or update.
- * @param body - Blob, string, ArrayBuffer, ArrayBufferView or a function
- * which returns a new Readable stream whose offset is from data source beginning.
- * @param contentLength - Length of body in bytes. Use Buffer.byteLength() to calculate body length for a
- * string including non non-Base64/Hex-encoded characters.
- * @param options - Options to configure the Block Blob Upload operation.
- * @returns Block Blob upload response data and the corresponding BlockBlobClient instance.
- */
- async uploadBlockBlob(blobName, body, contentLength, options = {}) {
- const { span, updatedOptions } = createSpan("ContainerClient-uploadBlockBlob", options);
- try {
- const blockBlobClient = this.getBlockBlobClient(blobName);
- const response = await blockBlobClient.upload(body, contentLength, updatedOptions);
- return {
- blockBlobClient,
- response,
- };
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Marks the specified blob or snapshot for deletion. The blob is later deleted
- * during garbage collection. Note that in order to delete a blob, you must delete
- * all of its snapshots. You can delete both at the same time with the Delete
- * Blob operation.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/delete-blob
- *
- * @param blobName -
- * @param options - Options to Blob Delete operation.
- * @returns Block blob deletion response data.
- */
- async deleteBlob(blobName, options = {}) {
- const { span, updatedOptions } = createSpan("ContainerClient-deleteBlob", options);
- try {
- let blobClient = this.getBlobClient(blobName);
- if (options.versionId) {
- blobClient = blobClient.withVersion(options.versionId);
- }
- return await blobClient.delete(updatedOptions);
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * listBlobFlatSegment returns a single segment of blobs starting from the
- * specified Marker. Use an empty Marker to start enumeration from the beginning.
- * After getting a segment, process it, and then call listBlobsFlatSegment again
- * (passing the the previously-returned Marker) to get the next segment.
- * @see https://docs.microsoft.com/rest/api/storageservices/list-blobs
- *
- * @param marker - A string value that identifies the portion of the list to be returned with the next list operation.
- * @param options - Options to Container List Blob Flat Segment operation.
- */
- async listBlobFlatSegment(marker, options = {}) {
- const { span, updatedOptions } = createSpan("ContainerClient-listBlobFlatSegment", options);
- try {
- const response = await this.containerContext.listBlobFlatSegment(Object.assign(Object.assign({ marker }, options), convertTracingToRequestOptionsBase(updatedOptions)));
- const wrappedResponse = Object.assign(Object.assign({}, response), { _response: Object.assign(Object.assign({}, response._response), { parsedBody: ConvertInternalResponseOfListBlobFlat(response._response.parsedBody) }), segment: Object.assign(Object.assign({}, response.segment), { blobItems: response.segment.blobItems.map((blobItemInteral) => {
- const blobItem = Object.assign(Object.assign({}, blobItemInteral), { name: BlobNameToString(blobItemInteral.name), tags: toTags(blobItemInteral.blobTags), objectReplicationSourceProperties: parseObjectReplicationRecord(blobItemInteral.objectReplicationMetadata) });
- return blobItem;
- }) }) });
- return wrappedResponse;
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * listBlobHierarchySegment returns a single segment of blobs starting from
- * the specified Marker. Use an empty Marker to start enumeration from the
- * beginning. After getting a segment, process it, and then call listBlobsHierarchicalSegment
- * again (passing the the previously-returned Marker) to get the next segment.
- * @see https://docs.microsoft.com/rest/api/storageservices/list-blobs
- *
- * @param delimiter - The character or string used to define the virtual hierarchy
- * @param marker - A string value that identifies the portion of the list to be returned with the next list operation.
- * @param options - Options to Container List Blob Hierarchy Segment operation.
- */
- async listBlobHierarchySegment(delimiter, marker, options = {}) {
- var _a;
- const { span, updatedOptions } = createSpan("ContainerClient-listBlobHierarchySegment", options);
- try {
- const response = await this.containerContext.listBlobHierarchySegment(delimiter, Object.assign(Object.assign({ marker }, options), convertTracingToRequestOptionsBase(updatedOptions)));
- const wrappedResponse = Object.assign(Object.assign({}, response), { _response: Object.assign(Object.assign({}, response._response), { parsedBody: ConvertInternalResponseOfListBlobHierarchy(response._response.parsedBody) }), segment: Object.assign(Object.assign({}, response.segment), { blobItems: response.segment.blobItems.map((blobItemInteral) => {
- const blobItem = Object.assign(Object.assign({}, blobItemInteral), { name: BlobNameToString(blobItemInteral.name), tags: toTags(blobItemInteral.blobTags), objectReplicationSourceProperties: parseObjectReplicationRecord(blobItemInteral.objectReplicationMetadata) });
- return blobItem;
- }), blobPrefixes: (_a = response.segment.blobPrefixes) === null || _a === void 0 ? void 0 : _a.map((blobPrefixInternal) => {
- const blobPrefix = {
- name: BlobNameToString(blobPrefixInternal.name),
- };
- return blobPrefix;
- }) }) });
- return wrappedResponse;
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Returns an AsyncIterableIterator for ContainerListBlobFlatSegmentResponse
- *
- * @param marker - A string value that identifies the portion of
- * the list of blobs to be returned with the next listing operation. The
- * operation returns the ContinuationToken value within the response body if the
- * listing operation did not return all blobs remaining to be listed
- * 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
- * items. The marker value is opaque to the client.
- * @param options - Options to list blobs operation.
- */
- listSegments(marker, options = {}) {
- return tslib.__asyncGenerator(this, arguments, function* listSegments_1() {
- let listBlobsFlatSegmentResponse;
- if (!!marker || marker === undefined) {
- do {
- listBlobsFlatSegmentResponse = yield tslib.__await(this.listBlobFlatSegment(marker, options));
- marker = listBlobsFlatSegmentResponse.continuationToken;
- yield yield tslib.__await(yield tslib.__await(listBlobsFlatSegmentResponse));
- } while (marker);
- }
- });
- }
- /**
- * Returns an AsyncIterableIterator of {@link BlobItem} objects
- *
- * @param options - Options to list blobs operation.
- */
- listItems(options = {}) {
- return tslib.__asyncGenerator(this, arguments, function* listItems_1() {
- var e_1, _a;
- let marker;
- try {
- for (var _b = tslib.__asyncValues(this.listSegments(marker, options)), _c; _c = yield tslib.__await(_b.next()), !_c.done;) {
- const listBlobsFlatSegmentResponse = _c.value;
- yield tslib.__await(yield* tslib.__asyncDelegator(tslib.__asyncValues(listBlobsFlatSegmentResponse.segment.blobItems)));
- }
- }
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
- finally {
- try {
- if (_c && !_c.done && (_a = _b.return)) yield tslib.__await(_a.call(_b));
- }
- finally { if (e_1) throw e_1.error; }
- }
- });
- }
- /**
- * Returns an async iterable iterator to list all the blobs
- * under the specified account.
- *
- * .byPage() returns an async iterable iterator to list the blobs in pages.
- *
- * Example using `for await` syntax:
- *
- * ```js
- * // Get the containerClient before you run these snippets,
- * // Can be obtained from `blobServiceClient.getContainerClient("");`
- * let i = 1;
- * for await (const blob of containerClient.listBlobsFlat()) {
- * console.log(`Blob ${i++}: ${blob.name}`);
- * }
- * ```
- *
- * Example using `iter.next()`:
- *
- * ```js
- * let i = 1;
- * let iter = containerClient.listBlobsFlat();
- * let blobItem = await iter.next();
- * while (!blobItem.done) {
- * console.log(`Blob ${i++}: ${blobItem.value.name}`);
- * blobItem = await iter.next();
- * }
- * ```
- *
- * Example using `byPage()`:
- *
- * ```js
- * // passing optional maxPageSize in the page settings
- * let i = 1;
- * for await (const response of containerClient.listBlobsFlat().byPage({ maxPageSize: 20 })) {
- * for (const blob of response.segment.blobItems) {
- * console.log(`Blob ${i++}: ${blob.name}`);
- * }
- * }
- * ```
- *
- * Example using paging with a marker:
- *
- * ```js
- * let i = 1;
- * let iterator = containerClient.listBlobsFlat().byPage({ maxPageSize: 2 });
- * let response = (await iterator.next()).value;
- *
- * // Prints 2 blob names
- * for (const blob of response.segment.blobItems) {
- * console.log(`Blob ${i++}: ${blob.name}`);
- * }
- *
- * // Gets next marker
- * let marker = response.continuationToken;
- *
- * // Passing next marker as continuationToken
- *
- * iterator = containerClient.listBlobsFlat().byPage({ continuationToken: marker, maxPageSize: 10 });
- * response = (await iterator.next()).value;
- *
- * // Prints 10 blob names
- * for (const blob of response.segment.blobItems) {
- * console.log(`Blob ${i++}: ${blob.name}`);
- * }
- * ```
- *
- * @param options - Options to list blobs.
- * @returns An asyncIterableIterator that supports paging.
- */
- listBlobsFlat(options = {}) {
- const include = [];
- if (options.includeCopy) {
- include.push("copy");
- }
- if (options.includeDeleted) {
- include.push("deleted");
- }
- if (options.includeMetadata) {
- include.push("metadata");
- }
- if (options.includeSnapshots) {
- include.push("snapshots");
- }
- if (options.includeVersions) {
- include.push("versions");
- }
- if (options.includeUncommitedBlobs) {
- include.push("uncommittedblobs");
- }
- if (options.includeTags) {
- include.push("tags");
- }
- if (options.includeDeletedWithVersions) {
- include.push("deletedwithversions");
- }
- if (options.includeImmutabilityPolicy) {
- include.push("immutabilitypolicy");
- }
- if (options.includeLegalHold) {
- include.push("legalhold");
- }
- if (options.prefix === "") {
- options.prefix = undefined;
- }
- const updatedOptions = Object.assign(Object.assign({}, options), (include.length > 0 ? { include: include } : {}));
- // AsyncIterableIterator to iterate over blobs
- const iter = this.listItems(updatedOptions);
- return {
- /**
- * The next method, part of the iteration protocol
- */
- next() {
- return iter.next();
- },
- /**
- * The connection to the async iterator, part of the iteration protocol
- */
- [Symbol.asyncIterator]() {
- return this;
- },
- /**
- * Return an AsyncIterableIterator that works a page at a time
- */
- byPage: (settings = {}) => {
- return this.listSegments(settings.continuationToken, Object.assign({ maxPageSize: settings.maxPageSize }, updatedOptions));
- },
- };
- }
- /**
- * Returns an AsyncIterableIterator for ContainerListBlobHierarchySegmentResponse
- *
- * @param delimiter - The character or string used to define the virtual hierarchy
- * @param marker - A string value that identifies the portion of
- * the list of blobs to be returned with the next listing operation. The
- * operation returns the ContinuationToken value within the response body if the
- * listing operation did not return all blobs remaining to be listed
- * 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
- * items. The marker value is opaque to the client.
- * @param options - Options to list blobs operation.
- */
- listHierarchySegments(delimiter, marker, options = {}) {
- return tslib.__asyncGenerator(this, arguments, function* listHierarchySegments_1() {
- let listBlobsHierarchySegmentResponse;
- if (!!marker || marker === undefined) {
- do {
- listBlobsHierarchySegmentResponse = yield tslib.__await(this.listBlobHierarchySegment(delimiter, marker, options));
- marker = listBlobsHierarchySegmentResponse.continuationToken;
- yield yield tslib.__await(yield tslib.__await(listBlobsHierarchySegmentResponse));
- } while (marker);
- }
- });
- }
- /**
- * Returns an AsyncIterableIterator for {@link BlobPrefix} and {@link BlobItem} objects.
- *
- * @param delimiter - The character or string used to define the virtual hierarchy
- * @param options - Options to list blobs operation.
- */
- listItemsByHierarchy(delimiter, options = {}) {
- return tslib.__asyncGenerator(this, arguments, function* listItemsByHierarchy_1() {
- var e_2, _a;
- let marker;
- try {
- for (var _b = tslib.__asyncValues(this.listHierarchySegments(delimiter, marker, options)), _c; _c = yield tslib.__await(_b.next()), !_c.done;) {
- const listBlobsHierarchySegmentResponse = _c.value;
- const segment = listBlobsHierarchySegmentResponse.segment;
- if (segment.blobPrefixes) {
- for (const prefix of segment.blobPrefixes) {
- yield yield tslib.__await(Object.assign({ kind: "prefix" }, prefix));
- }
- }
- for (const blob of segment.blobItems) {
- yield yield tslib.__await(Object.assign({ kind: "blob" }, blob));
- }
- }
- }
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
- finally {
- try {
- if (_c && !_c.done && (_a = _b.return)) yield tslib.__await(_a.call(_b));
- }
- finally { if (e_2) throw e_2.error; }
- }
- });
- }
- /**
- * Returns an async iterable iterator to list all the blobs by hierarchy.
- * under the specified account.
- *
- * .byPage() returns an async iterable iterator to list the blobs by hierarchy in pages.
- *
- * Example using `for await` syntax:
- *
- * ```js
- * for await (const item of containerClient.listBlobsByHierarchy("/")) {
- * if (item.kind === "prefix") {
- * console.log(`\tBlobPrefix: ${item.name}`);
- * } else {
- * console.log(`\tBlobItem: name - ${item.name}`);
- * }
- * }
- * ```
- *
- * Example using `iter.next()`:
- *
- * ```js
- * let iter = containerClient.listBlobsByHierarchy("/", { prefix: "prefix1/" });
- * let entity = await iter.next();
- * while (!entity.done) {
- * let item = entity.value;
- * if (item.kind === "prefix") {
- * console.log(`\tBlobPrefix: ${item.name}`);
- * } else {
- * console.log(`\tBlobItem: name - ${item.name}`);
- * }
- * entity = await iter.next();
- * }
- * ```
- *
- * Example using `byPage()`:
- *
- * ```js
- * console.log("Listing blobs by hierarchy by page");
- * for await (const response of containerClient.listBlobsByHierarchy("/").byPage()) {
- * const segment = response.segment;
- * if (segment.blobPrefixes) {
- * for (const prefix of segment.blobPrefixes) {
- * console.log(`\tBlobPrefix: ${prefix.name}`);
- * }
- * }
- * for (const blob of response.segment.blobItems) {
- * console.log(`\tBlobItem: name - ${blob.name}`);
- * }
- * }
- * ```
- *
- * Example using paging with a max page size:
- *
- * ```js
- * console.log("Listing blobs by hierarchy by page, specifying a prefix and a max page size");
- *
- * let i = 1;
- * for await (const response of containerClient
- * .listBlobsByHierarchy("/", { prefix: "prefix2/sub1/" })
- * .byPage({ maxPageSize: 2 })) {
- * console.log(`Page ${i++}`);
- * const segment = response.segment;
- *
- * if (segment.blobPrefixes) {
- * for (const prefix of segment.blobPrefixes) {
- * console.log(`\tBlobPrefix: ${prefix.name}`);
- * }
- * }
- *
- * for (const blob of response.segment.blobItems) {
- * console.log(`\tBlobItem: name - ${blob.name}`);
- * }
- * }
- * ```
- *
- * @param delimiter - The character or string used to define the virtual hierarchy
- * @param options - Options to list blobs operation.
- */
- listBlobsByHierarchy(delimiter, options = {}) {
- if (delimiter === "") {
- throw new RangeError("delimiter should contain one or more characters");
- }
- const include = [];
- if (options.includeCopy) {
- include.push("copy");
- }
- if (options.includeDeleted) {
- include.push("deleted");
- }
- if (options.includeMetadata) {
- include.push("metadata");
- }
- if (options.includeSnapshots) {
- include.push("snapshots");
- }
- if (options.includeVersions) {
- include.push("versions");
- }
- if (options.includeUncommitedBlobs) {
- include.push("uncommittedblobs");
- }
- if (options.includeTags) {
- include.push("tags");
- }
- if (options.includeDeletedWithVersions) {
- include.push("deletedwithversions");
- }
- if (options.includeImmutabilityPolicy) {
- include.push("immutabilitypolicy");
- }
- if (options.includeLegalHold) {
- include.push("legalhold");
- }
- if (options.prefix === "") {
- options.prefix = undefined;
- }
- const updatedOptions = Object.assign(Object.assign({}, options), (include.length > 0 ? { include: include } : {}));
- // AsyncIterableIterator to iterate over blob prefixes and blobs
- const iter = this.listItemsByHierarchy(delimiter, updatedOptions);
- return {
- /**
- * The next method, part of the iteration protocol
- */
- async next() {
- return iter.next();
- },
- /**
- * The connection to the async iterator, part of the iteration protocol
- */
- [Symbol.asyncIterator]() {
- return this;
- },
- /**
- * Return an AsyncIterableIterator that works a page at a time
- */
- byPage: (settings = {}) => {
- return this.listHierarchySegments(delimiter, settings.continuationToken, Object.assign({ maxPageSize: settings.maxPageSize }, updatedOptions));
- },
- };
- }
- /**
- * The Filter Blobs operation enables callers to list blobs in the container whose tags
- * match a given search expression.
- *
- * @param tagFilterSqlExpression - The where parameter enables the caller to query blobs whose tags match a given expression.
- * The given expression must evaluate to true for a blob to be returned in the results.
- * The[OData - ABNF] filter syntax rule defines the formal grammar for the value of the where query parameter;
- * however, only a subset of the OData filter syntax is supported in the Blob service.
- * @param marker - A string value that identifies the portion of
- * the list of blobs to be returned with the next listing operation. The
- * operation returns the continuationToken value within the response body if the
- * listing operation did not return all blobs remaining to be listed
- * 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
- * items. The marker value is opaque to the client.
- * @param options - Options to find blobs by tags.
- */
- async findBlobsByTagsSegment(tagFilterSqlExpression, marker, options = {}) {
- const { span, updatedOptions } = createSpan("ContainerClient-findBlobsByTagsSegment", options);
- try {
- const response = await this.containerContext.filterBlobs(Object.assign({ abortSignal: options.abortSignal, where: tagFilterSqlExpression, marker, maxPageSize: options.maxPageSize }, convertTracingToRequestOptionsBase(updatedOptions)));
- const wrappedResponse = Object.assign(Object.assign({}, response), { _response: response._response, blobs: response.blobs.map((blob) => {
- var _a;
- let tagValue = "";
- if (((_a = blob.tags) === null || _a === void 0 ? void 0 : _a.blobTagSet.length) === 1) {
- tagValue = blob.tags.blobTagSet[0].value;
- }
- return Object.assign(Object.assign({}, blob), { tags: toTags(blob.tags), tagValue });
- }) });
- return wrappedResponse;
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Returns an AsyncIterableIterator for ContainerFindBlobsByTagsSegmentResponse.
- *
- * @param tagFilterSqlExpression - The where parameter enables the caller to query blobs whose tags match a given expression.
- * The given expression must evaluate to true for a blob to be returned in the results.
- * The[OData - ABNF] filter syntax rule defines the formal grammar for the value of the where query parameter;
- * however, only a subset of the OData filter syntax is supported in the Blob service.
- * @param marker - A string value that identifies the portion of
- * the list of blobs to be returned with the next listing operation. The
- * operation returns the continuationToken value within the response body if the
- * listing operation did not return all blobs remaining to be listed
- * 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
- * items. The marker value is opaque to the client.
- * @param options - Options to find blobs by tags.
- */
- findBlobsByTagsSegments(tagFilterSqlExpression, marker, options = {}) {
- return tslib.__asyncGenerator(this, arguments, function* findBlobsByTagsSegments_1() {
- let response;
- if (!!marker || marker === undefined) {
- do {
- response = yield tslib.__await(this.findBlobsByTagsSegment(tagFilterSqlExpression, marker, options));
- response.blobs = response.blobs || [];
- marker = response.continuationToken;
- yield yield tslib.__await(response);
- } while (marker);
- }
- });
- }
- /**
- * Returns an AsyncIterableIterator for blobs.
- *
- * @param tagFilterSqlExpression - The where parameter enables the caller to query blobs whose tags match a given expression.
- * The given expression must evaluate to true for a blob to be returned in the results.
- * The[OData - ABNF] filter syntax rule defines the formal grammar for the value of the where query parameter;
- * however, only a subset of the OData filter syntax is supported in the Blob service.
- * @param options - Options to findBlobsByTagsItems.
- */
- findBlobsByTagsItems(tagFilterSqlExpression, options = {}) {
- return tslib.__asyncGenerator(this, arguments, function* findBlobsByTagsItems_1() {
- var e_3, _a;
- let marker;
- try {
- for (var _b = tslib.__asyncValues(this.findBlobsByTagsSegments(tagFilterSqlExpression, marker, options)), _c; _c = yield tslib.__await(_b.next()), !_c.done;) {
- const segment = _c.value;
- yield tslib.__await(yield* tslib.__asyncDelegator(tslib.__asyncValues(segment.blobs)));
- }
- }
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
- finally {
- try {
- if (_c && !_c.done && (_a = _b.return)) yield tslib.__await(_a.call(_b));
- }
- finally { if (e_3) throw e_3.error; }
- }
- });
- }
- /**
- * Returns an async iterable iterator to find all blobs with specified tag
- * under the specified container.
- *
- * .byPage() returns an async iterable iterator to list the blobs in pages.
- *
- * Example using `for await` syntax:
- *
- * ```js
- * let i = 1;
- * for await (const blob of containerClient.findBlobsByTags("tagkey='tagvalue'")) {
- * console.log(`Blob ${i++}: ${blob.name}`);
- * }
- * ```
- *
- * Example using `iter.next()`:
- *
- * ```js
- * let i = 1;
- * const iter = containerClient.findBlobsByTags("tagkey='tagvalue'");
- * let blobItem = await iter.next();
- * while (!blobItem.done) {
- * console.log(`Blob ${i++}: ${blobItem.value.name}`);
- * blobItem = await iter.next();
- * }
- * ```
- *
- * Example using `byPage()`:
- *
- * ```js
- * // passing optional maxPageSize in the page settings
- * let i = 1;
- * for await (const response of containerClient.findBlobsByTags("tagkey='tagvalue'").byPage({ maxPageSize: 20 })) {
- * if (response.blobs) {
- * for (const blob of response.blobs) {
- * console.log(`Blob ${i++}: ${blob.name}`);
- * }
- * }
- * }
- * ```
- *
- * Example using paging with a marker:
- *
- * ```js
- * let i = 1;
- * let iterator = containerClient.findBlobsByTags("tagkey='tagvalue'").byPage({ maxPageSize: 2 });
- * let response = (await iterator.next()).value;
- *
- * // Prints 2 blob names
- * if (response.blobs) {
- * for (const blob of response.blobs) {
- * console.log(`Blob ${i++}: ${blob.name}`);
- * }
- * }
- *
- * // Gets next marker
- * let marker = response.continuationToken;
- * // Passing next marker as continuationToken
- * iterator = containerClient
- * .findBlobsByTags("tagkey='tagvalue'")
- * .byPage({ continuationToken: marker, maxPageSize: 10 });
- * response = (await iterator.next()).value;
- *
- * // Prints blob names
- * if (response.blobs) {
- * for (const blob of response.blobs) {
- * console.log(`Blob ${i++}: ${blob.name}`);
- * }
- * }
- * ```
- *
- * @param tagFilterSqlExpression - The where parameter enables the caller to query blobs whose tags match a given expression.
- * The given expression must evaluate to true for a blob to be returned in the results.
- * The[OData - ABNF] filter syntax rule defines the formal grammar for the value of the where query parameter;
- * however, only a subset of the OData filter syntax is supported in the Blob service.
- * @param options - Options to find blobs by tags.
- */
- findBlobsByTags(tagFilterSqlExpression, options = {}) {
- // AsyncIterableIterator to iterate over blobs
- const listSegmentOptions = Object.assign({}, options);
- const iter = this.findBlobsByTagsItems(tagFilterSqlExpression, listSegmentOptions);
- return {
- /**
- * The next method, part of the iteration protocol
- */
- next() {
- return iter.next();
- },
- /**
- * The connection to the async iterator, part of the iteration protocol
- */
- [Symbol.asyncIterator]() {
- return this;
- },
- /**
- * Return an AsyncIterableIterator that works a page at a time
- */
- byPage: (settings = {}) => {
- return this.findBlobsByTagsSegments(tagFilterSqlExpression, settings.continuationToken, Object.assign({ maxPageSize: settings.maxPageSize }, listSegmentOptions));
- },
- };
- }
- getContainerNameFromUrl() {
- let containerName;
- try {
- // URL may look like the following
- // "https://myaccount.blob.core.windows.net/mycontainer?sasString";
- // "https://myaccount.blob.core.windows.net/mycontainer";
- // IPv4/IPv6 address hosts, Endpoints - `http://127.0.0.1:10000/devstoreaccount1/containername`
- // http://localhost:10001/devstoreaccount1/containername
- const parsedUrl = coreHttp.URLBuilder.parse(this.url);
- if (parsedUrl.getHost().split(".")[1] === "blob") {
- // "https://myaccount.blob.core.windows.net/containername".
- // "https://customdomain.com/containername".
- // .getPath() -> /containername
- containerName = parsedUrl.getPath().split("/")[1];
- }
- else if (isIpEndpointStyle(parsedUrl)) {
- // IPv4/IPv6 address hosts... Example - http://192.0.0.10:10001/devstoreaccount1/containername
- // Single word domain without a [dot] in the endpoint... Example - http://localhost:10001/devstoreaccount1/containername
- // .getPath() -> /devstoreaccount1/containername
- containerName = parsedUrl.getPath().split("/")[2];
- }
- else {
- // "https://customdomain.com/containername".
- // .getPath() -> /containername
- containerName = parsedUrl.getPath().split("/")[1];
- }
- // decode the encoded containerName - to get all the special characters that might be present in it
- containerName = decodeURIComponent(containerName);
- if (!containerName) {
- throw new Error("Provided containerName is invalid.");
- }
- return containerName;
- }
- catch (error) {
- throw new Error("Unable to extract containerName with provided information.");
- }
- }
- /**
- * Only available for ContainerClient constructed with a shared key credential.
- *
- * Generates a Blob Container Service Shared Access Signature (SAS) URI based on the client properties
- * and parameters passed in. The SAS is signed by the shared key credential of the client.
- *
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas
- *
- * @param options - Optional parameters.
- * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.
- */
- generateSasUrl(options) {
- return new Promise((resolve) => {
- if (!(this.credential instanceof StorageSharedKeyCredential)) {
- throw new RangeError("Can only generate the SAS when the client is initialized with a shared key credential");
- }
- const sas = generateBlobSASQueryParameters(Object.assign({ containerName: this._containerName }, options), this.credential).toString();
- resolve(appendToURLQuery(this.url, sas));
- });
- }
- /**
- * Creates a BlobBatchClient object to conduct batch operations.
- *
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch
- *
- * @returns A new BlobBatchClient object for this container.
- */
- getBlobBatchClient() {
- return new BlobBatchClient(this.url, this.pipeline);
- }
-}
-
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT license.
-/**
- * ONLY AVAILABLE IN NODE.JS RUNTIME.
- *
- * This is a helper class to construct a string representing the permissions granted by an AccountSAS. Setting a value
- * to true means that any SAS which uses these permissions will grant permissions for that operation. Once all the
- * values are set, this should be serialized with toString and set as the permissions field on an
- * {@link AccountSASSignatureValues} object. It is possible to construct the permissions string without this class, but
- * the order of the permissions is particular and this class guarantees correctness.
- */
-class AccountSASPermissions {
- constructor() {
- /**
- * Permission to read resources and list queues and tables granted.
- */
- this.read = false;
- /**
- * Permission to write resources granted.
- */
- this.write = false;
- /**
- * Permission to create blobs and files granted.
- */
- this.delete = false;
- /**
- * Permission to delete versions granted.
- */
- this.deleteVersion = false;
- /**
- * Permission to list blob containers, blobs, shares, directories, and files granted.
- */
- this.list = false;
- /**
- * Permission to add messages, table entities, and append to blobs granted.
- */
- this.add = false;
- /**
- * Permission to create blobs and files granted.
- */
- this.create = false;
- /**
- * Permissions to update messages and table entities granted.
- */
- this.update = false;
- /**
- * Permission to get and delete messages granted.
- */
- this.process = false;
- /**
- * Specfies Tag access granted.
- */
- this.tag = false;
- /**
- * Permission to filter blobs.
- */
- this.filter = false;
- /**
- * Permission to set immutability policy.
- */
- this.setImmutabilityPolicy = false;
- /**
- * Specifies that Permanent Delete is permitted.
- */
- this.permanentDelete = false;
- }
- /**
- * Parse initializes the AccountSASPermissions fields from a string.
- *
- * @param permissions -
- */
- static parse(permissions) {
- const accountSASPermissions = new AccountSASPermissions();
- for (const c of permissions) {
- switch (c) {
- case "r":
- accountSASPermissions.read = true;
- break;
- case "w":
- accountSASPermissions.write = true;
- break;
- case "d":
- accountSASPermissions.delete = true;
- break;
- case "x":
- accountSASPermissions.deleteVersion = true;
- break;
- case "l":
- accountSASPermissions.list = true;
- break;
- case "a":
- accountSASPermissions.add = true;
- break;
- case "c":
- accountSASPermissions.create = true;
- break;
- case "u":
- accountSASPermissions.update = true;
- break;
- case "p":
- accountSASPermissions.process = true;
- break;
- case "t":
- accountSASPermissions.tag = true;
- break;
- case "f":
- accountSASPermissions.filter = true;
- break;
- case "i":
- accountSASPermissions.setImmutabilityPolicy = true;
- break;
- case "y":
- accountSASPermissions.permanentDelete = true;
- break;
- default:
- throw new RangeError(`Invalid permission character: ${c}`);
- }
- }
- return accountSASPermissions;
- }
- /**
- * Creates a {@link AccountSASPermissions} from a raw object which contains same keys as it
- * and boolean values for them.
- *
- * @param permissionLike -
- */
- static from(permissionLike) {
- const accountSASPermissions = new AccountSASPermissions();
- if (permissionLike.read) {
- accountSASPermissions.read = true;
- }
- if (permissionLike.write) {
- accountSASPermissions.write = true;
- }
- if (permissionLike.delete) {
- accountSASPermissions.delete = true;
- }
- if (permissionLike.deleteVersion) {
- accountSASPermissions.deleteVersion = true;
- }
- if (permissionLike.filter) {
- accountSASPermissions.filter = true;
- }
- if (permissionLike.tag) {
- accountSASPermissions.tag = true;
- }
- if (permissionLike.list) {
- accountSASPermissions.list = true;
- }
- if (permissionLike.add) {
- accountSASPermissions.add = true;
- }
- if (permissionLike.create) {
- accountSASPermissions.create = true;
- }
- if (permissionLike.update) {
- accountSASPermissions.update = true;
- }
- if (permissionLike.process) {
- accountSASPermissions.process = true;
- }
- if (permissionLike.setImmutabilityPolicy) {
- accountSASPermissions.setImmutabilityPolicy = true;
- }
- if (permissionLike.permanentDelete) {
- accountSASPermissions.permanentDelete = true;
- }
- return accountSASPermissions;
- }
- /**
- * Produces the SAS permissions string for an Azure Storage account.
- * Call this method to set AccountSASSignatureValues Permissions field.
- *
- * Using this method will guarantee the resource types are in
- * an order accepted by the service.
- *
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas
- *
- */
- toString() {
- // The order of the characters should be as specified here to ensure correctness:
- // https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas
- // Use a string array instead of string concatenating += operator for performance
- const permissions = [];
- if (this.read) {
- permissions.push("r");
- }
- if (this.write) {
- permissions.push("w");
- }
- if (this.delete) {
- permissions.push("d");
- }
- if (this.deleteVersion) {
- permissions.push("x");
- }
- if (this.filter) {
- permissions.push("f");
- }
- if (this.tag) {
- permissions.push("t");
- }
- if (this.list) {
- permissions.push("l");
- }
- if (this.add) {
- permissions.push("a");
- }
- if (this.create) {
- permissions.push("c");
- }
- if (this.update) {
- permissions.push("u");
- }
- if (this.process) {
- permissions.push("p");
- }
- if (this.setImmutabilityPolicy) {
- permissions.push("i");
- }
- if (this.permanentDelete) {
- permissions.push("y");
- }
- return permissions.join("");
- }
-}
-
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT license.
-/**
- * ONLY AVAILABLE IN NODE.JS RUNTIME.
- *
- * This is a helper class to construct a string representing the resources accessible by an AccountSAS. Setting a value
- * to true means that any SAS which uses these permissions will grant access to that resource type. Once all the
- * values are set, this should be serialized with toString and set as the resources field on an
- * {@link AccountSASSignatureValues} object. It is possible to construct the resources string without this class, but
- * the order of the resources is particular and this class guarantees correctness.
- */
-class AccountSASResourceTypes {
- constructor() {
- /**
- * Permission to access service level APIs granted.
- */
- this.service = false;
- /**
- * Permission to access container level APIs (Blob Containers, Tables, Queues, File Shares) granted.
- */
- this.container = false;
- /**
- * Permission to access object level APIs (Blobs, Table Entities, Queue Messages, Files) granted.
- */
- this.object = false;
- }
- /**
- * Creates an {@link AccountSASResourceTypes} from the specified resource types string. This method will throw an
- * Error if it encounters a character that does not correspond to a valid resource type.
- *
- * @param resourceTypes -
- */
- static parse(resourceTypes) {
- const accountSASResourceTypes = new AccountSASResourceTypes();
- for (const c of resourceTypes) {
- switch (c) {
- case "s":
- accountSASResourceTypes.service = true;
- break;
- case "c":
- accountSASResourceTypes.container = true;
- break;
- case "o":
- accountSASResourceTypes.object = true;
- break;
- default:
- throw new RangeError(`Invalid resource type: ${c}`);
- }
- }
- return accountSASResourceTypes;
- }
- /**
- * Converts the given resource types to a string.
- *
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas
- *
- */
- toString() {
- const resourceTypes = [];
- if (this.service) {
- resourceTypes.push("s");
- }
- if (this.container) {
- resourceTypes.push("c");
- }
- if (this.object) {
- resourceTypes.push("o");
- }
- return resourceTypes.join("");
- }
-}
-
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT license.
-/**
- * ONLY AVAILABLE IN NODE.JS RUNTIME.
- *
- * This is a helper class to construct a string representing the services accessible by an AccountSAS. Setting a value
- * to true means that any SAS which uses these permissions will grant access to that service. Once all the
- * values are set, this should be serialized with toString and set as the services field on an
- * {@link AccountSASSignatureValues} object. It is possible to construct the services string without this class, but
- * the order of the services is particular and this class guarantees correctness.
- */
-class AccountSASServices {
- constructor() {
- /**
- * Permission to access blob resources granted.
- */
- this.blob = false;
- /**
- * Permission to access file resources granted.
- */
- this.file = false;
- /**
- * Permission to access queue resources granted.
- */
- this.queue = false;
- /**
- * Permission to access table resources granted.
- */
- this.table = false;
- }
- /**
- * Creates an {@link AccountSASServices} from the specified services string. This method will throw an
- * Error if it encounters a character that does not correspond to a valid service.
- *
- * @param services -
- */
- static parse(services) {
- const accountSASServices = new AccountSASServices();
- for (const c of services) {
- switch (c) {
- case "b":
- accountSASServices.blob = true;
- break;
- case "f":
- accountSASServices.file = true;
- break;
- case "q":
- accountSASServices.queue = true;
- break;
- case "t":
- accountSASServices.table = true;
- break;
- default:
- throw new RangeError(`Invalid service character: ${c}`);
- }
- }
- return accountSASServices;
- }
- /**
- * Converts the given services to a string.
- *
- */
- toString() {
- const services = [];
- if (this.blob) {
- services.push("b");
- }
- if (this.table) {
- services.push("t");
- }
- if (this.queue) {
- services.push("q");
- }
- if (this.file) {
- services.push("f");
- }
- return services.join("");
- }
-}
-
-// Copyright (c) Microsoft Corporation.
-/**
- * ONLY AVAILABLE IN NODE.JS RUNTIME.
- *
- * Generates a {@link SASQueryParameters} object which contains all SAS query parameters needed to make an actual
- * REST request.
- *
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas
- *
- * @param accountSASSignatureValues -
- * @param sharedKeyCredential -
- */
-function generateAccountSASQueryParameters(accountSASSignatureValues, sharedKeyCredential) {
- const version = accountSASSignatureValues.version
- ? accountSASSignatureValues.version
- : SERVICE_VERSION;
- if (accountSASSignatureValues.permissions &&
- accountSASSignatureValues.permissions.setImmutabilityPolicy &&
- version < "2020-08-04") {
- throw RangeError("'version' must be >= '2020-08-04' when provided 'i' permission.");
- }
- if (accountSASSignatureValues.permissions &&
- accountSASSignatureValues.permissions.deleteVersion &&
- version < "2019-10-10") {
- throw RangeError("'version' must be >= '2019-10-10' when provided 'x' permission.");
- }
- if (accountSASSignatureValues.permissions &&
- accountSASSignatureValues.permissions.permanentDelete &&
- version < "2019-10-10") {
- throw RangeError("'version' must be >= '2019-10-10' when provided 'y' permission.");
- }
- if (accountSASSignatureValues.permissions &&
- accountSASSignatureValues.permissions.tag &&
- version < "2019-12-12") {
- throw RangeError("'version' must be >= '2019-12-12' when provided 't' permission.");
- }
- if (accountSASSignatureValues.permissions &&
- accountSASSignatureValues.permissions.filter &&
- version < "2019-12-12") {
- throw RangeError("'version' must be >= '2019-12-12' when provided 'f' permission.");
- }
- if (accountSASSignatureValues.encryptionScope && version < "2020-12-06") {
- throw RangeError("'version' must be >= '2020-12-06' when provided 'encryptionScope' in SAS.");
- }
- const parsedPermissions = AccountSASPermissions.parse(accountSASSignatureValues.permissions.toString());
- const parsedServices = AccountSASServices.parse(accountSASSignatureValues.services).toString();
- const parsedResourceTypes = AccountSASResourceTypes.parse(accountSASSignatureValues.resourceTypes).toString();
- let stringToSign;
- if (version >= "2020-12-06") {
- stringToSign = [
- sharedKeyCredential.accountName,
- parsedPermissions,
- parsedServices,
- parsedResourceTypes,
- accountSASSignatureValues.startsOn
- ? truncatedISO8061Date(accountSASSignatureValues.startsOn, false)
- : "",
- truncatedISO8061Date(accountSASSignatureValues.expiresOn, false),
- accountSASSignatureValues.ipRange ? ipRangeToString(accountSASSignatureValues.ipRange) : "",
- accountSASSignatureValues.protocol ? accountSASSignatureValues.protocol : "",
- version,
- accountSASSignatureValues.encryptionScope ? accountSASSignatureValues.encryptionScope : "",
- "", // Account SAS requires an additional newline character
- ].join("\n");
- }
- else {
- stringToSign = [
- sharedKeyCredential.accountName,
- parsedPermissions,
- parsedServices,
- parsedResourceTypes,
- accountSASSignatureValues.startsOn
- ? truncatedISO8061Date(accountSASSignatureValues.startsOn, false)
- : "",
- truncatedISO8061Date(accountSASSignatureValues.expiresOn, false),
- accountSASSignatureValues.ipRange ? ipRangeToString(accountSASSignatureValues.ipRange) : "",
- accountSASSignatureValues.protocol ? accountSASSignatureValues.protocol : "",
- version,
- "", // Account SAS requires an additional newline character
- ].join("\n");
- }
- const signature = sharedKeyCredential.computeHMACSHA256(stringToSign);
- return new SASQueryParameters(version, signature, parsedPermissions.toString(), parsedServices, parsedResourceTypes, accountSASSignatureValues.protocol, accountSASSignatureValues.startsOn, accountSASSignatureValues.expiresOn, accountSASSignatureValues.ipRange, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, accountSASSignatureValues.encryptionScope);
-}
-
-/**
- * A BlobServiceClient represents a Client to the Azure Storage Blob service allowing you
- * to manipulate blob containers.
- */
-class BlobServiceClient extends StorageClient {
- constructor(url, credentialOrPipeline,
- // Legacy, no fix for eslint error without breaking. Disable it for this interface.
- /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/
- options) {
- let pipeline;
- if (isPipelineLike(credentialOrPipeline)) {
- pipeline = credentialOrPipeline;
- }
- else if ((coreHttp.isNode && credentialOrPipeline instanceof StorageSharedKeyCredential) ||
- credentialOrPipeline instanceof AnonymousCredential ||
- coreHttp.isTokenCredential(credentialOrPipeline)) {
- pipeline = newPipeline(credentialOrPipeline, options);
- }
- else {
- // The second parameter is undefined. Use anonymous credential
- pipeline = newPipeline(new AnonymousCredential(), options);
- }
- super(url, pipeline);
- this.serviceContext = new Service(this.storageClientContext);
- }
- /**
- *
- * Creates an instance of BlobServiceClient from connection string.
- *
- * @param connectionString - Account connection string or a SAS connection string of an Azure storage account.
- * [ Note - Account connection string can only be used in NODE.JS runtime. ]
- * Account connection string example -
- * `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net`
- * SAS connection string example -
- * `BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString`
- * @param options - Optional. Options to configure the HTTP pipeline.
- */
- static fromConnectionString(connectionString,
- // Legacy, no fix for eslint error without breaking. Disable it for this interface.
- /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/
- options) {
- options = options || {};
- const extractedCreds = extractConnectionStringParts(connectionString);
- if (extractedCreds.kind === "AccountConnString") {
- if (coreHttp.isNode) {
- const sharedKeyCredential = new StorageSharedKeyCredential(extractedCreds.accountName, extractedCreds.accountKey);
- if (!options.proxyOptions) {
- options.proxyOptions = coreHttp.getDefaultProxySettings(extractedCreds.proxyUri);
- }
- const pipeline = newPipeline(sharedKeyCredential, options);
- return new BlobServiceClient(extractedCreds.url, pipeline);
- }
- else {
- throw new Error("Account connection string is only supported in Node.js environment");
- }
- }
- else if (extractedCreds.kind === "SASConnString") {
- const pipeline = newPipeline(new AnonymousCredential(), options);
- return new BlobServiceClient(extractedCreds.url + "?" + extractedCreds.accountSas, pipeline);
- }
- else {
- throw new Error("Connection string must be either an Account connection string or a SAS connection string");
- }
- }
- /**
- * Creates a {@link ContainerClient} object
- *
- * @param containerName - A container name
- * @returns A new ContainerClient object for the given container name.
- *
- * Example usage:
- *
- * ```js
- * const containerClient = blobServiceClient.getContainerClient("");
- * ```
- */
- getContainerClient(containerName) {
- return new ContainerClient(appendToURLPath(this.url, encodeURIComponent(containerName)), this.pipeline);
- }
- /**
- * Create a Blob container. @see https://docs.microsoft.com/en-us/rest/api/storageservices/create-container
- *
- * @param containerName - Name of the container to create.
- * @param options - Options to configure Container Create operation.
- * @returns Container creation response and the corresponding container client.
- */
- async createContainer(containerName, options = {}) {
- const { span, updatedOptions } = createSpan("BlobServiceClient-createContainer", options);
- try {
- const containerClient = this.getContainerClient(containerName);
- const containerCreateResponse = await containerClient.create(updatedOptions);
- return {
- containerClient,
- containerCreateResponse,
- };
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Deletes a Blob container.
- *
- * @param containerName - Name of the container to delete.
- * @param options - Options to configure Container Delete operation.
- * @returns Container deletion response.
- */
- async deleteContainer(containerName, options = {}) {
- const { span, updatedOptions } = createSpan("BlobServiceClient-deleteContainer", options);
- try {
- const containerClient = this.getContainerClient(containerName);
- return await containerClient.delete(updatedOptions);
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Restore a previously deleted Blob container.
- * This API is only functional if Container Soft Delete is enabled for the storage account associated with the container.
- *
- * @param deletedContainerName - Name of the previously deleted container.
- * @param deletedContainerVersion - Version of the previously deleted container, used to uniquely identify the deleted container.
- * @param options - Options to configure Container Restore operation.
- * @returns Container deletion response.
- */
- async undeleteContainer(deletedContainerName, deletedContainerVersion, options = {}) {
- const { span, updatedOptions } = createSpan("BlobServiceClient-undeleteContainer", options);
- try {
- const containerClient = this.getContainerClient(options.destinationContainerName || deletedContainerName);
- // Hack to access a protected member.
- const containerContext = new Container(containerClient["storageClientContext"]);
- const containerUndeleteResponse = await containerContext.restore(Object.assign({ deletedContainerName,
- deletedContainerVersion }, updatedOptions));
- return { containerClient, containerUndeleteResponse };
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Rename an existing Blob Container.
- *
- * @param sourceContainerName - The name of the source container.
- * @param destinationContainerName - The new name of the container.
- * @param options - Options to configure Container Rename operation.
- */
- /* eslint-disable-next-line @typescript-eslint/ban-ts-comment */
- // @ts-ignore Need to hide this interface for now. Make it public and turn on the live tests for it when the service is ready.
- async renameContainer(sourceContainerName, destinationContainerName, options = {}) {
- var _a;
- const { span, updatedOptions } = createSpan("BlobServiceClient-renameContainer", options);
- try {
- const containerClient = this.getContainerClient(destinationContainerName);
- // Hack to access a protected member.
- const containerContext = new Container(containerClient["storageClientContext"]);
- const containerRenameResponse = await containerContext.rename(sourceContainerName, Object.assign(Object.assign({}, updatedOptions), { sourceLeaseId: (_a = options.sourceCondition) === null || _a === void 0 ? void 0 : _a.leaseId }));
- return { containerClient, containerRenameResponse };
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Gets the properties of a storage account’s Blob service, including properties
- * for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob-service-properties
- *
- * @param options - Options to the Service Get Properties operation.
- * @returns Response data for the Service Get Properties operation.
- */
- async getProperties(options = {}) {
- const { span, updatedOptions } = createSpan("BlobServiceClient-getProperties", options);
- try {
- return await this.serviceContext.getProperties(Object.assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Sets properties for a storage account’s Blob service endpoint, including properties
- * for Storage Analytics, CORS (Cross-Origin Resource Sharing) rules and soft delete settings.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-service-properties
- *
- * @param properties -
- * @param options - Options to the Service Set Properties operation.
- * @returns Response data for the Service Set Properties operation.
- */
- async setProperties(properties, options = {}) {
- const { span, updatedOptions } = createSpan("BlobServiceClient-setProperties", options);
- try {
- return await this.serviceContext.setProperties(properties, Object.assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Retrieves statistics related to replication for the Blob service. It is only
- * available on the secondary location endpoint when read-access geo-redundant
- * replication is enabled for the storage account.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob-service-stats
- *
- * @param options - Options to the Service Get Statistics operation.
- * @returns Response data for the Service Get Statistics operation.
- */
- async getStatistics(options = {}) {
- const { span, updatedOptions } = createSpan("BlobServiceClient-getStatistics", options);
- try {
- return await this.serviceContext.getStatistics(Object.assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * The Get Account Information operation returns the sku name and account kind
- * for the specified account.
- * The Get Account Information operation is available on service versions beginning
- * with version 2018-03-28.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/get-account-information
- *
- * @param options - Options to the Service Get Account Info operation.
- * @returns Response data for the Service Get Account Info operation.
- */
- async getAccountInfo(options = {}) {
- const { span, updatedOptions } = createSpan("BlobServiceClient-getAccountInfo", options);
- try {
- return await this.serviceContext.getAccountInfo(Object.assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Returns a list of the containers under the specified account.
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/list-containers2
- *
- * @param marker - A string value that identifies the portion of
- * the list of containers to be returned with the next listing operation. The
- * operation returns the continuationToken value within the response body if the
- * listing operation did not return all containers remaining to be listed
- * 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
- * items. The marker value is opaque to the client.
- * @param options - Options to the Service List Container Segment operation.
- * @returns Response data for the Service List Container Segment operation.
- */
- async listContainersSegment(marker, options = {}) {
- const { span, updatedOptions } = createSpan("BlobServiceClient-listContainersSegment", options);
- try {
- return await this.serviceContext.listContainersSegment(Object.assign(Object.assign(Object.assign({ abortSignal: options.abortSignal, marker }, options), { include: typeof options.include === "string" ? [options.include] : options.include }), convertTracingToRequestOptionsBase(updatedOptions)));
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * The Filter Blobs operation enables callers to list blobs across all containers whose tags
- * match a given search expression. Filter blobs searches across all containers within a
- * storage account but can be scoped within the expression to a single container.
- *
- * @param tagFilterSqlExpression - The where parameter enables the caller to query blobs whose tags match a given expression.
- * The given expression must evaluate to true for a blob to be returned in the results.
- * The[OData - ABNF] filter syntax rule defines the formal grammar for the value of the where query parameter;
- * however, only a subset of the OData filter syntax is supported in the Blob service.
- * @param marker - A string value that identifies the portion of
- * the list of blobs to be returned with the next listing operation. The
- * operation returns the continuationToken value within the response body if the
- * listing operation did not return all blobs remaining to be listed
- * 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
- * items. The marker value is opaque to the client.
- * @param options - Options to find blobs by tags.
- */
- async findBlobsByTagsSegment(tagFilterSqlExpression, marker, options = {}) {
- const { span, updatedOptions } = createSpan("BlobServiceClient-findBlobsByTagsSegment", options);
- try {
- const response = await this.serviceContext.filterBlobs(Object.assign({ abortSignal: options.abortSignal, where: tagFilterSqlExpression, marker, maxPageSize: options.maxPageSize }, convertTracingToRequestOptionsBase(updatedOptions)));
- const wrappedResponse = Object.assign(Object.assign({}, response), { _response: response._response, blobs: response.blobs.map((blob) => {
- var _a;
- let tagValue = "";
- if (((_a = blob.tags) === null || _a === void 0 ? void 0 : _a.blobTagSet.length) === 1) {
- tagValue = blob.tags.blobTagSet[0].value;
- }
- return Object.assign(Object.assign({}, blob), { tags: toTags(blob.tags), tagValue });
- }) });
- return wrappedResponse;
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Returns an AsyncIterableIterator for ServiceFindBlobsByTagsSegmentResponse.
- *
- * @param tagFilterSqlExpression - The where parameter enables the caller to query blobs whose tags match a given expression.
- * The given expression must evaluate to true for a blob to be returned in the results.
- * The[OData - ABNF] filter syntax rule defines the formal grammar for the value of the where query parameter;
- * however, only a subset of the OData filter syntax is supported in the Blob service.
- * @param marker - A string value that identifies the portion of
- * the list of blobs to be returned with the next listing operation. The
- * operation returns the continuationToken value within the response body if the
- * listing operation did not return all blobs remaining to be listed
- * 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
- * items. The marker value is opaque to the client.
- * @param options - Options to find blobs by tags.
- */
- findBlobsByTagsSegments(tagFilterSqlExpression, marker, options = {}) {
- return tslib.__asyncGenerator(this, arguments, function* findBlobsByTagsSegments_1() {
- let response;
- if (!!marker || marker === undefined) {
- do {
- response = yield tslib.__await(this.findBlobsByTagsSegment(tagFilterSqlExpression, marker, options));
- response.blobs = response.blobs || [];
- marker = response.continuationToken;
- yield yield tslib.__await(response);
- } while (marker);
- }
- });
- }
- /**
- * Returns an AsyncIterableIterator for blobs.
- *
- * @param tagFilterSqlExpression - The where parameter enables the caller to query blobs whose tags match a given expression.
- * The given expression must evaluate to true for a blob to be returned in the results.
- * The[OData - ABNF] filter syntax rule defines the formal grammar for the value of the where query parameter;
- * however, only a subset of the OData filter syntax is supported in the Blob service.
- * @param options - Options to findBlobsByTagsItems.
- */
- findBlobsByTagsItems(tagFilterSqlExpression, options = {}) {
- return tslib.__asyncGenerator(this, arguments, function* findBlobsByTagsItems_1() {
- var e_1, _a;
- let marker;
- try {
- for (var _b = tslib.__asyncValues(this.findBlobsByTagsSegments(tagFilterSqlExpression, marker, options)), _c; _c = yield tslib.__await(_b.next()), !_c.done;) {
- const segment = _c.value;
- yield tslib.__await(yield* tslib.__asyncDelegator(tslib.__asyncValues(segment.blobs)));
- }
- }
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
- finally {
- try {
- if (_c && !_c.done && (_a = _b.return)) yield tslib.__await(_a.call(_b));
- }
- finally { if (e_1) throw e_1.error; }
- }
- });
- }
- /**
- * Returns an async iterable iterator to find all blobs with specified tag
- * under the specified account.
- *
- * .byPage() returns an async iterable iterator to list the blobs in pages.
- *
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob-service-properties
- *
- * Example using `for await` syntax:
- *
- * ```js
- * let i = 1;
- * for await (const blob of blobServiceClient.findBlobsByTags("tagkey='tagvalue'")) {
- * console.log(`Blob ${i++}: ${container.name}`);
- * }
- * ```
- *
- * Example using `iter.next()`:
- *
- * ```js
- * let i = 1;
- * const iter = blobServiceClient.findBlobsByTags("tagkey='tagvalue'");
- * let blobItem = await iter.next();
- * while (!blobItem.done) {
- * console.log(`Blob ${i++}: ${blobItem.value.name}`);
- * blobItem = await iter.next();
- * }
- * ```
- *
- * Example using `byPage()`:
- *
- * ```js
- * // passing optional maxPageSize in the page settings
- * let i = 1;
- * for await (const response of blobServiceClient.findBlobsByTags("tagkey='tagvalue'").byPage({ maxPageSize: 20 })) {
- * if (response.blobs) {
- * for (const blob of response.blobs) {
- * console.log(`Blob ${i++}: ${blob.name}`);
- * }
- * }
- * }
- * ```
- *
- * Example using paging with a marker:
- *
- * ```js
- * let i = 1;
- * let iterator = blobServiceClient.findBlobsByTags("tagkey='tagvalue'").byPage({ maxPageSize: 2 });
- * let response = (await iterator.next()).value;
- *
- * // Prints 2 blob names
- * if (response.blobs) {
- * for (const blob of response.blobs) {
- * console.log(`Blob ${i++}: ${blob.name}`);
- * }
- * }
- *
- * // Gets next marker
- * let marker = response.continuationToken;
- * // Passing next marker as continuationToken
- * iterator = blobServiceClient
- * .findBlobsByTags("tagkey='tagvalue'")
- * .byPage({ continuationToken: marker, maxPageSize: 10 });
- * response = (await iterator.next()).value;
- *
- * // Prints blob names
- * if (response.blobs) {
- * for (const blob of response.blobs) {
- * console.log(`Blob ${i++}: ${blob.name}`);
- * }
- * }
- * ```
- *
- * @param tagFilterSqlExpression - The where parameter enables the caller to query blobs whose tags match a given expression.
- * The given expression must evaluate to true for a blob to be returned in the results.
- * The[OData - ABNF] filter syntax rule defines the formal grammar for the value of the where query parameter;
- * however, only a subset of the OData filter syntax is supported in the Blob service.
- * @param options - Options to find blobs by tags.
- */
- findBlobsByTags(tagFilterSqlExpression, options = {}) {
- // AsyncIterableIterator to iterate over blobs
- const listSegmentOptions = Object.assign({}, options);
- const iter = this.findBlobsByTagsItems(tagFilterSqlExpression, listSegmentOptions);
- return {
- /**
- * The next method, part of the iteration protocol
- */
- next() {
- return iter.next();
- },
- /**
- * The connection to the async iterator, part of the iteration protocol
- */
- [Symbol.asyncIterator]() {
- return this;
- },
- /**
- * Return an AsyncIterableIterator that works a page at a time
- */
- byPage: (settings = {}) => {
- return this.findBlobsByTagsSegments(tagFilterSqlExpression, settings.continuationToken, Object.assign({ maxPageSize: settings.maxPageSize }, listSegmentOptions));
- },
- };
- }
- /**
- * Returns an AsyncIterableIterator for ServiceListContainersSegmentResponses
- *
- * @param marker - A string value that identifies the portion of
- * the list of containers to be returned with the next listing operation. The
- * operation returns the continuationToken value within the response body if the
- * listing operation did not return all containers remaining to be listed
- * 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
- * items. The marker value is opaque to the client.
- * @param options - Options to list containers operation.
- */
- listSegments(marker, options = {}) {
- return tslib.__asyncGenerator(this, arguments, function* listSegments_1() {
- let listContainersSegmentResponse;
- if (!!marker || marker === undefined) {
- do {
- listContainersSegmentResponse = yield tslib.__await(this.listContainersSegment(marker, options));
- listContainersSegmentResponse.containerItems =
- listContainersSegmentResponse.containerItems || [];
- marker = listContainersSegmentResponse.continuationToken;
- yield yield tslib.__await(yield tslib.__await(listContainersSegmentResponse));
- } while (marker);
- }
- });
- }
- /**
- * Returns an AsyncIterableIterator for Container Items
- *
- * @param options - Options to list containers operation.
- */
- listItems(options = {}) {
- return tslib.__asyncGenerator(this, arguments, function* listItems_1() {
- var e_2, _a;
- let marker;
- try {
- for (var _b = tslib.__asyncValues(this.listSegments(marker, options)), _c; _c = yield tslib.__await(_b.next()), !_c.done;) {
- const segment = _c.value;
- yield tslib.__await(yield* tslib.__asyncDelegator(tslib.__asyncValues(segment.containerItems)));
- }
- }
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
- finally {
- try {
- if (_c && !_c.done && (_a = _b.return)) yield tslib.__await(_a.call(_b));
- }
- finally { if (e_2) throw e_2.error; }
- }
- });
- }
- /**
- * Returns an async iterable iterator to list all the containers
- * under the specified account.
- *
- * .byPage() returns an async iterable iterator to list the containers in pages.
- *
- * Example using `for await` syntax:
- *
- * ```js
- * let i = 1;
- * for await (const container of blobServiceClient.listContainers()) {
- * console.log(`Container ${i++}: ${container.name}`);
- * }
- * ```
- *
- * Example using `iter.next()`:
- *
- * ```js
- * let i = 1;
- * const iter = blobServiceClient.listContainers();
- * let containerItem = await iter.next();
- * while (!containerItem.done) {
- * console.log(`Container ${i++}: ${containerItem.value.name}`);
- * containerItem = await iter.next();
- * }
- * ```
- *
- * Example using `byPage()`:
- *
- * ```js
- * // passing optional maxPageSize in the page settings
- * let i = 1;
- * for await (const response of blobServiceClient.listContainers().byPage({ maxPageSize: 20 })) {
- * if (response.containerItems) {
- * for (const container of response.containerItems) {
- * console.log(`Container ${i++}: ${container.name}`);
- * }
- * }
- * }
- * ```
- *
- * Example using paging with a marker:
- *
- * ```js
- * let i = 1;
- * let iterator = blobServiceClient.listContainers().byPage({ maxPageSize: 2 });
- * let response = (await iterator.next()).value;
- *
- * // Prints 2 container names
- * if (response.containerItems) {
- * for (const container of response.containerItems) {
- * console.log(`Container ${i++}: ${container.name}`);
- * }
- * }
- *
- * // Gets next marker
- * let marker = response.continuationToken;
- * // Passing next marker as continuationToken
- * iterator = blobServiceClient
- * .listContainers()
- * .byPage({ continuationToken: marker, maxPageSize: 10 });
- * response = (await iterator.next()).value;
- *
- * // Prints 10 container names
- * if (response.containerItems) {
- * for (const container of response.containerItems) {
- * console.log(`Container ${i++}: ${container.name}`);
- * }
- * }
- * ```
- *
- * @param options - Options to list containers.
- * @returns An asyncIterableIterator that supports paging.
- */
- listContainers(options = {}) {
- if (options.prefix === "") {
- options.prefix = undefined;
- }
- const include = [];
- if (options.includeDeleted) {
- include.push("deleted");
- }
- if (options.includeMetadata) {
- include.push("metadata");
- }
- if (options.includeSystem) {
- include.push("system");
- }
- // AsyncIterableIterator to iterate over containers
- const listSegmentOptions = Object.assign(Object.assign({}, options), (include.length > 0 ? { include } : {}));
- const iter = this.listItems(listSegmentOptions);
- return {
- /**
- * The next method, part of the iteration protocol
- */
- next() {
- return iter.next();
- },
- /**
- * The connection to the async iterator, part of the iteration protocol
- */
- [Symbol.asyncIterator]() {
- return this;
- },
- /**
- * Return an AsyncIterableIterator that works a page at a time
- */
- byPage: (settings = {}) => {
- return this.listSegments(settings.continuationToken, Object.assign({ maxPageSize: settings.maxPageSize }, listSegmentOptions));
- },
- };
- }
- /**
- * ONLY AVAILABLE WHEN USING BEARER TOKEN AUTHENTICATION (TokenCredential).
- *
- * Retrieves a user delegation key for the Blob service. This is only a valid operation when using
- * bearer token authentication.
- *
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/get-user-delegation-key
- *
- * @param startsOn - The start time for the user delegation SAS. Must be within 7 days of the current time
- * @param expiresOn - The end time for the user delegation SAS. Must be within 7 days of the current time
- */
- async getUserDelegationKey(startsOn, expiresOn, options = {}) {
- const { span, updatedOptions } = createSpan("BlobServiceClient-getUserDelegationKey", options);
- try {
- const response = await this.serviceContext.getUserDelegationKey({
- startsOn: truncatedISO8061Date(startsOn, false),
- expiresOn: truncatedISO8061Date(expiresOn, false),
- }, Object.assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)));
- const userDelegationKey = {
- signedObjectId: response.signedObjectId,
- signedTenantId: response.signedTenantId,
- signedStartsOn: new Date(response.signedStartsOn),
- signedExpiresOn: new Date(response.signedExpiresOn),
- signedService: response.signedService,
- signedVersion: response.signedVersion,
- value: response.value,
- };
- const res = Object.assign({ _response: response._response, requestId: response.requestId, clientRequestId: response.clientRequestId, version: response.version, date: response.date, errorCode: response.errorCode }, userDelegationKey);
- return res;
- }
- catch (e) {
- span.setStatus({
- code: coreTracing.SpanStatusCode.ERROR,
- message: e.message,
- });
- throw e;
- }
- finally {
- span.end();
- }
- }
- /**
- * Creates a BlobBatchClient object to conduct batch operations.
- *
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch
- *
- * @returns A new BlobBatchClient object for this service.
- */
- getBlobBatchClient() {
- return new BlobBatchClient(this.url, this.pipeline);
- }
- /**
- * Only available for BlobServiceClient constructed with a shared key credential.
- *
- * Generates a Blob account Shared Access Signature (SAS) URI based on the client properties
- * and parameters passed in. The SAS is signed by the shared key credential of the client.
- *
- * @see https://docs.microsoft.com/en-us/rest/api/storageservices/create-account-sas
- *
- * @param expiresOn - Optional. The time at which the shared access signature becomes invalid. Default to an hour later if not provided.
- * @param permissions - Specifies the list of permissions to be associated with the SAS.
- * @param resourceTypes - Specifies the resource types associated with the shared access signature.
- * @param options - Optional parameters.
- * @returns An account SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.
- */
- generateAccountSasUrl(expiresOn, permissions = AccountSASPermissions.parse("r"), resourceTypes = "sco", options = {}) {
- if (!(this.credential instanceof StorageSharedKeyCredential)) {
- throw RangeError("Can only generate the account SAS when the client is initialized with a shared key credential");
- }
- if (expiresOn === undefined) {
- const now = new Date();
- expiresOn = new Date(now.getTime() + 3600 * 1000);
- }
- const sas = generateAccountSASQueryParameters(Object.assign({ permissions,
- expiresOn,
- resourceTypes, services: AccountSASServices.parse("b").toString() }, options), this.credential).toString();
- return appendToURLQuery(this.url, sas);
- }
-}
-
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT license.
-/** Known values of {@link EncryptionAlgorithmType} that the service accepts. */
-exports.KnownEncryptionAlgorithmType = void 0;
-(function (KnownEncryptionAlgorithmType) {
- KnownEncryptionAlgorithmType["AES256"] = "AES256";
-})(exports.KnownEncryptionAlgorithmType || (exports.KnownEncryptionAlgorithmType = {}));
-
-Object.defineProperty(exports, "BaseRequestPolicy", ({
- enumerable: true,
- get: function () { return coreHttp.BaseRequestPolicy; }
-}));
-Object.defineProperty(exports, "HttpHeaders", ({
- enumerable: true,
- get: function () { return coreHttp.HttpHeaders; }
-}));
-Object.defineProperty(exports, "RequestPolicyOptions", ({
- enumerable: true,
- get: function () { return coreHttp.RequestPolicyOptions; }
-}));
-Object.defineProperty(exports, "RestError", ({
- enumerable: true,
- get: function () { return coreHttp.RestError; }
-}));
-Object.defineProperty(exports, "WebResource", ({
- enumerable: true,
- get: function () { return coreHttp.WebResource; }
-}));
-Object.defineProperty(exports, "deserializationPolicy", ({
- enumerable: true,
- get: function () { return coreHttp.deserializationPolicy; }
-}));
-exports.AccountSASPermissions = AccountSASPermissions;
-exports.AccountSASResourceTypes = AccountSASResourceTypes;
-exports.AccountSASServices = AccountSASServices;
-exports.AnonymousCredential = AnonymousCredential;
-exports.AnonymousCredentialPolicy = AnonymousCredentialPolicy;
-exports.AppendBlobClient = AppendBlobClient;
-exports.BlobBatch = BlobBatch;
-exports.BlobBatchClient = BlobBatchClient;
-exports.BlobClient = BlobClient;
-exports.BlobLeaseClient = BlobLeaseClient;
-exports.BlobSASPermissions = BlobSASPermissions;
-exports.BlobServiceClient = BlobServiceClient;
-exports.BlockBlobClient = BlockBlobClient;
-exports.ContainerClient = ContainerClient;
-exports.ContainerSASPermissions = ContainerSASPermissions;
-exports.Credential = Credential;
-exports.CredentialPolicy = CredentialPolicy;
-exports.PageBlobClient = PageBlobClient;
-exports.Pipeline = Pipeline;
-exports.SASQueryParameters = SASQueryParameters;
-exports.StorageBrowserPolicy = StorageBrowserPolicy;
-exports.StorageBrowserPolicyFactory = StorageBrowserPolicyFactory;
-exports.StorageOAuthScopes = StorageOAuthScopes;
-exports.StorageRetryPolicy = StorageRetryPolicy;
-exports.StorageRetryPolicyFactory = StorageRetryPolicyFactory;
-exports.StorageSharedKeyCredential = StorageSharedKeyCredential;
-exports.StorageSharedKeyCredentialPolicy = StorageSharedKeyCredentialPolicy;
-exports.generateAccountSASQueryParameters = generateAccountSASQueryParameters;
-exports.generateBlobSASQueryParameters = generateBlobSASQueryParameters;
-exports.isPipelineLike = isPipelineLike;
-exports.logger = logger;
-exports.newPipeline = newPipeline;
-//# sourceMappingURL=index.js.map
-
-
-/***/ }),
-
-/***/ 679:
-/***/ ((module) => {
-
-/*! *****************************************************************************
-Copyright (c) Microsoft Corporation.
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-***************************************************************************** */
-/* global global, define, System, Reflect, Promise */
-var __extends;
-var __assign;
-var __rest;
-var __decorate;
-var __param;
-var __metadata;
-var __awaiter;
-var __generator;
-var __exportStar;
-var __values;
-var __read;
-var __spread;
-var __spreadArrays;
-var __spreadArray;
-var __await;
-var __asyncGenerator;
-var __asyncDelegator;
-var __asyncValues;
-var __makeTemplateObject;
-var __importStar;
-var __importDefault;
-var __classPrivateFieldGet;
-var __classPrivateFieldSet;
-var __createBinding;
-(function (factory) {
- var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {};
- if (typeof define === "function" && define.amd) {
- define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); });
- }
- else if ( true && typeof module.exports === "object") {
- factory(createExporter(root, createExporter(module.exports)));
- }
- else {
- factory(createExporter(root));
- }
- function createExporter(exports, previous) {
- if (exports !== root) {
- if (typeof Object.create === "function") {
- Object.defineProperty(exports, "__esModule", { value: true });
- }
- else {
- exports.__esModule = true;
- }
- }
- return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };
- }
-})
-(function (exporter) {
- var extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
-
- __extends = function (d, b) {
- if (typeof b !== "function" && b !== null)
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- return t;
- };
-
- __rest = function (s, e) {
- var t = {};
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
- t[p] = s[p];
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
- t[p[i]] = s[p[i]];
- }
- return t;
- };
-
- __decorate = function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
-
- __param = function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
-
- __metadata = function (metadataKey, metadataValue) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
- };
-
- __awaiter = function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
- };
-
- __generator = function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
- function verb(n) { return function (v) { return step([n, v]); }; }
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
- while (_) try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
- switch (op[0]) {
- case 0: case 1: t = op; break;
- case 4: _.label++; return { value: op[1], done: false };
- case 5: _.label++; y = op[1]; op = [0]; continue;
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
- if (t[2]) _.ops.pop();
- _.trys.pop(); continue;
- }
- op = body.call(thisArg, _);
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
- }
- };
-
- __exportStar = function(m, o) {
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
- };
-
- __createBinding = Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- });
-
- __values = function (o) {
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
- if (m) return m.call(o);
- if (o && typeof o.length === "number") return {
- next: function () {
- if (o && i >= o.length) o = void 0;
- return { value: o && o[i++], done: !o };
- }
- };
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
- };
-
- __read = function (o, n) {
- var m = typeof Symbol === "function" && o[Symbol.iterator];
- if (!m) return o;
- var i = m.call(o), r, ar = [], e;
- try {
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
- }
- catch (error) { e = { error: error }; }
- finally {
- try {
- if (r && !r.done && (m = i["return"])) m.call(i);
- }
- finally { if (e) throw e.error; }
- }
- return ar;
- };
-
- /** @deprecated */
- __spread = function () {
- for (var ar = [], i = 0; i < arguments.length; i++)
- ar = ar.concat(__read(arguments[i]));
- return ar;
- };
-
- /** @deprecated */
- __spreadArrays = function () {
- for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
- for (var r = Array(s), k = 0, i = 0; i < il; i++)
- for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
- r[k] = a[j];
- return r;
- };
-
- __spreadArray = function (to, from, pack) {
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
- if (ar || !(i in from)) {
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
- ar[i] = from[i];
- }
- }
- return to.concat(ar || Array.prototype.slice.call(from));
- };
-
- __await = function (v) {
- return this instanceof __await ? (this.v = v, this) : new __await(v);
- };
-
- __asyncGenerator = function (thisArg, _arguments, generator) {
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
- var g = generator.apply(thisArg, _arguments || []), i, q = [];
- return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
- function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
- function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
- function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
- function fulfill(value) { resume("next", value); }
- function reject(value) { resume("throw", value); }
- function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
- };
-
- __asyncDelegator = function (o) {
- var i, p;
- return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
- function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
- };
-
- __asyncValues = function (o) {
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
- var m = o[Symbol.asyncIterator], i;
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
- };
-
- __makeTemplateObject = function (cooked, raw) {
- if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
- return cooked;
- };
-
- var __setModuleDefault = Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- };
-
- __importStar = function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
-
- __importDefault = function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
-
- __classPrivateFieldGet = function (receiver, state, kind, f) {
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
- };
-
- __classPrivateFieldSet = function (receiver, state, value, kind, f) {
- if (kind === "m") throw new TypeError("Private method is not writable");
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
- };
-
- exporter("__extends", __extends);
- exporter("__assign", __assign);
- exporter("__rest", __rest);
- exporter("__decorate", __decorate);
- exporter("__param", __param);
- exporter("__metadata", __metadata);
- exporter("__awaiter", __awaiter);
- exporter("__generator", __generator);
- exporter("__exportStar", __exportStar);
- exporter("__createBinding", __createBinding);
- exporter("__values", __values);
- exporter("__read", __read);
- exporter("__spread", __spread);
- exporter("__spreadArrays", __spreadArrays);
- exporter("__spreadArray", __spreadArray);
- exporter("__await", __await);
- exporter("__asyncGenerator", __asyncGenerator);
- exporter("__asyncDelegator", __asyncDelegator);
- exporter("__asyncValues", __asyncValues);
- exporter("__makeTemplateObject", __makeTemplateObject);
- exporter("__importStar", __importStar);
- exporter("__importDefault", __importDefault);
- exporter("__classPrivateFieldGet", __classPrivateFieldGet);
- exporter("__classPrivateFieldSet", __classPrivateFieldSet);
-});
-
-
-/***/ }),
-
-/***/ 2856:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-"use strict";
-
-
-const WritableStream = (__nccwpck_require__(4492).Writable)
-const inherits = (__nccwpck_require__(7261).inherits)
-
-const StreamSearch = __nccwpck_require__(8534)
-
-const PartStream = __nccwpck_require__(8710)
-const HeaderParser = __nccwpck_require__(333)
-
-const DASH = 45
-const B_ONEDASH = Buffer.from('-')
-const B_CRLF = Buffer.from('\r\n')
-const EMPTY_FN = function () {}
-
-function Dicer (cfg) {
- if (!(this instanceof Dicer)) { return new Dicer(cfg) }
- WritableStream.call(this, cfg)
-
- if (!cfg || (!cfg.headerFirst && typeof cfg.boundary !== 'string')) { throw new TypeError('Boundary required') }
-
- if (typeof cfg.boundary === 'string') { this.setBoundary(cfg.boundary) } else { this._bparser = undefined }
-
- this._headerFirst = cfg.headerFirst
-
- this._dashes = 0
- this._parts = 0
- this._finished = false
- this._realFinish = false
- this._isPreamble = true
- this._justMatched = false
- this._firstWrite = true
- this._inHeader = true
- this._part = undefined
- this._cb = undefined
- this._ignoreData = false
- this._partOpts = { highWaterMark: cfg.partHwm }
- this._pause = false
-
- const self = this
- this._hparser = new HeaderParser(cfg)
- this._hparser.on('header', function (header) {
- self._inHeader = false
- self._part.emit('header', header)
- })
-}
-inherits(Dicer, WritableStream)
-
-Dicer.prototype.emit = function (ev) {
- if (ev === 'finish' && !this._realFinish) {
- if (!this._finished) {
- const self = this
- process.nextTick(function () {
- self.emit('error', new Error('Unexpected end of multipart data'))
- if (self._part && !self._ignoreData) {
- const type = (self._isPreamble ? 'Preamble' : 'Part')
- self._part.emit('error', new Error(type + ' terminated early due to unexpected end of multipart data'))
- self._part.push(null)
- process.nextTick(function () {
- self._realFinish = true
- self.emit('finish')
- self._realFinish = false
- })
- return
- }
- self._realFinish = true
- self.emit('finish')
- self._realFinish = false
- })
- }
- } else { WritableStream.prototype.emit.apply(this, arguments) }
-}
-
-Dicer.prototype._write = function (data, encoding, cb) {
- // ignore unexpected data (e.g. extra trailer data after finished)
- if (!this._hparser && !this._bparser) { return cb() }
-
- if (this._headerFirst && this._isPreamble) {
- if (!this._part) {
- this._part = new PartStream(this._partOpts)
- if (this._events.preamble) { this.emit('preamble', this._part) } else { this._ignore() }
- }
- const r = this._hparser.push(data)
- if (!this._inHeader && r !== undefined && r < data.length) { data = data.slice(r) } else { return cb() }
- }
-
- // allows for "easier" testing
- if (this._firstWrite) {
- this._bparser.push(B_CRLF)
- this._firstWrite = false
- }
-
- this._bparser.push(data)
-
- if (this._pause) { this._cb = cb } else { cb() }
-}
-
-Dicer.prototype.reset = function () {
- this._part = undefined
- this._bparser = undefined
- this._hparser = undefined
-}
-
-Dicer.prototype.setBoundary = function (boundary) {
- const self = this
- this._bparser = new StreamSearch('\r\n--' + boundary)
- this._bparser.on('info', function (isMatch, data, start, end) {
- self._oninfo(isMatch, data, start, end)
- })
-}
-
-Dicer.prototype._ignore = function () {
- if (this._part && !this._ignoreData) {
- this._ignoreData = true
- this._part.on('error', EMPTY_FN)
- // we must perform some kind of read on the stream even though we are
- // ignoring the data, otherwise node's Readable stream will not emit 'end'
- // after pushing null to the stream
- this._part.resume()
- }
-}
-
-Dicer.prototype._oninfo = function (isMatch, data, start, end) {
- let buf; const self = this; let i = 0; let r; let shouldWriteMore = true
-
- if (!this._part && this._justMatched && data) {
- while (this._dashes < 2 && (start + i) < end) {
- if (data[start + i] === DASH) {
- ++i
- ++this._dashes
- } else {
- if (this._dashes) { buf = B_ONEDASH }
- this._dashes = 0
- break
- }
- }
- if (this._dashes === 2) {
- if ((start + i) < end && this._events.trailer) { this.emit('trailer', data.slice(start + i, end)) }
- this.reset()
- this._finished = true
- // no more parts will be added
- if (self._parts === 0) {
- self._realFinish = true
- self.emit('finish')
- self._realFinish = false
- }
- }
- if (this._dashes) { return }
- }
- if (this._justMatched) { this._justMatched = false }
- if (!this._part) {
- this._part = new PartStream(this._partOpts)
- this._part._read = function (n) {
- self._unpause()
- }
- if (this._isPreamble && this._events.preamble) { this.emit('preamble', this._part) } else if (this._isPreamble !== true && this._events.part) { this.emit('part', this._part) } else { this._ignore() }
- if (!this._isPreamble) { this._inHeader = true }
- }
- if (data && start < end && !this._ignoreData) {
- if (this._isPreamble || !this._inHeader) {
- if (buf) { shouldWriteMore = this._part.push(buf) }
- shouldWriteMore = this._part.push(data.slice(start, end))
- if (!shouldWriteMore) { this._pause = true }
- } else if (!this._isPreamble && this._inHeader) {
- if (buf) { this._hparser.push(buf) }
- r = this._hparser.push(data.slice(start, end))
- if (!this._inHeader && r !== undefined && r < end) { this._oninfo(false, data, start + r, end) }
- }
- }
- if (isMatch) {
- this._hparser.reset()
- if (this._isPreamble) { this._isPreamble = false } else {
- if (start !== end) {
- ++this._parts
- this._part.on('end', function () {
- if (--self._parts === 0) {
- if (self._finished) {
- self._realFinish = true
- self.emit('finish')
- self._realFinish = false
- } else {
- self._unpause()
- }
- }
- })
- }
- }
- this._part.push(null)
- this._part = undefined
- this._ignoreData = false
- this._justMatched = true
- this._dashes = 0
- }
-}
-
-Dicer.prototype._unpause = function () {
- if (!this._pause) { return }
-
- this._pause = false
- if (this._cb) {
- const cb = this._cb
- this._cb = undefined
- cb()
- }
-}
-
-module.exports = Dicer
-
-
-/***/ }),
-
-/***/ 333:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-"use strict";
-
-
-const EventEmitter = (__nccwpck_require__(5673).EventEmitter)
-const inherits = (__nccwpck_require__(7261).inherits)
-const getLimit = __nccwpck_require__(9692)
-
-const StreamSearch = __nccwpck_require__(8534)
-
-const B_DCRLF = Buffer.from('\r\n\r\n')
-const RE_CRLF = /\r\n/g
-const RE_HDR = /^([^:]+):[ \t]?([\x00-\xFF]+)?$/ // eslint-disable-line no-control-regex
-
-function HeaderParser (cfg) {
- EventEmitter.call(this)
-
- cfg = cfg || {}
- const self = this
- this.nread = 0
- this.maxed = false
- this.npairs = 0
- this.maxHeaderPairs = getLimit(cfg, 'maxHeaderPairs', 2000)
- this.maxHeaderSize = getLimit(cfg, 'maxHeaderSize', 80 * 1024)
- this.buffer = ''
- this.header = {}
- this.finished = false
- this.ss = new StreamSearch(B_DCRLF)
- this.ss.on('info', function (isMatch, data, start, end) {
- if (data && !self.maxed) {
- if (self.nread + end - start >= self.maxHeaderSize) {
- end = self.maxHeaderSize - self.nread + start
- self.nread = self.maxHeaderSize
- self.maxed = true
- } else { self.nread += (end - start) }
-
- self.buffer += data.toString('binary', start, end)
- }
- if (isMatch) { self._finish() }
- })
-}
-inherits(HeaderParser, EventEmitter)
-
-HeaderParser.prototype.push = function (data) {
- const r = this.ss.push(data)
- if (this.finished) { return r }
-}
-
-HeaderParser.prototype.reset = function () {
- this.finished = false
- this.buffer = ''
- this.header = {}
- this.ss.reset()
-}
-
-HeaderParser.prototype._finish = function () {
- if (this.buffer) { this._parseHeader() }
- this.ss.matches = this.ss.maxMatches
- const header = this.header
- this.header = {}
- this.buffer = ''
- this.finished = true
- this.nread = this.npairs = 0
- this.maxed = false
- this.emit('header', header)
-}
-
-HeaderParser.prototype._parseHeader = function () {
- if (this.npairs === this.maxHeaderPairs) { return }
-
- const lines = this.buffer.split(RE_CRLF)
- const len = lines.length
- let m, h
-
- for (var i = 0; i < len; ++i) { // eslint-disable-line no-var
- if (lines[i].length === 0) { continue }
- if (lines[i][0] === '\t' || lines[i][0] === ' ') {
- // folded header content
- // RFC2822 says to just remove the CRLF and not the whitespace following
- // it, so we follow the RFC and include the leading whitespace ...
- if (h) {
- this.header[h][this.header[h].length - 1] += lines[i]
- continue
- }
- }
-
- const posColon = lines[i].indexOf(':')
- if (
- posColon === -1 ||
- posColon === 0
- ) {
- return
- }
- m = RE_HDR.exec(lines[i])
- h = m[1].toLowerCase()
- this.header[h] = this.header[h] || []
- this.header[h].push((m[2] || ''))
- if (++this.npairs === this.maxHeaderPairs) { break }
- }
-}
-
-module.exports = HeaderParser
-
-
-/***/ }),
-
-/***/ 8710:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-"use strict";
-
-
-const inherits = (__nccwpck_require__(7261).inherits)
-const ReadableStream = (__nccwpck_require__(4492).Readable)
-
-function PartStream (opts) {
- ReadableStream.call(this, opts)
-}
-inherits(PartStream, ReadableStream)
-
-PartStream.prototype._read = function (n) {}
-
-module.exports = PartStream
-
-
-/***/ }),
-
-/***/ 8534:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-"use strict";
-
-
-/**
- * Copyright Brian White. All rights reserved.
- *
- * @see https://github.com/mscdex/streamsearch
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Based heavily on the Streaming Boyer-Moore-Horspool C++ implementation
- * by Hongli Lai at: https://github.com/FooBarWidget/boyer-moore-horspool
- */
-const EventEmitter = (__nccwpck_require__(5673).EventEmitter)
-const inherits = (__nccwpck_require__(7261).inherits)
-
-function SBMH (needle) {
- if (typeof needle === 'string') {
- needle = Buffer.from(needle)
- }
-
- if (!Buffer.isBuffer(needle)) {
- throw new TypeError('The needle has to be a String or a Buffer.')
- }
-
- const needleLength = needle.length
-
- if (needleLength === 0) {
- throw new Error('The needle cannot be an empty String/Buffer.')
- }
-
- if (needleLength > 256) {
- throw new Error('The needle cannot have a length bigger than 256.')
- }
-
- this.maxMatches = Infinity
- this.matches = 0
-
- this._occ = new Array(256)
- .fill(needleLength) // Initialize occurrence table.
- this._lookbehind_size = 0
- this._needle = needle
- this._bufpos = 0
-
- this._lookbehind = Buffer.alloc(needleLength)
-
- // Populate occurrence table with analysis of the needle,
- // ignoring last letter.
- for (var i = 0; i < needleLength - 1; ++i) { // eslint-disable-line no-var
- this._occ[needle[i]] = needleLength - 1 - i
- }
-}
-inherits(SBMH, EventEmitter)
-
-SBMH.prototype.reset = function () {
- this._lookbehind_size = 0
- this.matches = 0
- this._bufpos = 0
-}
-
-SBMH.prototype.push = function (chunk, pos) {
- if (!Buffer.isBuffer(chunk)) {
- chunk = Buffer.from(chunk, 'binary')
- }
- const chlen = chunk.length
- this._bufpos = pos || 0
- let r
- while (r !== chlen && this.matches < this.maxMatches) { r = this._sbmh_feed(chunk) }
- return r
-}
-
-SBMH.prototype._sbmh_feed = function (data) {
- const len = data.length
- const needle = this._needle
- const needleLength = needle.length
- const lastNeedleChar = needle[needleLength - 1]
-
- // Positive: points to a position in `data`
- // pos == 3 points to data[3]
- // Negative: points to a position in the lookbehind buffer
- // pos == -2 points to lookbehind[lookbehind_size - 2]
- let pos = -this._lookbehind_size
- let ch
-
- if (pos < 0) {
- // Lookbehind buffer is not empty. Perform Boyer-Moore-Horspool
- // search with character lookup code that considers both the
- // lookbehind buffer and the current round's haystack data.
- //
- // Loop until
- // there is a match.
- // or until
- // we've moved past the position that requires the
- // lookbehind buffer. In this case we switch to the
- // optimized loop.
- // or until
- // the character to look at lies outside the haystack.
- while (pos < 0 && pos <= len - needleLength) {
- ch = this._sbmh_lookup_char(data, pos + needleLength - 1)
-
- if (
- ch === lastNeedleChar &&
- this._sbmh_memcmp(data, pos, needleLength - 1)
- ) {
- this._lookbehind_size = 0
- ++this.matches
- this.emit('info', true)
-
- return (this._bufpos = pos + needleLength)
- }
- pos += this._occ[ch]
- }
-
- // No match.
-
- if (pos < 0) {
- // There's too few data for Boyer-Moore-Horspool to run,
- // so let's use a different algorithm to skip as much as
- // we can.
- // Forward pos until
- // the trailing part of lookbehind + data
- // looks like the beginning of the needle
- // or until
- // pos == 0
- while (pos < 0 && !this._sbmh_memcmp(data, pos, len - pos)) { ++pos }
- }
-
- if (pos >= 0) {
- // Discard lookbehind buffer.
- this.emit('info', false, this._lookbehind, 0, this._lookbehind_size)
- this._lookbehind_size = 0
- } else {
- // Cut off part of the lookbehind buffer that has
- // been processed and append the entire haystack
- // into it.
- const bytesToCutOff = this._lookbehind_size + pos
- if (bytesToCutOff > 0) {
- // The cut off data is guaranteed not to contain the needle.
- this.emit('info', false, this._lookbehind, 0, bytesToCutOff)
- }
-
- this._lookbehind.copy(this._lookbehind, 0, bytesToCutOff,
- this._lookbehind_size - bytesToCutOff)
- this._lookbehind_size -= bytesToCutOff
-
- data.copy(this._lookbehind, this._lookbehind_size)
- this._lookbehind_size += len
-
- this._bufpos = len
- return len
- }
- }
-
- pos += (pos >= 0) * this._bufpos
-
- // Lookbehind buffer is now empty. We only need to check if the
- // needle is in the haystack.
- if (data.indexOf(needle, pos) !== -1) {
- pos = data.indexOf(needle, pos)
- ++this.matches
- if (pos > 0) { this.emit('info', true, data, this._bufpos, pos) } else { this.emit('info', true) }
-
- return (this._bufpos = pos + needleLength)
- } else {
- pos = len - needleLength
- }
-
- // There was no match. If there's trailing haystack data that we cannot
- // match yet using the Boyer-Moore-Horspool algorithm (because the trailing
- // data is less than the needle size) then match using a modified
- // algorithm that starts matching from the beginning instead of the end.
- // Whatever trailing data is left after running this algorithm is added to
- // the lookbehind buffer.
- while (
- pos < len &&
- (
- data[pos] !== needle[0] ||
- (
- (Buffer.compare(
- data.subarray(pos, pos + len - pos),
- needle.subarray(0, len - pos)
- ) !== 0)
- )
- )
- ) {
- ++pos
- }
- if (pos < len) {
- data.copy(this._lookbehind, 0, pos, pos + (len - pos))
- this._lookbehind_size = len - pos
- }
-
- // Everything until pos is guaranteed not to contain needle data.
- if (pos > 0) { this.emit('info', false, data, this._bufpos, pos < len ? pos : len) }
-
- this._bufpos = len
- return len
-}
-
-SBMH.prototype._sbmh_lookup_char = function (data, pos) {
- return (pos < 0)
- ? this._lookbehind[this._lookbehind_size + pos]
- : data[pos]
-}
-
-SBMH.prototype._sbmh_memcmp = function (data, pos, len) {
- for (var i = 0; i < len; ++i) { // eslint-disable-line no-var
- if (this._sbmh_lookup_char(data, pos + i) !== this._needle[i]) { return false }
- }
- return true
-}
-
-module.exports = SBMH
-
-
-/***/ }),
-
-/***/ 3438:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-"use strict";
-
-
-const WritableStream = (__nccwpck_require__(4492).Writable)
-const { inherits } = __nccwpck_require__(7261)
-const Dicer = __nccwpck_require__(2856)
-
-const MultipartParser = __nccwpck_require__(415)
-const UrlencodedParser = __nccwpck_require__(6780)
-const parseParams = __nccwpck_require__(4426)
-
-function Busboy (opts) {
- if (!(this instanceof Busboy)) { return new Busboy(opts) }
-
- if (typeof opts !== 'object') {
- throw new TypeError('Busboy expected an options-Object.')
- }
- if (typeof opts.headers !== 'object') {
- throw new TypeError('Busboy expected an options-Object with headers-attribute.')
- }
- if (typeof opts.headers['content-type'] !== 'string') {
- throw new TypeError('Missing Content-Type-header.')
- }
-
- const {
- headers,
- ...streamOptions
- } = opts
-
- this.opts = {
- autoDestroy: false,
- ...streamOptions
- }
- WritableStream.call(this, this.opts)
-
- this._done = false
- this._parser = this.getParserByHeaders(headers)
- this._finished = false
-}
-inherits(Busboy, WritableStream)
-
-Busboy.prototype.emit = function (ev) {
- if (ev === 'finish') {
- if (!this._done) {
- this._parser?.end()
- return
- } else if (this._finished) {
- return
- }
- this._finished = true
- }
- WritableStream.prototype.emit.apply(this, arguments)
-}
-
-Busboy.prototype.getParserByHeaders = function (headers) {
- const parsed = parseParams(headers['content-type'])
-
- const cfg = {
- defCharset: this.opts.defCharset,
- fileHwm: this.opts.fileHwm,
- headers,
- highWaterMark: this.opts.highWaterMark,
- isPartAFile: this.opts.isPartAFile,
- limits: this.opts.limits,
- parsedConType: parsed,
- preservePath: this.opts.preservePath
- }
-
- if (MultipartParser.detect.test(parsed[0])) {
- return new MultipartParser(this, cfg)
- }
- if (UrlencodedParser.detect.test(parsed[0])) {
- return new UrlencodedParser(this, cfg)
- }
- throw new Error('Unsupported Content-Type.')
-}
-
-Busboy.prototype._write = function (chunk, encoding, cb) {
- this._parser.write(chunk, cb)
-}
-
-module.exports = Busboy
-module.exports["default"] = Busboy
-module.exports.Busboy = Busboy
-
-module.exports.Dicer = Dicer
-
-
-/***/ }),
-
-/***/ 415:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-"use strict";
-
-
-// TODO:
-// * support 1 nested multipart level
-// (see second multipart example here:
-// http://www.w3.org/TR/html401/interact/forms.html#didx-multipartform-data)
-// * support limits.fieldNameSize
-// -- this will require modifications to utils.parseParams
-
-const { Readable } = __nccwpck_require__(4492)
-const { inherits } = __nccwpck_require__(7261)
-
-const Dicer = __nccwpck_require__(2856)
-
-const parseParams = __nccwpck_require__(4426)
-const decodeText = __nccwpck_require__(9136)
-const basename = __nccwpck_require__(496)
-const getLimit = __nccwpck_require__(9692)
-
-const RE_BOUNDARY = /^boundary$/i
-const RE_FIELD = /^form-data$/i
-const RE_CHARSET = /^charset$/i
-const RE_FILENAME = /^filename$/i
-const RE_NAME = /^name$/i
-
-Multipart.detect = /^multipart\/form-data/i
-function Multipart (boy, cfg) {
- let i
- let len
- const self = this
- let boundary
- const limits = cfg.limits
- const isPartAFile = cfg.isPartAFile || ((fieldName, contentType, fileName) => (contentType === 'application/octet-stream' || fileName !== undefined))
- const parsedConType = cfg.parsedConType || []
- const defCharset = cfg.defCharset || 'utf8'
- const preservePath = cfg.preservePath
- const fileOpts = { highWaterMark: cfg.fileHwm }
-
- for (i = 0, len = parsedConType.length; i < len; ++i) {
- if (Array.isArray(parsedConType[i]) &&
- RE_BOUNDARY.test(parsedConType[i][0])) {
- boundary = parsedConType[i][1]
- break
- }
- }
-
- function checkFinished () {
- if (nends === 0 && finished && !boy._done) {
- finished = false
- self.end()
- }
- }
-
- if (typeof boundary !== 'string') { throw new Error('Multipart: Boundary not found') }
-
- const fieldSizeLimit = getLimit(limits, 'fieldSize', 1 * 1024 * 1024)
- const fileSizeLimit = getLimit(limits, 'fileSize', Infinity)
- const filesLimit = getLimit(limits, 'files', Infinity)
- const fieldsLimit = getLimit(limits, 'fields', Infinity)
- const partsLimit = getLimit(limits, 'parts', Infinity)
- const headerPairsLimit = getLimit(limits, 'headerPairs', 2000)
- const headerSizeLimit = getLimit(limits, 'headerSize', 80 * 1024)
-
- let nfiles = 0
- let nfields = 0
- let nends = 0
- let curFile
- let curField
- let finished = false
-
- this._needDrain = false
- this._pause = false
- this._cb = undefined
- this._nparts = 0
- this._boy = boy
-
- const parserCfg = {
- boundary,
- maxHeaderPairs: headerPairsLimit,
- maxHeaderSize: headerSizeLimit,
- partHwm: fileOpts.highWaterMark,
- highWaterMark: cfg.highWaterMark
- }
-
- this.parser = new Dicer(parserCfg)
- this.parser.on('drain', function () {
- self._needDrain = false
- if (self._cb && !self._pause) {
- const cb = self._cb
- self._cb = undefined
- cb()
- }
- }).on('part', function onPart (part) {
- if (++self._nparts > partsLimit) {
- self.parser.removeListener('part', onPart)
- self.parser.on('part', skipPart)
- boy.hitPartsLimit = true
- boy.emit('partsLimit')
- return skipPart(part)
- }
-
- // hack because streams2 _always_ doesn't emit 'end' until nextTick, so let
- // us emit 'end' early since we know the part has ended if we are already
- // seeing the next part
- if (curField) {
- const field = curField
- field.emit('end')
- field.removeAllListeners('end')
- }
-
- part.on('header', function (header) {
- let contype
- let fieldname
- let parsed
- let charset
- let encoding
- let filename
- let nsize = 0
-
- if (header['content-type']) {
- parsed = parseParams(header['content-type'][0])
- if (parsed[0]) {
- contype = parsed[0].toLowerCase()
- for (i = 0, len = parsed.length; i < len; ++i) {
- if (RE_CHARSET.test(parsed[i][0])) {
- charset = parsed[i][1].toLowerCase()
- break
- }
- }
- }
- }
-
- if (contype === undefined) { contype = 'text/plain' }
- if (charset === undefined) { charset = defCharset }
-
- if (header['content-disposition']) {
- parsed = parseParams(header['content-disposition'][0])
- if (!RE_FIELD.test(parsed[0])) { return skipPart(part) }
- for (i = 0, len = parsed.length; i < len; ++i) {
- if (RE_NAME.test(parsed[i][0])) {
- fieldname = parsed[i][1]
- } else if (RE_FILENAME.test(parsed[i][0])) {
- filename = parsed[i][1]
- if (!preservePath) { filename = basename(filename) }
- }
- }
- } else { return skipPart(part) }
-
- if (header['content-transfer-encoding']) { encoding = header['content-transfer-encoding'][0].toLowerCase() } else { encoding = '7bit' }
-
- let onData,
- onEnd
-
- if (isPartAFile(fieldname, contype, filename)) {
- // file/binary field
- if (nfiles === filesLimit) {
- if (!boy.hitFilesLimit) {
- boy.hitFilesLimit = true
- boy.emit('filesLimit')
- }
- return skipPart(part)
- }
-
- ++nfiles
-
- if (!boy._events.file) {
- self.parser._ignore()
- return
- }
-
- ++nends
- const file = new FileStream(fileOpts)
- curFile = file
- file.on('end', function () {
- --nends
- self._pause = false
- checkFinished()
- if (self._cb && !self._needDrain) {
- const cb = self._cb
- self._cb = undefined
- cb()
- }
- })
- file._read = function (n) {
- if (!self._pause) { return }
- self._pause = false
- if (self._cb && !self._needDrain) {
- const cb = self._cb
- self._cb = undefined
- cb()
- }
- }
- boy.emit('file', fieldname, file, filename, encoding, contype)
-
- onData = function (data) {
- if ((nsize += data.length) > fileSizeLimit) {
- const extralen = fileSizeLimit - nsize + data.length
- if (extralen > 0) { file.push(data.slice(0, extralen)) }
- file.truncated = true
- file.bytesRead = fileSizeLimit
- part.removeAllListeners('data')
- file.emit('limit')
- return
- } else if (!file.push(data)) { self._pause = true }
-
- file.bytesRead = nsize
- }
-
- onEnd = function () {
- curFile = undefined
- file.push(null)
- }
- } else {
- // non-file field
- if (nfields === fieldsLimit) {
- if (!boy.hitFieldsLimit) {
- boy.hitFieldsLimit = true
- boy.emit('fieldsLimit')
- }
- return skipPart(part)
- }
-
- ++nfields
- ++nends
- let buffer = ''
- let truncated = false
- curField = part
-
- onData = function (data) {
- if ((nsize += data.length) > fieldSizeLimit) {
- const extralen = (fieldSizeLimit - (nsize - data.length))
- buffer += data.toString('binary', 0, extralen)
- truncated = true
- part.removeAllListeners('data')
- } else { buffer += data.toString('binary') }
- }
-
- onEnd = function () {
- curField = undefined
- if (buffer.length) { buffer = decodeText(buffer, 'binary', charset) }
- boy.emit('field', fieldname, buffer, false, truncated, encoding, contype)
- --nends
- checkFinished()
- }
- }
-
- /* As of node@2efe4ab761666 (v0.10.29+/v0.11.14+), busboy had become
- broken. Streams2/streams3 is a huge black box of confusion, but
- somehow overriding the sync state seems to fix things again (and still
- seems to work for previous node versions).
- */
- part._readableState.sync = false
-
- part.on('data', onData)
- part.on('end', onEnd)
- }).on('error', function (err) {
- if (curFile) { curFile.emit('error', err) }
- })
- }).on('error', function (err) {
- boy.emit('error', err)
- }).on('finish', function () {
- finished = true
- checkFinished()
- })
-}
-
-Multipart.prototype.write = function (chunk, cb) {
- const r = this.parser.write(chunk)
- if (r && !this._pause) {
- cb()
- } else {
- this._needDrain = !r
- this._cb = cb
- }
-}
-
-Multipart.prototype.end = function () {
- const self = this
-
- if (self.parser.writable) {
- self.parser.end()
- } else if (!self._boy._done) {
- process.nextTick(function () {
- self._boy._done = true
- self._boy.emit('finish')
- })
- }
-}
-
-function skipPart (part) {
- part.resume()
-}
-
-function FileStream (opts) {
- Readable.call(this, opts)
-
- this.bytesRead = 0
-
- this.truncated = false
-}
-
-inherits(FileStream, Readable)
-
-FileStream.prototype._read = function (n) {}
-
-module.exports = Multipart
-
-
-/***/ }),
-
-/***/ 6780:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-"use strict";
-
-
-const Decoder = __nccwpck_require__(9730)
-const decodeText = __nccwpck_require__(9136)
-const getLimit = __nccwpck_require__(9692)
-
-const RE_CHARSET = /^charset$/i
-
-UrlEncoded.detect = /^application\/x-www-form-urlencoded/i
-function UrlEncoded (boy, cfg) {
- const limits = cfg.limits
- const parsedConType = cfg.parsedConType
- this.boy = boy
-
- this.fieldSizeLimit = getLimit(limits, 'fieldSize', 1 * 1024 * 1024)
- this.fieldNameSizeLimit = getLimit(limits, 'fieldNameSize', 100)
- this.fieldsLimit = getLimit(limits, 'fields', Infinity)
-
- let charset
- for (var i = 0, len = parsedConType.length; i < len; ++i) { // eslint-disable-line no-var
- if (Array.isArray(parsedConType[i]) &&
- RE_CHARSET.test(parsedConType[i][0])) {
- charset = parsedConType[i][1].toLowerCase()
- break
- }
- }
-
- if (charset === undefined) { charset = cfg.defCharset || 'utf8' }
-
- this.decoder = new Decoder()
- this.charset = charset
- this._fields = 0
- this._state = 'key'
- this._checkingBytes = true
- this._bytesKey = 0
- this._bytesVal = 0
- this._key = ''
- this._val = ''
- this._keyTrunc = false
- this._valTrunc = false
- this._hitLimit = false
-}
-
-UrlEncoded.prototype.write = function (data, cb) {
- if (this._fields === this.fieldsLimit) {
- if (!this.boy.hitFieldsLimit) {
- this.boy.hitFieldsLimit = true
- this.boy.emit('fieldsLimit')
- }
- return cb()
- }
-
- let idxeq; let idxamp; let i; let p = 0; const len = data.length
-
- while (p < len) {
- if (this._state === 'key') {
- idxeq = idxamp = undefined
- for (i = p; i < len; ++i) {
- if (!this._checkingBytes) { ++p }
- if (data[i] === 0x3D/* = */) {
- idxeq = i
- break
- } else if (data[i] === 0x26/* & */) {
- idxamp = i
- break
- }
- if (this._checkingBytes && this._bytesKey === this.fieldNameSizeLimit) {
- this._hitLimit = true
- break
- } else if (this._checkingBytes) { ++this._bytesKey }
- }
-
- if (idxeq !== undefined) {
- // key with assignment
- if (idxeq > p) { this._key += this.decoder.write(data.toString('binary', p, idxeq)) }
- this._state = 'val'
-
- this._hitLimit = false
- this._checkingBytes = true
- this._val = ''
- this._bytesVal = 0
- this._valTrunc = false
- this.decoder.reset()
-
- p = idxeq + 1
- } else if (idxamp !== undefined) {
- // key with no assignment
- ++this._fields
- let key; const keyTrunc = this._keyTrunc
- if (idxamp > p) { key = (this._key += this.decoder.write(data.toString('binary', p, idxamp))) } else { key = this._key }
-
- this._hitLimit = false
- this._checkingBytes = true
- this._key = ''
- this._bytesKey = 0
- this._keyTrunc = false
- this.decoder.reset()
-
- if (key.length) {
- this.boy.emit('field', decodeText(key, 'binary', this.charset),
- '',
- keyTrunc,
- false)
- }
-
- p = idxamp + 1
- if (this._fields === this.fieldsLimit) { return cb() }
- } else if (this._hitLimit) {
- // we may not have hit the actual limit if there are encoded bytes...
- if (i > p) { this._key += this.decoder.write(data.toString('binary', p, i)) }
- p = i
- if ((this._bytesKey = this._key.length) === this.fieldNameSizeLimit) {
- // yep, we actually did hit the limit
- this._checkingBytes = false
- this._keyTrunc = true
- }
- } else {
- if (p < len) { this._key += this.decoder.write(data.toString('binary', p)) }
- p = len
- }
- } else {
- idxamp = undefined
- for (i = p; i < len; ++i) {
- if (!this._checkingBytes) { ++p }
- if (data[i] === 0x26/* & */) {
- idxamp = i
- break
- }
- if (this._checkingBytes && this._bytesVal === this.fieldSizeLimit) {
- this._hitLimit = true
- break
- } else if (this._checkingBytes) { ++this._bytesVal }
- }
-
- if (idxamp !== undefined) {
- ++this._fields
- if (idxamp > p) { this._val += this.decoder.write(data.toString('binary', p, idxamp)) }
- this.boy.emit('field', decodeText(this._key, 'binary', this.charset),
- decodeText(this._val, 'binary', this.charset),
- this._keyTrunc,
- this._valTrunc)
- this._state = 'key'
-
- this._hitLimit = false
- this._checkingBytes = true
- this._key = ''
- this._bytesKey = 0
- this._keyTrunc = false
- this.decoder.reset()
-
- p = idxamp + 1
- if (this._fields === this.fieldsLimit) { return cb() }
- } else if (this._hitLimit) {
- // we may not have hit the actual limit if there are encoded bytes...
- if (i > p) { this._val += this.decoder.write(data.toString('binary', p, i)) }
- p = i
- if ((this._val === '' && this.fieldSizeLimit === 0) ||
- (this._bytesVal = this._val.length) === this.fieldSizeLimit) {
- // yep, we actually did hit the limit
- this._checkingBytes = false
- this._valTrunc = true
- }
- } else {
- if (p < len) { this._val += this.decoder.write(data.toString('binary', p)) }
- p = len
- }
- }
- }
- cb()
-}
-
-UrlEncoded.prototype.end = function () {
- if (this.boy._done) { return }
-
- if (this._state === 'key' && this._key.length > 0) {
- this.boy.emit('field', decodeText(this._key, 'binary', this.charset),
- '',
- this._keyTrunc,
- false)
- } else if (this._state === 'val') {
- this.boy.emit('field', decodeText(this._key, 'binary', this.charset),
- decodeText(this._val, 'binary', this.charset),
- this._keyTrunc,
- this._valTrunc)
- }
- this.boy._done = true
- this.boy.emit('finish')
-}
-
-module.exports = UrlEncoded
-
-
-/***/ }),
-
-/***/ 9730:
-/***/ ((module) => {
-
-"use strict";
-
-
-const RE_PLUS = /\+/g
-
-const HEX = [
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
- 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-]
-
-function Decoder () {
- this.buffer = undefined
-}
-Decoder.prototype.write = function (str) {
- // Replace '+' with ' ' before decoding
- str = str.replace(RE_PLUS, ' ')
- let res = ''
- let i = 0; let p = 0; const len = str.length
- for (; i < len; ++i) {
- if (this.buffer !== undefined) {
- if (!HEX[str.charCodeAt(i)]) {
- res += '%' + this.buffer
- this.buffer = undefined
- --i // retry character
- } else {
- this.buffer += str[i]
- ++p
- if (this.buffer.length === 2) {
- res += String.fromCharCode(parseInt(this.buffer, 16))
- this.buffer = undefined
- }
- }
- } else if (str[i] === '%') {
- if (i > p) {
- res += str.substring(p, i)
- p = i
- }
- this.buffer = ''
- ++p
- }
- }
- if (p < len && this.buffer === undefined) { res += str.substring(p) }
- return res
-}
-Decoder.prototype.reset = function () {
- this.buffer = undefined
-}
-
-module.exports = Decoder
-
-
-/***/ }),
-
-/***/ 496:
-/***/ ((module) => {
-
-"use strict";
-
-
-module.exports = function basename (path) {
- if (typeof path !== 'string') { return '' }
- for (var i = path.length - 1; i >= 0; --i) { // eslint-disable-line no-var
- switch (path.charCodeAt(i)) {
- case 0x2F: // '/'
- case 0x5C: // '\'
- path = path.slice(i + 1)
- return (path === '..' || path === '.' ? '' : path)
- }
- }
- return (path === '..' || path === '.' ? '' : path)
-}
-
-
-/***/ }),
-
-/***/ 9136:
-/***/ ((module) => {
-
-"use strict";
-
-
-// Node has always utf-8
-const utf8Decoder = new TextDecoder('utf-8')
-const textDecoders = new Map([
- ['utf-8', utf8Decoder],
- ['utf8', utf8Decoder]
-])
-
-function decodeText (text, textEncoding, destEncoding) {
- if (text) {
- if (textDecoders.has(destEncoding)) {
- try {
- return textDecoders.get(destEncoding).decode(Buffer.from(text, textEncoding))
- } catch (e) { }
- } else {
- try {
- textDecoders.set(destEncoding, new TextDecoder(destEncoding))
- return textDecoders.get(destEncoding).decode(Buffer.from(text, textEncoding))
- } catch (e) { }
- }
- }
- return text
-}
-
-module.exports = decodeText
-
-
-/***/ }),
-
-/***/ 9692:
-/***/ ((module) => {
-
-"use strict";
-
-
-module.exports = function getLimit (limits, name, defaultLimit) {
- if (
- !limits ||
- limits[name] === undefined ||
- limits[name] === null
- ) { return defaultLimit }
-
- if (
- typeof limits[name] !== 'number' ||
- isNaN(limits[name])
- ) { throw new TypeError('Limit ' + name + ' is not a valid number') }
-
- return limits[name]
-}
-
-
-/***/ }),
-
-/***/ 4426:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-"use strict";
-
-
-const decodeText = __nccwpck_require__(9136)
-
-const RE_ENCODED = /%([a-fA-F0-9]{2})/g
-
-function encodedReplacer (match, byte) {
- return String.fromCharCode(parseInt(byte, 16))
-}
-
-function parseParams (str) {
- const res = []
- let state = 'key'
- let charset = ''
- let inquote = false
- let escaping = false
- let p = 0
- let tmp = ''
-
- for (var i = 0, len = str.length; i < len; ++i) { // eslint-disable-line no-var
- const char = str[i]
- if (char === '\\' && inquote) {
- if (escaping) { escaping = false } else {
- escaping = true
- continue
- }
- } else if (char === '"') {
- if (!escaping) {
- if (inquote) {
- inquote = false
- state = 'key'
- } else { inquote = true }
- continue
- } else { escaping = false }
- } else {
- if (escaping && inquote) { tmp += '\\' }
- escaping = false
- if ((state === 'charset' || state === 'lang') && char === "'") {
- if (state === 'charset') {
- state = 'lang'
- charset = tmp.substring(1)
- } else { state = 'value' }
- tmp = ''
- continue
- } else if (state === 'key' &&
- (char === '*' || char === '=') &&
- res.length) {
- if (char === '*') { state = 'charset' } else { state = 'value' }
- res[p] = [tmp, undefined]
- tmp = ''
- continue
- } else if (!inquote && char === ';') {
- state = 'key'
- if (charset) {
- if (tmp.length) {
- tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer),
- 'binary',
- charset)
- }
- charset = ''
- } else if (tmp.length) {
- tmp = decodeText(tmp, 'binary', 'utf8')
- }
- if (res[p] === undefined) { res[p] = tmp } else { res[p][1] = tmp }
- tmp = ''
- ++p
- continue
- } else if (!inquote && (char === ' ' || char === '\t')) { continue }
- }
- tmp += char
- }
- if (charset && tmp.length) {
- tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer),
- 'binary',
- charset)
- } else if (tmp) {
- tmp = decodeText(tmp, 'binary', 'utf8')
- }
-
- if (res[p] === undefined) {
- if (tmp) { res[p] = tmp }
- } else { res[p][1] = tmp }
-
- return res
-}
-
-module.exports = parseParams
-
-
-/***/ }),
-
-/***/ 7171:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-var __spreadArray = (this && this.__spreadArray) || function (to, from) {
- for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
- to[j] = from[i];
- return to;
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.ContextAPI = void 0;
-var NoopContextManager_1 = __nccwpck_require__(4118);
-var global_utils_1 = __nccwpck_require__(5135);
-var diag_1 = __nccwpck_require__(1877);
-var API_NAME = 'context';
-var NOOP_CONTEXT_MANAGER = new NoopContextManager_1.NoopContextManager();
-/**
- * Singleton object which represents the entry point to the OpenTelemetry Context API
- */
-var ContextAPI = /** @class */ (function () {
- /** Empty private constructor prevents end users from constructing a new instance of the API */
- function ContextAPI() {
- }
- /** Get the singleton instance of the Context API */
- ContextAPI.getInstance = function () {
- if (!this._instance) {
- this._instance = new ContextAPI();
- }
- return this._instance;
- };
- /**
- * Set the current context manager.
- *
- * @returns true if the context manager was successfully registered, else false
- */
- ContextAPI.prototype.setGlobalContextManager = function (contextManager) {
- return global_utils_1.registerGlobal(API_NAME, contextManager, diag_1.DiagAPI.instance());
- };
- /**
- * Get the currently active context
- */
- ContextAPI.prototype.active = function () {
- return this._getContextManager().active();
- };
- /**
- * Execute a function with an active context
- *
- * @param context context to be active during function execution
- * @param fn function to execute in a context
- * @param thisArg optional receiver to be used for calling fn
- * @param args optional arguments forwarded to fn
- */
- ContextAPI.prototype.with = function (context, fn, thisArg) {
- var _a;
- var args = [];
- for (var _i = 3; _i < arguments.length; _i++) {
- args[_i - 3] = arguments[_i];
- }
- return (_a = this._getContextManager()).with.apply(_a, __spreadArray([context, fn, thisArg], args));
- };
- /**
- * Bind a context to a target function or event emitter
- *
- * @param context context to bind to the event emitter or function. Defaults to the currently active context
- * @param target function or event emitter to bind
- */
- ContextAPI.prototype.bind = function (context, target) {
- return this._getContextManager().bind(context, target);
- };
- ContextAPI.prototype._getContextManager = function () {
- return global_utils_1.getGlobal(API_NAME) || NOOP_CONTEXT_MANAGER;
- };
- /** Disable and remove the global context manager */
- ContextAPI.prototype.disable = function () {
- this._getContextManager().disable();
- global_utils_1.unregisterGlobal(API_NAME, diag_1.DiagAPI.instance());
- };
- return ContextAPI;
-}());
-exports.ContextAPI = ContextAPI;
-//# sourceMappingURL=context.js.map
-
-/***/ }),
-
-/***/ 1877:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.DiagAPI = void 0;
-var ComponentLogger_1 = __nccwpck_require__(7978);
-var logLevelLogger_1 = __nccwpck_require__(9639);
-var types_1 = __nccwpck_require__(8077);
-var global_utils_1 = __nccwpck_require__(5135);
-var API_NAME = 'diag';
-/**
- * Singleton object which represents the entry point to the OpenTelemetry internal
- * diagnostic API
- */
-var DiagAPI = /** @class */ (function () {
- /**
- * Private internal constructor
- * @private
- */
- function DiagAPI() {
- function _logProxy(funcName) {
- return function () {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- var logger = global_utils_1.getGlobal('diag');
- // shortcut if logger not set
- if (!logger)
- return;
- return logger[funcName].apply(logger, args);
- };
- }
- // Using self local variable for minification purposes as 'this' cannot be minified
- var self = this;
- // DiagAPI specific functions
- self.setLogger = function (logger, logLevel) {
- var _a, _b;
- if (logLevel === void 0) { logLevel = types_1.DiagLogLevel.INFO; }
- if (logger === self) {
- // There isn't much we can do here.
- // Logging to the console might break the user application.
- // Try to log to self. If a logger was previously registered it will receive the log.
- var err = new Error('Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation');
- self.error((_a = err.stack) !== null && _a !== void 0 ? _a : err.message);
- return false;
- }
- var oldLogger = global_utils_1.getGlobal('diag');
- var newLogger = logLevelLogger_1.createLogLevelDiagLogger(logLevel, logger);
- // There already is an logger registered. We'll let it know before overwriting it.
- if (oldLogger) {
- var stack = (_b = new Error().stack) !== null && _b !== void 0 ? _b : '';
- oldLogger.warn("Current logger will be overwritten from " + stack);
- newLogger.warn("Current logger will overwrite one already registered from " + stack);
- }
- return global_utils_1.registerGlobal('diag', newLogger, self, true);
- };
- self.disable = function () {
- global_utils_1.unregisterGlobal(API_NAME, self);
- };
- self.createComponentLogger = function (options) {
- return new ComponentLogger_1.DiagComponentLogger(options);
- };
- self.verbose = _logProxy('verbose');
- self.debug = _logProxy('debug');
- self.info = _logProxy('info');
- self.warn = _logProxy('warn');
- self.error = _logProxy('error');
- }
- /** Get the singleton instance of the DiagAPI API */
- DiagAPI.instance = function () {
- if (!this._instance) {
- this._instance = new DiagAPI();
- }
- return this._instance;
- };
- return DiagAPI;
-}());
-exports.DiagAPI = DiagAPI;
-//# sourceMappingURL=diag.js.map
-
-/***/ }),
-
-/***/ 9909:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.PropagationAPI = void 0;
-var global_utils_1 = __nccwpck_require__(5135);
-var NoopTextMapPropagator_1 = __nccwpck_require__(2368);
-var TextMapPropagator_1 = __nccwpck_require__(865);
-var context_helpers_1 = __nccwpck_require__(7682);
-var utils_1 = __nccwpck_require__(8136);
-var diag_1 = __nccwpck_require__(1877);
-var API_NAME = 'propagation';
-var NOOP_TEXT_MAP_PROPAGATOR = new NoopTextMapPropagator_1.NoopTextMapPropagator();
-/**
- * Singleton object which represents the entry point to the OpenTelemetry Propagation API
- */
-var PropagationAPI = /** @class */ (function () {
- /** Empty private constructor prevents end users from constructing a new instance of the API */
- function PropagationAPI() {
- this.createBaggage = utils_1.createBaggage;
- this.getBaggage = context_helpers_1.getBaggage;
- this.setBaggage = context_helpers_1.setBaggage;
- this.deleteBaggage = context_helpers_1.deleteBaggage;
- }
- /** Get the singleton instance of the Propagator API */
- PropagationAPI.getInstance = function () {
- if (!this._instance) {
- this._instance = new PropagationAPI();
- }
- return this._instance;
- };
- /**
- * Set the current propagator.
- *
- * @returns true if the propagator was successfully registered, else false
- */
- PropagationAPI.prototype.setGlobalPropagator = function (propagator) {
- return global_utils_1.registerGlobal(API_NAME, propagator, diag_1.DiagAPI.instance());
- };
- /**
- * Inject context into a carrier to be propagated inter-process
- *
- * @param context Context carrying tracing data to inject
- * @param carrier carrier to inject context into
- * @param setter Function used to set values on the carrier
- */
- PropagationAPI.prototype.inject = function (context, carrier, setter) {
- if (setter === void 0) { setter = TextMapPropagator_1.defaultTextMapSetter; }
- return this._getGlobalPropagator().inject(context, carrier, setter);
- };
- /**
- * Extract context from a carrier
- *
- * @param context Context which the newly created context will inherit from
- * @param carrier Carrier to extract context from
- * @param getter Function used to extract keys from a carrier
- */
- PropagationAPI.prototype.extract = function (context, carrier, getter) {
- if (getter === void 0) { getter = TextMapPropagator_1.defaultTextMapGetter; }
- return this._getGlobalPropagator().extract(context, carrier, getter);
- };
- /**
- * Return a list of all fields which may be used by the propagator.
- */
- PropagationAPI.prototype.fields = function () {
- return this._getGlobalPropagator().fields();
- };
- /** Remove the global propagator */
- PropagationAPI.prototype.disable = function () {
- global_utils_1.unregisterGlobal(API_NAME, diag_1.DiagAPI.instance());
- };
- PropagationAPI.prototype._getGlobalPropagator = function () {
- return global_utils_1.getGlobal(API_NAME) || NOOP_TEXT_MAP_PROPAGATOR;
- };
- return PropagationAPI;
-}());
-exports.PropagationAPI = PropagationAPI;
-//# sourceMappingURL=propagation.js.map
-
-/***/ }),
-
-/***/ 1539:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.TraceAPI = void 0;
-var global_utils_1 = __nccwpck_require__(5135);
-var ProxyTracerProvider_1 = __nccwpck_require__(2285);
-var spancontext_utils_1 = __nccwpck_require__(9745);
-var context_utils_1 = __nccwpck_require__(3326);
-var diag_1 = __nccwpck_require__(1877);
-var API_NAME = 'trace';
-/**
- * Singleton object which represents the entry point to the OpenTelemetry Tracing API
- */
-var TraceAPI = /** @class */ (function () {
- /** Empty private constructor prevents end users from constructing a new instance of the API */
- function TraceAPI() {
- this._proxyTracerProvider = new ProxyTracerProvider_1.ProxyTracerProvider();
- this.wrapSpanContext = spancontext_utils_1.wrapSpanContext;
- this.isSpanContextValid = spancontext_utils_1.isSpanContextValid;
- this.deleteSpan = context_utils_1.deleteSpan;
- this.getSpan = context_utils_1.getSpan;
- this.getSpanContext = context_utils_1.getSpanContext;
- this.setSpan = context_utils_1.setSpan;
- this.setSpanContext = context_utils_1.setSpanContext;
- }
- /** Get the singleton instance of the Trace API */
- TraceAPI.getInstance = function () {
- if (!this._instance) {
- this._instance = new TraceAPI();
- }
- return this._instance;
- };
- /**
- * Set the current global tracer.
- *
- * @returns true if the tracer provider was successfully registered, else false
- */
- TraceAPI.prototype.setGlobalTracerProvider = function (provider) {
- var success = global_utils_1.registerGlobal(API_NAME, this._proxyTracerProvider, diag_1.DiagAPI.instance());
- if (success) {
- this._proxyTracerProvider.setDelegate(provider);
- }
- return success;
- };
- /**
- * Returns the global tracer provider.
- */
- TraceAPI.prototype.getTracerProvider = function () {
- return global_utils_1.getGlobal(API_NAME) || this._proxyTracerProvider;
- };
- /**
- * Returns a tracer from the global tracer provider.
- */
- TraceAPI.prototype.getTracer = function (name, version) {
- return this.getTracerProvider().getTracer(name, version);
- };
- /** Remove the global tracer provider */
- TraceAPI.prototype.disable = function () {
- global_utils_1.unregisterGlobal(API_NAME, diag_1.DiagAPI.instance());
- this._proxyTracerProvider = new ProxyTracerProvider_1.ProxyTracerProvider();
- };
- return TraceAPI;
-}());
-exports.TraceAPI = TraceAPI;
-//# sourceMappingURL=trace.js.map
-
-/***/ }),
-
-/***/ 7682:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.deleteBaggage = exports.setBaggage = exports.getBaggage = void 0;
-var context_1 = __nccwpck_require__(8242);
-/**
- * Baggage key
- */
-var BAGGAGE_KEY = context_1.createContextKey('OpenTelemetry Baggage Key');
-/**
- * Retrieve the current baggage from the given context
- *
- * @param {Context} Context that manage all context values
- * @returns {Baggage} Extracted baggage from the context
- */
-function getBaggage(context) {
- return context.getValue(BAGGAGE_KEY) || undefined;
-}
-exports.getBaggage = getBaggage;
-/**
- * Store a baggage in the given context
- *
- * @param {Context} Context that manage all context values
- * @param {Baggage} baggage that will be set in the actual context
- */
-function setBaggage(context, baggage) {
- return context.setValue(BAGGAGE_KEY, baggage);
-}
-exports.setBaggage = setBaggage;
-/**
- * Delete the baggage stored in the given context
- *
- * @param {Context} Context that manage all context values
- */
-function deleteBaggage(context) {
- return context.deleteValue(BAGGAGE_KEY);
-}
-exports.deleteBaggage = deleteBaggage;
-//# sourceMappingURL=context-helpers.js.map
-
-/***/ }),
-
-/***/ 4811:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.BaggageImpl = void 0;
-var BaggageImpl = /** @class */ (function () {
- function BaggageImpl(entries) {
- this._entries = entries ? new Map(entries) : new Map();
- }
- BaggageImpl.prototype.getEntry = function (key) {
- var entry = this._entries.get(key);
- if (!entry) {
- return undefined;
- }
- return Object.assign({}, entry);
- };
- BaggageImpl.prototype.getAllEntries = function () {
- return Array.from(this._entries.entries()).map(function (_a) {
- var k = _a[0], v = _a[1];
- return [k, v];
- });
- };
- BaggageImpl.prototype.setEntry = function (key, entry) {
- var newBaggage = new BaggageImpl(this._entries);
- newBaggage._entries.set(key, entry);
- return newBaggage;
- };
- BaggageImpl.prototype.removeEntry = function (key) {
- var newBaggage = new BaggageImpl(this._entries);
- newBaggage._entries.delete(key);
- return newBaggage;
- };
- BaggageImpl.prototype.removeEntries = function () {
- var keys = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- keys[_i] = arguments[_i];
- }
- var newBaggage = new BaggageImpl(this._entries);
- for (var _a = 0, keys_1 = keys; _a < keys_1.length; _a++) {
- var key = keys_1[_a];
- newBaggage._entries.delete(key);
- }
- return newBaggage;
- };
- BaggageImpl.prototype.clear = function () {
- return new BaggageImpl();
- };
- return BaggageImpl;
-}());
-exports.BaggageImpl = BaggageImpl;
-//# sourceMappingURL=baggage-impl.js.map
-
-/***/ }),
-
-/***/ 3542:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.baggageEntryMetadataSymbol = void 0;
-/**
- * Symbol used to make BaggageEntryMetadata an opaque type
- */
-exports.baggageEntryMetadataSymbol = Symbol('BaggageEntryMetadata');
-//# sourceMappingURL=symbol.js.map
-
-/***/ }),
-
-/***/ 1508:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=types.js.map
-
-/***/ }),
-
-/***/ 8136:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.baggageEntryMetadataFromString = exports.createBaggage = void 0;
-var diag_1 = __nccwpck_require__(1877);
-var baggage_impl_1 = __nccwpck_require__(4811);
-var symbol_1 = __nccwpck_require__(3542);
-var diag = diag_1.DiagAPI.instance();
-/**
- * Create a new Baggage with optional entries
- *
- * @param entries An array of baggage entries the new baggage should contain
- */
-function createBaggage(entries) {
- if (entries === void 0) { entries = {}; }
- return new baggage_impl_1.BaggageImpl(new Map(Object.entries(entries)));
-}
-exports.createBaggage = createBaggage;
-/**
- * Create a serializable BaggageEntryMetadata object from a string.
- *
- * @param str string metadata. Format is currently not defined by the spec and has no special meaning.
- *
- */
-function baggageEntryMetadataFromString(str) {
- if (typeof str !== 'string') {
- diag.error("Cannot create baggage metadata from unknown type: " + typeof str);
- str = '';
- }
- return {
- __TYPE__: symbol_1.baggageEntryMetadataSymbol,
- toString: function () {
- return str;
- },
- };
-}
-exports.baggageEntryMetadataFromString = baggageEntryMetadataFromString;
-//# sourceMappingURL=utils.js.map
-
-/***/ }),
-
-/***/ 4447:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=Exception.js.map
-
-/***/ }),
-
-/***/ 2358:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=Time.js.map
-
-/***/ }),
-
-/***/ 4118:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-var __spreadArray = (this && this.__spreadArray) || function (to, from) {
- for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
- to[j] = from[i];
- return to;
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.NoopContextManager = void 0;
-var context_1 = __nccwpck_require__(8242);
-var NoopContextManager = /** @class */ (function () {
- function NoopContextManager() {
- }
- NoopContextManager.prototype.active = function () {
- return context_1.ROOT_CONTEXT;
- };
- NoopContextManager.prototype.with = function (_context, fn, thisArg) {
- var args = [];
- for (var _i = 3; _i < arguments.length; _i++) {
- args[_i - 3] = arguments[_i];
- }
- return fn.call.apply(fn, __spreadArray([thisArg], args));
- };
- NoopContextManager.prototype.bind = function (_context, target) {
- return target;
- };
- NoopContextManager.prototype.enable = function () {
- return this;
- };
- NoopContextManager.prototype.disable = function () {
- return this;
- };
- return NoopContextManager;
-}());
-exports.NoopContextManager = NoopContextManager;
-//# sourceMappingURL=NoopContextManager.js.map
-
-/***/ }),
-
-/***/ 8242:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.ROOT_CONTEXT = exports.createContextKey = void 0;
-/** Get a key to uniquely identify a context value */
-function createContextKey(description) {
- // The specification states that for the same input, multiple calls should
- // return different keys. Due to the nature of the JS dependency management
- // system, this creates problems where multiple versions of some package
- // could hold different keys for the same property.
- //
- // Therefore, we use Symbol.for which returns the same key for the same input.
- return Symbol.for(description);
-}
-exports.createContextKey = createContextKey;
-var BaseContext = /** @class */ (function () {
- /**
- * Construct a new context which inherits values from an optional parent context.
- *
- * @param parentContext a context from which to inherit values
- */
- function BaseContext(parentContext) {
- // for minification
- var self = this;
- self._currentContext = parentContext ? new Map(parentContext) : new Map();
- self.getValue = function (key) { return self._currentContext.get(key); };
- self.setValue = function (key, value) {
- var context = new BaseContext(self._currentContext);
- context._currentContext.set(key, value);
- return context;
- };
- self.deleteValue = function (key) {
- var context = new BaseContext(self._currentContext);
- context._currentContext.delete(key);
- return context;
- };
- }
- return BaseContext;
-}());
-/** The root context is used as the default parent context when there is no active context */
-exports.ROOT_CONTEXT = new BaseContext();
-//# sourceMappingURL=context.js.map
-
-/***/ }),
-
-/***/ 6504:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=types.js.map
-
-/***/ }),
-
-/***/ 7978:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.DiagComponentLogger = void 0;
-var global_utils_1 = __nccwpck_require__(5135);
-/**
- * Component Logger which is meant to be used as part of any component which
- * will add automatically additional namespace in front of the log message.
- * It will then forward all message to global diag logger
- * @example
- * const cLogger = diag.createComponentLogger({ namespace: '@opentelemetry/instrumentation-http' });
- * cLogger.debug('test');
- * // @opentelemetry/instrumentation-http test
- */
-var DiagComponentLogger = /** @class */ (function () {
- function DiagComponentLogger(props) {
- this._namespace = props.namespace || 'DiagComponentLogger';
- }
- DiagComponentLogger.prototype.debug = function () {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- return logProxy('debug', this._namespace, args);
- };
- DiagComponentLogger.prototype.error = function () {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- return logProxy('error', this._namespace, args);
- };
- DiagComponentLogger.prototype.info = function () {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- return logProxy('info', this._namespace, args);
- };
- DiagComponentLogger.prototype.warn = function () {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- return logProxy('warn', this._namespace, args);
- };
- DiagComponentLogger.prototype.verbose = function () {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- return logProxy('verbose', this._namespace, args);
- };
- return DiagComponentLogger;
-}());
-exports.DiagComponentLogger = DiagComponentLogger;
-function logProxy(funcName, namespace, args) {
- var logger = global_utils_1.getGlobal('diag');
- // shortcut if logger not set
- if (!logger) {
- return;
- }
- args.unshift(namespace);
- return logger[funcName].apply(logger, args);
-}
-//# sourceMappingURL=ComponentLogger.js.map
-
-/***/ }),
-
-/***/ 3041:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.DiagConsoleLogger = void 0;
-var consoleMap = [
- { n: 'error', c: 'error' },
- { n: 'warn', c: 'warn' },
- { n: 'info', c: 'info' },
- { n: 'debug', c: 'debug' },
- { n: 'verbose', c: 'trace' },
-];
-/**
- * A simple Immutable Console based diagnostic logger which will output any messages to the Console.
- * If you want to limit the amount of logging to a specific level or lower use the
- * {@link createLogLevelDiagLogger}
- */
-var DiagConsoleLogger = /** @class */ (function () {
- function DiagConsoleLogger() {
- function _consoleFunc(funcName) {
- return function () {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- if (console) {
- // Some environments only expose the console when the F12 developer console is open
- // eslint-disable-next-line no-console
- var theFunc = console[funcName];
- if (typeof theFunc !== 'function') {
- // Not all environments support all functions
- // eslint-disable-next-line no-console
- theFunc = console.log;
- }
- // One last final check
- if (typeof theFunc === 'function') {
- return theFunc.apply(console, args);
- }
- }
- };
- }
- for (var i = 0; i < consoleMap.length; i++) {
- this[consoleMap[i].n] = _consoleFunc(consoleMap[i].c);
- }
- }
- return DiagConsoleLogger;
-}());
-exports.DiagConsoleLogger = DiagConsoleLogger;
-//# sourceMappingURL=consoleLogger.js.map
-
-/***/ }),
-
-/***/ 1634:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
-}));
-var __exportStar = (this && this.__exportStar) || function(m, exports) {
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-__exportStar(__nccwpck_require__(3041), exports);
-__exportStar(__nccwpck_require__(8077), exports);
-//# sourceMappingURL=index.js.map
-
-/***/ }),
-
-/***/ 9639:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.createLogLevelDiagLogger = void 0;
-var types_1 = __nccwpck_require__(8077);
-function createLogLevelDiagLogger(maxLevel, logger) {
- if (maxLevel < types_1.DiagLogLevel.NONE) {
- maxLevel = types_1.DiagLogLevel.NONE;
- }
- else if (maxLevel > types_1.DiagLogLevel.ALL) {
- maxLevel = types_1.DiagLogLevel.ALL;
- }
- // In case the logger is null or undefined
- logger = logger || {};
- function _filterFunc(funcName, theLevel) {
- var theFunc = logger[funcName];
- if (typeof theFunc === 'function' && maxLevel >= theLevel) {
- return theFunc.bind(logger);
- }
- return function () { };
- }
- return {
- error: _filterFunc('error', types_1.DiagLogLevel.ERROR),
- warn: _filterFunc('warn', types_1.DiagLogLevel.WARN),
- info: _filterFunc('info', types_1.DiagLogLevel.INFO),
- debug: _filterFunc('debug', types_1.DiagLogLevel.DEBUG),
- verbose: _filterFunc('verbose', types_1.DiagLogLevel.VERBOSE),
- };
-}
-exports.createLogLevelDiagLogger = createLogLevelDiagLogger;
-//# sourceMappingURL=logLevelLogger.js.map
-
-/***/ }),
-
-/***/ 8077:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.DiagLogLevel = void 0;
-/**
- * Defines the available internal logging levels for the diagnostic logger, the numeric values
- * of the levels are defined to match the original values from the initial LogLevel to avoid
- * compatibility/migration issues for any implementation that assume the numeric ordering.
- */
-var DiagLogLevel;
-(function (DiagLogLevel) {
- /** Diagnostic Logging level setting to disable all logging (except and forced logs) */
- DiagLogLevel[DiagLogLevel["NONE"] = 0] = "NONE";
- /** Identifies an error scenario */
- DiagLogLevel[DiagLogLevel["ERROR"] = 30] = "ERROR";
- /** Identifies a warning scenario */
- DiagLogLevel[DiagLogLevel["WARN"] = 50] = "WARN";
- /** General informational log message */
- DiagLogLevel[DiagLogLevel["INFO"] = 60] = "INFO";
- /** General debug log message */
- DiagLogLevel[DiagLogLevel["DEBUG"] = 70] = "DEBUG";
- /**
- * Detailed trace level logging should only be used for development, should only be set
- * in a development environment.
- */
- DiagLogLevel[DiagLogLevel["VERBOSE"] = 80] = "VERBOSE";
- /** Used to set the logging level to include all logging */
- DiagLogLevel[DiagLogLevel["ALL"] = 9999] = "ALL";
-})(DiagLogLevel = exports.DiagLogLevel || (exports.DiagLogLevel = {}));
-//# sourceMappingURL=types.js.map
-
-/***/ }),
-
-/***/ 5163:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
-}));
-var __exportStar = (this && this.__exportStar) || function(m, exports) {
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.diag = exports.propagation = exports.trace = exports.context = exports.INVALID_SPAN_CONTEXT = exports.INVALID_TRACEID = exports.INVALID_SPANID = exports.isValidSpanId = exports.isValidTraceId = exports.isSpanContextValid = exports.baggageEntryMetadataFromString = void 0;
-__exportStar(__nccwpck_require__(1508), exports);
-var utils_1 = __nccwpck_require__(8136);
-Object.defineProperty(exports, "baggageEntryMetadataFromString", ({ enumerable: true, get: function () { return utils_1.baggageEntryMetadataFromString; } }));
-__exportStar(__nccwpck_require__(4447), exports);
-__exportStar(__nccwpck_require__(2358), exports);
-__exportStar(__nccwpck_require__(1634), exports);
-__exportStar(__nccwpck_require__(865), exports);
-__exportStar(__nccwpck_require__(7492), exports);
-__exportStar(__nccwpck_require__(4023), exports);
-__exportStar(__nccwpck_require__(3503), exports);
-__exportStar(__nccwpck_require__(2285), exports);
-__exportStar(__nccwpck_require__(9671), exports);
-__exportStar(__nccwpck_require__(3209), exports);
-__exportStar(__nccwpck_require__(5769), exports);
-__exportStar(__nccwpck_require__(1424), exports);
-__exportStar(__nccwpck_require__(4416), exports);
-__exportStar(__nccwpck_require__(955), exports);
-__exportStar(__nccwpck_require__(8845), exports);
-__exportStar(__nccwpck_require__(6905), exports);
-__exportStar(__nccwpck_require__(8384), exports);
-__exportStar(__nccwpck_require__(891), exports);
-__exportStar(__nccwpck_require__(3168), exports);
-var spancontext_utils_1 = __nccwpck_require__(9745);
-Object.defineProperty(exports, "isSpanContextValid", ({ enumerable: true, get: function () { return spancontext_utils_1.isSpanContextValid; } }));
-Object.defineProperty(exports, "isValidTraceId", ({ enumerable: true, get: function () { return spancontext_utils_1.isValidTraceId; } }));
-Object.defineProperty(exports, "isValidSpanId", ({ enumerable: true, get: function () { return spancontext_utils_1.isValidSpanId; } }));
-var invalid_span_constants_1 = __nccwpck_require__(1760);
-Object.defineProperty(exports, "INVALID_SPANID", ({ enumerable: true, get: function () { return invalid_span_constants_1.INVALID_SPANID; } }));
-Object.defineProperty(exports, "INVALID_TRACEID", ({ enumerable: true, get: function () { return invalid_span_constants_1.INVALID_TRACEID; } }));
-Object.defineProperty(exports, "INVALID_SPAN_CONTEXT", ({ enumerable: true, get: function () { return invalid_span_constants_1.INVALID_SPAN_CONTEXT; } }));
-__exportStar(__nccwpck_require__(8242), exports);
-__exportStar(__nccwpck_require__(6504), exports);
-var context_1 = __nccwpck_require__(7171);
-/** Entrypoint for context API */
-exports.context = context_1.ContextAPI.getInstance();
-var trace_1 = __nccwpck_require__(1539);
-/** Entrypoint for trace API */
-exports.trace = trace_1.TraceAPI.getInstance();
-var propagation_1 = __nccwpck_require__(9909);
-/** Entrypoint for propagation API */
-exports.propagation = propagation_1.PropagationAPI.getInstance();
-var diag_1 = __nccwpck_require__(1877);
-/**
- * Entrypoint for Diag API.
- * Defines Diagnostic handler used for internal diagnostic logging operations.
- * The default provides a Noop DiagLogger implementation which may be changed via the
- * diag.setLogger(logger: DiagLogger) function.
- */
-exports.diag = diag_1.DiagAPI.instance();
-exports["default"] = {
- trace: exports.trace,
- context: exports.context,
- propagation: exports.propagation,
- diag: exports.diag,
-};
-//# sourceMappingURL=index.js.map
-
-/***/ }),
-
-/***/ 5135:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.unregisterGlobal = exports.getGlobal = exports.registerGlobal = void 0;
-var platform_1 = __nccwpck_require__(9957);
-var version_1 = __nccwpck_require__(8996);
-var semver_1 = __nccwpck_require__(1522);
-var major = version_1.VERSION.split('.')[0];
-var GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for("opentelemetry.js.api." + major);
-var _global = platform_1._globalThis;
-function registerGlobal(type, instance, diag, allowOverride) {
- var _a;
- if (allowOverride === void 0) { allowOverride = false; }
- var api = (_global[GLOBAL_OPENTELEMETRY_API_KEY] = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) !== null && _a !== void 0 ? _a : {
- version: version_1.VERSION,
- });
- if (!allowOverride && api[type]) {
- // already registered an API of this type
- var err = new Error("@opentelemetry/api: Attempted duplicate registration of API: " + type);
- diag.error(err.stack || err.message);
- return false;
- }
- if (api.version !== version_1.VERSION) {
- // All registered APIs must be of the same version exactly
- var err = new Error('@opentelemetry/api: All API registration versions must match');
- diag.error(err.stack || err.message);
- return false;
- }
- api[type] = instance;
- diag.debug("@opentelemetry/api: Registered a global for " + type + " v" + version_1.VERSION + ".");
- return true;
-}
-exports.registerGlobal = registerGlobal;
-function getGlobal(type) {
- var _a, _b;
- var globalVersion = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _a === void 0 ? void 0 : _a.version;
- if (!globalVersion || !semver_1.isCompatible(globalVersion)) {
- return;
- }
- return (_b = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _b === void 0 ? void 0 : _b[type];
-}
-exports.getGlobal = getGlobal;
-function unregisterGlobal(type, diag) {
- diag.debug("@opentelemetry/api: Unregistering a global for " + type + " v" + version_1.VERSION + ".");
- var api = _global[GLOBAL_OPENTELEMETRY_API_KEY];
- if (api) {
- delete api[type];
- }
-}
-exports.unregisterGlobal = unregisterGlobal;
-//# sourceMappingURL=global-utils.js.map
-
-/***/ }),
-
-/***/ 1522:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.isCompatible = exports._makeCompatibilityCheck = void 0;
-var version_1 = __nccwpck_require__(8996);
-var re = /^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;
-/**
- * Create a function to test an API version to see if it is compatible with the provided ownVersion.
- *
- * The returned function has the following semantics:
- * - Exact match is always compatible
- * - Major versions must match exactly
- * - 1.x package cannot use global 2.x package
- * - 2.x package cannot use global 1.x package
- * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API
- * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects
- * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3
- * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor
- * - Patch and build tag differences are not considered at this time
- *
- * @param ownVersion version which should be checked against
- */
-function _makeCompatibilityCheck(ownVersion) {
- var acceptedVersions = new Set([ownVersion]);
- var rejectedVersions = new Set();
- var myVersionMatch = ownVersion.match(re);
- if (!myVersionMatch) {
- // we cannot guarantee compatibility so we always return noop
- return function () { return false; };
- }
- var ownVersionParsed = {
- major: +myVersionMatch[1],
- minor: +myVersionMatch[2],
- patch: +myVersionMatch[3],
- prerelease: myVersionMatch[4],
- };
- // if ownVersion has a prerelease tag, versions must match exactly
- if (ownVersionParsed.prerelease != null) {
- return function isExactmatch(globalVersion) {
- return globalVersion === ownVersion;
- };
- }
- function _reject(v) {
- rejectedVersions.add(v);
- return false;
- }
- function _accept(v) {
- acceptedVersions.add(v);
- return true;
- }
- return function isCompatible(globalVersion) {
- if (acceptedVersions.has(globalVersion)) {
- return true;
- }
- if (rejectedVersions.has(globalVersion)) {
- return false;
- }
- var globalVersionMatch = globalVersion.match(re);
- if (!globalVersionMatch) {
- // cannot parse other version
- // we cannot guarantee compatibility so we always noop
- return _reject(globalVersion);
- }
- var globalVersionParsed = {
- major: +globalVersionMatch[1],
- minor: +globalVersionMatch[2],
- patch: +globalVersionMatch[3],
- prerelease: globalVersionMatch[4],
- };
- // if globalVersion has a prerelease tag, versions must match exactly
- if (globalVersionParsed.prerelease != null) {
- return _reject(globalVersion);
- }
- // major versions must match
- if (ownVersionParsed.major !== globalVersionParsed.major) {
- return _reject(globalVersion);
- }
- if (ownVersionParsed.major === 0) {
- if (ownVersionParsed.minor === globalVersionParsed.minor &&
- ownVersionParsed.patch <= globalVersionParsed.patch) {
- return _accept(globalVersion);
- }
- return _reject(globalVersion);
- }
- if (ownVersionParsed.minor <= globalVersionParsed.minor) {
- return _accept(globalVersion);
- }
- return _reject(globalVersion);
- };
-}
-exports._makeCompatibilityCheck = _makeCompatibilityCheck;
-/**
- * Test an API version to see if it is compatible with this API.
- *
- * - Exact match is always compatible
- * - Major versions must match exactly
- * - 1.x package cannot use global 2.x package
- * - 2.x package cannot use global 1.x package
- * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API
- * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects
- * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3
- * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor
- * - Patch and build tag differences are not considered at this time
- *
- * @param version version of the API requesting an instance of the global API
- */
-exports.isCompatible = _makeCompatibilityCheck(version_1.VERSION);
-//# sourceMappingURL=semver.js.map
-
-/***/ }),
-
-/***/ 9957:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
-}));
-var __exportStar = (this && this.__exportStar) || function(m, exports) {
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-__exportStar(__nccwpck_require__(7200), exports);
-//# sourceMappingURL=index.js.map
-
-/***/ }),
-
-/***/ 9406:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports._globalThis = void 0;
-/** only globals that common to node and browsers are allowed */
-// eslint-disable-next-line node/no-unsupported-features/es-builtins
-exports._globalThis = typeof globalThis === 'object' ? globalThis : global;
-//# sourceMappingURL=globalThis.js.map
-
-/***/ }),
-
-/***/ 7200:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
-}));
-var __exportStar = (this && this.__exportStar) || function(m, exports) {
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-__exportStar(__nccwpck_require__(9406), exports);
-//# sourceMappingURL=index.js.map
-
-/***/ }),
-
-/***/ 2368:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.NoopTextMapPropagator = void 0;
-/**
- * No-op implementations of {@link TextMapPropagator}.
- */
-var NoopTextMapPropagator = /** @class */ (function () {
- function NoopTextMapPropagator() {
- }
- /** Noop inject function does nothing */
- NoopTextMapPropagator.prototype.inject = function (_context, _carrier) { };
- /** Noop extract function does nothing and returns the input context */
- NoopTextMapPropagator.prototype.extract = function (context, _carrier) {
- return context;
- };
- NoopTextMapPropagator.prototype.fields = function () {
- return [];
- };
- return NoopTextMapPropagator;
-}());
-exports.NoopTextMapPropagator = NoopTextMapPropagator;
-//# sourceMappingURL=NoopTextMapPropagator.js.map
-
-/***/ }),
-
-/***/ 865:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.defaultTextMapSetter = exports.defaultTextMapGetter = void 0;
-exports.defaultTextMapGetter = {
- get: function (carrier, key) {
- if (carrier == null) {
- return undefined;
- }
- return carrier[key];
- },
- keys: function (carrier) {
- if (carrier == null) {
- return [];
- }
- return Object.keys(carrier);
- },
-};
-exports.defaultTextMapSetter = {
- set: function (carrier, key, value) {
- if (carrier == null) {
- return;
- }
- carrier[key] = value;
- },
-};
-//# sourceMappingURL=TextMapPropagator.js.map
-
-/***/ }),
-
-/***/ 1462:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.NonRecordingSpan = void 0;
-var invalid_span_constants_1 = __nccwpck_require__(1760);
-/**
- * The NonRecordingSpan is the default {@link Span} that is used when no Span
- * implementation is available. All operations are no-op including context
- * propagation.
- */
-var NonRecordingSpan = /** @class */ (function () {
- function NonRecordingSpan(_spanContext) {
- if (_spanContext === void 0) { _spanContext = invalid_span_constants_1.INVALID_SPAN_CONTEXT; }
- this._spanContext = _spanContext;
- }
- // Returns a SpanContext.
- NonRecordingSpan.prototype.spanContext = function () {
- return this._spanContext;
- };
- // By default does nothing
- NonRecordingSpan.prototype.setAttribute = function (_key, _value) {
- return this;
- };
- // By default does nothing
- NonRecordingSpan.prototype.setAttributes = function (_attributes) {
- return this;
- };
- // By default does nothing
- NonRecordingSpan.prototype.addEvent = function (_name, _attributes) {
- return this;
- };
- // By default does nothing
- NonRecordingSpan.prototype.setStatus = function (_status) {
- return this;
- };
- // By default does nothing
- NonRecordingSpan.prototype.updateName = function (_name) {
- return this;
- };
- // By default does nothing
- NonRecordingSpan.prototype.end = function (_endTime) { };
- // isRecording always returns false for NonRecordingSpan.
- NonRecordingSpan.prototype.isRecording = function () {
- return false;
- };
- // By default does nothing
- NonRecordingSpan.prototype.recordException = function (_exception, _time) { };
- return NonRecordingSpan;
-}());
-exports.NonRecordingSpan = NonRecordingSpan;
-//# sourceMappingURL=NonRecordingSpan.js.map
-
-/***/ }),
-
-/***/ 7606:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.NoopTracer = void 0;
-var context_1 = __nccwpck_require__(7171);
-var context_utils_1 = __nccwpck_require__(3326);
-var NonRecordingSpan_1 = __nccwpck_require__(1462);
-var spancontext_utils_1 = __nccwpck_require__(9745);
-var context = context_1.ContextAPI.getInstance();
-/**
- * No-op implementations of {@link Tracer}.
- */
-var NoopTracer = /** @class */ (function () {
- function NoopTracer() {
- }
- // startSpan starts a noop span.
- NoopTracer.prototype.startSpan = function (name, options, context) {
- var root = Boolean(options === null || options === void 0 ? void 0 : options.root);
- if (root) {
- return new NonRecordingSpan_1.NonRecordingSpan();
- }
- var parentFromContext = context && context_utils_1.getSpanContext(context);
- if (isSpanContext(parentFromContext) &&
- spancontext_utils_1.isSpanContextValid(parentFromContext)) {
- return new NonRecordingSpan_1.NonRecordingSpan(parentFromContext);
- }
- else {
- return new NonRecordingSpan_1.NonRecordingSpan();
- }
- };
- NoopTracer.prototype.startActiveSpan = function (name, arg2, arg3, arg4) {
- var opts;
- var ctx;
- var fn;
- if (arguments.length < 2) {
- return;
- }
- else if (arguments.length === 2) {
- fn = arg2;
- }
- else if (arguments.length === 3) {
- opts = arg2;
- fn = arg3;
- }
- else {
- opts = arg2;
- ctx = arg3;
- fn = arg4;
- }
- var parentContext = ctx !== null && ctx !== void 0 ? ctx : context.active();
- var span = this.startSpan(name, opts, parentContext);
- var contextWithSpanSet = context_utils_1.setSpan(parentContext, span);
- return context.with(contextWithSpanSet, fn, undefined, span);
- };
- return NoopTracer;
-}());
-exports.NoopTracer = NoopTracer;
-function isSpanContext(spanContext) {
- return (typeof spanContext === 'object' &&
- typeof spanContext['spanId'] === 'string' &&
- typeof spanContext['traceId'] === 'string' &&
- typeof spanContext['traceFlags'] === 'number');
-}
-//# sourceMappingURL=NoopTracer.js.map
-
-/***/ }),
-
-/***/ 3259:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.NoopTracerProvider = void 0;
-var NoopTracer_1 = __nccwpck_require__(7606);
-/**
- * An implementation of the {@link TracerProvider} which returns an impotent
- * Tracer for all calls to `getTracer`.
- *
- * All operations are no-op.
- */
-var NoopTracerProvider = /** @class */ (function () {
- function NoopTracerProvider() {
- }
- NoopTracerProvider.prototype.getTracer = function (_name, _version) {
- return new NoopTracer_1.NoopTracer();
- };
- return NoopTracerProvider;
-}());
-exports.NoopTracerProvider = NoopTracerProvider;
-//# sourceMappingURL=NoopTracerProvider.js.map
-
-/***/ }),
-
-/***/ 3503:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.ProxyTracer = void 0;
-var NoopTracer_1 = __nccwpck_require__(7606);
-var NOOP_TRACER = new NoopTracer_1.NoopTracer();
-/**
- * Proxy tracer provided by the proxy tracer provider
- */
-var ProxyTracer = /** @class */ (function () {
- function ProxyTracer(_provider, name, version) {
- this._provider = _provider;
- this.name = name;
- this.version = version;
- }
- ProxyTracer.prototype.startSpan = function (name, options, context) {
- return this._getTracer().startSpan(name, options, context);
- };
- ProxyTracer.prototype.startActiveSpan = function (_name, _options, _context, _fn) {
- var tracer = this._getTracer();
- return Reflect.apply(tracer.startActiveSpan, tracer, arguments);
- };
- /**
- * Try to get a tracer from the proxy tracer provider.
- * If the proxy tracer provider has no delegate, return a noop tracer.
- */
- ProxyTracer.prototype._getTracer = function () {
- if (this._delegate) {
- return this._delegate;
- }
- var tracer = this._provider.getDelegateTracer(this.name, this.version);
- if (!tracer) {
- return NOOP_TRACER;
- }
- this._delegate = tracer;
- return this._delegate;
- };
- return ProxyTracer;
-}());
-exports.ProxyTracer = ProxyTracer;
-//# sourceMappingURL=ProxyTracer.js.map
-
-/***/ }),
-
-/***/ 2285:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.ProxyTracerProvider = void 0;
-var ProxyTracer_1 = __nccwpck_require__(3503);
-var NoopTracerProvider_1 = __nccwpck_require__(3259);
-var NOOP_TRACER_PROVIDER = new NoopTracerProvider_1.NoopTracerProvider();
-/**
- * Tracer provider which provides {@link ProxyTracer}s.
- *
- * Before a delegate is set, tracers provided are NoOp.
- * When a delegate is set, traces are provided from the delegate.
- * When a delegate is set after tracers have already been provided,
- * all tracers already provided will use the provided delegate implementation.
- */
-var ProxyTracerProvider = /** @class */ (function () {
- function ProxyTracerProvider() {
- }
- /**
- * Get a {@link ProxyTracer}
- */
- ProxyTracerProvider.prototype.getTracer = function (name, version) {
- var _a;
- return ((_a = this.getDelegateTracer(name, version)) !== null && _a !== void 0 ? _a : new ProxyTracer_1.ProxyTracer(this, name, version));
- };
- ProxyTracerProvider.prototype.getDelegate = function () {
- var _a;
- return (_a = this._delegate) !== null && _a !== void 0 ? _a : NOOP_TRACER_PROVIDER;
- };
- /**
- * Set the delegate tracer provider
- */
- ProxyTracerProvider.prototype.setDelegate = function (delegate) {
- this._delegate = delegate;
- };
- ProxyTracerProvider.prototype.getDelegateTracer = function (name, version) {
- var _a;
- return (_a = this._delegate) === null || _a === void 0 ? void 0 : _a.getTracer(name, version);
- };
- return ProxyTracerProvider;
-}());
-exports.ProxyTracerProvider = ProxyTracerProvider;
-//# sourceMappingURL=ProxyTracerProvider.js.map
-
-/***/ }),
-
-/***/ 9671:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=Sampler.js.map
-
-/***/ }),
-
-/***/ 3209:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.SamplingDecision = void 0;
-/**
- * A sampling decision that determines how a {@link Span} will be recorded
- * and collected.
- */
-var SamplingDecision;
-(function (SamplingDecision) {
- /**
- * `Span.isRecording() === false`, span will not be recorded and all events
- * and attributes will be dropped.
- */
- SamplingDecision[SamplingDecision["NOT_RECORD"] = 0] = "NOT_RECORD";
- /**
- * `Span.isRecording() === true`, but `Sampled` flag in {@link TraceFlags}
- * MUST NOT be set.
- */
- SamplingDecision[SamplingDecision["RECORD"] = 1] = "RECORD";
- /**
- * `Span.isRecording() === true` AND `Sampled` flag in {@link TraceFlags}
- * MUST be set.
- */
- SamplingDecision[SamplingDecision["RECORD_AND_SAMPLED"] = 2] = "RECORD_AND_SAMPLED";
-})(SamplingDecision = exports.SamplingDecision || (exports.SamplingDecision = {}));
-//# sourceMappingURL=SamplingResult.js.map
-
-/***/ }),
-
-/***/ 955:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=SpanOptions.js.map
-
-/***/ }),
-
-/***/ 7492:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=attributes.js.map
-
-/***/ }),
-
-/***/ 3326:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.getSpanContext = exports.setSpanContext = exports.deleteSpan = exports.setSpan = exports.getSpan = void 0;
-var context_1 = __nccwpck_require__(8242);
-var NonRecordingSpan_1 = __nccwpck_require__(1462);
-/**
- * span key
- */
-var SPAN_KEY = context_1.createContextKey('OpenTelemetry Context Key SPAN');
-/**
- * Return the span if one exists
- *
- * @param context context to get span from
- */
-function getSpan(context) {
- return context.getValue(SPAN_KEY) || undefined;
-}
-exports.getSpan = getSpan;
-/**
- * Set the span on a context
- *
- * @param context context to use as parent
- * @param span span to set active
- */
-function setSpan(context, span) {
- return context.setValue(SPAN_KEY, span);
-}
-exports.setSpan = setSpan;
-/**
- * Remove current span stored in the context
- *
- * @param context context to delete span from
- */
-function deleteSpan(context) {
- return context.deleteValue(SPAN_KEY);
-}
-exports.deleteSpan = deleteSpan;
-/**
- * Wrap span context in a NoopSpan and set as span in a new
- * context
- *
- * @param context context to set active span on
- * @param spanContext span context to be wrapped
- */
-function setSpanContext(context, spanContext) {
- return setSpan(context, new NonRecordingSpan_1.NonRecordingSpan(spanContext));
-}
-exports.setSpanContext = setSpanContext;
-/**
- * Get the span context of the span if it exists.
- *
- * @param context context to get values from
- */
-function getSpanContext(context) {
- var _a;
- return (_a = getSpan(context)) === null || _a === void 0 ? void 0 : _a.spanContext();
-}
-exports.getSpanContext = getSpanContext;
-//# sourceMappingURL=context-utils.js.map
-
-/***/ }),
-
-/***/ 1760:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.INVALID_SPAN_CONTEXT = exports.INVALID_TRACEID = exports.INVALID_SPANID = void 0;
-var trace_flags_1 = __nccwpck_require__(6905);
-exports.INVALID_SPANID = '0000000000000000';
-exports.INVALID_TRACEID = '00000000000000000000000000000000';
-exports.INVALID_SPAN_CONTEXT = {
- traceId: exports.INVALID_TRACEID,
- spanId: exports.INVALID_SPANID,
- traceFlags: trace_flags_1.TraceFlags.NONE,
-};
-//# sourceMappingURL=invalid-span-constants.js.map
-
-/***/ }),
-
-/***/ 4023:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=link.js.map
-
-/***/ }),
-
-/***/ 4416:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=span.js.map
-
-/***/ }),
-
-/***/ 5769:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=span_context.js.map
-
-/***/ }),
-
-/***/ 1424:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.SpanKind = void 0;
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-var SpanKind;
-(function (SpanKind) {
- /** Default value. Indicates that the span is used internally. */
- SpanKind[SpanKind["INTERNAL"] = 0] = "INTERNAL";
- /**
- * Indicates that the span covers server-side handling of an RPC or other
- * remote request.
- */
- SpanKind[SpanKind["SERVER"] = 1] = "SERVER";
- /**
- * Indicates that the span covers the client-side wrapper around an RPC or
- * other remote request.
- */
- SpanKind[SpanKind["CLIENT"] = 2] = "CLIENT";
- /**
- * Indicates that the span describes producer sending a message to a
- * broker. Unlike client and server, there is no direct critical path latency
- * relationship between producer and consumer spans.
- */
- SpanKind[SpanKind["PRODUCER"] = 3] = "PRODUCER";
- /**
- * Indicates that the span describes consumer receiving a message from a
- * broker. Unlike client and server, there is no direct critical path latency
- * relationship between producer and consumer spans.
- */
- SpanKind[SpanKind["CONSUMER"] = 4] = "CONSUMER";
-})(SpanKind = exports.SpanKind || (exports.SpanKind = {}));
-//# sourceMappingURL=span_kind.js.map
-
-/***/ }),
-
-/***/ 9745:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.wrapSpanContext = exports.isSpanContextValid = exports.isValidSpanId = exports.isValidTraceId = void 0;
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-var invalid_span_constants_1 = __nccwpck_require__(1760);
-var NonRecordingSpan_1 = __nccwpck_require__(1462);
-var VALID_TRACEID_REGEX = /^([0-9a-f]{32})$/i;
-var VALID_SPANID_REGEX = /^[0-9a-f]{16}$/i;
-function isValidTraceId(traceId) {
- return VALID_TRACEID_REGEX.test(traceId) && traceId !== invalid_span_constants_1.INVALID_TRACEID;
-}
-exports.isValidTraceId = isValidTraceId;
-function isValidSpanId(spanId) {
- return VALID_SPANID_REGEX.test(spanId) && spanId !== invalid_span_constants_1.INVALID_SPANID;
-}
-exports.isValidSpanId = isValidSpanId;
-/**
- * Returns true if this {@link SpanContext} is valid.
- * @return true if this {@link SpanContext} is valid.
- */
-function isSpanContextValid(spanContext) {
- return (isValidTraceId(spanContext.traceId) && isValidSpanId(spanContext.spanId));
-}
-exports.isSpanContextValid = isSpanContextValid;
-/**
- * Wrap the given {@link SpanContext} in a new non-recording {@link Span}
- *
- * @param spanContext span context to be wrapped
- * @returns a new non-recording {@link Span} with the provided context
- */
-function wrapSpanContext(spanContext) {
- return new NonRecordingSpan_1.NonRecordingSpan(spanContext);
-}
-exports.wrapSpanContext = wrapSpanContext;
-//# sourceMappingURL=spancontext-utils.js.map
-
-/***/ }),
-
-/***/ 8845:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.SpanStatusCode = void 0;
-/**
- * An enumeration of status codes.
- */
-var SpanStatusCode;
-(function (SpanStatusCode) {
- /**
- * The default status.
- */
- SpanStatusCode[SpanStatusCode["UNSET"] = 0] = "UNSET";
- /**
- * The operation has been validated by an Application developer or
- * Operator to have completed successfully.
- */
- SpanStatusCode[SpanStatusCode["OK"] = 1] = "OK";
- /**
- * The operation contains an error.
- */
- SpanStatusCode[SpanStatusCode["ERROR"] = 2] = "ERROR";
-})(SpanStatusCode = exports.SpanStatusCode || (exports.SpanStatusCode = {}));
-//# sourceMappingURL=status.js.map
-
-/***/ }),
-
-/***/ 6905:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.TraceFlags = void 0;
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-var TraceFlags;
-(function (TraceFlags) {
- /** Represents no flag set. */
- TraceFlags[TraceFlags["NONE"] = 0] = "NONE";
- /** Bit to represent whether trace is sampled in trace flags. */
- TraceFlags[TraceFlags["SAMPLED"] = 1] = "SAMPLED";
-})(TraceFlags = exports.TraceFlags || (exports.TraceFlags = {}));
-//# sourceMappingURL=trace_flags.js.map
-
-/***/ }),
-
-/***/ 8384:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=trace_state.js.map
-
-/***/ }),
-
-/***/ 3168:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=tracer.js.map
-
-/***/ }),
-
-/***/ 891:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=tracer_provider.js.map
-
-/***/ }),
-
-/***/ 8996:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.VERSION = void 0;
-// this is autogenerated file, see scripts/version-update.js
-exports.VERSION = '1.0.4';
-//# sourceMappingURL=version.js.map
-
-/***/ }),
-
-/***/ 4812:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-module.exports =
-{
- parallel : __nccwpck_require__(8210),
- serial : __nccwpck_require__(445),
- serialOrdered : __nccwpck_require__(3578)
-};
-
-
-/***/ }),
-
-/***/ 1700:
-/***/ ((module) => {
-
-// API
-module.exports = abort;
-
-/**
- * Aborts leftover active jobs
- *
- * @param {object} state - current state object
- */
-function abort(state)
-{
- Object.keys(state.jobs).forEach(clean.bind(state));
-
- // reset leftover jobs
- state.jobs = {};
-}
-
-/**
- * Cleans up leftover job by invoking abort function for the provided job id
- *
- * @this state
- * @param {string|number} key - job id to abort
- */
-function clean(key)
-{
- if (typeof this.jobs[key] == 'function')
- {
- this.jobs[key]();
- }
-}
-
-
-/***/ }),
-
-/***/ 2794:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-var defer = __nccwpck_require__(5295);
-
-// API
-module.exports = async;
-
-/**
- * Runs provided callback asynchronously
- * even if callback itself is not
- *
- * @param {function} callback - callback to invoke
- * @returns {function} - augmented callback
- */
-function async(callback)
-{
- var isAsync = false;
-
- // check if async happened
- defer(function() { isAsync = true; });
-
- return function async_callback(err, result)
- {
- if (isAsync)
- {
- callback(err, result);
- }
- else
- {
- defer(function nextTick_callback()
- {
- callback(err, result);
- });
- }
- };
-}
-
-
-/***/ }),
-
-/***/ 5295:
-/***/ ((module) => {
-
-module.exports = defer;
-
-/**
- * Runs provided function on next iteration of the event loop
- *
- * @param {function} fn - function to run
- */
-function defer(fn)
-{
- var nextTick = typeof setImmediate == 'function'
- ? setImmediate
- : (
- typeof process == 'object' && typeof process.nextTick == 'function'
- ? process.nextTick
- : null
- );
-
- if (nextTick)
- {
- nextTick(fn);
- }
- else
- {
- setTimeout(fn, 0);
- }
-}
-
-
-/***/ }),
-
-/***/ 9023:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-var async = __nccwpck_require__(2794)
- , abort = __nccwpck_require__(1700)
- ;
-
-// API
-module.exports = iterate;
-
-/**
- * Iterates over each job object
- *
- * @param {array|object} list - array or object (named list) to iterate over
- * @param {function} iterator - iterator to run
- * @param {object} state - current job status
- * @param {function} callback - invoked when all elements processed
- */
-function iterate(list, iterator, state, callback)
-{
- // store current index
- var key = state['keyedList'] ? state['keyedList'][state.index] : state.index;
-
- state.jobs[key] = runJob(iterator, key, list[key], function(error, output)
- {
- // don't repeat yourself
- // skip secondary callbacks
- if (!(key in state.jobs))
- {
- return;
- }
-
- // clean up jobs
- delete state.jobs[key];
-
- if (error)
- {
- // don't process rest of the results
- // stop still active jobs
- // and reset the list
- abort(state);
- }
- else
- {
- state.results[key] = output;
- }
-
- // return salvaged results
- callback(error, state.results);
- });
-}
-
-/**
- * Runs iterator over provided job element
- *
- * @param {function} iterator - iterator to invoke
- * @param {string|number} key - key/index of the element in the list of jobs
- * @param {mixed} item - job description
- * @param {function} callback - invoked after iterator is done with the job
- * @returns {function|mixed} - job abort function or something else
- */
-function runJob(iterator, key, item, callback)
-{
- var aborter;
-
- // allow shortcut if iterator expects only two arguments
- if (iterator.length == 2)
- {
- aborter = iterator(item, async(callback));
- }
- // otherwise go with full three arguments
- else
- {
- aborter = iterator(item, key, async(callback));
- }
-
- return aborter;
-}
-
-
-/***/ }),
-
-/***/ 2474:
-/***/ ((module) => {
-
-// API
-module.exports = state;
-
-/**
- * Creates initial state object
- * for iteration over list
- *
- * @param {array|object} list - list to iterate over
- * @param {function|null} sortMethod - function to use for keys sort,
- * or `null` to keep them as is
- * @returns {object} - initial state object
- */
-function state(list, sortMethod)
-{
- var isNamedList = !Array.isArray(list)
- , initState =
- {
- index : 0,
- keyedList: isNamedList || sortMethod ? Object.keys(list) : null,
- jobs : {},
- results : isNamedList ? {} : [],
- size : isNamedList ? Object.keys(list).length : list.length
- }
- ;
-
- if (sortMethod)
- {
- // sort array keys based on it's values
- // sort object's keys just on own merit
- initState.keyedList.sort(isNamedList ? sortMethod : function(a, b)
- {
- return sortMethod(list[a], list[b]);
- });
- }
-
- return initState;
-}
-
-
-/***/ }),
-
-/***/ 7942:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-var abort = __nccwpck_require__(1700)
- , async = __nccwpck_require__(2794)
- ;
-
-// API
-module.exports = terminator;
-
-/**
- * Terminates jobs in the attached state context
- *
- * @this AsyncKitState#
- * @param {function} callback - final callback to invoke after termination
- */
-function terminator(callback)
-{
- if (!Object.keys(this.jobs).length)
- {
- return;
- }
-
- // fast forward iteration index
- this.index = this.size;
-
- // abort jobs
- abort(this);
-
- // send back results we have so far
- async(callback)(null, this.results);
-}
-
-
-/***/ }),
-
-/***/ 8210:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-var iterate = __nccwpck_require__(9023)
- , initState = __nccwpck_require__(2474)
- , terminator = __nccwpck_require__(7942)
- ;
-
-// Public API
-module.exports = parallel;
-
-/**
- * Runs iterator over provided array elements in parallel
- *
- * @param {array|object} list - array or object (named list) to iterate over
- * @param {function} iterator - iterator to run
- * @param {function} callback - invoked when all elements processed
- * @returns {function} - jobs terminator
- */
-function parallel(list, iterator, callback)
-{
- var state = initState(list);
-
- while (state.index < (state['keyedList'] || list).length)
- {
- iterate(list, iterator, state, function(error, result)
- {
- if (error)
- {
- callback(error, result);
- return;
- }
-
- // looks like it's the last one
- if (Object.keys(state.jobs).length === 0)
- {
- callback(null, state.results);
- return;
- }
- });
-
- state.index++;
- }
-
- return terminator.bind(state, callback);
-}
-
-
-/***/ }),
-
-/***/ 445:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-var serialOrdered = __nccwpck_require__(3578);
-
-// Public API
-module.exports = serial;
-
-/**
- * Runs iterator over provided array elements in series
- *
- * @param {array|object} list - array or object (named list) to iterate over
- * @param {function} iterator - iterator to run
- * @param {function} callback - invoked when all elements processed
- * @returns {function} - jobs terminator
- */
-function serial(list, iterator, callback)
-{
- return serialOrdered(list, iterator, null, callback);
-}
-
-
-/***/ }),
-
-/***/ 3578:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-var iterate = __nccwpck_require__(9023)
- , initState = __nccwpck_require__(2474)
- , terminator = __nccwpck_require__(7942)
- ;
-
-// Public API
-module.exports = serialOrdered;
-// sorting helpers
-module.exports.ascending = ascending;
-module.exports.descending = descending;
-
-/**
- * Runs iterator over provided sorted array elements in series
- *
- * @param {array|object} list - array or object (named list) to iterate over
- * @param {function} iterator - iterator to run
- * @param {function} sortMethod - custom sort function
- * @param {function} callback - invoked when all elements processed
- * @returns {function} - jobs terminator
- */
-function serialOrdered(list, iterator, sortMethod, callback)
-{
- var state = initState(list, sortMethod);
-
- iterate(list, iterator, state, function iteratorHandler(error, result)
- {
- if (error)
- {
- callback(error, result);
- return;
- }
-
- state.index++;
-
- // are we there yet?
- if (state.index < (state['keyedList'] || list).length)
- {
- iterate(list, iterator, state, iteratorHandler);
- return;
- }
-
- // done here
- callback(null, state.results);
- });
-
- return terminator.bind(state, callback);
-}
-
-/*
- * -- Sort methods
- */
-
-/**
- * sort helper to sort array elements in ascending order
- *
- * @param {mixed} a - an item to compare
- * @param {mixed} b - an item to compare
- * @returns {number} - comparison result
- */
-function ascending(a, b)
-{
- return a < b ? -1 : a > b ? 1 : 0;
-}
-
-/**
- * sort helper to sort array elements in descending order
- *
- * @param {mixed} a - an item to compare
- * @param {mixed} b - an item to compare
- * @returns {number} - comparison result
- */
-function descending(a, b)
-{
- return -1 * ascending(a, b);
-}
-
-
-/***/ }),
-
-/***/ 9417:
-/***/ ((module) => {
-
-"use strict";
-
-module.exports = balanced;
-function balanced(a, b, str) {
- if (a instanceof RegExp) a = maybeMatch(a, str);
- if (b instanceof RegExp) b = maybeMatch(b, str);
-
- var r = range(a, b, str);
-
- return r && {
- start: r[0],
- end: r[1],
- pre: str.slice(0, r[0]),
- body: str.slice(r[0] + a.length, r[1]),
- post: str.slice(r[1] + b.length)
- };
-}
-
-function maybeMatch(reg, str) {
- var m = str.match(reg);
- return m ? m[0] : null;
-}
-
-balanced.range = range;
-function range(a, b, str) {
- var begs, beg, left, right, result;
- var ai = str.indexOf(a);
- var bi = str.indexOf(b, ai + 1);
- var i = ai;
-
- if (ai >= 0 && bi > 0) {
- begs = [];
- left = str.length;
-
- while (i >= 0 && !result) {
- if (i == ai) {
- begs.push(i);
- ai = str.indexOf(a, i + 1);
- } else if (begs.length == 1) {
- result = [ begs.pop(), bi ];
- } else {
- beg = begs.pop();
- if (beg < left) {
- left = beg;
- right = bi;
- }
-
- bi = str.indexOf(b, i + 1);
- }
-
- i = ai < bi && ai >= 0 ? ai : bi;
- }
-
- if (begs.length) {
- result = [ left, right ];
- }
- }
-
- return result;
-}
-
-
-/***/ }),
-
-/***/ 3717:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-var concatMap = __nccwpck_require__(6891);
-var balanced = __nccwpck_require__(9417);
-
-module.exports = expandTop;
-
-var escSlash = '\0SLASH'+Math.random()+'\0';
-var escOpen = '\0OPEN'+Math.random()+'\0';
-var escClose = '\0CLOSE'+Math.random()+'\0';
-var escComma = '\0COMMA'+Math.random()+'\0';
-var escPeriod = '\0PERIOD'+Math.random()+'\0';
-
-function numeric(str) {
- return parseInt(str, 10) == str
- ? parseInt(str, 10)
- : str.charCodeAt(0);
-}
-
-function escapeBraces(str) {
- return str.split('\\\\').join(escSlash)
- .split('\\{').join(escOpen)
- .split('\\}').join(escClose)
- .split('\\,').join(escComma)
- .split('\\.').join(escPeriod);
-}
-
-function unescapeBraces(str) {
- return str.split(escSlash).join('\\')
- .split(escOpen).join('{')
- .split(escClose).join('}')
- .split(escComma).join(',')
- .split(escPeriod).join('.');
-}
-
-
-// Basically just str.split(","), but handling cases
-// where we have nested braced sections, which should be
-// treated as individual members, like {a,{b,c},d}
-function parseCommaParts(str) {
- if (!str)
- return [''];
-
- var parts = [];
- var m = balanced('{', '}', str);
-
- if (!m)
- return str.split(',');
-
- var pre = m.pre;
- var body = m.body;
- var post = m.post;
- var p = pre.split(',');
-
- p[p.length-1] += '{' + body + '}';
- var postParts = parseCommaParts(post);
- if (post.length) {
- p[p.length-1] += postParts.shift();
- p.push.apply(p, postParts);
- }
-
- parts.push.apply(parts, p);
-
- return parts;
-}
-
-function expandTop(str) {
- if (!str)
- return [];
-
- // I don't know why Bash 4.3 does this, but it does.
- // Anything starting with {} will have the first two bytes preserved
- // but *only* at the top level, so {},a}b will not expand to anything,
- // but a{},b}c will be expanded to [a}c,abc].
- // One could argue that this is a bug in Bash, but since the goal of
- // this module is to match Bash's rules, we escape a leading {}
- if (str.substr(0, 2) === '{}') {
- str = '\\{\\}' + str.substr(2);
- }
-
- return expand(escapeBraces(str), true).map(unescapeBraces);
-}
-
-function identity(e) {
- return e;
-}
-
-function embrace(str) {
- return '{' + str + '}';
-}
-function isPadded(el) {
- return /^-?0\d/.test(el);
-}
-
-function lte(i, y) {
- return i <= y;
-}
-function gte(i, y) {
- return i >= y;
-}
-
-function expand(str, isTop) {
- var expansions = [];
-
- var m = balanced('{', '}', str);
- if (!m || /\$$/.test(m.pre)) return [str];
-
- var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
- var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
- var isSequence = isNumericSequence || isAlphaSequence;
- var isOptions = m.body.indexOf(',') >= 0;
- if (!isSequence && !isOptions) {
- // {a},b}
- if (m.post.match(/,.*\}/)) {
- str = m.pre + '{' + m.body + escClose + m.post;
- return expand(str);
- }
- return [str];
- }
-
- var n;
- if (isSequence) {
- n = m.body.split(/\.\./);
- } else {
- n = parseCommaParts(m.body);
- if (n.length === 1) {
- // x{{a,b}}y ==> x{a}y x{b}y
- n = expand(n[0], false).map(embrace);
- if (n.length === 1) {
- var post = m.post.length
- ? expand(m.post, false)
- : [''];
- return post.map(function(p) {
- return m.pre + n[0] + p;
- });
- }
- }
- }
-
- // at this point, n is the parts, and we know it's not a comma set
- // with a single entry.
-
- // no need to expand pre, since it is guaranteed to be free of brace-sets
- var pre = m.pre;
- var post = m.post.length
- ? expand(m.post, false)
- : [''];
-
- var N;
-
- if (isSequence) {
- var x = numeric(n[0]);
- var y = numeric(n[1]);
- var width = Math.max(n[0].length, n[1].length)
- var incr = n.length == 3
- ? Math.abs(numeric(n[2]))
- : 1;
- var test = lte;
- var reverse = y < x;
- if (reverse) {
- incr *= -1;
- test = gte;
- }
- var pad = n.some(isPadded);
-
- N = [];
-
- for (var i = x; test(i, y); i += incr) {
- var c;
- if (isAlphaSequence) {
- c = String.fromCharCode(i);
- if (c === '\\')
- c = '';
- } else {
- c = String(i);
- if (pad) {
- var need = width - c.length;
- if (need > 0) {
- var z = new Array(need + 1).join('0');
- if (i < 0)
- c = '-' + z + c.slice(1);
- else
- c = z + c;
- }
- }
- }
- N.push(c);
- }
- } else {
- N = concatMap(n, function(el) { return expand(el, false) });
- }
-
- for (var j = 0; j < N.length; j++) {
- for (var k = 0; k < post.length; k++) {
- var expansion = pre + N[j] + post[k];
- if (!isTop || isSequence || expansion)
- expansions.push(expansion);
- }
- }
-
- return expansions;
-}
-
-
-
-/***/ }),
-
-/***/ 5443:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-var util = __nccwpck_require__(3837);
-var Stream = (__nccwpck_require__(2781).Stream);
-var DelayedStream = __nccwpck_require__(8611);
-
-module.exports = CombinedStream;
-function CombinedStream() {
- this.writable = false;
- this.readable = true;
- this.dataSize = 0;
- this.maxDataSize = 2 * 1024 * 1024;
- this.pauseStreams = true;
-
- this._released = false;
- this._streams = [];
- this._currentStream = null;
- this._insideLoop = false;
- this._pendingNext = false;
-}
-util.inherits(CombinedStream, Stream);
-
-CombinedStream.create = function(options) {
- var combinedStream = new this();
-
- options = options || {};
- for (var option in options) {
- combinedStream[option] = options[option];
- }
-
- return combinedStream;
-};
-
-CombinedStream.isStreamLike = function(stream) {
- return (typeof stream !== 'function')
- && (typeof stream !== 'string')
- && (typeof stream !== 'boolean')
- && (typeof stream !== 'number')
- && (!Buffer.isBuffer(stream));
-};
-
-CombinedStream.prototype.append = function(stream) {
- var isStreamLike = CombinedStream.isStreamLike(stream);
-
- if (isStreamLike) {
- if (!(stream instanceof DelayedStream)) {
- var newStream = DelayedStream.create(stream, {
- maxDataSize: Infinity,
- pauseStream: this.pauseStreams,
- });
- stream.on('data', this._checkDataSize.bind(this));
- stream = newStream;
- }
-
- this._handleErrors(stream);
-
- if (this.pauseStreams) {
- stream.pause();
- }
- }
-
- this._streams.push(stream);
- return this;
-};
-
-CombinedStream.prototype.pipe = function(dest, options) {
- Stream.prototype.pipe.call(this, dest, options);
- this.resume();
- return dest;
-};
-
-CombinedStream.prototype._getNext = function() {
- this._currentStream = null;
-
- if (this._insideLoop) {
- this._pendingNext = true;
- return; // defer call
- }
-
- this._insideLoop = true;
- try {
- do {
- this._pendingNext = false;
- this._realGetNext();
- } while (this._pendingNext);
- } finally {
- this._insideLoop = false;
- }
-};
-
-CombinedStream.prototype._realGetNext = function() {
- var stream = this._streams.shift();
-
-
- if (typeof stream == 'undefined') {
- this.end();
- return;
- }
-
- if (typeof stream !== 'function') {
- this._pipeNext(stream);
- return;
- }
-
- var getStream = stream;
- getStream(function(stream) {
- var isStreamLike = CombinedStream.isStreamLike(stream);
- if (isStreamLike) {
- stream.on('data', this._checkDataSize.bind(this));
- this._handleErrors(stream);
- }
-
- this._pipeNext(stream);
- }.bind(this));
-};
-
-CombinedStream.prototype._pipeNext = function(stream) {
- this._currentStream = stream;
-
- var isStreamLike = CombinedStream.isStreamLike(stream);
- if (isStreamLike) {
- stream.on('end', this._getNext.bind(this));
- stream.pipe(this, {end: false});
- return;
- }
-
- var value = stream;
- this.write(value);
- this._getNext();
-};
-
-CombinedStream.prototype._handleErrors = function(stream) {
- var self = this;
- stream.on('error', function(err) {
- self._emitError(err);
- });
-};
-
-CombinedStream.prototype.write = function(data) {
- this.emit('data', data);
-};
-
-CombinedStream.prototype.pause = function() {
- if (!this.pauseStreams) {
- return;
- }
-
- if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause();
- this.emit('pause');
-};
-
-CombinedStream.prototype.resume = function() {
- if (!this._released) {
- this._released = true;
- this.writable = true;
- this._getNext();
- }
-
- if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume();
- this.emit('resume');
-};
-
-CombinedStream.prototype.end = function() {
- this._reset();
- this.emit('end');
-};
-
-CombinedStream.prototype.destroy = function() {
- this._reset();
- this.emit('close');
-};
-
-CombinedStream.prototype._reset = function() {
- this.writable = false;
- this._streams = [];
- this._currentStream = null;
-};
-
-CombinedStream.prototype._checkDataSize = function() {
- this._updateDataSize();
- if (this.dataSize <= this.maxDataSize) {
- return;
- }
-
- var message =
- 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';
- this._emitError(new Error(message));
-};
-
-CombinedStream.prototype._updateDataSize = function() {
- this.dataSize = 0;
-
- var self = this;
- this._streams.forEach(function(stream) {
- if (!stream.dataSize) {
- return;
- }
-
- self.dataSize += stream.dataSize;
- });
-
- if (this._currentStream && this._currentStream.dataSize) {
- this.dataSize += this._currentStream.dataSize;
- }
-};
-
-CombinedStream.prototype._emitError = function(err) {
- this._reset();
- this.emit('error', err);
-};
-
-
-/***/ }),
-
-/***/ 6891:
-/***/ ((module) => {
-
-module.exports = function (xs, fn) {
- var res = [];
- for (var i = 0; i < xs.length; i++) {
- var x = fn(xs[i], i);
- if (isArray(x)) res.push.apply(res, x);
- else res.push(x);
- }
- return res;
-};
-
-var isArray = Array.isArray || function (xs) {
- return Object.prototype.toString.call(xs) === '[object Array]';
-};
-
-
-/***/ }),
-
-/***/ 8611:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-var Stream = (__nccwpck_require__(2781).Stream);
-var util = __nccwpck_require__(3837);
-
-module.exports = DelayedStream;
-function DelayedStream() {
- this.source = null;
- this.dataSize = 0;
- this.maxDataSize = 1024 * 1024;
- this.pauseStream = true;
-
- this._maxDataSizeExceeded = false;
- this._released = false;
- this._bufferedEvents = [];
-}
-util.inherits(DelayedStream, Stream);
-
-DelayedStream.create = function(source, options) {
- var delayedStream = new this();
-
- options = options || {};
- for (var option in options) {
- delayedStream[option] = options[option];
- }
-
- delayedStream.source = source;
-
- var realEmit = source.emit;
- source.emit = function() {
- delayedStream._handleEmit(arguments);
- return realEmit.apply(source, arguments);
- };
-
- source.on('error', function() {});
- if (delayedStream.pauseStream) {
- source.pause();
- }
-
- return delayedStream;
-};
-
-Object.defineProperty(DelayedStream.prototype, 'readable', {
- configurable: true,
- enumerable: true,
- get: function() {
- return this.source.readable;
- }
-});
-
-DelayedStream.prototype.setEncoding = function() {
- return this.source.setEncoding.apply(this.source, arguments);
-};
-
-DelayedStream.prototype.resume = function() {
- if (!this._released) {
- this.release();
- }
-
- this.source.resume();
-};
-
-DelayedStream.prototype.pause = function() {
- this.source.pause();
-};
-
-DelayedStream.prototype.release = function() {
- this._released = true;
-
- this._bufferedEvents.forEach(function(args) {
- this.emit.apply(this, args);
- }.bind(this));
- this._bufferedEvents = [];
-};
-
-DelayedStream.prototype.pipe = function() {
- var r = Stream.prototype.pipe.apply(this, arguments);
- this.resume();
- return r;
-};
-
-DelayedStream.prototype._handleEmit = function(args) {
- if (this._released) {
- this.emit.apply(this, args);
- return;
- }
-
- if (args[0] === 'data') {
- this.dataSize += args[1].length;
- this._checkIfMaxDataSizeExceeded();
- }
-
- this._bufferedEvents.push(args);
-};
-
-DelayedStream.prototype._checkIfMaxDataSizeExceeded = function() {
- if (this._maxDataSizeExceeded) {
- return;
- }
-
- if (this.dataSize <= this.maxDataSize) {
- return;
- }
-
- this._maxDataSizeExceeded = true;
- var message =
- 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'
- this.emit('error', new Error(message));
-};
-
-
-/***/ }),
-
-/***/ 7129:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-"use strict";
-
-
-// A linked list to keep track of recently-used-ness
-const Yallist = __nccwpck_require__(665)
-
-const MAX = Symbol('max')
-const LENGTH = Symbol('length')
-const LENGTH_CALCULATOR = Symbol('lengthCalculator')
-const ALLOW_STALE = Symbol('allowStale')
-const MAX_AGE = Symbol('maxAge')
-const DISPOSE = Symbol('dispose')
-const NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')
-const LRU_LIST = Symbol('lruList')
-const CACHE = Symbol('cache')
-const UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')
-
-const naiveLength = () => 1
-
-// lruList is a yallist where the head is the youngest
-// item, and the tail is the oldest. the list contains the Hit
-// objects as the entries.
-// Each Hit object has a reference to its Yallist.Node. This
-// never changes.
-//
-// cache is a Map (or PseudoMap) that matches the keys to
-// the Yallist.Node object.
-class LRUCache {
- constructor (options) {
- if (typeof options === 'number')
- options = { max: options }
-
- if (!options)
- options = {}
-
- if (options.max && (typeof options.max !== 'number' || options.max < 0))
- throw new TypeError('max must be a non-negative number')
- // Kind of weird to have a default max of Infinity, but oh well.
- const max = this[MAX] = options.max || Infinity
-
- const lc = options.length || naiveLength
- this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc
- this[ALLOW_STALE] = options.stale || false
- if (options.maxAge && typeof options.maxAge !== 'number')
- throw new TypeError('maxAge must be a number')
- this[MAX_AGE] = options.maxAge || 0
- this[DISPOSE] = options.dispose
- this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false
- this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false
- this.reset()
- }
-
- // resize the cache when the max changes.
- set max (mL) {
- if (typeof mL !== 'number' || mL < 0)
- throw new TypeError('max must be a non-negative number')
-
- this[MAX] = mL || Infinity
- trim(this)
- }
- get max () {
- return this[MAX]
- }
-
- set allowStale (allowStale) {
- this[ALLOW_STALE] = !!allowStale
- }
- get allowStale () {
- return this[ALLOW_STALE]
- }
-
- set maxAge (mA) {
- if (typeof mA !== 'number')
- throw new TypeError('maxAge must be a non-negative number')
-
- this[MAX_AGE] = mA
- trim(this)
- }
- get maxAge () {
- return this[MAX_AGE]
- }
-
- // resize the cache when the lengthCalculator changes.
- set lengthCalculator (lC) {
- if (typeof lC !== 'function')
- lC = naiveLength
-
- if (lC !== this[LENGTH_CALCULATOR]) {
- this[LENGTH_CALCULATOR] = lC
- this[LENGTH] = 0
- this[LRU_LIST].forEach(hit => {
- hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)
- this[LENGTH] += hit.length
- })
- }
- trim(this)
- }
- get lengthCalculator () { return this[LENGTH_CALCULATOR] }
-
- get length () { return this[LENGTH] }
- get itemCount () { return this[LRU_LIST].length }
-
- rforEach (fn, thisp) {
- thisp = thisp || this
- for (let walker = this[LRU_LIST].tail; walker !== null;) {
- const prev = walker.prev
- forEachStep(this, fn, walker, thisp)
- walker = prev
- }
- }
-
- forEach (fn, thisp) {
- thisp = thisp || this
- for (let walker = this[LRU_LIST].head; walker !== null;) {
- const next = walker.next
- forEachStep(this, fn, walker, thisp)
- walker = next
- }
- }
-
- keys () {
- return this[LRU_LIST].toArray().map(k => k.key)
- }
-
- values () {
- return this[LRU_LIST].toArray().map(k => k.value)
- }
-
- reset () {
- if (this[DISPOSE] &&
- this[LRU_LIST] &&
- this[LRU_LIST].length) {
- this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))
- }
-
- this[CACHE] = new Map() // hash of items by key
- this[LRU_LIST] = new Yallist() // list of items in order of use recency
- this[LENGTH] = 0 // length of items in the list
- }
-
- dump () {
- return this[LRU_LIST].map(hit =>
- isStale(this, hit) ? false : {
- k: hit.key,
- v: hit.value,
- e: hit.now + (hit.maxAge || 0)
- }).toArray().filter(h => h)
- }
-
- dumpLru () {
- return this[LRU_LIST]
- }
-
- set (key, value, maxAge) {
- maxAge = maxAge || this[MAX_AGE]
-
- if (maxAge && typeof maxAge !== 'number')
- throw new TypeError('maxAge must be a number')
-
- const now = maxAge ? Date.now() : 0
- const len = this[LENGTH_CALCULATOR](value, key)
-
- if (this[CACHE].has(key)) {
- if (len > this[MAX]) {
- del(this, this[CACHE].get(key))
- return false
- }
-
- const node = this[CACHE].get(key)
- const item = node.value
-
- // dispose of the old one before overwriting
- // split out into 2 ifs for better coverage tracking
- if (this[DISPOSE]) {
- if (!this[NO_DISPOSE_ON_SET])
- this[DISPOSE](key, item.value)
- }
-
- item.now = now
- item.maxAge = maxAge
- item.value = value
- this[LENGTH] += len - item.length
- item.length = len
- this.get(key)
- trim(this)
- return true
- }
-
- const hit = new Entry(key, value, len, now, maxAge)
-
- // oversized objects fall out of cache automatically.
- if (hit.length > this[MAX]) {
- if (this[DISPOSE])
- this[DISPOSE](key, value)
-
- return false
- }
-
- this[LENGTH] += hit.length
- this[LRU_LIST].unshift(hit)
- this[CACHE].set(key, this[LRU_LIST].head)
- trim(this)
- return true
- }
-
- has (key) {
- if (!this[CACHE].has(key)) return false
- const hit = this[CACHE].get(key).value
- return !isStale(this, hit)
- }
-
- get (key) {
- return get(this, key, true)
- }
-
- peek (key) {
- return get(this, key, false)
- }
-
- pop () {
- const node = this[LRU_LIST].tail
- if (!node)
- return null
-
- del(this, node)
- return node.value
- }
-
- del (key) {
- del(this, this[CACHE].get(key))
- }
-
- load (arr) {
- // reset the cache
- this.reset()
-
- const now = Date.now()
- // A previous serialized cache has the most recent items first
- for (let l = arr.length - 1; l >= 0; l--) {
- const hit = arr[l]
- const expiresAt = hit.e || 0
- if (expiresAt === 0)
- // the item was created without expiration in a non aged cache
- this.set(hit.k, hit.v)
- else {
- const maxAge = expiresAt - now
- // dont add already expired items
- if (maxAge > 0) {
- this.set(hit.k, hit.v, maxAge)
- }
- }
- }
- }
-
- prune () {
- this[CACHE].forEach((value, key) => get(this, key, false))
- }
-}
-
-const get = (self, key, doUse) => {
- const node = self[CACHE].get(key)
- if (node) {
- const hit = node.value
- if (isStale(self, hit)) {
- del(self, node)
- if (!self[ALLOW_STALE])
- return undefined
- } else {
- if (doUse) {
- if (self[UPDATE_AGE_ON_GET])
- node.value.now = Date.now()
- self[LRU_LIST].unshiftNode(node)
- }
- }
- return hit.value
- }
-}
-
-const isStale = (self, hit) => {
- if (!hit || (!hit.maxAge && !self[MAX_AGE]))
- return false
-
- const diff = Date.now() - hit.now
- return hit.maxAge ? diff > hit.maxAge
- : self[MAX_AGE] && (diff > self[MAX_AGE])
-}
-
-const trim = self => {
- if (self[LENGTH] > self[MAX]) {
- for (let walker = self[LRU_LIST].tail;
- self[LENGTH] > self[MAX] && walker !== null;) {
- // We know that we're about to delete this one, and also
- // what the next least recently used key will be, so just
- // go ahead and set it now.
- const prev = walker.prev
- del(self, walker)
- walker = prev
- }
- }
-}
-
-const del = (self, node) => {
- if (node) {
- const hit = node.value
- if (self[DISPOSE])
- self[DISPOSE](hit.key, hit.value)
-
- self[LENGTH] -= hit.length
- self[CACHE].delete(hit.key)
- self[LRU_LIST].removeNode(node)
- }
-}
-
-class Entry {
- constructor (key, value, length, now, maxAge) {
- this.key = key
- this.value = value
- this.length = length
- this.now = now
- this.maxAge = maxAge || 0
- }
-}
-
-const forEachStep = (self, fn, node, thisp) => {
- let hit = node.value
- if (isStale(self, hit)) {
- del(self, node)
- if (!self[ALLOW_STALE])
- hit = undefined
- }
- if (hit)
- fn.call(thisp, hit.value, hit.key, self)
-}
-
-module.exports = LRUCache
-
-
-/***/ }),
-
-/***/ 7426:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-/*!
- * mime-db
- * Copyright(c) 2014 Jonathan Ong
- * MIT Licensed
- */
-
-/**
- * Module exports.
- */
-
-module.exports = __nccwpck_require__(3765)
-
-
-/***/ }),
-
-/***/ 3583:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-/*!
- * mime-types
- * Copyright(c) 2014 Jonathan Ong
- * Copyright(c) 2015 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-
-
-/**
- * Module dependencies.
- * @private
- */
-
-var db = __nccwpck_require__(7426)
-var extname = (__nccwpck_require__(1017).extname)
-
-/**
- * Module variables.
- * @private
- */
-
-var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/
-var TEXT_TYPE_REGEXP = /^text\//i
-
-/**
- * Module exports.
- * @public
- */
-
-exports.charset = charset
-exports.charsets = { lookup: charset }
-exports.contentType = contentType
-exports.extension = extension
-exports.extensions = Object.create(null)
-exports.lookup = lookup
-exports.types = Object.create(null)
-
-// Populate the extensions/types maps
-populateMaps(exports.extensions, exports.types)
-
-/**
- * Get the default charset for a MIME type.
- *
- * @param {string} type
- * @return {boolean|string}
- */
-
-function charset (type) {
- if (!type || typeof type !== 'string') {
- return false
- }
-
- // TODO: use media-typer
- var match = EXTRACT_TYPE_REGEXP.exec(type)
- var mime = match && db[match[1].toLowerCase()]
-
- if (mime && mime.charset) {
- return mime.charset
- }
-
- // default text/* to utf-8
- if (match && TEXT_TYPE_REGEXP.test(match[1])) {
- return 'UTF-8'
- }
-
- return false
-}
-
-/**
- * Create a full Content-Type header given a MIME type or extension.
- *
- * @param {string} str
- * @return {boolean|string}
- */
-
-function contentType (str) {
- // TODO: should this even be in this module?
- if (!str || typeof str !== 'string') {
- return false
- }
-
- var mime = str.indexOf('/') === -1
- ? exports.lookup(str)
- : str
-
- if (!mime) {
- return false
- }
-
- // TODO: use content-type or other module
- if (mime.indexOf('charset') === -1) {
- var charset = exports.charset(mime)
- if (charset) mime += '; charset=' + charset.toLowerCase()
- }
-
- return mime
-}
-
-/**
- * Get the default extension for a MIME type.
- *
- * @param {string} type
- * @return {boolean|string}
- */
-
-function extension (type) {
- if (!type || typeof type !== 'string') {
- return false
- }
-
- // TODO: use media-typer
- var match = EXTRACT_TYPE_REGEXP.exec(type)
-
- // get extensions
- var exts = match && exports.extensions[match[1].toLowerCase()]
-
- if (!exts || !exts.length) {
- return false
- }
-
- return exts[0]
-}
-
-/**
- * Lookup the MIME type for a file path/extension.
- *
- * @param {string} path
- * @return {boolean|string}
- */
-
-function lookup (path) {
- if (!path || typeof path !== 'string') {
- return false
- }
-
- // get the extension ("ext" or ".ext" or full path)
- var extension = extname('x.' + path)
- .toLowerCase()
- .substr(1)
-
- if (!extension) {
- return false
- }
-
- return exports.types[extension] || false
-}
-
-/**
- * Populate the extensions and types maps.
- * @private
- */
-
-function populateMaps (extensions, types) {
- // source preference (least -> most)
- var preference = ['nginx', 'apache', undefined, 'iana']
-
- Object.keys(db).forEach(function forEachMimeType (type) {
- var mime = db[type]
- var exts = mime.extensions
-
- if (!exts || !exts.length) {
- return
- }
-
- // mime -> extensions
- extensions[type] = exts
-
- // extension -> mime
- for (var i = 0; i < exts.length; i++) {
- var extension = exts[i]
-
- if (types[extension]) {
- var from = preference.indexOf(db[types[extension]].source)
- var to = preference.indexOf(mime.source)
-
- if (types[extension] !== 'application/octet-stream' &&
- (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {
- // skip the remapping
- continue
- }
- }
-
- // set the extension -> mime
- types[extension] = type
- }
- })
-}
-
-
-/***/ }),
-
-/***/ 3973:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-module.exports = minimatch
-minimatch.Minimatch = Minimatch
-
-var path = (function () { try { return __nccwpck_require__(1017) } catch (e) {}}()) || {
- sep: '/'
-}
-minimatch.sep = path.sep
-
-var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}
-var expand = __nccwpck_require__(3717)
-
-var plTypes = {
- '!': { open: '(?:(?!(?:', close: '))[^/]*?)'},
- '?': { open: '(?:', close: ')?' },
- '+': { open: '(?:', close: ')+' },
- '*': { open: '(?:', close: ')*' },
- '@': { open: '(?:', close: ')' }
-}
-
-// any single thing other than /
-// don't need to escape / when using new RegExp()
-var qmark = '[^/]'
-
-// * => any number of characters
-var star = qmark + '*?'
-
-// ** when dots are allowed. Anything goes, except .. and .
-// not (^ or / followed by one or two dots followed by $ or /),
-// followed by anything, any number of times.
-var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?'
-
-// not a ^ or / followed by a dot,
-// followed by anything, any number of times.
-var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?'
-
-// characters that need to be escaped in RegExp.
-var reSpecials = charSet('().*{}+?[]^$\\!')
-
-// "abc" -> { a:true, b:true, c:true }
-function charSet (s) {
- return s.split('').reduce(function (set, c) {
- set[c] = true
- return set
- }, {})
-}
-
-// normalizes slashes.
-var slashSplit = /\/+/
-
-minimatch.filter = filter
-function filter (pattern, options) {
- options = options || {}
- return function (p, i, list) {
- return minimatch(p, pattern, options)
- }
-}
-
-function ext (a, b) {
- b = b || {}
- var t = {}
- Object.keys(a).forEach(function (k) {
- t[k] = a[k]
- })
- Object.keys(b).forEach(function (k) {
- t[k] = b[k]
- })
- return t
-}
-
-minimatch.defaults = function (def) {
- if (!def || typeof def !== 'object' || !Object.keys(def).length) {
- return minimatch
- }
-
- var orig = minimatch
-
- var m = function minimatch (p, pattern, options) {
- return orig(p, pattern, ext(def, options))
- }
-
- m.Minimatch = function Minimatch (pattern, options) {
- return new orig.Minimatch(pattern, ext(def, options))
- }
- m.Minimatch.defaults = function defaults (options) {
- return orig.defaults(ext(def, options)).Minimatch
- }
-
- m.filter = function filter (pattern, options) {
- return orig.filter(pattern, ext(def, options))
- }
-
- m.defaults = function defaults (options) {
- return orig.defaults(ext(def, options))
- }
-
- m.makeRe = function makeRe (pattern, options) {
- return orig.makeRe(pattern, ext(def, options))
- }
-
- m.braceExpand = function braceExpand (pattern, options) {
- return orig.braceExpand(pattern, ext(def, options))
- }
-
- m.match = function (list, pattern, options) {
- return orig.match(list, pattern, ext(def, options))
- }
-
- return m
-}
-
-Minimatch.defaults = function (def) {
- return minimatch.defaults(def).Minimatch
-}
-
-function minimatch (p, pattern, options) {
- assertValidPattern(pattern)
-
- if (!options) options = {}
-
- // shortcut: comments match nothing.
- if (!options.nocomment && pattern.charAt(0) === '#') {
- return false
- }
-
- return new Minimatch(pattern, options).match(p)
-}
-
-function Minimatch (pattern, options) {
- if (!(this instanceof Minimatch)) {
- return new Minimatch(pattern, options)
- }
-
- assertValidPattern(pattern)
-
- if (!options) options = {}
-
- pattern = pattern.trim()
-
- // windows support: need to use /, not \
- if (!options.allowWindowsEscape && path.sep !== '/') {
- pattern = pattern.split(path.sep).join('/')
- }
-
- this.options = options
- this.set = []
- this.pattern = pattern
- this.regexp = null
- this.negate = false
- this.comment = false
- this.empty = false
- this.partial = !!options.partial
-
- // make the set of regexps etc.
- this.make()
-}
-
-Minimatch.prototype.debug = function () {}
-
-Minimatch.prototype.make = make
-function make () {
- var pattern = this.pattern
- var options = this.options
-
- // empty patterns and comments match nothing.
- if (!options.nocomment && pattern.charAt(0) === '#') {
- this.comment = true
- return
- }
- if (!pattern) {
- this.empty = true
- return
- }
-
- // step 1: figure out negation, etc.
- this.parseNegate()
-
- // step 2: expand braces
- var set = this.globSet = this.braceExpand()
-
- if (options.debug) this.debug = function debug() { console.error.apply(console, arguments) }
-
- this.debug(this.pattern, set)
-
- // step 3: now we have a set, so turn each one into a series of path-portion
- // matching patterns.
- // These will be regexps, except in the case of "**", which is
- // set to the GLOBSTAR object for globstar behavior,
- // and will not contain any / characters
- set = this.globParts = set.map(function (s) {
- return s.split(slashSplit)
- })
-
- this.debug(this.pattern, set)
-
- // glob --> regexps
- set = set.map(function (s, si, set) {
- return s.map(this.parse, this)
- }, this)
-
- this.debug(this.pattern, set)
-
- // filter out everything that didn't compile properly.
- set = set.filter(function (s) {
- return s.indexOf(false) === -1
- })
-
- this.debug(this.pattern, set)
-
- this.set = set
-}
-
-Minimatch.prototype.parseNegate = parseNegate
-function parseNegate () {
- var pattern = this.pattern
- var negate = false
- var options = this.options
- var negateOffset = 0
-
- if (options.nonegate) return
-
- for (var i = 0, l = pattern.length
- ; i < l && pattern.charAt(i) === '!'
- ; i++) {
- negate = !negate
- negateOffset++
- }
-
- if (negateOffset) this.pattern = pattern.substr(negateOffset)
- this.negate = negate
-}
-
-// Brace expansion:
-// a{b,c}d -> abd acd
-// a{b,}c -> abc ac
-// a{0..3}d -> a0d a1d a2d a3d
-// a{b,c{d,e}f}g -> abg acdfg acefg
-// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg
-//
-// Invalid sets are not expanded.
-// a{2..}b -> a{2..}b
-// a{b}c -> a{b}c
-minimatch.braceExpand = function (pattern, options) {
- return braceExpand(pattern, options)
-}
-
-Minimatch.prototype.braceExpand = braceExpand
-
-function braceExpand (pattern, options) {
- if (!options) {
- if (this instanceof Minimatch) {
- options = this.options
- } else {
- options = {}
- }
- }
-
- pattern = typeof pattern === 'undefined'
- ? this.pattern : pattern
-
- assertValidPattern(pattern)
-
- // Thanks to Yeting Li for
- // improving this regexp to avoid a ReDOS vulnerability.
- if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) {
- // shortcut. no need to expand.
- return [pattern]
- }
-
- return expand(pattern)
-}
-
-var MAX_PATTERN_LENGTH = 1024 * 64
-var assertValidPattern = function (pattern) {
- if (typeof pattern !== 'string') {
- throw new TypeError('invalid pattern')
- }
-
- if (pattern.length > MAX_PATTERN_LENGTH) {
- throw new TypeError('pattern is too long')
- }
-}
-
-// parse a component of the expanded set.
-// At this point, no pattern may contain "/" in it
-// so we're going to return a 2d array, where each entry is the full
-// pattern, split on '/', and then turned into a regular expression.
-// A regexp is made at the end which joins each array with an
-// escaped /, and another full one which joins each regexp with |.
-//
-// Following the lead of Bash 4.1, note that "**" only has special meaning
-// when it is the *only* thing in a path portion. Otherwise, any series
-// of * is equivalent to a single *. Globstar behavior is enabled by
-// default, and can be disabled by setting options.noglobstar.
-Minimatch.prototype.parse = parse
-var SUBPARSE = {}
-function parse (pattern, isSub) {
- assertValidPattern(pattern)
-
- var options = this.options
-
- // shortcuts
- if (pattern === '**') {
- if (!options.noglobstar)
- return GLOBSTAR
- else
- pattern = '*'
- }
- if (pattern === '') return ''
-
- var re = ''
- var hasMagic = !!options.nocase
- var escaping = false
- // ? => one single character
- var patternListStack = []
- var negativeLists = []
- var stateChar
- var inClass = false
- var reClassStart = -1
- var classStart = -1
- // . and .. never match anything that doesn't start with .,
- // even when options.dot is set.
- var patternStart = pattern.charAt(0) === '.' ? '' // anything
- // not (start or / followed by . or .. followed by / or end)
- : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))'
- : '(?!\\.)'
- var self = this
-
- function clearStateChar () {
- if (stateChar) {
- // we had some state-tracking character
- // that wasn't consumed by this pass.
- switch (stateChar) {
- case '*':
- re += star
- hasMagic = true
- break
- case '?':
- re += qmark
- hasMagic = true
- break
- default:
- re += '\\' + stateChar
- break
- }
- self.debug('clearStateChar %j %j', stateChar, re)
- stateChar = false
- }
- }
-
- for (var i = 0, len = pattern.length, c
- ; (i < len) && (c = pattern.charAt(i))
- ; i++) {
- this.debug('%s\t%s %s %j', pattern, i, re, c)
-
- // skip over any that are escaped.
- if (escaping && reSpecials[c]) {
- re += '\\' + c
- escaping = false
- continue
- }
-
- switch (c) {
- /* istanbul ignore next */
- case '/': {
- // completely not allowed, even escaped.
- // Should already be path-split by now.
- return false
- }
-
- case '\\':
- clearStateChar()
- escaping = true
- continue
-
- // the various stateChar values
- // for the "extglob" stuff.
- case '?':
- case '*':
- case '+':
- case '@':
- case '!':
- this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c)
-
- // all of those are literals inside a class, except that
- // the glob [!a] means [^a] in regexp
- if (inClass) {
- this.debug(' in class')
- if (c === '!' && i === classStart + 1) c = '^'
- re += c
- continue
- }
-
- // if we already have a stateChar, then it means
- // that there was something like ** or +? in there.
- // Handle the stateChar, then proceed with this one.
- self.debug('call clearStateChar %j', stateChar)
- clearStateChar()
- stateChar = c
- // if extglob is disabled, then +(asdf|foo) isn't a thing.
- // just clear the statechar *now*, rather than even diving into
- // the patternList stuff.
- if (options.noext) clearStateChar()
- continue
-
- case '(':
- if (inClass) {
- re += '('
- continue
- }
-
- if (!stateChar) {
- re += '\\('
- continue
- }
-
- patternListStack.push({
- type: stateChar,
- start: i - 1,
- reStart: re.length,
- open: plTypes[stateChar].open,
- close: plTypes[stateChar].close
- })
- // negation is (?:(?!js)[^/]*)
- re += stateChar === '!' ? '(?:(?!(?:' : '(?:'
- this.debug('plType %j %j', stateChar, re)
- stateChar = false
- continue
-
- case ')':
- if (inClass || !patternListStack.length) {
- re += '\\)'
- continue
- }
-
- clearStateChar()
- hasMagic = true
- var pl = patternListStack.pop()
- // negation is (?:(?!js)[^/]*)
- // The others are (?:)
- re += pl.close
- if (pl.type === '!') {
- negativeLists.push(pl)
- }
- pl.reEnd = re.length
- continue
-
- case '|':
- if (inClass || !patternListStack.length || escaping) {
- re += '\\|'
- escaping = false
- continue
- }
-
- clearStateChar()
- re += '|'
- continue
-
- // these are mostly the same in regexp and glob
- case '[':
- // swallow any state-tracking char before the [
- clearStateChar()
-
- if (inClass) {
- re += '\\' + c
- continue
- }
-
- inClass = true
- classStart = i
- reClassStart = re.length
- re += c
- continue
-
- case ']':
- // a right bracket shall lose its special
- // meaning and represent itself in
- // a bracket expression if it occurs
- // first in the list. -- POSIX.2 2.8.3.2
- if (i === classStart + 1 || !inClass) {
- re += '\\' + c
- escaping = false
- continue
- }
-
- // handle the case where we left a class open.
- // "[z-a]" is valid, equivalent to "\[z-a\]"
- // split where the last [ was, make sure we don't have
- // an invalid re. if so, re-walk the contents of the
- // would-be class to re-translate any characters that
- // were passed through as-is
- // TODO: It would probably be faster to determine this
- // without a try/catch and a new RegExp, but it's tricky
- // to do safely. For now, this is safe and works.
- var cs = pattern.substring(classStart + 1, i)
- try {
- RegExp('[' + cs + ']')
- } catch (er) {
- // not a valid class!
- var sp = this.parse(cs, SUBPARSE)
- re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]'
- hasMagic = hasMagic || sp[1]
- inClass = false
- continue
- }
-
- // finish up the class.
- hasMagic = true
- inClass = false
- re += c
- continue
-
- default:
- // swallow any state char that wasn't consumed
- clearStateChar()
-
- if (escaping) {
- // no need
- escaping = false
- } else if (reSpecials[c]
- && !(c === '^' && inClass)) {
- re += '\\'
- }
-
- re += c
-
- } // switch
- } // for
-
- // handle the case where we left a class open.
- // "[abc" is valid, equivalent to "\[abc"
- if (inClass) {
- // split where the last [ was, and escape it
- // this is a huge pita. We now have to re-walk
- // the contents of the would-be class to re-translate
- // any characters that were passed through as-is
- cs = pattern.substr(classStart + 1)
- sp = this.parse(cs, SUBPARSE)
- re = re.substr(0, reClassStart) + '\\[' + sp[0]
- hasMagic = hasMagic || sp[1]
- }
-
- // handle the case where we had a +( thing at the *end*
- // of the pattern.
- // each pattern list stack adds 3 chars, and we need to go through
- // and escape any | chars that were passed through as-is for the regexp.
- // Go through and escape them, taking care not to double-escape any
- // | chars that were already escaped.
- for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {
- var tail = re.slice(pl.reStart + pl.open.length)
- this.debug('setting tail', re, pl)
- // maybe some even number of \, then maybe 1 \, followed by a |
- tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (_, $1, $2) {
- if (!$2) {
- // the | isn't already escaped, so escape it.
- $2 = '\\'
- }
-
- // need to escape all those slashes *again*, without escaping the
- // one that we need for escaping the | character. As it works out,
- // escaping an even number of slashes can be done by simply repeating
- // it exactly after itself. That's why this trick works.
- //
- // I am sorry that you have to see this.
- return $1 + $1 + $2 + '|'
- })
-
- this.debug('tail=%j\n %s', tail, tail, pl, re)
- var t = pl.type === '*' ? star
- : pl.type === '?' ? qmark
- : '\\' + pl.type
-
- hasMagic = true
- re = re.slice(0, pl.reStart) + t + '\\(' + tail
- }
-
- // handle trailing things that only matter at the very end.
- clearStateChar()
- if (escaping) {
- // trailing \\
- re += '\\\\'
- }
-
- // only need to apply the nodot start if the re starts with
- // something that could conceivably capture a dot
- var addPatternStart = false
- switch (re.charAt(0)) {
- case '[': case '.': case '(': addPatternStart = true
- }
-
- // Hack to work around lack of negative lookbehind in JS
- // A pattern like: *.!(x).!(y|z) needs to ensure that a name
- // like 'a.xyz.yz' doesn't match. So, the first negative
- // lookahead, has to look ALL the way ahead, to the end of
- // the pattern.
- for (var n = negativeLists.length - 1; n > -1; n--) {
- var nl = negativeLists[n]
-
- var nlBefore = re.slice(0, nl.reStart)
- var nlFirst = re.slice(nl.reStart, nl.reEnd - 8)
- var nlLast = re.slice(nl.reEnd - 8, nl.reEnd)
- var nlAfter = re.slice(nl.reEnd)
-
- nlLast += nlAfter
-
- // Handle nested stuff like *(*.js|!(*.json)), where open parens
- // mean that we should *not* include the ) in the bit that is considered
- // "after" the negated section.
- var openParensBefore = nlBefore.split('(').length - 1
- var cleanAfter = nlAfter
- for (i = 0; i < openParensBefore; i++) {
- cleanAfter = cleanAfter.replace(/\)[+*?]?/, '')
- }
- nlAfter = cleanAfter
-
- var dollar = ''
- if (nlAfter === '' && isSub !== SUBPARSE) {
- dollar = '$'
- }
- var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast
- re = newRe
- }
-
- // if the re is not "" at this point, then we need to make sure
- // it doesn't match against an empty path part.
- // Otherwise a/* will match a/, which it should not.
- if (re !== '' && hasMagic) {
- re = '(?=.)' + re
- }
-
- if (addPatternStart) {
- re = patternStart + re
- }
-
- // parsing just a piece of a larger pattern.
- if (isSub === SUBPARSE) {
- return [re, hasMagic]
- }
-
- // skip the regexp for non-magical patterns
- // unescape anything in it, though, so that it'll be
- // an exact match against a file etc.
- if (!hasMagic) {
- return globUnescape(pattern)
- }
-
- var flags = options.nocase ? 'i' : ''
- try {
- var regExp = new RegExp('^' + re + '$', flags)
- } catch (er) /* istanbul ignore next - should be impossible */ {
- // If it was an invalid regular expression, then it can't match
- // anything. This trick looks for a character after the end of
- // the string, which is of course impossible, except in multi-line
- // mode, but it's not a /m regex.
- return new RegExp('$.')
- }
-
- regExp._glob = pattern
- regExp._src = re
-
- return regExp
-}
-
-minimatch.makeRe = function (pattern, options) {
- return new Minimatch(pattern, options || {}).makeRe()
-}
-
-Minimatch.prototype.makeRe = makeRe
-function makeRe () {
- if (this.regexp || this.regexp === false) return this.regexp
-
- // at this point, this.set is a 2d array of partial
- // pattern strings, or "**".
- //
- // It's better to use .match(). This function shouldn't
- // be used, really, but it's pretty convenient sometimes,
- // when you just want to work with a regex.
- var set = this.set
-
- if (!set.length) {
- this.regexp = false
- return this.regexp
- }
- var options = this.options
-
- var twoStar = options.noglobstar ? star
- : options.dot ? twoStarDot
- : twoStarNoDot
- var flags = options.nocase ? 'i' : ''
-
- var re = set.map(function (pattern) {
- return pattern.map(function (p) {
- return (p === GLOBSTAR) ? twoStar
- : (typeof p === 'string') ? regExpEscape(p)
- : p._src
- }).join('\\\/')
- }).join('|')
-
- // must match entire pattern
- // ending in a * or ** will make it less strict.
- re = '^(?:' + re + ')$'
-
- // can match anything, as long as it's not this.
- if (this.negate) re = '^(?!' + re + ').*$'
-
- try {
- this.regexp = new RegExp(re, flags)
- } catch (ex) /* istanbul ignore next - should be impossible */ {
- this.regexp = false
- }
- return this.regexp
-}
-
-minimatch.match = function (list, pattern, options) {
- options = options || {}
- var mm = new Minimatch(pattern, options)
- list = list.filter(function (f) {
- return mm.match(f)
- })
- if (mm.options.nonull && !list.length) {
- list.push(pattern)
- }
- return list
-}
-
-Minimatch.prototype.match = function match (f, partial) {
- if (typeof partial === 'undefined') partial = this.partial
- this.debug('match', f, this.pattern)
- // short-circuit in the case of busted things.
- // comments, etc.
- if (this.comment) return false
- if (this.empty) return f === ''
-
- if (f === '/' && partial) return true
-
- var options = this.options
-
- // windows: need to use /, not \
- if (path.sep !== '/') {
- f = f.split(path.sep).join('/')
- }
-
- // treat the test path as a set of pathparts.
- f = f.split(slashSplit)
- this.debug(this.pattern, 'split', f)
-
- // just ONE of the pattern sets in this.set needs to match
- // in order for it to be valid. If negating, then just one
- // match means that we have failed.
- // Either way, return on the first hit.
-
- var set = this.set
- this.debug(this.pattern, 'set', set)
-
- // Find the basename of the path by looking for the last non-empty segment
- var filename
- var i
- for (i = f.length - 1; i >= 0; i--) {
- filename = f[i]
- if (filename) break
- }
-
- for (i = 0; i < set.length; i++) {
- var pattern = set[i]
- var file = f
- if (options.matchBase && pattern.length === 1) {
- file = [filename]
- }
- var hit = this.matchOne(file, pattern, partial)
- if (hit) {
- if (options.flipNegate) return true
- return !this.negate
- }
- }
-
- // didn't get any hits. this is success if it's a negative
- // pattern, failure otherwise.
- if (options.flipNegate) return false
- return this.negate
-}
-
-// set partial to true to test if, for example,
-// "/a/b" matches the start of "/*/b/*/d"
-// Partial means, if you run out of file before you run
-// out of pattern, then that's fine, as long as all
-// the parts match.
-Minimatch.prototype.matchOne = function (file, pattern, partial) {
- var options = this.options
-
- this.debug('matchOne',
- { 'this': this, file: file, pattern: pattern })
-
- this.debug('matchOne', file.length, pattern.length)
-
- for (var fi = 0,
- pi = 0,
- fl = file.length,
- pl = pattern.length
- ; (fi < fl) && (pi < pl)
- ; fi++, pi++) {
- this.debug('matchOne loop')
- var p = pattern[pi]
- var f = file[fi]
-
- this.debug(pattern, p, f)
-
- // should be impossible.
- // some invalid regexp stuff in the set.
- /* istanbul ignore if */
- if (p === false) return false
-
- if (p === GLOBSTAR) {
- this.debug('GLOBSTAR', [pattern, p, f])
-
- // "**"
- // a/**/b/**/c would match the following:
- // a/b/x/y/z/c
- // a/x/y/z/b/c
- // a/b/x/b/x/c
- // a/b/c
- // To do this, take the rest of the pattern after
- // the **, and see if it would match the file remainder.
- // If so, return success.
- // If not, the ** "swallows" a segment, and try again.
- // This is recursively awful.
- //
- // a/**/b/**/c matching a/b/x/y/z/c
- // - a matches a
- // - doublestar
- // - matchOne(b/x/y/z/c, b/**/c)
- // - b matches b
- // - doublestar
- // - matchOne(x/y/z/c, c) -> no
- // - matchOne(y/z/c, c) -> no
- // - matchOne(z/c, c) -> no
- // - matchOne(c, c) yes, hit
- var fr = fi
- var pr = pi + 1
- if (pr === pl) {
- this.debug('** at the end')
- // a ** at the end will just swallow the rest.
- // We have found a match.
- // however, it will not swallow /.x, unless
- // options.dot is set.
- // . and .. are *never* matched by **, for explosively
- // exponential reasons.
- for (; fi < fl; fi++) {
- if (file[fi] === '.' || file[fi] === '..' ||
- (!options.dot && file[fi].charAt(0) === '.')) return false
- }
- return true
- }
-
- // ok, let's see if we can swallow whatever we can.
- while (fr < fl) {
- var swallowee = file[fr]
-
- this.debug('\nglobstar while', file, fr, pattern, pr, swallowee)
-
- // XXX remove this slice. Just pass the start index.
- if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
- this.debug('globstar found match!', fr, fl, swallowee)
- // found a match.
- return true
- } else {
- // can't swallow "." or ".." ever.
- // can only swallow ".foo" when explicitly asked.
- if (swallowee === '.' || swallowee === '..' ||
- (!options.dot && swallowee.charAt(0) === '.')) {
- this.debug('dot detected!', file, fr, pattern, pr)
- break
- }
-
- // ** swallows a segment, and continue.
- this.debug('globstar swallow a segment, and continue')
- fr++
- }
- }
-
- // no match was found.
- // However, in partial mode, we can't say this is necessarily over.
- // If there's more *pattern* left, then
- /* istanbul ignore if */
- if (partial) {
- // ran out of file
- this.debug('\n>>> no match, partial?', file, fr, pattern, pr)
- if (fr === fl) return true
- }
- return false
- }
-
- // something other than **
- // non-magic patterns just have to match exactly
- // patterns with magic have been turned into regexps.
- var hit
- if (typeof p === 'string') {
- hit = f === p
- this.debug('string match', p, f, hit)
- } else {
- hit = f.match(p)
- this.debug('pattern match', p, f, hit)
- }
-
- if (!hit) return false
- }
-
- // Note: ending in / means that we'll get a final ""
- // at the end of the pattern. This can only match a
- // corresponding "" at the end of the file.
- // If the file ends in /, then it can only match a
- // a pattern that ends in /, unless the pattern just
- // doesn't have any more for it. But, a/b/ should *not*
- // match "a/b/*", even though "" matches against the
- // [^/]*? pattern, except in partial mode, where it might
- // simply not be reached yet.
- // However, a/b/ should still satisfy a/*
-
- // now either we fell off the end of the pattern, or we're done.
- if (fi === fl && pi === pl) {
- // ran out of pattern and filename at the same time.
- // an exact hit!
- return true
- } else if (fi === fl) {
- // ran out of file, but still had pattern left.
- // this is ok if we're doing the match as part of
- // a glob fs traversal.
- return partial
- } else /* istanbul ignore else */ if (pi === pl) {
- // ran out of pattern, still have file left.
- // this is only acceptable if we're on the very last
- // empty segment of a file with a trailing slash.
- // a/* should match a/b/
- return (fi === fl - 1) && (file[fi] === '')
- }
-
- // should be unreachable.
- /* istanbul ignore next */
- throw new Error('wtf?')
-}
-
-// replace stuff like \* with *
-function globUnescape (s) {
- return s.replace(/\\(.)/g, '$1')
-}
-
-function regExpEscape (s) {
- return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')
-}
-
-
-/***/ }),
-
-/***/ 467:
-/***/ ((module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-
-function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
-
-var Stream = _interopDefault(__nccwpck_require__(2781));
-var http = _interopDefault(__nccwpck_require__(3685));
-var Url = _interopDefault(__nccwpck_require__(7310));
-var whatwgUrl = _interopDefault(__nccwpck_require__(629));
-var https = _interopDefault(__nccwpck_require__(5687));
-var zlib = _interopDefault(__nccwpck_require__(9796));
-
-// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js
-
-// fix for "Readable" isn't a named export issue
-const Readable = Stream.Readable;
-
-const BUFFER = Symbol('buffer');
-const TYPE = Symbol('type');
-
-class Blob {
- constructor() {
- this[TYPE] = '';
-
- const blobParts = arguments[0];
- const options = arguments[1];
-
- const buffers = [];
- let size = 0;
-
- if (blobParts) {
- const a = blobParts;
- const length = Number(a.length);
- for (let i = 0; i < length; i++) {
- const element = a[i];
- let buffer;
- if (element instanceof Buffer) {
- buffer = element;
- } else if (ArrayBuffer.isView(element)) {
- buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);
- } else if (element instanceof ArrayBuffer) {
- buffer = Buffer.from(element);
- } else if (element instanceof Blob) {
- buffer = element[BUFFER];
- } else {
- buffer = Buffer.from(typeof element === 'string' ? element : String(element));
- }
- size += buffer.length;
- buffers.push(buffer);
- }
- }
-
- this[BUFFER] = Buffer.concat(buffers);
-
- let type = options && options.type !== undefined && String(options.type).toLowerCase();
- if (type && !/[^\u0020-\u007E]/.test(type)) {
- this[TYPE] = type;
- }
- }
- get size() {
- return this[BUFFER].length;
- }
- get type() {
- return this[TYPE];
- }
- text() {
- return Promise.resolve(this[BUFFER].toString());
- }
- arrayBuffer() {
- const buf = this[BUFFER];
- const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
- return Promise.resolve(ab);
- }
- stream() {
- const readable = new Readable();
- readable._read = function () {};
- readable.push(this[BUFFER]);
- readable.push(null);
- return readable;
- }
- toString() {
- return '[object Blob]';
- }
- slice() {
- const size = this.size;
-
- const start = arguments[0];
- const end = arguments[1];
- let relativeStart, relativeEnd;
- if (start === undefined) {
- relativeStart = 0;
- } else if (start < 0) {
- relativeStart = Math.max(size + start, 0);
- } else {
- relativeStart = Math.min(start, size);
- }
- if (end === undefined) {
- relativeEnd = size;
- } else if (end < 0) {
- relativeEnd = Math.max(size + end, 0);
- } else {
- relativeEnd = Math.min(end, size);
- }
- const span = Math.max(relativeEnd - relativeStart, 0);
-
- const buffer = this[BUFFER];
- const slicedBuffer = buffer.slice(relativeStart, relativeStart + span);
- const blob = new Blob([], { type: arguments[2] });
- blob[BUFFER] = slicedBuffer;
- return blob;
- }
-}
-
-Object.defineProperties(Blob.prototype, {
- size: { enumerable: true },
- type: { enumerable: true },
- slice: { enumerable: true }
-});
-
-Object.defineProperty(Blob.prototype, Symbol.toStringTag, {
- value: 'Blob',
- writable: false,
- enumerable: false,
- configurable: true
-});
-
-/**
- * fetch-error.js
- *
- * FetchError interface for operational errors
- */
-
-/**
- * Create FetchError instance
- *
- * @param String message Error message for human
- * @param String type Error type for machine
- * @param String systemError For Node.js system error
- * @return FetchError
- */
-function FetchError(message, type, systemError) {
- Error.call(this, message);
-
- this.message = message;
- this.type = type;
-
- // when err.type is `system`, err.code contains system error code
- if (systemError) {
- this.code = this.errno = systemError.code;
- }
-
- // hide custom error implementation details from end-users
- Error.captureStackTrace(this, this.constructor);
-}
-
-FetchError.prototype = Object.create(Error.prototype);
-FetchError.prototype.constructor = FetchError;
-FetchError.prototype.name = 'FetchError';
-
-let convert;
-try {
- convert = (__nccwpck_require__(2877).convert);
-} catch (e) {}
-
-const INTERNALS = Symbol('Body internals');
-
-// fix an issue where "PassThrough" isn't a named export for node <10
-const PassThrough = Stream.PassThrough;
-
-/**
- * Body mixin
- *
- * Ref: https://fetch.spec.whatwg.org/#body
- *
- * @param Stream body Readable stream
- * @param Object opts Response options
- * @return Void
- */
-function Body(body) {
- var _this = this;
-
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
- _ref$size = _ref.size;
-
- let size = _ref$size === undefined ? 0 : _ref$size;
- var _ref$timeout = _ref.timeout;
- let timeout = _ref$timeout === undefined ? 0 : _ref$timeout;
-
- if (body == null) {
- // body is undefined or null
- body = null;
- } else if (isURLSearchParams(body)) {
- // body is a URLSearchParams
- body = Buffer.from(body.toString());
- } else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {
- // body is ArrayBuffer
- body = Buffer.from(body);
- } else if (ArrayBuffer.isView(body)) {
- // body is ArrayBufferView
- body = Buffer.from(body.buffer, body.byteOffset, body.byteLength);
- } else if (body instanceof Stream) ; else {
- // none of the above
- // coerce to string then buffer
- body = Buffer.from(String(body));
- }
- this[INTERNALS] = {
- body,
- disturbed: false,
- error: null
- };
- this.size = size;
- this.timeout = timeout;
-
- if (body instanceof Stream) {
- body.on('error', function (err) {
- const error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);
- _this[INTERNALS].error = error;
- });
- }
-}
-
-Body.prototype = {
- get body() {
- return this[INTERNALS].body;
- },
-
- get bodyUsed() {
- return this[INTERNALS].disturbed;
- },
-
- /**
- * Decode response as ArrayBuffer
- *
- * @return Promise
- */
- arrayBuffer() {
- return consumeBody.call(this).then(function (buf) {
- return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
- });
- },
-
- /**
- * Return raw response as Blob
- *
- * @return Promise
- */
- blob() {
- let ct = this.headers && this.headers.get('content-type') || '';
- return consumeBody.call(this).then(function (buf) {
- return Object.assign(
- // Prevent copying
- new Blob([], {
- type: ct.toLowerCase()
- }), {
- [BUFFER]: buf
- });
- });
- },
-
- /**
- * Decode response as json
- *
- * @return Promise
- */
- json() {
- var _this2 = this;
-
- return consumeBody.call(this).then(function (buffer) {
- try {
- return JSON.parse(buffer.toString());
- } catch (err) {
- return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));
- }
- });
- },
-
- /**
- * Decode response as text
- *
- * @return Promise
- */
- text() {
- return consumeBody.call(this).then(function (buffer) {
- return buffer.toString();
- });
- },
-
- /**
- * Decode response as buffer (non-spec api)
- *
- * @return Promise
- */
- buffer() {
- return consumeBody.call(this);
- },
-
- /**
- * Decode response as text, while automatically detecting the encoding and
- * trying to decode to UTF-8 (non-spec api)
- *
- * @return Promise
- */
- textConverted() {
- var _this3 = this;
-
- return consumeBody.call(this).then(function (buffer) {
- return convertBody(buffer, _this3.headers);
- });
- }
-};
-
-// In browsers, all properties are enumerable.
-Object.defineProperties(Body.prototype, {
- body: { enumerable: true },
- bodyUsed: { enumerable: true },
- arrayBuffer: { enumerable: true },
- blob: { enumerable: true },
- json: { enumerable: true },
- text: { enumerable: true }
-});
-
-Body.mixIn = function (proto) {
- for (const name of Object.getOwnPropertyNames(Body.prototype)) {
- // istanbul ignore else: future proof
- if (!(name in proto)) {
- const desc = Object.getOwnPropertyDescriptor(Body.prototype, name);
- Object.defineProperty(proto, name, desc);
- }
- }
-};
-
-/**
- * Consume and convert an entire Body to a Buffer.
- *
- * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body
- *
- * @return Promise
- */
-function consumeBody() {
- var _this4 = this;
-
- if (this[INTERNALS].disturbed) {
- return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));
- }
-
- this[INTERNALS].disturbed = true;
-
- if (this[INTERNALS].error) {
- return Body.Promise.reject(this[INTERNALS].error);
- }
-
- let body = this.body;
-
- // body is null
- if (body === null) {
- return Body.Promise.resolve(Buffer.alloc(0));
- }
-
- // body is blob
- if (isBlob(body)) {
- body = body.stream();
- }
-
- // body is buffer
- if (Buffer.isBuffer(body)) {
- return Body.Promise.resolve(body);
- }
-
- // istanbul ignore if: should never happen
- if (!(body instanceof Stream)) {
- return Body.Promise.resolve(Buffer.alloc(0));
- }
-
- // body is stream
- // get ready to actually consume the body
- let accum = [];
- let accumBytes = 0;
- let abort = false;
-
- return new Body.Promise(function (resolve, reject) {
- let resTimeout;
-
- // allow timeout on slow response body
- if (_this4.timeout) {
- resTimeout = setTimeout(function () {
- abort = true;
- reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));
- }, _this4.timeout);
- }
-
- // handle stream errors
- body.on('error', function (err) {
- if (err.name === 'AbortError') {
- // if the request was aborted, reject with this Error
- abort = true;
- reject(err);
- } else {
- // other errors, such as incorrect content-encoding
- reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));
- }
- });
-
- body.on('data', function (chunk) {
- if (abort || chunk === null) {
- return;
- }
-
- if (_this4.size && accumBytes + chunk.length > _this4.size) {
- abort = true;
- reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));
- return;
- }
-
- accumBytes += chunk.length;
- accum.push(chunk);
- });
-
- body.on('end', function () {
- if (abort) {
- return;
- }
-
- clearTimeout(resTimeout);
-
- try {
- resolve(Buffer.concat(accum, accumBytes));
- } catch (err) {
- // handle streams that have accumulated too much data (issue #414)
- reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));
- }
- });
- });
-}
-
-/**
- * Detect buffer encoding and convert to target encoding
- * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding
- *
- * @param Buffer buffer Incoming buffer
- * @param String encoding Target encoding
- * @return String
- */
-function convertBody(buffer, headers) {
- if (typeof convert !== 'function') {
- throw new Error('The package `encoding` must be installed to use the textConverted() function');
- }
-
- const ct = headers.get('content-type');
- let charset = 'utf-8';
- let res, str;
-
- // header
- if (ct) {
- res = /charset=([^;]*)/i.exec(ct);
- }
-
- // no charset in content type, peek at response body for at most 1024 bytes
- str = buffer.slice(0, 1024).toString();
-
- // html5
- if (!res && str) {
- res = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;
-
- this[MAP] = Object.create(null);
-
- if (init instanceof Headers) {
- const rawHeaders = init.raw();
- const headerNames = Object.keys(rawHeaders);
-
- for (const headerName of headerNames) {
- for (const value of rawHeaders[headerName]) {
- this.append(headerName, value);
- }
- }
-
- return;
- }
-
- // We don't worry about converting prop to ByteString here as append()
- // will handle it.
- if (init == null) ; else if (typeof init === 'object') {
- const method = init[Symbol.iterator];
- if (method != null) {
- if (typeof method !== 'function') {
- throw new TypeError('Header pairs must be iterable');
- }
-
- // sequence>
- // Note: per spec we have to first exhaust the lists then process them
- const pairs = [];
- for (const pair of init) {
- if (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {
- throw new TypeError('Each header pair must be iterable');
- }
- pairs.push(Array.from(pair));
- }
-
- for (const pair of pairs) {
- if (pair.length !== 2) {
- throw new TypeError('Each header pair must be a name/value tuple');
- }
- this.append(pair[0], pair[1]);
- }
- } else {
- // record
- for (const key of Object.keys(init)) {
- const value = init[key];
- this.append(key, value);
- }
- }
- } else {
- throw new TypeError('Provided initializer must be an object');
- }
- }
-
- /**
- * Return combined header value given name
- *
- * @param String name Header name
- * @return Mixed
- */
- get(name) {
- name = `${name}`;
- validateName(name);
- const key = find(this[MAP], name);
- if (key === undefined) {
- return null;
- }
-
- return this[MAP][key].join(', ');
- }
-
- /**
- * Iterate over all headers
- *
- * @param Function callback Executed for each item with parameters (value, name, thisArg)
- * @param Boolean thisArg `this` context for callback function
- * @return Void
- */
- forEach(callback) {
- let thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
-
- let pairs = getHeaders(this);
- let i = 0;
- while (i < pairs.length) {
- var _pairs$i = pairs[i];
- const name = _pairs$i[0],
- value = _pairs$i[1];
-
- callback.call(thisArg, value, name, this);
- pairs = getHeaders(this);
- i++;
- }
- }
-
- /**
- * Overwrite header values given name
- *
- * @param String name Header name
- * @param String value Header value
- * @return Void
- */
- set(name, value) {
- name = `${name}`;
- value = `${value}`;
- validateName(name);
- validateValue(value);
- const key = find(this[MAP], name);
- this[MAP][key !== undefined ? key : name] = [value];
- }
-
- /**
- * Append a value onto existing header
- *
- * @param String name Header name
- * @param String value Header value
- * @return Void
- */
- append(name, value) {
- name = `${name}`;
- value = `${value}`;
- validateName(name);
- validateValue(value);
- const key = find(this[MAP], name);
- if (key !== undefined) {
- this[MAP][key].push(value);
- } else {
- this[MAP][name] = [value];
- }
- }
-
- /**
- * Check for header name existence
- *
- * @param String name Header name
- * @return Boolean
- */
- has(name) {
- name = `${name}`;
- validateName(name);
- return find(this[MAP], name) !== undefined;
- }
-
- /**
- * Delete all header values given name
- *
- * @param String name Header name
- * @return Void
- */
- delete(name) {
- name = `${name}`;
- validateName(name);
- const key = find(this[MAP], name);
- if (key !== undefined) {
- delete this[MAP][key];
- }
- }
-
- /**
- * Return raw headers (non-spec api)
- *
- * @return Object
- */
- raw() {
- return this[MAP];
- }
-
- /**
- * Get an iterator on keys.
- *
- * @return Iterator
- */
- keys() {
- return createHeadersIterator(this, 'key');
- }
-
- /**
- * Get an iterator on values.
- *
- * @return Iterator
- */
- values() {
- return createHeadersIterator(this, 'value');
- }
-
- /**
- * Get an iterator on entries.
- *
- * This is the default iterator of the Headers object.
- *
- * @return Iterator
- */
- [Symbol.iterator]() {
- return createHeadersIterator(this, 'key+value');
- }
-}
-Headers.prototype.entries = Headers.prototype[Symbol.iterator];
-
-Object.defineProperty(Headers.prototype, Symbol.toStringTag, {
- value: 'Headers',
- writable: false,
- enumerable: false,
- configurable: true
-});
-
-Object.defineProperties(Headers.prototype, {
- get: { enumerable: true },
- forEach: { enumerable: true },
- set: { enumerable: true },
- append: { enumerable: true },
- has: { enumerable: true },
- delete: { enumerable: true },
- keys: { enumerable: true },
- values: { enumerable: true },
- entries: { enumerable: true }
-});
-
-function getHeaders(headers) {
- let kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';
-
- const keys = Object.keys(headers[MAP]).sort();
- return keys.map(kind === 'key' ? function (k) {
- return k.toLowerCase();
- } : kind === 'value' ? function (k) {
- return headers[MAP][k].join(', ');
- } : function (k) {
- return [k.toLowerCase(), headers[MAP][k].join(', ')];
- });
-}
-
-const INTERNAL = Symbol('internal');
-
-function createHeadersIterator(target, kind) {
- const iterator = Object.create(HeadersIteratorPrototype);
- iterator[INTERNAL] = {
- target,
- kind,
- index: 0
- };
- return iterator;
-}
-
-const HeadersIteratorPrototype = Object.setPrototypeOf({
- next() {
- // istanbul ignore if
- if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {
- throw new TypeError('Value of `this` is not a HeadersIterator');
- }
-
- var _INTERNAL = this[INTERNAL];
- const target = _INTERNAL.target,
- kind = _INTERNAL.kind,
- index = _INTERNAL.index;
-
- const values = getHeaders(target, kind);
- const len = values.length;
- if (index >= len) {
- return {
- value: undefined,
- done: true
- };
- }
-
- this[INTERNAL].index = index + 1;
-
- return {
- value: values[index],
- done: false
- };
- }
-}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));
-
-Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {
- value: 'HeadersIterator',
- writable: false,
- enumerable: false,
- configurable: true
-});
-
-/**
- * Export the Headers object in a form that Node.js can consume.
- *
- * @param Headers headers
- * @return Object
- */
-function exportNodeCompatibleHeaders(headers) {
- const obj = Object.assign({ __proto__: null }, headers[MAP]);
-
- // http.request() only supports string as Host header. This hack makes
- // specifying custom Host header possible.
- const hostHeaderKey = find(headers[MAP], 'Host');
- if (hostHeaderKey !== undefined) {
- obj[hostHeaderKey] = obj[hostHeaderKey][0];
- }
-
- return obj;
-}
-
-/**
- * Create a Headers object from an object of headers, ignoring those that do
- * not conform to HTTP grammar productions.
- *
- * @param Object obj Object of headers
- * @return Headers
- */
-function createHeadersLenient(obj) {
- const headers = new Headers();
- for (const name of Object.keys(obj)) {
- if (invalidTokenRegex.test(name)) {
- continue;
- }
- if (Array.isArray(obj[name])) {
- for (const val of obj[name]) {
- if (invalidHeaderCharRegex.test(val)) {
- continue;
- }
- if (headers[MAP][name] === undefined) {
- headers[MAP][name] = [val];
- } else {
- headers[MAP][name].push(val);
- }
- }
- } else if (!invalidHeaderCharRegex.test(obj[name])) {
- headers[MAP][name] = [obj[name]];
- }
- }
- return headers;
-}
-
-const INTERNALS$1 = Symbol('Response internals');
-
-// fix an issue where "STATUS_CODES" aren't a named export for node <10
-const STATUS_CODES = http.STATUS_CODES;
-
-/**
- * Response class
- *
- * @param Stream body Readable stream
- * @param Object opts Response options
- * @return Void
- */
-class Response {
- constructor() {
- let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
- let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- Body.call(this, body, opts);
-
- const status = opts.status || 200;
- const headers = new Headers(opts.headers);
-
- if (body != null && !headers.has('Content-Type')) {
- const contentType = extractContentType(body);
- if (contentType) {
- headers.append('Content-Type', contentType);
- }
- }
-
- this[INTERNALS$1] = {
- url: opts.url,
- status,
- statusText: opts.statusText || STATUS_CODES[status],
- headers,
- counter: opts.counter
- };
- }
-
- get url() {
- return this[INTERNALS$1].url || '';
- }
-
- get status() {
- return this[INTERNALS$1].status;
- }
-
- /**
- * Convenience property representing if the request ended normally
- */
- get ok() {
- return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;
- }
-
- get redirected() {
- return this[INTERNALS$1].counter > 0;
- }
-
- get statusText() {
- return this[INTERNALS$1].statusText;
- }
-
- get headers() {
- return this[INTERNALS$1].headers;
- }
-
- /**
- * Clone this response
- *
- * @return Response
- */
- clone() {
- return new Response(clone(this), {
- url: this.url,
- status: this.status,
- statusText: this.statusText,
- headers: this.headers,
- ok: this.ok,
- redirected: this.redirected
- });
- }
-}
-
-Body.mixIn(Response.prototype);
-
-Object.defineProperties(Response.prototype, {
- url: { enumerable: true },
- status: { enumerable: true },
- ok: { enumerable: true },
- redirected: { enumerable: true },
- statusText: { enumerable: true },
- headers: { enumerable: true },
- clone: { enumerable: true }
-});
-
-Object.defineProperty(Response.prototype, Symbol.toStringTag, {
- value: 'Response',
- writable: false,
- enumerable: false,
- configurable: true
-});
-
-const INTERNALS$2 = Symbol('Request internals');
-const URL = Url.URL || whatwgUrl.URL;
-
-// fix an issue where "format", "parse" aren't a named export for node <10
-const parse_url = Url.parse;
-const format_url = Url.format;
-
-/**
- * Wrapper around `new URL` to handle arbitrary URLs
- *
- * @param {string} urlStr
- * @return {void}
- */
-function parseURL(urlStr) {
- /*
- Check whether the URL is absolute or not
- Scheme: https://tools.ietf.org/html/rfc3986#section-3.1
- Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3
- */
- if (/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(urlStr)) {
- urlStr = new URL(urlStr).toString();
- }
-
- // Fallback to old implementation for arbitrary URLs
- return parse_url(urlStr);
-}
-
-const streamDestructionSupported = 'destroy' in Stream.Readable.prototype;
-
-/**
- * Check if a value is an instance of Request.
- *
- * @param Mixed input
- * @return Boolean
- */
-function isRequest(input) {
- return typeof input === 'object' && typeof input[INTERNALS$2] === 'object';
-}
-
-function isAbortSignal(signal) {
- const proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);
- return !!(proto && proto.constructor.name === 'AbortSignal');
-}
-
-/**
- * Request class
- *
- * @param Mixed input Url or Request instance
- * @param Object init Custom options
- * @return Void
- */
-class Request {
- constructor(input) {
- let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- let parsedURL;
-
- // normalize input
- if (!isRequest(input)) {
- if (input && input.href) {
- // in order to support Node.js' Url objects; though WHATWG's URL objects
- // will fall into this branch also (since their `toString()` will return
- // `href` property anyway)
- parsedURL = parseURL(input.href);
- } else {
- // coerce input to a string before attempting to parse
- parsedURL = parseURL(`${input}`);
- }
- input = {};
- } else {
- parsedURL = parseURL(input.url);
- }
-
- let method = init.method || input.method || 'GET';
- method = method.toUpperCase();
-
- if ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {
- throw new TypeError('Request with GET/HEAD method cannot have body');
- }
-
- let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;
-
- Body.call(this, inputBody, {
- timeout: init.timeout || input.timeout || 0,
- size: init.size || input.size || 0
- });
-
- const headers = new Headers(init.headers || input.headers || {});
-
- if (inputBody != null && !headers.has('Content-Type')) {
- const contentType = extractContentType(inputBody);
- if (contentType) {
- headers.append('Content-Type', contentType);
- }
- }
-
- let signal = isRequest(input) ? input.signal : null;
- if ('signal' in init) signal = init.signal;
-
- if (signal != null && !isAbortSignal(signal)) {
- throw new TypeError('Expected signal to be an instanceof AbortSignal');
- }
-
- this[INTERNALS$2] = {
- method,
- redirect: init.redirect || input.redirect || 'follow',
- headers,
- parsedURL,
- signal
- };
-
- // node-fetch-only options
- this.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;
- this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;
- this.counter = init.counter || input.counter || 0;
- this.agent = init.agent || input.agent;
- }
-
- get method() {
- return this[INTERNALS$2].method;
- }
-
- get url() {
- return format_url(this[INTERNALS$2].parsedURL);
- }
-
- get headers() {
- return this[INTERNALS$2].headers;
- }
-
- get redirect() {
- return this[INTERNALS$2].redirect;
- }
-
- get signal() {
- return this[INTERNALS$2].signal;
- }
-
- /**
- * Clone this request
- *
- * @return Request
- */
- clone() {
- return new Request(this);
- }
-}
-
-Body.mixIn(Request.prototype);
-
-Object.defineProperty(Request.prototype, Symbol.toStringTag, {
- value: 'Request',
- writable: false,
- enumerable: false,
- configurable: true
-});
-
-Object.defineProperties(Request.prototype, {
- method: { enumerable: true },
- url: { enumerable: true },
- headers: { enumerable: true },
- redirect: { enumerable: true },
- clone: { enumerable: true },
- signal: { enumerable: true }
-});
-
-/**
- * Convert a Request to Node.js http request options.
- *
- * @param Request A Request instance
- * @return Object The options object to be passed to http.request
- */
-function getNodeRequestOptions(request) {
- const parsedURL = request[INTERNALS$2].parsedURL;
- const headers = new Headers(request[INTERNALS$2].headers);
-
- // fetch step 1.3
- if (!headers.has('Accept')) {
- headers.set('Accept', '*/*');
- }
-
- // Basic fetch
- if (!parsedURL.protocol || !parsedURL.hostname) {
- throw new TypeError('Only absolute URLs are supported');
- }
-
- if (!/^https?:$/.test(parsedURL.protocol)) {
- throw new TypeError('Only HTTP(S) protocols are supported');
- }
-
- if (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {
- throw new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');
- }
-
- // HTTP-network-or-cache fetch steps 2.4-2.7
- let contentLengthValue = null;
- if (request.body == null && /^(POST|PUT)$/i.test(request.method)) {
- contentLengthValue = '0';
- }
- if (request.body != null) {
- const totalBytes = getTotalBytes(request);
- if (typeof totalBytes === 'number') {
- contentLengthValue = String(totalBytes);
- }
- }
- if (contentLengthValue) {
- headers.set('Content-Length', contentLengthValue);
- }
-
- // HTTP-network-or-cache fetch step 2.11
- if (!headers.has('User-Agent')) {
- headers.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');
- }
-
- // HTTP-network-or-cache fetch step 2.15
- if (request.compress && !headers.has('Accept-Encoding')) {
- headers.set('Accept-Encoding', 'gzip,deflate');
- }
-
- let agent = request.agent;
- if (typeof agent === 'function') {
- agent = agent(parsedURL);
- }
-
- if (!headers.has('Connection') && !agent) {
- headers.set('Connection', 'close');
- }
-
- // HTTP-network fetch step 4.2
- // chunked encoding is handled by Node.js
-
- return Object.assign({}, parsedURL, {
- method: request.method,
- headers: exportNodeCompatibleHeaders(headers),
- agent
- });
-}
-
-/**
- * abort-error.js
- *
- * AbortError interface for cancelled requests
- */
-
-/**
- * Create AbortError instance
- *
- * @param String message Error message for human
- * @return AbortError
- */
-function AbortError(message) {
- Error.call(this, message);
-
- this.type = 'aborted';
- this.message = message;
-
- // hide custom error implementation details from end-users
- Error.captureStackTrace(this, this.constructor);
-}
-
-AbortError.prototype = Object.create(Error.prototype);
-AbortError.prototype.constructor = AbortError;
-AbortError.prototype.name = 'AbortError';
-
-const URL$1 = Url.URL || whatwgUrl.URL;
-
-// fix an issue where "PassThrough", "resolve" aren't a named export for node <10
-const PassThrough$1 = Stream.PassThrough;
-
-const isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {
- const orig = new URL$1(original).hostname;
- const dest = new URL$1(destination).hostname;
-
- return orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);
-};
-
-/**
- * Fetch function
- *
- * @param Mixed url Absolute url or Request instance
- * @param Object opts Fetch options
- * @return Promise
- */
-function fetch(url, opts) {
-
- // allow custom promise
- if (!fetch.Promise) {
- throw new Error('native promise missing, set fetch.Promise to your favorite alternative');
- }
-
- Body.Promise = fetch.Promise;
-
- // wrap http.request into fetch
- return new fetch.Promise(function (resolve, reject) {
- // build request object
- const request = new Request(url, opts);
- const options = getNodeRequestOptions(request);
-
- const send = (options.protocol === 'https:' ? https : http).request;
- const signal = request.signal;
-
- let response = null;
-
- const abort = function abort() {
- let error = new AbortError('The user aborted a request.');
- reject(error);
- if (request.body && request.body instanceof Stream.Readable) {
- request.body.destroy(error);
- }
- if (!response || !response.body) return;
- response.body.emit('error', error);
- };
-
- if (signal && signal.aborted) {
- abort();
- return;
- }
-
- const abortAndFinalize = function abortAndFinalize() {
- abort();
- finalize();
- };
-
- // send request
- const req = send(options);
- let reqTimeout;
-
- if (signal) {
- signal.addEventListener('abort', abortAndFinalize);
- }
-
- function finalize() {
- req.abort();
- if (signal) signal.removeEventListener('abort', abortAndFinalize);
- clearTimeout(reqTimeout);
- }
-
- if (request.timeout) {
- req.once('socket', function (socket) {
- reqTimeout = setTimeout(function () {
- reject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));
- finalize();
- }, request.timeout);
- });
- }
-
- req.on('error', function (err) {
- reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));
- finalize();
- });
-
- req.on('response', function (res) {
- clearTimeout(reqTimeout);
-
- const headers = createHeadersLenient(res.headers);
-
- // HTTP fetch step 5
- if (fetch.isRedirect(res.statusCode)) {
- // HTTP fetch step 5.2
- const location = headers.get('Location');
-
- // HTTP fetch step 5.3
- let locationURL = null;
- try {
- locationURL = location === null ? null : new URL$1(location, request.url).toString();
- } catch (err) {
- // error here can only be invalid URL in Location: header
- // do not throw when options.redirect == manual
- // let the user extract the errorneous redirect URL
- if (request.redirect !== 'manual') {
- reject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));
- finalize();
- return;
- }
- }
-
- // HTTP fetch step 5.5
- switch (request.redirect) {
- case 'error':
- reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));
- finalize();
- return;
- case 'manual':
- // node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.
- if (locationURL !== null) {
- // handle corrupted header
- try {
- headers.set('Location', locationURL);
- } catch (err) {
- // istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request
- reject(err);
- }
- }
- break;
- case 'follow':
- // HTTP-redirect fetch step 2
- if (locationURL === null) {
- break;
- }
-
- // HTTP-redirect fetch step 5
- if (request.counter >= request.follow) {
- reject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));
- finalize();
- return;
- }
-
- // HTTP-redirect fetch step 6 (counter increment)
- // Create a new Request object.
- const requestOpts = {
- headers: new Headers(request.headers),
- follow: request.follow,
- counter: request.counter + 1,
- agent: request.agent,
- compress: request.compress,
- method: request.method,
- body: request.body,
- signal: request.signal,
- timeout: request.timeout,
- size: request.size
- };
-
- if (!isDomainOrSubdomain(request.url, locationURL)) {
- for (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {
- requestOpts.headers.delete(name);
- }
- }
-
- // HTTP-redirect fetch step 9
- if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {
- reject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));
- finalize();
- return;
- }
-
- // HTTP-redirect fetch step 11
- if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {
- requestOpts.method = 'GET';
- requestOpts.body = undefined;
- requestOpts.headers.delete('content-length');
- }
-
- // HTTP-redirect fetch step 15
- resolve(fetch(new Request(locationURL, requestOpts)));
- finalize();
- return;
- }
- }
-
- // prepare response
- res.once('end', function () {
- if (signal) signal.removeEventListener('abort', abortAndFinalize);
- });
- let body = res.pipe(new PassThrough$1());
-
- const response_options = {
- url: request.url,
- status: res.statusCode,
- statusText: res.statusMessage,
- headers: headers,
- size: request.size,
- timeout: request.timeout,
- counter: request.counter
- };
-
- // HTTP-network fetch step 12.1.1.3
- const codings = headers.get('Content-Encoding');
-
- // HTTP-network fetch step 12.1.1.4: handle content codings
-
- // in following scenarios we ignore compression support
- // 1. compression support is disabled
- // 2. HEAD request
- // 3. no Content-Encoding header
- // 4. no content response (204)
- // 5. content not modified response (304)
- if (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {
- response = new Response(body, response_options);
- resolve(response);
- return;
- }
-
- // For Node v6+
- // Be less strict when decoding compressed responses, since sometimes
- // servers send slightly invalid responses that are still accepted
- // by common browsers.
- // Always using Z_SYNC_FLUSH is what cURL does.
- const zlibOptions = {
- flush: zlib.Z_SYNC_FLUSH,
- finishFlush: zlib.Z_SYNC_FLUSH
- };
-
- // for gzip
- if (codings == 'gzip' || codings == 'x-gzip') {
- body = body.pipe(zlib.createGunzip(zlibOptions));
- response = new Response(body, response_options);
- resolve(response);
- return;
- }
-
- // for deflate
- if (codings == 'deflate' || codings == 'x-deflate') {
- // handle the infamous raw deflate response from old servers
- // a hack for old IIS and Apache servers
- const raw = res.pipe(new PassThrough$1());
- raw.once('data', function (chunk) {
- // see http://stackoverflow.com/questions/37519828
- if ((chunk[0] & 0x0F) === 0x08) {
- body = body.pipe(zlib.createInflate());
- } else {
- body = body.pipe(zlib.createInflateRaw());
- }
- response = new Response(body, response_options);
- resolve(response);
- });
- return;
- }
-
- // for br
- if (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {
- body = body.pipe(zlib.createBrotliDecompress());
- response = new Response(body, response_options);
- resolve(response);
- return;
- }
-
- // otherwise, use response as-is
- response = new Response(body, response_options);
- resolve(response);
- });
-
- writeToStream(req, request);
- });
-}
-/**
- * Redirect code matching
- *
- * @param Number code Status code
- * @return Boolean
- */
-fetch.isRedirect = function (code) {
- return code === 301 || code === 302 || code === 303 || code === 307 || code === 308;
-};
-
-// expose Promise
-fetch.Promise = global.Promise;
-
-module.exports = exports = fetch;
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports["default"] = exports;
-exports.Headers = Headers;
-exports.Request = Request;
-exports.Response = Response;
-exports.FetchError = FetchError;
-
-
-/***/ }),
-
-/***/ 2299:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-"use strict";
-
-
-var punycode = __nccwpck_require__(5477);
-var mappingTable = __nccwpck_require__(1907);
-
-var PROCESSING_OPTIONS = {
- TRANSITIONAL: 0,
- NONTRANSITIONAL: 1
-};
-
-function normalize(str) { // fix bug in v8
- return str.split('\u0000').map(function (s) { return s.normalize('NFC'); }).join('\u0000');
-}
-
-function findStatus(val) {
- var start = 0;
- var end = mappingTable.length - 1;
-
- while (start <= end) {
- var mid = Math.floor((start + end) / 2);
-
- var target = mappingTable[mid];
- if (target[0][0] <= val && target[0][1] >= val) {
- return target;
- } else if (target[0][0] > val) {
- end = mid - 1;
- } else {
- start = mid + 1;
- }
- }
-
- return null;
-}
-
-var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
-
-function countSymbols(string) {
- return string
- // replace every surrogate pair with a BMP symbol
- .replace(regexAstralSymbols, '_')
- // then get the length
- .length;
-}
-
-function mapChars(domain_name, useSTD3, processing_option) {
- var hasError = false;
- var processed = "";
-
- var len = countSymbols(domain_name);
- for (var i = 0; i < len; ++i) {
- var codePoint = domain_name.codePointAt(i);
- var status = findStatus(codePoint);
-
- switch (status[1]) {
- case "disallowed":
- hasError = true;
- processed += String.fromCodePoint(codePoint);
- break;
- case "ignored":
- break;
- case "mapped":
- processed += String.fromCodePoint.apply(String, status[2]);
- break;
- case "deviation":
- if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {
- processed += String.fromCodePoint.apply(String, status[2]);
- } else {
- processed += String.fromCodePoint(codePoint);
- }
- break;
- case "valid":
- processed += String.fromCodePoint(codePoint);
- break;
- case "disallowed_STD3_mapped":
- if (useSTD3) {
- hasError = true;
- processed += String.fromCodePoint(codePoint);
- } else {
- processed += String.fromCodePoint.apply(String, status[2]);
- }
- break;
- case "disallowed_STD3_valid":
- if (useSTD3) {
- hasError = true;
- }
-
- processed += String.fromCodePoint(codePoint);
- break;
- }
- }
-
- return {
- string: processed,
- error: hasError
- };
-}
-
-var combiningMarksRegex = /[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/;
-
-function validateLabel(label, processing_option) {
- if (label.substr(0, 4) === "xn--") {
- label = punycode.toUnicode(label);
- processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;
- }
-
- var error = false;
-
- if (normalize(label) !== label ||
- (label[3] === "-" && label[4] === "-") ||
- label[0] === "-" || label[label.length - 1] === "-" ||
- label.indexOf(".") !== -1 ||
- label.search(combiningMarksRegex) === 0) {
- error = true;
- }
-
- var len = countSymbols(label);
- for (var i = 0; i < len; ++i) {
- var status = findStatus(label.codePointAt(i));
- if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== "valid") ||
- (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&
- status[1] !== "valid" && status[1] !== "deviation")) {
- error = true;
- break;
- }
- }
-
- return {
- label: label,
- error: error
- };
-}
-
-function processing(domain_name, useSTD3, processing_option) {
- var result = mapChars(domain_name, useSTD3, processing_option);
- result.string = normalize(result.string);
-
- var labels = result.string.split(".");
- for (var i = 0; i < labels.length; ++i) {
- try {
- var validation = validateLabel(labels[i]);
- labels[i] = validation.label;
- result.error = result.error || validation.error;
- } catch(e) {
- result.error = true;
- }
- }
-
- return {
- string: labels.join("."),
- error: result.error
- };
-}
-
-module.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {
- var result = processing(domain_name, useSTD3, processing_option);
- var labels = result.string.split(".");
- labels = labels.map(function(l) {
- try {
- return punycode.toASCII(l);
- } catch(e) {
- result.error = true;
- return l;
- }
- });
-
- if (verifyDnsLength) {
- var total = labels.slice(0, labels.length - 1).join(".").length;
- if (total.length > 253 || total.length === 0) {
- result.error = true;
- }
-
- for (var i=0; i < labels.length; ++i) {
- if (labels.length > 63 || labels.length === 0) {
- result.error = true;
- break;
- }
- }
- }
-
- if (result.error) return null;
- return labels.join(".");
-};
-
-module.exports.toUnicode = function(domain_name, useSTD3) {
- var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);
-
- return {
- domain: result.string,
- error: result.error
- };
-};
-
-module.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;
-
-
-/***/ }),
-
-/***/ 5871:
-/***/ ((module) => {
-
-"use strict";
-
-
-var conversions = {};
-module.exports = conversions;
-
-function sign(x) {
- return x < 0 ? -1 : 1;
-}
-
-function evenRound(x) {
- // Round x to the nearest integer, choosing the even integer if it lies halfway between two.
- if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)
- return Math.floor(x);
- } else {
- return Math.round(x);
- }
-}
-
-function createNumberConversion(bitLength, typeOpts) {
- if (!typeOpts.unsigned) {
- --bitLength;
- }
- const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);
- const upperBound = Math.pow(2, bitLength) - 1;
-
- const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);
- const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);
-
- return function(V, opts) {
- if (!opts) opts = {};
-
- let x = +V;
-
- if (opts.enforceRange) {
- if (!Number.isFinite(x)) {
- throw new TypeError("Argument is not a finite number");
- }
-
- x = sign(x) * Math.floor(Math.abs(x));
- if (x < lowerBound || x > upperBound) {
- throw new TypeError("Argument is not in byte range");
- }
-
- return x;
- }
-
- if (!isNaN(x) && opts.clamp) {
- x = evenRound(x);
-
- if (x < lowerBound) x = lowerBound;
- if (x > upperBound) x = upperBound;
- return x;
- }
-
- if (!Number.isFinite(x) || x === 0) {
- return 0;
- }
-
- x = sign(x) * Math.floor(Math.abs(x));
- x = x % moduloVal;
-
- if (!typeOpts.unsigned && x >= moduloBound) {
- return x - moduloVal;
- } else if (typeOpts.unsigned) {
- if (x < 0) {
- x += moduloVal;
- } else if (x === -0) { // don't return negative zero
- return 0;
- }
- }
-
- return x;
- }
-}
-
-conversions["void"] = function () {
- return undefined;
-};
-
-conversions["boolean"] = function (val) {
- return !!val;
-};
-
-conversions["byte"] = createNumberConversion(8, { unsigned: false });
-conversions["octet"] = createNumberConversion(8, { unsigned: true });
-
-conversions["short"] = createNumberConversion(16, { unsigned: false });
-conversions["unsigned short"] = createNumberConversion(16, { unsigned: true });
-
-conversions["long"] = createNumberConversion(32, { unsigned: false });
-conversions["unsigned long"] = createNumberConversion(32, { unsigned: true });
-
-conversions["long long"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });
-conversions["unsigned long long"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });
-
-conversions["double"] = function (V) {
- const x = +V;
-
- if (!Number.isFinite(x)) {
- throw new TypeError("Argument is not a finite floating-point value");
- }
-
- return x;
-};
-
-conversions["unrestricted double"] = function (V) {
- const x = +V;
-
- if (isNaN(x)) {
- throw new TypeError("Argument is NaN");
- }
-
- return x;
-};
-
-// not quite valid, but good enough for JS
-conversions["float"] = conversions["double"];
-conversions["unrestricted float"] = conversions["unrestricted double"];
-
-conversions["DOMString"] = function (V, opts) {
- if (!opts) opts = {};
-
- if (opts.treatNullAsEmptyString && V === null) {
- return "";
- }
-
- return String(V);
-};
-
-conversions["ByteString"] = function (V, opts) {
- const x = String(V);
- let c = undefined;
- for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {
- if (c > 255) {
- throw new TypeError("Argument is not a valid bytestring");
- }
- }
-
- return x;
-};
-
-conversions["USVString"] = function (V) {
- const S = String(V);
- const n = S.length;
- const U = [];
- for (let i = 0; i < n; ++i) {
- const c = S.charCodeAt(i);
- if (c < 0xD800 || c > 0xDFFF) {
- U.push(String.fromCodePoint(c));
- } else if (0xDC00 <= c && c <= 0xDFFF) {
- U.push(String.fromCodePoint(0xFFFD));
- } else {
- if (i === n - 1) {
- U.push(String.fromCodePoint(0xFFFD));
- } else {
- const d = S.charCodeAt(i + 1);
- if (0xDC00 <= d && d <= 0xDFFF) {
- const a = c & 0x3FF;
- const b = d & 0x3FF;
- U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));
- ++i;
- } else {
- U.push(String.fromCodePoint(0xFFFD));
- }
- }
- }
- }
-
- return U.join('');
-};
-
-conversions["Date"] = function (V, opts) {
- if (!(V instanceof Date)) {
- throw new TypeError("Argument is not a Date object");
- }
- if (isNaN(V)) {
- return undefined;
- }
-
- return V;
-};
-
-conversions["RegExp"] = function (V, opts) {
- if (!(V instanceof RegExp)) {
- V = new RegExp(V);
- }
-
- return V;
-};
-
-
-/***/ }),
-
-/***/ 8262:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-const usm = __nccwpck_require__(33);
-
-exports.implementation = class URLImpl {
- constructor(constructorArgs) {
- const url = constructorArgs[0];
- const base = constructorArgs[1];
-
- let parsedBase = null;
- if (base !== undefined) {
- parsedBase = usm.basicURLParse(base);
- if (parsedBase === "failure") {
- throw new TypeError("Invalid base URL");
- }
- }
-
- const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });
- if (parsedURL === "failure") {
- throw new TypeError("Invalid URL");
- }
-
- this._url = parsedURL;
-
- // TODO: query stuff
- }
-
- get href() {
- return usm.serializeURL(this._url);
- }
-
- set href(v) {
- const parsedURL = usm.basicURLParse(v);
- if (parsedURL === "failure") {
- throw new TypeError("Invalid URL");
- }
-
- this._url = parsedURL;
- }
-
- get origin() {
- return usm.serializeURLOrigin(this._url);
- }
-
- get protocol() {
- return this._url.scheme + ":";
- }
-
- set protocol(v) {
- usm.basicURLParse(v + ":", { url: this._url, stateOverride: "scheme start" });
- }
-
- get username() {
- return this._url.username;
- }
-
- set username(v) {
- if (usm.cannotHaveAUsernamePasswordPort(this._url)) {
- return;
- }
-
- usm.setTheUsername(this._url, v);
- }
-
- get password() {
- return this._url.password;
- }
-
- set password(v) {
- if (usm.cannotHaveAUsernamePasswordPort(this._url)) {
- return;
- }
-
- usm.setThePassword(this._url, v);
- }
-
- get host() {
- const url = this._url;
-
- if (url.host === null) {
- return "";
- }
-
- if (url.port === null) {
- return usm.serializeHost(url.host);
- }
-
- return usm.serializeHost(url.host) + ":" + usm.serializeInteger(url.port);
- }
-
- set host(v) {
- if (this._url.cannotBeABaseURL) {
- return;
- }
-
- usm.basicURLParse(v, { url: this._url, stateOverride: "host" });
- }
-
- get hostname() {
- if (this._url.host === null) {
- return "";
- }
-
- return usm.serializeHost(this._url.host);
- }
-
- set hostname(v) {
- if (this._url.cannotBeABaseURL) {
- return;
- }
-
- usm.basicURLParse(v, { url: this._url, stateOverride: "hostname" });
- }
-
- get port() {
- if (this._url.port === null) {
- return "";
- }
-
- return usm.serializeInteger(this._url.port);
- }
-
- set port(v) {
- if (usm.cannotHaveAUsernamePasswordPort(this._url)) {
- return;
- }
-
- if (v === "") {
- this._url.port = null;
- } else {
- usm.basicURLParse(v, { url: this._url, stateOverride: "port" });
- }
- }
-
- get pathname() {
- if (this._url.cannotBeABaseURL) {
- return this._url.path[0];
- }
-
- if (this._url.path.length === 0) {
- return "";
- }
-
- return "/" + this._url.path.join("/");
- }
-
- set pathname(v) {
- if (this._url.cannotBeABaseURL) {
- return;
- }
-
- this._url.path = [];
- usm.basicURLParse(v, { url: this._url, stateOverride: "path start" });
- }
-
- get search() {
- if (this._url.query === null || this._url.query === "") {
- return "";
- }
-
- return "?" + this._url.query;
- }
-
- set search(v) {
- // TODO: query stuff
-
- const url = this._url;
-
- if (v === "") {
- url.query = null;
- return;
- }
-
- const input = v[0] === "?" ? v.substring(1) : v;
- url.query = "";
- usm.basicURLParse(input, { url, stateOverride: "query" });
- }
-
- get hash() {
- if (this._url.fragment === null || this._url.fragment === "") {
- return "";
- }
-
- return "#" + this._url.fragment;
- }
-
- set hash(v) {
- if (v === "") {
- this._url.fragment = null;
- return;
- }
-
- const input = v[0] === "#" ? v.substring(1) : v;
- this._url.fragment = "";
- usm.basicURLParse(input, { url: this._url, stateOverride: "fragment" });
- }
-
- toJSON() {
- return this.href;
- }
-};
-
-
-/***/ }),
-
-/***/ 653:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-"use strict";
-
-
-const conversions = __nccwpck_require__(5871);
-const utils = __nccwpck_require__(276);
-const Impl = __nccwpck_require__(8262);
-
-const impl = utils.implSymbol;
-
-function URL(url) {
- if (!this || this[impl] || !(this instanceof URL)) {
- throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.");
- }
- if (arguments.length < 1) {
- throw new TypeError("Failed to construct 'URL': 1 argument required, but only " + arguments.length + " present.");
- }
- const args = [];
- for (let i = 0; i < arguments.length && i < 2; ++i) {
- args[i] = arguments[i];
- }
- args[0] = conversions["USVString"](args[0]);
- if (args[1] !== undefined) {
- args[1] = conversions["USVString"](args[1]);
- }
-
- module.exports.setup(this, args);
-}
-
-URL.prototype.toJSON = function toJSON() {
- if (!this || !module.exports.is(this)) {
- throw new TypeError("Illegal invocation");
- }
- const args = [];
- for (let i = 0; i < arguments.length && i < 0; ++i) {
- args[i] = arguments[i];
- }
- return this[impl].toJSON.apply(this[impl], args);
-};
-Object.defineProperty(URL.prototype, "href", {
- get() {
- return this[impl].href;
- },
- set(V) {
- V = conversions["USVString"](V);
- this[impl].href = V;
- },
- enumerable: true,
- configurable: true
-});
-
-URL.prototype.toString = function () {
- if (!this || !module.exports.is(this)) {
- throw new TypeError("Illegal invocation");
- }
- return this.href;
-};
-
-Object.defineProperty(URL.prototype, "origin", {
- get() {
- return this[impl].origin;
- },
- enumerable: true,
- configurable: true
-});
-
-Object.defineProperty(URL.prototype, "protocol", {
- get() {
- return this[impl].protocol;
- },
- set(V) {
- V = conversions["USVString"](V);
- this[impl].protocol = V;
- },
- enumerable: true,
- configurable: true
-});
-
-Object.defineProperty(URL.prototype, "username", {
- get() {
- return this[impl].username;
- },
- set(V) {
- V = conversions["USVString"](V);
- this[impl].username = V;
- },
- enumerable: true,
- configurable: true
-});
-
-Object.defineProperty(URL.prototype, "password", {
- get() {
- return this[impl].password;
- },
- set(V) {
- V = conversions["USVString"](V);
- this[impl].password = V;
- },
- enumerable: true,
- configurable: true
-});
-
-Object.defineProperty(URL.prototype, "host", {
- get() {
- return this[impl].host;
- },
- set(V) {
- V = conversions["USVString"](V);
- this[impl].host = V;
- },
- enumerable: true,
- configurable: true
-});
-
-Object.defineProperty(URL.prototype, "hostname", {
- get() {
- return this[impl].hostname;
- },
- set(V) {
- V = conversions["USVString"](V);
- this[impl].hostname = V;
- },
- enumerable: true,
- configurable: true
-});
-
-Object.defineProperty(URL.prototype, "port", {
- get() {
- return this[impl].port;
- },
- set(V) {
- V = conversions["USVString"](V);
- this[impl].port = V;
- },
- enumerable: true,
- configurable: true
-});
-
-Object.defineProperty(URL.prototype, "pathname", {
- get() {
- return this[impl].pathname;
- },
- set(V) {
- V = conversions["USVString"](V);
- this[impl].pathname = V;
- },
- enumerable: true,
- configurable: true
-});
-
-Object.defineProperty(URL.prototype, "search", {
- get() {
- return this[impl].search;
- },
- set(V) {
- V = conversions["USVString"](V);
- this[impl].search = V;
- },
- enumerable: true,
- configurable: true
-});
-
-Object.defineProperty(URL.prototype, "hash", {
- get() {
- return this[impl].hash;
- },
- set(V) {
- V = conversions["USVString"](V);
- this[impl].hash = V;
- },
- enumerable: true,
- configurable: true
-});
-
-
-module.exports = {
- is(obj) {
- return !!obj && obj[impl] instanceof Impl.implementation;
- },
- create(constructorArgs, privateData) {
- let obj = Object.create(URL.prototype);
- this.setup(obj, constructorArgs, privateData);
- return obj;
- },
- setup(obj, constructorArgs, privateData) {
- if (!privateData) privateData = {};
- privateData.wrapper = obj;
-
- obj[impl] = new Impl.implementation(constructorArgs, privateData);
- obj[impl][utils.wrapperSymbol] = obj;
- },
- interface: URL,
- expose: {
- Window: { URL: URL },
- Worker: { URL: URL }
- }
-};
-
-
-
-/***/ }),
-
-/***/ 629:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-
-exports.URL = __nccwpck_require__(653)["interface"];
-exports.serializeURL = __nccwpck_require__(33).serializeURL;
-exports.serializeURLOrigin = __nccwpck_require__(33).serializeURLOrigin;
-exports.basicURLParse = __nccwpck_require__(33).basicURLParse;
-exports.setTheUsername = __nccwpck_require__(33).setTheUsername;
-exports.setThePassword = __nccwpck_require__(33).setThePassword;
-exports.serializeHost = __nccwpck_require__(33).serializeHost;
-exports.serializeInteger = __nccwpck_require__(33).serializeInteger;
-exports.parseURL = __nccwpck_require__(33).parseURL;
-
-
-/***/ }),
-
-/***/ 33:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-"use strict";
-
-const punycode = __nccwpck_require__(5477);
-const tr46 = __nccwpck_require__(2299);
-
-const specialSchemes = {
- ftp: 21,
- file: null,
- gopher: 70,
- http: 80,
- https: 443,
- ws: 80,
- wss: 443
-};
-
-const failure = Symbol("failure");
-
-function countSymbols(str) {
- return punycode.ucs2.decode(str).length;
-}
-
-function at(input, idx) {
- const c = input[idx];
- return isNaN(c) ? undefined : String.fromCodePoint(c);
-}
-
-function isASCIIDigit(c) {
- return c >= 0x30 && c <= 0x39;
-}
-
-function isASCIIAlpha(c) {
- return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);
-}
-
-function isASCIIAlphanumeric(c) {
- return isASCIIAlpha(c) || isASCIIDigit(c);
-}
-
-function isASCIIHex(c) {
- return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);
-}
-
-function isSingleDot(buffer) {
- return buffer === "." || buffer.toLowerCase() === "%2e";
-}
-
-function isDoubleDot(buffer) {
- buffer = buffer.toLowerCase();
- return buffer === ".." || buffer === "%2e." || buffer === ".%2e" || buffer === "%2e%2e";
-}
-
-function isWindowsDriveLetterCodePoints(cp1, cp2) {
- return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);
-}
-
-function isWindowsDriveLetterString(string) {
- return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === ":" || string[1] === "|");
-}
-
-function isNormalizedWindowsDriveLetterString(string) {
- return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === ":";
-}
-
-function containsForbiddenHostCodePoint(string) {
- return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/) !== -1;
-}
-
-function containsForbiddenHostCodePointExcludingPercent(string) {
- return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/) !== -1;
-}
-
-function isSpecialScheme(scheme) {
- return specialSchemes[scheme] !== undefined;
-}
-
-function isSpecial(url) {
- return isSpecialScheme(url.scheme);
-}
-
-function defaultPort(scheme) {
- return specialSchemes[scheme];
-}
-
-function percentEncode(c) {
- let hex = c.toString(16).toUpperCase();
- if (hex.length === 1) {
- hex = "0" + hex;
- }
-
- return "%" + hex;
-}
-
-function utf8PercentEncode(c) {
- const buf = new Buffer(c);
-
- let str = "";
-
- for (let i = 0; i < buf.length; ++i) {
- str += percentEncode(buf[i]);
- }
-
- return str;
-}
-
-function utf8PercentDecode(str) {
- const input = new Buffer(str);
- const output = [];
- for (let i = 0; i < input.length; ++i) {
- if (input[i] !== 37) {
- output.push(input[i]);
- } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {
- output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));
- i += 2;
- } else {
- output.push(input[i]);
- }
- }
- return new Buffer(output).toString();
-}
-
-function isC0ControlPercentEncode(c) {
- return c <= 0x1F || c > 0x7E;
-}
-
-const extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);
-function isPathPercentEncode(c) {
- return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);
-}
-
-const extraUserinfoPercentEncodeSet =
- new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);
-function isUserinfoPercentEncode(c) {
- return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);
-}
-
-function percentEncodeChar(c, encodeSetPredicate) {
- const cStr = String.fromCodePoint(c);
-
- if (encodeSetPredicate(c)) {
- return utf8PercentEncode(cStr);
- }
-
- return cStr;
-}
-
-function parseIPv4Number(input) {
- let R = 10;
-
- if (input.length >= 2 && input.charAt(0) === "0" && input.charAt(1).toLowerCase() === "x") {
- input = input.substring(2);
- R = 16;
- } else if (input.length >= 2 && input.charAt(0) === "0") {
- input = input.substring(1);
- R = 8;
- }
-
- if (input === "") {
- return 0;
- }
-
- const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);
- if (regex.test(input)) {
- return failure;
- }
-
- return parseInt(input, R);
-}
-
-function parseIPv4(input) {
- const parts = input.split(".");
- if (parts[parts.length - 1] === "") {
- if (parts.length > 1) {
- parts.pop();
- }
- }
-
- if (parts.length > 4) {
- return input;
- }
-
- const numbers = [];
- for (const part of parts) {
- if (part === "") {
- return input;
- }
- const n = parseIPv4Number(part);
- if (n === failure) {
- return input;
- }
-
- numbers.push(n);
- }
-
- for (let i = 0; i < numbers.length - 1; ++i) {
- if (numbers[i] > 255) {
- return failure;
- }
- }
- if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {
- return failure;
- }
-
- let ipv4 = numbers.pop();
- let counter = 0;
-
- for (const n of numbers) {
- ipv4 += n * Math.pow(256, 3 - counter);
- ++counter;
- }
-
- return ipv4;
-}
-
-function serializeIPv4(address) {
- let output = "";
- let n = address;
-
- for (let i = 1; i <= 4; ++i) {
- output = String(n % 256) + output;
- if (i !== 4) {
- output = "." + output;
- }
- n = Math.floor(n / 256);
- }
-
- return output;
-}
-
-function parseIPv6(input) {
- const address = [0, 0, 0, 0, 0, 0, 0, 0];
- let pieceIndex = 0;
- let compress = null;
- let pointer = 0;
-
- input = punycode.ucs2.decode(input);
-
- if (input[pointer] === 58) {
- if (input[pointer + 1] !== 58) {
- return failure;
- }
-
- pointer += 2;
- ++pieceIndex;
- compress = pieceIndex;
- }
-
- while (pointer < input.length) {
- if (pieceIndex === 8) {
- return failure;
- }
-
- if (input[pointer] === 58) {
- if (compress !== null) {
- return failure;
- }
- ++pointer;
- ++pieceIndex;
- compress = pieceIndex;
- continue;
- }
-
- let value = 0;
- let length = 0;
-
- while (length < 4 && isASCIIHex(input[pointer])) {
- value = value * 0x10 + parseInt(at(input, pointer), 16);
- ++pointer;
- ++length;
- }
-
- if (input[pointer] === 46) {
- if (length === 0) {
- return failure;
- }
-
- pointer -= length;
-
- if (pieceIndex > 6) {
- return failure;
- }
-
- let numbersSeen = 0;
-
- while (input[pointer] !== undefined) {
- let ipv4Piece = null;
-
- if (numbersSeen > 0) {
- if (input[pointer] === 46 && numbersSeen < 4) {
- ++pointer;
- } else {
- return failure;
- }
- }
-
- if (!isASCIIDigit(input[pointer])) {
- return failure;
- }
-
- while (isASCIIDigit(input[pointer])) {
- const number = parseInt(at(input, pointer));
- if (ipv4Piece === null) {
- ipv4Piece = number;
- } else if (ipv4Piece === 0) {
- return failure;
- } else {
- ipv4Piece = ipv4Piece * 10 + number;
- }
- if (ipv4Piece > 255) {
- return failure;
- }
- ++pointer;
- }
-
- address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;
-
- ++numbersSeen;
-
- if (numbersSeen === 2 || numbersSeen === 4) {
- ++pieceIndex;
- }
- }
-
- if (numbersSeen !== 4) {
- return failure;
- }
-
- break;
- } else if (input[pointer] === 58) {
- ++pointer;
- if (input[pointer] === undefined) {
- return failure;
- }
- } else if (input[pointer] !== undefined) {
- return failure;
- }
-
- address[pieceIndex] = value;
- ++pieceIndex;
- }
-
- if (compress !== null) {
- let swaps = pieceIndex - compress;
- pieceIndex = 7;
- while (pieceIndex !== 0 && swaps > 0) {
- const temp = address[compress + swaps - 1];
- address[compress + swaps - 1] = address[pieceIndex];
- address[pieceIndex] = temp;
- --pieceIndex;
- --swaps;
- }
- } else if (compress === null && pieceIndex !== 8) {
- return failure;
- }
-
- return address;
-}
-
-function serializeIPv6(address) {
- let output = "";
- const seqResult = findLongestZeroSequence(address);
- const compress = seqResult.idx;
- let ignore0 = false;
-
- for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {
- if (ignore0 && address[pieceIndex] === 0) {
- continue;
- } else if (ignore0) {
- ignore0 = false;
- }
-
- if (compress === pieceIndex) {
- const separator = pieceIndex === 0 ? "::" : ":";
- output += separator;
- ignore0 = true;
- continue;
- }
-
- output += address[pieceIndex].toString(16);
-
- if (pieceIndex !== 7) {
- output += ":";
- }
- }
-
- return output;
-}
-
-function parseHost(input, isSpecialArg) {
- if (input[0] === "[") {
- if (input[input.length - 1] !== "]") {
- return failure;
- }
-
- return parseIPv6(input.substring(1, input.length - 1));
- }
-
- if (!isSpecialArg) {
- return parseOpaqueHost(input);
- }
-
- const domain = utf8PercentDecode(input);
- const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);
- if (asciiDomain === null) {
- return failure;
- }
-
- if (containsForbiddenHostCodePoint(asciiDomain)) {
- return failure;
- }
-
- const ipv4Host = parseIPv4(asciiDomain);
- if (typeof ipv4Host === "number" || ipv4Host === failure) {
- return ipv4Host;
- }
-
- return asciiDomain;
-}
-
-function parseOpaqueHost(input) {
- if (containsForbiddenHostCodePointExcludingPercent(input)) {
- return failure;
- }
-
- let output = "";
- const decoded = punycode.ucs2.decode(input);
- for (let i = 0; i < decoded.length; ++i) {
- output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);
- }
- return output;
-}
-
-function findLongestZeroSequence(arr) {
- let maxIdx = null;
- let maxLen = 1; // only find elements > 1
- let currStart = null;
- let currLen = 0;
-
- for (let i = 0; i < arr.length; ++i) {
- if (arr[i] !== 0) {
- if (currLen > maxLen) {
- maxIdx = currStart;
- maxLen = currLen;
- }
-
- currStart = null;
- currLen = 0;
- } else {
- if (currStart === null) {
- currStart = i;
- }
- ++currLen;
- }
- }
-
- // if trailing zeros
- if (currLen > maxLen) {
- maxIdx = currStart;
- maxLen = currLen;
- }
-
- return {
- idx: maxIdx,
- len: maxLen
- };
-}
-
-function serializeHost(host) {
- if (typeof host === "number") {
- return serializeIPv4(host);
- }
-
- // IPv6 serializer
- if (host instanceof Array) {
- return "[" + serializeIPv6(host) + "]";
- }
-
- return host;
-}
-
-function trimControlChars(url) {
- return url.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g, "");
-}
-
-function trimTabAndNewline(url) {
- return url.replace(/\u0009|\u000A|\u000D/g, "");
-}
-
-function shortenPath(url) {
- const path = url.path;
- if (path.length === 0) {
- return;
- }
- if (url.scheme === "file" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {
- return;
- }
-
- path.pop();
-}
-
-function includesCredentials(url) {
- return url.username !== "" || url.password !== "";
-}
-
-function cannotHaveAUsernamePasswordPort(url) {
- return url.host === null || url.host === "" || url.cannotBeABaseURL || url.scheme === "file";
-}
-
-function isNormalizedWindowsDriveLetter(string) {
- return /^[A-Za-z]:$/.test(string);
-}
-
-function URLStateMachine(input, base, encodingOverride, url, stateOverride) {
- this.pointer = 0;
- this.input = input;
- this.base = base || null;
- this.encodingOverride = encodingOverride || "utf-8";
- this.stateOverride = stateOverride;
- this.url = url;
- this.failure = false;
- this.parseError = false;
-
- if (!this.url) {
- this.url = {
- scheme: "",
- username: "",
- password: "",
- host: null,
- port: null,
- path: [],
- query: null,
- fragment: null,
-
- cannotBeABaseURL: false
- };
-
- const res = trimControlChars(this.input);
- if (res !== this.input) {
- this.parseError = true;
- }
- this.input = res;
- }
-
- const res = trimTabAndNewline(this.input);
- if (res !== this.input) {
- this.parseError = true;
- }
- this.input = res;
-
- this.state = stateOverride || "scheme start";
-
- this.buffer = "";
- this.atFlag = false;
- this.arrFlag = false;
- this.passwordTokenSeenFlag = false;
-
- this.input = punycode.ucs2.decode(this.input);
-
- for (; this.pointer <= this.input.length; ++this.pointer) {
- const c = this.input[this.pointer];
- const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);
-
- // exec state machine
- const ret = this["parse " + this.state](c, cStr);
- if (!ret) {
- break; // terminate algorithm
- } else if (ret === failure) {
- this.failure = true;
- break;
- }
- }
-}
-
-URLStateMachine.prototype["parse scheme start"] = function parseSchemeStart(c, cStr) {
- if (isASCIIAlpha(c)) {
- this.buffer += cStr.toLowerCase();
- this.state = "scheme";
- } else if (!this.stateOverride) {
- this.state = "no scheme";
- --this.pointer;
- } else {
- this.parseError = true;
- return failure;
- }
-
- return true;
-};
-
-URLStateMachine.prototype["parse scheme"] = function parseScheme(c, cStr) {
- if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {
- this.buffer += cStr.toLowerCase();
- } else if (c === 58) {
- if (this.stateOverride) {
- if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {
- return false;
- }
-
- if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {
- return false;
- }
-
- if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === "file") {
- return false;
- }
-
- if (this.url.scheme === "file" && (this.url.host === "" || this.url.host === null)) {
- return false;
- }
- }
- this.url.scheme = this.buffer;
- this.buffer = "";
- if (this.stateOverride) {
- return false;
- }
- if (this.url.scheme === "file") {
- if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {
- this.parseError = true;
- }
- this.state = "file";
- } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {
- this.state = "special relative or authority";
- } else if (isSpecial(this.url)) {
- this.state = "special authority slashes";
- } else if (this.input[this.pointer + 1] === 47) {
- this.state = "path or authority";
- ++this.pointer;
- } else {
- this.url.cannotBeABaseURL = true;
- this.url.path.push("");
- this.state = "cannot-be-a-base-URL path";
- }
- } else if (!this.stateOverride) {
- this.buffer = "";
- this.state = "no scheme";
- this.pointer = -1;
- } else {
- this.parseError = true;
- return failure;
- }
-
- return true;
-};
-
-URLStateMachine.prototype["parse no scheme"] = function parseNoScheme(c) {
- if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {
- return failure;
- } else if (this.base.cannotBeABaseURL && c === 35) {
- this.url.scheme = this.base.scheme;
- this.url.path = this.base.path.slice();
- this.url.query = this.base.query;
- this.url.fragment = "";
- this.url.cannotBeABaseURL = true;
- this.state = "fragment";
- } else if (this.base.scheme === "file") {
- this.state = "file";
- --this.pointer;
- } else {
- this.state = "relative";
- --this.pointer;
- }
-
- return true;
-};
-
-URLStateMachine.prototype["parse special relative or authority"] = function parseSpecialRelativeOrAuthority(c) {
- if (c === 47 && this.input[this.pointer + 1] === 47) {
- this.state = "special authority ignore slashes";
- ++this.pointer;
- } else {
- this.parseError = true;
- this.state = "relative";
- --this.pointer;
- }
-
- return true;
-};
-
-URLStateMachine.prototype["parse path or authority"] = function parsePathOrAuthority(c) {
- if (c === 47) {
- this.state = "authority";
- } else {
- this.state = "path";
- --this.pointer;
- }
-
- return true;
-};
-
-URLStateMachine.prototype["parse relative"] = function parseRelative(c) {
- this.url.scheme = this.base.scheme;
- if (isNaN(c)) {
- this.url.username = this.base.username;
- this.url.password = this.base.password;
- this.url.host = this.base.host;
- this.url.port = this.base.port;
- this.url.path = this.base.path.slice();
- this.url.query = this.base.query;
- } else if (c === 47) {
- this.state = "relative slash";
- } else if (c === 63) {
- this.url.username = this.base.username;
- this.url.password = this.base.password;
- this.url.host = this.base.host;
- this.url.port = this.base.port;
- this.url.path = this.base.path.slice();
- this.url.query = "";
- this.state = "query";
- } else if (c === 35) {
- this.url.username = this.base.username;
- this.url.password = this.base.password;
- this.url.host = this.base.host;
- this.url.port = this.base.port;
- this.url.path = this.base.path.slice();
- this.url.query = this.base.query;
- this.url.fragment = "";
- this.state = "fragment";
- } else if (isSpecial(this.url) && c === 92) {
- this.parseError = true;
- this.state = "relative slash";
- } else {
- this.url.username = this.base.username;
- this.url.password = this.base.password;
- this.url.host = this.base.host;
- this.url.port = this.base.port;
- this.url.path = this.base.path.slice(0, this.base.path.length - 1);
-
- this.state = "path";
- --this.pointer;
- }
-
- return true;
-};
-
-URLStateMachine.prototype["parse relative slash"] = function parseRelativeSlash(c) {
- if (isSpecial(this.url) && (c === 47 || c === 92)) {
- if (c === 92) {
- this.parseError = true;
- }
- this.state = "special authority ignore slashes";
- } else if (c === 47) {
- this.state = "authority";
- } else {
- this.url.username = this.base.username;
- this.url.password = this.base.password;
- this.url.host = this.base.host;
- this.url.port = this.base.port;
- this.state = "path";
- --this.pointer;
- }
-
- return true;
-};
-
-URLStateMachine.prototype["parse special authority slashes"] = function parseSpecialAuthoritySlashes(c) {
- if (c === 47 && this.input[this.pointer + 1] === 47) {
- this.state = "special authority ignore slashes";
- ++this.pointer;
- } else {
- this.parseError = true;
- this.state = "special authority ignore slashes";
- --this.pointer;
- }
-
- return true;
-};
-
-URLStateMachine.prototype["parse special authority ignore slashes"] = function parseSpecialAuthorityIgnoreSlashes(c) {
- if (c !== 47 && c !== 92) {
- this.state = "authority";
- --this.pointer;
- } else {
- this.parseError = true;
- }
-
- return true;
-};
-
-URLStateMachine.prototype["parse authority"] = function parseAuthority(c, cStr) {
- if (c === 64) {
- this.parseError = true;
- if (this.atFlag) {
- this.buffer = "%40" + this.buffer;
- }
- this.atFlag = true;
-
- // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars
- const len = countSymbols(this.buffer);
- for (let pointer = 0; pointer < len; ++pointer) {
- const codePoint = this.buffer.codePointAt(pointer);
-
- if (codePoint === 58 && !this.passwordTokenSeenFlag) {
- this.passwordTokenSeenFlag = true;
- continue;
- }
- const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);
- if (this.passwordTokenSeenFlag) {
- this.url.password += encodedCodePoints;
- } else {
- this.url.username += encodedCodePoints;
- }
- }
- this.buffer = "";
- } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||
- (isSpecial(this.url) && c === 92)) {
- if (this.atFlag && this.buffer === "") {
- this.parseError = true;
- return failure;
- }
- this.pointer -= countSymbols(this.buffer) + 1;
- this.buffer = "";
- this.state = "host";
- } else {
- this.buffer += cStr;
- }
-
- return true;
-};
-
-URLStateMachine.prototype["parse hostname"] =
-URLStateMachine.prototype["parse host"] = function parseHostName(c, cStr) {
- if (this.stateOverride && this.url.scheme === "file") {
- --this.pointer;
- this.state = "file host";
- } else if (c === 58 && !this.arrFlag) {
- if (this.buffer === "") {
- this.parseError = true;
- return failure;
- }
-
- const host = parseHost(this.buffer, isSpecial(this.url));
- if (host === failure) {
- return failure;
- }
-
- this.url.host = host;
- this.buffer = "";
- this.state = "port";
- if (this.stateOverride === "hostname") {
- return false;
- }
- } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||
- (isSpecial(this.url) && c === 92)) {
- --this.pointer;
- if (isSpecial(this.url) && this.buffer === "") {
- this.parseError = true;
- return failure;
- } else if (this.stateOverride && this.buffer === "" &&
- (includesCredentials(this.url) || this.url.port !== null)) {
- this.parseError = true;
- return false;
- }
-
- const host = parseHost(this.buffer, isSpecial(this.url));
- if (host === failure) {
- return failure;
- }
-
- this.url.host = host;
- this.buffer = "";
- this.state = "path start";
- if (this.stateOverride) {
- return false;
- }
- } else {
- if (c === 91) {
- this.arrFlag = true;
- } else if (c === 93) {
- this.arrFlag = false;
- }
- this.buffer += cStr;
- }
-
- return true;
-};
-
-URLStateMachine.prototype["parse port"] = function parsePort(c, cStr) {
- if (isASCIIDigit(c)) {
- this.buffer += cStr;
- } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||
- (isSpecial(this.url) && c === 92) ||
- this.stateOverride) {
- if (this.buffer !== "") {
- const port = parseInt(this.buffer);
- if (port > Math.pow(2, 16) - 1) {
- this.parseError = true;
- return failure;
- }
- this.url.port = port === defaultPort(this.url.scheme) ? null : port;
- this.buffer = "";
- }
- if (this.stateOverride) {
- return false;
- }
- this.state = "path start";
- --this.pointer;
- } else {
- this.parseError = true;
- return failure;
- }
-
- return true;
-};
-
-const fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);
-
-URLStateMachine.prototype["parse file"] = function parseFile(c) {
- this.url.scheme = "file";
-
- if (c === 47 || c === 92) {
- if (c === 92) {
- this.parseError = true;
- }
- this.state = "file slash";
- } else if (this.base !== null && this.base.scheme === "file") {
- if (isNaN(c)) {
- this.url.host = this.base.host;
- this.url.path = this.base.path.slice();
- this.url.query = this.base.query;
- } else if (c === 63) {
- this.url.host = this.base.host;
- this.url.path = this.base.path.slice();
- this.url.query = "";
- this.state = "query";
- } else if (c === 35) {
- this.url.host = this.base.host;
- this.url.path = this.base.path.slice();
- this.url.query = this.base.query;
- this.url.fragment = "";
- this.state = "fragment";
- } else {
- if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points
- !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||
- (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points
- !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {
- this.url.host = this.base.host;
- this.url.path = this.base.path.slice();
- shortenPath(this.url);
- } else {
- this.parseError = true;
- }
-
- this.state = "path";
- --this.pointer;
- }
- } else {
- this.state = "path";
- --this.pointer;
- }
-
- return true;
-};
-
-URLStateMachine.prototype["parse file slash"] = function parseFileSlash(c) {
- if (c === 47 || c === 92) {
- if (c === 92) {
- this.parseError = true;
- }
- this.state = "file host";
- } else {
- if (this.base !== null && this.base.scheme === "file") {
- if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {
- this.url.path.push(this.base.path[0]);
- } else {
- this.url.host = this.base.host;
- }
- }
- this.state = "path";
- --this.pointer;
- }
-
- return true;
-};
-
-URLStateMachine.prototype["parse file host"] = function parseFileHost(c, cStr) {
- if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {
- --this.pointer;
- if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {
- this.parseError = true;
- this.state = "path";
- } else if (this.buffer === "") {
- this.url.host = "";
- if (this.stateOverride) {
- return false;
- }
- this.state = "path start";
- } else {
- let host = parseHost(this.buffer, isSpecial(this.url));
- if (host === failure) {
- return failure;
- }
- if (host === "localhost") {
- host = "";
- }
- this.url.host = host;
-
- if (this.stateOverride) {
- return false;
- }
-
- this.buffer = "";
- this.state = "path start";
- }
- } else {
- this.buffer += cStr;
- }
-
- return true;
-};
-
-URLStateMachine.prototype["parse path start"] = function parsePathStart(c) {
- if (isSpecial(this.url)) {
- if (c === 92) {
- this.parseError = true;
- }
- this.state = "path";
-
- if (c !== 47 && c !== 92) {
- --this.pointer;
- }
- } else if (!this.stateOverride && c === 63) {
- this.url.query = "";
- this.state = "query";
- } else if (!this.stateOverride && c === 35) {
- this.url.fragment = "";
- this.state = "fragment";
- } else if (c !== undefined) {
- this.state = "path";
- if (c !== 47) {
- --this.pointer;
- }
- }
-
- return true;
-};
-
-URLStateMachine.prototype["parse path"] = function parsePath(c) {
- if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||
- (!this.stateOverride && (c === 63 || c === 35))) {
- if (isSpecial(this.url) && c === 92) {
- this.parseError = true;
- }
-
- if (isDoubleDot(this.buffer)) {
- shortenPath(this.url);
- if (c !== 47 && !(isSpecial(this.url) && c === 92)) {
- this.url.path.push("");
- }
- } else if (isSingleDot(this.buffer) && c !== 47 &&
- !(isSpecial(this.url) && c === 92)) {
- this.url.path.push("");
- } else if (!isSingleDot(this.buffer)) {
- if (this.url.scheme === "file" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {
- if (this.url.host !== "" && this.url.host !== null) {
- this.parseError = true;
- this.url.host = "";
- }
- this.buffer = this.buffer[0] + ":";
- }
- this.url.path.push(this.buffer);
- }
- this.buffer = "";
- if (this.url.scheme === "file" && (c === undefined || c === 63 || c === 35)) {
- while (this.url.path.length > 1 && this.url.path[0] === "") {
- this.parseError = true;
- this.url.path.shift();
- }
- }
- if (c === 63) {
- this.url.query = "";
- this.state = "query";
- }
- if (c === 35) {
- this.url.fragment = "";
- this.state = "fragment";
- }
- } else {
- // TODO: If c is not a URL code point and not "%", parse error.
-
- if (c === 37 &&
- (!isASCIIHex(this.input[this.pointer + 1]) ||
- !isASCIIHex(this.input[this.pointer + 2]))) {
- this.parseError = true;
- }
-
- this.buffer += percentEncodeChar(c, isPathPercentEncode);
- }
-
- return true;
-};
-
-URLStateMachine.prototype["parse cannot-be-a-base-URL path"] = function parseCannotBeABaseURLPath(c) {
- if (c === 63) {
- this.url.query = "";
- this.state = "query";
- } else if (c === 35) {
- this.url.fragment = "";
- this.state = "fragment";
- } else {
- // TODO: Add: not a URL code point
- if (!isNaN(c) && c !== 37) {
- this.parseError = true;
- }
-
- if (c === 37 &&
- (!isASCIIHex(this.input[this.pointer + 1]) ||
- !isASCIIHex(this.input[this.pointer + 2]))) {
- this.parseError = true;
- }
-
- if (!isNaN(c)) {
- this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);
- }
- }
-
- return true;
-};
-
-URLStateMachine.prototype["parse query"] = function parseQuery(c, cStr) {
- if (isNaN(c) || (!this.stateOverride && c === 35)) {
- if (!isSpecial(this.url) || this.url.scheme === "ws" || this.url.scheme === "wss") {
- this.encodingOverride = "utf-8";
- }
-
- const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead
- for (let i = 0; i < buffer.length; ++i) {
- if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||
- buffer[i] === 0x3C || buffer[i] === 0x3E) {
- this.url.query += percentEncode(buffer[i]);
- } else {
- this.url.query += String.fromCodePoint(buffer[i]);
- }
- }
-
- this.buffer = "";
- if (c === 35) {
- this.url.fragment = "";
- this.state = "fragment";
- }
- } else {
- // TODO: If c is not a URL code point and not "%", parse error.
- if (c === 37 &&
- (!isASCIIHex(this.input[this.pointer + 1]) ||
- !isASCIIHex(this.input[this.pointer + 2]))) {
- this.parseError = true;
- }
-
- this.buffer += cStr;
- }
-
- return true;
-};
-
-URLStateMachine.prototype["parse fragment"] = function parseFragment(c) {
- if (isNaN(c)) { // do nothing
- } else if (c === 0x0) {
- this.parseError = true;
- } else {
- // TODO: If c is not a URL code point and not "%", parse error.
- if (c === 37 &&
- (!isASCIIHex(this.input[this.pointer + 1]) ||
- !isASCIIHex(this.input[this.pointer + 2]))) {
- this.parseError = true;
- }
-
- this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);
- }
-
- return true;
-};
-
-function serializeURL(url, excludeFragment) {
- let output = url.scheme + ":";
- if (url.host !== null) {
- output += "//";
-
- if (url.username !== "" || url.password !== "") {
- output += url.username;
- if (url.password !== "") {
- output += ":" + url.password;
- }
- output += "@";
- }
-
- output += serializeHost(url.host);
-
- if (url.port !== null) {
- output += ":" + url.port;
- }
- } else if (url.host === null && url.scheme === "file") {
- output += "//";
- }
-
- if (url.cannotBeABaseURL) {
- output += url.path[0];
- } else {
- for (const string of url.path) {
- output += "/" + string;
- }
- }
-
- if (url.query !== null) {
- output += "?" + url.query;
- }
-
- if (!excludeFragment && url.fragment !== null) {
- output += "#" + url.fragment;
- }
-
- return output;
-}
-
-function serializeOrigin(tuple) {
- let result = tuple.scheme + "://";
- result += serializeHost(tuple.host);
-
- if (tuple.port !== null) {
- result += ":" + tuple.port;
- }
-
- return result;
-}
-
-module.exports.serializeURL = serializeURL;
-
-module.exports.serializeURLOrigin = function (url) {
- // https://url.spec.whatwg.org/#concept-url-origin
- switch (url.scheme) {
- case "blob":
- try {
- return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));
- } catch (e) {
- // serializing an opaque origin returns "null"
- return "null";
- }
- case "ftp":
- case "gopher":
- case "http":
- case "https":
- case "ws":
- case "wss":
- return serializeOrigin({
- scheme: url.scheme,
- host: url.host,
- port: url.port
- });
- case "file":
- // spec says "exercise to the reader", chrome says "file://"
- return "file://";
- default:
- // serializing an opaque origin returns "null"
- return "null";
- }
-};
-
-module.exports.basicURLParse = function (input, options) {
- if (options === undefined) {
- options = {};
- }
-
- const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);
- if (usm.failure) {
- return "failure";
- }
-
- return usm.url;
-};
-
-module.exports.setTheUsername = function (url, username) {
- url.username = "";
- const decoded = punycode.ucs2.decode(username);
- for (let i = 0; i < decoded.length; ++i) {
- url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);
- }
-};
-
-module.exports.setThePassword = function (url, password) {
- url.password = "";
- const decoded = punycode.ucs2.decode(password);
- for (let i = 0; i < decoded.length; ++i) {
- url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);
- }
-};
-
-module.exports.serializeHost = serializeHost;
-
-module.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;
-
-module.exports.serializeInteger = function (integer) {
- return String(integer);
-};
-
-module.exports.parseURL = function (input, options) {
- if (options === undefined) {
- options = {};
- }
-
- // We don't handle blobs, so this just delegates:
- return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });
-};
-
-
-/***/ }),
-
-/***/ 276:
-/***/ ((module) => {
-
-"use strict";
-
-
-module.exports.mixin = function mixin(target, source) {
- const keys = Object.getOwnPropertyNames(source);
- for (let i = 0; i < keys.length; ++i) {
- Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));
- }
-};
-
-module.exports.wrapperSymbol = Symbol("wrapper");
-module.exports.implSymbol = Symbol("impl");
-
-module.exports.wrapperForImpl = function (impl) {
- return impl[module.exports.wrapperSymbol];
-};
-
-module.exports.implForWrapper = function (wrapper) {
- return wrapper[module.exports.implSymbol];
-};
-
-
-
-/***/ }),
-
-/***/ 2043:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-;(function (sax) { // wrapper for non-node envs
- sax.parser = function (strict, opt) { return new SAXParser(strict, opt) }
- sax.SAXParser = SAXParser
- sax.SAXStream = SAXStream
- sax.createStream = createStream
-
- // When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns.
- // When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)),
- // since that's the earliest that a buffer overrun could occur. This way, checks are
- // as rare as required, but as often as necessary to ensure never crossing this bound.
- // Furthermore, buffers are only tested at most once per write(), so passing a very
- // large string into write() might have undesirable effects, but this is manageable by
- // the caller, so it is assumed to be safe. Thus, a call to write() may, in the extreme
- // edge case, result in creating at most one complete copy of the string passed in.
- // Set to Infinity to have unlimited buffers.
- sax.MAX_BUFFER_LENGTH = 64 * 1024
-
- var buffers = [
- 'comment', 'sgmlDecl', 'textNode', 'tagName', 'doctype',
- 'procInstName', 'procInstBody', 'entity', 'attribName',
- 'attribValue', 'cdata', 'script'
- ]
-
- sax.EVENTS = [
- 'text',
- 'processinginstruction',
- 'sgmldeclaration',
- 'doctype',
- 'comment',
- 'opentagstart',
- 'attribute',
- 'opentag',
- 'closetag',
- 'opencdata',
- 'cdata',
- 'closecdata',
- 'error',
- 'end',
- 'ready',
- 'script',
- 'opennamespace',
- 'closenamespace'
- ]
-
- function SAXParser (strict, opt) {
- if (!(this instanceof SAXParser)) {
- return new SAXParser(strict, opt)
- }
-
- var parser = this
- clearBuffers(parser)
- parser.q = parser.c = ''
- parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH
- parser.opt = opt || {}
- parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags
- parser.looseCase = parser.opt.lowercase ? 'toLowerCase' : 'toUpperCase'
- parser.tags = []
- parser.closed = parser.closedRoot = parser.sawRoot = false
- parser.tag = parser.error = null
- parser.strict = !!strict
- parser.noscript = !!(strict || parser.opt.noscript)
- parser.state = S.BEGIN
- parser.strictEntities = parser.opt.strictEntities
- parser.ENTITIES = parser.strictEntities ? Object.create(sax.XML_ENTITIES) : Object.create(sax.ENTITIES)
- parser.attribList = []
-
- // namespaces form a prototype chain.
- // it always points at the current tag,
- // which protos to its parent tag.
- if (parser.opt.xmlns) {
- parser.ns = Object.create(rootNS)
- }
-
- // mostly just for error reporting
- parser.trackPosition = parser.opt.position !== false
- if (parser.trackPosition) {
- parser.position = parser.line = parser.column = 0
- }
- emit(parser, 'onready')
- }
-
- if (!Object.create) {
- Object.create = function (o) {
- function F () {}
- F.prototype = o
- var newf = new F()
- return newf
- }
- }
-
- if (!Object.keys) {
- Object.keys = function (o) {
- var a = []
- for (var i in o) if (o.hasOwnProperty(i)) a.push(i)
- return a
- }
- }
-
- function checkBufferLength (parser) {
- var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10)
- var maxActual = 0
- for (var i = 0, l = buffers.length; i < l; i++) {
- var len = parser[buffers[i]].length
- if (len > maxAllowed) {
- // Text/cdata nodes can get big, and since they're buffered,
- // we can get here under normal conditions.
- // Avoid issues by emitting the text node now,
- // so at least it won't get any bigger.
- switch (buffers[i]) {
- case 'textNode':
- closeText(parser)
- break
-
- case 'cdata':
- emitNode(parser, 'oncdata', parser.cdata)
- parser.cdata = ''
- break
-
- case 'script':
- emitNode(parser, 'onscript', parser.script)
- parser.script = ''
- break
-
- default:
- error(parser, 'Max buffer length exceeded: ' + buffers[i])
- }
- }
- maxActual = Math.max(maxActual, len)
- }
- // schedule the next check for the earliest possible buffer overrun.
- var m = sax.MAX_BUFFER_LENGTH - maxActual
- parser.bufferCheckPosition = m + parser.position
- }
-
- function clearBuffers (parser) {
- for (var i = 0, l = buffers.length; i < l; i++) {
- parser[buffers[i]] = ''
- }
- }
-
- function flushBuffers (parser) {
- closeText(parser)
- if (parser.cdata !== '') {
- emitNode(parser, 'oncdata', parser.cdata)
- parser.cdata = ''
- }
- if (parser.script !== '') {
- emitNode(parser, 'onscript', parser.script)
- parser.script = ''
- }
- }
-
- SAXParser.prototype = {
- end: function () { end(this) },
- write: write,
- resume: function () { this.error = null; return this },
- close: function () { return this.write(null) },
- flush: function () { flushBuffers(this) }
- }
-
- var Stream
- try {
- Stream = (__nccwpck_require__(2781).Stream)
- } catch (ex) {
- Stream = function () {}
- }
-
- var streamWraps = sax.EVENTS.filter(function (ev) {
- return ev !== 'error' && ev !== 'end'
- })
-
- function createStream (strict, opt) {
- return new SAXStream(strict, opt)
- }
-
- function SAXStream (strict, opt) {
- if (!(this instanceof SAXStream)) {
- return new SAXStream(strict, opt)
- }
-
- Stream.apply(this)
-
- this._parser = new SAXParser(strict, opt)
- this.writable = true
- this.readable = true
-
- var me = this
-
- this._parser.onend = function () {
- me.emit('end')
- }
-
- this._parser.onerror = function (er) {
- me.emit('error', er)
-
- // if didn't throw, then means error was handled.
- // go ahead and clear error, so we can write again.
- me._parser.error = null
- }
-
- this._decoder = null
-
- streamWraps.forEach(function (ev) {
- Object.defineProperty(me, 'on' + ev, {
- get: function () {
- return me._parser['on' + ev]
- },
- set: function (h) {
- if (!h) {
- me.removeAllListeners(ev)
- me._parser['on' + ev] = h
- return h
- }
- me.on(ev, h)
- },
- enumerable: true,
- configurable: false
- })
- })
- }
-
- SAXStream.prototype = Object.create(Stream.prototype, {
- constructor: {
- value: SAXStream
- }
- })
-
- SAXStream.prototype.write = function (data) {
- if (typeof Buffer === 'function' &&
- typeof Buffer.isBuffer === 'function' &&
- Buffer.isBuffer(data)) {
- if (!this._decoder) {
- var SD = (__nccwpck_require__(1576).StringDecoder)
- this._decoder = new SD('utf8')
- }
- data = this._decoder.write(data)
- }
-
- this._parser.write(data.toString())
- this.emit('data', data)
- return true
- }
-
- SAXStream.prototype.end = function (chunk) {
- if (chunk && chunk.length) {
- this.write(chunk)
- }
- this._parser.end()
- return true
- }
-
- SAXStream.prototype.on = function (ev, handler) {
- var me = this
- if (!me._parser['on' + ev] && streamWraps.indexOf(ev) !== -1) {
- me._parser['on' + ev] = function () {
- var args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments)
- args.splice(0, 0, ev)
- me.emit.apply(me, args)
- }
- }
-
- return Stream.prototype.on.call(me, ev, handler)
- }
-
- // this really needs to be replaced with character classes.
- // XML allows all manner of ridiculous numbers and digits.
- var CDATA = '[CDATA['
- var DOCTYPE = 'DOCTYPE'
- var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace'
- var XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/'
- var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE }
-
- // http://www.w3.org/TR/REC-xml/#NT-NameStartChar
- // This implementation works on strings, a single character at a time
- // as such, it cannot ever support astral-plane characters (10000-EFFFF)
- // without a significant breaking change to either this parser, or the
- // JavaScript language. Implementation of an emoji-capable xml parser
- // is left as an exercise for the reader.
- var nameStart = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/
-
- var nameBody = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/
-
- var entityStart = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/
- var entityBody = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/
-
- function isWhitespace (c) {
- return c === ' ' || c === '\n' || c === '\r' || c === '\t'
- }
-
- function isQuote (c) {
- return c === '"' || c === '\''
- }
-
- function isAttribEnd (c) {
- return c === '>' || isWhitespace(c)
- }
-
- function isMatch (regex, c) {
- return regex.test(c)
- }
-
- function notMatch (regex, c) {
- return !isMatch(regex, c)
- }
-
- var S = 0
- sax.STATE = {
- BEGIN: S++, // leading byte order mark or whitespace
- BEGIN_WHITESPACE: S++, // leading whitespace
- TEXT: S++, // general stuff
- TEXT_ENTITY: S++, // & and such.
- OPEN_WAKA: S++, // <
- SGML_DECL: S++, //
- SCRIPT: S++, //